Dreamship API

Print on demand API

The Dreamship API is a free REST API for print on demand (POD) fulfillment. Your site, app or platform sends each order, and Dreamship prints it and ships it straight to your customer. As with dropshipping, you sell custom products without buying or storing any inventory.

Create a test order
curl https://api.dreamship.com/v1/orders/ \
  -H "Authorization: Bearer $DREAMSHIP_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "reference_id": "1001",
    "test_order": true,
    "shipping_method": "economy",
    "address": {
      "first_name": "Jane",
      "last_name": "Doe",
      "street1": "123 Market St",
      "city": "San Francisco",
      "state": "CA",
      "zip": "94105",
      "country": "US"
    },
    "line_items": [{
      "item_variant": 12345,
      "quantity": 1,
      "print_areas": [
        { "key": "front", "url": "https://example.com/design.png" }
      ]
    }]
  }'

What you can do with the Dreamship API

Create orders

Send item variants, artwork URLs and a shipping address in one request. Look up any order, submit drafts or cancel an order before it goes into production.

Test for free

Set test_order to true to try the whole flow. Test orders are never billed, printed or shipped.

Sync the catalog

Pull every catalog item with its variants, prices, print areas and stock status. Ship zones add shipping rates and delivery times by country.

Get webhooks

Receive signed events when an order changes status or ships, and when an item's availability or price changes.

Publish products

Save products with your artwork, generate their mockups and publish them to connected stores like Shopify and Etsy.

Choose shipping

Pick a shipping method for each order, from economy to express. Eligible items can also get 48-hour fulfillment for an added fee, or ship on your own prepaid labels.

How to integrate the Dreamship API

  1. Get your API key

    Create a free Dreamship account and copy your key from API settings.

  2. Pull the catalog

    Fetch the items and variants you want to offer.

  3. Send orders

    Post each order with its artwork URLs and your customer's shipping address.

  4. Listen for updates

    Webhooks tell you as each order is produced and shipped, with its tracking number.

Prefer no code?

You can send orders to Dreamship without writing a line of code.

Dreamship API FAQ

Is the Dreamship API free?

Yes. The Dreamship API is included on every plan, including the free Basic plan. You only pay for the orders you place.

How do I authenticate with the Dreamship API?

To authenticate, send your API key as a Bearer token in the Authorization header. Your key is in API settings in your Dreamship account.

Is there a sandbox for testing?

The Dreamship API has no separate sandbox. Instead, set test_order to true on any order. A test order moves through every status and gets a test tracking number, but Dreamship never bills, prints or ships it.

How do Dreamship webhooks work?

Choose the events you want and add your webhook URLs in API settings. You can also set webhook_url on a single order. Dreamship posts each event to that order's webhook_url and to every webhook URL in your API settings, once per address. Each post carries an X-Dreamship-Signature header, an HMAC SHA-256 hash of the JSON body keyed with your API key, so you can check it came from Dreamship. Reply with status 200 within 30 seconds; any other reply counts as a failure. Dreamship then tries again up to 10 times, waiting up to 10 minutes between tries. If every try fails, Dreamship turns that webhook URL off and emails your admins, or clears the order's webhook_url.

What are the Dreamship API rate limits?

The Dreamship API allows 60 requests per minute for each API key. A request over the limit gets a 429 response that says how many seconds to wait. The X-RateLimit-Burst-Remaining header shows how many requests you have left. High-volume businesses can ask Dreamship for a higher limit.

Start building.