Status: Planned (B5 provider slice)
Updated: May 30, 2026
Official source
- Developer docs: <https://developers.vam.ac.uk/>
- API base: <https://api.vam.ac.uk/v2/>
Key platform facts (from official docs)
- API v2 provides JSON and CSV outputs.
- Core search endpoint pattern: `GET /v2/objects/search`
- Supports rich searching/filtering/restriction/result controls (identifier filters, keyword filters, random, search mode).
- Response commonly includes:
- `info` (including `record_count`, pagination metadata)
- `records`
- V&A supports IIIF:
- Image API base pattern via framemark URLs
- Presentation manifest URLs under `https://iiif.vam.ac.uk/collections/{objectidentifier}/manifest.json`
- Typical image metadata fields in search records:
- `_primaryImageId`
- `_images._iiif_image_base_url`
- `_images._iiif_presentation_url`
Integration goals
- Add V&A as a first-class B5 provider through `provider-interface`.
- Normalize V&A object/search responses into canonical Linked Art JSON-LD boundary records.
- Preserve IIIF image/presentation references for downstream deep-zoom/presentation features.
Proposed implementation slice
Adapter
- `src/adapters/vanda.ts`
- profile descriptor
- identifier + keyword filter request helpers
- object/result normalization to `SourceRecord` + `Artwork` DTO boundary
- IIIF projection helpers (`info.json`, image base URL, presentation manifest URL)
Routes
- `GET /api/vanda/profile`
- `POST /api/vanda/search`
- `POST /api/vanda/object`
- `POST /api/vanda/import`
UI
- add `vanda` source toggle in `/explore`
- preserve attribution/reuse indicators and IIIF manifest links in detail views
Env configuration
- `VANDA_API_BASE` (default: `https://api.vam.ac.uk/v2`)
- `VANDA_MAX_PAGE_SIZE` (default: `100`, hard cap = 100)
- `VANDA_IIIF_IMAGE_BASE` (default: `https://framemark.vam.ac.uk/collections`)
- `VANDA_IIIF_PRESENTATION_BASE` (default: `https://iiif.vam.ac.uk/collections`)
Operational and terms guardrails
- For bulk data workflows, API is not preferred; use dataset/export collaboration where appropriate.
- Respect V&A terms of use for data/images and cite V&A in downstream outputs.
- Preserve source image URLs from provider (no local image copying as default policy unless rights/terms explicitly permit).
Standards mapping + tests
Required rounds (minimum): object/provenance/shared-structure + protocol/search rounds.
Required tests (failing-first):
- `tests/adapters/vanda.test.ts`
- `tests/api/vanda/profile.test.ts`
- `tests/api/vanda/search.test.ts`
- `tests/api/vanda/object.test.ts`
- `tests/api/vanda/import.test.ts`
Provider-specific conformance tests:
- identifier filter path coverage (`id_material`, etc.) and keyword filter path coverage (`kw_*`)
- search mode handling (`broad` vs `narrow`) where supported by route
- IIIF field extraction and URL normalization
Protocol checks (B8):
- OPTIONS/CORS behavior on V&A routes
- response shape conformance
- URI opacity + array-cardinality safety where applicable
Exit criteria
- Adapter + routes + tests green.
- `/explore` can search/import V&A records.
- PR includes Standards Mapping note with round + fixture anchor coverage.