> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://docs.homemediadb.com/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://docs.homemediadb.com/_mcp/server.

# Getting started

> **Warning**
>
> The API is currently in **Beta**. Changes could happen at any point without notice, and uptime and general availability may be sparse.

This is the definitive list of currently available methods for querying the Home Media Database: releases, discs, tapes, titles, franchises, distributors and sets.

HMDb is built with [tRPC](https://trpc.io) rather than as a typical REST API. Each method is a **typed procedure** grouped under a **router** (`release`, `disc`, `search`, …). You can call a procedure two ways:

* **Over plain HTTPS**: a REST-style facade or the native tRPC wire format. No client library needed.
* **With the TypeScript SDK**: install [`@homemediadb/sdk`](/making-requests#typescript-sdk) for full end-to-end typings.

> **Info**
>
> The base URL for every request is `https://api.homemediadb.com/v0`.

## Quickstart

#### Create an API key

Every request, reads included, needs a user API key. Create a free one from your HMDb account, then set it in your shell:

```bash
export HMDB_API_KEY="ak_..."
```

See [Authentication](/authentication) for the full walkthrough.

#### Make your first request

Fetch the static configuration: the mediums, region codes, video standards and packaging styles the client needs to read enum fields:

**`REST facade`**

```bash title="REST facade"
curl https://api.homemediadb.com/v0/configuration/details \
  -H "Authorization: Bearer $HMDB_API_KEY"
```

Every successful response is wrapped in a `result.data` envelope:

```json
{
  "result": {
    "data": {
      "images": { "base_url": "https://img.homemediadb.com/" },
      "mediums": [
        { "code": "UBD", "name": "Ultra-HD Blu-ray Disc", "type": "disc" },
        { "code": "VHS", "name": "Video Home System", "type": "tape" }
      ],
      "video_standards": ["NTSC", "PAL", "SECAM"],
      "region_codes": ["A", "B", "C", "1", "2", "3", "FREE", "NONE"],
      "packaging_styles": ["Keep Case", "Digipak", "Steelbook"]
    }
  }
}
```

Cache this response; it rarely changes.

#### Look something up

Search releases by name, then fetch one by its id:

**`Search, then fetch`**

```bash title="Search, then fetch"
curl "https://api.homemediadb.com/v0/search/releases?query=300" \
  -H "Authorization: Bearer $HMDB_API_KEY"

curl "https://api.homemediadb.com/v0/release/byId?id=895" \
  -H "Authorization: Bearer $HMDB_API_KEY"
```

#### Explore

You're ready to go. Read on, or jump into the reference:

#### [Making requests](/making-requests)

Dialects, pagination, reads vs. writes, and the typed client.

#### [API reference](/api-reference)

Every procedure, with an interactive explorer.