API Overview
The power of Sleeved, at your fingertips.
Base URL
All API endpoints are prefixed with:
https://api.sleeved.gg/v1Supported Games
The API currently supports four games:
| Game | Slug |
|---|---|
| Digimon Card Game | digimon |
| Gundam Card Game | gundam |
| Grand Archive TCG | grand-archive |
| Chrono Core TCG | chrono-core |
Use these slugs in path parameters wherever a :slug is shown in an endpoint.
Authentication
Most endpoints require an API key passed in the X-API-Key request header. The Get Deck endpoint is the exception — it is unauthenticated so that Tabletop Simulator and similar tools can fetch deck data directly. See Authentication for details on key format and error handling.
Response Format
Success
All successful JSON responses wrap the payload in a data field:
{
"data": { ... }
}Errors
Error responses use an error field with a human-readable message:
{
"error": "Invalid API key"
}Common HTTP status codes:
| Status | Meaning |
|---|---|
200 | Request succeeded |
400 | Bad request — invalid parameters |
401 | Authentication failed |
404 | Resource not found |
429 | Rate limit exceeded |
Text Exports
The Get Deck endpoint supports different export formats via the format query parameter:
format=json(default) — Structured output for all use-casesformat=text— For importing to platforms or simulators like Untap.in, Limitless TCG, DCGO, etc.format=ga-tts— Grand Archive only; enriched card data for Tabletop Simulator
Content Negotiation Convention
Sleeved uses the ?format= query parameter to select representations on resources that can return non-JSON formats. The API does not honor the HTTP Accept header for content negotiation. This is a deliberate convention: query-parameter selection is curl-friendly, easy to share in bug reports and integration code, and unambiguous to debug from a browser address bar.
Two related rules to be aware of:
- JSON responses always wrap the payload in
{ data: ... }. Non-JSON responses (e.g.text/plainfromformat=text) return raw content with no envelope —data:does not appear in the body. - Future endpoints with multi-format outputs will follow this same
?format=convention rather than addingAccept-header negotiation. If a new endpoint needstext,csv, or another format, it will expose them via?format=for consistency.
Versioning
All routes are prefixed with /v1/. Breaking changes will be introduced under a new version prefix; the current version will continue to be served during any transition period. See API Contract Guarantees for the full versioning, deprecation, and breaking-change policy — including the 6-month deprecation window, RFC 8594 Deprecation/Sunset headers, and the per-endpoint /v2 coexistence model.
Next Steps
- Authentication — get your API key set up
- Game Sync Metadata — check whether your local card index needs updating
- Browse Cards — paginate through card data
- Get Card — fetch a single card by its ID
- Get Deck — fetch decks as JSON, plain text (Limitless TCG, Untap.in), or TTS card data (Grand Archive)
- Share Tokens — access private decks
- Rate Limiting — understand request limits
- API Contract Guarantees — versioning, deprecation, and breaking-change policy