API Documentation
Everything returns JSON. CORS is on. Base URL:
Authentication
No key needed to start. You get 30 requests per minute immediately. For higher limits, pass your Usage or Pro key in the X-API-Key header:
With a Usage or Pro key:
Rate Limits
Free requests are capped per IP. Usage and Pro keys are capped per key. Hit the limit and you'll get a 429 with a Retry-After header.
| Tier | Rate | Price | Scope |
|---|---|---|---|
| Free | 30 / min | $0 | Per IP |
| Usage | 120 / min | $2 / 1k requests | Per key |
| Pro | 300 / min | $25 / month | Per key |
Deleted content
When an artist removes their work, the API marks the post "deleted": true and redacts the source URL. Tags and metadata stay available, so you keep the reference even after the original is gone. Deleted posts don't appear in search results but can be fetched directly by ID via /post.
Endpoints
GET /api/v1/search
Find posts by text, tag, artist, or platform. Combine parameters to narrow results.
| Parameter | Type | Description |
|---|---|---|
| q | string | Full-text search query |
| tag | string | Exact tag match (normalized form, e.g. genshin_impact) |
| artist | string | Artist handle or display name (case-insensitive) |
| platform | string | Platform slug: x, pixiv, bluesky, deviantart, newgrounds, tumblr, etc. |
| limit | integer | Results per page, 1-100 (default: 50) |
| offset | integer | Pagination offset (default: 0) |
At least one of q, tag, or artist is required. platform is a filter, not a standalone query.
Example request:
Example response:
GET /api/v1/artist
Query a handle and get back every linked account across platforms.
| Parameter | Type | Description |
|---|---|---|
| handle required | string | Artist handle to look up (must be the platform-specific handle when platform is set) |
| platform | string | Match handle against a specific platform (e.g. Pixiv numeric ID, not the artist's X handle) |
Example request:
Example response:
GET /api/v1/post
Get everything for a single post: full tags, AI-generated description, artist profile, and source link.
| Parameter | Type | Description |
|---|---|---|
| id required | integer | Post ID |
Example request:
Example response:
GET /api/v1/tags
Search the tag index. Get back matching tags with post counts and their category.
| Parameter | Type | Description |
|---|---|---|
| q required | string | Tag search query (min 2 characters) |
| limit | integer | Max results, 1-50 (default: 20) |
Tags are categorized as character, copyright, species, rating, or general.
Example request:
Example response:
Errors
Every error returns "ok": false with an "error" message. Standard HTTP codes:
400- Missing or invalid parameters401- Bad API key404- Not found429- Rate limit hit500- Something broke on our end
Example error response:
CORS
Every endpoint allows * origins and responds to OPTIONS preflight, so you can call from the browser without a proxy.