Log Content
POST /api/v1/solo-accounts/{accountId}/content: register a content depiction.
Send the compliance copy. Easy2257 keeps a copy of every depiction it records (28 CFR 75.2(a)(1)(iii)). Declare it on this call as complianceCopy: { mimeType, sizeBytes } using your lowest-resolution rendition (images under 5 MB, video under 500 MB; quality does not matter), PUT the file to complianceCopyUpload.url with the Content-Type header given (the URL is valid 15 minutes and bound to the declared size and type), then call POST /api/v1/solo-accounts/{accountId}/content/{externalContentId}/compliance-copy to confirm. Easy2257 verifies size and type, hashes the bytes itself and fires content_log.copy_stored. Platform-plan partners must declare a copy; the JuicyStarz pipeline may omit it for now and the depiction shows as complianceCopy: "missing". Re-posting the same externalContentId while the copy is pending returns a fresh upload URL.
Always send externalContentId. It is the idempotency key, and it is the only handle you can address later for a takedown. A depiction logged without one cannot be removed through the API.
Authorization
BearerAuth Partner API key from partner.easy2257.com/api-keys. Only ez_live_ keys are accepted. A key beginning with ez_test_ is rejected with 403 and code TEST_MODE_UNAVAILABLE before any handler runs: there is no sandbox, and every handler writes production records, provisions real users, and sends real email. New partner accounts start with a test key, so create a live key before your first call.
In: header
Path Parameters
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
application/json
application/json
application/json
application/json
application/json
application/json
curl -X POST "https://easy2257.com/api/v1/solo-accounts/cmd4k2x9p0001qz8h3v7ftg2a/content" \ -H "Content-Type: application/json" \ -d '{ "contentUrl": "https://your-cdn.com/videos/abc123.mp4", "title": "April 2026 Scene" }'{
"contentLogId": "cmd4k7b2r0003qz8hd1n5wq9e",
"depictionId": "cmd4k7b2r0004qz8h0m2c8t1v",
"duplicate": true,
"complianceCopy": "stored",
"complianceCopyUpload": {
"url": "http://example.com",
"method": "PUT",
"headers": {
"Content-Type": "video/mp4"
},
"expiresAt": "2026-08-21T18:15:00Z",
"maxBytes": 48213377
}
}{
"contentLogId": "cmd4k7b2r0003qz8hd1n5wq9e",
"depictionId": "cmd4k7b2r0004qz8h0m2c8t1v",
"createdAt": "2026-04-22T12:00:00Z",
"complianceCopy": "stored",
"complianceCopyUpload": {
"url": "http://example.com",
"method": "PUT",
"headers": {
"Content-Type": "video/mp4"
},
"expiresAt": "2026-08-21T18:15:00Z",
"maxBytes": 48213377
}
}{
"error": "email, externalUserId, and callbackUrl are required",
"code": "missing_parameter",
"field": "contentType"
}{
"error": "email, externalUserId, and callbackUrl are required",
"code": "missing_parameter",
"field": "contentType"
}{
"error": "email, externalUserId, and callbackUrl are required",
"code": "missing_parameter",
"field": "contentType"
}{
"error": "email, externalUserId, and callbackUrl are required",
"code": "missing_parameter",
"field": "contentType"
}{
"error": "email, externalUserId, and callbackUrl are required",
"code": "missing_parameter",
"field": "contentType"
}{
"error": "email, externalUserId, and callbackUrl are required",
"code": "missing_parameter",
"field": "contentType"
}{
"error": "email, externalUserId, and callbackUrl are required",
"code": "missing_parameter",
"field": "contentType"
}{
"error": "Too many requests. Please slow down.",
"retryAfter": 14,
"limit": 60,
"remaining": 0,
"reset": 1714000060000
}{
"error": "email, externalUserId, and callbackUrl are required",
"code": "missing_parameter",
"field": "contentType"
}