Properties
| Name | Type | Description |
|---|---|---|
| contentUrl | string | Required. Canonical URL where the content is hosted. Stored as the per-depiction audit trail. |
| title | string | Required. Human-readable title. Appears in the Easy2257 records view and the compliance archive. |
| contentType | string | 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 fi |
| externalContentId | string | 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 wit |
| platform | string | Optional label. Defaults to your partner company name. |
| productionDate | string | Optional. Defaults to now. This date starts the 7-year retention clock for the record. |
| fileHash | string | Optional but recommended. SHA-256 hex digest of the file, which is what satisfies 28 CFR 75.2(f) record integrity. |
| complianceCopy | object |
JSON Schema
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://artifacts.apis.io/easy2257-com/json-schema/easy2257-com-log-content-body-schema.json",
"title": "LogContentBody",
"x-generated": "2026-11-06",
"x-method": "derived",
"x-generator": "derive-json-schema.py",
"x-source": "openapi/easy2257-com-openapi.yml#/components/schemas/LogContentBody",
"type": "object",
"properties": {
"contentUrl": {
"type": "string",
"format": "uri",
"description": "Required. Canonical URL where the content is hosted. Stored as the per-depiction audit trail."
},
"title": {
"type": "string",
"description": "Required. Human-readable title. Appears in the Easy2257 records view and the compliance archive."
},
"contentType": {
"type": "string",
"default": "video",
"description": "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."
},
"externalContentId": {
"type": "string",
"description": "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."
},
"platform": {
"type": "string",
"description": "Optional label. Defaults to your partner company name."
},
"productionDate": {
"type": "string",
"format": "date-time",
"description": "Optional. Defaults to now. This date starts the 7-year retention clock for the record."
},
"fileHash": {
"type": "string",
"description": "Optional but recommended. SHA-256 hex digest of the file, which is what satisfies 28 CFR 75.2(f) record integrity."
},
"complianceCopy": {
"allOf": [
{
"$ref": "#/$defs/ComplianceCopyDeclaration"
},
{
"description": "The reduced copy Easy2257 keeps as the copy of the depiction. Required for platform-plan partners (400 `COMPLIANCE_COPY_REQUIRED` without it). After the create call, PUT the file to `complianceCopyUpload.url` with the given `Content-Type`, then call the compliance-copy confirm endpoint."
}
]
}
},
"required": [
"contentUrl",
"title"
],
"$defs": {
"ComplianceCopyDeclaration": {
"type": "object",
"properties": {
"mimeType": {
"type": "string",
"enum": [
"image/jpeg",
"image/png",
"image/webp",
"video/mp4",
"video/webm",
"video/quicktime"
],
"description": "Type of the reduced rendition you will upload."
},
"sizeBytes": {
"type": "integer",
"exclusiveMinimum": 0,
"description": "Exact byte length of that rendition. Images up to 5 MB, video up to 500 MB. The upload URL is bound to this length; a PUT of a different length is rejected by storage."
}
},
"required": [
"mimeType",
"sizeBytes"
]
}
}
}
Work with this as data
Every JSON Schema here is available over the APIs.io API and to AI agents over MCP.
MCP server
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
Tools for schemas
4 MCP tools reach this
find_json_schemasBrowse and filter every JSON Schema in the catalog.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.
Call it yourself
curl for this page
This JSON Schema
curl "https://apis.io/api/v1/json-schemas/easy2257-com-log-content-body"
All schemas
curl "https://apis.io/api/v1/json-schemas?limit=25"
Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.
Get an API key
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.