Docs menu+
Guides

Build with AI

Coding agents write better Manifest code when they know the base URL, the key header and a few rules about paging, limits and IDs. Everything they need fits in one block.

Context for your agent

Paste this into your agent's chat or system prompt, or keep it in your repo as a rules file.

Agent context
# Manifest API

Manifest is a free, read-only JSON API for every One Piece Card Game card and printing, in English and Japanese, with each printing linked across languages and given an ID that never changes.

- Base URL: https://api.manifestcards.app/v1
- Auth: send the key in the `X-API-Key` header. Keys are free: sign in at https://manifestcards.app/sign-in and create one on https://manifestcards.app/profile. Read it from an environment variable such as `MANIFEST_KEY`, keep it on the server, and never commit it.
- Docs index: https://manifestcards.app/llms.txt
- Every guide in one file: https://manifestcards.app/llms-full.txt
- Every endpoint, parameter and field: https://manifestcards.app/openapi.json (OpenAPI 3.1)

## Rules

- Every endpoint is a `GET` that answers with JSON. A record comes back in `data`; a list comes back in `data` with `meta`.
- Page lists with `meta.next_cursor`: pass it back as `?cursor=` with the same filters until it is `null`. `limit` is 1 to 200 (default 50). Cursors are opaque: never build or parse them.
- Each key gets 60 requests a minute and 10,000 a day. Read `X-RateLimit-Remaining` and `X-RateLimit-Reset`, request one page at a time, and on `429 rate_limited` wait `Retry-After` seconds before retrying.
- Cache responses. They are safe to reuse for 5 minutes (`Cache-Control: private, max-age=300`), and sending the `ETag` back in `If-None-Match` returns `304 Not Modified` until the data changes.
- IDs (`set_`, `crd_`, `prt_`, `pgr_` plus a ULID) never change and are never reused. Store them and key your data by them, but treat them as opaque.
- A card is the game object (cost, power, colors, text). A printing is one physical version of it in one language and product.
- The English and Japanese versions of a printing share a `group_id` (`null` when `single_language` is `true`). To pair them, list `/v1/printings?card={number}&lang=all` and match on `group_id`. Never pair by card number or suffix.
- `lang` is `en`, `ja` or `all` (the default).
- Show images with `image_url`. Browsers refuse `official_image_url` (Bandai's copy) on other sites.
- There is no price data. Don't look for price fields or make prices up.
- Errors look like `{ "error": { "code": "...", "message": "..." } }`: `400 bad_request`, `401 unauthorized`, `404 not_found`, `429 rate_limited`, `500 internal`.

A rules file for your repo

The same block, served as a file. AGENTS.md is read by most coding agents, and SKILL.md is a Claude skill that loads it whenever the agent works with the API. Run these from your repo's root:

Terminal
# AGENTS.md, for most coding agents (appends if you have one)
curl https://manifestcards.app/agents.md >> AGENTS.md

# A Claude skill
mkdir -p .claude/skills/manifest-api
curl -o .claude/skills/manifest-api/SKILL.md https://manifestcards.app/skill.md

Then create a key on your profile and put it in MANIFEST_KEY.

llms.txt or the OpenAPI spec

  • llms.txt is a short index of every page. Point an agent at it when it needs to find its way around, and let it open only the pages it needs.
  • llms-full.txt is every guide in one markdown file. Give it to an agent that's new to Manifest, so it learns how cards, printings, paging and errors work.
  • openapi.json describes every endpoint, parameter and field exactly. Use it when the agent writes request code or generates types and clients.

Most projects want both: the context block or llms-full.txt for how the API behaves, and the OpenAPI spec for the exact shapes. Every docs page also has a Copy as Markdown button, for pasting one page into a chat.