# V&A Museum API
> The Victoria and Albert Museum (V&A) collection as an API — over 1.2 million objects spanning 5,000 years of art, design and performance, from textiles, ceramics and furniture to fashion, photographs, prints and jewellery. Search and filter the collection by keyword, maker, place of origin or material/technique, optionally limited to objects that carry an image. Fetch any object by its system number for the full record: title, makers, production date, place, materials and techniques, categories and styles, gallery location and high-resolution IIIF imagery. Browse every work by a given maker (e.g. William Morris), or pull a random object. Real museum data, no key needed upstream. Ideal for art and design apps, galleries and slideshows, education and cultural research.

## Authentication
All requests require your oanor API key in the `x-oanor-key` header. Get one at https://www.oanor.com/developer/keys.

```bash
curl -H "x-oanor-key: oanor_live_…" "https://api.oanor.com/vam-api/..."
```

## Pricing
- **Free** (Free) — 11,500 calls/Mo, 2 req/s
- **Starter** ($4/Mo) — 148,000 calls/Mo, 8 req/s
- **Pro** ($16/Mo) — 740,000 calls/Mo, 25 req/s
- **Mega** ($57/Mo) — 3,450,000 calls/Mo, 50 req/s

## Endpoints

### Collection

#### `GET /v1/maker` — Objects by a maker

**Parameters:**
- `name` (query, required, string) — Maker name, e.g. William Morris Example: `William Morris`
- `limit` (query, optional, string) — Page size Example: `20`

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/vam-api/v1/maker?name=William+Morris&limit=20"
```

**Response:**
```json
{
    "data": {
        "count": 20,
        "maker": "William Morris",
        "total": 24195,
        "objects": [
            {
                "date": "ca.1880",
                "image": "https://framemark.vam.ac.uk/collections/2025PL2747/full/!600,600/0/default.jpg",
                "maker": "William Morris",
                "place": "London",
                "title": "Olive and Rose",
                "object_type": "Embroidery",
                "system_number": "O1803073",
                "collection_url": "https://collections.vam.ac.uk/item/O1803073",
                "accession_number": "T.76-2025"
            },
            {
                "date": "1879",
                "image": "https://framemark.vam.ac.uk/collections/2019MG2168/full/!600,600/0/default.jpg",
                "maker": "Morris, William",
                "place": "Great Britain",
                "title": "Curtain ring set",
                "object_type": "Curtain ring set",
                "system_number": "O315342",
                "collection_url": "https://collections.vam.ac.uk/item/O315342",
                "accession_number": "CIRC.80D&E-1966"
            },
            {
                "date": "about 1885",
                "image": "https://framemark.vam.ac.uk/collections/2014GW1189/full/!600,600/0/default.jpg",
                "maker": "Morris, William",
                "place": "London",
                "title": "Back cushion",
                "object_type": "Back cushion",
                "s
…(truncated, see openapi.json for full schema)
```

#### `GET /v1/object` — A single object by system number

**Parameters:**
- `id` (query, required, string) — Object system number, e.g. O35612 Example: `O35612`

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/vam-api/v1/object?id=O35612"
```

**Response:**
```json
{
    "data": {
        "object": {
            "date": "1978",
            "title": "Tiger Toys Bricks",
            "images": [
                "https://framemark.vam.ac.uk/collections/2025PH2269/full/!600,600/0/default.jpg"
            ],
            "makers": [],
            "places": [
                "Thetford"
            ],
            "styles": [],
            "gallery": "006",
            "summary": null,
            "materials": [
                "Card",
                "Wood"
            ],
            "categories": [
                "Toys and games",
                "Education and learning",
                "Children and childhood"
            ],
            "on_display": true,
            "techniques": [
                "Printing"
            ],
            "object_type": "Alphabet block",
            "system_number": "O35612",
            "collection_url": "https://collections.vam.ac.uk/item/O35612",
            "accession_number": "B.276-1993",
            "materials_techniques": "Printed card, wood",
            "physical_description": "Card tray printed in colours to show the title and illustrations of tigers playing with bricks. On the bottom are two grids; one the plan for set T524 and the other the composition of the bricks. The tray holds 12 wooden cubes; stained red, blue, green or yellow and marked with letters of the alphabet, numbers and symbols on each face side; these are in different colours. The whole is sealed with clear plastic."
        }
    
…(truncated, see openapi.json for full schema)
```

#### `GET /v1/random` — A random object (with image)

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/vam-api/v1/random"
```

**Response:**
```json
{
    "data": {
        "object": {
            "date": "ca.1600-1610",
            "image": "https://framemark.vam.ac.uk/collections/2011EV3173/full/!600,600/0/default.jpg",
            "maker": "Unknown",
            "place": "Deccan",
            "title": "Painting",
            "object_type": "Painting",
            "system_number": "O1277505",
            "collection_url": "https://collections.vam.ac.uk/item/O1277505",
            "accession_number": "IS.14A-1913"
        }
    },
    "meta": {
        "timestamp": "2026-06-08T01:18:42.370Z",
        "request_id": "24a6347e-9eba-42c2-8f3b-cf56f633b35d"
    },
    "status": "ok",
    "message": "Random object retrieved successfully",
    "success": true
}
```

#### `GET /v1/search` — Search & filter objects

**Parameters:**
- `q` (query, optional, string) — Keyword, e.g. Raphael Example: `Raphael`
- `maker` (query, optional, string) — Maker/artist name
- `place` (query, optional, string) — Place of origin
- `material` (query, optional, string) — Material or technique
- `images` (query, optional, string) — Set 1 for objects with an image Example: `1`
- `limit` (query, optional, string) — Page size (default 20, max 100) Example: `20`
- `page` (query, optional, string) — Page number Example: `1`

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/vam-api/v1/search?q=Raphael&images=1&limit=20&page=1"
```

**Response:**
```json
{
    "data": {
        "page": 1,
        "count": 20,
        "total": 1825,
        "objects": [
            {
                "date": "1517-1520",
                "image": "https://framemark.vam.ac.uk/collections/2010EJ0362/full/!600,600/0/default.jpg",
                "maker": "Raphael",
                "place": "Italy",
                "title": "St. Paul Preaching at Athens",
                "object_type": "Print",
                "system_number": "O1063091",
                "collection_url": "https://collections.vam.ac.uk/item/O1063091",
                "accession_number": "DYCE.1013"
            },
            {
                "date": "1720",
                "image": "https://framemark.vam.ac.uk/collections/2010EF7209/full/!600,600/0/default.jpg",
                "maker": "Gribelin, Simon (II)",
                "place": "London",
                "title": "The Seven Famous Cartons [sic] of Raphael Urbin",
                "object_type": "Print",
                "system_number": "O239656",
                "collection_url": "https://collections.vam.ac.uk/item/O239656",
                "accession_number": "DYCE.2504"
            },
            {
                "date": "early -  mid 18th century",
                "image": "https://framemark.vam.ac.uk/collections/2010EF7232/full/!600,600/0/default.jpg",
                "maker": "Larmessin, Nicolas (IV)",
                "place": "France",
                "title": "Portrait of Raphael",
                "object_type": "Print
…(truncated, see openapi.json for full schema)
```

### Meta

#### `GET /v1/meta` — Service description & endpoints

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/vam-api/v1/meta"
```

**Response:**
```json
{
    "data": {
        "service": "vam-api",
        "endpoints": {
            "GET /v1/meta": "This document.",
            "GET /v1/maker": "Objects by a maker (name=, e.g. William Morris).",
            "GET /v1/object": "A single object by system number (id=, e.g. O35612).",
            "GET /v1/random": "A random object (with image).",
            "GET /v1/search": "Search/filter objects (q=, maker=, place=, material=, images=1, page=, limit=)."
        },
        "description": "The Victoria and Albert Museum (V&A) collection: search and filter over 1.2 million objects by keyword, maker, place or material (optionally only those with an image), fetch a single object with its full record and IIIF imagery, browse a maker's works and pull a random object. Real museum data, no key."
    },
    "meta": {
        "timestamp": "2026-06-08T01:18:42.686Z",
        "request_id": "2a9cbf60-ba7b-4a05-bea7-949f4b7526ad"
    },
    "status": "ok",
    "message": "Meta",
    "success": true
}
```


---
Marketplace page: https://www.oanor.com/api/vam-api
OpenAPI spec: https://www.oanor.com/api/vam-api/openapi.json
