Service Feedback
To access the Ximilar API, first register at Ximilar App to get your API token. This API follows the general rules of Ximilar API as described in Section First steps.
Did a service return something wrong? Service Feedback lets you tell us: what was wrong, what you expected
instead, and optionally which operation it was and the images it happened on. Our team reviews your feedback and
updates its status, so you can follow what happens to it.
You can send feedback on any service your account has access to. Sending it is free and doesn't use your credits.
GET https://api.ximilar.com/account/v2/service/ lists the services with their slug, and available tells you
whether your account can use them.
Endpoints
POST https://api.ximilar.com/feedback/v2/feedback/ → Send feedback
GET https://api.ximilar.com/feedback/v2/feedback/ → List feedback
GET https://api.ximilar.com/feedback/v2/feedback/__FEEDBACK_ID__/ → Get one feedback
GET https://api.ximilar.com/feedback/v2/feedback/operations/ → List operations of a service
Feedback belongs to a workspace, and everyone with access to that workspace can read it. Every
endpoint uses your default workspace unless you pass a workspace ID as a query parameter.
Once sent, feedback can't be changed or deleted through the API. To correct or add something, send new feedback.
The feedback object
- Name
id- Type
- string
- Description
Unique identifier of the feedback.
- Name
workspace- Type
- string
- Description
ID of the workspace the feedback belongs to.
- Name
service- Type
- dict
- Description
The service the feedback is about:
id,slugandname.
- Name
operation- Type
- dict
- Description
The operation the feedback is about:
slugandname, ornull.
- Name
created_by- Type
- string
- Description
ID of the user who sent the feedback, or
nullif that account no longer exists.
- Name
result- Type
- string
- Description
What was wrong with the result.
- Name
expected_result- Type
- string
- Description
What you expected instead.
- Name
status- Type
- string
- Description
NEWwhen sent,IN_REVIEWwhile we look into it, thenRESOLVEDorREJECTED.
- Name
images- Type
- list
- Description
The attached images, each with its
idandurl. Read the images from theurlof a fresh response, because the link can expire.
- Name
created- Type
- string
- Description
When the feedback was sent (ISO 8601).
- Name
modified- Type
- string
- Description
When the feedback last changed (ISO 8601).
Send feedback
Sends feedback on a service. The request is multipart/form-data, not JSON; to attach several images, repeat the
images field.
Required attributes
- Name
service_slug- Type
- string
- Description
Slug of the service, for example
collectibles-recognition.
- Name
result- Type
- string
- Max
- Maximum:5000
- Description
What was wrong with the result. Pasting the part of the response that was wrong helps us the most.
- Name
expected_result- Type
- string
- Max
- Maximum:5000
- Description
What you expected instead.
Optional attributes
- Name
operation_slug- Type
- string
- Description
Slug of the operation, from the operations of the service.
- Name
images- Type
- file
- Description
Up to 5 images of up to 7 MiB each: JPEG, PNG, TIFF, BMP, WebP or GIF.
Returns
The new feedback with HTTP status 201. You can send up to 30 feedbacks per hour; above that, the API answers 429.
Request
curl --location 'https://api.ximilar.com/feedback/v2/feedback/' \
--header 'Authorization: Token __API_TOKEN__' \
--form 'service_slug="collectibles-recognition"' \
--form 'result="The card was identified as Charizard ex 125, but it is a different card."' \
--form 'expected_result="Charizard ex 054 from Paldean Fates."' \
--form 'images=@"/path/to/front.jpg"' \
--form 'images=@"/path/to/back.jpg"'
Response
{
"id": "3d1f7a52-8c04-4e6b-b1d9-6a2e5f0c9b17",
"workspace": "22dcb974-5920-410a-8f9a-70a9a3b4abf0",
"service": {"id": 27, "slug": "collectibles-recognition", "name": "Collectibles Recognition"},
"operation": null,
"created_by": "84365d49-81ab-46c1-b784-ce1986d871d9",
"result": "The card was identified as Charizard ex 125, but it is a different card.",
"expected_result": "Charizard ex 054 from Paldean Fates.",
"status": "NEW",
"images": [
{"id": "408ed929-78d1-4813-a9af-2f151d25f5bb", "url": "https://..."},
{"id": "a27c6e10-93b5-4d48-8f62-1c7d0e4ab395", "url": "https://..."}
],
"created": "2026-10-30T13:20:45.822492Z",
"modified": "2026-10-30T13:20:45.822492Z"
}
List feedback
Lists the feedback of the workspace, newest first, a page at a time.
Optional attributes
- Name
service_slug- Type
- string
- Description
Only feedback on the service with this slug.
- Name
service_id- Type
- integer
- Description
Only feedback on the service with this ID.
- Name
operation_slug- Type
- string
- Description
Only feedback on the operation with this slug.
- Name
status- Type
- string
- Description
Only feedback in this status:
NEW,IN_REVIEW,RESOLVEDorREJECTED.
- Name
page- Type
- integer
- Default
- Default:1
- Description
Page number.
- Name
page_size- Type
- integer
- Default
- Default:70
- Description
Number of results per page.
Returns
count, next (URL of the next page, or null), previous (URL of the previous page, or null) and results,
a list of feedback.
Request
curl -H 'Authorization: Token __API_TOKEN__' \
'https://api.ximilar.com/feedback/v2/feedback/?service_slug=collectibles-recognition&status=NEW'
Get one feedback
Returns one feedback, for example to check its status.
Request
curl -H 'Authorization: Token __API_TOKEN__' \
https://api.ximilar.com/feedback/v2/feedback/__FEEDBACK_ID__/
List operations of a service
Lists the operations feedback on a service can name, which are the values operation_slug accepts. The list can be
empty; send your feedback without an operation then.
Required attributes
- Name
service_slug- Type
- string
- Description
Slug of the service.
Returns
A list of operations, each with its slug and name. It isn't paginated.
Request
curl -H 'Authorization: Token __API_TOKEN__' \
'https://api.ximilar.com/feedback/v2/feedback/operations/?service_slug=collectibles-recognition'
Errors
| Status | Meaning |
|---|---|
400 | Invalid request: a missing or too long text, an unknown service or operation, or an image that is too large, of an unsupported type, or one too many. The body names the field. |
401 | Missing or invalid API token. |
403 | Your account doesn't have access to this service or workspace. |
404 | The feedback doesn't exist. |
405 | The method isn't allowed: feedback can't be changed or deleted. |
415 | The request isn't multipart/form-data. |
429 | Too much feedback sent — retry later. |
A 400 body lists the problem under each field:
{"service_slug": ["Unknown service."]}