Skip to main content
POST /v1/fix validates the image, starts a job that makes it repeat seamlessly for the repeat type you choose, and answers 202 with the job. You follow the job with GET /v1/jobs/{job_id} and download the result, a PNG with the exact width and height of your upload.

How do I start a fix?

A fix needs an API key and costs credits.
A file that breaks a limit is refused at once with a 422 and costs nothing. An account can have 3 fixes queued or running at a time; a fourth answers 429 too_many_running_fixes with Retry-After. The 202 carries the job, Location: /v1/jobs/{job_id} and Retry-After. The same file with the same repeat type, fixed before, gets a job that has already succeeded, with cached true, at no charge. Sent again while its fix is still queued or running, it gets that same job back, at no charge.

What does a fix job look like?

Response

How do I know when a fix is done?

GET /v1/jobs/{job_id} returns the job as it stands and needs no key. While it is queued or running, the answer carries Retry-After: wait that many seconds, then ask again, until status is succeeded or failed.
Anyone with a job’s id can read the job and its images, so keep the ids to yourself. The whole loop shows polling in Python and Node.js.

What does each job stage mean?

What comes with a fixed tile?

Response
A result always passed the seam check on its tile edges for the job’s repeat type. A fix that cannot reach that gives no image: the job fails with no_seamless_candidate and costs nothing.

How do I download the fixed tile and its masks?

Each is a fresh lossless PNG with the upload’s exact width and height and none of its metadata. Before the job succeeds they answer 409 result_not_ready; for a failed job, 409 no_result.
Images are kept for 30 days. After that their addresses answer 404 not_found, so download what you need.

What are the other images of a job?

A succeeded job lists in candidates the other images the fix made besides the result, candidate_a first, which is the one in result.alternative. Each has passed (true when it passed the same checks as a result), changed_share and resampled. Ids are per job.

When does a fixed tile carry a watermark?

On the Free plan, the images of a fix started with an API key carry a watermark. On Pro they are clean.

What happens when a fix fails?

How do I rate a fixed tile?

POST /v1/jobs/{job_id}/rating stores your rating of the result or of another image of the job: seamless or seam_visible. Ratings help us make better fixes. A new rating of the same image replaces the last one.
candidate is result for the fixed tile, or the id of another image. Only the account that started the job, or was served it as a cached job, can rate it, and only within 30 days of the job’s creation. After that the answer is 409 rating_closed.