> ## Documentation Index
> Fetch the complete documentation index at: https://cantonfoundation-generated-reference-full-stack-preview.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# GET /registry/metadata/v1/instruments

> List all instruments managed by this instrument admin.

<div class="x2mdx-ref-page x2mdx-ref-page--operation x2mdx-ref-page--manual-api" />

<div class="x2mdx-ref-hero">
  <p class="x2mdx-ref-summary">List all instruments managed by this instrument admin.</p>

  <div class="x2mdx-ref-badges">
    <span class="x2mdx-ref-badge x2mdx-ref-badge--protocol">OpenAPI</span>

    <a class="x2mdx-ref-badge x2mdx-ref-badge--changed" href="#history-updated-0-6-12">Updated 0.6.12</a>

    <a class="x2mdx-ref-badge x2mdx-ref-badge--added" href="#history-added-0-5-10">Added 0.5.10</a>
  </div>
</div>

<RequestExample>
  ```bash cURL theme={null}
  curl --request GET \
    --url 'https://example.com/registry/metadata/v1/instruments'
  ```

  ```python Python theme={null}
  import json
  import requests

  url = "https://example.com/registry/metadata/v1/instruments"
  response = requests.request("GET", url)

  print(response.text)
  ```

  ```javascript JavaScript theme={null}
  const response = await fetch('https://example.com/registry/metadata/v1/instruments', {
    method: 'GET',
  });

  console.log(await response.text());
  ```

  ```php PHP theme={null}
  <?php
  $curl = curl_init();

  curl_setopt_array($curl, [
      CURLOPT_URL => 'https://example.com/registry/metadata/v1/instruments',
      CURLOPT_RETURNTRANSFER => true,
      CURLOPT_CUSTOMREQUEST => 'GET',
  ]);

  $response = curl_exec($curl);
  echo $response;
  ```

  ```go Go theme={null}
  package main

  import (
    "fmt"
    "io"
    "net/http"
  )

  func main() {
    req, _ := http.NewRequest("GET", "https://example.com/registry/metadata/v1/instruments", nil)
    response, _ := http.DefaultClient.Do(req)
    defer response.Body.Close()
    body, _ := io.ReadAll(response.Body)
    fmt.Println(string(body))
  }
  ```

  ```java Java theme={null}
  import java.net.URI;
  import java.net.http.HttpClient;
  import java.net.http.HttpRequest;
  import java.net.http.HttpResponse;

  var request = HttpRequest.newBuilder()
      .uri(URI.create("https://example.com/registry/metadata/v1/instruments"))
      .method("GET", HttpRequest.BodyPublishers.noBody())
      .build();
  var response = HttpClient.newHttpClient().send(
      request, HttpResponse.BodyHandlers.ofString());
  System.out.println(response.body());
  ```

  ```ruby Ruby theme={null}
  require 'net/http'
  require 'uri'

  uri = URI('https://example.com/registry/metadata/v1/instruments')
  request = Net::HTTP::Get.new(uri)
  response = Net::HTTP.start(uri.hostname, uri.port) do |http|
    http.request(request)
  end
  puts response.body
  ```
</RequestExample>

<ResponseExample>
  ```json 200 theme={null}
  {
    "instruments": [
      {
        "id": "<string>",
        "name": "<string>",
        "symbol": "<string>",
        "totalSupply": "<string>",
        "totalSupplyAsOf": "2026-01-01T00:00:00Z",
        "decimals": 10,
        "paused": false,
        "pauseInfo": {
          "reason": "<string>",
          "until": "2026-01-01T00:00:00Z"
        },
        "supportedApis": {},
        "showAccountInputFields": false,
        "accountInputFieldsToShow": [
          "provider"
        ]
      }
    ],
    "nextPageToken": "<string>"
  }
  ```

  ```json 404 theme={null}
  {
    "error": "<string>"
  }
  ```

  ```json 500 theme={null}
  {
    "error": "<string>"
  }
  ```
</ResponseExample>

## Query parameters

<ParamField query="pageSize" type="number" default="25">
  OpenAPI type: <code>integer (int32)</code>.

  Number of instruments per page.
</ParamField>

<ParamField query="pageToken" type="string">
  The `nextPageToken` received from the response for the previous page.
</ParamField>

## Responses

### 200

ok

<div class="x2mdx-ref-badges">
  <span class="x2mdx-ref-badge x2mdx-ref-badge--neutral">application/json</span>
</div>

<ResponseField name="instruments" type="Instrument[]" required>
  <Expandable title="child attributes">
    <ResponseField name="id" type="string" required>
      The unique identifier assigned by the admin to the instrument.
    </ResponseField>

    <ResponseField name="name" type="string" required>
      The display name for the instrument recommended by the instrument admin. This is not necessarily unique.
    </ResponseField>

    <ResponseField name="symbol" type="string" required>
      The symbol for the instrument recommended by the instrument admin. This is not necessarily unique.
    </ResponseField>

    <ResponseField name="totalSupply" type="string">
      Decimal encoded current total supply of the instrument.
    </ResponseField>

    <ResponseField name="totalSupplyAsOf" type="string (date-time)">
      The timestamp when the total supply was last computed.
    </ResponseField>

    <ResponseField name="decimals" type="integer (int8)" required default="10">
      The number of decimal places used by the instrument. Must be a number between 0 and 10, as the Daml interfaces represent holding amounts as `Decimal` values, which use 10 decimal places and are precise for 38 digits. Setting this to 0 means that the instrument can only be held in whole units. This number SHOULD be used for display purposes in a wallet to decide how many decimal places to show and accept when displaying or entering amounts.
    </ResponseField>

    <ResponseField name="paused" type="boolean" default="false">
      Indicates whether the instrument is currently paused. A paused instrument cannot be transferred or allocated.
    </ResponseField>

    <ResponseField name="pauseInfo" type="PauseInfo">
      Additional information about the instrument pause state.

      <Expandable title="child attributes">
        <ResponseField name="reason" type="string">
          Why the instrument is paused.
        </ResponseField>

        <ResponseField name="until" type="string (date-time)">
          Timestamp (exclusive) until which the instrument is paused, if known.
        </ResponseField>
      </Expandable>
    </ResponseField>

    <ResponseField name="supportedApis" type="SupportedApis" required>
      Map from token standard API name to the minor version of the API supported, e.g., splice-api-token-metadata-v1 -> 1 where the `1` corresponds to the minor version.
    </ResponseField>

    <ResponseField name="showAccountInputFields" type="boolean" default="false">
      Informs wallets whether the instrument supports non-basic accounts and the wallet should thus show input fields for both the account provider and the account id in input forms for transfers and allocations. Note that wallets should always show non-null account providers and account ids when displaying transfers and allocations. This property is deprecated in favor of the more fine-grained `accountInputFieldsToShow` property.
    </ResponseField>

    <ResponseField name="accountInputFieldsToShow" type="AccountInputFieldsToShow">
      Which account input field(s) wallets should show in forms.
    </ResponseField>
  </Expandable>
</ResponseField>

<ResponseField name="nextPageToken" type="string">
  The token for the next page of results, to be used as the lastInstrumentId for the next page.
</ResponseField>

### 404

not found

<div class="x2mdx-ref-badges">
  <span class="x2mdx-ref-badge x2mdx-ref-badge--neutral">application/json</span>
</div>

<ResponseField name="error" type="string" required />

### 500

Internal server error

<div class="x2mdx-ref-badges">
  <span class="x2mdx-ref-badge x2mdx-ref-badge--neutral">application/json</span>
</div>

<ResponseField name="error" type="string" required />

## History

<div class="x2mdx-ref-history" aria-label="Reference history">
  <div class="x2mdx-ref-history-event x2mdx-ref-history-event--changed" id="history-updated-0-6-12">
    <div class="x2mdx-ref-history-event-head">
      <span class="x2mdx-ref-history-event-label">Updated</span>
      <code class="x2mdx-ref-history-event-version">0.6.12</code>
    </div>

    <p class="x2mdx-ref-history-event-detail">The GET /registry/metadata/v1/instruments operation changed in this snapshot.</p>
  </div>

  <div class="x2mdx-ref-history-event x2mdx-ref-history-event--changed" id="history-updated-0-6-11">
    <div class="x2mdx-ref-history-event-head">
      <span class="x2mdx-ref-history-event-label">Updated</span>
      <code class="x2mdx-ref-history-event-version">0.6.11</code>
    </div>

    <p class="x2mdx-ref-history-event-detail">The GET /registry/metadata/v1/instruments operation changed in this snapshot.</p>
  </div>

  <div class="x2mdx-ref-history-event x2mdx-ref-history-event--introduced" id="history-added-0-5-10">
    <div class="x2mdx-ref-history-event-head">
      <span class="x2mdx-ref-history-event-label">Added</span>
      <code class="x2mdx-ref-history-event-version">0.5.10</code>
    </div>
  </div>
</div>
