Quickstart

Print your first label in 5 minutes.

One install, two curl commands. Everything below is copy-pasteable — swap in your own key and printer ID as you go.

1. Create an API key

Sign up, choose Launch, Orbit, or Constellation in Billing, then go to API Keys → Create key. Copy it now — it is shown once, and we only ever store a scrambled version.

your new key
rp_live_9f2ab41c7d3e5f60...  # keep this secret — treat it like a password

Export it so the commands below work: export ROCKETPRINT_KEY="rp_live_..."

For a guided first print without writing code, open Setup & print. You can save printer defaults and upload a PDF there.

2. Install RocketPrint Station

RocketPrint Station is a small desktop app that runs on any computer that can already print to your printer. Download the installer for that platform from the download page and run it — a .dmg on macOS, an .exe on Windows, an .AppImage on Linux.

Choose Connect in Station and sign in through your browser. Verify your email if requested, then approve the matching code. That connects the computer to your account — there is no API key to copy onto it. It only ever connects out, so there are no ports to open and no firewall rules to add.

  • Every printer that computer can see is reported automatically.
  • Each one gets a stable printerId you can safely store in your own database.
  • The station keeps running in the menu bar or system tray, and can launch at login.

3. Find your printerId

List the printers on your account:

bash
$ curl https://rocketprint.io/api/v1/printers \
    -H "X-API-Key: $ROCKETPRINT_KEY"

{
  "printers": [
    {
      "id": "6a4738f7462183c7f5d70598",
      "name": "Zebra ZD421",
      "systemName": "Zebra_ZD421",
      "status": "online",
      "stationId": "stn_bldr_wh_01"
    },
    {
      "id": "6a4738f7462183c7f5d70599",
      "name": "HP LaserJet M110",
      "systemName": "HP_LaserJet_M110",
      "status": "online",
      "stationId": "stn_bldr_wh_01"
    }
  ]
}

Grab the id of your label printer. That is the printerId for the next step.

4. Print a label

Base64-encode your ZPL and post it. Here is a minimal Hello label for a Zebra:

bash
# ^XA...^XZ is a complete ZPL document
$ ZPL='^XA^FO50,50^A0N,50,50^FDHELLO, WORLD^FS^XZ'
$ curl -X POST https://rocketprint.io/api/v1/print-jobs \
    -H "X-API-Key: $ROCKETPRINT_KEY" \
    -H "Idempotency-Key: my-first-label" \
    -H "Content-Type: application/json" \
    -d "{
      \"printerId\": \"6a4738f7462183c7f5d70598\",
      \"contentType\": \"raw_base64\",
      \"content\": \"$(echo -n "$ZPL" | base64)\"
    }"

{
  "id": "job_abc123",
  "printerId": "6a4738f7462183c7f5d70598",
  "status": "sent",
  "createdAt": "2026-08-22T14:03:07Z"
}

Listen for the printer. That sound is your API working.

5. Check the job status

Every job is a record you can query for as long as you keep the ID:

bash
$ curl https://rocketprint.io/api/v1/print-jobs/job_abc123 \
    -H "X-API-Key: $ROCKETPRINT_KEY"

{
  "id": "job_abc123",
  "status": "completed",
  "createdAt": "2026-08-22T14:03:07Z",
  "sentAt": "2026-08-22T14:03:08Z",
  "completedAt": "2026-08-22T14:03:09Z"
}

The job lifecycle

pendingdispatchingsentprintingcompleted
  • pending — accepted, checked, and queued on our side.
  • dispatching — claimed by one of our servers so it is never sent twice.
  • sent — delivered to the Station app attached to that printer.
  • printing — your computer's print system accepted it.
  • completed — the print command succeeded.
  • failed — carries the reason it failed.
  • canceled — you canceled it before it was sent.

Next steps

That is the whole quickstart.

Wire it into your order flow and never hand-print a label again.

Get your API key