Easy2257
API Reference

Create Collab Scene

POST /api/v1/collab-scenes — Initiate a multi-performer scene with per-scene consent collection.

Uploader is the producer. The person who calls this endpoint is recorded as the 18 U.S.C. § 2257 primary producer. EZ2257 is the Custodian of Records. Content stays on your platform — do not publish until you receive the collab_scene.greenlit webhook.

POST
/api/v1/collab-scenes

Authorization

BearerAuth
AuthorizationBearer <token>

Partner API key. Use ez_test_ prefix for sandbox, ez_live_ for production.

In: header

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

application/json

application/json

application/json

application/json

curl -X POST "https://easy2257.com/api/v1/collab-scenes" \  -H "Content-Type: application/json" \  -d '{    "uploaderUserId": "clu_abc123",    "title": "April 2026 Scene",    "performers": [      {        "email": "performer@example.com"      }    ],    "uploaderAttestation": {      "ip": "1.2.3.4",      "ua": "Mozilla/5.0 (Windows NT 10.0; Win64; x64)...",      "clickedAt": "2026-04-24T18:00:00Z",      "attestationText": "I coordinated this scene, all performers were 18+ and consented on set"    },    "callbackUrl": "https://your-platform.com/webhooks/ez2257"  }'
{
  "sceneId": "cs_xyz789",
  "status": "pending_signatures",
  "performers": [
    {
      "email": "performer@example.com",
      "status": "pending_consent",
      "preEnrolled": true
    }
  ],
  "fees": {
    "sceneFeeCents": 500,
    "onboardingFeeCents": 2500,
    "totalCents": 3000,
    "charged": true,
    "stripeChargeId": "ch_3N..."
  },
  "expiresAt": "2026-05-08T18:00:00Z"
}
{
  "error": "externalUserId is required",
  "code": "missing_parameter"
}
{
  "error": "externalUserId is required",
  "code": "missing_parameter"
}
{
  "error": "externalUserId is required",
  "code": "missing_parameter"
}
{
  "error": "externalUserId is required",
  "code": "missing_parameter"
}