# Look up an ISBN

Exact edition lookup. Use this whenever you have an ISBN-10 or ISBN-13.

MCP: `lookup_isbn` `{ "isbn": "9780593135204" }`

## When to use

- The user pasted an ISBN
- You are joining a catalog row that already has an ISBN

Do **not** pass an ISBN as `q` on [search](/docs/search).

## Request

```http
GET /v1/isbn/9780593135204
Authorization: Bearer fds_live_<kid>_<secret>
```

```bash
curl -sS -H "Authorization: Bearer $FDS_API_KEY" \
  https://api.fulldatasets.com/v1/isbn/9780593135204
```

| Path | Required | Notes |
|---|---|---|
| `isbn` | yes | ISBN-10 or ISBN-13. Hyphens and spaces are stripped. Canonicalized to ISBN-13 for lookup. |

## Response `200`

A [book object](/docs/data-model). Check record:

| Field | Value |
|---|---|
| `id` | `fds_ed_37306635333664393039` |
| `work_id` | `fds_wk_61363037333564616531` |
| `title` | `Project Hail Mary` |
| `authors` | `["Andy Weir"]` |
| `isbn13` | `9780593135204` |
| `description` | present |

`X-Cache: HIT` or `MISS`. Point lookups cache 24h after auth.

## Errors

| Status | `code` | When |
|---|---|---|
| `400` | `bad_request` | String is not a valid ISBN |
| `401` | — | Bad or missing key |
| `404` | `not_found` | Valid ISBN, no edition |
| `429` | `rate_limited` | Over 120 req / 60s |

## See also

- [Match](/docs/match) — title, no ISBN
- [Get a book](/docs/books) — you already have `fds_ed_…`
