Skip to content
Docs
Get API Access
Browse the Documentation

API Reference

Pools

AMM pool state, liquidity, and read-only quotes.

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

List liquidity pools and their asset pairs

GEThttps://api.cantoncap.cc/v1/pools
listPoolsCursor paginationETag

Parameters

venue_idenumqueryoptional

Only markets or pools of this venue.

One oftemplecantexoneswapsilvanatradecraftkorarockysend
asset_idstringqueryoptional

Only markets or pools that include this asset.

networkenumqueryoptional

Canton network to read.

One ofmainnettestnetdevnet
limitintegerqueryoptional

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

Default1001 to 500
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/pools?venue_id=cantex" \
  -H "X-API-Key: $CANTONCAP_API_KEY"

Response

200 Pool 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",
      "last_updated_at": "2026-10-11T14:00:00.000Z",
      "pool_id": "pool_3e7c1a9b5d2f4c6e8a0b1d3f5e7c9a12",
      "venue_id": "temple",
      "network": "mainnet",
      "venue_pool_id": "cantex-cc-usdcx",
      "market_id": "mkt_4c2e9a7f1b3d4e5a9c8b7d6e5f4a3b21",
      "asset_x_id": "ast_515c3eaa72bd4a8b9403297879d78ef6",
      "asset_y_id": "ast_2d9c41e0b7a64f1e9c3b5a8d7e6f1c20",
      "curve_type": "constant_product",
      "fee_bps": 30,
      "fee_rate": "0.003",
      "protocol_fee_bps": 5,
      "admin_fee_share": "0.5",
      "reserve_x": "13006072.4",
      "reserve_y": "2060318.1",
      "source_price": "0.1586",
      "tvl_cc": "26012144.8",
      "liquidity_usd": "4120334.10",
      "created_at": "2026-10-10T16:20:00.000Z",
      "status": "active"
    }
  ],
  "pagination": {
    "next_cursor": "eyJ2IjoxLCJvIjoyNX0"
  }
}
  • dataarray of objects
    21 child fields
    • market_categoryenumoptional

      Display category of the market.

      One ofammclmmorderbookhybrid
    • 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.

    • pool_idstring

      Stable opaque CantonCap pool ID, prefixed pool_.

    • venue_idstring

      Stable CantonCap venue ID, such as temple or cantex.

    • networkenum

      Canton network the record belongs to.

      One ofmainnettestnetdevnet
    • venue_pool_idstring
    • market_idstring

      Stable opaque CantonCap market ID, prefixed mkt_.

    • asset_x_idstring
    • asset_y_idstring
    • curve_typestring
    • fee_bpsinteger
    • fee_ratestringnullable
    • protocol_fee_bpsintegernullable
    • admin_fee_sharestringnullable
    • reserve_xstringnullable
    • reserve_ystringnullable
    • source_pricestringnullable
    • tvl_ccstringnullable
    • liquidity_usdstringnullable
    • created_atstringnullable
    • statusenum

      Lifecycle status of the record.

      One ofactiveinactivesuspended
  • 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 pool information and its asset pair

GEThttps://api.cantoncap.cc/v1/pools/{pool_id}
getPoolETag

Parameters

pool_idstringpathrequired

Stable opaque CantonCap pool ID.

If-None-Matchstringheaderoptional

Return 304 when this entity tag matches the current representation.

Request

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

Response

200 Pool detail and latest state. 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",
    "last_updated_at": "2026-10-11T14:00:00.000Z",
    "pool_id": "pool_3e7c1a9b5d2f4c6e8a0b1d3f5e7c9a12",
    "venue_id": "temple",
    "network": "mainnet",
    "venue_pool_id": "cantex-cc-usdcx",
    "market_id": "mkt_4c2e9a7f1b3d4e5a9c8b7d6e5f4a3b21",
    "asset_x_id": "ast_515c3eaa72bd4a8b9403297879d78ef6",
    "asset_y_id": "ast_2d9c41e0b7a64f1e9c3b5a8d7e6f1c20",
    "curve_type": "constant_product",
    "fee_bps": 30,
    "fee_rate": "0.003",
    "protocol_fee_bps": 5,
    "admin_fee_share": "0.5",
    "reserve_x": "13006072.4",
    "reserve_y": "2060318.1",
    "source_price": "0.1586",
    "tvl_cc": "26012144.8",
    "liquidity_usd": "4120334.10",
    "created_at": "2026-10-10T16:20:00.000Z",
    "status": "active"
  }
}
  • dataobject
    21 child fields
    • market_categoryenumoptional

      Display category of the market.

      One ofammclmmorderbookhybrid
    • 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.

    • pool_idstring

      Stable opaque CantonCap pool ID, prefixed pool_.

    • venue_idstring

      Stable CantonCap venue ID, such as temple or cantex.

    • networkenum

      Canton network the record belongs to.

      One ofmainnettestnetdevnet
    • venue_pool_idstring
    • market_idstring

      Stable opaque CantonCap market ID, prefixed mkt_.

    • asset_x_idstring
    • asset_y_idstring
    • curve_typestring
    • fee_bpsinteger
    • fee_ratestringnullable
    • protocol_fee_bpsintegernullable
    • admin_fee_sharestringnullable
    • reserve_xstringnullable
    • reserve_ystringnullable
    • source_pricestringnullable
    • tvl_ccstringnullable
    • liquidity_usdstringnullable
    • created_atstringnullable
    • statusenum

      Lifecycle status of the record.

      One ofactiveinactivesuspended

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_foundPool not foundThe pool does not exist or is not published.
429rate_limitedThe request rate limit was exceededThe key's one-minute window is used up. Retry after Retry-After seconds.
Esc
navigateopenEscclose