Skip to content
Docs
Get API Access
Browse the Documentation

API Reference

Issuers

Curated issuers, evidence, and linked assets.

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

List verified and curated issuer entities

GEThttps://api.cantoncap.cc/v1/issuers
listIssuersCursor paginationETag

Parameters

limitintegerqueryoptional

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

Default1001 to 500
cursorstringqueryoptional

Opaque continuation cursor from the previous response.

Up to 4096 characters
If-None-Matchstringheaderoptional

Return 304 when this entity tag matches the current representation.

Request

curl -s "https://api.cantoncap.cc/v1/issuers?limit=20" \
  -H "X-API-Key: $CANTONCAP_API_KEY"

Response

200 Issuer 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": [
    {
      "issuer_id": "iss_6b2d8f4a1c3e4b5d9f7a2c4e6b8d0f13",
      "legal_name": "Example Issuer Ltd.",
      "brand_name": "Example Issuer",
      "description": "The native utility token of the Canton Network.",
      "website_url": "https://www.example.com",
      "logo_url": "https://assets.example.com/logo.png",
      "jurisdictions": [
        "BVI"
      ],
      "verification_status": "domain_verified",
      "asset_ids": [
        "ast_515c3eaa72bd4a8b9403297879d78ef6"
      ],
      "official_links": [
        {
          "label": "Website",
          "url": "https://www.example.com"
        }
      ],
      "last_updated_at": "2026-10-11T14:00:00.000Z"
    }
  ],
  "pagination": {
    "next_cursor": "eyJ2IjoxLCJvIjoyNX0"
  }
}
  • dataarray of objects
    13 child fields
    • issuer_idstring

      Stable opaque CantonCap issuer ID, prefixed iss_.

    • legal_namestringnullable

      Registered legal name. Null when not published.

    • brand_namestringnullable

      Brand name. Null when not published.

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

    • jurisdictionsarray of strings

      Jurisdictions the issuer states.

    • verification_statusenum

      How the issuer's identity was verified.

      One ofunverifieddomain_verifiedissuer_attestedmanually_verified
    • asset_idsarray of strings

      Asset IDs linked to this record.

    • official_linksarray of objects

      Official links, each a label and a URL.

      2 child fields
      • labelstring
      • urlURI string
    • last_updated_atdate-timenullable

      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.
  • Cache-Control private, no-cache: shared caches must not store the answer.
  • Vary X-API-Key: the answer varies by key.

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 an issuer profile and linked assets

GEThttps://api.cantoncap.cc/v1/issuers/{issuer_id}
getIssuerETag

Published issuer profile and linked asset IDs. Sources and technical relationships are available from the evidence and relationships endpoints.

Parameters

issuer_idstringpathrequired

Stable opaque CantonCap issuer ID.

If-None-Matchstringheaderoptional

Return 304 when this entity tag matches the current representation.

Request

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

Response

200 Issuer detail with evidence and linked assets. 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": {
    "issuer_id": "iss_6b2d8f4a1c3e4b5d9f7a2c4e6b8d0f13",
    "legal_name": "Example Issuer Ltd.",
    "brand_name": "Example Issuer",
    "description": "The native utility token of the Canton Network.",
    "website_url": "https://www.example.com",
    "logo_url": "https://assets.example.com/logo.png",
    "jurisdictions": [
      "BVI"
    ],
    "verification_status": "domain_verified",
    "asset_ids": [
      "ast_515c3eaa72bd4a8b9403297879d78ef6"
    ],
    "official_links": [
      {
        "label": "Website",
        "url": "https://www.example.com"
      }
    ],
    "last_updated_at": "2026-10-11T14:00:00.000Z"
  }
}
  • dataobject
    13 child fields
    • issuer_idstring

      Stable opaque CantonCap issuer ID, prefixed iss_.

    • legal_namestringnullable

      Registered legal name. Null when not published.

    • brand_namestringnullable

      Brand name. Null when not published.

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

    • jurisdictionsarray of strings

      Jurisdictions the issuer states.

    • verification_statusenum

      How the issuer's identity was verified.

      One ofunverifieddomain_verifiedissuer_attestedmanually_verified
    • asset_idsarray of strings

      Asset IDs linked to this record.

    • official_linksarray of objects

      Official links, each a label and a URL.

      2 child fields
      • labelstring
      • urlURI string
    • last_updated_atdate-timenullable

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

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.
  • Cache-Control private, no-cache: shared caches must not store the answer.
  • Vary X-API-Key: the answer varies by key.

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_foundIssuer not foundThe issuer 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.

Get published sources for issuer profile facts

GEThttps://api.cantoncap.cc/v1/issuers/{issuer_id}/evidence
getIssuerEvidenceETag

Get published sources for issuer profile facts. Only approved public facts are returned.

Parameters

issuer_idstringpathrequired

Stable opaque CantonCap issuer ID.

If-None-Matchstringheaderoptional

Return 304 when this entity tag matches the current representation.

Request

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

Response

200 Published issuer information 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": [
    {
      "field": "website_url",
      "source_url": "https://docs.example.com/fees",
      "retrieved_at": "2026-10-03T09:12:00.000Z"
    }
  ]
}
  • dataarray of objects
    3 child fields
    • fieldstring
    • source_urlURI string
    • retrieved_atdate-time

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.
  • Cache-Control private, no-cache: shared caches must not store the answer.
  • Vary X-API-Key: the answer varies by key.

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_foundIssuer not foundThe issuer 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.

Get published issuer validators and instrument administrators

GEThttps://api.cantoncap.cc/v1/issuers/{issuer_id}/relationships
getIssuerRelationshipsETag

Get published issuer validators and instrument administrators. Only approved public facts are returned.

Parameters

issuer_idstringpathrequired

Stable opaque CantonCap issuer ID.

If-None-Matchstringheaderoptional

Return 304 when this entity tag matches the current representation.

Request

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

Response

200 Published issuer information 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": {
    "validators": [
      {
        "validator_id": "validator::1220c5d0a1",
        "name": "Canton Coin",
        "website_url": "https://www.example.com",
        "relationship": "issuer"
      }
    ],
    "party_ids": [
      "DSO::1220b1431ef217342db44d516bb9befde802be7d8899637d290895fa58880f19accc"
    ],
    "instrument_administrators": [
      {
        "network": "mainnet",
        "instrument_admin": "DSO::1220b1431ef217342db44d516bb9befde802be7d8899637d290895fa58880f19accc",
        "relationship": "issuer"
      }
    ]
  }
}
  • dataobject
    10 child fields
    • validatorsarray of objects
      4 child fields
      • validator_idstring
      • namestringnullable

        Display name. Null when none is published.

      • website_urlURI stringnullable

        Official website. Null when none is published.

      • relationshipstring

        How the issuer relates to the asset.

    • party_idsarray of strings
    • instrument_administratorsarray of objects
      3 child fields
      • networkenum

        Canton network the record belongs to.

        One ofmainnettestnetdevnet
      • instrument_adminstring

        Canton party that administers the instrument. With instrument_id it is the instrument's Canton identity.

      • relationshipstring

        How the issuer relates to the asset.

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.
  • Cache-Control private, no-cache: shared caches must not store the answer.
  • Vary X-API-Key: the answer varies by key.

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_foundIssuer not foundThe issuer 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