{"openapi":"3.1.0","info":{"title":"Cardano Accounts API","description":"\nRead-only Cardano account data served from a [cardano-db-sync](https://github.com/IntersectMBO/cardano-db-sync) Postgres instance.\n\n**Network:** `mainnet` (Cardano mainnet — stake addresses prefixed `stake1…`).\n\n## Authentication\n\nEvery request under `/api/*` (except `/api/health`, `/api/info`, `/api/docs`, `/api/redoc`,\n`/api/openapi.json`, the `/api/` landing page and `/api/signup`) must include a valid `x-project-id`\nheader (the legacy `project_id` header name is also accepted, but some proxies/CDNs on custom\ndomains silently strip headers with underscores — always prefer `x-project-id`):\n\n- The public demo key is capped at 50 requests/hour per source IP.\n- Any other key is validated against a database of issued keys and their status.\n- Missing or invalid keys get `401`; a demo key over its hourly cap gets `429`.\n\n```\ncurl -H \"x-project-id: YOUR_KEY\" \\\n  https://<host>/api/accounts/stake1ux...\n```\n\n## Concepts\n\n- All amounts are Lovelace (1 ADA = 1 000 000 Lovelace), returned as strings.\n- All time fields are UNIX timestamps in seconds.\n- Addresses, stake addresses and pool IDs are bech32.\n- Pagination on list endpoints: `count` (1–100, default 100), `page` (default 1), `order` (`asc`|`desc`, default `asc`).\n","version":"0.1.0"},"servers":[{"url":"https://ada.api.gridscan.io","description":"Production"}],"paths":{"/api/accounts/{stake_address}":{"get":{"tags":["Cardano » Accounts"],"summary":"Account Summary","operationId":"account_summary_api_accounts__stake_address__get","parameters":[{"name":"stake_address","in":"path","required":true,"schema":{"type":"string","title":"Stake Address"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Account Summary Api Accounts  Stake Address  Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/accounts/{stake_address}/rewards":{"get":{"tags":["Cardano » Accounts"],"summary":"Account Rewards","operationId":"account_rewards_api_accounts__stake_address__rewards_get","parameters":[{"name":"stake_address","in":"path","required":true,"schema":{"type":"string","title":"Stake Address"}},{"name":"count","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"default":100,"title":"Count"}},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"default":1,"title":"Page"}},{"name":"order","in":"query","required":false,"schema":{"type":"string","default":"asc","title":"Order"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"type":"object","additionalProperties":true},"title":"Response Account Rewards Api Accounts  Stake Address  Rewards Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/accounts/{stake_address}/stake_history":{"get":{"tags":["Cardano » Accounts"],"summary":"Account Stake History","operationId":"account_stake_history_api_accounts__stake_address__stake_history_get","parameters":[{"name":"stake_address","in":"path","required":true,"schema":{"type":"string","title":"Stake Address"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"type":"object","additionalProperties":true},"title":"Response Account Stake History Api Accounts  Stake Address  Stake History Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/accounts/{stake_address}/history":{"get":{"tags":["Cardano » Accounts"],"summary":"Account History","operationId":"account_history_api_accounts__stake_address__history_get","parameters":[{"name":"stake_address","in":"path","required":true,"schema":{"type":"string","title":"Stake Address"}},{"name":"count","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"default":100,"title":"Count"}},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"default":1,"title":"Page"}},{"name":"order","in":"query","required":false,"schema":{"type":"string","default":"asc","title":"Order"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"type":"object","additionalProperties":true},"title":"Response Account History Api Accounts  Stake Address  History Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/accounts/{stake_address}/delegations":{"get":{"tags":["Cardano » Accounts"],"summary":"Account Delegations","operationId":"account_delegations_api_accounts__stake_address__delegations_get","parameters":[{"name":"stake_address","in":"path","required":true,"schema":{"type":"string","title":"Stake Address"}},{"name":"count","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"default":100,"title":"Count"}},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"default":1,"title":"Page"}},{"name":"order","in":"query","required":false,"schema":{"type":"string","default":"asc","title":"Order"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"type":"object","additionalProperties":true},"title":"Response Account Delegations Api Accounts  Stake Address  Delegations Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/accounts/{stake_address}/registrations":{"get":{"tags":["Cardano » Accounts"],"summary":"Account Registrations","operationId":"account_registrations_api_accounts__stake_address__registrations_get","parameters":[{"name":"stake_address","in":"path","required":true,"schema":{"type":"string","title":"Stake Address"}},{"name":"count","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"default":100,"title":"Count"}},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"default":1,"title":"Page"}},{"name":"order","in":"query","required":false,"schema":{"type":"string","default":"asc","title":"Order"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"type":"object","additionalProperties":true},"title":"Response Account Registrations Api Accounts  Stake Address  Registrations Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/accounts/{stake_address}/withdrawals":{"get":{"tags":["Cardano » Accounts"],"summary":"Account Withdrawals","operationId":"account_withdrawals_api_accounts__stake_address__withdrawals_get","parameters":[{"name":"stake_address","in":"path","required":true,"schema":{"type":"string","title":"Stake Address"}},{"name":"count","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"default":100,"title":"Count"}},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"default":1,"title":"Page"}},{"name":"order","in":"query","required":false,"schema":{"type":"string","default":"asc","title":"Order"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"type":"object","additionalProperties":true},"title":"Response Account Withdrawals Api Accounts  Stake Address  Withdrawals Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/accounts/{stake_address}/mirs":{"get":{"tags":["Cardano » Accounts"],"summary":"Account Mirs","operationId":"account_mirs_api_accounts__stake_address__mirs_get","parameters":[{"name":"stake_address","in":"path","required":true,"schema":{"type":"string","title":"Stake Address"}},{"name":"count","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"default":100,"title":"Count"}},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"default":1,"title":"Page"}},{"name":"order","in":"query","required":false,"schema":{"type":"string","default":"asc","title":"Order"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"type":"object","additionalProperties":true},"title":"Response Account Mirs Api Accounts  Stake Address  Mirs Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/accounts/{stake_address}/addresses":{"get":{"tags":["Cardano » Accounts"],"summary":"Account Addresses","description":"Cached (single-flight): the live-balance + tx_count follow-up queries\nover all addresses of a stake key can take several seconds (P1 audit\n2026-09-16).","operationId":"account_addresses_api_accounts__stake_address__addresses_get","parameters":[{"name":"stake_address","in":"path","required":true,"schema":{"type":"string","title":"Stake Address"}},{"name":"count","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"default":100,"title":"Count"}},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"default":1,"title":"Page"}},{"name":"order","in":"query","required":false,"schema":{"type":"string","default":"asc","title":"Order"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"type":"object","additionalProperties":true},"title":"Response Account Addresses Api Accounts  Stake Address  Addresses Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/accounts/{stake_address}/addresses/assets":{"get":{"tags":["Cardano » Accounts"],"summary":"Account Addresses Assets","operationId":"account_addresses_assets_api_accounts__stake_address__addresses_assets_get","parameters":[{"name":"stake_address","in":"path","required":true,"schema":{"type":"string","title":"Stake Address"}},{"name":"count","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"default":100,"title":"Count"}},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"default":1,"title":"Page"}},{"name":"order","in":"query","required":false,"schema":{"type":"string","default":"asc","title":"Order"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"type":"object","additionalProperties":true},"title":"Response Account Addresses Assets Api Accounts  Stake Address  Addresses Assets Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/accounts/{stake_address}/addresses/total":{"get":{"tags":["Cardano » Accounts"],"summary":"Account Addresses Total","description":"Cached (single-flight): the received/held asset joins across all\naddresses of a stake key can take several seconds (P1 audit 2026-09-16).","operationId":"account_addresses_total_api_accounts__stake_address__addresses_total_get","parameters":[{"name":"stake_address","in":"path","required":true,"schema":{"type":"string","title":"Stake Address"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Account Addresses Total Api Accounts  Stake Address  Addresses Total Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/accounts/{stake_address}/utxos":{"get":{"tags":["Cardano » Accounts"],"summary":"Account Utxos","description":"Cached (single-flight): the ma_tx_out asset lookup for all UTXOs of a\n\"hot\" stake key was measured at 17s+ (P1 audit 2026-09-16).","operationId":"account_utxos_api_accounts__stake_address__utxos_get","parameters":[{"name":"stake_address","in":"path","required":true,"schema":{"type":"string","title":"Stake Address"}},{"name":"count","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"default":100,"title":"Count"}},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"default":1,"title":"Page"}},{"name":"order","in":"query","required":false,"schema":{"type":"string","default":"asc","title":"Order"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"type":"object","additionalProperties":true},"title":"Response Account Utxos Api Accounts  Stake Address  Utxos Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/accounts/{stake_address}/transactions":{"get":{"tags":["Cardano » Accounts"],"summary":"Account Transactions","description":"Cached (single-flight): the 6-way UNION + per-tx scalar subqueries\nwere measured at 12.5s on a \"hot\" stake key (P1 audit 2026-09-16).","operationId":"account_transactions_api_accounts__stake_address__transactions_get","parameters":[{"name":"stake_address","in":"path","required":true,"schema":{"type":"string","title":"Stake Address"}},{"name":"count","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"default":100,"title":"Count"}},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"default":1,"title":"Page"}},{"name":"order","in":"query","required":false,"schema":{"type":"string","default":"asc","title":"Order"}},{"name":"from","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Block number or 'block:index' (inclusive, lower bound)","title":"From"},"description":"Block number or 'block:index' (inclusive, lower bound)"},{"name":"to","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Block number or 'block:index' (inclusive, upper bound)","title":"To"},"description":"Block number or 'block:index' (inclusive, upper bound)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"type":"object","additionalProperties":true},"title":"Response Account Transactions Api Accounts  Stake Address  Transactions Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/addresses/{address}":{"get":{"tags":["Cardano » Addresses","Cardano » Addresses"],"summary":"Address Summary","operationId":"address_summary_api_addresses__address__get","parameters":[{"name":"address","in":"path","required":true,"schema":{"type":"string","title":"Address"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Address Summary Api Addresses  Address  Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/addresses/{address}/extended":{"get":{"tags":["Cardano » Addresses","Cardano » Addresses"],"summary":"Address Summary Extended","description":"Same as /addresses/{address} but amount entries include `decimals` and\n`has_nft_onchain_metadata`, resolved from the most recent CIP-25 mint metadata\n(tx_metadata key 721). CIP-68 reference-NFT datum parsing is not yet supported.\n\nCached (single-flight): for asset-heavy \"hot\" addresses the CIP-25/68\nresolution join can take several seconds (P1 audit 2026-09-16).","operationId":"address_summary_extended_api_addresses__address__extended_get","parameters":[{"name":"address","in":"path","required":true,"schema":{"type":"string","title":"Address"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Address Summary Extended Api Addresses  Address  Extended Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/addresses/{address}/total":{"get":{"tags":["Cardano » Addresses","Cardano » Addresses"],"summary":"Address Total","description":"Cached (single-flight): the received/held asset joins below can take\nseveral seconds each on \"hot\" addresses with many UTXOs (P1 audit\n2026-09-16) — cache repeat lookups instead of re-running all 4 queries.","operationId":"address_total_api_addresses__address__total_get","parameters":[{"name":"address","in":"path","required":true,"schema":{"type":"string","title":"Address"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Address Total Api Addresses  Address  Total Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/addresses/{address}/tx_count":{"get":{"tags":["Cardano » Addresses","Cardano » Addresses"],"summary":"Address Tx Count","description":"Lightweight transaction count for an address — much faster than /total\nbecause it does not aggregate per-asset received/sent sums.\n\nStill cached (single-flight): the UNION scan can take several seconds on\n\"hot\" addresses with many UTXOs (P1 audit 2026-09-16).","operationId":"address_tx_count_api_addresses__address__tx_count_get","parameters":[{"name":"address","in":"path","required":true,"schema":{"type":"string","title":"Address"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Address Tx Count Api Addresses  Address  Tx Count Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/addresses/{address}/utxos":{"get":{"tags":["Cardano » Addresses","Cardano » Addresses"],"summary":"Address Utxos","description":"Cached (single-flight): on \"hot\" addresses this can take 20s+ (P1\naudit 2026-09-16), was timing out (504) under concurrent load.","operationId":"address_utxos_api_addresses__address__utxos_get","parameters":[{"name":"address","in":"path","required":true,"schema":{"type":"string","title":"Address"}},{"name":"count","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"default":100,"title":"Count"}},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"default":1,"title":"Page"}},{"name":"order","in":"query","required":false,"schema":{"type":"string","default":"asc","title":"Order"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"type":"object","additionalProperties":true},"title":"Response Address Utxos Api Addresses  Address  Utxos Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/addresses/{address}/utxos/{asset}":{"get":{"tags":["Cardano » Addresses","Cardano » Addresses"],"summary":"Address Utxos By Asset","description":"UTXOs at this address containing the given asset unit (use `lovelace` for ada-only UTXOs).","operationId":"address_utxos_by_asset_api_addresses__address__utxos__asset__get","parameters":[{"name":"address","in":"path","required":true,"schema":{"type":"string","title":"Address"}},{"name":"asset","in":"path","required":true,"schema":{"type":"string","title":"Asset"}},{"name":"count","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"default":100,"title":"Count"}},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"default":1,"title":"Page"}},{"name":"order","in":"query","required":false,"schema":{"type":"string","default":"asc","title":"Order"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"type":"object","additionalProperties":true},"title":"Response Address Utxos By Asset Api Addresses  Address  Utxos  Asset  Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/addresses/{address}/txs":{"get":{"tags":["Cardano » Addresses","Cardano » Addresses"],"summary":"Address Txs","description":"Deprecated — use /addresses/{address}/transactions instead.","operationId":"address_txs_api_addresses__address__txs_get","deprecated":true,"parameters":[{"name":"address","in":"path","required":true,"schema":{"type":"string","title":"Address"}},{"name":"count","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"default":100,"title":"Count"}},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"default":1,"title":"Page"}},{"name":"order","in":"query","required":false,"schema":{"type":"string","default":"asc","title":"Order"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"type":"string"},"title":"Response Address Txs Api Addresses  Address  Txs Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/addresses/{address}/transactions":{"get":{"tags":["Cardano » Addresses","Cardano » Addresses"],"summary":"Address Transactions","description":"Cached (single-flight): the per-tx spent/received scalar subqueries on\ntop of the UNION scan can take 10s+ on \"hot\" addresses (P1 audit 2026-09-16).","operationId":"address_transactions_api_addresses__address__transactions_get","parameters":[{"name":"address","in":"path","required":true,"schema":{"type":"string","title":"Address"}},{"name":"count","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"default":100,"title":"Count"}},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"default":1,"title":"Page"}},{"name":"order","in":"query","required":false,"schema":{"type":"string","default":"asc","title":"Order"}},{"name":"from","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Block number or 'block:index' (inclusive)","title":"From"},"description":"Block number or 'block:index' (inclusive)"},{"name":"to","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Block number or 'block:index' (inclusive)","title":"To"},"description":"Block number or 'block:index' (inclusive)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"type":"object","additionalProperties":true},"title":"Response Address Transactions Api Addresses  Address  Transactions Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/addresses/{address}/info":{"get":{"tags":["Cardano » Addresses","Cardano » Addresses"],"summary":"Address Info","description":"Decoded metadata for any valid address on this network, used or not.\n\nUnlike the other address routes this answers 200 for a valid address that\nhas never appeared on-chain. `used` is true/false from the indexed\n`tx_out` lookup, or null when the address is too long for that index\n(oversized Byron addresses) so usage can't be determined reliably.\n\n`stake_credential` is decoded from the address itself (base addresses\nonly). It identifies the delegation part, not the address owner: anyone\ncan build an address with any stake credential. `stake_address` is the\nvalue db-sync recorded on-chain when the address has been used\n(`stake_address_source: \"chain\"`, pointers resolved), otherwise the\ndecoded one (`\"address\"`), otherwise null.\n\nNot cached: one indexed lookup per request, so no per-address cache\nentries or locks.","operationId":"address_info_api_addresses__address__info_get","parameters":[{"name":"address","in":"path","required":true,"schema":{"type":"string","title":"Address"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Address Info Api Addresses  Address  Info Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/pools":{"get":{"tags":["Cardano » Pools"],"summary":"List Pools","description":"Return the bech32 pool IDs registered on-chain (latest update per pool).","operationId":"list_pools_api_pools_get","parameters":[{"name":"count","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"default":100,"title":"Count"}},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"default":1,"title":"Page"}},{"name":"order","in":"query","required":false,"schema":{"type":"string","default":"asc","title":"Order"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"type":"string"},"title":"Response List Pools Api Pools Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/pools/extended":{"get":{"tags":["Cardano » Pools"],"summary":"List Pools Extended","description":"Pools enriched with ticker, live stake, pledge and recent block count.\n\nDesigned for a home-page leaderboard widget; ranks by live stake desc when\n`order=desc`. Uses the latest pool_update per pool for pledge and the latest\npool offline metadata for the ticker.","operationId":"list_pools_extended_api_pools_extended_get","parameters":[{"name":"count","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"default":100,"title":"Count"}},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"default":1,"title":"Page"}},{"name":"order","in":"query","required":false,"schema":{"type":"string","default":"asc","title":"Order"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"type":"object","additionalProperties":true},"title":"Response List Pools Extended Api Pools Extended Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/pools/{pool_id}":{"get":{"tags":["Cardano » Pools"],"summary":"Pool Info","description":"Core info about a stake pool — margin, pledge, live/active stake, saturation.","operationId":"pool_info_api_pools__pool_id__get","parameters":[{"name":"pool_id","in":"path","required":true,"schema":{"type":"string","title":"Pool Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Pool Info Api Pools  Pool Id  Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/pools/{pool_id}/history":{"get":{"tags":["Cardano » Pools"],"summary":"Pool History","operationId":"pool_history_api_pools__pool_id__history_get","parameters":[{"name":"pool_id","in":"path","required":true,"schema":{"type":"string","title":"Pool Id"}},{"name":"count","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"default":100,"title":"Count"}},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"default":1,"title":"Page"}},{"name":"order","in":"query","required":false,"schema":{"type":"string","default":"asc","title":"Order"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"type":"object","additionalProperties":true},"title":"Response Pool History Api Pools  Pool Id  History Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/epochs/latest":{"get":{"tags":["Cardano » Epochs"],"summary":"Epochs Latest","description":"Most recent epoch observed in the DB.","operationId":"epochs_latest_api_epochs_latest_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Epochs Latest Api Epochs Latest Get"}}}}}}},"/api/epochs/latest/parameters":{"get":{"tags":["Cardano » Epochs"],"summary":"Epochs Latest Parameters","description":"Protocol parameters active in the latest epoch (best-effort, DB-Sync exposed).","operationId":"epochs_latest_parameters_api_epochs_latest_parameters_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Epochs Latest Parameters Api Epochs Latest Parameters Get"}}}}}}},"/api/epochs/{number}":{"get":{"tags":["Cardano » Epochs"],"summary":"Epoch By Number","operationId":"epoch_by_number_api_epochs__number__get","parameters":[{"name":"number","in":"path","required":true,"schema":{"type":"integer","title":"Number"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Epoch By Number Api Epochs  Number  Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/epochs/{number}/blocks":{"get":{"tags":["Cardano » Epochs"],"summary":"Epoch Blocks","description":"Blocks minted within a given epoch (newest first by default).","operationId":"epoch_blocks_api_epochs__number__blocks_get","parameters":[{"name":"number","in":"path","required":true,"schema":{"type":"integer","title":"Number"}},{"name":"count","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"default":25,"title":"Count"}},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"default":1,"title":"Page"}},{"name":"order","in":"query","required":false,"schema":{"type":"string","default":"desc","title":"Order"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"type":"object","additionalProperties":true},"title":"Response Epoch Blocks Api Epochs  Number  Blocks Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/txs/recent":{"get":{"tags":["Cardano » Transactions"],"summary":"Recent Transactions","description":"Latest N transactions across the chain (newest first), joined with their\nparent block. Lightweight enough for a home-page polling widget.\n\nAlso flags each tx with `has_mint` / `has_stake_cert` / `has_script` so the\nhome-page widget can offer client-side filter pills (NFT mints / stake ops /\nsmart contract) without extra round-trips.","operationId":"recent_transactions_api_txs_recent_get","parameters":[{"name":"count","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"default":20,"title":"Count"}},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"default":1,"title":"Page"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"type":"object","additionalProperties":true},"title":"Response Recent Transactions Api Txs Recent Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/txs/{hash}":{"get":{"tags":["Cardano » Transactions"],"summary":"Tx Info","description":"Transaction summary — block coords, fees, size, validity window, asset-mint counts.","operationId":"tx_info_api_txs__hash__get","parameters":[{"name":"hash","in":"path","required":true,"schema":{"type":"string","title":"Hash"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Tx Info Api Txs  Hash  Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/txs/{hash}/utxos":{"get":{"tags":["Cardano » Transactions"],"summary":"Tx Utxos","description":"Inputs and outputs (with asset bundles) for the given transaction.","operationId":"tx_utxos_api_txs__hash__utxos_get","parameters":[{"name":"hash","in":"path","required":true,"schema":{"type":"string","title":"Hash"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Tx Utxos Api Txs  Hash  Utxos Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/txs/{hash}/metadata":{"get":{"tags":["Cardano » Transactions"],"summary":"Tx Metadata","description":"All tx metadata entries (key, json) for the given transaction.","operationId":"tx_metadata_api_txs__hash__metadata_get","parameters":[{"name":"hash","in":"path","required":true,"schema":{"type":"string","title":"Hash"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"type":"object","additionalProperties":true},"title":"Response Tx Metadata Api Txs  Hash  Metadata Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/assets":{"get":{"tags":["Cardano » Assets"],"summary":"List Assets","operationId":"list_assets_api_assets_get","parameters":[{"name":"count","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"default":100,"title":"Count"}},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"default":1,"title":"Page"}},{"name":"order","in":"query","required":false,"schema":{"type":"string","default":"asc","title":"Order"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"type":"object","additionalProperties":true},"title":"Response List Assets Api Assets Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/assets/{asset}":{"get":{"tags":["Cardano » Assets"],"summary":"Asset Summary","operationId":"asset_summary_api_assets__asset__get","parameters":[{"name":"asset","in":"path","required":true,"schema":{"type":"string","title":"Asset"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Asset Summary Api Assets  Asset  Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/assets/{asset}/history":{"get":{"tags":["Cardano » Assets"],"summary":"Asset History","operationId":"asset_history_api_assets__asset__history_get","parameters":[{"name":"asset","in":"path","required":true,"schema":{"type":"string","title":"Asset"}},{"name":"count","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"default":100,"title":"Count"}},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"default":1,"title":"Page"}},{"name":"order","in":"query","required":false,"schema":{"type":"string","default":"asc","title":"Order"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"type":"object","additionalProperties":true},"title":"Response Asset History Api Assets  Asset  History Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/assets/{asset}/transactions":{"get":{"tags":["Cardano » Assets"],"summary":"Asset Transactions","operationId":"asset_transactions_api_assets__asset__transactions_get","parameters":[{"name":"asset","in":"path","required":true,"schema":{"type":"string","title":"Asset"}},{"name":"count","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"default":100,"title":"Count"}},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"default":1,"title":"Page"}},{"name":"order","in":"query","required":false,"schema":{"type":"string","default":"asc","title":"Order"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"type":"object","additionalProperties":true},"title":"Response Asset Transactions Api Assets  Asset  Transactions Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/assets/{asset}/addresses":{"get":{"tags":["Cardano » Assets"],"summary":"Asset Addresses","operationId":"asset_addresses_api_assets__asset__addresses_get","parameters":[{"name":"asset","in":"path","required":true,"schema":{"type":"string","title":"Asset"}},{"name":"count","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"default":100,"title":"Count"}},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"default":1,"title":"Page"}},{"name":"order","in":"query","required":false,"schema":{"type":"string","default":"desc","title":"Order"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"type":"object","additionalProperties":true},"title":"Response Asset Addresses Api Assets  Asset  Addresses Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/assets/policy/{policy_id}":{"get":{"tags":["Cardano » Assets"],"summary":"Policy Assets","operationId":"policy_assets_api_assets_policy__policy_id__get","parameters":[{"name":"policy_id","in":"path","required":true,"schema":{"type":"string","title":"Policy Id"}},{"name":"count","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"default":100,"title":"Count"}},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"default":1,"title":"Page"}},{"name":"order","in":"query","required":false,"schema":{"type":"string","default":"asc","title":"Order"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"type":"object","additionalProperties":true},"title":"Response Policy Assets Api Assets Policy  Policy Id  Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/blocks/latest":{"get":{"tags":["Cardano » Blocks"],"summary":"Block Latest","operationId":"block_latest_api_blocks_latest_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Block Latest Api Blocks Latest Get"}}}}}}},"/api/blocks/recent":{"get":{"tags":["Cardano » Blocks"],"summary":"Recent Blocks","description":"Latest N blocks across the chain (newest first), with summary stats.\n\nLighter than `/blocks/latest/previous` because it doesn't include\nconfirmations / VRF / op_cert / prev-block-hash lookups.","operationId":"recent_blocks_api_blocks_recent_get","parameters":[{"name":"count","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"default":20,"title":"Count"}},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"default":1,"title":"Page"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"type":"object","additionalProperties":true},"title":"Response Recent Blocks Api Blocks Recent Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/blocks/latest/txs":{"get":{"tags":["Cardano » Blocks"],"summary":"Block Latest Txs","operationId":"block_latest_txs_api_blocks_latest_txs_get","parameters":[{"name":"count","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"default":100,"title":"Count"}},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"default":1,"title":"Page"}},{"name":"order","in":"query","required":false,"schema":{"type":"string","default":"asc","title":"Order"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"type":"string"},"title":"Response Block Latest Txs Api Blocks Latest Txs Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/blocks/{hash_or_number}":{"get":{"tags":["Cardano » Blocks"],"summary":"Block By Id","operationId":"block_by_id_api_blocks__hash_or_number__get","parameters":[{"name":"hash_or_number","in":"path","required":true,"schema":{"type":"string","title":"Hash Or Number"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Block By Id Api Blocks  Hash Or Number  Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/blocks/{hash_or_number}/next":{"get":{"tags":["Cardano » Blocks"],"summary":"Block Next","operationId":"block_next_api_blocks__hash_or_number__next_get","parameters":[{"name":"hash_or_number","in":"path","required":true,"schema":{"type":"string","title":"Hash Or Number"}},{"name":"count","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"default":100,"title":"Count"}},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"default":1,"title":"Page"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"type":"object","additionalProperties":true},"title":"Response Block Next Api Blocks  Hash Or Number  Next Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/blocks/{hash_or_number}/previous":{"get":{"tags":["Cardano » Blocks"],"summary":"Block Previous","operationId":"block_previous_api_blocks__hash_or_number__previous_get","parameters":[{"name":"hash_or_number","in":"path","required":true,"schema":{"type":"string","title":"Hash Or Number"}},{"name":"count","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"default":100,"title":"Count"}},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"default":1,"title":"Page"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"type":"object","additionalProperties":true},"title":"Response Block Previous Api Blocks  Hash Or Number  Previous Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/blocks/slot/{slot_number}":{"get":{"tags":["Cardano » Blocks"],"summary":"Block By Slot","operationId":"block_by_slot_api_blocks_slot__slot_number__get","parameters":[{"name":"slot_number","in":"path","required":true,"schema":{"type":"integer","title":"Slot Number"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Block By Slot Api Blocks Slot  Slot Number  Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/blocks/epoch/{epoch_number}/slot/{slot_number}":{"get":{"tags":["Cardano » Blocks"],"summary":"Block By Epoch Slot","operationId":"block_by_epoch_slot_api_blocks_epoch__epoch_number__slot__slot_number__get","parameters":[{"name":"epoch_number","in":"path","required":true,"schema":{"type":"integer","title":"Epoch Number"}},{"name":"slot_number","in":"path","required":true,"schema":{"type":"integer","title":"Slot Number"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Block By Epoch Slot Api Blocks Epoch  Epoch Number  Slot  Slot Number  Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/blocks/{hash_or_number}/txs":{"get":{"tags":["Cardano » Blocks"],"summary":"Block Txs","operationId":"block_txs_api_blocks__hash_or_number__txs_get","parameters":[{"name":"hash_or_number","in":"path","required":true,"schema":{"type":"string","title":"Hash Or Number"}},{"name":"count","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"default":100,"title":"Count"}},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"default":1,"title":"Page"}},{"name":"order","in":"query","required":false,"schema":{"type":"string","default":"asc","title":"Order"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"type":"string"},"title":"Response Block Txs Api Blocks  Hash Or Number  Txs Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/blocks/{hash_or_number}/addresses":{"get":{"tags":["Cardano » Blocks"],"summary":"Block Affected Addresses","operationId":"block_affected_addresses_api_blocks__hash_or_number__addresses_get","parameters":[{"name":"hash_or_number","in":"path","required":true,"schema":{"type":"string","title":"Hash Or Number"}},{"name":"count","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"default":100,"title":"Count"}},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"default":1,"title":"Page"}},{"name":"order","in":"query","required":false,"schema":{"type":"string","default":"asc","title":"Order"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"type":"object","additionalProperties":true},"title":"Response Block Affected Addresses Api Blocks  Hash Or Number  Addresses Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/metadata/txs/labels":{"get":{"tags":["Cardano » Metadata"],"summary":"Metadata Labels","description":"Every distinct metadata label observed on-chain, with a usage count.\n\nBacked by a background-refreshed cache (see core/lifespan.py's stats\nwarmer) — the underlying GROUP BY has no WHERE clause so it must touch\nthe entire tx_metadata table (30M+ rows on mainnet, ~70s cold), same\nclass of problem as /api/network/stats.","operationId":"metadata_labels_api_metadata_txs_labels_get","parameters":[{"name":"count","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"default":100,"title":"Count"}},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"default":1,"title":"Page"}},{"name":"order","in":"query","required":false,"schema":{"type":"string","default":"asc","title":"Order"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"type":"object","additionalProperties":true},"title":"Response Metadata Labels Api Metadata Txs Labels Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/metadata/txs/labels/{label}":{"get":{"tags":["Cardano » Metadata"],"summary":"Metadata Txs By Label","description":"Every transaction that attached the given metadata label (newest first\nby default). Returns an empty list — not a 404 — when the label is\nwell-formed but unused, matching the other `list`-shaped endpoints.","operationId":"metadata_txs_by_label_api_metadata_txs_labels__label__get","parameters":[{"name":"label","in":"path","required":true,"schema":{"type":"string","title":"Label"}},{"name":"count","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"default":100,"title":"Count"}},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"default":1,"title":"Page"}},{"name":"order","in":"query","required":false,"schema":{"type":"string","default":"desc","title":"Order"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"type":"object","additionalProperties":true},"title":"Response Metadata Txs By Label Api Metadata Txs Labels  Label  Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/accounts/{stake_address}/drep_delegations":{"get":{"tags":["Cardano » Governance"],"summary":"Account Drep Delegations","description":"Every vote delegation certificate of this stake address, in chain\norder, with the DRep's identifiers (`drep_id` is CIP-129; see\n/governance/dreps).\n\n`current` is true only on the address's latest delegation, and only\nwhile it still stands: a later stake key deregistration, or the DRep\nretiring after it, clears a delegation (the same rule as the DReps'\n`delegators_count`). /accounts/{stake_address} keeps reporting its\n`drep_id` in db-sync's legacy form, unchanged.\n\nAn invalid or wrong-network address is a 400, an address never seen\non-chain a 404, and one that never delegated its vote an empty list.","operationId":"account_drep_delegations_api_accounts__stake_address__drep_delegations_get","parameters":[{"name":"stake_address","in":"path","required":true,"schema":{"type":"string","title":"Stake Address"}},{"name":"count","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"default":100,"title":"Count"}},{"name":"page","in":"query","required":false,"schema":{"type":"integer","maximum":1000000,"minimum":1,"default":1,"title":"Page"}},{"name":"order","in":"query","required":false,"schema":{"type":"string","default":"asc","title":"Order"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"type":"object","additionalProperties":true},"title":"Response Account Drep Delegations Api Accounts  Stake Address  Drep Delegations Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/governance/committee":{"get":{"tags":["Cardano » Governance"],"summary":"Committee","description":"The Constitutional Committee in effect during an epoch (default: the\ncurrent epoch): the proposal that elected it (null for the genesis\ncommittee), quorum, and each member with its term and status.\n\nMember `status` (`active`, `expired`, `resigned`, `not_authorized`) and\n`hot_id` are derived from on-chain certificates as of the end of the\nepoch (the current tip for the current epoch): db-sync records the\ncertificates but not the ledger's committee state.\n\n`data_status` is `current`, `historical` or `unavailable` (before Conway\ngovernance, or not yet recorded by db-sync — the other fields are null\nthen).","operationId":"committee_api_governance_committee_get","parameters":[{"name":"epoch","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","maximum":2147483647,"minimum":0},{"type":"null"}],"description":"Epoch number (default: the current epoch)","title":"Epoch"},"description":"Epoch number (default: the current epoch)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Committee Api Governance Committee Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/governance/committee/history":{"get":{"tags":["Cardano » Governance"],"summary":"Committee History","description":"Every committee db-sync recorded, oldest first — including committees\nproposed by a NewCommittee action that was never enacted\n(`ever_effective: false`, `enacted_by.status` expired / dropped).\n`effective_to_epoch` is null for the committee currently in effect.","operationId":"committee_history_api_governance_committee_history_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"items":{"additionalProperties":true,"type":"object"},"type":"array","title":"Response Committee History Api Governance Committee History Get"}}}}}}},"/api/governance/committee/members/{credential}":{"get":{"tags":["Cardano » Governance"],"summary":"Committee Member","description":"One committee member (cold credential): committee memberships and\nterms, every hot key it authorised, resignation, its status in the\ncurrent committee, and a tally of its votes (latest valid vote per\nproposal, across all of its hot keys).\n\nAccepts the member's cold credential or any hot key it authorised:\nCIP-129 `cc_cold1…` / `cc_hot1…`, CIP-105 forms, or 56-char hex (tried\nas a cold credential first). `status` is `not_member` when the\ncredential isn't in the current committee; otherwise derived from\non-chain certificates like /governance/committee.","operationId":"committee_member_api_governance_committee_members__credential__get","parameters":[{"name":"credential","in":"path","required":true,"schema":{"type":"string","title":"Credential"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Committee Member Api Governance Committee Members  Credential  Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/governance/committee/members/{credential}/votes":{"get":{"tags":["Cardano » Governance"],"summary":"Committee Member Votes","description":"Every vote this committee member cast, through any of its hot keys\n(each vote is attributed to the member that had authorised the voting\nhot key at the time). `superseded` marks a vote later replaced by a newer\nvote from the same member on the same proposal, even under another hot\nkey. `voter_hot_id` is the hot key used.","operationId":"committee_member_votes_api_governance_committee_members__credential__votes_get","parameters":[{"name":"credential","in":"path","required":true,"schema":{"type":"string","title":"Credential"}},{"name":"count","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"default":100,"title":"Count"}},{"name":"page","in":"query","required":false,"schema":{"type":"integer","maximum":1000000,"minimum":1,"default":1,"title":"Page"}},{"name":"order","in":"query","required":false,"schema":{"type":"string","default":"asc","title":"Order"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"type":"object","additionalProperties":true},"title":"Response Committee Member Votes Api Governance Committee Members  Credential  Votes Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/governance/constitution":{"get":{"tags":["Cardano » Governance"],"summary":"Constitution","description":"The constitution in effect during an epoch (default: the current\nepoch): anchor, guardrail script hash, the proposal that enacted it\n(null for the genesis constitution) and the epochs it has been in effect.\n\n`data_status` is `current`, `historical` or `unavailable` (before Conway\ngovernance, or not yet recorded by db-sync — the other fields are null\nthen). `metadata_status` reports db-sync's off-chain fetch of the\nanchor (`valid`, `invalid`, `unchecked`, `fetch_error`, `not_fetched`);\nthe document itself is not returned.","operationId":"constitution_api_governance_constitution_get","parameters":[{"name":"epoch","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","maximum":2147483647,"minimum":0},{"type":"null"}],"description":"Epoch number (default: the current epoch)","title":"Epoch"},"description":"Epoch number (default: the current epoch)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Constitution Api Governance Constitution Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/governance/constitution/history":{"get":{"tags":["Cardano » Governance"],"summary":"Constitution History","description":"Every constitution db-sync recorded, oldest first — including those\nproposed by a NewConstitution action that was never enacted\n(`ever_effective: false`, `enacted_by.status` expired / dropped).\n`effective_to_epoch` is null for the constitution currently in effect.","operationId":"constitution_history_api_governance_constitution_history_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"items":{"additionalProperties":true,"type":"object"},"type":"array","title":"Response Constitution History Api Governance Constitution History Get"}}}}}}},"/api/governance/dreps":{"get":{"tags":["Cardano » Governance"],"summary":"List Dreps","description":"DReps with registration status, `drep_distr` voting power (latest\nsnapshot epoch) and current delegator counts. Includes the special\n`drep_always_abstain` / `drep_always_no_confidence` DReps.\n\n`drep_id` is the CIP-129 id; `drep_id_cip105` the CIP-105 id\n(`drep_script1…` for script DReps) and `drep_id_legacy` db-sync's view.\n`sort=registration` orders by the latest registration certificate.\n\nBacked by a 5-minute cache (the delegator-count aggregate scans every\nvote delegation, ~2s).","operationId":"list_dreps_api_governance_dreps_get","parameters":[{"name":"count","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"default":100,"title":"Count"}},{"name":"page","in":"query","required":false,"schema":{"type":"integer","maximum":1000000,"minimum":1,"default":1,"title":"Page"}},{"name":"order","in":"query","required":false,"schema":{"type":"string","default":"asc","title":"Order"}},{"name":"status","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"registered | retired | special | not_registered","title":"Status"},"description":"registered | retired | special | not_registered"},{"name":"sort","in":"query","required":false,"schema":{"type":"string","description":"registration | voting_power | delegators","default":"registration","title":"Sort"},"description":"registration | voting_power | delegators"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"type":"object","additionalProperties":true},"title":"Response List Dreps Api Governance Dreps Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/governance/dreps/{drep_id}":{"get":{"tags":["Cardano » Governance"],"summary":"Drep Detail","description":"One DRep: identifiers, registration/retirement status and certificate\nreferences, current anchor + off-chain metadata, voting power snapshot,\ndelegator count and a tally of its own (latest-per-proposal) votes.\n\nAccepts every id form: CIP-129 `drep1…`, CIP-105 `drep1…` /\n`drep_script1…`, `drep_vkh1…`, `drep_vk1…`, db-sync's legacy view, 56-char\nhex, or a special DRep name. A bare 28-byte `drep1…` is a key hash\n(CIP-105); use the CIP-129 id to address a script DRep unambiguously.","operationId":"drep_detail_api_governance_dreps__drep_id__get","parameters":[{"name":"drep_id","in":"path","required":true,"schema":{"type":"string","title":"Drep Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Drep Detail Api Governance Dreps  Drep Id  Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/governance/dreps/{drep_id}/delegators":{"get":{"tags":["Cardano » Governance"],"summary":"Drep Delegators","description":"Stake addresses currently vote-delegated to this DRep (same rules as\n`delegators_count`), ordered by delegation certificate.\n\nThe DRep's full delegator list is computed once (cached 2 minutes) and\npaged from memory. Rate-limited to 30 requests/minute per key and client.","operationId":"drep_delegators_api_governance_dreps__drep_id__delegators_get","parameters":[{"name":"drep_id","in":"path","required":true,"schema":{"type":"string","title":"Drep Id"}},{"name":"count","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"default":100,"title":"Count"}},{"name":"page","in":"query","required":false,"schema":{"type":"integer","maximum":1000000,"minimum":1,"default":1,"title":"Page"}},{"name":"order","in":"query","required":false,"schema":{"type":"string","default":"asc","title":"Order"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"type":"object","additionalProperties":true},"title":"Response Drep Delegators Api Governance Dreps  Drep Id  Delegators Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/governance/dreps/{drep_id}/votes":{"get":{"tags":["Cardano » Governance"],"summary":"Drep Votes","description":"Every vote this DRep cast. `superseded` marks a vote later replaced by\na newer vote from the same DRep on the same proposal.","operationId":"drep_votes_api_governance_dreps__drep_id__votes_get","parameters":[{"name":"drep_id","in":"path","required":true,"schema":{"type":"string","title":"Drep Id"}},{"name":"count","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"default":100,"title":"Count"}},{"name":"page","in":"query","required":false,"schema":{"type":"integer","maximum":1000000,"minimum":1,"default":1,"title":"Page"}},{"name":"order","in":"query","required":false,"schema":{"type":"string","default":"asc","title":"Order"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"type":"object","additionalProperties":true},"title":"Response Drep Votes Api Governance Dreps  Drep Id  Votes Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/governance/parameters":{"get":{"tags":["Cardano » Governance"],"summary":"Governance Parameters","description":"Conway governance parameters in effect during an epoch (default: the\ncurrent epoch), grouped: DRep and SPO voting thresholds, committee size\nand term limits (plus the quorum of the committee in effect), governance\naction lifetime and deposit, DRep deposit and activity period.\n\n`data_status` is `current`, `historical`, or `unavailable` — for an epoch\nbefore Conway governance (`unavailable_reason: pre_conway`) or one db-sync\nhasn't recorded parameters for yet (`not_recorded`); the groups are null\nthen. Epochs that haven't started are a 404.\n\nThresholds are fractions as db-sync stores them (double precision; the\nledger holds exact rationals). Deposits are lovelace strings. All other\nprotocol parameters: /api/epochs/latest/parameters.","operationId":"governance_parameters_api_governance_parameters_get","parameters":[{"name":"epoch","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","maximum":2147483647,"minimum":0},{"type":"null"}],"description":"Epoch number (default: the current epoch)","title":"Epoch"},"description":"Epoch number (default: the current epoch)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Governance Parameters Api Governance Parameters Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/governance/pools/{pool_id}/votes":{"get":{"tags":["Cardano » Governance"],"summary":"Pool Votes","description":"Every governance vote this stake pool cast (`pool1…` id or 56-char\nhex). Same fields as /governance/dreps/{drep_id}/votes; `superseded`\nmarks a vote later replaced by a newer vote from the pool on the same\nproposal. A known pool that never voted returns an empty list.","operationId":"pool_votes_api_governance_pools__pool_id__votes_get","parameters":[{"name":"pool_id","in":"path","required":true,"schema":{"type":"string","title":"Pool Id"}},{"name":"count","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"default":100,"title":"Count"}},{"name":"page","in":"query","required":false,"schema":{"type":"integer","maximum":1000000,"minimum":1,"default":1,"title":"Page"}},{"name":"order","in":"query","required":false,"schema":{"type":"string","default":"asc","title":"Order"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"type":"object","additionalProperties":true},"title":"Response Pool Votes Api Governance Pools  Pool Id  Votes Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/governance/proposals":{"get":{"tags":["Cardano » Governance"],"summary":"List Proposals","description":"Governance actions in submission order, filterable by lifecycle\nstatus and action type.\n\n`expiration` is db-sync's raw column: the epoch at whose start the action\nis finally ratified or expired (equal to `expired_epoch` when it expires).\n`expires_after_epoch` (= expiration - 1) is the ledger's `gasExpiresAfter`,\nthe last epoch in which the action is still open.","operationId":"list_proposals_api_governance_proposals_get","parameters":[{"name":"count","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"default":100,"title":"Count"}},{"name":"page","in":"query","required":false,"schema":{"type":"integer","maximum":1000000,"minimum":1,"default":1,"title":"Page"}},{"name":"order","in":"query","required":false,"schema":{"type":"string","default":"asc","title":"Order"}},{"name":"status","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"active | ratified | enacted | expired | dropped","title":"Status"},"description":"active | ratified | enacted | expired | dropped"},{"name":"type","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"parameter_change, hard_fork_initiation, treasury_withdrawals, no_confidence, new_committee, new_constitution, info_action","title":"Type"},"description":"parameter_change, hard_fork_initiation, treasury_withdrawals, no_confidence, new_committee, new_constitution, info_action"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"type":"object","additionalProperties":true},"title":"Response List Proposals Api Governance Proposals Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/governance/proposals/live":{"get":{"tags":["Cardano » Governance"],"summary":"List Live Proposals","description":"Governance actions still open for voting (not ratified, enacted,\nexpired or dropped), each with its current per-role vote counts (latest\nvalid vote per voter) and `committee_member_votes` (see the detail\nroute).","operationId":"list_live_proposals_api_governance_proposals_live_get","parameters":[{"name":"count","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"default":100,"title":"Count"}},{"name":"page","in":"query","required":false,"schema":{"type":"integer","maximum":1000000,"minimum":1,"default":1,"title":"Page"}},{"name":"order","in":"query","required":false,"schema":{"type":"string","default":"asc","title":"Order"}},{"name":"type","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"parameter_change, hard_fork_initiation, treasury_withdrawals, no_confidence, new_committee, new_constitution, info_action","title":"Type"},"description":"parameter_change, hard_fork_initiation, treasury_withdrawals, no_confidence, new_committee, new_constitution, info_action"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"type":"object","additionalProperties":true},"title":"Response List Live Proposals Api Governance Proposals Live Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/governance/proposals/{tx_hash}/{cert_index}":{"get":{"tags":["Cardano » Governance"],"summary":"Proposal Detail","description":"One governance action: lifecycle, deposit/return address, anchor and\noff-chain metadata, on-chain description, previous action, per-role vote\ncounts, and (while active) DRep stake-weighted positions from the latest\n`drep_distr` snapshot — see `drep_voting_power` below.\n\n`vote_counts.constitutional_committee` counts every committee hot key's\nlatest vote, unchanged since Phase 1. `committee_member_votes` counts\nper *member* (cold credential) for the committee in effect during\n`evaluated_epoch` (the current epoch while active, else the last epoch\nthe action was open): only eligible members count (not expired,\nresigned or unauthorised, membership and status derived from on-chain\ncertificates), each by the vote of its current hot key — so a member\nvoting under two hot keys across a rotation counts once. Votes that\ndon't count are reported in `uncounted_votes`; eligible members without\na vote as `not_voted`. Descriptive only: no thresholds or quorum.","operationId":"proposal_detail_api_governance_proposals__tx_hash___cert_index__get","parameters":[{"name":"tx_hash","in":"path","required":true,"schema":{"type":"string","title":"Tx Hash"}},{"name":"cert_index","in":"path","required":true,"schema":{"type":"integer","maximum":65535,"minimum":0,"description":"Proposal index within its transaction","title":"Cert Index"},"description":"Proposal index within its transaction"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Proposal Detail Api Governance Proposals  Tx Hash   Cert Index  Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/governance/proposals/{tx_hash}/{cert_index}/votes":{"get":{"tags":["Cardano » Governance"],"summary":"Proposal Votes","description":"Every vote cast on this governance action. `superseded` marks a vote\nlater replaced by a newer vote from the same voter. DRep voters are CIP-129\n`drep1…` ids, committee voters CIP-129 `cc_hot1…` ids, SPOs `pool1…`.\nCommittee votes also carry `voter_cc_cold`, the member (CIP-129\n`cc_cold1…`) the hot key belonged to when the vote was cast (null for\nother roles).","operationId":"proposal_votes_api_governance_proposals__tx_hash___cert_index__votes_get","parameters":[{"name":"tx_hash","in":"path","required":true,"schema":{"type":"string","title":"Tx Hash"}},{"name":"cert_index","in":"path","required":true,"schema":{"type":"integer","maximum":65535,"minimum":0,"description":"Proposal index within its transaction","title":"Cert Index"},"description":"Proposal index within its transaction"},{"name":"count","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"default":100,"title":"Count"}},{"name":"page","in":"query","required":false,"schema":{"type":"integer","maximum":1000000,"minimum":1,"default":1,"title":"Page"}},{"name":"order","in":"query","required":false,"schema":{"type":"string","default":"asc","title":"Order"}},{"name":"voter_role","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"drep | spo | constitutional_committee","title":"Voter Role"},"description":"drep | spo | constitutional_committee"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"type":"object","additionalProperties":true},"title":"Response Proposal Votes Api Governance Proposals  Tx Hash   Cert Index  Votes Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/signup":{"post":{"tags":["Service"],"summary":"Public Signup","description":"Create a free non-admin API key, emailed to `email` via Resend.\nExpires automatically after `SIGNUP_KEY_EXPIRY_DAYS` days. Heavily\nrate-limited per remote IP.","operationId":"public_signup_api_signup_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SignupRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Public Signup Api Signup Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/info":{"get":{"summary":"Api Info","description":"Machine-readable service info.","operationId":"api_info_api_info_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Api Info Api Info Get"}}}}}}},"/api/network":{"get":{"summary":"Network Info","description":"Cardano network the API is currently serving.","operationId":"network_info_api_network_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Network Info Api Network Get"}}}}}}},"/api/network/stats":{"get":{"summary":"Network Stats","description":"Aggregated chain stats for the home-page widgets.\n\nCached in-memory for 5 minutes and proactively refreshed in the\nbackground (see `core.lifespan`'s stats-warmer task, every 4 minutes) —\non big datasets (mainnet) this is a full-table-aggregate query that can\ntake 20-30s+, and it shares a bandwidth-constrained SSH relay tunnel with\nevery other DB request, so it must run infrequently and stay cached long\nenough that user-facing requests (almost) never hit it directly.\n\nOn a cache miss (e.g. right after a restart, before the startup warmer\nfinishes), serve the last successfully computed values instantly from\nMongo (marked `stale: true`) and kick off a background refresh, instead\nof blocking the caller. Only a true first-ever cold start (no persisted\nvalue exists yet) falls back to computing synchronously.","operationId":"network_stats_api_network_stats_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Network Stats Api Network Stats Get"}}}}}}},"/api/network/price":{"get":{"summary":"Network Price","description":"ADA price + market cap from CoinGecko (proxied + cached).\n\nCached in-memory for 60s. Returns the last good value on upstream failure;\nfalls back to nulls if we never succeeded.","operationId":"network_price_api_network_price_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Network Price Api Network Price Get"}}}}}}},"/api/health":{"get":{"summary":"Health","description":"Lightweight liveness/readiness check — always returns 200 even if the\nPostgres pool is down/reconnecting, so the container's readiness probe\npasses instead of crash-looping. `db_connected` reports actual DB state.\n\nCached briefly + single-flighted: a readiness probe can fire every few\nseconds, and while the DB is slow (cold cache after a restore, disk I/O\ncontention) each overlapping call was piling its own duplicate query on\ntop of an already-struggling DB. One query serves every caller for the\nnext few seconds instead.","operationId":"health_api_health_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Health Api Health Get"}}}}}}}},"components":{"schemas":{"HTTPValidationError":{"properties":{"detail":{"items":{"$ref":"#/components/schemas/ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"},"SignupRequest":{"properties":{"email":{"type":"string","format":"email","title":"Email"},"label":{"type":"string","title":"Label","default":""}},"type":"object","required":["email"],"title":"SignupRequest"},"ValidationError":{"properties":{"loc":{"items":{"anyOf":[{"type":"string"},{"type":"integer"}]},"type":"array","title":"Location"},"msg":{"type":"string","title":"Message"},"type":{"type":"string","title":"Error Type"}},"type":"object","required":["loc","msg","type"],"title":"ValidationError"}}}}