# Zinc E-commerce Order Placement API

> Zinc E-commerce Order Placement API is a paid API for AI agents from api.zinc.com, paid per call via x402, $0.01/call, status unknown (last checked 2026-10-22).

Places automated e-commerce orders for specified products up to a maximum price and ships them to a given address

## Facts

- Endpoint: POST https://api.zinc.com/agent/orders?utm_source=zero.xyz
- Price: $0.01/call
- Payment: x402
- Status: unknown
- Last checked: 2026-10-22
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/zinc-e-commerce-order-placement-api-7120e132
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_sZJGCw02dhnD_lw3piHmR

Status and success rate cover calls made through Zero and Zero's own probes. Third-party monitors may report differently.

## How to call it through Zero

Zero handles the 402 payment challenge and records the run. With the Zero CLI installed (`npm i -g @zeroxyz/cli`):

```sh
zero fetch --capability zinc-e-commerce-order-placement-api-7120e132 -d '<json body>'
```

Example prompt: Order me the Anker USB-C charger at https://www.amazon.com/dp/B07Z6CKH4V, don't spend more than $2500 cents total, ship it to 123 Main St, San Francisco, CA 94105, US, and mark it as a gift.

## When to prefer this

Choose this endpoint when you need to programmatically place real product orders on e-commerce platforms (like Amazon) without manual checkout — especially for dropshipping, procurement automation, or agent-driven purchasing workflows that require idempotency, price caps, and condition filtering. Prefer Zinc over scraping or browser automation when you need a reliable, structured API response with order tracking status included.

## Known failure modes

- Order total exceeds max_price — order is rejected before finalization
- Invalid or unrecognized product URL — item cannot be found or purchased
- Shipping address validation failure — unsupported country or missing required fields
- Out-of-stock product — item unavailable at the requested condition or price
- Duplicate order blocked — idempotency key already used for a prior order
- Retailer credentials invalid or expired — authentication with retailer fails
- Payment failure — prepaid wallet balance insufficient or payment block rejected

## How this service works

Zinc is infrastructure for developers to search products, place orders, and track shipments through one API. Automate your buying process. Start building now!

## Output

Returns a JSON object with a UUID order ID, overall order status (pending/processing/ordered/shipped/delivered/cancelled/failed), the maximum price cap, attempt count, an array of ordered items each with their own UUID, URL, quantity, status, variant details, and condition; plus the shipping address, retailer credentials ID used, and created/updated timestamps.

## Request schema (JSON Schema)

```json
{
 "type": "object",
 "required": [
  "products",
  "max_price",
  "shipping_address"
 ],
 "properties": {
  "is_gift": {
   "type": "boolean",
   "description": "Mark the order as a gift. Prices are suppressed on the packing slip where the fulfillment method supports it."
  },
  "payment": {
   "type": "string",
   "description": "Optional payment block. Omit for prepaid-wallet billing (default)."
  },
  "metadata": {
   "type": "string",
   "description": "Optional metadata to attach to the order. Can contain arbitrary key-value pairs."
  },
  "products": {
   "type": "array"
  },
  "max_price": {
   "type": "integer",
   "description": "Maximum price (in cents) allowed for an order before it is finalized."
  },
  "po_number": {
   "type": "string",
   "description": "Optional purchase order number for the order."
  },
  "idempotency_key": {
   "type": "string",
   "description": "Optional idempotency key to prevent duplicate orders. If not provided, one will be generated."
  },
  "shipping_address": {
   "type": "object",
   "description": "Shipping address model.\n\nSupports international addresses. The `state` field is optional for countries\nthat don't use states/provinces. The `country` field uses ISO 3166-1 alpha-2\ncountry codes (e.g., \"US\", \"CA\", \"GB\", \"DE\")."
  },
  "handling_days_max": {
   "type": "string",
   "description": "Optional ceiling on a seller's shipping and handling days. Omit or send null for no limit."
  },
  "customer_notifications": {
   "type": "string",
   "description": "Opt in to emailing the end customer order updates (and unlock the public tracking page for this order). Adds a per-order surcharge. Omit for no customer notifications (default)."
  },
  "retailer_credentials_id": {
   "type": "string",
   "description": "Optional short ID (e.g., 'zn_acct_XXXXXXXX') of specific retailer credentials to use for this order. If not provided, credentials will be selected automatically."
  }
 }
}
```

## Response schema (JSON Schema)

```json
{
 "type": "object",
 "title": "OrderResponse",
 "required": [
  "id",
  "status",
  "max_price",
  "attempts",
  "items",
  "shipping_address",
  "retailer_credentials_id",
  "created_at",
  "updated_at"
 ],
 "properties": {
  "id": {
   "type": "string",
   "title": "Id",
   "format": "uuid"
  },
  "items": {
   "type": "array",
   "items": {
    "type": "object",
    "title": "OrderItemResponse",
    "required": [
     "id",
     "url",
     "quantity",
     "status",
     "created_at",
     "updated_at"
    ],
    "properties": {
     "id": {
      "type": "string",
      "title": "Id",
      "format": "uuid"
     },
     "url": {
      "type": "string",
      "title": "Url"
     },
     "status": {
      "enum": [
       "pending",
       "processing",
       "ordered",
       "shipped",
       "delivered",
       "cancelled",
       "failed"
      ],
      "type": "string",
      "title": "OrderItemStatus"
     },
     "variant": {
      "anyOf": [
       {
        "type": "array",
        "items": {
         "type": "object",
         "title": "ProductVariant",
         "required": [
          "label",
          "value"
         ],
         "properties": {
          "label": {
           "type": "string",
           "title": "Label",
           "minLength": 1,
           "description": "Variant label (e.g., 'Color', 'Size')"
          },
          "value": {
           "type": "string",
           "title": "Value",
           "minLength": 1,
           "description": "Variant value (e.g., 'Black', 'Large')"
          }
         },
         "description": "Product variant schema for selecting product options (color, size, etc.)."
        }
       },
       {
        "type": "null"
       }
      ],
      "title": "Variant"
     },
     "quantity": {
      "type": "integer",
      "title": "Quantity"
     },
     "created_at": {
      "type": "string",
      "title": "Created At",
      "format": "date-time"
     },
     "updated_at": {
      "type": "string",
      "title": "Updated At",
      "format": "date-time"
     },
     "condition_in": {
      "anyOf": [
       {
        "type": "array",
        "items": {
         "enum": [
          "New",
          "Refurbished",
          "UsedLikeNew",
          "UsedVeryGood",
          "UsedGood",
          "UsedAcceptable"
         ],
         "type": "string",
         "title": "ProductCondition",
         "description": "Canonical product-condition strings for condition filtering.\n\nMatching agains
… (truncated)
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/zinc-e-commerce-order-placement-api-7120e132/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from api.zinc.com](https://www.zero.xyz/host/api.zinc.com/llms.txt)
