# Your first order, one request away.

Source: https://portal.printedsimply.com/docs/quickstarts

Grab a $0 sandbox key and place a real, idempotent order against the live API — then watch it ship on real signed webhooks. Pick your stack below. Every framework guide is plain REST, no SDK required.

$0 sandbox key

Idempotent order creation

Real signed webhooks

[Get an API key](https://portal.printedsimply.com/signup)

## From API key to a tracked order

The whole loop runs on a test key, for $0, before you ever touch a production order.

Step 1

### Grab a test key

Create a free account and copy a ps_test_ key. Sandbox orders cost $0 and never charge a card.

Step 2

### Place an order

One authenticated POST to /order — validated, priced, and routed. Send an Idempotency-Key so retries never double-charge.

Step 3

### Watch it ship

The sandbox runs the full lifecycle on a compressed clock, firing real HMAC-signed webhooks at every status change.

## By framework

Each guide places a $0 sandbox order and verifies a signed webhook in your framework of choice. Prefer another language? Any HTTP client works against the REST API.

### [Next.js](https://portal.printedsimply.com/docs/quickstarts/nextjs)

TypeScript

App Router with server actions. Keep your API key server-side and stream order status into React.

Get started

### [Express](https://portal.printedsimply.com/docs/quickstarts/express)

Node.js

A minimal Node server that forwards orders and verifies signed webhooks with a thin fetch helper.

Get started

### [Flask](https://portal.printedsimply.com/docs/quickstarts/flask)

Python

Order management with the requests library. Works the same with Django or FastAPI.

Get started

### [Rails](https://portal.printedsimply.com/docs/quickstarts/rails)

Ruby

A service class, controller, and routes with HMAC webhook verification built in.

Get started

### [Go](https://portal.printedsimply.com/docs/quickstarts/go)

Go

A lightweight HTTP client and handlers for high-throughput order processing.

Get started

## By language

The same first order — a sandbox key, a real SKU, a tracking link that delivers — in curl, TypeScript, Python or PHP. TypeScript runs on fetch and Python on the standard library, with nothing to install; PHP needs only its curl extension, nothing from Composer.

### [curl quickstart](https://portal.printedsimply.com/docs/quickstarts/curl)

Any language

Place your first PrintedSimply sandbox order with curl. A free ps_test_ key, one POST to /v1/order, and a tracking link that delivers while you watch.

About 4 minutes

### [TypeScript quickstart](https://portal.printedsimply.com/docs/quickstarts/typescript)

TypeScript / Node

Place your first PrintedSimply sandbox order from TypeScript with fetch: no install. A free ps_test_ key, one POST to /v1/order, and a tracking link that delivers while you watch.

About 5 minutes

### [Python quickstart](https://portal.printedsimply.com/docs/quickstarts/python)

Python

Place your first PrintedSimply sandbox order from Python with the standard library: no install. A free ps_test_ key, one POST to /v1/order, and a tracking link that delivers while you watch.

About 5 minutes

### [PHP quickstart](https://portal.printedsimply.com/docs/quickstarts/php)

PHP

Place your first PrintedSimply sandbox order from PHP with the curl extension: no Composer, no SDK. A free ps_test_ key, one POST to /v1/order, and a tracking link that delivers while you watch.

About 5 minutes

### [MCP quickstart](https://portal.printedsimply.com/docs/quickstarts/mcp)

Claude, Cursor or ChatGPT

Connect PrintedSimply to Claude, Cursor or ChatGPT over MCP and ask it to place a sandbox order. No install, no SDK: one config block and a tracking link.

About 3 minutes

## Need the full reference?

Every endpoint and the OpenAPI spec.

[API reference](https://portal.printedsimply.com/docs/api-reference)
