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

# Search instruments

> Search the instruments the user can trade by name, symbol, ISIN, or type. Use this to find the symbol before you place an order.

## Query parameters

<ParamField query="query" type="string">
  Search text such as Apple, gold, BTC, EURUSD, Nasdaq, forex, or an ISIN/RIC. Omit to browse products by type.
</ParamField>

<ParamField query="type" type="enum<string>">
  Optional product type filter.

  Available options: `stock`, `forex`, `commodity`, `index`, `futures`, `fund`, `spot`
</ParamField>

<ParamField query="shariaOnly" type="boolean" default="false">
  Return only products marked as Sharia-compliant.
</ParamField>

<ParamField query="limit" type="integer" default="10">
  Maximum number of products to return.

  Minimum: `1`

  Maximum: `50`
</ParamField>

## Response

`200` Success.

<ResponseField name="items" type="object[]">
  <Expandable title="properties">
    <ResponseField name="symbol" type="string">
      Tradable symbol identifier to pass to order, price, chart, or instrument-detail endpoints.
    </ResponseField>

    <ResponseField name="name" type="string">
      Human-friendly product name.
    </ResponseField>

    <ResponseField name="description" type="string">
      Short product description.
    </ResponseField>

    <ResponseField name="type" type="string">
      Product type such as stock, forex, commodity, index, futures, fund, or spot.
    </ResponseField>

    <ResponseField name="specs" type="string[]">
      Product traits such as cfd or crypto.
    </ResponseField>

    <ResponseField name="exchange" type="string">
      Inferred listed exchange or AMANA for OTC products.
    </ResponseField>

    <ResponseField name="session" type="string">
      Trading session in TradingView format.
    </ResponseField>

    <ResponseField name="leverage" type="number">
      Maximum leverage for the authenticated user's group.
    </ResponseField>

    <ResponseField name="sharia" type="boolean">
      Whether the product is marked Sharia-compliant.
    </ResponseField>

    <ResponseField name="pdt" type="boolean">
      Whether pattern day trading restrictions apply.
    </ResponseField>

    <ResponseField name="minVolume" type="number">
      Minimum trade volume.
    </ResponseField>

    <ResponseField name="maxVolume" type="number">
      Maximum trade volume.
    </ResponseField>

    <ResponseField name="volumeStep" type="number">
      Allowed volume increment.
    </ResponseField>

    <ResponseField name="marginCurrency" type="string">
      Margin currency.
    </ResponseField>

    <ResponseField name="profitCurrency" type="string">
      Profit currency.
    </ResponseField>
  </Expandable>
</ResponseField>

## Possible Errors

| Error | Possible cause | What to do |
| - | - | - |
| 400 | Invalid or missing field | Check the request against the schema. |
| 401 | Token missing or expired | Log in again or use the refresh token. |
| 403 | IP not whitelisted, or account restricted | Confirm your IP is whitelisted; otherwise contact Amana. |
| 429 / 5xx | Rate limit, or temporary issue on our side | Retry with backoff; contact support if it persists. |

<RequestExample>
  ```bash cURL theme={null}
  curl --request GET \
    --url 'https://gateway.amana.io/trading/symbols/search' \
    --header 'Authorization: Bearer <token>'
  ```

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

  url = "https://gateway.amana.io/trading/symbols/search"
  headers = {"Authorization": "Bearer <token>"}

  response = requests.request("GET", url, headers=headers)
  print(response.json())
  ```

  ```javascript JavaScript theme={null}
  const response = await fetch('https://gateway.amana.io/trading/symbols/search', {
    method: 'GET',
    headers: {"Authorization": "Bearer <token>"},
  });
  console.log(await response.json());
  ```
</RequestExample>

<ResponseExample>
  ```json 200 theme={null}
  {
    "items": [
      {
        "symbol": "<string>",
        "name": "<string>",
        "description": "<string>",
        "type": "<string>",
        "specs": [
          "<string>"
        ],
        "exchange": "<string>",
        "session": "<string>",
        "leverage": 123.45,
        "sharia": true,
        "pdt": true,
        "minVolume": 123.45,
        "maxVolume": 123.45,
        "volumeStep": 123.45,
        "marginCurrency": "<string>",
        "profitCurrency": "<string>"
      }
    ]
  }
  ```

  ```json 400 theme={null}
  {
    "error": "<string>",
    "message": "<string>"
  }
  ```

  ```json 401 theme={null}
  {
    "error": "<string>",
    "message": "<string>",
    "details": {}
  }
  ```

  ```json 403 theme={null}
  {
    "error": "<string>",
    "message": "<string>"
  }
  ```

  ```json 429 theme={null}
  {
    "error": "<string>",
    "message": "<string>"
  }
  ```

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


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