AArtery
On this page

Platform volume

GET /v1/me/platform-volume answers a single question: how much trading volume did my platform route over this window? It rolls up every fill that went through a builder you registered — across Hyperliquid and Polymarket — into a total plus a per-venue split, including the builder fee the venue credited you (your platform's revenue).

Unlike /v1/me/stats, which ranks your wallets individually, this endpoint is a platform-level rollup: it's always attribution-scoped, so the numbers describe your platform's turnover, not one trader's activity. Use /me/stats for a per-wallet leaderboard; use /me/platform-volume for the one-line "what did my platform do" figure.

When to use this

  • Platform turnover dashboard. Show total volume routed this day / week / month, with the Hyperliquid vs Polymarket split.
  • Revenue tracking. builderFeeUsd is the fee the venue credited your builder — your platform's earned revenue on that volume (Hyperliquid).
  • Reporting. A single windowed call instead of summing /me/stats rows yourself.

Request

bash# Platform turnover over a window
curl -H "Authorization: Bearer art_live_<your-key>" \
  "https://api.artery.questflow.ai/v1/me/platform-volume?from=2026-06-01T00:00:00Z&to=2026-06-16T00:00:00Z"

Query parameters

ParameterTypeRequiredDescription
fromstringnoISO-8601 window start (inclusive). Omit for all-time.
tostringnoISO-8601 window end (exclusive). Omit for "until now".

from/to are validated as ISO-8601; from > to is 400 validation_failed.

This endpoint is always platform-scoped — every fill is attributed through a builder you registered (portal → Wallets → Platform Attributions, or POST /v1/me/platform-attributions). With no builder registered it returns 400 no_platform_attribution rather than an all-zero body you might misread as "no activity".

Response

jsonc{
  "window": { "from": "2026-06-01T00:00:00.000Z", "to": "2026-06-16T00:00:00.000Z" },
  "total": {
    "volumeUsd": 24891.5,
    "tradeCount": 318,
    "builderFeeUsd": 3.73
  },
  "byVenue": [
    {
      "venue": "hyperliquid",
      "volumeUsd": 21452.1,
      "tradeCount": 290,
      "builderFeeUsd": 3.73,
      "walletCount": 12
    },
    {
      "venue": "polymarket",
      "volumeUsd": 3439.4,
      "tradeCount": 28,
      "builderFeeUsd": null,
      "walletCount": 4
    }
  ]
}

Field semantics

  • volumeUsd — traded notional in USD attributed to your platform over [from, to). For Hyperliquid it is Σ(px × sz) from HL's authoritative per-builder export; for Polymarket it is Σ(price × qty) over on-chain fills whose order-level builder matches yours.
  • builderFeeUsd — the fee the venue credited your builder on that volume — your platform's revenue. Hyperliquid only; Polymarket per-fill fees aren't tracked, so it is null for that venue (and excluded from total.builderFeeUsd).
  • tradeCount — number of attributed fills over the window.
  • walletCount — how many of your registered wallets of that venue had at least one attributed fill in the window.

total is the additive sum across venues. A venue row appears only when your org has at least one registered wallet of that venue.

Freshness

  • Hyperliquid numbers come from HL's authoritative per-builder export, which publishes on a ~1–2 day lag — so very recent HL volume may not be reflected yet. This is the same authoritative source HL itself uses to pay builder rewards, so the figures reconcile exactly once published.
  • Polymarket numbers come from on-chain fills ingested in real time.

Caching

Responses carry cache-control: private, max-age=15, stale-while-revalidate=30.

Error responses

HTTPerror.codeWhen
400validation_failedBad from/to (not ISO-8601, or from > to).
400no_platform_attributionNo builder registered for any of your wallets' venues.
401unauthenticatedMissing / invalid Authorization header.
403insufficient_scopeKey lacks the read scope.
429quota_exceededOver the pnl.read SKU quota.

Quota

Metered under the pnl.read SKU — each successful response counts as 1 unit. Per-tier caps live on the rate limits page.

Edit this page on GitHubLast updated
Platform volume · Artery API Docs