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

# Provider Tools

> Tools for discovering 30+ external data providers (FRED, BLS, World Bank, OECD, IMF, BIS, ECB, Eurostat, and central banks across Latin America, Europe, and Asia), browsing their catalogs, and fetching series.

Five read-only tools for working with the external data providers Alphacast integrates with. Browse the live catalog at [alphacast.io/explore/apis](https://www.alphacast.io/explore/apis).

## `list_providers`

List every available provider, or search the top 5 by keyword.

<ParamField body="query" type="string">
  Optional keyword. Omit to list every provider. With a keyword, returns the top 5 matches scored across slug, name, and description.
</ParamField>

**Example prompt**

> "Which providers cover Latin American economic data?"

**Underlying endpoints:** `GET /providers` (no query) or `GET /providers/match?q=...` (with query).

***

## `get_provider`

Get full metadata for one provider, including its tunable parameters and curated popular series.

<ParamField body="slug" type="string" required>
  Provider slug. Examples: `fred`, `bls`, `worldbank`, `bcra`, `inegi`, `banxico`, `oecd`, `imf`, `bis`, `bcb-opendata`.
</ParamField>

Response includes `parameters` (tunable knobs like FRED's `units` or `frequency`), `popular_series`, key requirements, and the `browse_root_label` for hierarchical navigation.

**Example prompt**

> "Tell me about the FRED provider — does it require a key?"

**Underlying endpoint:** `GET /providers/{slug}`.

***

## `browse_provider`

Walk a provider's hierarchical catalog by path. Only available for providers with the `hierarchical` capability.

<ParamField body="slug" type="string" required>
  Provider slug.
</ParamField>

<ParamField body="path" type="string">
  Slash-separated path inside the provider's tree. Omit to start at the root.
</ParamField>

<ParamField body="depth" type="number" default="1">
  How many levels of children to return in one call. Maximum is 3.
</ParamField>

<ParamField body="series" type="boolean">
  When `true`, return paginated series at the current path instead of subfolders.
</ParamField>

<ParamField body="limit" type="number">
  Page size when `series=true`.
</ParamField>

<ParamField body="offset" type="number">
  Pagination offset when `series=true`.
</ParamField>

**Example prompt**

> "Browse the World Bank Economy & Growth category two levels deep."

**Underlying endpoint:** `GET /providers/{slug}/browse`.

***

## `search_provider`

Search series within a single provider by keyword. Only for providers with the `search` capability.

<ParamField body="slug" type="string" required>
  Provider slug.
</ParamField>

<ParamField body="query" type="string" required>
  Search query.
</ParamField>

<ParamField body="limit" type="number">
  Maximum number of results.
</ParamField>

**Example prompt**

> "Search FRED for unemployment rate series and return the top 10."

**Underlying endpoint:** `GET /providers/{slug}/search`.

***

## `get_series`

Fetch the full historical data of one provider series.

<ParamField body="slug" type="string" required>
  Provider slug.
</ParamField>

<ParamField body="series_id" type="string" required>
  The provider's series identifier. Format varies: `UNRATE` for FRED, `CUUR0000SA0` for BLS, `NY.GDP.PCAP.CD` for World Bank.
</ParamField>

<ParamField body="params" type="object">
  Provider-specific parameters (FRED `units`, BLS `startyear`, etc.). See `get_provider` for valid keys.
</ParamField>

**Example prompt**

> "Fetch the full FRED CPIAUCSL series as year-over-year percent change."

**Underlying endpoint:** `POST /providers/{slug}/series/{series_id}/data`.

***

## Managing provider API keys

<Note>
  Third-party API keys (FRED, BLS, INEGI, Banxico, BEA, EIA, BCCH, and others) are managed through the [Alphacast settings page](https://www.alphacast.io/settings). Once saved, every call to `get_series` for that provider uses the key automatically.
</Note>
