# Get listed as a merchant

Get a priced endpoint into the public x402 catalog and onto the Roundhouse directory.

Section: Guides
Source: https://www.roundhouse.studio/docs/guides/get-listed-as-a-merchant

---

Getting listed is not an application; there is nobody to ask. The directory is built from the public
x402 catalog and enriched with what the index has observed on-chain, so listing means making three
technical facts about your endpoint true.

> [!NOTE]
> There are **two independent routes in**, and they show you differently.
> Publishing to the catalog gets you a *listing* — a name, a price, a
> description. Being paid gets you a *settlement record* — evidence. You want
> both, and buyers weigh the second one far more heavily.

## Route 1 — the catalog listing

### 1. Price a resource behind `402`

Your endpoint must answer an unpaid request with a `402` carrying standard payment requirements. The
easiest way is to put x402 middleware in front of it and point it at a facilitator — see
[charge for your API](https://www.roundhouse.studio/docs/guides/charge-for-your-api).

The requirements must be honest and stable: the `payTo` you quote is the address the index will join
your settlements on, and the `resource` URL is what distinguishes your service fee from any value
passing through it.

### 2. Publish to the x402 discovery catalog

The directory is fed by the public x402 discovery catalog. In practice the reliable way in is to **settle
through a facilitator that publishes to it** — Coinbase's CDP facilitator does this for the
endpoints it serves, which is how the great majority of currently-listed services got there. The
[x402 documentation](https://x402.org) is authoritative on the current publishing mechanism; treat it
as the source rather than this page, because it changes faster than we do.

### 3. Wait about forty minutes

Roundhouse crawls the catalog continuously and a full cycle takes roughly forty minutes. Then it
enriches your entry, from the outside:

| Enrichment | What it does | What a buyer sees |
| --- | --- | --- |
| Liveness probe | Fetches your endpoint | `is_live`, `http_status` |
| Favicon + description | Reads your page metadata | An icon and a summary in the directory |
| Host geolocation | Resolves and locates your endpoint's IP | "Serves from", with a flag |
| Settlement join | Matches your `payTo` in the ledger | `l30_total_calls`, `l30_unique_payers`, `onchain_volume_usdc` |

Confirm you landed:

```bash
curl -sL "https://www.roundhouse.studio/api/v0/endpoints?q=<your-service>" | jq \
  '.endpoints[] | {service_name, resource, price_usdc, pay_to, is_live, http_status, l30_unique_payers}'
```

> [!NOTE]
> "Serves from" is the **nearest serving location of your endpoint's IP** — for
> anything behind a CDN that is an edge PoP, not where you are. It is labelled that
> way on your merchant page for exactly that reason, and it is not presented as
> your address.

## Route 2 — the settlement record

You do not need a listing to appear in the ledger. **Any settlement to your `payTo` is indexed**,
because it happened on a public chain. If someone pays you, you have a
merchant page at `/merchant/<your-payTo>` whether or not anyone published a listing.

```bash
curl -sL "https://www.roundhouse.studio/api/v0/merchants/<your-payTo>" | jq
```

This route is slower to start and much stronger once running, because a listing costs nothing to
create and a paying customer does not.

## Make the listing worth reading

Everything below is free and takes minutes. Each one removes a reason not to pay you.

- **Keep the endpoint up.** `is_live: false` is the first thing a buyer sees. The probe runs from
  outside your network, so it reflects real availability.
- **Make the listed price match your `402`.** Buyers compare the two, and a gap past roughly 25% on
  three or more settlements is flagged on your merchant page.
- **Write a real description.** It is what appears in the directory and in search. "API" is not a
  description.
- **Serve a favicon and page metadata.** The enrichment pass reads them; without them your row is a
  blank square in a list of logos.
- **[Register an ERC-8004 identity](https://www.roundhouse.studio/docs/guides/register-your-agent-identity).** Free. It turns a
  hex string into a name on [`/explore`](https://www.roundhouse.studio/explore) and every profile page.
- **Get your first settlement.** Even one distinct payer moves you out of the "nobody has ever paid
  this" bucket that [vetting agents](https://www.roundhouse.studio/docs/guides/vet-a-counterparty) filter on.

## What you cannot do

Being straight about this, because it is the shape of a neutral data layer:

- **You cannot pay for placement.** There is no promoted tier and no ranking to buy into.
- **You cannot remove your settlement history.** It is a public chain. The index reflects it.
- **You cannot suppress the observed columns.** If your listing claims a price nobody pays, the
  directory shows both numbers.
- **You cannot get listed by asking us.** There is no submission form, deliberately — the catalog is
  someone else's public list, and we index it rather than curate it.

What you *can* do is correct your own inputs: a live endpoint, an honest price, a real description,
an identity.

## Known limitation: stale rows

The catalog only ever grows — the index currently holds substantially more rows than are listed
upstream, because entries the upstream dropped are not yet pruned. `last_indexed_at` is the
"still seen upstream" marker, and a full crawl cycle is about forty minutes, so a row much older
than that is probably gone from the source. Filtering or labelling those is open work. If your own
row looks stale, check `last_indexed_at` before assuming your listing was removed.

## Hand it to an agent

```prompt
Get my x402 endpoint listed and check how it looks to a buyer.

My endpoint: <https://…>
My payTo: <0x…>

1. Fetch my endpoint unpaid and confirm it returns a standard 402 with a valid
   accepts array. Show me the decoded body and flag anything non-standard.
2. Confirm the payTo in that 402 matches the address above.
3. Check whether I am in the directory:
   GET /api/v0/endpoints?q=<my service>. Report is_live, http_status,
   price_usdc, last_indexed_at, and l30_unique_payers.
4. Check my settlement record: GET /api/v0/merchants/<payTo>.
5. Tell me, as a buyer would see it, the three weakest things about my listing
   and exactly what to change.
```

## Next steps

- [Charge for your API](https://www.roundhouse.studio/docs/guides/charge-for-your-api) — the `402` side
- [Test your agent identity](https://www.roundhouse.studio/docs/guides/test-your-agent-identity) — the full self-check
- [Services directory](https://www.roundhouse.studio/services) — what a good listing looks like

---

Every page in these docs is available as markdown at its own URL plus `.md`.
Full index: https://www.roundhouse.studio/docs.md
