# Errors, terms and attribution

## Errors

- **HTTP 401 / 429:** authentication and limits; see [Authentication and limits](/docs/authentication).
- **HTTP 200 with `errors`:** a GraphQL problem, such as an unknown field, a bad argument, a query over the depth or complexity limit, or a field that failed (e.g. a price provider without a key). Partial `data` can come back alongside `errors`, so always check both:

```json
{
  "data": { "card": { "printings": [ { "marketPrices": null } ] } },
  "errors": [ { "message": "Pass your justtcg API key in the X-Provider-Key-Justtcg header.", "path": ["card", "printings", 0, "marketPrices"] } ]
}
```

- **A record that doesn't exist** (`card(code: "nope")`) returns `null`, not an error.

## Attribution

- **Prices:** show the `attribution` string next to any price you display (e.g. "Price data from Cardmarket (cardmarket.com), 2026-10-22").
- **Pull rates:** cite the `source` and `sourceUrl` returned with each rate.

## Terms in short

- RarityDB is operated by AKDARRAH LLC (Carmel, Indiana). Using the API, MCP server, CLI or SDK means accepting the [Terms of Service](https://raritydb.com/terms); the [Privacy Policy](https://raritydb.com/privacy) covers your data. Questions: hello@akdarrah.com.
- Pokémon, card names and artwork belong to Nintendo, The Pokémon Company, Creatures and GAME FREAK. RarityDB is not affiliated with or endorsed by them.
- Prices, pull rates and expected values are estimates for information only, not financial advice and not an appraisal. Don't rely on them alone to buy or sell.
- Prices from providers you query with your own key are governed by your agreement with that provider.
- Don't resell raw API output as a competing data feed. Build products on it.
