For developers
Print from code in one call.
A REST API, a command line, signed webhooks and an MCP server. Start with a test key: nothing to print, nothing to install.
Get startedREST API
One call sends a document to a named printer. Add an idempotency key, and a retry never prints twice.
KEY="quickstart-$(date +%s)"
printf '{"printerId":"%s","fileName":"report.pdf","contentBase64":"%s","externalReference":"quickstart-1"}' \
"$PRINTER_ID" "$(base64 < report.pdf | tr -d '\n')" > job.json
JOB=$(curl -fsS "$SPOOLSTREAM_URL/v1/print-jobs" -H "Authorization: Bearer $SPOOLSTREAM_API_KEY" \
-H "Idempotency-Key: $KEY" -H "Content-Type: application/json" -d @job.json)Command line
Made for scripts: JSON output, documented exit codes, never a prompt. Wait for the result with one flag.
export SPOOLSTREAM_URL="https://app.spoolstream.ca"
export SPOOLSTREAM_API_KEY="..." # from your secret store; never on the command line
spoolstream login
spoolstream printers list --search lab3
spoolstream jobs submit report.pdf --printer Lab3 --copies 2 --waitSigned webhooks
Know when a job ends. Signed notices come with retries, redelivery and a delivery log.
MCP for AI agents
An agent can list printers and follow jobs. It only reads unless you start it with write access.
claude mcp add spoolstream \
--env SPOOLSTREAM_URL=https://app.spoolstream.ca \
--env SPOOLSTREAM_API_KEY="$SPOOLSTREAM_API_KEY" \
-- spoolstream mcpTest first
A test key prints on a virtual printer. Put test-error or test-uncertain in a reference to try your error handling.
.NET client
A client library sends a job and waits for its final state in a few lines.