> ## Documentation Index
> Fetch the complete documentation index at: https://tokenterminal.com/docs/llms.txt
> Use this file to discover all available pages before exploring further.

> ## Agent Instructions
> To query the Token Terminal data catalog, read https://tokenterminal.com/docs/catalog/agents-manual.md first. It is the whole catalog as one page: table naming grammar, key columns, partition and cluster rules, units, additivity, and the tables that are documented but not served yet.
> Never query a catalog table on a time bound alone. Also filter its cluster key, which you read from INFORMATION_SCHEMA.COLUMNS; an empty result means the object is a view, whose pruning contract is on its page. Compute is billed to the caller's own Google Cloud project.

# Get asset fact sheets

> Retrieve the latest fact sheets for 1–20 comma-separated `asset_ids`. Results follow the requested order; duplicate IDs appear once. If any asset has no fact sheet, the whole request returns `404` with missing IDs in `meta.asset_ids`.

Find covered assets with `GET /v2/assets?has_fact_sheet=true`. Add `include_tokens=true` to include token deployments. Look up field titles and option descriptions with [field definitions](/api-reference/assets/get-fact-sheet-field-definitions).

Response examples are abbreviated; expand the schema to see all disclosure fields.



## OpenAPI

````yaml /api-reference/openapi.json get /v2/fact-sheets
openapi: 3.0.0
info:
  title: Token Terminal API
  termsOfService: https://tokenterminal.com/terms
  version: 2.0.0
servers:
  - url: https://api.tokenterminal.com
security:
  - bearerAuth: []
tags: []
paths:
  /v2/fact-sheets:
    get:
      tags:
        - Assets
      summary: Get asset fact sheets
      description: >-
        Retrieve the latest fact sheets for 1–20 comma-separated `asset_ids`.
        Results follow the requested order; duplicate IDs appear once. If any
        asset has no fact sheet, the whole request returns `404` with missing
        IDs in `meta.asset_ids`.


        Find covered assets with `GET /v2/assets?has_fact_sheet=true`. Add
        `include_tokens=true` to include token deployments. Look up field titles
        and option descriptions with [field
        definitions](/api-reference/assets/get-fact-sheet-field-definitions).


        Response examples are abbreviated; expand the schema to see all
        disclosure fields.
      operationId: getAssetFactSheets
      parameters:
        - name: asset_ids
          in: query
          required: true
          description: >-
            Comma-separated asset IDs. Accepts 1–20 entries, including
            duplicates. Percent-encode reserved characters in IDs, such as #
            (%23).
          style: form
          explode: false
          schema:
            type: array
            minItems: 1
            maxItems: 20
            items:
              type: string
              minLength: 1
              maxLength: 200
          example:
            - eurc
            - usdc
        - name: include_tokens
          in: query
          required: false
          description: >-
            Include the tokens array with chain IDs, contract addresses and
            deployment facts. Defaults to false; otherwise the tokens property
            is omitted.
          schema:
            type: boolean
            default: false
      responses:
        '200':
          description: Requested researched fact sheets.
          content:
            application/json:
              schema:
                type: object
                required:
                  - data
                properties:
                  data:
                    type: array
                    maxItems: 20
                    items:
                      $ref: '#/components/schemas/AssetFactSheet'
              examples:
                disclosures:
                  summary: Disclosures (abbreviated)
                  description: >-
                    Representative fields from an EURC response. The API returns
                    all disclosure fields; this example omits the rest for
                    readability.
                  value:
                    data:
                      - asset_id: eurc
                        disclosures:
                          retrieved_at: '2026-09-24T14:50:48.117000Z'
                          website:
                            status: disclosed
                            value: https://www.circle.com/eurc
                            evidence:
                              reasoning: >-
                                Circle's product page names EURC as a
                                euro-backed stablecoin and is the issuer-domain
                                page for this specific product.
                              citations:
                                - url: https://www.circle.com/eurc
                                  title: EURC | A Euro-Backed Stablecoin - Circle
                                  excerpts:
                                    - >-
                                      EURC, A Euro-Backed Stablecoin - Circle
                                      EURC is supported on Avalanche, Base,
                                      Ethereum, Solana, and Stellar.
                          reference_asset:
                            status: disclosed
                            value: euro
                          regulatory_framework:
                            status: disclosed
                            values:
                              EEA:
                                status: disclosed
                                value:
                                  - eu_mica
                                evidence:
                                  reasoning: >-
                                    The white paper and EEA Terms both place the
                                    EURC issuance and related services within
                                    MiCA.
                                  citations:
                                    - url: >-
                                        https://www.circle.com/legal/mica-eurc-whitepaper
                                      title: MiCA EURC White Paper | Circle
                                      excerpts:
                                        - >-
                                          B.6, Crypto-Asset Characteristics, EURC
                                          is defined as an e-money token pursuant
                                          to Article 3.1(7) of MiCA. As of the
                                          date of this White Paper, EURC does not
                                          constitute a "significant e-money token"
                                          as defined by Article 56 of MiCA…
                                    - url: https://www.circle.com/legal/eea-terms
                                      title: >-
                                        Circle Europe | EEA Terms of Use |
                                        Circle
                                      excerpts:
                                        - The leading digital dollar USDC EURC…
                            not_available_reasoning: null
        '400':
          description: Missing, invalid or unsupported parameters.
        '402':
          description: API subscription is required
        '403':
          description: Missing, invalid or expired bearer token.
        '404':
          description: >-
            At least one requested asset has no fact sheet. Missing IDs are
            listed in meta.asset_ids; no partial result is returned.
        '422':
          description: Malformed Authorization header.
        '429':
          description: Organization API rate limit exceeded
      x-codeSamples:
        - lang: curl
          source: |-
            curl --request GET \
              --url "https://api.tokenterminal.com/v2/fact-sheets?asset_ids=eurc,usdc" \
              --header "Authorization: Bearer $TT_API_TOKEN"
          label: cURL
        - lang: python
          source: >-
            import requests


            url =
            "https://api.tokenterminal.com/v2/fact-sheets?asset_ids=eurc,usdc"


            headers = {"Authorization": "Bearer <token>"}


            response = requests.get(url, headers=headers)


            print(response.text)
          label: Python
        - lang: javascript
          source: >-
            const options = {method: 'GET', headers: {Authorization: 'Bearer
            <token>'}};


            fetch('https://api.tokenterminal.com/v2/fact-sheets?asset_ids=eurc,usdc',
            options)
              .then(res => res.json())
              .then(res => console.log(res))
              .catch(err => console.error(err));
          label: JavaScript
        - lang: php
          source: |-
            <?php

            $curl = curl_init();

            curl_setopt_array($curl, [
              CURLOPT_URL => "https://api.tokenterminal.com/v2/fact-sheets?asset_ids=eurc,usdc",
              CURLOPT_RETURNTRANSFER => true,
              CURLOPT_ENCODING => "",
              CURLOPT_MAXREDIRS => 10,
              CURLOPT_TIMEOUT => 30,
              CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
              CURLOPT_CUSTOMREQUEST => "GET",
              CURLOPT_HTTPHEADER => [
                "Authorization: Bearer <token>"
              ],
            ]);

            $response = curl_exec($curl);
            $err = curl_error($curl);

            curl_close($curl);

            if ($err) {
              echo "cURL Error #:" . $err;
            } else {
              echo $response;
            }
          label: PHP
        - lang: go
          source: "package main\n\nimport (\n\t\"fmt\"\n\t\"net/http\"\n\t\"io\"\n)\n\nfunc main() {\n\n\turl := \"https://api.tokenterminal.com/v2/fact-sheets?asset_ids=eurc,usdc\"\n\n\treq, _ := http.NewRequest(\"GET\", url, nil)\n\n\treq.Header.Add(\"Authorization\", \"Bearer <token>\")\n\n\tres, _ := http.DefaultClient.Do(req)\n\n\tdefer res.Body.Close()\n\tbody, _ := io.ReadAll(res.Body)\n\n\tfmt.Println(string(body))\n\n}"
          label: Go
        - lang: java
          source: >-
            HttpResponse<String> response =
            Unirest.get("https://api.tokenterminal.com/v2/fact-sheets?asset_ids=eurc,usdc")
              .header("Authorization", "Bearer <token>")
              .asString();
          label: Java
        - lang: ruby
          source: >-
            require 'uri'

            require 'net/http'


            url =
            URI("https://api.tokenterminal.com/v2/fact-sheets?asset_ids=eurc,usdc")


            http = Net::HTTP.new(url.host, url.port)

            http.use_ssl = true


            request = Net::HTTP::Get.new(url)

            request["Authorization"] = 'Bearer <token>'


            response = http.request(request)

            puts response.read_body
          label: Ruby
components:
  schemas:
    AssetFactSheet:
      type: object
      required:
        - asset_id
        - disclosures
      properties:
        asset_id:
          type: string
          description: Asset identifier used by /v2/assets.
          example: eurc
        disclosures:
          type: object
          required:
            - retrieved_at
          properties:
            retrieved_at:
              type: string
              format: date-time
              description: When the disclosure information was retrieved, in UTC.
            website:
              $ref: '#/components/schemas/FactSheetStringValue'
            isin:
              $ref: '#/components/schemas/FactSheetStringValue'
            cusip:
              $ref: '#/components/schemas/FactSheetStringValue'
            figi:
              $ref: '#/components/schemas/FactSheetStringValue'
            inception_date:
              $ref: '#/components/schemas/FactSheetRegistryStringValue'
            underlying_ticker:
              $ref: '#/components/schemas/FactSheetRegistryStringValue'
            reference_asset:
              $ref: '#/components/schemas/FactSheetRegistryStringValue'
            reference_ratio:
              $ref: '#/components/schemas/FactSheetNumberValue'
            asset_class:
              $ref: '#/components/schemas/FactSheetRegistryStringValue'
            claim_type:
              $ref: '#/components/schemas/FactSheetStringValue'
            issuance_status:
              $ref: '#/components/schemas/FactSheetStringValue'
            sector:
              $ref: '#/components/schemas/FactSheetStringListValue'
            region:
              $ref: '#/components/schemas/FactSheetStringListValue'
            voting_rights:
              $ref: '#/components/schemas/FactSheetBooleanValue'
            dividend_eligibility:
              $ref: '#/components/schemas/FactSheetBooleanValue'
            issuer_legal_entity:
              $ref: '#/components/schemas/FactSheetJurisdictionString'
            affiliate_entity:
              $ref: '#/components/schemas/FactSheetJurisdictionString'
            issuer_lei:
              $ref: '#/components/schemas/FactSheetJurisdictionString'
            issuer_cik:
              $ref: '#/components/schemas/FactSheetJurisdictionString'
            domicile:
              $ref: '#/components/schemas/FactSheetJurisdictionString'
            governing_law:
              $ref: '#/components/schemas/FactSheetJurisdictionString'
            governing_law_subdivision:
              $ref: '#/components/schemas/FactSheetJurisdictionString'
            dispute_resolution_country:
              $ref: '#/components/schemas/FactSheetJurisdictionString'
            regulator:
              $ref: '#/components/schemas/FactSheetJurisdictionStringList'
            regulatory_framework:
              $ref: '#/components/schemas/FactSheetJurisdictionStringList'
            mica_marker:
              $ref: '#/components/schemas/FactSheetStringValue'
            bankruptcy_remote:
              $ref: '#/components/schemas/FactSheetBooleanValue'
            account_segregation:
              $ref: '#/components/schemas/FactSheetBooleanValue'
            platform:
              $ref: '#/components/schemas/FactSheetStringValue'
            manager:
              $ref: '#/components/schemas/FactSheetStringValue'
            sub_advisor:
              $ref: '#/components/schemas/FactSheetStringValue'
            custodian:
              $ref: '#/components/schemas/FactSheetStringValue'
            crypto_custodian:
              $ref: '#/components/schemas/FactSheetStringValue'
            transfer_agent:
              $ref: '#/components/schemas/FactSheetStringValue'
            digital_transfer_agent:
              $ref: '#/components/schemas/FactSheetStringValue'
            fund_administrator:
              $ref: '#/components/schemas/FactSheetStringValue'
            broker:
              $ref: '#/components/schemas/FactSheetStringListValue'
            security_trustee:
              $ref: '#/components/schemas/FactSheetStringValue'
            storage_location:
              $ref: '#/components/schemas/FactSheetStringListValue'
            primary_route:
              $ref: '#/components/schemas/FactSheetStringValue'
            eligible_investors:
              $ref: '#/components/schemas/FactSheetStringListValue'
            eligible_jurisdictions:
              $ref: '#/components/schemas/FactSheetStringListValue'
            excluded_jurisdictions:
              $ref: '#/components/schemas/FactSheetStringListValue'
            kyc_required:
              $ref: '#/components/schemas/FactSheetBooleanValue'
            right_to_redeem:
              $ref: '#/components/schemas/FactSheetBooleanValue'
            base_assets:
              $ref: '#/components/schemas/FactSheetStringListValue'
            min_investment:
              $ref: '#/components/schemas/FactSheetNumberValue'
            min_redemption:
              $ref: '#/components/schemas/FactSheetNumberValue'
            subscription_time:
              $ref: '#/components/schemas/FactSheetStringValue'
            redemption_time:
              $ref: '#/components/schemas/FactSheetStringValue'
            is_open_ended:
              $ref: '#/components/schemas/FactSheetBooleanValue'
            lockup_period:
              $ref: '#/components/schemas/FactSheetNumberValue'
            physical_redemption:
              $ref: '#/components/schemas/FactSheetBooleanValue'
            management_fee:
              $ref: '#/components/schemas/FactSheetNumberValue'
            storage_fee:
              $ref: '#/components/schemas/FactSheetNumberValue'
            dividend_handling:
              $ref: '#/components/schemas/FactSheetStringValue'
            reserve_composition:
              $ref: '#/components/schemas/FactSheetStringListValue'
            auditor:
              $ref: '#/components/schemas/FactSheetStringValue'
            attestation_frequency:
              $ref: '#/components/schemas/FactSheetStringValue'
          additionalProperties: false
          description: >-
            Disclosure terms keyed by field ID. The response includes every
            listed field, even when its value is unavailable or not applicable.
            Field titles, definitions and allowed option descriptions are
            returned separately by GET /v2/fact-sheets/fields.
        tokens:
          type: array
          description: >-
            Token deployments. Present only when include_tokens=true; an empty
            array means no deployments are recorded.
          items:
            type: object
            required:
              - token_id
              - chain_id
              - token_address
            properties:
              token_id:
                type: string
              chain_id:
                type: string
              token_address:
                type: string
              is_bridged:
                type: boolean
                nullable: true
              bridged_status:
                type: string
                nullable: true
              token_standard:
                type: string
                nullable: true
              token_extensions:
                type: array
                items:
                  type: string
              token_extensions_coverage:
                type: string
              token_permissions:
                type: array
                items:
                  type: string
              decimals:
                type: number
                nullable: true
              first_issued_onchain:
                type: string
                nullable: true
                format: date
                description: >-
                  First on-chain issuance date for this deployment, or null when
                  unavailable.
    FactSheetStringValue:
      type: object
      required:
        - status
        - value
        - evidence
      properties:
        status:
          $ref: '#/components/schemas/FactSheetStatus'
        value:
          type: string
          nullable: true
        evidence:
          $ref: '#/components/schemas/FactSheetEvidence'
    FactSheetRegistryStringValue:
      type: object
      required:
        - status
        - value
      properties:
        status:
          $ref: '#/components/schemas/FactSheetStatus'
        value:
          type: string
          nullable: true
    FactSheetNumberValue:
      type: object
      required:
        - status
        - value
        - evidence
      properties:
        status:
          $ref: '#/components/schemas/FactSheetStatus'
        value:
          type: number
          nullable: true
        evidence:
          $ref: '#/components/schemas/FactSheetEvidence'
    FactSheetStringListValue:
      type: object
      required:
        - status
        - value
        - evidence
      properties:
        status:
          $ref: '#/components/schemas/FactSheetStatus'
        value:
          type: array
          items:
            type: string
          nullable: true
        evidence:
          $ref: '#/components/schemas/FactSheetEvidence'
    FactSheetBooleanValue:
      type: object
      required:
        - status
        - value
        - evidence
      properties:
        status:
          $ref: '#/components/schemas/FactSheetStatus'
        value:
          type: boolean
          nullable: true
        evidence:
          $ref: '#/components/schemas/FactSheetEvidence'
    FactSheetJurisdictionString:
      type: object
      required:
        - status
        - values
        - not_available_reasoning
      properties:
        status:
          $ref: '#/components/schemas/FactSheetStatus'
        values:
          type: object
          description: >-
            Answers keyed by an ISO 3166-1 alpha-2 country code or EEA. Each
            entry keeps its own value and evidence.
          additionalProperties:
            $ref: '#/components/schemas/FactSheetStringValue'
        not_available_reasoning:
          type: string
          nullable: true
          description: >-
            Recorded explanation when no jurisdiction-specific answer is
            available; null otherwise.
    FactSheetJurisdictionStringList:
      type: object
      required:
        - status
        - values
        - not_available_reasoning
      properties:
        status:
          $ref: '#/components/schemas/FactSheetStatus'
        values:
          type: object
          description: >-
            Answers keyed by an ISO 3166-1 alpha-2 country code or EEA. Each
            entry keeps its own value and evidence.
          additionalProperties:
            $ref: '#/components/schemas/FactSheetStringListValue'
        not_available_reasoning:
          type: string
          nullable: true
          description: >-
            Recorded explanation when no jurisdiction-specific answer is
            available; null otherwise.
    FactSheetStatus:
      type: string
      enum:
        - disclosed
        - not_available
        - not_applicable
      description: >-
        disclosed: a value is available. not_available: no value is available.
        not_applicable: the field does not apply to this asset class.
    FactSheetEvidence:
      type: object
      nullable: true
      required:
        - reasoning
        - citations
      properties:
        reasoning:
          type: string
          nullable: true
          description: Explanation supporting the disclosed value.
        citations:
          type: array
          items:
            type: object
            required:
              - url
              - title
              - excerpts
            properties:
              url:
                type: string
                format: uri
              title:
                type: string
                nullable: true
              excerpts:
                type: array
                items:
                  type: string
                description: Quoted passages from the source.
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: string

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.