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

# Get Instrument Schema

> The fields, value lists and class requirements of the instrument record

Returns the shape of the [instrument record](/endpoints/tokenization/save-instrument): its 42 fields, the six overview fields, every enumerated value list and what each security class requires. Build a form or a validator from it instead of hard-coding the field list.

## Response Fields

<ResponseField name="data" type="object">
  <Expandable>
    <ResponseField name="fields" type="array">One entry per record field, each `{ key, group, kind, values, max }`. `group` is one of `identity`, `legal`, `ranking`, `priorRanking`, `term`, `redemption` and `register`. `kind` is one of `isin`, `lei`, `currency`, `country`, `enum`, `bool`, `decimal`, `date`, `schedule` and `text`. `values` lists the accepted values of an `enum` field, `max` the length limit of a `text` field.</ResponseField>
    <ResponseField name="presentationFields" type="array">The six overview fields, each `{ key, group, kind, values, max, wide }`. They are written with [Update Profile](/endpoints/tokenization/update-profile), or under `presentation` on [Save Instrument](/endpoints/tokenization/save-instrument).</ResponseField>
    <ResponseField name="enums" type="object">Every value list by name: `securityClass`, `legalBasis`, `bearerOrRegistered`, `offerBasis`, `ranking`, `priorRankingFinancing`, `redemptionType`, `redemptionOnChainEffect`, `registerType`, `pledgeEntryCapability`, `issuerAuthorisation` and `docType`.</ResponseField>
    <ResponseField name="optionsByRegime" type="object">The value lists narrowed to what each regulatory regime allows.</ResponseField>
    <ResponseField name="requiredByClass" type="object">For each `securityClass`, the fields a complete record carries.</ResponseField>
    <ResponseField name="requiredDocumentsByClass" type="object">For each `securityClass`, the `docType` values a complete record carries.</ResponseField>
  </Expandable>
</ResponseField>

<Note>
  A required field is a completeness checklist, not a gate. A record missing one is saved and published, and every missing field is shown to lenders as not supplied.
</Note>

<RequestExample>
  ```bash cURL theme={null}
  curl "https://api.trusset.org/instruments/api/schema" \
    -H "X-API-Key: trusset_your_key_here"
  ```
</RequestExample>

<ResponseExample>
  ```json Response theme={null}
  {
    "success": true,
    "data": {
      "fields": [
        { "key": "isin", "group": "identity", "kind": "isin", "values": null, "max": null },
        { "key": "securityClass", "group": "legal", "kind": "enum", "values": ["BOND", "NOTE", "PROFIT_PARTICIPATION", "SHARE", "FUND_UNIT", "ASSET_REFERENCED_TOKEN", "EMONEY_TOKEN", "OTHER_CRYPTO_ASSET", "OTHER"], "max": null }
      ],
      "presentationFields": [
        { "key": "description", "group": "overview", "kind": "text", "values": null, "max": 2000, "wide": true }
      ],
      "enums": { "docType": ["ANLEIHEBEDINGUNGEN", "BASISINFORMATIONSBLATT", "WERTPAPIER_INFORMATIONSBLATT", "CRYPTO_ASSET_WHITEPAPER", "RESERVE_ATTESTATION", "REGISTER_EXTRACT", "ISSUER_ACCOUNTS", "VALUATION_REPORT", "RATING_REPORT", "PLEDGE_TEMPLATE", "OTHER"] },
      "optionsByRegime": {},
      "requiredByClass": { "BOND": ["isin", "issuerLei", "currency", "nominalPerUnit", "securityClass", "legalBasis", "ranking", "maturityDate", "redemptionType", "redemptionPricePct", "registerType", "registerProviderLei", "registerEntryReference", "pledgeEntryCapability", "priorRankingFinancing"] },
      "requiredDocumentsByClass": { "BOND": ["ANLEIHEBEDINGUNGEN", "BASISINFORMATIONSBLATT"] }
    }
  }
  ```
</ResponseExample>


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