# shirt.sh from-image

> shirt.sh from-image is a paid API for AI agents from www.shirt.sh, paid per call via x402, $20/call, status unknown (last checked 2026-09-15).

Creates and orders a custom-printed shirt using an image you provide, returning an order ID and tracking info

## Facts

- Endpoint: POST https://www.shirt.sh/api/shirts/from-image
- Price: $20/call
- Payment: x402
- Status: unknown
- Last checked: 2026-09-15
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/shirt-sh-from-image-229cb1f1
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_4NBiTWHlIsXnzga0jBXJ7

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 shirt-sh-from-image-229cb1f1 -d '<json body>'
```

Example prompt: Order me a large white shirt from shirt.sh using this image — https://example.com/my-logo.png — and ship it to John Smith at 123 Main St, Austin TX 78701.

## When to prefer this

Use this endpoint when you need to programmatically order a physical custom-printed shirt from an image, including automated merchandise fulfillment, fan merch, or gifting workflows that require image-based print-on-demand with shipping.

## Known failure modes

- Invalid or unreachable imageUrl returns error
- Unsupported size or color value may cause rejection
- Missing required address_to fields may fail order creation
- Payment failure due to insufficient USDC balance
- Image format not supported (non-image URL or corrupted data)
- Order enters 'failed' status if printing or fulfillment fails

## How this service works

Custom shirt from your image

## Output

Returns a UUID order ID, order status (queued/processing/completed/failed), product ID, the image URL used, and tracking info (carrier, tracking number, tracking URL) once the order ships.

## Request schema (JSON Schema)

```json
{
 "type": "object",
 "properties": {
  "size": {
   "enum": [
    "S",
    "M",
    "L",
    "XL",
    "2XL",
    "3XL",
    "4XL",
    "5XL"
   ],
   "type": "string"
  },
  "color": {
   "enum": [
    "Black",
    "White"
   ],
   "type": "string"
  },
  "imageUrl": {
   "type": "string",
   "description": "HTTP/HTTPS URL or base64 data URL (data:image/...)"
  },
  "address_to": {
   "type": "object"
  }
 }
}
```

## Response schema (JSON Schema)

```json
{
 "type": "object",
 "$schema": "https://json-schema.org/draft/2020-12/schema",
 "required": [
  "id",
  "status"
 ],
 "properties": {
  "id": {
   "type": "string",
   "format": "uuid",
   "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
  },
  "status": {
   "enum": [
    "queued",
    "processing",
    "failed",
    "completed"
   ],
   "type": "string"
  },
  "orderId": {
   "type": "string"
  },
  "imageUrl": {
   "type": "string",
   "description": "HTTP/HTTPS URL or base64 data URL (data:image/...)"
  },
  "productId": {
   "type": "string"
  },
  "trackingInfo": {
   "anyOf": [
    {
     "type": "object",
     "required": [
      "carrier",
      "trackingNumber",
      "trackingUrl"
     ],
     "properties": {
      "carrier": {
       "type": "string"
      },
      "trackingUrl": {
       "type": "string"
      },
      "trackingNumber": {
       "type": "string"
      }
     },
     "additionalProperties": false
    },
    {
     "type": "null"
    }
   ]
  }
 },
 "additionalProperties": false
}
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/shirt-sh-from-image-229cb1f1/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from www.shirt.sh](https://www.zero.xyz/host/www.shirt.sh/llms.txt)
