Open app

API reference

Markdown

Get protocol statistics

GET/v2/stats/daily

Read protocol volume statistics.

Authentication: None. This route is public.

#Parameters

Name In Type Required Description
includeMetadata query "true" · "false" No Opt in to freshness and coverage metadata; omitted by default for older strict clients.
days query integer (1–365) No (default 14) How many trailing days of protocol statistics to include, ending today.

#Response

200 returns an object with:

  • metadata · object
    • asOf · string (date-time) · required
    • dayBasis · "created_at_utc" · required
    • currentProducts · array of "swap" · "bridge" · "coinflip" · required
    • volumeIncludesLegacy · boolean · required
    • orderCountsIncludeLegacy · false · required
    • legacyAsOf · string (date-time) or null · required
    • unvaluedLegacyCompletedOrders · integer or null · required
  • stats24h · object · required
    • orders · number · required
    • completed · number · required
    • failed · number · required
    • swaps · number · required
    • bridge · number · required
    • volumeUsd · number · required
  • totals · object · required
    • orders · number · required
    • completed · number · required
    • failed · number · required
    • swaps · number · required
    • bridge · number · required
    • volumeUsd · number · required
  • daily · array of object · required
    • orders · number · required
    • completed · number · required
    • failed · number · required
    • swaps · number · required
    • bridge · number · required
    • volumeUsd · number · required
    • date · string · required

Errors use the standard error envelope: branch on code, never on the message.

#Example

curl
curl 'https://api-beta.wagyu.xyz/v2/stats/daily?days=2&includeMetadata=true'
JavaScript
const res = await fetch('https://api-beta.wagyu.xyz/v2/stats/daily?days=2&includeMetadata=true'
);
const data = await res.json();
Python
import requests

res = requests.get('https://api-beta.wagyu.xyz/v2/stats/daily?days=2&includeMetadata=true', timeout=30)
data = res.json()
Response · 200 · captured 4 Nov 2026, 08:24 UTC
{
  "metadata": {
    "asOf": "2026-11-04T08:24:47.251Z",
    "dayBasis": "created_at_utc",
    "currentProducts": [
      "swap",
      "bridge",
      "coinflip"
    ],
    "volumeIncludesLegacy": true,
    "orderCountsIncludeLegacy": false,
    "legacyAsOf": "2026-10-19T15:40:51.844Z",
    "unvaluedLegacyCompletedOrders": 2044
  },
  "stats24h": {
    "orders": 747,
    "completed": 580,
    "failed": 4,
    "swaps": 565,
    "bridge": 157,
    "volumeUsd": 34700689.326225616
  },
  "totals": {
    "orders": 44207,
    "completed": 35874,
    "failed": 221,
    "swaps": 38423,
    "bridge": 4496,
    "volumeUsd": 1329602700.2141101
  },
  "daily": [
    {
      "orders": 216,
      "completed": 165,
      "failed": 2,
      "swaps": 171,
      "bridge": 44,
      "volumeUsd": 8524549.7325113,
      "date": "2026-11-04"
    },
    {
      "orders": 749,
      "completed": 574,
      "failed": 2,
      "swaps": 565,
      "bridge": 148,
      "volumeUsd": 30252326.080876924,
      "date": "2026-11-03"
    },
    {
      "orders": 553,
      "completed": 359,
      "failed": 5,
      "swaps": 459,
      "bridge": 61,
      "volumeUsd": 9631538.066724319,
      "date": "2026-11-02"
    }
  ]
}

Tip: every page is also plain Markdown, and /llms.txt indexes them for AI tools.