Print from your app to any printer.
A lightweight agent runs beside your printers and connects outbound to PrintSocket. Your application sends a job with one HTTP request — no drivers, no VPN, no inbound firewall rules.
Free plan, no card required. Test mode is unlimited, forever.
Thirty seconds to a printed label
curl https://api.printsocket.com/v1/jobs \
-H "Authorization: Bearer sk_test_..." \
-H "Content-Type: application/json" \
-d '{
"printer_id": "prn_8f2k1",
"title": "Order #12345 label",
"content": { "format": "pdf", "base64": "JVBERi0xLjcKJcfsj6IKNSAwIG9iago8..." },
"copies": 2,
"options": { "paper": "A4", "color": false }
}'
base64 is the file's bytes, standard encoding. If the file already lives
somewhere we can reach, send url instead — or upload it once and reuse it by
document_id.
You get back a job with an id and a status. Watch it move with
GET /v1/jobs/{id}/events, or let a signed webhook tell you when it finishes.
How it works
-
Install the agent
One installer on the machine that already talks to your printers — Windows, macOS, or Linux. It enrolls with a single-use token and connects outbound over a WebSocket.
-
Your printers appear
The agent reports every queue it can see, with capabilities: paper sizes, duplex, color, DPI, trays. Attached scales report their readings too.
-
Send jobs over the API
POST /v1/jobswith a PDF or raw ZPL/ESC-POS payload. The agent prints it and reports every state transition back.
Built the way you would build it
Test mode from day one
An sk_test_ key gets a virtual device and printer that simulates the whole job
lifecycle. Build and run your integration tests without touching hardware — free and
unlimited on every plan.
Webhooks, not polling
Signed, retried, and testable from the dashboard. Fire a test delivery at your endpoint before you write a line of handler code.
Idempotent by design
Send Idempotency-Key on any POST. A replay within 24 hours returns the stored
original response instead of a conflict you have to write recovery code for.
One shape for everything
Flat resources, cursor pagination, prefixed opaque ids, one error object, RFC 3339
timestamps, and metadata on every mutable resource.
Honest failure modes
A job that cannot print says so, with a code you can branch on. Offline printers queue or reject — your choice, per job.
Upload once, print many
Store a document and reference it by id from as many jobs and printers as you like, instead of re-sending or re-hosting the same bytes.
Start printing today
Create an account, enroll a machine, and send your first job in a few minutes.