What is the base URL of the API?
Every request goes to one host, and every path starts with/v1.
How do I authenticate a request?
A call that spends credits or reads your account carries an API key in thex-api-key header. Keys begin with smls_. The check, a job and its images,
the plans and the service status need no key.
What does each status code mean?
Every error carries
error.code, error.message and error.retryable.
Errors holds every code and a retry loop you can copy.
How do I get the result of a fix?
POST /v1/fix answers 202 with a job at once. Poll
GET /v1/jobs/{job_id}, waiting the seconds in Retry-After between two
calls, until status is succeeded or failed. A succeeded job has the
fixed image at result.image_url. There is no callback: polling is the way
to learn a job is done.
What size and format are the images?
Every image the API returns has the exact width and height of the uploaded image, after its orientation is applied, as a fresh lossless PNG that carries none of the upload’s metadata. Images are kept for 30 days.Which limits apply to requests?
Checks are limited per client, fixes per account, and the service has a daily capacity for fixes. Each limit answers429 with Retry-After.
Rate and spend limits has the numbers.
Will the API change under my code?
The version is in the path, andv1 is current. A breaking change comes only
under a new prefix, such as /v2. Fields may be added to answers within
v1, so ignore the fields you do not know.
Frequently asked questions
Does a failed fix cost credits?
Does a failed fix cost credits?
No, when it fails with
no_seamless_candidate, service_unavailable or
interrupted: the credits held at the start come back.Can I fix the same file twice?
Can I fix the same file twice?
Yes, and the second time is free. The same file with the same repeat type
returns the stored result, marked
cached.Who can read a job?
Who can read a job?
Anyone with its id, without a key. Keep job ids to yourself.