Skip to main content
GET
cURL
Use this to draw an equity curve or to compare fixed windows such as the last 7 days against the last 90. For the headline pnl totals and the grade on their own, use Trader.

Parameters

Key response fields

Example

What it does not return

  • Numbers recalculated at request time. The series is rebuilt when a sync finishes, so it can lag the newest fills. freshness_at says when it was last rebuilt.
  • An invented curve. A wallet 0xinsider knows but that has no daily P&L gets a 200 with empty arrays.
  • A 200 for a wallet that does not resolve. That answers 404.
  • A split between realized and unrealized profit. entries[] is cumulative P&L only. For the split, read pnl.realized and pnl.unrealized on Trader.

Caching

Send the ETag from a response back in an If-None-Match header. If the series has not changed, you get 304 Not Modified with an empty body.

Authorizations

Authorization
string
header
required

Legacy default or named integration API key, or OAuth 2.1 access token, in the Authorization header as Bearer oxi_sk_live_... or Bearer oxi_at_.... Default keys retain full access; integration keys are limited to their approved read, webhooks, export and usage scopes and expire within 90 days. All credentials share the owner's account limits. Data calls require an active Pro subscription and return live data. A 401 carries WWW-Authenticate: Bearer resource_metadata="https://api.0xinsider.com/.well-known/oauth-protected-resource" (RFC 6750 section 3, RFC 9728).

Headers

X-Query-Validation
enum<string>

Opt into strict query-name validation. The default is compatible: unknown names are ignored and reported in X-Query-Ignored. With strict, an unknown name returns 400 bad_request with error.reason unknown_query_parameter before the handler runs, including when its percent escape is incomplete.

Available options:
strict

Path Parameters

address
string
required

Wallet address (0x...), username, or trd_-prefixed trader id.

Query Parameters

from
string

Inclusive UTC calendar-date lower bound in YYYY-MM-DD form for the daily series (entries and drawdown). Omit for the whole stored history. A value that is not a calendar date, or a from later than to, returns 400 bad_request with error.param from. Does not change stats, monthly or year_totals, which stay defined over the full history.

Pattern: ^\d{4}-\d{2}-\d{2}$
to
string

Inclusive UTC calendar-date upper bound in YYYY-MM-DD form for the daily series (entries and drawdown). Omit for the whole stored history. A value that is not a calendar date returns 400 bad_request with error.param to. Does not change stats, monthly or year_totals.

Pattern: ^\d{4}-\d{2}-\d{2}$
sections
enum<string>[]

Which sections of the object to return. Repeatable and comma-separated: entries, stats, monthly, year_totals, drawdown. Omit it, or send it empty, for all five. A section left out is absent from data. An unrecognized name returns 400 bad_request with error.param sections rather than being ignored, so a typo cannot look like a successful request that silently dropped the section you came for.

Available options:
entries,
stats,
monthly,
year_totals,
drawdown
sections[]
enum<string>[]

Backward-compatible bracket alias for sections, for clients that emit array keys. Repeatable and comma-separated: entries, stats, monthly, year_totals, drawdown.

Available options:
entries,
stats,
monthly,
year_totals,
drawdown

Response

Trader P&L object

object
string
required
Allowed value: "trader_pnl"
data
object
required

A trader's daily P&L object. id is always present. The five sections -- entries, stats, monthly, year_totals, drawdown -- are present unless the request's sections parameter excluded them, so a request that sends no sections always carries all five. An excluded section is absent from the object, never null and never an empty array.

meta
object
required