# Zimarker Allocate zimarker code(s) on demand for the calling organization, each with a printable, inline base64 marker image. Allocation is synchronous, atomic, and exactly-once per organization. Render a zimarker code's marker image on demand. Public, stateless, and addressable by code at a stable URL — no authentication required. ## Allocate one or a batch of zimarker codes - [POST /integration/rest/api/v1/zmarker-code/allocate](https://docs.zimark.link/api/zimarker/allocate.md): Allocates the next unassigned zimarker code(s) for the calling organization. quantity defaults to 1 when omitted; quantity greater than 1 allocates a batch, reserved atomically as a single block (all-or-nothing). quantity is capped at a configurable maximum batch size. Returns an ordered list of allocated entries, each with the marker code and its marker image. imageDelivery selects the image form: BASE64 (default) returns a 1-bit, 600x600 black-and-white PNG inline as base64 in markerImage; URL returns the marker's public image URL in markerImageUrl instead of inline bytes. ## Allocate a zimarker code and couple it in one call - [POST /integration/rest/api/v1/track/get-and-couple](https://docs.zimark.link/api/zimarker/getandcouple.md): Allocates the next zimarker code for the calling organization (always synchronous) and couples it to a new track. The synchronous variant (async=false, default) additionally waits for coupling and returns the resulting track alongside the allocated code and its marker image with 200. The asynchronous variant (async=true) couples in the background and returns 202 with the allocated code, its marker image and an operation identifier (no track). imageDelivery selects the image form: BASE64 (default) returns the marker inline as base64 in markerImage; URL returns its public image URL in markerImageUrl instead of inline bytes. The supplied WMS identifier is stored as-is and NOT validated against any WMS connector. ## Couple a zimarker code to a new track - [POST /integration/rest/api/v1/track/couple](https://docs.zimark.link/api/zimarker/couple.md): Couples an existing zimarker code with a WMS identifier and the track's custom fields, creating a new track. The synchronous variant (async=false, default) waits for coupling and returns the resulting track with 200. The asynchronous variant (async=true) validates up front, then couples in the background and returns 202 with an operation identifier correlating the outcome (delivered via the COUPLING_SUCCEEDED / COUPLING_FAILED webhook). The supplied WMS identifier is stored as the track's external asset identifier and is NOT validated against any WMS connector. Existing coupling rules and concurrency safeguards apply (marker uniqueness, the already-coupled rule, duplicate-creation protection). ## Render a zimarker code's marker image (PNG) - [GET /integration/rest/api/v1/zmarker-code/image/{code}.png](https://docs.zimark.link/api/zimarker/image.md): Returns the marker for the given zimarker code as a 1-bit, 600x600 black-and-white PNG, identical to the image the allocation endpoint returns inline for that code. Public (no authentication), stateless, and deterministic — the same code always yields the same image.