Changelog
2026-11-04 — Segmentation post-processing, polygon output, CBOR responses
Section titled “2026-11-04 — Segmentation post-processing, polygon output, CBOR responses”API (breaking)
- Segmentation results (
POST /v1/segment,POST /v1/refine, batch segmentation) return a simplified polygon with holes by default and no mask.Instance.polygonis a list of parts{outer, holes}with flat integer rings in image pixels.bboxis integer, x2 and y2 exclusive; every instance hasarea. - Masks are returned on request (
geometry: ["mask"]) asmask: COCO compressed RLE (encoding: coco, default) or a lossless WebP crop (encoding: webp). The uncompressed integerrleis removed. - Post-processing is configured per prompt (
prompts[].options) on top of request defaults (options.defaults): score, size and area filters with border modes (strictby default), fragment and hole cleanup, polygon tolerance, holes and part count, and merging bygroup. Request-leveloptions.maxInstances,options.nmsandoptions.report. Responses reportdropStatsand, on request,dropped. - Removed:
options.threshold(nowfilter.minScore),options.maxDetections(nowoptions.maxInstances),options.polygons(polygons are the default). The limit of 10 prompts abovemaskSize2048 is removed. - Limits that depend on the image content (vertices per instance, geometry per response, WebP pixels) reduce the output by documented rules (
tolerancePx,omitted,mask.encoding) instead of failing the call. Accept: application/cborreturns segmentation, refinement, background removal and JSON-mode batch responses in CBOR: polygon rings as RFC 8746 typed arrays, binary data as byte strings.
2026-11-02 — Original-size coordinates, mask size, image storage
Section titled “2026-11-02 — Original-size coordinates, mask size, image storage”API
- Coordinates in requests and responses are pixels of the oriented original (EXIF orientation applied). Images are no longer resized to a short side of 1008 px;
image.widthandimage.heightare the size of the original, up to 40 megapixels and 16384 px per side. - Masks can be smaller than the image.
rle.sizeis the actual mask size, and clients scale by it. - New
options.maskSizeonPOST /v1/segmentandPOST /v1/refine: long side of the returned masks, 64 to 4096 px, 2048 by default. Above 2048,POST /v1/segmentaccepts at most 10 prompts. - New error
400 invalid_image: the image passed the upload checks but could not be decoded. Such calls are never charged. 503 unavailablewithRetry-Aftercan also mean that image storage is temporarily unavailable.
Privacy
- Metadata and appended data are removed at upload. The image itself is kept for at most 7 days. It is never forwarded to GPU nodes, which only receive per-model resized copies. Inline
base64images are handled like uploads.
2026-11-02 — Image retention limit
Section titled “2026-11-02 — Image retention limit”- Image handles and cached encodings are deleted after at most 7 days, counted from the first time the account stored the image. They can still be dropped earlier when storage capacity is needed, so there is no minimum retention. A call with a deleted handle answers
404 image_not_found; upload the image again.
2026-11-01 — Point prompts for sam3, documentation by use case
Section titled “2026-11-01 — Point prompts for sam3, documentation by use case”API
POST /v1/segmentwithsam3accepts point prompts:{ "point": { "x", "y" } }returns exactly one object per point. Points can be mixed with text prompts and exemplar boxes in one call and count toward the limit of 50 prompts.options.thresholdandoptions.maxDetectionsapply to text and exemplar instances only, and exemplar boxes act on the text prompts only.- Point prompts are billed per
pointat thesam3point price; the image encoding is billed once per call. POST /v1/refineis billed per call: onerefineunit (sam30.02,sam-lite0.01, one decode), whatever the number of points and whether a box is given. Exemplar boxes inPOST /v1/segmentare no longer billed separately: each text prompt is billed as oneprompt, and a call with exemplar boxes and no text prompt is oneprompt.- Unchanged: a
boxin asam3segment call is an exemplar. A single object is marked with a box throughPOST /v1/refine.
Documentation
- Six use case pages: interactive segmentation, concept segmentation, text recognition, document parsing, embeddings and search, and background removal. Each page walks through requests and responses and compares the models that serve the task.
- Model pages describe the model, its weights, licence, how it works, billing units and limits, and how it behaves in each use case.
- The sidebar shows nested levels with an indent.
- Use case pages lead with the task and its scenarios, then compare the models and end with one example call and its cost. Request and response fields are described in the API reference, and model pages no longer repeat the billing units, which are on the Billing page.
2026-11 — Initial release
Section titled “2026-11 — Initial release”Version 0.1.0-draft of the public API.
Endpoints
POST /v1/images: upload an image and get a reusableimg_handle.POST /v1/segmentandPOST /v1/refine: segmentation withsam3andsam-lite.POST /v1/ocr: text recognition withppocr-v6.POST /v1/documents/parse: layout analysis and recognition of one page withpaddleocr-vl.POST /v1/embeddings: image and text embeddings withdinov3andsiglip2.POST /v1/remove-background: background removal withbirefnet.GET /v1/models: models, prices and per-account availability.
Platform
- API keys with model scopes, expiry and rotation.
- Prepaid credits; 1 credit = US$0.001. Per-call
cost,balance,billingandtimingfields. - Model pools with daily allowances: public and free pools, and paid models billed from the balance.
Idempotency-Keyon calls that spend credits;X-Request-Idon every response.- The Playground, with a trial lane that needs no account.
Not available yet
- Asynchronous jobs and webhooks.
image.urlinput; images are sent as base64 or uploaded.- Multi-page PDF input to
POST /v1/documents/parse.