Skip to content

API v2

The Wagtail API v2 is built on Django REST framework and provides programmatic access to Tate's content. This API is being developed on a needs basis and currently serves various teams including e-commerce (events data), collection systems (archive details), and general content access.

Base URL

https://www.tate.org.uk/api/v2/

Available Endpoints

  • Artists: /api/v2/artists/
  • Artworks: /api/v2/artworks/
  • Archives: /api/v2/archives/
  • Events: /api/v2/events/
  • Pages: /api/v2/pages/
  • Images: /api/v2/images/
  • Documents: /api/v2/documents/

Common Parameters

Fields

Use ?fields= to specify which fields to return. Multiple fields can be comma-separated:

?fields=title,url,acno

Use ?fields=* to return all available fields:

?fields=*

Pagination

  • limit: Number of items per page (default: 20)
  • offset: Number of items to skip
?limit=10&offset=20

Ordering

Use ?order= to sort results:

?order=title        # Ascending
?order=-title       # Descending

Artists Endpoint

Overview

Access artist information including biographical data and metadata.

Filtering

  • By CIS ID: ?cis_id=2121

Direct Lookup

Artists can be accessed directly by CIS ID:

/api/v2/artists/2121/

Examples

# Get artist by CIS ID (filter)
GET /api/v2/artists/?cis_id=2121&fields=*

# Get artist by CIS ID (direct lookup)
GET /api/v2/artists/2121/

# Get specific fields
GET /api/v2/artists/?cis_id=2121&fields=title,fc,birthYear,deathYear

Artworks Endpoint

Overview

Access artwork information including accession numbers, dimensions, and metadata.

Filtering

  • By Accession Number: ?acno=T00001

Examples

# Get artwork by accession number
GET /api/v2/artworks/?acno=T00001&fields=*

# Get specific fields
GET /api/v2/artworks/?acno=T00001&fields=title,acno,allArtists,dateText

Archives Endpoint

Overview

Access archive and library collection items with detailed metadata.

Filtering

  • By TGA Reference: ?tga=tga-729-3-1
  • By CIS ID: ?cis_id=279413

Available Fields

When using fields=*, the following fields are available:

  • Basic: title, url, cis_id, acno, tga
  • Descriptive: description, physicalDescription, dimensions, medium
  • Dates: dateText, start_year, end_year, acquisitionYear
  • Access: accessStatus, isByAppointment, isLoanedOut, onDisplayAtTate
  • Related: allArtists, subjects, collection, parentRef
  • Administrative: cisStatus, tate_status, popularity

Examples

# Get archive by TGA reference
GET /api/v2/archives/?tga=tga-729-3-1&fields=*

# Get archive URL by CIS ID
GET /api/v2/archives/?cis_id=279413&fields=url

# Get multiple specific fields
GET /api/v2/archives/?tga=tga-729-3-1&fields=title,acno,description,dateText

Events Endpoint

Overview

Access event information with extensive filtering options for different event types, audiences, and dates.

Filtering

Event Type (?event_type=)

  • exhibition
  • collection_route
  • film
  • tour
  • talk
  • workshop
  • private_view
  • course
  • food_and_drink
  • late
  • performance
  • festival
  • access
  • award
  • conference
  • online

Audience Type (?audience_type=)

  • access
  • adult_learners
  • families
  • general
  • groups
  • members
  • researchers
  • schools
  • young_people

Date Range (?date_range=)

  • from_now - Future events
  • today - Today's events

Price (?price=)

  • free
  • paid

Other Filters

  • Member Exhibition: ?member_current_exhibition=true
  • Gallery Group: ?gallery_group=tate_liverpool

Examples

# Get all future exhibitions
GET /api/v2/events/?event_type=exhibition&date_range=from_now&fields=*

# Get free family events
GET /api/v2/events/?audience_type=families&price=free&fields=title,start_datetime,end_datetime

# Get today's events at Tate Liverpool
GET /api/v2/events/?date_range=today&gallery_group=tate_liverpool&limit=50

Pages / Images / Documents Endpoints

These endpoints are part of Wagtail's core API implementation, please refer to the Wagtail API docs for more information.

Response Format

All endpoints return JSON responses with the following structure:

{
    "meta": {
        "total_count": 150
    },
    "items": [
        {
            "id": 12345,
            "meta": {
                "type": "art.ArtworkPage",
                "detail_url": "http://localhost:8000/api/v2/pages/12345/"
            },
            "title": "Example Artwork",
            // ... other fields
        }
    ]
}

Error Handling

The API returns standard HTTP status codes:

  • 200 OK - Successful request
  • 400 Bad Request - Invalid parameters
  • 404 Not Found - Resource not found
  • 500 Internal Server Error - Server error

Error responses include a descriptive message:

{
    "message": "acno is not supported for this page type"
}

Rate Limiting

The API currently does not enforce rate limiting, but please be considerate with request frequency.

Authentication

The API v2 endpoints are currently public and do not require authentication.

Best Practices

  1. Use field filtering: Only request the fields you need to reduce response size
  2. Implement pagination: Use limit and offset for large result sets
  3. Cache responses: Implement appropriate caching on the client side
  4. Handle errors gracefully: Always check for error responses
  5. Use direct lookups when possible: Direct lookups (e.g., /api/v2/artists/2121/) are more efficient than filtering

Support

For API issues or feature requests, please contact the development team.