Solo Accounts

Log a content depiction

Registers a piece of content against a verified performer's Easy2257 identity record, creating the cross-reference index required by 28 CFR 75.2 and the per-depiction trail behind 18 U.S.C. § 2257(b)(1). Instrument this call and alert on failure: a silent non-2xx means a published depiction has no record of custody. Idempotent on externalContentId, falling back to contentUrl when you do not send one. Declare the compliance copy (complianceCopy) on this call: Easy2257 keeps a reduced copy of every depiction it records (28 CFR 75.2(a)(1)(iii)). PUT the file to complianceCopyUpload.url, then confirm with POST .../content/{externalContentId}/compliance-copy.

post/api/v1/solo-accounts/{accountId}/content

Request

  • Base URL: https://easy2257.com
  • URL: https://easy2257.com/api/v1/solo-accounts/{accountId}/content
  • Auth: HTTP bearer

Path parameters

accountIdstring required
Example:cmd4k2x9p0001qz8h3v7ftg2a

Request body

contentUrlstring uri required

Required. Canonical URL where the content is hosted. Stored as the per-depiction audit trail.

titlestring required

Required. Human-readable title. Appears in the Easy2257 records view and the compliance archive.

contentTypestring

Media type of the depiction, stored as a label on the record. Defaults to video. Use video, image, audio, or other: those are the four values Easy2257's own views and reports expect. This field is not validated against that list today, so a value outside it is stored exactly as you sent it rather than rejected, and it will read as an unknown type wherever the record is displayed. Treat the four as a contract with your own future self.

externalContentIdstring

Your own content id, and the idempotency key: re-logging the same id returns the existing record. Always send it. It is the only handle you can later address for a takedown, and a depiction logged without one cannot be removed through the API.

platformstring

Optional label. Defaults to your partner company name.

productionDatestring date-time

Optional. Defaults to now. This date starts the 7-year retention clock for the record.

fileHashstring

Optional but recommended. SHA-256 hex digest of the file, which is what satisfies 28 CFR 75.2(f) record integrity.

Example request

{
  "contentUrl": "https://your-cdn.com/videos/abc123.mp4",
  "title": "April 2026 Scene",
  "contentType": "video",
  "externalContentId": "video_abc123",
  "platform": "YourPlatform",
  "productionDate": "2026-04-22T00:00:00Z",
  "fileHash": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
  "complianceCopy": {
    "mimeType": "video/mp4",
    "sizeBytes": 48213377
  }
}

Response

Already logged. Existing record returned, nothing created.

contentLogIdstring required
depictionIdstring required
duplicatetrue required

Always true on this response. The existing record was returned and nothing new was created.

complianceCopy'stored' | 'pending' | 'missing' required

stored: verified and hashed by Easy2257. pending: declared, upload not yet confirmed. missing: not declared (JuicyStarz pipeline only; platform-plan partners must declare).

Example response

{
  "contentLogId": "cmd4k7b2r0003qz8hd1n5wq9e",
  "depictionId": "cmd4k7b2r0004qz8h0m2c8t1v",
  "complianceCopyUpload": {
    "headers": {
      "Content-Type": "video/mp4"
    },
    "expiresAt": "2026-08-21T18:15:00Z",
    "maxBytes": 48213377
  }
}

Changes

No recorded changes to this operation across all 1 revision of this API.