Skip to content
Docs
Get API Access
Browse the Documentation

API Reference

Venues

Venue metadata, capabilities, and market coverage.

Every endpoint here authenticates with X-API-Key, answers in the standard envelope and fails with the standard error body.

List venues and current data availability

GEThttps://api.cantoncap.cc/v1/venues
listVenuesETag

Parameters

If-None-Matchstringheaderoptional

Return 304 when this entity tag matches the current representation.

Request

curl -s "https://api.cantoncap.cc/v1/venues" \
  -H "X-API-Key: $CANTONCAP_API_KEY"

Response

200 Venue collection. 304 when If-None-Match matches.

Example Response
{
  "status": {
    "timestamp": "2026-10-11T14:00:00.000Z",
    "elapsed_ms": 18,
    "error_code": 0,
    "error_message": null,
    "request_id": "req_7Hk2pQ9xLm"
  },
  "data": [
    {
      "venue_id": "temple",
      "name": "Canton Coin",
      "market_model": "order_book",
      "last_updated_at": "2026-10-11T14:00:00.000Z",
      "stats": {
        "network": "mainnet",
        "volume_24h_usd": "1320455.18",
        "liquidity_usd": "4120334.10",
        "trade_count_24h": 1284,
        "trade_count_24h_metadata": {
          "as_of": "2026-10-11T14:00:00.000Z",
          "retained": true
        },
        "active_markets": 12,
        "last_updated_at": "2026-10-11T14:00:00.000Z"
      }
    }
  ]
}
  • dataarray of objects
    32 child fields
    • venue_idstring

      Stable CantonCap venue ID, such as temple or cantex.

    • namestring

      Display name. Null when none is published.

    • market_modelenum

      How the market trades: amm, order_book, order_book_rfq or hybrid.

      One ofammorder_bookorder_book_rfqhybrid
    • last_updated_atdate-time

      Time of the latest represented update. For calculated asset prices it is the stored calculation time. Decide acceptable age from it.

    • statsobjectnullable

      Venue statistics. Null when none are available; independent of the profile's timestamp.

      27 child fields
      • networkenum

        Canton network the record belongs to.

        One ofmainnettestnetdevnet
      • volume_24h_usddecimal stringnullable

        24-hour volume in USD; null when unavailable.

      • liquidity_usddecimal stringnullable
      • trade_count_24hintegernullable

        Trades in the last 24 hours. Null when unavailable.

      • trade_count_24h_metadataobjectoptional

        When one venue statistic was measured. retained is true when the newest statistics refresh omitted it and the latest usable earlier value is shown at its own time; judge the statistic's age by as_of, not by the statistics object's last_updated_at. as_of is null when the statistic is unknown.

        2 child fields
        • as_ofdate-timenullable

          End of the window the snapshot covers.

        • retainedboolean
      • active_marketsintegernullable

        Markets currently active.

      • last_updated_atdate-time

        The venue's latest statistics refresh. A statistic kept from an earlier refresh does not move it back; it reports its own time in volume_24h_usd_metadata.as_of or trade_count_24h_metadata.as_of.

      • volume_24h_usd_metadataobjectoptional
        17 child fields
        • as_ofdate-timenullable

          End of the window the snapshot covers.

        • selection_methodenumnullableoptional

          Actual selected method. The legacy method field keeps its reported/trades enum.

          One ofvenue_reported_aggregatecanonical_tradesactivity
        • methodology_versionstringnullable
        • interpretationenumoptional

          Completeness applies to the measurement's own window, not the current wall clock. A zero is a value, not unavailable activity.

          One ofcomplete_totalpartial_subtotalunavailablecoverage_unknown
        • coverage_detailobjectoptional

          Counts come from the selected evidence, never ticker nulls. Null means the detail was not recorded. Missing activity has no native or USD volume; unvalued activity has native volume but no selected USD. Partial and incomplete-time counts concern included markets and may overlap. Retained is null when retention status was not established. No restricted market identities are exposed.

          12 child fields
          • unitenum
            One ofUSDdisplay_currency
          • windowenum

            Rolling window the values cover.

            Always24h
          • starts_atdate-timenullable

            Start of the window the snapshot covers.

          • ends_atdate-timenullable
          • covered_secondsnumbernullable

            Seconds of the window the observations cover.

          • retainedbooleannullable
          • eligible_market_countintegernullable
          • included_market_countintegernullable
          • missing_activity_market_countintegernullable
          • unvalued_market_countintegernullable
          • partial_market_countintegernullable
          • incomplete_time_market_countintegernullable

Headers

  • X-RateLimit-Limit Requests allowed in the current one-minute window.
  • X-RateLimit-Remaining Requests left in the window.
  • X-RateLimit-Reset Unix time, in seconds, when the window resets.
  • ETag Entity tag of this representation. Send it back in If-None-Match.

Errors

StatusCodeWhen
400invalid_requestRequest validation failedA parameter is malformed, out of bounds or not one of its allowed values.
401unauthenticatedA valid API key is requiredX-API-Key is missing or unknown.
403forbiddenThe API key does not resolve to an active planThe key expired, was suspended or has not started.
429rate_limitedThe request rate limit was exceededThe key's one-minute window is used up. Retry after Retry-After seconds.

Get venue detail and source-reported statistics

GEThttps://api.cantoncap.cc/v1/venues/{venue_id}
getVenueETag

Parameters

venue_idenumpathrequired

Stable CantonCap venue ID.

One oftemplecantexoneswapsilvanatradecraftkorarockysend
If-None-Matchstringheaderoptional

Return 304 when this entity tag matches the current representation.

Request

curl -s "https://api.cantoncap.cc/v1/venues/temple" \
  -H "X-API-Key: $CANTONCAP_API_KEY"

Response

200 Venue detail. 304 when If-None-Match matches.

Example Response
{
  "status": {
    "timestamp": "2026-10-11T14:00:00.000Z",
    "elapsed_ms": 18,
    "error_code": 0,
    "error_message": null,
    "request_id": "req_7Hk2pQ9xLm"
  },
  "data": {
    "venue_id": "temple",
    "name": "Canton Coin",
    "market_model": "order_book",
    "last_updated_at": "2026-10-11T14:00:00.000Z",
    "stats": {
      "network": "mainnet",
      "volume_24h_usd": "1320455.18",
      "liquidity_usd": "4120334.10",
      "trade_count_24h": 1284,
      "trade_count_24h_metadata": {
        "as_of": "2026-10-11T14:00:00.000Z",
        "retained": true
      },
      "active_markets": 12,
      "last_updated_at": "2026-10-11T14:00:00.000Z"
    },
    "description": "The native utility token of the Canton Network.",
    "website_url": "https://www.example.com",
    "logo_url": "https://assets.example.com/logo.png",
    "documentation_url": "https://docs.example.com",
    "social_links": [
      {
        "label": "Website",
        "url": "https://www.example.com"
      }
    ],
    "fee_documentation_url": "https://docs.example.com/fees"
  }
}
  • dataobject
    40 child fields
    • venue_idstring

      Stable CantonCap venue ID, such as temple or cantex.

    • namestring

      Display name. Null when none is published.

    • market_modelenum

      How the market trades: amm, order_book, order_book_rfq or hybrid.

      One ofammorder_bookorder_book_rfqhybrid
    • last_updated_atdate-time

      Time of the latest represented update. For calculated asset prices it is the stored calculation time. Decide acceptable age from it.

    • statsobjectnullable

      Venue statistics. Null when none are available; independent of the profile's timestamp.

      27 child fields
      • networkenum

        Canton network the record belongs to.

        One ofmainnettestnetdevnet
      • volume_24h_usddecimal stringnullable

        24-hour volume in USD; null when unavailable.

      • liquidity_usddecimal stringnullable
      • trade_count_24hintegernullable

        Trades in the last 24 hours. Null when unavailable.

      • trade_count_24h_metadataobjectoptional

        When one venue statistic was measured. retained is true when the newest statistics refresh omitted it and the latest usable earlier value is shown at its own time; judge the statistic's age by as_of, not by the statistics object's last_updated_at. as_of is null when the statistic is unknown.

        2 child fields
        • as_ofdate-timenullable

          End of the window the snapshot covers.

        • retainedboolean
      • active_marketsintegernullable

        Markets currently active.

      • last_updated_atdate-time

        The venue's latest statistics refresh. A statistic kept from an earlier refresh does not move it back; it reports its own time in volume_24h_usd_metadata.as_of or trade_count_24h_metadata.as_of.

      • volume_24h_usd_metadataobjectoptional
        17 child fields
        • as_ofdate-timenullable

          End of the window the snapshot covers.

        • selection_methodenumnullableoptional

          Actual selected method. The legacy method field keeps its reported/trades enum.

          One ofvenue_reported_aggregatecanonical_tradesactivity
        • methodology_versionstringnullable
        • interpretationenumoptional

          Completeness applies to the measurement's own window, not the current wall clock. A zero is a value, not unavailable activity.

          One ofcomplete_totalpartial_subtotalunavailablecoverage_unknown
        • coverage_detailobjectoptional

          Counts come from the selected evidence, never ticker nulls. Null means the detail was not recorded. Missing activity has no native or USD volume; unvalued activity has native volume but no selected USD. Partial and incomplete-time counts concern included markets and may overlap. Retained is null when retention status was not established. No restricted market identities are exposed.

          12 child fields
          • unitenum
            One ofUSDdisplay_currency
          • windowenum

            Rolling window the values cover.

            Always24h
          • starts_atdate-timenullable

            Start of the window the snapshot covers.

          • ends_atdate-timenullable
          • covered_secondsnumbernullable

            Seconds of the window the observations cover.

          • retainedbooleannullable
          • eligible_market_countintegernullable
          • included_market_countintegernullable
          • missing_activity_market_countintegernullable
          • unvalued_market_countintegernullable
          • partial_market_countintegernullable
          • incomplete_time_market_countintegernullable
    • descriptionstringnullable

      Approved description. Null when none is published.

    • website_urlURI stringnullable

      Official website. Null when none is published.

    • logo_urlURI stringnullable

      Logo image URL. Null when none is published.

    • documentation_urlURI stringnullable

      Official documentation. Null when none is published.

    • social_linksarray of objects

      Official social profiles, each a label and a URL.

      2 child fields
      • labelstring
      • urlURI string
    • fee_documentation_urlURI stringnullable

      The venue's published fee documentation. Null when none is known.

Headers

  • X-RateLimit-Limit Requests allowed in the current one-minute window.
  • X-RateLimit-Remaining Requests left in the window.
  • X-RateLimit-Reset Unix time, in seconds, when the window resets.
  • ETag Entity tag of this representation. Send it back in If-None-Match.

Errors

StatusCodeWhen
400invalid_requestRequest validation failedA parameter is malformed, out of bounds or not one of its allowed values.
401unauthenticatedA valid API key is requiredX-API-Key is missing or unknown.
403forbiddenThe API key does not resolve to an active planThe key expired, was suspended or has not started.
404not_foundVenue not foundThe venue is not published.
429rate_limitedThe request rate limit was exceededThe key's one-minute window is used up. Retry after Retry-After seconds.

List markets supplied by a venue

GEThttps://api.cantoncap.cc/v1/venues/{venue_id}/markets
getVenueMarketsCursor paginationETag

Parameters

venue_idenumpathrequired

Stable CantonCap venue ID.

One oftemplecantexoneswapsilvanatradecraftkorarockysend
networkenumqueryoptional

Canton network to read.

One ofmainnettestnetdevnetDefaultmainnet
modelenumqueryoptional

Only markets of this market model.

One ofammorder_bookorder_book_rfqhybrid
categoryenumqueryoptional

Only markets of this display category.

One ofammclmmorderbookhybrid
quote_asset_idstringqueryoptional

Only markets quoted in this asset.

limitintegerqueryoptional

Maximum page size, bounded by the caller's plan.

Default1001 to 100
cursorstringqueryoptional

Opaque continuation cursor from the previous response.

If-None-Matchstringheaderoptional

Return 304 when this entity tag matches the current representation.

Request

curl -s "https://api.cantoncap.cc/v1/venues/temple/markets?limit=50" \
  -H "X-API-Key: $CANTONCAP_API_KEY"

Response

200 Market collection. 304 when If-None-Match matches.

Example Response
{
  "status": {
    "timestamp": "2026-10-11T14:00:00.000Z",
    "elapsed_ms": 18,
    "error_code": 0,
    "error_message": null,
    "request_id": "req_7Hk2pQ9xLm"
  },
  "data": [
    {
      "market_category": "orderbook",
      "market_id": "mkt_4c2e9a7f1b3d4e5a9c8b7d6e5f4a3b21",
      "venue": {
        "venue_id": "temple",
        "name": "Canton Coin"
      },
      "network": "mainnet",
      "orientation": "market",
      "base_asset": {
        "asset_id": "ast_515c3eaa72bd4a8b9403297879d78ef6",
        "name": "Canton Coin",
        "symbol": "CC"
      },
      "quote_asset": {
        "asset_id": "ast_515c3eaa72bd4a8b9403297879d78ef6",
        "name": "Canton Coin",
        "symbol": "CC"
      },
      "market_model": "order_book",
      "status": "active",
      "pool_ids": [
        "pool_3e7c1a9b5d2f4c6e8a0b1d3f5e7c9a12"
      ],
      "ticker": {
        "price": "0.1584",
        "price_usd": "1.25",
        "price_origin": "venue_book",
        "volume_base_24h": "8342210.4",
        "volume_quote_24h": "1320455.18",
        "volume_usd_24h": "1320455.18",
        "last_updated_at": "2026-10-11T14:00:00.000Z"
      },
      "liquidity": {
        "model": "order_book",
        "liquidity_score": 82.4,
        "liquidity_score_methodology": "execution-impact-v1",
        "liquidity_score_updated_at": "2026-10-11T13:55:00.000Z",
        "bid_depth_2pct_usd": "182400.55",
        "ask_depth_2pct_usd": "176920.30",
        "spread_bps": "18.9",
        "depth_origin": "native_order_book",
        "last_updated_at": "2026-10-11T14:00:00.000Z"
      },
      "last_updated_at": "2026-10-11T14:00:00.000Z"
    }
  ],
  "pagination": {
    "next_cursor": "eyJ2IjoxLCJvIjoyNX0"
  }
}
  • dataarray of objects
    146 child fields
    • activity_24hobjectnullableoptional

      Selected public 24-hour activity, using the same current selection as /v1/activity/market/{market_id}?window=24h&limit=1. Each measurement keeps its own as_of, methods and coverage, including retained older values. volume_usd is in USD; base and quote quantities keep their asset units. Ticker measurements remain separate source fields. Null means no eligible activity snapshot; a snapshot may itself have unknown or partial measurements. Older servers omit this field.

      105 child fields
      • entity_kindenum

        Kind of entity the activity describes.

        One ofmarketassetvenueglobal
      • entity_idstring

        ID of the entity the activity describes.

      • networkenum

        Canton network the record belongs to.

        One ofmainnettestnetdevnet
      • windowenum

        Rolling window the values cover.

        One of24h7d30d
      • as_ofstring

        End of the window the snapshot covers.

      • starts_atstring

        Start of the window the snapshot covers.

      • methodology_versionstring
      • marketsarray of objects

        Markets included in the snapshot.

        5 child fields
        • market_idstring

          Stable opaque CantonCap market ID, prefixed mkt_.

        • venue_idstring

          Stable CantonCap venue ID, such as temple or cantex.

        • networkenum

          Canton network the record belongs to.

          One ofmainnettestnetdevnet
        • base_asset_idstring

          Asset ID of the base asset.

        • quote_asset_idstring

          Asset ID of the quote asset.

      • measurementsobject

        Each measurement with its own value, coverage and methods.

        91 child fields
        • volume_baseobject
          12 child fields
          • market_coverageobjectoptional

            For selected USD volume only: counts over the same eligible market population and measurement window. Older snapshots omit it. Native quantities are never relabelled as USD.

            6 child fields
            • eligible_market_countinteger
            • included_market_countinteger
            • missing_activity_market_countinteger
            • unvalued_market_countinteger
            • partial_market_countinteger
            • incomplete_time_market_countinteger
          • valuedecimal stringnullable

            The measured value as an exact decimal string. Null when unavailable; never zero for unknown.

          • completenessenum

            complete, partial or unknown.

            One ofcompletepartialunknown
          • covered_secondsnumber

            Seconds of the window the observations cover.

          • methodsarray of strings

            Methods behind the value.

          • as_ofstringoptional

            End of the window this value covers. Equals the snapshot as_of, except in a current read (no time_start or time_end, limit 1): when the newest snapshot has no value for this measurement, the latest usable value is kept with its own earlier as_of, coverage and methods. It is the window total at that time, not a complete current window.

        • volume_quoteobject
          12 child fields
          • market_coverageobjectoptional

            For selected USD volume only: counts over the same eligible market population and measurement window. Older snapshots omit it. Native quantities are never relabelled as USD.

            6 child fields
            • eligible_market_countinteger
            • included_market_countinteger
            • missing_activity_market_countinteger
            • unvalued_market_countinteger
            • partial_market_countinteger
            • incomplete_time_market_countinteger
          • valuedecimal stringnullable

            The measured value as an exact decimal string. Null when unavailable; never zero for unknown.

          • completenessenum

            complete, partial or unknown.

            One ofcompletepartialunknown
          • covered_secondsnumber

            Seconds of the window the observations cover.

          • methodsarray of strings

            Methods behind the value.

          • as_ofstringoptional

            End of the window this value covers. Equals the snapshot as_of, except in a current read (no time_start or time_end, limit 1): when the newest snapshot has no value for this measurement, the latest usable value is kept with its own earlier as_of, coverage and methods. It is the window total at that time, not a complete current window.

        • volume_nativeobject
          12 child fields
          • market_coverageobjectoptional

            For selected USD volume only: counts over the same eligible market population and measurement window. Older snapshots omit it. Native quantities are never relabelled as USD.

            6 child fields
            • eligible_market_countinteger
            • included_market_countinteger
            • missing_activity_market_countinteger
            • unvalued_market_countinteger
            • partial_market_countinteger
            • incomplete_time_market_countinteger
          • valuedecimal stringnullable

            The measured value as an exact decimal string. Null when unavailable; never zero for unknown.

          • completenessenum

            complete, partial or unknown.

            One ofcompletepartialunknown
          • covered_secondsnumber

            Seconds of the window the observations cover.

          • methodsarray of strings

            Methods behind the value.

          • as_ofstringoptional

            End of the window this value covers. Equals the snapshot as_of, except in a current read (no time_start or time_end, limit 1): when the newest snapshot has no value for this measurement, the latest usable value is kept with its own earlier as_of, coverage and methods. It is the window total at that time, not a complete current window.

        • volume_usd_reportedobject
          12 child fields
          • market_coverageobjectoptional

            For selected USD volume only: counts over the same eligible market population and measurement window. Older snapshots omit it. Native quantities are never relabelled as USD.

            6 child fields
            • eligible_market_countinteger
            • included_market_countinteger
            • missing_activity_market_countinteger
            • unvalued_market_countinteger
            • partial_market_countinteger
            • incomplete_time_market_countinteger
          • valuedecimal stringnullable

            USD volume as the venues report it.

          • completenessenum

            complete, partial or unknown.

            One ofcompletepartialunknown
          • covered_secondsnumber

            Seconds of the window the observations cover.

          • methodsarray of strings

            Methods behind the value.

          • as_ofstringoptional

            End of the window this value covers. Equals the snapshot as_of, except in a current read (no time_start or time_end, limit 1): when the newest snapshot has no value for this measurement, the latest usable value is kept with its own earlier as_of, coverage and methods. It is the window total at that time, not a complete current window.

        • volume_usd_derivedobject
          12 child fields
          • market_coverageobjectoptional

            For selected USD volume only: counts over the same eligible market population and measurement window. Older snapshots omit it. Native quantities are never relabelled as USD.

            6 child fields
            • eligible_market_countinteger
            • included_market_countinteger
            • missing_activity_market_countinteger
            • unvalued_market_countinteger
            • partial_market_countinteger
            • incomplete_time_market_countinteger
          • valuedecimal stringnullable

            USD volume derived with CCXT exchange prices, kept separate from the reported figure.

          • completenessenum

            complete, partial or unknown.

            One ofcompletepartialunknown
          • covered_secondsnumber

            Seconds of the window the observations cover.

          • methodsarray of strings

            Methods behind the value.

          • as_ofstringoptional

            End of the window this value covers. Equals the snapshot as_of, except in a current read (no time_start or time_end, limit 1): when the newest snapshot has no value for this measurement, the latest usable value is kept with its own earlier as_of, coverage and methods. It is the window total at that time, not a complete current window.

        • volume_usdobject
          12 child fields
          • market_coverageobjectoptional

            For selected USD volume only: counts over the same eligible market population and measurement window. Older snapshots omit it. Native quantities are never relabelled as USD.

            6 child fields
            • eligible_market_countinteger
            • included_market_countinteger
            • missing_activity_market_countinteger
            • unvalued_market_countinteger
            • partial_market_countinteger
            • incomplete_time_market_countinteger
          • valuedecimal stringnullable

            The measured value as an exact decimal string. Null when unavailable; never zero for unknown.

          • completenessenum

            complete, partial or unknown.

            One ofcompletepartialunknown
          • covered_secondsnumber

            Seconds of the window the observations cover.

          • methodsarray of strings

            Methods behind the value.

          • as_ofstringoptional

            End of the window this value covers. Equals the snapshot as_of, except in a current read (no time_start or time_end, limit 1): when the newest snapshot has no value for this measurement, the latest usable value is kept with its own earlier as_of, coverage and methods. It is the window total at that time, not a complete current window.

        • execution_countobject
          12 child fields
          • market_coverageobjectoptional

            For selected USD volume only: counts over the same eligible market population and measurement window. Older snapshots omit it. Native quantities are never relabelled as USD.

            6 child fields
            • eligible_market_countinteger
            • included_market_countinteger
            • missing_activity_market_countinteger
            • unvalued_market_countinteger
            • partial_market_countinteger
            • incomplete_time_market_countinteger
          • valuedecimal stringnullable

            The measured value as an exact decimal string. Null when unavailable; never zero for unknown.

          • completenessenum

            complete, partial or unknown.

            One ofcompletepartialunknown
          • covered_secondsnumber

            Seconds of the window the observations cover.

          • methodsarray of strings

            Methods behind the value.

          • as_ofstringoptional

            End of the window this value covers. Equals the snapshot as_of, except in a current read (no time_start or time_end, limit 1): when the newest snapshot has no value for this measurement, the latest usable value is kept with its own earlier as_of, coverage and methods. It is the window total at that time, not a complete current window.

    • market_categoryenumoptional

      Display category of the market.

      One ofammclmmorderbookhybrid
    • market_idstring

      Stable opaque CantonCap market ID, prefixed mkt_.

    • venueobject
      2 child fields
      • venue_idstring

        Stable CantonCap venue ID, such as temple or cantex.

      • namestring

        Display name. Null when none is published.

    • networkenum

      Canton network the record belongs to.

      One ofmainnettestnetdevnet
    • orientationenumoptional

      market: base_asset and quote_asset are the venue market's. inverted: they are swapped (orientation=requested and a requested asset is the market's quote), so the ticker's price, base and quote volumes, and bid and ask depth are the market's read from the other side. activity_24h keeps the market's orientation. Older servers omit this field.

      One ofmarketinverted
    • base_assetobject
      3 child fields
      • asset_idstring

        Stable opaque CantonCap asset ID, prefixed ast_.

      • namestringnullable

        Display name. Null when none is published.

      • symbolstringnullable

        Ticker symbol. Null when none is published.

    • quote_assetobject
      3 child fields
      • asset_idstring

        Stable opaque CantonCap asset ID, prefixed ast_.

      • namestringnullable

        Display name. Null when none is published.

      • symbolstringnullable

        Ticker symbol. Null when none is published.

    • market_modelenum

      How the market trades: amm, order_book, order_book_rfq or hybrid.

      One ofammorder_bookorder_book_rfqhybrid
    • statusenum

      Lifecycle status of the record.

      One ofactiveinactivesuspended
    • pool_idsarray of strings

      Pool IDs behind this market.

    • tickerobjectnullable

      Latest ticker of the market. Null when none is available.

      7 child fields
      • pricedecimal stringnullable

        Price in quote-asset units per base asset.

      • price_usddecimal stringnullableoptional

        USD price of one unit of the base asset as returned, through the quote asset's latest USD reference price: price × the quote's USD price, or for an inverted pair the original base's USD price ÷ the market's price, in exact decimals truncated to 38 places. Null when the quote has no USD reference price or the pair has no price. Older servers omit this field.

      • price_originenum

        Where the ticker price comes from.

        One ofvenue_poolvenue_bookvenue_tradeexternal_referencederived
      • volume_base_24hdecimal stringnullable

        24-hour volume in base-asset units.

      • volume_quote_24hdecimal stringnullable

        24-hour volume in quote-asset units.

      • volume_usd_24hdecimal stringnullable

        24-hour volume in USD. Null when unavailable.

      • last_updated_atdate-time

        Time of the latest represented update. For calculated asset prices it is the stored calculation time. Decide acceptable age from it.

    • liquidityobjectnullable

      Liquidity of the asset's markets, in USD and outside any conversion.

      12 child fields
      • modelenum
        Alwaysorder_book
      • liquidity_scorenumbernullableoptional

        Displayed liquidity score, 0 to 100. Simulated buys and sells at $100, $500, $1,000, $5,000 and $10,000; fees excluded. Null means insufficient inputs, never a hidden market.

      • liquidity_score_methodologyenumoptional

        Methodology version of the liquidity score.

        Alwaysexecution-impact-v1
      • liquidity_score_updated_atdate-timenullableoptional

        When the liquidity score was calculated.

      • liquidity_usddecimal stringnullableoptional

        Pool liquidity in USD: the value locked in the asset's eligible AMM pools.

      • bid_depth_2pct_usddecimal stringnullableoptional

        USD notional of total bids within 2% below the best bid. Null when the book window or USD conversion is unavailable.

      • ask_depth_2pct_usddecimal stringnullableoptional

        USD notional of total asks within 2% above the best ask. Null when the book window or USD conversion is unavailable.

      • depth_originenumoptional

        Depth is measured from displayed order-book levels.

        Alwaysnative_order_book
      • depth_unavailable_reasonenumnullableoptional

        Why a synthetic depth value is null. A measured zero is returned as 0, never as a reason.

        One ofnot_calculatedunsupported_curveunsupported_fee_modelmissing_fee_configurationinvalid_pool_statestale_pool_stateno_eligible_poolmissing_quote_usd_pricestale_quote_usd_price
      • depth_updated_atdate-timenullableoptional

        When the stored depth was calculated.

      • last_updated_atdate-time

        Time of the latest represented update. For calculated asset prices it is the stored calculation time. Decide acceptable age from it.

      • spread_bpsdecimal stringnullableoptional

        (Best ask - best bid) / midpoint × 10,000.

    • last_updated_atdate-time

      Time of the latest represented update. For calculated asset prices it is the stored calculation time. Decide acceptable age from it.

  • paginationobject

    Present on cursor-paginated collections.

    1 child field
    • next_cursorstringnullable

      Opaque cursor for the next page, or null on the last page.

Headers

  • X-RateLimit-Limit Requests allowed in the current one-minute window.
  • X-RateLimit-Remaining Requests left in the window.
  • X-RateLimit-Reset Unix time, in seconds, when the window resets.
  • ETag Entity tag of this representation. Send it back in If-None-Match.

Errors

StatusCodeWhen
400invalid_requestRequest validation failedA parameter is malformed, out of bounds or not one of its allowed values.
400invalid_requestInvalid cursorThe cursor is malformed or belongs to a different query. Some endpoints name it more precisely, such as Invalid historical range or cursor.
401unauthenticatedA valid API key is requiredX-API-Key is missing or unknown.
403forbiddenThe API key does not resolve to an active planThe key expired, was suspended or has not started.
403quota_exceededThe requested page exceeds the API plan limitAn explicit limit is above the plan's page size.
429rate_limitedThe request rate limit was exceededThe key's one-minute window is used up. Retry after Retry-After seconds.

Get supported market-data features and history for a venue

GEThttps://api.cantoncap.cc/v1/venues/{venue_id}/capabilities
getVenueCapabilitiesETag

Parameters

venue_idenumpathrequired

Stable CantonCap venue ID.

One oftemplecantexoneswapsilvanatradecraftkorarockysend
If-None-Matchstringheaderoptional

Return 304 when this entity tag matches the current representation.

Request

curl -s "https://api.cantoncap.cc/v1/venues/temple/capabilities" \
  -H "X-API-Key: $CANTONCAP_API_KEY"

Response

200 Supported market-data features and historical coverage for a venue. 304 when If-None-Match matches.

Example Response
{
  "status": {
    "timestamp": "2026-10-11T14:00:00.000Z",
    "elapsed_ms": 18,
    "error_code": 0,
    "error_message": null,
    "request_id": "req_7Hk2pQ9xLm"
  },
  "data": {
    "venue_id": "temple",
    "features": {
      "prices": true,
      "trades": true,
      "candles": true,
      "order_book": true,
      "quotes": true,
      "liquidity": true
    },
    "history": {
      "available_from": "2026-09-10T00:00:00.000Z",
      "intervals": [
        "1h"
      ]
    }
  }
}
  • dataobject
    11 child fields
    • venue_idstring

      Stable CantonCap venue ID, such as temple or cantex.

    • featuresobject

      Market-data features the venue supports.

      6 child fields
      • pricesboolean
      • tradesboolean
      • candlesboolean
      • order_bookboolean
      • quotesboolean

        Quotes keyed by conversion currency code, such as USD. A currency without an observation is omitted, never substituted.

      • liquidityboolean

        Liquidity of the asset's markets, in USD and outside any conversion.

    • historyobject

      History the venue makes available.

      2 child fields
      • available_fromstringnullable

        Earliest time history is available from. Null when not known.

      • intervalsarray of enums

        Intervals history is available in.

        One of1m5m10m15m30m1h4h1d7d1w

Headers

  • X-RateLimit-Limit Requests allowed in the current one-minute window.
  • X-RateLimit-Remaining Requests left in the window.
  • X-RateLimit-Reset Unix time, in seconds, when the window resets.
  • ETag Entity tag of this representation. Send it back in If-None-Match.

Errors

StatusCodeWhen
400invalid_requestRequest validation failedA parameter is malformed, out of bounds or not one of its allowed values.
401unauthenticatedA valid API key is requiredX-API-Key is missing or unknown.
403forbiddenThe API key does not resolve to an active planThe key expired, was suspended or has not started.
429rate_limitedThe request rate limit was exceededThe key's one-minute window is used up. Retry after Retry-After seconds.
Esc
navigateopenEscclose