# ACP discovery (/.well-known/acp.json)

> An ACP discovery document at /.well-known/acp.json tells an agent where a business's checkout API is and which services it offers.

- Source: /checks/acp-discovery
- Site: AgenticWebScore
- Language: English

---
An ACP discovery document at /.well-known/acp.json tells an agent where a business's checkout API is and which services it offers. The RFC behind it is a proposal.

Standard status: Draft. A published specification that is not yet ratified. Standard: [ACP](https://www.agenticcommerce.dev/docs).

- Kind: Unscored check: 0 points, never a level gate
- Module: Sites with a commercial signal
- Listed under: Agent conventions
- Who reads it today: Agents that implement ACP checkout; isitagentready.com.
- Effect on Google Search: None. No Google Search documentation says Google reads it.

| Property | Value |
| --- | --- |
| Check id | `acp-discovery` |
| Dimension | Commerce |
| Part | — |
| Tier | — |
| Weight | 0 |
| Maturity | Draft. A published specification that is not yet ratified. |
| Publishing skill | `acp-discovery` |
| Standards | ACP |

## Sources

- [ACP discovery RFC (status: Proposal)](https://github.com/agentic-commerce-protocol/agentic-commerce-protocol/blob/main/rfcs/rfc.discovery.md), Agentic Commerce Protocol
- [isitagentready.com: ACP skill](https://isitagentready.com/.well-known/agent-skills/acp/SKILL.md), isitagentready.com

## What the scanner requests

- `/.well-known/acp.json`

## What is measured

Unscored, commerce module: asked only when the homepage shows a commercial signal. It reads /.well-known/acp.json, once, as a JSON document. An ACP discovery document is a JSON object with a protocol member that names "acp" and states a version, an api_base_url that is an absolute http or https URL, a transports array that is not empty, and a capabilities.services array that is not empty. A document with all of these is present. A 2xx answer that is not JSON and is no page is defective. So is JSON that lacks any of these members or states one wrongly, and the detail names each member it lacks and each it states wrongly. The document is not served when the path answers 404, 410, or another 4xx status that is not a refusal, when a 2xx answer has an empty body, or when only a page answers there: an HTML page, a markdown page, a redirect to the homepage, or a copy of it. It is not measured when the path was refused (HTTP 401, 402, 403, 406, 429, or 451, where 406 refuses the scan's Accept header), failed with a server error, timed out, or was not requested. The discovery RFC has the status Proposal, so the check is unscored.

## Reproduce it yourself

You do not have to take our word for any of this. Run the same measurement against your own domain:

```bash
ORIGIN=https://example.com
curl -sSL -A 'AgenticWebScore/0.3 (+https://agenticwebscore.com/bot)' -H 'Accept-Language: en' -H 'Accept: application/json, application/linkset+json;q=0.9, */*;q=0.5' "$ORIGIN/.well-known/acp.json" | jq '{protocol, api_base_url, transports, services: .capabilities.services}'
```

## The fix

This is an example written for example.com. Where the scan can build the fix from your own site, the report shows that version instead.

```json
{
  "protocol": {
    "name": "acp",
    "version": "<choose: the ACP version you implement, YYYY-MM-DD>"
  },
  "api_base_url": "https://example.com<choose: path of your ACP API>",
  "transports": [
    "<choose: a transport your ACP API offers>"
  ],
  "capabilities": {
    "services": [
      "<choose: a service your ACP API offers, such as checkout>"
    ]
  }
}
```

> Serve it as application/json at /.well-known/acp.json. Fill each choose marker from your ACP implementation; the version is a date. The API base URL starts at the origin the scan measured, so change it if your ACP API is served from another origin. The discovery RFC is a proposal, so the shape may change.

## Standards referenced

- `ACP`

## Related checks

| Check | Kind | Maturity | Same skill |
| --- | --- | --- | --- |
| `product-schema` — Product/catalog schema | Scored check | Adopted | — |
| `payment-protocols` — Agent payment protocol (UCP profile or x402) | Unscored check | Draft | — |
| `agent-purchase` — Agent purchase policy | Unscored check | Draft | — |
| `ucp-manifest` — UCP manifest (/.well-known/ucp) | Unscored check | Draft | — |
| `returns` — Return policy machine-readable | Scored check | Adopted | — |
| `inventory-freshness` — Inventory and price freshness | Scored check | Adopted | — |
| `seller-identity` — Seller identity declared | Scored check | Adopted | — |
| `shipping-costs` — Shipping cost and delivery declared | Scored check | Adopted | — |
