For Agents
Query dYdX v4 perpetual market data, account positions, orders, fills, funding payments, and trading rewards over a public REST surface so agents can monitor or analyse on-chain trading without a node.
Use for: I want to fetch the current order book for ETH-USD on dYdX, Get all open positions for a dYdX trader's subaccount, List the most recent fills for an address on dYdX v4, Retrieve historical funding payments for a parent subaccount
Not supported: Does not place orders, sign transactions, or hold custody of funds - use for reading dYdX v4 chain-indexed market and account data only.
Jentic publishes the only available OpenAPI specification for the dYdX Indexer API, keeping it validated and agent-ready. The dYdX Indexer is the read-only REST surface for the dYdX v4 decentralized perpetual exchange, exposing market data, order books, candles, account positions, fills, funding payments, historical PnL, and trading rewards across subaccounts and parent subaccounts. The API is unauthenticated for read access - it serves indexed chain data so trading bots, dashboards, and agents can query state on the dYdX chain without running a node.
Install Jentic One Beta
Jentic One is a self-hosted execution layer for AI agents. It lets your agent call the dYdX Indexer API, or any other public or private API you need. You set the rules, the agent never sees your credentials, and every call is logged.
Two steps, two machines. Install the instance in a safe environment, then register your agent from wherever it runs.
Step 1: Jentic One Host machine
# On the machine that will host your Jentic One instance:
curl -fsSL "https://jentic.com/install.sh?src=apis&api=%2Fapis%2Fdydx.exchange%2Fdydx" | shStep 2: Agent machine
# On the machine where your agent runs (keep this separate from the instance):
curl -fsSL "https://jentic.com/install.sh?src=apis&api=%2Fapis%2Fdydx.exchange%2Fdydx" | sh
jentic register # connects your agent to your Jentic One instanceJentic One is in public beta. The setup above keeps your agent separate from the instance, which is what you want before using real credentials: an agent running as the same OS user as Jentic One can read its stored keys directly. Just evaluating? A single local install is fine to start. See the secure deployment guide for the tiers.
What an agent can do with dYdX Indexer API.
Fetch live order books and candles for any perpetual market by ticker
List perpetual markets and their current configuration and status
Retrieve subaccount and parent subaccount balances and asset positions for an address
List orders and fills filtered by address, subaccount, market, or status
Query historical PnL, funding payments, and trading reward aggregations for an address
GET STARTED
Look up affiliate metadata, snapshots, and total volume by referral code
Run a compliance screen against an address to check sanctions or restriction status
Patterns agents use dYdX Indexer API for, with concrete tasks.
★ Trading Bot Market Data Feed
An algorithmic trading bot pulls candles and order book snapshots from the Indexer to drive a signal model, then queries its own subaccount fills and positions to reconcile orders placed via the on-chain validator. Because the Indexer aggregates chain state, the bot avoids running a full dYdX node and can scale read traffic independently of execution.
GET /candles/perpetualMarkets/ETH-USD with 1HOUR resolution and GET /orderbooks/perpetualMarket/ETH-USD, then merge into the bot's local market state
Portfolio Dashboard for dYdX Traders
A portfolio tool reads positions, asset balances, fills, and historical PnL for a wallet's subaccounts and renders an aggregated view across markets. The /historical-pnl/parentSubaccountNumber and /assetPositions/parentSubaccountNumber endpoints roll subaccounts up by parent so multi-account traders see one total without per-subaccount stitching.
GET /addresses/{address}/parentSubaccountNumber/0 followed by /historical-pnl/parentSubaccountNumber and /assetPositions/parentSubaccountNumber to assemble a parent-level PnL view
Trading Rewards and Funding Reconciliation
An accounting workflow pulls funding payments and historical block trading reward aggregations for an address to reconcile expected vs received rewards across epochs. The Indexer exposes these as paginated endpoints keyed by address, so a job can backfill all epochs without reading the chain directly.
GET /historicalBlockTradingRewards/{address} and /fundingPayments?address={address} for the past 30 days and store both for reconciliation
Agent-Driven Market Lookups via Jentic
An AI agent answering a user question like 'what's my current PnL on dYdX' calls the Indexer through Jentic. The agent searches Jentic for 'get historical PnL for a dYdX subaccount', loads the input schema, and executes /historical-pnl with the user's address - no wallet keys are involved because the API is read-only.
Use Jentic to search 'get the order book for a dYdX perpetual market', load the operation, and execute it for ticker BTC-USD
49 endpoints — jentic publishes the only available openapi specification for the dydx indexer api, keeping it validated and agent-ready.
METHOD
PATH
DESCRIPTION
/perpetualMarkets
List all perpetual markets
/orderbooks/perpetualMarket/{ticker}
Fetch the order book for a perpetual market
/candles/perpetualMarkets/{ticker}
Fetch candles for a perpetual market
/addresses/{address}/subaccountNumber/{subaccountNumber}
Get a subaccount for an address
/fills
List fills filtered by subaccount and market
/orders
List orders for a subaccount
/historical-pnl
Retrieve historical PnL for a subaccount
/compliance/screen/{address}
Screen an address for compliance
/perpetualMarkets
List all perpetual markets
/orderbooks/perpetualMarket/{ticker}
Fetch the order book for a perpetual market
/candles/perpetualMarkets/{ticker}
Fetch candles for a perpetual market
/addresses/{address}/subaccountNumber/{subaccountNumber}
Get a subaccount for an address
/fills
List fills filtered by subaccount and market
/orders
List orders for a subaccount
/historical-pnl
Retrieve historical PnL for a subaccount
/compliance/screen/{address}
What agents get from Jentic-routed access to this vendor.
Setup
The dYdX Indexer API needs no auth, but wiring it still means building each market and account query, handling pagination, and centralising rate-limit retries yourself. Through Jentic you install once, import the dYdX Indexer from the API Directory, and your agent calls it.
Permission scoping
The Indexer is read-only and puts the wallet address in the URL path (/addresses/{address}/...), so a rule can pin your agent to reading data for one address. You choose the read operations it may call, so account queries are not included unless you add them.
Credential isolation
The Indexer requires no credentials, so there is nothing to store. Jentic still mediates the call through your own Jentic One instance, applying usage policy and centralising rate-limit handling.
Intent-based discovery
Agents search Jentic by intent such as 'get historical PnL for a dYdX subaccount' or 'read a perpetual market orderbook', and Jentic returns the matching Indexer operation with its input schema and pagination shape so the agent calls the right endpoint without browsing the docs.
Alternatives and complements available in the Jentic catalogue.
Specific to using dYdX Indexer API through Jentic.
Why is there no official OpenAPI spec for the dYdX Indexer API?
dYdX does not publish an OpenAPI specification for the v4 Indexer. Jentic generates and maintains this spec so that AI agents and developers can call the dYdX Indexer API via structured tooling. It is validated against the live API and kept up to date. Get started with Jentic One, the self-hosted execution layer.
What authentication does the dYdX Indexer API use?
The Indexer is fully read-only and unauthenticated - no API key or signed request is required for any endpoint, including subaccount and PnL queries. Trading actions on dYdX v4 are submitted to validators with on-chain signatures and are not part of this Indexer API.
Can I place orders with the dYdX Indexer API?
No. The Indexer only reads chain state - to place or cancel orders you must broadcast signed transactions to the dYdX v4 validator network using the dYdX client libraries. Use endpoints like GET /orders and GET /orders/{orderId} on the Indexer to confirm the status of orders submitted that way.
What are the rate limits for the dYdX Indexer API?
The OpenAPI spec does not declare a numeric rate limit. The public dYdX-hosted Indexer at indexer.dydx.trade applies fair-use throttling per IP - high-volume traders typically run their own Indexer instance to avoid hitting limits.
How do I fetch dYdX market data through Jentic?
Run pip install jentic, search for 'get the order book for a dYdX perpetual market', load the operation for GET /orderbooks/perpetualMarket/{ticker}, then execute it with the ticker (for example ETH-USD) as the path parameter. No credentials are required because the Indexer is open.
Does the dYdX Indexer return websocket data?
This OpenAPI spec only documents the REST surface (49 endpoints). dYdX also exposes a websocket channel for live order book and trade updates, but it is not part of this REST API - use the REST endpoints listed here for snapshot reads and reconciliation.
Can I limit what my agent is allowed to do with the dYdX Indexer API?
Yes. Because you run Jentic One yourself, your own rules decide which Indexer operations the agent may call, so you can expose only the reads you want, such as GET /orderbooks/perpetualMarket/{ticker} and GET /candles/perpetualMarkets/{ticker}, while withholding account calls like GET /historical-pnl or /addresses/{address}/subaccountNumber/{subaccountNumber}. Since the Indexer puts the wallet address in the URL path, you can also pin the agent to reading data for a single address. The API is read-only and holds no credentials, so nothing about your rules ever lets the agent place orders or move funds.
Screen an address for compliance