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

# Overview

> What the Criffy public API includes, how access works, and where to start.

# Criffy Public API

Criffy exposes a public REST API for Pro+ market data integrations. API keys are created and managed from the signed-in Criffy dashboard, then used as Bearer tokens against the public data endpoints.

## Quickstart

1. Buy or upgrade to a [Pro+ plan](https://criffy.com/pricing).
2. Generate an API key from [Settings -> API](https://criffy.com/settings/api) in the Criffy dashboard.
3. Call a public data endpoint with the key:

```bash theme={null}
curl "https://criffy.com/api/v1/exchanges?limit=1" \
  -H "Authorization: Bearer criffy_live_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
```

4. Use [Querying Data](/getting-started/querying) and [API Reference](/api-reference/overview) to add filters, pagination, and history windows.

## What is available

The public REST API lets Pro+ users query:

* `GET /api/v1/exchanges`
* `GET /api/v1/exchanges/{slug}`
* `GET /api/v1/wallets`
* `GET /api/v1/wallets/{slug}`
* `GET /api/v1/protocols`
* `GET /api/v1/protocols/{slug}`
* `GET /api/v1/currencies`
* `GET /api/v1/currencies/{slug}`
* `GET /api/v1/earn`
* `GET /api/v1/earn/{id}`
* `GET /api/v1/earn/{id}/history`
* `GET /api/v1/borrow`
* `GET /api/v1/borrow/{id}`
* `GET /api/v1/borrow/{id}/history`
* `GET /api/v1/collateral`
* `GET /api/v1/collateral/{id}`
* `GET /api/v1/collateral/{id}/history`

## Access model

All public data endpoints under `/api/v1/*` require:

* `Authorization: Bearer <api_key>`
* An active Criffy `Pro+` subscription

Signed-in users manage their public API key and usage from [Settings -> API](https://criffy.com/settings/api) in the Criffy dashboard.

Pro+ API keys currently include 60 requests per minute and 100,000 requests per calendar month. Monthly quota resets on the 1st day of each month at `00:00 UTC`.

Dashboard key management is separate from the Bearer-auth public data API. External integrations should only use the generated API key as a Bearer token.

## Contract highlights

* List endpoints return a stable `{ data, pagination }` envelope.
* Decimal finance values are serialized as strings to preserve precision.
* Timestamps are ISO 8601 strings in UTC.
* Renamed slug-based resources can return `301 Moved Permanently` to the current slug.
* `GET /api/v1/currencies/{slug}` returns the currency plus related `earn_offers`, `borrow_offers`, and `collateral_offers`.
* `GET /api/v1/collateral/{id}/history` is part of the contract but returns `404 not_found` because collateral history is not stored.

## Visibility and offer status

Platform and currency resources are exposed only when they are published and not delisted. Hidden or delisted resources are not part of the public API surface.

Offer availability is different: published earn, borrow, and collateral offers can still be returned when they are not currently usable. Earn offers expose this with `available`; borrow and collateral offers expose this with `is_active`. Treat these fields as runtime status signals before showing an offer as actionable.

## Next steps

* Read [Authentication](/getting-started/authentication) to set up Bearer access.
* Read [Errors and Limits](/getting-started/errors-and-limits) to understand quotas, retry behavior, and shared error envelopes.
* Read [Querying Data](/getting-started/querying) for pagination, filtering, and history window rules.
* Read [Get Your API Key](/account/rest-api-keys) to understand key creation, rotation, and storage.
* Browse the generated endpoint pages under [API Reference](/api-reference/overview).
