Skip to main content
Before an AI agent can browse your catalog or place an order, it needs to know what your store supports and where to call it. The /.well-known/ucp file is that declaration. When a UCP-compatible platform — Google AI Mode, Gemini, or any other agent — encounters your domain, it fetches this file first. Without it, agents cannot discover or transact with you at all.
The manifest must be served at https://yourdomain.com/.well-known/ucp (or /.well-known/ucp.json) with Content-Type: application/json and no authentication required. Agents will not send credentials to fetch capability discovery files.

Minimal manifest

The minimum valid manifest requires a product_catalog capability and a checkout capability. Both must include an endpoint URL.
/.well-known/ucp

Full manifest with all capabilities

Declare optional capabilities to unlock additional agent behaviors — shipping cost calculation, order tracking, and return initiation.
/.well-known/ucp

Required capabilities

Optional capabilities

Hosting the manifest

Place the file at public/.well-known/ucp. Next.js serves everything in public/ as static files automatically.
Then create public/.well-known/ucp with your manifest JSON. No additional configuration required — Vercel will serve it at /.well-known/ucp.
Vercel sets Content-Type based on file extension. Since ucp has no extension, verify the response header is application/json. You may need a vercel.json rewrite rule or a Route Handler to set the header explicitly.

Common mistakes

The manifest must be at https://yourdomain.com/.well-known/ucp, not on a subdomain like shop.yourdomain.com/.well-known/ucp. Check that your web server routes the root domain correctly, and that .well-known directories aren’t blocked by a .htaccess or server config.
Validate your JSON before deploying. Common causes: trailing commas, unescaped quotation marks inside strings, or missing closing brackets.
If the command exits without output, your JSON is valid.
The response must include Content-Type: application/json. Some static hosts serve unknown file extensions as text/plain. Override this in your hosting configuration — see the Nginx and Express examples above.
The /.well-known/ucp file must be publicly accessible with no API key, cookie, or auth header required. AI agents follow the .well-known convention and will not authenticate to fetch this file.

Validate with Asva

Use the Manifest Generator and Validator to generate a compliant manifest from your endpoint URLs, validate the JSON of an existing file, and confirm your hosted manifest is publicly reachable. To validate via the API:

Next steps

Product catalog endpoint

Structure your catalog endpoint so agents can find the right product and variant.

Checkout and payments

Implement cart creation and order confirmation.