{
  "schema_version": "v1",
  "name_for_human": "LabelInn Print API",
  "name_for_model": "labelinn_print",
  "description_for_human": "Send labels to physical printers from any system. Design, preview, and print shipping labels, barcodes, and product tags via API.",
  "description_for_model": "The LabelInn Print API allows you to send print jobs to physical thermal label printers. You can submit raw ZPL commands, images (base64 or URL), or fill template designs with variable data. The API supports managing printer fleets, tracking job status, and subscribing to webhooks for real-time events. Use sk_test_ keys for sandbox testing (no physical print). All endpoints require Bearer token authentication with an sk_live_/sk_test_ API key. (An OAuth 2.0 authorization-code flow also exists at /v1/oauth/authorize and /v1/oauth/token for interactive no-code connectors such as Make and Zapier; it is not intended for agents, which should use an API key.) IMPORTANT BEHAVIOURS, because printing is physical and asynchronous: (1) POST /v1/print/jobs returns 201 as soon as the job is QUEUED, not printed — rendering and hardware errors appear only on the job, so poll GET /v1/print/jobs/{id} every ~2s until status is completed, failed or cancelled, and never report a print as done without that confirmation. (2) The X-Idempotency-Key header caches the response for 24h; replaying a key returns the original job and prints nothing, so a genuine REPRINT after a failure needs a NEW key — include an attempt counter such as erp:<order>-<line>:<attempt>. (3) Before sending, check GET /v1/fleet/printers: the target printer needs is_online true AND cloud_print_enabled true, otherwise the job waits in queued forever. (4) Never guess variable names — GET /v1/designs/{id}/variables returns the exact keys and an example_payload; unknown keys in data are ignored silently. (5) data accepts an array of rows (max 1000) where one row renders one label (use this for serial numbers and per-row values); copies repeats the whole job for N identical labels.",
  "auth": {
    "type": "user_http",
    "authorization_type": "bearer"
  },
  "api": {
    "type": "openapi",
    "url": "https://labelinn.com/.well-known/openapi.yaml"
  },
  "logo_url": "https://labelinn.com/images/logo-512.png",
  "contact_email": "api@labelinn.com",
  "legal_info_url": "https://labelinn.com/terms"
}
