Logistics template

Shipping Label

4×6 inch standard shipping label with barcode and tracking number.

Free on every planLanguage: en
slug: shipping-labelRendered with sample data
01

Quick start

Reference the template by its slug and pass your data. The same call works from any language; pick whichever fits your stack. Replace $KAMY_API_KEY with a key from the dashboard.

curl
curl https://kamy.dev/api/v1/render \
  -H "Authorization: Bearer $KAMY_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "templateSlug": "shipping-label",
    "data": {
      "carrier": "UPS Ground",
      "serviceType": "2 Day",
      "trackingNumber": "1Z 999 AA1 0123 4567 84",
      "from": {
        "name": "Acme Studio",
        "street": "1234 Market Street",
        "city": "San Francisco",
        "state": "CA",
        "zip": "94103",
        "country": "USA"
      },
      "to": {
        "name": "Jordan Avery",
        "street": "500 Pine Avenue, Suite 200",
        "city": "Seattle",
        "state": "WA",
        "zip": "98101",
        "country": "USA"
      },
      "weight": 3.4,
      "weightUnit": "lb",
      "dimensions": "12 × 9 × 4 in",
      "shipDate": "2026-04-22"
    }
  }'
node.js
import { Kamy } from "@kamydev/sdk";

const kamy = new Kamy({ apiKey: process.env.KAMY_API_KEY! });

const { url } = await kamy.render({
  templateSlug: "shipping-label",
  data: {
    "carrier": "UPS Ground",
    "serviceType": "2 Day",
    "trackingNumber": "1Z 999 AA1 0123 4567 84",
    "from": {
      "name": "Acme Studio",
      "street": "1234 Market Street",
      "city": "San Francisco",
      "state": "CA",
      "zip": "94103",
      "country": "USA"
    },
    "to": {
      "name": "Jordan Avery",
      "street": "500 Pine Avenue, Suite 200",
      "city": "Seattle",
      "state": "WA",
      "zip": "98101",
      "country": "USA"
    },
    "weight": 3.4,
    "weightUnit": "lb",
    "dimensions": "12 × 9 × 4 in",
    "shipDate": "2026-04-22"
  },
});

console.log(url); // signed URL, valid for 1 hour
python
import os, requests

resp = requests.post(
    "https://kamy.dev/api/v1/render",
    headers={"Authorization": f"Bearer {os.environ['KAMY_API_KEY']}"},
    json={
        "templateSlug": "shipping-label",
        "data": {
          "carrier": "UPS Ground",
          "serviceType": "2 Day",
          "trackingNumber": "1Z 999 AA1 0123 4567 84",
          "from": {
            "name": "Acme Studio",
            "street": "1234 Market Street",
            "city": "San Francisco",
            "state": "CA",
            "zip": "94103",
            "country": "USA"
          },
          "to": {
            "name": "Jordan Avery",
            "street": "500 Pine Avenue, Suite 200",
            "city": "Seattle",
            "state": "WA",
            "zip": "98101",
            "country": "USA"
          },
          "weight": 3.4,
          "weightUnit": "lb",
          "dimensions": "12 × 9 × 4 in",
          "shipDate": "2026-04-22"
        },
    },
)
resp.raise_for_status()
print(resp.json()["url"])
02

Sample payload

The full sample data the live preview above renders from. Use it as a starting point for your own integration — every field is optional except those marked required in the schema below.

json
{
  "carrier": "UPS Ground",
  "serviceType": "2 Day",
  "trackingNumber": "1Z 999 AA1 0123 4567 84",
  "from": {
    "name": "Acme Studio",
    "street": "1234 Market Street",
    "city": "San Francisco",
    "state": "CA",
    "zip": "94103",
    "country": "USA"
  },
  "to": {
    "name": "Jordan Avery",
    "street": "500 Pine Avenue, Suite 200",
    "city": "Seattle",
    "state": "WA",
    "zip": "98101",
    "country": "USA"
  },
  "weight": 3.4,
  "weightUnit": "lb",
  "dimensions": "12 × 9 × 4 in",
  "shipDate": "2026-04-22"
}
03

JSON Schema

The render endpoint validates your payload against this JSON Schema before queuing the render. Validation errors come back with HTTP 400 and a VALIDATION_FAILED code listing every offending path.

json
{
  "type": "object",
  "required": [
    "from",
    "to",
    "trackingNumber"
  ],
  "properties": {
    "from": {
      "type": "object",
      "required": [
        "name",
        "address"
      ],
      "properties": {
        "name": {
          "type": "string",
          "minLength": 1
        },
        "address": {
          "type": "array",
          "minItems": 1,
          "items": {
            "type": "string"
          }
        }
      }
    },
    "to": {
      "type": "object",
      "required": [
        "name",
        "address"
      ],
      "properties": {
        "name": {
          "type": "string",
          "minLength": 1
        },
        "address": {
          "type": "array",
          "minItems": 1,
          "items": {
            "type": "string"
          }
        }
      }
    },
    "trackingNumber": {
      "type": "string",
      "minLength": 1
    },
    "service": {
      "type": "string"
    },
    "weight": {
      "type": "string"
    },
    "barcodeUrl": {
      "type": "string",
      "format": "uri"
    }
  }
}
Shipping Label template — Kamy PDF API — Kamy