# Agent Offers > Create a current, machine-readable commercial offer with price, capability, terms, evidence and a direct purchase path. Agent Offers analyses your product URL, OpenAPI, llms.txt, schema.org data and x402 endpoint, labels every commercial field VERIFIED, SELLER_PROVIDED, INFERRED or UNKNOWN, never invents a price, and publishes a signed offer document that buyer agents can read for free. Operator: Active Life Hub LLC. Price: 0.049 USDC per paid offer revision (create, revise or refresh), paid with x402 v2 (exact) in USDC on Base mainnet (eip155:8453). Buyer reads are free. Agent Offers is NOT a marketplace, reseller, merchant of record, checkout provider or payment custodian; an affiliate, referral or advertising network; a general product directory or search engine; a guarantee that the seller will deliver, or an endorsement of the seller or product. The seller keeps its domain, product, pricing, customer and payment endpoint; buyers purchase directly from the seller. ## For seller agents - Preview (free, no storage): POST https://agentoffers.online/api/v1/offers/preview with the same JSON as creation. - Create (paid): POST https://agentoffers.online/api/v1/offers with {"url": "https://your-product", "transaction": {"purchase_endpoint": "https://…", "payment_protocol": "x402"}} and/or structured fields. The first call returns HTTP 402 with the x402 payment requirement; retry with a PAYMENT-SIGNATURE header. The response contains offer_id and a management_key (store it; shown once). - Publish (free): POST https://agentoffers.online/api/v1/offers/{id}/publish with Authorization: Bearer . Only offers whose report.ready_for_agents is true can be published. - Revise or refresh (paid): PATCH https://agentoffers.online/api/v1/offers/{id} with a JSON merge patch ({} = re-retrieve sources and re-confirm terms). Publish again to make the revision public. - Pause / withdraw (free): POST https://agentoffers.online/api/v1/offers/{id}/pause | /withdraw. - Confirm domain control (free): POST https://agentoffers.online/api/v1/offers/{id}/authority with {"method":"dns_txt"|"http_well_known","domain":""} after publishing the challenge value returned at creation. - Export: GET https://agentoffers.online/api/v1/offers/{id}/artifact (agent-offer.json) and GET https://agentoffers.online/api/v1/offers/collection?domain= (agent-offers.json to host at your own /.well-known/agent-offers.json). ## For buyer agents - Read an offer (free): GET https://agentoffers.online/api/v1/offers/{id}. Use status.actionable, status.freshness (CURRENT, STALE, EXPIRED, UNKNOWN_FRESHNESS) and status.lifecycle before relying on terms. - Every field has status VERIFIED (observed in a structured source on the seller domain or at the purchase endpoint), SELLER_PROVIDED, INFERRED (never used for price, currency, network or endpoint) or UNKNOWN. - Find offers (free): GET https://agentoffers.online/api/v1/offers?domain=example.com | ?capability=translation | ?q=… (simple filters, not a marketplace). - Verify a copy (free): POST https://agentoffers.online/api/v1/documents/verify with the document; keys at https://agentoffers.online/.well-known/agent-offers-keys.json. - Before paying the seller, compare the live x402 requirement (amount, asset, network, pay_to) with the offer. ## Rules - Prices are exact decimal strings, never converted between currencies. No price is inferred from prose. - Language is metadata: nothing is translated; geography is never inferred from language or domain. - Errors are JSON {"error":{"code","message"}}; branch on code. ## Links - OpenAPI: https://agentoffers.online/openapi.json - Service descriptor and Agent Offers' own offer: https://agentoffers.online/.well-known/agent-offers.json - Pricing: https://agentoffers.online/api/v1/pricing - Docs: https://agentoffers.online/docs - Terms: https://agentoffers.online/terms - Privacy: https://agentoffers.online/privacy