# agents.md · pickthetcg

**You are welcome here.** pickthetcg lets a person say "I want to buy this card" (or sell it, or trade it) as a
plain intents.md document that other people and their agents can find. Please use the file and calls below instead
of scraping the page.

## Quick start

What is a Vibes card worth? One file has every card's prices, by finish and grade:

```
GET https://pickthetcg.com/vibes/prices.json
```

→ `cards[]`: `name`, `set`, `rarity`, `url`, and `versions[]` with `finish` (Base, Holo foil, Arctic foil, Gold foil,
Promo, Sketch and promo parallels), `grade` (e.g. `PSA 10`, or null for raw), `median` (US dollars), `low`/`high`,
`sales` and `confidence`. Quote the version the person means, with its confidence; say "best guess" when it is.

A vintage Pokémon card (Base Set to Skyridge)? The same, by printing and grade:

```
GET https://pickthetcg.com/pokemon/prices.json
```

→ `cards[]`: `name`, `set`, `number` (e.g. `4/102`), `rarity`, `url`, and `versions[]` with `printing` (Unlimited,
1st Edition, Shadowless, Reverse holo, `Base` for a set with one printing, each also as "…, played"), `grade`, `median`, `low`/`high`,
`sales` and `confidence`. Reprints (2021 Celebrations, 2026 30th Anniversary), other languages and fakes are left out.

```
GET https://pickthetcg.com/cards.json
```

→ two collections: `vibes` (570 cards, rows `[name, slug]`) and `pokemon` (4,906 cards: curated modern grails plus
every vintage card the price guide covers, rows `[name, cardId, imageUrl, set, rarity]`). Find the card the person means. Then, **with their go-ahead**, post their
intent:

```
POST https://intentsmd.com/api/intents
Content-Type: application/json

{ "verb": "want", "title": "Buy A Drop in Attention (Vibes TCG)", "category": "🃏 vibes tcg", "price": "20 USD",
  "contact": "<the person's own mailto: address or https:// link>", "region": "world", "level": "l0",
  "body": "<their note, then the card line>" }
```

→ `{ "id": "…", "url": "/i/…" }`. The intent is live at `https://intentsmd.com/i/{id}`: give the person that link.
Sell and trade both use `"verb": "offer"`, with `Sell …` or `Trade …` in the title. Pokémon cards use
`"category": "🃏 pokemon tcg"` and `(Pokémon TCG)` in the title. A Pokémon card that isn't in the list can still be
posted: name it (and its set) in the title and body, with no card link.

See what's already posted:

```
GET https://intentsmd.com/api/intents?cat=%F0%9F%83%8F%20vibes%20tcg&sort=latest
GET https://intentsmd.com/api/intents?cat=%F0%9F%83%8F%20pokemon%20tcg&sort=latest
```

Full contract, with the exact `body` the board sends and the `.md` document it builds: [/intents.md](/intents.md).

## Rules of engagement

- **Ask before you post.** A post is public and carries the person's contact. Only post an intent the person asked
  for, with their own real contact (never a made-up one, never yours), and show them the title, price and contact
  first.
- **One intent per request.** No test posts, duplicates or bulk lists. The feed allows 10 posts an hour per IP; if
  you hit it, stop.
- **Don't fabricate.** Use the card names, slugs and ids from `/cards.json`. The Pokémon list is curated, not
  complete: if a card isn't there, say so, or post it as the person describes it. An intent's price is someone's
  statement, not a market price: for what a card sells for, use `/vibes/prices.json` or `/pokemon/prices.json`.
- **An intent is not a trade.** Nothing is escrowed or shipped. The two sides settle between themselves.
- Prefer the JSON to the HTML. Every card and price the pages show is in `/cards.json`, `/vibes/prices.json`, `/pokemon/prices.json` and the feed.

## Contract & links

- Intent contract: [/intents.md](/intents.md) · concise guide: [/llms.txt](/llms.txt)
- The shared feed: https://intentsmd.com (read-only MCP: `https://intentsmd.com/mcp`)
- The protocol: https://intentsmd.org
