# 130point API - sold prices (comps) for trading cards and collectibles from eBay, including the real accepted Best Offer price, plus Fanatics Collect (PWCC), Goldin, Heritage, Pristine, MySlabs and Card Hobby sales, by keyword with date, price, sale-type, marketplace and location filters; and live auctions across the same marketplaces. No account.

> Sold listings matching a keyword across eBay (every eBay site, with the accepted price of Best Offer sales and the asking price it was accepted against), Fanatics Collect (formerly PWCC), Goldin, Heritage Auctions, Pristine Auction, MySlabs and Card Hobby: title, sold price and currency, sale type, bids, sale date, image and item link, with the grading company and grade read from the title. Filter by sold date range, price range, sale type (auction, fixed price, accepted best offer), marketplace and item location; graded or raw; sort by most recent or by price; optional conversion to one currency; per-currency min/median/max of the returned sales.
> ReefAPI engine `130point` · 2 endpoints · clean JSON, no scraping or browsers to manage.

## How to call
- **Endpoint:** `POST https://api.reefapi.com/130point/v1/<action>` with a JSON body.
- **Auth:** header `x-api-key: <YOUR_REEFAPI_KEY>` — create one free (1,000 credits, no card): https://reefapi.com/signup
- **Response (every call):** `{ ok: boolean, data: ..., meta: { record_count, credits, ... }, error: { code, message } }` — branch on `ok`. Failed calls are free.
- **One key + one shared credit pool** across every ReefAPI API. Per-call credits are listed on each endpoint below.
- **Use it from an AI agent (MCP):** connect `https://api.reefapi.com/mcp` (remote streamable-http). Clients that add connectors by URL, such as ChatGPT and the Claude app, connect with OAuth 2.1 (the user pastes their key once on a ReefAPI page; discovery at `/.well-known/oauth-protected-resource/mcp`). Config files send the key as `Authorization: Bearer <key>`. `?key=<key>` in the URL also works as a last-resort fallback.

## Endpoints

### POST https://api.reefapi.com/130point/v1/search — 5 credits
Sold listings matching a keyword across eBay (every eBay site, with the accepted price of Best Offer sales and the asking price it was accepted against), Fanatics Collect (formerly PWCC), Goldin, Heritage Auctions, Pristine Auction, MySlabs and Card Hobby: title, sold price and currency, sale type, bids, sale date, image and item link, with the grading company and grade read from the title. Filter by sold date range, price range, sale type (auction, fixed price, accepted best offer), marketplace and item location; graded or raw; sort by most recent or by price; optional conversion to one currency; per-currency min/median/max of the returned sales.

**Parameters:**
- `query` (string, required) — Words to search, as typed into 130point (at least 4 characters): player or character, year, set, card number, grader and grade, e.g. '1986 fleer jordan psa 8'.
- `marketplace` (array, optional) — One or more sources. Omit for all seven. [one of: ebay, fanatics, goldin, heritage, pristine, myslabs, cardhobby]
- `sale_type` (enum, optional) — Only one way of selling. [one of: auction, fixed_price, best_offer]
- `sold_date_from` (string, optional) — Sold on or after (YYYY-MM-DD).
- `sold_date_to` (string, optional) — Sold on or before (YYYY-MM-DD).
- `price_min` (number, optional) — Lowest sold price, in the listing's own currency.
- `price_max` (number, optional) — Highest sold price, in the listing's own currency.
- `item_location` (enum, optional) — Where the eBay item was located (130point's item-location filter). Omit for worldwide. [one of: CA, GB, AU, DE, FR, IT, ES, JP, CN]
- `sort` (enum, optional, default "recent") — Which 200 sales 130point returns, and in what order. [one of: recent, price_desc, price_asc]
- `grader` (string, optional) — Grading company appended to the query the way 130point's own card filters do (PSA, BGS, CGC, SGC, TAG, ...).
- `grade` (string, optional) — Grade appended to the query (e.g. 10, 9.5).
- `graded` (enum, optional, default "any") — Keep graded or raw cards, judged from the title (applied to the returned rows). [one of: any, graded, raw]
- `currency` (string, optional) — Also give every price converted to this currency with 130point's own daily exchange rates (price stays in the listing's own currency).
- `limit` (integer, optional, default 100) — Rows per page (1-200). 130point returns at most 200 per search.
- `page` (integer, optional, default 1) — Page through the (at most 200) results of the search.

**Returns:** query, filters{}, results[]{id, item_id, marketplace (ebay|fanatics|goldin|heritage|pristine|myslabs|cardhobby), marketplace_label, source_label (legacy label such as pwcc, else null), title, sold_price (the price paid; for a Best Offer the ACCEPTED offer), currency, sale_type (auction|fixed_price|best_offer_accepted), best_offer_accepted, list_price (the asking price a Best Offer was accepted against), list_price_currency, best_offer_discount_pct, bids, sold_at (UTC), url (affiliate parameters removed), ebay_site, bid_history_url, image, grading{company, grade, source: title}, price_converted, list_price_converted, converted_currency}, count, total_results, page, limit, has_more, stats{<currency>: {count, min, max, median, mean}}, marketplaces{<marketplace>: count}

**Example request body:**
```json
{
  "query": "charizard base set psa 9",
  "limit": 20
}
```

### POST https://api.reefapi.com/130point/v1/live_search — 2 credits
Live auctions matching a keyword on eBay, Fanatics Collect, Goldin, Heritage Auctions, Pristine Auction and MySlabs: title, current price and currency, bids, end time, image and item link, grading read from the title. Sort by ending soonest or highest price; filter by marketplace and item location; optional conversion to one currency.

**Parameters:**
- `query` (string, required) — Words to search, as typed into 130point (at least 4 characters): player or character, year, set, card number, grader and grade, e.g. '1986 fleer jordan psa 8'.
- `marketplace` (array, optional) — One or more marketplaces. Omit for all six. [one of: ebay, fanatics, goldin, heritage, pristine, myslabs]
- `item_location` (enum, optional) — Where the eBay item was located (130point's item-location filter). Omit for worldwide. [one of: CA, GB, AU, DE, FR, IT, ES, JP, CN]
- `sort` (enum, optional, default "ending_soonest") — Order of results. [one of: ending_soonest, price_desc]
- `grader` (string, optional) — Grading company appended to the query the way 130point's own card filters do (PSA, BGS, CGC, SGC, TAG, ...).
- `grade` (string, optional) — Grade appended to the query (e.g. 10, 9.5).
- `graded` (enum, optional, default "any") — Keep graded or raw cards, judged from the title (applied to the returned rows). [one of: any, graded, raw]
- `currency` (string, optional) — Also give every price converted to this currency with 130point's own daily exchange rates (price stays in the listing's own currency).
- `limit` (integer, optional, default 100) — Rows per page (1-200). 130point returns at most 200 per search.
- `page` (integer, optional, default 1) — Page through the (at most 200) results of the search.

**Returns:** query, filters{}, results[]{id, item_id, marketplace, marketplace_label, title, current_price, currency, listing_type, bids, ends_at (UTC), url, ebay_site, image, grading{company, grade, source}, price_converted, converted_currency}, count, total_results, page, limit, has_more, marketplaces{<marketplace>: count}

**Example request body:**
```json
{
  "query": "charizard psa 10",
  "limit": 20
}
```

## At scale
- **Volume:** 5M+ requests a day, measured at 60 requests a second across the fleet with no
  central bottleneck. Per-key limits are raised for high-volume accounts; volume pricing on request.
- **Missing a source:** tell us a site we do not cover and it becomes an engine. A customer asked
  for bestprice.gr on 21 Sep 2026 and it was in the catalog on 22 Sep.
- **Support:** 2 minute median time from a question in the live chat to the first answer. Setup
  help included, no support tier to buy.
- **One key, one credit pool** across every API. No per-site plans, no separate subscriptions.

## More
- Try it live, no code: https://reefapi.com/playground?engine=130point
- Human docs page: https://reefapi.com/docs/130point
- Overview page: https://reefapi.com/130point-api
- Every ReefAPI API in one file (for your AI): https://reefapi.com/llms-full.txt
