# Quickstart

> The Boogie Data API and MCP server are launching soon. Reports, fee calculators and methodology on this site are live now.

The API and MCP server are launching soon. These calls show how they will work; the hosts do not answer them yet. [Join the waitlist](/#waitlist) to hear when they open. Placeholders such as `<your key>` are not keys.

## REST

List the datasets. No key needed.

```
curl https://api.boogiedata.com/v1/datasets
```

Each dataset in `data` has `id`, `name`, `domain`, `segments`, `row_count`, `coverage`, `freshness`, `free_window`; the response also carries `as_of` and `pagination`.

List the slices of one dataset. A slice ID has the form `dataset:dimension:value`, for example `cards_auctions:category:pokemon`.
Copy it from this list; never type it from memory. No key needed.

```
curl https://api.boogiedata.com/v1/datasets/cards_auctions/slices
```

Each slice has `id`, `status`, `rows`, `first_date`, `last_date`.

`qualifies` means the slice can be queried; `accruing` means we are still collecting it and it is not sold yet;
`withdrawn` means it is no longer offered.

Read the fixed public sample of one dataset. No key needed.

```
curl https://api.boogiedata.com/v1/datasets/cards_auctions/sample
```

Each row has this shape, plus `as_of` for the response:

```
{"id": <string>, "observed_date": <date>, "value": <number|null>, "source_url": <string>}
```

With a key, query one day of rows for one slice. Keys are not issued until the API opens.

```
curl -H 'X-API-KEY: <your key>' 'https://api.boogiedata.com/v1/datasets/cards_auctions/rows?slice=cards_auctions%3Acategory%3Apokemon&observed_date_gte=2026-01-01&observed_date_lte=2026-01-01&limit=10'
```

Expected response: the same row objects as the sample, plus `next_cursor`. Without a valid key, status 401 with `"error": "invalid_key"`. When `next_cursor` is not null, repeat the call with
`cursor` set to it.

Keys go in the `X-API-KEY` or `Authorization: Bearer` header, never in a URL. 429 responses carry
`Retry-After`; wait that long. All endpoints: [REST API](/docs/rest/).

## MCP

Add the server to Claude Code:

```
claude mcp add --transport http boogie-published https://api.boogiedata.com/mcp/api
```

Or to Cursor (`~/.cursor/mcp.json`):

```json
{
  "mcpServers": {
    "boogie-published": {
      "url": "https://api.boogiedata.com/mcp/api"
    }
  }
}
```

Then ask your agent: "List Boogie Data's datasets and show me the free sample for cards_auctions."

Without a client, call a tool over plain JSON-RPC. The server keeps no session, so a single `tools/call` works
without `initialize`; MCP clients send `initialize` and the protocol headers themselves.

```
curl https://api.boogiedata.com/mcp/api -H 'Content-Type: application/json' -H 'Accept: application/json, text/event-stream' -d '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"get_sample","arguments":{"dataset":"cards_auctions"}}}'
```

Expected response: the REST sample's JSON as the tool result.

Other clients and the tool list: [MCP server](/docs/mcp/).
