> For the complete documentation index, see [llms.txt](https://docs.heron-intelligence.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.heron-intelligence.com/api-reference/api-reference/data-sources.md).

# Data Sources

Returns the data source providers accessible to the authenticated client, derived from the client's `allowed_data_source_ids` configuration. If no sources are explicitly assigned, defaults to the Blue Heron provider.

This endpoint is scoped to **your entitlements** — it answers "which providers can I read?". For what each provider is, and for the full catalog of valid provider names, see [Data Providers](/documentation/data-providers.md).

## Response shape

Each item carries exactly two fields:

| Field  | Type   | Notes                                                                                 |
| ------ | ------ | ------------------------------------------------------------------------------------- |
| `id`   | UUID   | The provider id. This is the value `GET /interviews` filters on.                      |
| `name` | string | The provider's display name — `Blue Heron`, `Paragon`, `Heron AI`, `Heron AI Events`. |

How a dataset is produced (human- versus AI-conducted, MDD versus BDD) is **not** returned here. Take it from [Data Providers](/documentation/data-providers.md).

## Filtering interviews by provider

The ids from this endpoint are what [`GET /api/v1/interviews`](/api-reference/api-reference/interviews.md) accepts in `data_source_provider_ids`, as a comma-separated list. Provider *names* are not accepted by the REST API — only the MCP server filters by name.

```bash
# 1. Resolve the provider ids once (they are stable — cache them).
curl -s "https://api.heron-intelligence.com/api/v1/data-sources" \
  -H "x-api-key: $HERON_API_KEY"

# 2. Filter interviews with the ids you care about.
curl -s "https://api.heron-intelligence.com/api/v1/interviews?data_source_provider_ids=<ID_1>,<ID_2>" \
  -H "x-api-key: $HERON_API_KEY"
```

Every interview echoes its provider back in `data_source_provider` (`{ id, name }`), so results map to a name without a second lookup.

{% hint style="warning" %}
A provider missing from this response means your API key is **not entitled** to it — not that the dataset does not exist. Filtering `/interviews` by a provider id you are not entitled to returns an empty page, not an error. Never report that as an absence of research.
{% endhint %}

## List Data Sources

{% openapi src="/files/rhZvju8DuyV351qD9FwY" path="/api/v1/data-sources" method="get" %}
[dataproduct-openapi.json](https://3524418219-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FRWm75ANZdNMw24schJSn%2Fuploads%2Fgit-blob-29443b5f66daf843ba15b1d60e5cc3c105771cea%2Fdataproduct-openapi.json?alt=media)
{% endopenapi %}
