---
title: "List productions by performer email"
method: GET
path: "/api/v1/productions"
tags: ["Productions"]
---

# List productions by performer email

`GET /api/v1/productions`

## Request

- Base URL: `https://easy2257.com`
- URL: `https://easy2257.com/api/v1/productions`
- Auth: HTTP bearer

Every production a given performer is documented in, scoped to productions linked to your partner account. This is the right-to-removal lookup: when a performer asks to be removed, one call gives you every piece of content on your platform they appear in.

## Query parameters

- `performerEmail` string, email, required: Required. Matched case-insensitively.
- `status` 'pending_documentation' | 'documented' | 'revoked' | 'takedown_pending' | 'takedown_complete': Filter by documentation status. Defaults to `documented`, so pass an explicit value to see anything else.
- `limit` string: 1 to 200. Default 50.
- `cursor` string: `nextCursor` from the previous page.

## Response `200`

Production list. An empty array means no match, which is not an error.

- ProductionListResponse
  - `productions` object[], required
    - `id` string, required
    - `sceneTitle` string, nullable, required: The production title.
    - `status` 'pending_documentation' | 'documented' | 'revoked' | 'takedown_pending' | 'takedown_complete', required: `pending_documentation`: records not yet complete. `documented`: records on file and a certificate issued. `revoked`: certificate revoked by an actioned takedown. `takedown_pending`: removal request received, under review. `takedown_complete`: content removed, records sealed.
    - `documentedAt` string, date-time, nullable, required
  - `nextCursor` string, nullable, required: Pass back verbatim as `cursor`. null on the last page.

## Other responses

- `400`: `performerEmail` missing. `code` is `missing_parameter`.
- `401`: No `Authorization: Bearer` header, or a key that is unknown, revoked, or expired. The body carries only `error`, never a `code`.
- `403`: Rejected before the handler: a test-mode key (`TEST_MODE_UNAVAILABLE`) or a partner account that is not ACTIVE. Never used for cross-partner access, which returns 404.
- `429`: Rate limit exceeded: 300 requests per 60 seconds per API key, shared across all `/api/v1` endpoints (requests without a `Bearer` key fall back to 60 per 60 seconds per client IP, and a per-address flood ceiling of 1200 per 60 seconds also applies). Honor `Retry-After`.
- `500`: Server error. Retry with exponential backoff.

---

[API](https://skmtc.dev/easy2257/apis/easy2257-partner-api.md) · [All operations](https://skmtc.dev/easy2257/apis/easy2257-partner-api/llms.txt) · [OpenAPI document](https://skmtc.dev/easy2257/apis/easy2257-partner-api/revisions/f880026c1f04?raw)
