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

# List datasets

> Every dataset, with the filters and fields of the ones search covers

Lists every dataset in Rhizome. The ones the API can search (`available: true`) come with their filters, their fields and the field dates filter on. The [Datasets](/datasets/index) reference shows the same information, one page per dataset.

Datasets outside the US are listed with `available: false` and no filters or fields: the API can't search them yet.

## Response

<ResponseField name="datasets" type="array">
  Every dataset.

  <Expandable title="Dataset object">
    <ResponseField name="id" type="string">
      The dataset id, used in a search's `datasets` and `filters`.
    </ResponseField>

    <ResponseField name="name" type="string">
      Display name.
    </ResponseField>

    <ResponseField name="jurisdiction" type="string">
      Country and agency, e.g. `US · FDA`.
    </ResponseField>

    <ResponseField name="available" type="boolean">
      Whether the API can search the dataset. When `false`, `date_field`,
      `filters` and `fields` are absent.
    </ResponseField>

    <ResponseField name="enterprise" type="boolean">
      Whether the dataset needs an enterprise plan. Without one, search reports
      it as `forbidden`.
    </ResponseField>

    <ResponseField name="date_field" type="string | null">
      The field a search's `date_from` and `date_to` filter on. `null` when the
      dataset has no date: a search with a date skips it.
    </ResponseField>

    <ResponseField name="filters" type="object">
      The filters the dataset accepts in a search's `filters`, as JSON Schema
      properties: each has a `type`, a `description`, and an `enum` or
      `format` when the value is constrained.
    </ResponseField>

    <ResponseField name="fields" type="string[]">
      The fields of the dataset's results. A search result carries them in
      `fields`, except `page_num` and `text`: the page itself is in `pages`.
    </ResponseField>
  </Expandable>
</ResponseField>

## Errors

Errors return `{"error": {"code", "message", "request_id"}}`. See [Errors](/errors).

| Status | Code | Description |
| - | - | - |
| 401 | `missing_api_key`, `invalid_api_key` | Missing or invalid API key |
| 429 | `rate_limited` | Rate limit exceeded (50 requests/minute) |
| 502 | `upstream_error` | The catalog couldn't be loaded |

<RequestExample>
  ```bash cURL theme={null}
  curl https://rhizomeai.com/api/v3/datasets \
    -H "x-api-key: YOUR_API_KEY"
  ```

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

  response = requests.get(
      "https://rhizomeai.com/api/v3/datasets",
      headers={"x-api-key": "YOUR_API_KEY"},
  )
  response.raise_for_status()
  for dataset in response.json()["datasets"]:
      if dataset["available"]:
          print(dataset["id"], sorted(dataset["filters"]))
  ```

  ```javascript JavaScript theme={null}
  const response = await fetch("https://rhizomeai.com/api/v3/datasets", {
    headers: { "x-api-key": "YOUR_API_KEY" },
  });

  const { datasets } = await response.json();
  console.log(datasets.filter((d) => d.available).map((d) => d.id));
  ```
</RequestExample>

<ResponseExample>
  ```json Response theme={null}
  {
    "datasets": [
      {
        "id": "fda_483",
        "name": "FDA 483 Inspections",
        "jurisdiction": "US · FDA",
        "available": true,
        "enterprise": false,
        "date_field": "record_date",
        "filters": {
          "facility_name": {
            "type": "string",
            "description": "Keyword match on facility name (BM25 tokenized). Example: 'Emergent BioSolutions'."
          },
          "fei_number": {
            "type": "string",
            "description": "Exact FEI number. Example: '3002808318'."
          },
          "title": {
            "type": "string",
            "description": "Keyword match on document title (BM25 tokenized)."
          },
          "date_from": {
            "type": "string",
            "format": "date",
            "description": "Inclusive lower bound on record date (YYYY-MM-DD)."
          },
          "date_to": {
            "type": "string",
            "format": "date",
            "description": "Inclusive upper bound on record date (YYYY-MM-DD)."
          }
        },
        "fields": [
          "facility_name",
          "fei_number",
          "record_date",
          "record_id",
          "title",
          "url"
        ]
      },
      {
        "id": "ema_committee",
        "name": "EMA Committee Documents",
        "jurisdiction": "EU · EMA",
        "available": false,
        "enterprise": false
      }
    ]
  }
  ```
</ResponseExample>


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