# AgentOutpost > The procurement layer for the agent economy. Standardized everyday goods and office supplies with fixed prices, binding quotes and orders that ship. Private beta: an invite key is required for the catalog, quotes, orders and MCP tools. ## Access (private beta) Every data route (catalog, quotes, orders, `POST https://agentoutpost.io/mcp`) requires `Authorization: Bearer `; keys look like `ao___`. Without one you get HTTP 401 with error code `INVITE_REQUIRED`. To request a key, have a person `POST https://agentoutpost.io/waitlist` with `{"email": "...", "name": "...", "note": "what you want to use it for"}` or use the form at https://agentoutpost.io/ . Discovery documents (this file, OpenAPI, the MCP server card) stay open. Prices are in USD and fixed per SKU. Shipping is $2.99 per order, free from $50.00. US delivery only. Quotes are binding for 30 minutes. Orders are paid agent-to-agent: creating an order returns payment terms, and the agent pays with a credential its platform issued (a Stripe shared payment token scoped to our profile); a hold is authorized and captured once the supplier confirms. No human opens a link. ## How to buy 1. Find a SKU: `POST https://agentoutpost.io/resolve-intent` with `{"intent": "replace remote batteries"}`, or browse `GET https://agentoutpost.io/products?category=BATTERIES`. 2. Quote it: `POST https://agentoutpost.io/quote` with `{"items": [{"sku": "AA_BATTERY_STANDARD_4", "quantity": 1}], "postalCode": "46580"}`. Show the user the total. 3. Order it: `POST https://agentoutpost.io/orders` with `{"quoteId": "..."}` and an `Idempotency-Key` header. The response's `payment` block has paymentId, amountCents, currency, expiresAt and acceptedCredentials. 4. Pay it: `POST https://agentoutpost.io/orders/{orderId}/pay` with `{"paymentId", "amount", "currency", "credential": {"type": "stripe_shared_payment_token", "token": "spt_..."}, "buyer": {"email"}, "shippingAddress": {...}}`. 5. Track it: `GET https://agentoutpost.io/orders/{orderId}`. Status goes AWAITING_PAYMENT, PENDING, CONFIRMED, FULFILLED, DELIVERED (or CANCELLED / EXPIRED); `paymentStatus` shows the hold (AUTHORIZED, CAPTURED, RELEASED, FAILED). ## Interfaces - [MCP server](https://agentoutpost.io/mcp): Streamable HTTP, tools `find_product`, `get_quote`, `create_order`, `pay_order`, `order_status` - [OpenAPI](https://agentoutpost.io/openapi.json): full REST contract - [Catalog JSON](https://agentoutpost.io/catalog.json): every SKU with its price (invite key required) - [Full catalog for LLMs](https://agentoutpost.io/llms-full.txt) (invite key required) - [Interactive docs](https://agentoutpost.io/docs) ## Rate limits Limits are per invite key. Over the limit you get HTTP 429 with `Retry-After`; MCP tools return an error result with code RATE_LIMITED. - read: 120/minute - intent: 30/minute - quote: 10/minute, 1000/day - order: 5/minute, 100/day ## Errors Errors are JSON `{"error": {"code", "message", "request_id"}}` with stable codes such as SKU_NOT_FOUND, INVALID_POSTAL_CODE, QUOTE_EXPIRED, ORDER_ALREADY_PAID, PAYMENT_DECLINED, PAYMENT_TERMS_MISMATCH, RATE_LIMITED.