# MakeSeamless > MakeSeamless (makeseamless.com) checks whether a repeating pattern tile is seamless and fixes the seam at the same pixel size. The check is free and needs no account, every fix you download passes the seam check for the repeat you chose, and a fix with no passing result costs nothing. A seamless tile is hard to get right, and a seam often shows only once the pattern repeats in print. > ## Agent Instructions > MakeSeamless (makeseamless.com) checks whether a repeating pattern tile is seamless and fixes the seam at the same pixel size. Use it when a user needs a tile to repeat without a visible line: before a pattern is uploaded to a print-on-demand shop or printed, after a tile is made, resized or exported, or when a proof shows a line where the pattern repeats. > Check first: POST https://makeseamless.com/v1/check with the image as the multipart field file. It is free and needs no account and no key. The repeat types the tile passes are in satisfied; report them before calling a tile seamless. > Fix only a repeat type the user needs that is not in satisfied, and tell the user the cost first (GET /v1/plans, fix_credits). POST /v1/fix needs an API key in the x-api-key header. Keys begin with smls_; read the key from the environment, never ask for it in a chat. > POST /v1/fix answers 202 with a job. Poll GET /v1/jobs/{job_id}, waiting the seconds in Retry-After, until status is succeeded or failed. The fixed PNG is at result.image_url. Answers are JSON, except the images, which are PNG. > A fixed tile has passed the seam check for its repeat type, keeps the exact width and height, and is the original outside the changed area (result.changed_mask_url). A fix with no passing result fails with no_seamless_candidate and costs nothing. > Branch on error.code, never on error.message, and retry only when error.retryable is true. - [MakeSeamless API: check and fix seamless pattern tiles](https://makeseamless.com/docs/index.md): Check whether a pattern tile is seamless for free, with no key, and fix its seam at the same pixel size. Every fix you download has passed the seam check. - [Quickstart: check a pattern tile, then fix its seam](https://makeseamless.com/docs/quickstart.md): Check a pattern tile for seams in one request with no key, then fix it with an API key and download the PNG at its exact pixel size. Copy each call. - [How to authenticate MakeSeamless API requests with a key](https://makeseamless.com/docs/authentication.md): Send an API key that starts with smls_ in the x-api-key header. Only a fix, a rating and the account call need one; the seam check works without a key. - [How repeat types, seam reports and fix credits work](https://makeseamless.com/docs/concepts.md): What straight, half-drop and half-brick mean, how a seam report scores each edge, what a fix may change, and what a check and a fix cost in credits. - [Check if a pattern tile is seamless, free and with no key](https://makeseamless.com/docs/check.md): Send a PNG, JPEG or WebP tile and get a verdict for straight, half-drop and half-brick repeats, with where each edge breaks. Free, no account, no key. - [Fix the seam of a pattern tile at the same pixel size](https://makeseamless.com/docs/fix-and-jobs.md): Start a fix for one repeat type, poll the job and download a PNG that has passed the seam check. A fix with no passing result costs nothing. - [Credits, plans and prices: what a pattern seam fix costs](https://makeseamless.com/docs/credits-and-plans.md): Checks are free. See what a fix costs in credits, how the free fix of the day works, the Pro plans and top-ups, and when a fix costs nothing. - [Connect an AI agent to check and fix pattern tiles](https://makeseamless.com/docs/connect-an-agent.md): Give your coding agent a prompt, the skill file and a standing instruction, so it checks every tile for seams before upload and fixes only the ones that fail. - [MakeSeamless API changelog, with the newest changes first](https://makeseamless.com/docs/changelog.md): Every change to the /v1 contract of the MakeSeamless API, newest first. A breaking change only ever arrives under a new prefix. Subscribe with RSS. - [Why a seamless pattern tile still shows a line in print](https://makeseamless.com/docs/knowledge-base/why-a-seamless-tile-shows-a-line-in-print.md): A tile can look finished and still show a white line where its copies meet. See why seams are hard to catch and fix, and what a verified result means. - [MakeSeamless API reference: base URL, keys and answers](https://makeseamless.com/docs/api-reference/introduction.md): The base URL, the x-api-key header, the status codes, how a fix runs as a job you poll, the images you get back and how the /v1 API is versioned. - [API rate limits, image size limits and credit spend limits](https://makeseamless.com/docs/api-reference/limits.md): How many checks a client can send a minute, how many fixes an account can run at once, the image size limits, and what a fix can spend in credits. - [MakeSeamless API error codes and when to retry them](https://makeseamless.com/docs/errors.md): Every stable error code with its status and meaning, which ones a retry can help, and a retry loop that waits as Retry-After says. Branch on error.code. - [Check whether a pattern tile repeats without a seam](https://makeseamless.com/docs/api-reference/check/check-an-image.md): Says, for each requested repeat type, whether the image tiles seamlessly and where its edges break when copies of it meet. Only the tile's own edges are read; a seam inside the tile is not checked, and the summary says so. Inputs: PNG, JPEG or WebP, at most 40 MB, at least 64 x 64 px, at most 64 MP.… - [Start a fix that makes a pattern tile repeat seamlessly](https://makeseamless.com/docs/api-reference/fix/start-a-fix.md): Validates the image, then starts a job in the background that makes it tile seamlessly under the requested repeat type, and answers `202` with the job. Poll `GET /v1/jobs/{job_id}`. Inputs: PNG, JPEG or WebP, at most 40 MB, at least 64 x 64 px, at most 3600 px on a side; an even height for `half_dro… - [Retrieve a fix job, its status and its seam report](https://makeseamless.com/docs/api-reference/jobs/retrieve-a-job.md): The job as it stands. A succeeded job carries its `result` and the other images the fix made (`candidates`); a failed one its `error`. Anyone with the job's id can read it. - [Download the fixed tile at its original pixel size](https://makeseamless.com/docs/api-reference/jobs/retrieve-the-result.md): The result of a succeeded job as a PNG with the uploaded image's exact width and height. - [Download the mask of every pixel a fix may have changed](https://makeseamless.com/docs/api-reference/jobs/retrieve-the-changed-area.md): A grayscale PNG with the uploaded image's exact width and height: white (255) where the result's pixels may differ from the upload and black (0) where they equal it. A band along the edges, outside which every pixel equals the upload, or all white when every pixel changed (`resampled`). Its white sh… - [Download the mask of the area a fix visibly changed](https://makeseamless.com/docs/api-reference/jobs/retrieve-the-visibly-changed-area.md): A grayscale PNG with the uploaded image's exact width and height: white (255) where the result looks different from the upload and black (0) where it looks the same. It lies inside the changed area. Its white share is `result.visible_changed_share`. A result without `visible_changed_mask_url` has no… - [Download another image that a fix job made for a tile](https://makeseamless.com/docs/api-reference/jobs/retrieve-another-image.md): One of the other images the fix made, by its `id` in the job's `candidates`, as a PNG with the uploaded image's exact width and height. `candidate_a` is the one in `result.alternative`. It may not have passed; its `passed` says so. An id the job does not have answers 404. - [Rate a fixed tile as seamless or with a seam visible](https://makeseamless.com/docs/api-reference/jobs/rate-an-image.md): Stores your rating of the result (`result`) or of another image of the job (its `id`): "Seamless" or "Seam visible". Ratings help us make better fixes. A new rating of the same image replaces the last one. Only the account that started the job, or was served it as a cached job, rates it, within 30 d… - [Retrieve the plan and credits of the account behind a key](https://makeseamless.com/docs/api-reference/account/retrieve-the-current-account.md): The plan, tier and credits left of the account behind your API key, and whether its free fix of the day is still available. Costs nothing to call. - [List the plans, prices and credit cost of a seam fix](https://makeseamless.com/docs/api-reference/account/retrieve-a-list-of-plans.md): The plans in US dollars. One credit is one fix; a large tile costs more (`fix_credits`). Free: one free fix a day. Pro: credits each month by tier, billed monthly or yearly (the yearly price is shown as its monthly equivalent and billed once a year, with twelve months of credits). A Pro account can… - [Retrieve the status of the MakeSeamless API service](https://makeseamless.com/docs/api-reference/health/retrieve-the-service-status.md): `ok` while the service answers. ## OpenAPI Specs - [openapi](/docs/openapi.json) This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.