# honesty.market — instructions for agents

> A register for agentic commerce. We publish a curated, agent-readable catalogue of products from independent merchants, link to each merchant's own store through an attributed redirect, and keep a ledger of which agents and people followed those links. **We are not the merchant of record. Checkout happens on the merchant's own store.**

Site: https://honesty.market · Contact: https://honesty.market/onboard · Generated: 2026-10-26

## What you can do here

1. **Discover** — `GET https://honesty.market/.well-known/ucp` returns our UCP business profile (version 2026-08-25). It declares catalogue search and lookup only; `payment_handlers` is empty on purpose.
2. **Search** — `POST https://honesty.market/api/ucp/mcp` (JSON-RPC 2.0, MCP). Tools: `search_catalog`, `lookup_catalog`, `get_product`. Every `tools/call` must include `meta["ucp-agent"].profile` — the HTTPS URL of your own platform profile.
3. **Follow a link** — every product `url` we return is `https://honesty.market/go/<slug>`. It answers `302` to the merchant's product page with these parameters appended: `ref=honesty`, `utm_source=honesty.market`, `utm_medium=referral`, `utm_campaign=<merchant>`, `utm_content=<slug>`, `hm_click=<click id>`. The merchant's canonical URL is also given as `metadata.merchant_url` if you must cite it directly. We log each visit's time, product, merchant, a salted daily hash of the IP, user-agent and client hints, Accept-Language, edge-derived country, referer, on-site source and a first-party session id (details at https://honesty.market/disclosure); no names, emails or raw IPs.
4. **Continue at the merchant** — each product carries `metadata.merchant_ucp_profile` (the merchant's own `/.well-known/ucp`) and `metadata.shopify_variant_gid` so you can run the merchant's own UCP checkout without re-searching.

### Example: search_catalog

```json
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "search_catalog",
    "arguments": {
      "meta": {
        "ucp-agent": {
          "profile": "https://your-platform.example/.well-known/ucp"
        }
      },
      "catalog": {
        "query": "beige oak sideboard",
        "context": {
          "address_country": "US"
        },
        "filters": {
          "price": {
            "max": 30000
          }
        },
        "pagination": {
          "limit": 10
        }
      }
    }
  }
}
```

Response: `result.structuredContent.products[]` are UCP `Product` objects (`id`, `title`, `description.plain`, `url`, `price_range`, `variants[]` with `price` in minor units, `availability`, `options`, `media`, `seller`, `metadata`). `result.content[0].text` is a plain-text summary.

## Read-only files (no authentication)

- ACP-format product feed (OpenAI flat rows, JSONL): `https://honesty.market/feeds/acp.jsonl` · CSV: `https://honesty.market/feeds/acp.csv`
- Full catalogue in our canonical shape: `https://honesty.market/feeds/catalogue.json`
- Product pages: `https://honesty.market/products/<slug>` (schema.org Product JSON-LD embedded) · Catalogue: `https://honesty.market/catalogue`
- Sitemap: `https://honesty.market/sitemap.xml` · This file: `https://honesty.market/llms.txt` (mirrored at `/agents.md`; `/llms-full.txt` appends every product)
- Docs for agent builders: `https://honesty.market/for-agents`

## Rules

- Rate limits: 60 MCP requests/min/IP, 120 redirects/min/IP. Back off on 429.
- Prices and availability carry `metadata.last_verified` (the date we last checked the merchant's page). Treat them as indicative; the merchant's page is authoritative.
- Do not present a `/go/` link as the merchant's own URL. Say the purchase happens at the merchant.
- Disclosure: links through `/go/` may earn honesty.market a commission from the merchant. See `https://honesty.market/disclosure`.

## Our policies

- Terms of service: https://honesty.market/terms — what we answer for. We are not the merchant of record; clause 5 is the one that binds you as an agent.
- Privacy: https://honesty.market/privacy — every field we store on a click or an endpoint read, named.
- Refunds and returns: https://honesty.market/returns — we take no payment and issue no refunds; the merchant's own policy governs the order. Each merchant's refund, privacy and terms URLs are listed there, and are also carried per row as `return_policy`, `seller_privacy_policy` and `seller_tos` in the ACP feed and as `seller.links[]` in the UCP objects.

## Merchants listed

- **FOHERE** (www.fohere.com) — 3 listed product(s) · shopify · UCP profile: https://www.fohere.com/.well-known/ucp · https://honesty.market/merchants/fohere
- **IRONCK** (ironck.com) — 3 listed product(s) · shopify · UCP profile: https://ironck.com/.well-known/ucp · https://honesty.market/merchants/ironck
- **ModernMate** (www.modernmate.net) — 9 listed product(s) · shopify · UCP profile: https://www.modernmate.net/.well-known/ucp · https://honesty.market/merchants/modernmate
- **Upstreman** (upstreman.com) — 3 listed product(s) · shopify · UCP profile: https://upstreman.com/.well-known/ucp · https://honesty.market/merchants/upstreman
