Connect software to production.
Explore Agent Rail through MCP and REST. Start with the catalog, validate a production specification, request a quote, and follow the supported order workflow.
Quick start
- Call
GET /api/catalogto see available product lines and POD categories. - Build a spec and call
POST /api/quotesfor a deterministic quote. - When ready, call
POST /api/ordersto mint a payable order. - Poll
GET /api/orders/ord_...or register a webhook for status events.
Authentication
Authenticated routes require an API key in the Authorization header. Contact Advertek to request a pilot key.
Never expose an API key in browser code. Use it from a server or trusted agent process.
Base URLs and versioning
Production: https://www.advertek.io
API paths are versioned by prefix. The current public surface is under /api.
Backward-compatible changes are additive. Breaking changes will be announced with a migration window.
Endpoint overview
| Method | Path | Auth | Status | Effect |
|---|---|---|---|---|
| GET | /api/catalog | None | PILOT | Returns product lines and POD categories. |
| POST | /api/quotes | API key | PILOT | Returns a priced, time-bound quote. |
| POST | /api/orders | API key | PILOT | Mints a payable order request. |
| GET | /api/orders/[id] | API key | PILOT | Returns order and status timeline. |
| POST | /api/orders/[id]/moonpay | API key | PILOT | Signed MoonPay Buy link for US card buyers; 403 with a reason when ineligible. |
| POST | /api/mcp | API key | PILOT | MCP-over-HTTP tool transport. |
| POST | /api/chat | None (rate-limited) | DEMO | Conversational demo; does not create orders. |
| POST | /api/artwork | None (rate-limited) | PILOT | Vercel Blob upload token exchange for chat artwork. |
| POST | /api/webhooks/advertek | Basic + HTTPS | PILOT | Inbound production status events. |
| POST | /api/webhooks/quicknode | Signature | PLANNED | USDC confirmation stream. |
| POST | /api/webhooks/moonpay | Signature | PILOT | MoonPay delivery trigger; the transfer is re-verified on-chain. |
MCP connection
Agent Rail is an MCP server over HTTP. Your agent calls the same tools the REST API exposes, but through the Model Context Protocol.
{
"mcpServers": {
"advertek": {
"url": "https://www.advertek.io/api/mcp",
"headers": {
"Authorization": "Bearer ADVERTEK_API_KEY"
}
}
}
}Quote example
POST /api/quotes HTTP/1.1
Host: www.advertek.io
Authorization: Bearer ADVERTEK_API_KEY
Content-Type: application/json
{
"specification": {
"productLine": "printOnDemand",
"dimensions": { "width": 10, "height": 8, "units": "in" },
"stock": { "weight": "200gsm", "color": "white" },
"finish": ["none"],
"quantity": 25,
"turnaround": "standard",
"assets": { "front": { "url": "https://cdn.example.com/front.pdf" } }
}
}HTTP/1.1 200 OK
Content-Type: application/json
{
"ok": true,
"quote": {
"id": "qt_4d2a...",
"total": {
"currency": "USDC",
"amountBaseUnits": "187500000"
},
"expiresAt": "2026-11-01T21:41:31Z",
"demoPricing": true
}
}Non-binding demo
Order and settlement
POST /api/orders validates the full order, prices each line, and returns payment instructions. The agent supplies the payer wallet; the rail supplies the order id, memo, and amount. No funds move until the wallet authorizes the transfer.
For a US buyer paying by card, call POST /api/orders/[id]/moonpaywith the buyer's country or IP address. The response is a signed MoonPay Buy link that delivers the invoice's exact USDC to the settlement wallet, so the order settles on the same rail. You never supply an amount. Buyers outside the allowed countries receive a 403 with a machine-readable reason so your agent can offer another rail. Canada is not served.
HTTP/1.1 201 Created
Content-Type: application/json
{
"ok": true,
"orderId": "ord_9f3e...",
"memo": "ord_9f3e...",
"settlementWallet": "G...",
"amountBaseUnits": "187500000",
"usdcMint": "EPjFWdd5A..."
}Status and webhooks
Orders move through a normalized status vocabulary. You can poll or register a callback URL to receive signed webhooks.
Webhook bodies are signed and include the order id so you can correlate events without parsing memo fields.
Error model
Errors follow a consistent shape with a machine-readable code, human message, and optional field-level issues.
Rate limits and sandbox
Public endpoints are rate-limited per IP. Authenticated endpoints use key-based limits. Limits are returned in RateLimit-* headers where applicable.
The demo environment returns mocked figures and does not create production orders or move funds. A separate sandbox is available for controlled pilot integrations.
Changelog and support
Last updated: . For access, questions, or integration support, use the form below.
Request Credentials