{
  "slug": "publish-x402-api-profile-readiness-badge",
  "title": "Publish an x402 API profile with a readiness report and badge",
  "description": "Prepare your x402 API for agent discovery: validate free, inspect readiness evidence, then publish an Ontario service profile for 0.50 USDC only when you need it.",
  "lead": "An endpoint can accept payments without giving a buyer enough information to choose it. Ontario's publication offer adds a public service profile and linked readiness evidence. Start with the free checks; pay only if publishing that profile is the result you need.",
  "primary_label": "Prepare a free publication draft",
  "primary_path": "/tools/x402-launch-kit?utm_content=profile_guide",
  "secondary_label": "Inspect the publication offer",
  "secondary_path": "/services/agent-catalog-publish?utm_content=profile_guide",
  "sections": [
    {
      "heading": "Free report or paid profile: choose the output you actually need",
      "paragraphs": [
        "Use the free readiness verifier if your question is whether an endpoint exposes usable payment and discovery metadata. A public report is evidence of observed checks, not a promise of security. You do not need to buy a listing just to inspect readiness.",
        "At the time of review, 0.50 USDC on Base buys an Ontario service profile with readiness evidence, an embeddable badge, a point-in-time Bazaar retrieval snapshot, and 30 days of included freshness maintenance. It does not buy Coinbase placement, ranking, traffic, customers, or a better readiness grade. Confirm the current HTTP 402 challenge before paying."
      ]
    },
    {
      "heading": "1. Describe a buyer task, not a technology stack",
      "paragraphs": [
        "Write what the endpoint returns, the inputs it needs, and its limits. For example: 'Return a timestamped shipping quote for a parcel's origin, destination and weight' is more actionable than 'AI-powered logistics API'. This is an illustrative description, not an Ontario-listed provider or testimonial.",
        "Keep the service price separate from Ontario's publication fee. In the launch kit, price_usdc describes your API's per-call price. It is not the amount Ontario charges to publish its profile. Use only public provider metadata; omit private customer information and credentials."
      ]
    },
    {
      "heading": "2. Generate a draft without spending",
      "paragraphs": [
        "Replace the placeholder URL with a real HTTPS endpoint you operate. This command generates drafts; it does not publish a listing, sign a payment, or establish that any registry accepted the service. Check the returned validation errors before continuing."
      ],
      "code": "curl -sS https://ontarioprotocol.com/api/tools/x402-launch-kit \\\n  -H 'Content-Type: application/json' \\\n  -d '{\"name\":\"Parcel Quote API\",\"description\":\"Return a timestamped parcel shipping quote from public route and weight inputs.\",\"endpoint\":\"https://YOUR-DOMAIN/api/quote\",\"method\":\"POST\",\"price_usdc\":\"0.01\",\"network\":\"base\"}'",
      "code_note": "Template only: replace the URL and sample metadata with your actual service. No payment header is included."
    },
    {
      "heading": "3. Validate the endpoint and listing separately",
      "paragraphs": [
        "Run POST /api/verify/x402-readiness with target_url set to your endpoint. Inspect the timestamp, grade, individual checks, and limitations. Then submit the launch kit's Ontario listing payload to POST /api/x402/list-service/validate. A syntactically valid payload is not proof that the endpoint works or that a marketplace will list it.",
        "If the evidence is stale, incomplete, or not ready, fix that first. Do not purchase publication as a way to bypass readiness requirements. Keep the signed report and inspect its integrity and freshness independently."
      ]
    },
    {
      "heading": "4. Publish only after an explicit decision",
      "paragraphs": [
        "Call /api/agent/tool-quote with the task 'Publish my x402 endpoint as a public service profile'. Leave wallet_enabled and free_preflight_complete false until those statements are actually true. When the checks are complete, supply an owner-approved max_usdc and network. The router never authorizes spending on the owner's behalf.",
        "If publication is still required and policy permits it, probe POST /api/x402/list-service without payment. Inspect the live challenge's amount, asset, network, recipient and resource. Sign locally only within owner policy. Preserve the settlement response and the returned profile and report references. Never send wallet keys to Ontario."
      ]
    },
    {
      "heading": "Why a Bazaar listing alone is not enough",
      "paragraphs": [
        "Coinbase's Bazaar supports public discovery by intent. Catalog presence and being returned for a particular buyer task are different checks. In Ontario's September 21, 2026 sample, its service-publication endpoint appeared in two of five fixed synthetic queries: rank 1 for a profile-and-badge query and rank 4 for a readiness-report query. It was absent from the other three returned samples.",
        "That observation is not market-wide rank, search volume, proof of delisting, or traffic attribution. Repeat the same queries after a genuine metadata change. Measure relevant retrieval and fulfilled external publications separately; a listing count is not revenue."
      ]
    },
    {
      "heading": "What to keep after publication",
      "paragraphs": [
        "Retain the profile URL, report reference, observed timestamp, evidence limitations and settlement receipt. Link the badge to its underlying report rather than treating the image as proof. After the included maintenance window, inspect the free refresh validator before considering an optional paid evidence refresh.",
        "Stop after the free result when a profile is unnecessary. Ontario provides observable readiness signals, not guarantees of safety, quality, financial outcome or future behavior."
      ]
    }
  ],
  "sources": [
    {
      "label": "Coinbase: discover services in Bazaar",
      "url": "https://docs.cdp.coinbase.com/x402/buyer/discover-services"
    },
    {
      "label": "Ontario publication payload schema",
      "url": "https://ontarioprotocol.com/.well-known/x402-list-service.schema.json"
    },
    {
      "label": "Ontario current tools and prices",
      "url": "https://ontarioprotocol.com/.well-known/mcp.json"
    }
  ]
}
