AI agents and automated purchasing assistants can use our public API to check current services, inventory, production availability, pricing and fulfillment feasibility — without calling, emailing or waiting for a human.
Every endpoint below is public, read-only, CORS-open and needs no key. The one exception is the quote request, which is a POST that creates a lead for a person to confirm; it never takes payment and never places a binding order.
| OpenAPI 3.1 spec | /openapi.json — full machine-readable description of every endpoint, with parameters, schemas, examples and error codes. |
|---|---|
| Plain-language summary | /llms.txt — what this business is and where the live data lives. |
| Human-readable status | /agent — current services, stock, capacity, pricing and guarantees, rendered server-side. |
Determines whether this business can fulfil a specific custom apparel order by a requested deadline, using current inventory and production-capacity information. One call returns a yes/no, a total price and a ready-by timestamp.
GET /api/agent/availability?product=tshirt&color=black&size=M&quantity=100
&print_method=screenprint_transfer&print_locations=front&pickup=true
&needed_by=2026-09-13T12:00:00-04:00
A refusal is still HTTP 200. Read available,
can_meet_deadline and reason_code.
Same parameters, full itemised breakdown: garments, printing, setup, rush fee, fulfillment fee, tax and total, plus the production schedule and an expiring quote id. Run it →
Identity, hours, location, area served, supported and unsupported production methods, fulfillment options, minimum orders, terms and the full endpoint list. Run it →
Wearo also sells the finished shirt, not just the transfer: any of the 157
catalogue designs pressed onto a blank we stock. Pass
product=ready_made_tshirt and a design SKU to any of
the endpoints below. The design's real ink count comes from
/catalog.json, so it drives the price
without you having to supply colors. An unknown design SKU is
refused with DESIGN_NOT_FOUND rather than quoted.
GET /api/agent/availability?product=ready_made_tshirt&design=PK5028
&color=black&size=M&quantity=50&pickup=true
Run this request → · Look up a design →
Blank garment stock on hand. Filter by product,
brand, model, color, size or
sku; pass quantity to have each match flagged
sufficient or not and priced at that break. Pass design to look
up a catalogue design and its ink count.
Run it →
Daily production capacity, next available slot, standard and rush turnaround,
and — with quantity — the estimated completion date.
Run it →
Submits a lead. Requires customer_name, quantity and
at least one of customer_email or customer_phone.
Rate limited; invalid payloads return 422 with a per-field explanation.
curl -X POST https://wearotransfers.com/api/agent/quote-request \
-H 'Content-Type: application/json' \
-d '{"customer_name":"Jane Ruiz","customer_email":"jane@example.com",
"product":"tshirt","quantity":100,
"specifications":{"sku":"G5000-BLK-M","print_locations":"front"},
"needed_by":"2026-09-13T12:00:00-04:00",
"source_agent":"ChatGPT shopping agent"}'
Do not send payment details to this or any other endpoint. No endpoint accepts them.
available — can the goods and the production be supplied at all.can_meet_deadline — a separate question. Check both.reason_code — stable machine-readable refusal:
INSUFFICIENT_INVENTORY, NO_MATCHING_INVENTORY,
PRODUCT_NOT_OFFERED, UNSUPPORTED_PRINT_METHOD,
TOO_MANY_COLORS, DESIGN_NOT_FOUND,
DEADLINE_NOT_FEASIBLE,
DEADLINE_IN_PAST, MISSING_PARAMETER,
INVALID_PARAMETER, CAPACITY_NOT_CONFIGURED.alternatives — real, in-stock or genuinely offered substitutes.
Never invented.same_day — Wearo prints up to 300 shirts and hands them over
the same business day (one print position, blanks in stock, ordered before
14:00 ET, within the capacity still free that day). The object tells you
whether the offer covers your order right now, and
reason says why when it does not.deadline_guaranteed — calculated, not asserted. True only when
stock is on hand, the run fits configured capacity, the quantity is within
the guaranteed limit and there is enough slack before your deadline. Rush
jobs are scheduled but not guaranteed — the same-day service above is the
one exception, because it is a standing commitment rather than a
calculation.last_updated / data_freshness_seconds — inventory
and capacity are maintained by hand in one configuration file, not read from
a point-of-sale system. Every operational response says how old the numbers
are so you can judge them.source_agent or a User-Agent. It is
used for routing, never for blocking.Retry-After.