API REFERENCE
AnimeTrace API
(Last updated July 3, 2026)
Recognition API
POST
https://api.animetrace.com/v1/search Example Request
curl -X POST https://api.animetrace.com/v1/search \
-F "model=animetrace_high_beta" \
-F "is_multi=1" \
-F "ai_detect=1" \
-F "file=@image.jpg"Interface Description
| Parameter | Explanation | Optional Values | Required |
|---|---|---|---|
is_multi | Whether to display multiple results | 0 or 1 | No |
model | Recognition model to use (see model selection table below) | See the Model List API below | No |
ai_detect | Whether to enable AI image detection | 1: Yes / 0: No | No |
file | Image data to recognize (optional) | [Image Data] | Yes |
url | Image URL source to recognize (optional) | URL | Yes |
base64 | Image Base64 to recognize (optional) | Base64 str | Yes |
file or url or base64
Model Selection
GET
https://api.animetrace.com/v1/model/list Available models change dynamically. Do not hardcode model names — fetch the latest list from this API. Models with enabled=false are temporarily paused and cannot be selected.
Example Response
{
"data": [
{
"id": "example-model-1.0",
"name": "Example Model 1.0",
"provider": "amt",
"enabled": true,
"default": true,
"desc": {
"ja": "…",
"en": "…",
"zh": "…"
}
}
],
"code": 0,
"message": "success"
}Response Fields
| Field | Type | Explanation |
|---|---|---|
data | array | Array of models |
data[].id | string | Model ID (the value for the model parameter of /v1/search) |
data[].name | string | Display name |
data[].provider | string | Model provider |
data[].enabled | bool | Availability (false = temporarily paused, not selectable) |
data[].default | bool | Whether this is the default model |
data[].desc | object | Model description (ja / en / zh) |
Response
Example Response
{
"code": 0,
"ai": false,
"trace_id": "34ab47ab-9162-4213-a7e3-635e8ccb6640",
"data": [
{
"box": [0.173, 0.219, 0.460, 0.398],
"box_id": "6a555364-1c8b-4be7-9c48-97af53ad856b",
"not_confident": true,
"character": [
{ "work": "ご注文はうさぎですか?", "character": "保登心愛" },
{ "work": "Clover Day's", "character": "鷹倉杏鈴" },
{ "work": "恋×シンアイ彼女", "character": "小鞠ゆい" }
]
},
{
"box": [0.489, 0.035, 0.724, 0.197],
"box_id": "3f4430a9-5ef0-4276-8bf2-78bd11b8a4c4",
"not_confident": false,
"character": [
{ "work": "Clover Day's", "character": "鷹倉杏璃" }
]
}
]
}Response Fields
| Field | Type | Explanation |
|---|---|---|
code | int | Status code (0 = success) |
trace_id | string | Unique ID for this recognition (use it when reporting issues) |
ai | bool | Whether the image is judged AI-generated (true / false) |
data | array | List of results, one per detected character |
data[].box | number[4] | Character position [x1, y1, x2, y2] (0–1, relative to image width/height) |
data[].box_id | string | Unique ID of each detection box |
data[].not_confident | bool | Low confidence (many candidates — please verify) |
data[].character | array | Candidate characters (most likely first) |
data[].character[].work | string | Title of the work |
data[].character[].character | string | Character name |
Status Code Description
| Status Code | HTTP Status Code | Explanation |
|---|---|---|
17720 | - | Recognition successful |
200 | 200 | Success |
17721 | 200 | Server running normally |
17701 | 413 | Image size too large |
17702 | 503 | Server busy, please retry |
17703 | - | Request parameters incorrect |
17704 | 403 | API under maintenance |
17705 | - | Unsupported image format |
17706 | - | Recognition failed (internal error, please retry) |
17707 | - | Internal error |
17708 | - | Number of people in image exceeds limit |
17722 | - | Image download failed |
17728 | - | Usage limit reached |
17731 | - | Too many server users, please retry |
404 | - | Page not found |