Quickstart
Run your first asset search in a few minutes over MCP or REST. No key needed to start.
1. Connect
Connect: Add the server at https://api.spritefetch.dev/mcp to your agent's MCP config, or send requests to https://api.spritefetch.dev. No key needed. Your agent gets three tools: search, get_asset, and download.
// No key needed. Optional: a free API key raises limits.
{ "mcpServers": { "spritefetch": { "url": "https://api.spritefetch.dev/mcp" } } }# No key needed. Optional: a free API key raises limits.
claude mcp add --transport http spritefetch https://api.spritefetch.dev/mcp// For clients that only speak stdio: a tiny local proxy to the HTTP server.
{ "mcpServers": { "spritefetch": { "command": "node", "args": ["scripts/mcp-stdio.mjs", "https://api.spritefetch.dev/mcp"] } } }# No key needed. Optional: a free API key raises limits.
curl "https://api.spritefetch.dev/v1/search?q=pixel-art+knight+run&license_spdx=CC0-1.0"2. First search
First search: Ask your agent for an asset in plain words, or call the search endpoint. Check the license fields in the response before you ship.
# No key needed. Optional: a free API key raises limits.
search({ "query": "pixel-art fox run", "license_spdx": "CC0-1.0" })
GET https://api.spritefetch.dev/v1/search?q=pixel-art+fox+run&license_spdx=CC0-1.0
Sample response (trimmed)
{ "results": [{
"id": "asset_…", "version": 1, "metadata_revision": 2,
"license_spdx": "CC0-1.0", "attribution_required": false, "verification_status": "reviewed",
"slicing": { "frame_width": 153, "frame_height": 139, "grid_cols": 6, "grid_rows": 2, "margin": 0, "spacing": 0,
"pivot": { "x": 76.5, "y": 139 },
"animations": [{ "name": "run", "frames": [0,1,2,3,4,5,6,7,8,9,10,11], "fps": 24, "loop": true }] },
"file_url": "https://api.spritefetch.dev/files/asset_…/v/1/orange-fox-run.png",
"sha256": "5164efbe…",
"json_url": "https://api.spritefetch.dev/v1/assets/asset_…/v/1/"
}], "next_cursor": "…" }3. Optional: API key
Optional: Add a free API key for higher limits (60/min and 2,000/day instead of 30/min and 500/day). Send it as Authorization: Bearer <API_KEY>.
Limits are planning defaults.
# Optional: a free API key raises limits (planning defaults: 60/min, 2,000/day per key).
curl -H "Authorization: Bearer <API_KEY>" "https://api.spritefetch.dev/v1/search?q=knight&license_spdx=CC0-1.0"
{ "mcpServers": { "spritefetch": { "url": "https://api.spritefetch.dev/mcp", "headers": { "Authorization": "Bearer <API_KEY>" } } } }
Limits (planning defaults)
| Anonymous | With free API key | |
|---|---|---|
| Search + metadata | 30 requests/min, 500/day per IP | 60 requests/min, 2,000/day per key |
| CC0 public file URLs | No key needed, not counted | No key needed, not counted |
Before you ship, check each asset's license fields and include its attribution string where required.
Stable URLs
/assets/{id}/v/{version}/ never changes. /assets/{id}/latest/ may move. id = asset_ + 12 lowercase chars, immutable. Files live at /files/{id}/v/{version}/{filename} and are byte-for-byte immutable.
Parity: UI / REST / MCP
| Task | Website | REST | MCP tool |
|---|---|---|---|
| Search | /search?q= | GET /v1/search | search |
| Asset details + license | /assets/{id}/v/{version}/ | GET /v1/assets/{id}/v/{version}/ | get_asset |
| Download | Download button | public file_url (CC0) or GET …/download | download |
Errors (examples)
- 401: invalid key (search needs no key).
- 429: limit reached (planning defaults: 30/min and 500/day per IP; 60/min and 2,000/day per key).
- 410 Gone: a rejected asset (never served publicly).
- Checksum mismatch: re-download, then report.
Next steps: Licensing guide · Rate limits · Errors · Found a problem or have feedback? Tell us at support@spritefetch.com.