openapi: 3.1.0 info: title: CalmLens API version: 1.0.0 description: Safe media, simple delivery servers: - url: https://api.calmlens.com/v1 paths: /health-check: get: operationId: health-check summary: Health Check description: Check whether the public API worker is responding security: [] responses: "200": description: Successful response headers: X-Request-Id: &a1 description: Identifies this request in CalmLens logs. Include it when you contact support about a response. schema: type: string content: text/plain: schema: type: string const: OK example: OK /projects/{projectId}/folders: get: operationId: get-folders summary: List Folders description: List all asset folders in a project security: - ApiKeyAuth: [] responses: "200": description: Successful response headers: X-Request-Id: *a1 content: application/json: schema: type: object properties: folders: type: array items: type: object properties: id: type: string format: uuid pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-4[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$ description: Unique folder ID projectId: type: string format: uuid pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-4[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$ description: ID of the project that owns the folder parentId: description: ID of the parent folder; `null` for folders at the project root anyOf: - type: string format: uuid pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-4[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$ - type: "null" name: type: string minLength: 1 maxLength: 100 description: Display name, unique among folders with the same parent. 1 to 100 characters, without slashes. createdAt: type: integer minimum: -9007199254740991 maximum: 9007199254740991 description: When the folder was created, in milliseconds since the Unix epoch updatedAt: description: When the folder was last updated, in milliseconds since the Unix epoch type: integer minimum: -9007199254740991 maximum: 9007199254740991 required: - id - projectId - name - createdAt additionalProperties: false description: An organizational folder for assets required: - folders additionalProperties: false "401": description: |- auth/missing-token: Authentication required. Send your project API key in the X-Api-Key header. auth/invalid-api-key: The API key is invalid, revoked or expired. Create a key under Developer → API Keys. headers: X-Request-Id: *a1 content: application/json: schema: type: object required: - message - code - traceId properties: message: type: string code: type: string enum: - auth/missing-token - auth/invalid-api-key traceId: type: string examples: auth-missing-token: summary: Authentication required. Send your project API key in the X-Api-Key header. value: message: Authentication required. Send your project API key in the X-Api-Key header. code: auth/missing-token traceId: request-trace-id auth-invalid-api-key: summary: The API key is invalid, revoked or expired. Create a key under Developer → API Keys. value: message: The API key is invalid, revoked or expired. Create a key under Developer → API Keys. code: auth/invalid-api-key traceId: request-trace-id "403": description: "auth/project-mismatch: This API key belongs to a different project. Use a key created for the project that owns this resource." headers: X-Request-Id: *a1 content: application/json: schema: type: object required: - message - code - traceId properties: message: type: string code: type: string enum: - auth/project-mismatch traceId: type: string examples: auth-project-mismatch: summary: This API key belongs to a different project. Use a key created for the project that owns this resource. value: message: This API key belongs to a different project. Use a key created for the project that owns this resource. code: auth/project-mismatch traceId: request-trace-id "404": description: "project/not-found: Project not found" headers: X-Request-Id: *a1 content: application/json: schema: type: object required: - message - code - traceId properties: message: type: string code: type: string enum: - project/not-found traceId: type: string examples: project-not-found: summary: Project not found value: message: Project not found code: project/not-found traceId: request-trace-id parameters: - name: projectId in: path required: true schema: type: string format: uuid pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$ post: operationId: post-folder summary: Create Folder description: Create an asset folder with an optional parent folder ID security: - ApiKeyAuth: [] responses: "200": description: Successful response headers: X-Request-Id: *a1 content: application/json: schema: type: object properties: id: type: string format: uuid pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-4[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$ description: Unique folder ID projectId: type: string format: uuid pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-4[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$ description: ID of the project that owns the folder parentId: description: ID of the parent folder; `null` for folders at the project root anyOf: - type: string format: uuid pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-4[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$ - type: "null" name: type: string minLength: 1 maxLength: 100 description: Display name, unique among folders with the same parent. 1 to 100 characters, without slashes. createdAt: type: integer minimum: -9007199254740991 maximum: 9007199254740991 description: When the folder was created, in milliseconds since the Unix epoch updatedAt: description: When the folder was last updated, in milliseconds since the Unix epoch type: integer minimum: -9007199254740991 maximum: 9007199254740991 required: - id - projectId - name - createdAt additionalProperties: false description: An organizational folder for assets "401": description: |- auth/missing-token: Authentication required. Send your project API key in the X-Api-Key header. auth/invalid-api-key: The API key is invalid, revoked or expired. Create a key under Developer → API Keys. headers: X-Request-Id: *a1 content: application/json: schema: type: object required: - message - code - traceId properties: message: type: string code: type: string enum: - auth/missing-token - auth/invalid-api-key traceId: type: string examples: auth-missing-token: summary: Authentication required. Send your project API key in the X-Api-Key header. value: message: Authentication required. Send your project API key in the X-Api-Key header. code: auth/missing-token traceId: request-trace-id auth-invalid-api-key: summary: The API key is invalid, revoked or expired. Create a key under Developer → API Keys. value: message: The API key is invalid, revoked or expired. Create a key under Developer → API Keys. code: auth/invalid-api-key traceId: request-trace-id "403": description: "auth/project-mismatch: This API key belongs to a different project. Use a key created for the project that owns this resource." headers: X-Request-Id: *a1 content: application/json: schema: type: object required: - message - code - traceId properties: message: type: string code: type: string enum: - auth/project-mismatch traceId: type: string examples: auth-project-mismatch: summary: This API key belongs to a different project. Use a key created for the project that owns this resource. value: message: This API key belongs to a different project. Use a key created for the project that owns this resource. code: auth/project-mismatch traceId: request-trace-id "404": description: |- project/not-found: Project not found folder/not-found: Folder not found headers: X-Request-Id: *a1 content: application/json: schema: type: object required: - message - code - traceId properties: message: type: string code: type: string enum: - project/not-found - folder/not-found traceId: type: string examples: project-not-found: summary: Project not found value: message: Project not found code: project/not-found traceId: request-trace-id folder-not-found: summary: Folder not found value: message: Folder not found code: folder/not-found traceId: request-trace-id "409": description: "folder/duplicate-name: A folder with this name already exists in this location." headers: X-Request-Id: *a1 content: application/json: schema: type: object required: - message - code - traceId properties: message: type: string code: type: string enum: - folder/duplicate-name traceId: type: string examples: folder-duplicate-name: summary: A folder with this name already exists in this location. value: message: A folder with this name already exists in this location. code: folder/duplicate-name traceId: request-trace-id parameters: - name: projectId in: path required: true schema: type: string format: uuid pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$ requestBody: required: true content: application/json: schema: type: object properties: name: type: string minLength: 1 maxLength: 100 parentId: anyOf: - type: string format: uuid pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$ - type: "null" required: - name /folders/{folderId}: get: operationId: get-folder summary: Get Folder description: Get an asset folder by ID security: - ApiKeyAuth: [] responses: "200": description: Successful response headers: X-Request-Id: *a1 content: application/json: schema: type: object properties: id: type: string format: uuid pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-4[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$ description: Unique folder ID projectId: type: string format: uuid pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-4[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$ description: ID of the project that owns the folder parentId: description: ID of the parent folder; `null` for folders at the project root anyOf: - type: string format: uuid pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-4[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$ - type: "null" name: type: string minLength: 1 maxLength: 100 description: Display name, unique among folders with the same parent. 1 to 100 characters, without slashes. createdAt: type: integer minimum: -9007199254740991 maximum: 9007199254740991 description: When the folder was created, in milliseconds since the Unix epoch updatedAt: description: When the folder was last updated, in milliseconds since the Unix epoch type: integer minimum: -9007199254740991 maximum: 9007199254740991 required: - id - projectId - name - createdAt additionalProperties: false description: An organizational folder for assets "401": description: |- auth/missing-token: Authentication required. Send your project API key in the X-Api-Key header. auth/invalid-api-key: The API key is invalid, revoked or expired. Create a key under Developer → API Keys. headers: X-Request-Id: *a1 content: application/json: schema: type: object required: - message - code - traceId properties: message: type: string code: type: string enum: - auth/missing-token - auth/invalid-api-key traceId: type: string examples: auth-missing-token: summary: Authentication required. Send your project API key in the X-Api-Key header. value: message: Authentication required. Send your project API key in the X-Api-Key header. code: auth/missing-token traceId: request-trace-id auth-invalid-api-key: summary: The API key is invalid, revoked or expired. Create a key under Developer → API Keys. value: message: The API key is invalid, revoked or expired. Create a key under Developer → API Keys. code: auth/invalid-api-key traceId: request-trace-id "403": description: "auth/project-mismatch: This API key belongs to a different project. Use a key created for the project that owns this resource." headers: X-Request-Id: *a1 content: application/json: schema: type: object required: - message - code - traceId properties: message: type: string code: type: string enum: - auth/project-mismatch traceId: type: string examples: auth-project-mismatch: summary: This API key belongs to a different project. Use a key created for the project that owns this resource. value: message: This API key belongs to a different project. Use a key created for the project that owns this resource. code: auth/project-mismatch traceId: request-trace-id "404": description: |- project/not-found: Project not found folder/not-found: Folder not found headers: X-Request-Id: *a1 content: application/json: schema: type: object required: - message - code - traceId properties: message: type: string code: type: string enum: - project/not-found - folder/not-found traceId: type: string examples: project-not-found: summary: Project not found value: message: Project not found code: project/not-found traceId: request-trace-id folder-not-found: summary: Folder not found value: message: Folder not found code: folder/not-found traceId: request-trace-id parameters: - name: folderId in: path required: true schema: type: string format: uuid pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$ patch: operationId: patch-folder summary: Update Folder description: Rename an asset folder security: - ApiKeyAuth: [] responses: "200": description: Successful response headers: X-Request-Id: *a1 content: application/json: schema: type: object properties: id: type: string format: uuid pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-4[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$ description: Unique folder ID projectId: type: string format: uuid pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-4[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$ description: ID of the project that owns the folder parentId: description: ID of the parent folder; `null` for folders at the project root anyOf: - type: string format: uuid pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-4[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$ - type: "null" name: type: string minLength: 1 maxLength: 100 description: Display name, unique among folders with the same parent. 1 to 100 characters, without slashes. createdAt: type: integer minimum: -9007199254740991 maximum: 9007199254740991 description: When the folder was created, in milliseconds since the Unix epoch updatedAt: description: When the folder was last updated, in milliseconds since the Unix epoch type: integer minimum: -9007199254740991 maximum: 9007199254740991 required: - id - projectId - name - createdAt additionalProperties: false description: An organizational folder for assets "401": description: |- auth/missing-token: Authentication required. Send your project API key in the X-Api-Key header. auth/invalid-api-key: The API key is invalid, revoked or expired. Create a key under Developer → API Keys. headers: X-Request-Id: *a1 content: application/json: schema: type: object required: - message - code - traceId properties: message: type: string code: type: string enum: - auth/missing-token - auth/invalid-api-key traceId: type: string examples: auth-missing-token: summary: Authentication required. Send your project API key in the X-Api-Key header. value: message: Authentication required. Send your project API key in the X-Api-Key header. code: auth/missing-token traceId: request-trace-id auth-invalid-api-key: summary: The API key is invalid, revoked or expired. Create a key under Developer → API Keys. value: message: The API key is invalid, revoked or expired. Create a key under Developer → API Keys. code: auth/invalid-api-key traceId: request-trace-id "403": description: "auth/project-mismatch: This API key belongs to a different project. Use a key created for the project that owns this resource." headers: X-Request-Id: *a1 content: application/json: schema: type: object required: - message - code - traceId properties: message: type: string code: type: string enum: - auth/project-mismatch traceId: type: string examples: auth-project-mismatch: summary: This API key belongs to a different project. Use a key created for the project that owns this resource. value: message: This API key belongs to a different project. Use a key created for the project that owns this resource. code: auth/project-mismatch traceId: request-trace-id "404": description: |- project/not-found: Project not found folder/not-found: Folder not found headers: X-Request-Id: *a1 content: application/json: schema: type: object required: - message - code - traceId properties: message: type: string code: type: string enum: - project/not-found - folder/not-found traceId: type: string examples: project-not-found: summary: Project not found value: message: Project not found code: project/not-found traceId: request-trace-id folder-not-found: summary: Folder not found value: message: Folder not found code: folder/not-found traceId: request-trace-id "409": description: "folder/duplicate-name: A folder with this name already exists in this location." headers: X-Request-Id: *a1 content: application/json: schema: type: object required: - message - code - traceId properties: message: type: string code: type: string enum: - folder/duplicate-name traceId: type: string examples: folder-duplicate-name: summary: A folder with this name already exists in this location. value: message: A folder with this name already exists in this location. code: folder/duplicate-name traceId: request-trace-id parameters: - name: folderId in: path required: true schema: type: string format: uuid pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$ requestBody: required: true content: application/json: schema: type: object properties: name: type: string minLength: 1 maxLength: 100 delete: operationId: delete-folder summary: Delete Folder description: Delete an empty asset folder by ID security: - ApiKeyAuth: [] responses: "200": description: Successful response headers: X-Request-Id: *a1 content: application/json: schema: type: object properties: {} additionalProperties: false "401": description: |- auth/missing-token: Authentication required. Send your project API key in the X-Api-Key header. auth/invalid-api-key: The API key is invalid, revoked or expired. Create a key under Developer → API Keys. headers: X-Request-Id: *a1 content: application/json: schema: type: object required: - message - code - traceId properties: message: type: string code: type: string enum: - auth/missing-token - auth/invalid-api-key traceId: type: string examples: auth-missing-token: summary: Authentication required. Send your project API key in the X-Api-Key header. value: message: Authentication required. Send your project API key in the X-Api-Key header. code: auth/missing-token traceId: request-trace-id auth-invalid-api-key: summary: The API key is invalid, revoked or expired. Create a key under Developer → API Keys. value: message: The API key is invalid, revoked or expired. Create a key under Developer → API Keys. code: auth/invalid-api-key traceId: request-trace-id "403": description: "auth/project-mismatch: This API key belongs to a different project. Use a key created for the project that owns this resource." headers: X-Request-Id: *a1 content: application/json: schema: type: object required: - message - code - traceId properties: message: type: string code: type: string enum: - auth/project-mismatch traceId: type: string examples: auth-project-mismatch: summary: This API key belongs to a different project. Use a key created for the project that owns this resource. value: message: This API key belongs to a different project. Use a key created for the project that owns this resource. code: auth/project-mismatch traceId: request-trace-id "404": description: |- project/not-found: Project not found folder/not-found: Folder not found headers: X-Request-Id: *a1 content: application/json: schema: type: object required: - message - code - traceId properties: message: type: string code: type: string enum: - project/not-found - folder/not-found traceId: type: string examples: project-not-found: summary: Project not found value: message: Project not found code: project/not-found traceId: request-trace-id folder-not-found: summary: Folder not found value: message: Folder not found code: folder/not-found traceId: request-trace-id "409": description: "folder/not-empty: Folder must be empty before it can be deleted." headers: X-Request-Id: *a1 content: application/json: schema: type: object required: - message - code - traceId properties: message: type: string code: type: string enum: - folder/not-empty traceId: type: string examples: folder-not-empty: summary: Folder must be empty before it can be deleted. value: message: Folder must be empty before it can be deleted. code: folder/not-empty traceId: request-trace-id parameters: - name: folderId in: path required: true schema: type: string format: uuid pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$ /folders/{folderId}/move: post: operationId: move-folder summary: Move Folder description: Move a folder under another folder, or to the project root security: - ApiKeyAuth: [] responses: "200": description: Successful response headers: X-Request-Id: *a1 content: application/json: schema: type: object properties: id: type: string format: uuid pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-4[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$ description: Unique folder ID projectId: type: string format: uuid pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-4[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$ description: ID of the project that owns the folder parentId: description: ID of the parent folder; `null` for folders at the project root anyOf: - type: string format: uuid pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-4[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$ - type: "null" name: type: string minLength: 1 maxLength: 100 description: Display name, unique among folders with the same parent. 1 to 100 characters, without slashes. createdAt: type: integer minimum: -9007199254740991 maximum: 9007199254740991 description: When the folder was created, in milliseconds since the Unix epoch updatedAt: description: When the folder was last updated, in milliseconds since the Unix epoch type: integer minimum: -9007199254740991 maximum: 9007199254740991 required: - id - projectId - name - createdAt additionalProperties: false description: An organizational folder for assets "401": description: |- auth/missing-token: Authentication required. Send your project API key in the X-Api-Key header. auth/invalid-api-key: The API key is invalid, revoked or expired. Create a key under Developer → API Keys. headers: X-Request-Id: *a1 content: application/json: schema: type: object required: - message - code - traceId properties: message: type: string code: type: string enum: - auth/missing-token - auth/invalid-api-key traceId: type: string examples: auth-missing-token: summary: Authentication required. Send your project API key in the X-Api-Key header. value: message: Authentication required. Send your project API key in the X-Api-Key header. code: auth/missing-token traceId: request-trace-id auth-invalid-api-key: summary: The API key is invalid, revoked or expired. Create a key under Developer → API Keys. value: message: The API key is invalid, revoked or expired. Create a key under Developer → API Keys. code: auth/invalid-api-key traceId: request-trace-id "403": description: "auth/project-mismatch: This API key belongs to a different project. Use a key created for the project that owns this resource." headers: X-Request-Id: *a1 content: application/json: schema: type: object required: - message - code - traceId properties: message: type: string code: type: string enum: - auth/project-mismatch traceId: type: string examples: auth-project-mismatch: summary: This API key belongs to a different project. Use a key created for the project that owns this resource. value: message: This API key belongs to a different project. Use a key created for the project that owns this resource. code: auth/project-mismatch traceId: request-trace-id "404": description: "folder/not-found: Folder not found" headers: X-Request-Id: *a1 content: application/json: schema: type: object required: - message - code - traceId properties: message: type: string code: type: string enum: - folder/not-found traceId: type: string examples: folder-not-found: summary: Folder not found value: message: Folder not found code: folder/not-found traceId: request-trace-id "409": description: |- folder/duplicate-name: A folder with this name already exists in this location. folder/parent-cycle: A folder cannot be moved inside itself or one of its descendants. headers: X-Request-Id: *a1 content: application/json: schema: type: object required: - message - code - traceId properties: message: type: string code: type: string enum: - folder/duplicate-name - folder/parent-cycle traceId: type: string examples: folder-duplicate-name: summary: A folder with this name already exists in this location. value: message: A folder with this name already exists in this location. code: folder/duplicate-name traceId: request-trace-id folder-parent-cycle: summary: A folder cannot be moved inside itself or one of its descendants. value: message: A folder cannot be moved inside itself or one of its descendants. code: folder/parent-cycle traceId: request-trace-id parameters: - name: folderId in: path required: true schema: type: string format: uuid pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$ requestBody: required: true content: application/json: schema: type: object properties: parentId: anyOf: - type: string format: uuid pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$ - type: "null" required: - parentId /projects/{projectId}/assets: post: operationId: post-asset summary: Create Asset description: Upload a new asset to a project. Direct image uploads must be smaller than 10MB. Images from 10MB through 20MB must use multipart upload; CalmLens accumulates parts and enforces the final total, and checks `totalSizeInBytes` up front when you send it. Retained multipart image originals are served through CalmLens CDN URLs. Send an `Idempotency-Key` header to retry safely without creating a second asset. security: - ApiKeyAuth: [] responses: "200": description: Successful response headers: X-Request-Id: *a1 Idempotent-Replayed: &a2 description: "`true` when this response was saved from an earlier request with the same `Idempotency-Key`." schema: type: string enum: - "true" content: application/json: schema: type: object properties: id: type: string format: uuid pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-4[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$ description: Unique asset ID projectId: type: string format: uuid pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-4[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$ description: ID of the project that owns the asset sizeInBytes: description: Size of the uploaded content in bytes type: - number - "null" userId: description: ID of the user whose account created the asset anyOf: - {} - type: "null" parentId: description: ID of the parent asset for child assets CalmLens extracts during processing, such as images in a document or OCR text. `null` for uploaded assets. anyOf: - type: string format: uuid pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-4[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$ - type: "null" folderId: anyOf: - type: string format: uuid pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-4[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$ - type: "null" description: Folder containing the asset createdAt: type: integer minimum: -9007199254740991 maximum: 9007199254740991 description: When the asset was created, in milliseconds since the Unix epoch updatedAt: description: When the asset was last updated, in milliseconds since the Unix epoch type: integer minimum: -9007199254740991 maximum: 9007199254740991 checksums: description: Digests of the uploaded content anyOf: - type: object properties: md5: description: MD5 digest of the uploaded content type: - string - "null" sha1: description: SHA-1 digest of the uploaded content type: - string - "null" sha256: description: SHA-256 digest of the uploaded content type: - string - "null" sha384: description: SHA-384 digest of the uploaded content type: - string - "null" sha512: description: SHA-512 digest of the uploaded content type: - string - "null" additionalProperties: false - type: "null" imageData: description: Image properties, for image assets anyOf: - type: object properties: perceptualHash: description: Perceptual hash used to match visually similar images type: - string - "null" width: description: Image width in pixels anyOf: - type: integer exclusiveMinimum: 0 maximum: 9007199254740991 - type: "null" height: description: Image height in pixels anyOf: - type: integer exclusiveMinimum: 0 maximum: 9007199254740991 - type: "null" additionalProperties: false - type: "null" documentData: description: Document properties, for documents anyOf: - type: object properties: {} additionalProperties: false - type: "null" name: description: Name of the asset fileFormat: description: MIME type of the stored content anyOf: - {} - type: "null" fileExtension: description: File extension of the stored content anyOf: - {} - type: "null" description: anyOf: - {} - type: "null" description: Optional description of the asset externalId: anyOf: - {} - type: "null" description: External identifier for the asset externalUrl: anyOf: - type: string format: uri - type: "null" description: External URL associated with the asset previewImage: description: Browser-friendly preview generated for images, documents and websites anyOf: - type: object properties: id: anyOf: - {} - type: "null" description: Identifier of the stored preview image fileFormat: anyOf: - {} - type: "null" description: File format of the preview, such as `webp` thumbhash: anyOf: - {} - type: "null" description: ThumbHash placeholder you can render while the preview loads averageColor: anyOf: - {} - type: "null" description: Average color of the preview width: anyOf: - type: integer exclusiveMinimum: 0 maximum: 9007199254740991 - type: "null" description: Preview width in pixels height: anyOf: - type: integer exclusiveMinimum: 0 maximum: 9007199254740991 - type: "null" description: Preview height in pixels required: - id - fileFormat - thumbhash - averageColor - width - height additionalProperties: false - type: "null" storageId: description: Internal storage key of the retained content; `null` when nothing is stored anyOf: - {} - type: "null" uploadPartsReceived: description: Number of parts received so far for a multipart upload anyOf: - type: integer minimum: -9007199254740991 maximum: 9007199254740991 - type: "null" type: type: string enum: - image - video - audio - plaintext-document - multimedia-document - website - file description: Asset type, detected from the content's MIME type metadata: anyOf: - type: array items: type: object properties: id: description: Identifier for the metadata item value: $ref: "#/paths/~1projects~1{projectId}~1assets/post/responses/200/content/application~1json/schema/$defs/__schema0" description: Value of the metadata item required: - id - value additionalProperties: false description: A metadata item with an ID and value - type: "null" description: List of custom metadata items for the asset tags: anyOf: - type: array items: {} - type: "null" description: Array of tags for the asset report: description: Moderation report, set once classification finishes. See [Report format](/docs/guides/moderation-reports). anyOf: - type: object properties: processedAt: type: number categories: type: object properties: sexual: oneOf: - type: object properties: status: type: string const: evaluated likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely score: type: number minimum: 0 maximum: 1 qualifiers: type: object propertyNames: type: string enum: - nudity - sexual-activity - explicit-sexual-language - sexual-solicitation - physical-attack - violent-threat - violent-preparation - violent-encouragement - injury - death - graphic - self-harm-thoughts - self-harm-preparation - self-harm-act - self-harm-methods - self-harm-encouragement - personal-abuse - targeted-intimidation - harassment-threat - sexual-harassment - harassment-encouragement - identity-abuse - dehumanization - identity-inferiority - discriminatory-exclusion - hate-threat - criminal-demonstration - criminal-preparation - criminal-request - criminal-instructions - criminal-promotion - historical - documentary - fictional - support-prevention additionalProperties: oneOf: - type: object properties: status: type: string const: evaluated score: type: number minimum: 0 maximum: 1 scopeScore: type: number minimum: 0 maximum: 1 likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely required: - status - score - likelihood additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable required: - status - reason additionalProperties: false required: - status - likelihood - score additionalProperties: false - type: object properties: status: type: string const: partial likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely score: type: number minimum: 0 maximum: 1 qualifiers: type: object propertyNames: type: string enum: - nudity - sexual-activity - explicit-sexual-language - sexual-solicitation - physical-attack - violent-threat - violent-preparation - violent-encouragement - injury - death - graphic - self-harm-thoughts - self-harm-preparation - self-harm-act - self-harm-methods - self-harm-encouragement - personal-abuse - targeted-intimidation - harassment-threat - sexual-harassment - harassment-encouragement - identity-abuse - dehumanization - identity-inferiority - discriminatory-exclusion - hate-threat - criminal-demonstration - criminal-preparation - criminal-request - criminal-instructions - criminal-promotion - historical - documentary - fictional - support-prevention additionalProperties: oneOf: - type: object properties: status: type: string const: evaluated score: type: number minimum: 0 maximum: 1 scopeScore: type: number minimum: 0 maximum: 1 likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely required: - status - score - likelihood additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable required: - status - reason additionalProperties: false required: - status - likelihood - score additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable qualifiers: type: object propertyNames: type: string enum: - nudity - sexual-activity - explicit-sexual-language - sexual-solicitation - physical-attack - violent-threat - violent-preparation - violent-encouragement - injury - death - graphic - self-harm-thoughts - self-harm-preparation - self-harm-act - self-harm-methods - self-harm-encouragement - personal-abuse - targeted-intimidation - harassment-threat - sexual-harassment - harassment-encouragement - identity-abuse - dehumanization - identity-inferiority - discriminatory-exclusion - hate-threat - criminal-demonstration - criminal-preparation - criminal-request - criminal-instructions - criminal-promotion - historical - documentary - fictional - support-prevention additionalProperties: oneOf: - type: object properties: status: type: string const: evaluated score: type: number minimum: 0 maximum: 1 scopeScore: type: number minimum: 0 maximum: 1 likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely required: - status - score - likelihood additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable required: - status - reason additionalProperties: false required: - status - reason additionalProperties: false violence: oneOf: - type: object properties: status: type: string const: evaluated likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely score: type: number minimum: 0 maximum: 1 qualifiers: type: object propertyNames: type: string enum: - nudity - sexual-activity - explicit-sexual-language - sexual-solicitation - physical-attack - violent-threat - violent-preparation - violent-encouragement - injury - death - graphic - self-harm-thoughts - self-harm-preparation - self-harm-act - self-harm-methods - self-harm-encouragement - personal-abuse - targeted-intimidation - harassment-threat - sexual-harassment - harassment-encouragement - identity-abuse - dehumanization - identity-inferiority - discriminatory-exclusion - hate-threat - criminal-demonstration - criminal-preparation - criminal-request - criminal-instructions - criminal-promotion - historical - documentary - fictional - support-prevention additionalProperties: oneOf: - type: object properties: status: type: string const: evaluated score: type: number minimum: 0 maximum: 1 scopeScore: type: number minimum: 0 maximum: 1 likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely required: - status - score - likelihood additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable required: - status - reason additionalProperties: false required: - status - likelihood - score additionalProperties: false - type: object properties: status: type: string const: partial likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely score: type: number minimum: 0 maximum: 1 qualifiers: type: object propertyNames: type: string enum: - nudity - sexual-activity - explicit-sexual-language - sexual-solicitation - physical-attack - violent-threat - violent-preparation - violent-encouragement - injury - death - graphic - self-harm-thoughts - self-harm-preparation - self-harm-act - self-harm-methods - self-harm-encouragement - personal-abuse - targeted-intimidation - harassment-threat - sexual-harassment - harassment-encouragement - identity-abuse - dehumanization - identity-inferiority - discriminatory-exclusion - hate-threat - criminal-demonstration - criminal-preparation - criminal-request - criminal-instructions - criminal-promotion - historical - documentary - fictional - support-prevention additionalProperties: oneOf: - type: object properties: status: type: string const: evaluated score: type: number minimum: 0 maximum: 1 scopeScore: type: number minimum: 0 maximum: 1 likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely required: - status - score - likelihood additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable required: - status - reason additionalProperties: false required: - status - likelihood - score additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable qualifiers: type: object propertyNames: type: string enum: - nudity - sexual-activity - explicit-sexual-language - sexual-solicitation - physical-attack - violent-threat - violent-preparation - violent-encouragement - injury - death - graphic - self-harm-thoughts - self-harm-preparation - self-harm-act - self-harm-methods - self-harm-encouragement - personal-abuse - targeted-intimidation - harassment-threat - sexual-harassment - harassment-encouragement - identity-abuse - dehumanization - identity-inferiority - discriminatory-exclusion - hate-threat - criminal-demonstration - criminal-preparation - criminal-request - criminal-instructions - criminal-promotion - historical - documentary - fictional - support-prevention additionalProperties: oneOf: - type: object properties: status: type: string const: evaluated score: type: number minimum: 0 maximum: 1 scopeScore: type: number minimum: 0 maximum: 1 likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely required: - status - score - likelihood additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable required: - status - reason additionalProperties: false required: - status - reason additionalProperties: false self-harm: oneOf: - type: object properties: status: type: string const: evaluated likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely score: type: number minimum: 0 maximum: 1 qualifiers: type: object propertyNames: type: string enum: - nudity - sexual-activity - explicit-sexual-language - sexual-solicitation - physical-attack - violent-threat - violent-preparation - violent-encouragement - injury - death - graphic - self-harm-thoughts - self-harm-preparation - self-harm-act - self-harm-methods - self-harm-encouragement - personal-abuse - targeted-intimidation - harassment-threat - sexual-harassment - harassment-encouragement - identity-abuse - dehumanization - identity-inferiority - discriminatory-exclusion - hate-threat - criminal-demonstration - criminal-preparation - criminal-request - criminal-instructions - criminal-promotion - historical - documentary - fictional - support-prevention additionalProperties: oneOf: - type: object properties: status: type: string const: evaluated score: type: number minimum: 0 maximum: 1 scopeScore: type: number minimum: 0 maximum: 1 likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely required: - status - score - likelihood additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable required: - status - reason additionalProperties: false required: - status - likelihood - score additionalProperties: false - type: object properties: status: type: string const: partial likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely score: type: number minimum: 0 maximum: 1 qualifiers: type: object propertyNames: type: string enum: - nudity - sexual-activity - explicit-sexual-language - sexual-solicitation - physical-attack - violent-threat - violent-preparation - violent-encouragement - injury - death - graphic - self-harm-thoughts - self-harm-preparation - self-harm-act - self-harm-methods - self-harm-encouragement - personal-abuse - targeted-intimidation - harassment-threat - sexual-harassment - harassment-encouragement - identity-abuse - dehumanization - identity-inferiority - discriminatory-exclusion - hate-threat - criminal-demonstration - criminal-preparation - criminal-request - criminal-instructions - criminal-promotion - historical - documentary - fictional - support-prevention additionalProperties: oneOf: - type: object properties: status: type: string const: evaluated score: type: number minimum: 0 maximum: 1 scopeScore: type: number minimum: 0 maximum: 1 likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely required: - status - score - likelihood additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable required: - status - reason additionalProperties: false required: - status - likelihood - score additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable qualifiers: type: object propertyNames: type: string enum: - nudity - sexual-activity - explicit-sexual-language - sexual-solicitation - physical-attack - violent-threat - violent-preparation - violent-encouragement - injury - death - graphic - self-harm-thoughts - self-harm-preparation - self-harm-act - self-harm-methods - self-harm-encouragement - personal-abuse - targeted-intimidation - harassment-threat - sexual-harassment - harassment-encouragement - identity-abuse - dehumanization - identity-inferiority - discriminatory-exclusion - hate-threat - criminal-demonstration - criminal-preparation - criminal-request - criminal-instructions - criminal-promotion - historical - documentary - fictional - support-prevention additionalProperties: oneOf: - type: object properties: status: type: string const: evaluated score: type: number minimum: 0 maximum: 1 scopeScore: type: number minimum: 0 maximum: 1 likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely required: - status - score - likelihood additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable required: - status - reason additionalProperties: false required: - status - reason additionalProperties: false harassment: oneOf: - type: object properties: status: type: string const: evaluated likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely score: type: number minimum: 0 maximum: 1 qualifiers: type: object propertyNames: type: string enum: - nudity - sexual-activity - explicit-sexual-language - sexual-solicitation - physical-attack - violent-threat - violent-preparation - violent-encouragement - injury - death - graphic - self-harm-thoughts - self-harm-preparation - self-harm-act - self-harm-methods - self-harm-encouragement - personal-abuse - targeted-intimidation - harassment-threat - sexual-harassment - harassment-encouragement - identity-abuse - dehumanization - identity-inferiority - discriminatory-exclusion - hate-threat - criminal-demonstration - criminal-preparation - criminal-request - criminal-instructions - criminal-promotion - historical - documentary - fictional - support-prevention additionalProperties: oneOf: - type: object properties: status: type: string const: evaluated score: type: number minimum: 0 maximum: 1 scopeScore: type: number minimum: 0 maximum: 1 likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely required: - status - score - likelihood additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable required: - status - reason additionalProperties: false required: - status - likelihood - score additionalProperties: false - type: object properties: status: type: string const: partial likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely score: type: number minimum: 0 maximum: 1 qualifiers: type: object propertyNames: type: string enum: - nudity - sexual-activity - explicit-sexual-language - sexual-solicitation - physical-attack - violent-threat - violent-preparation - violent-encouragement - injury - death - graphic - self-harm-thoughts - self-harm-preparation - self-harm-act - self-harm-methods - self-harm-encouragement - personal-abuse - targeted-intimidation - harassment-threat - sexual-harassment - harassment-encouragement - identity-abuse - dehumanization - identity-inferiority - discriminatory-exclusion - hate-threat - criminal-demonstration - criminal-preparation - criminal-request - criminal-instructions - criminal-promotion - historical - documentary - fictional - support-prevention additionalProperties: oneOf: - type: object properties: status: type: string const: evaluated score: type: number minimum: 0 maximum: 1 scopeScore: type: number minimum: 0 maximum: 1 likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely required: - status - score - likelihood additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable required: - status - reason additionalProperties: false required: - status - likelihood - score additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable qualifiers: type: object propertyNames: type: string enum: - nudity - sexual-activity - explicit-sexual-language - sexual-solicitation - physical-attack - violent-threat - violent-preparation - violent-encouragement - injury - death - graphic - self-harm-thoughts - self-harm-preparation - self-harm-act - self-harm-methods - self-harm-encouragement - personal-abuse - targeted-intimidation - harassment-threat - sexual-harassment - harassment-encouragement - identity-abuse - dehumanization - identity-inferiority - discriminatory-exclusion - hate-threat - criminal-demonstration - criminal-preparation - criminal-request - criminal-instructions - criminal-promotion - historical - documentary - fictional - support-prevention additionalProperties: oneOf: - type: object properties: status: type: string const: evaluated score: type: number minimum: 0 maximum: 1 scopeScore: type: number minimum: 0 maximum: 1 likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely required: - status - score - likelihood additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable required: - status - reason additionalProperties: false required: - status - reason additionalProperties: false hate: oneOf: - type: object properties: status: type: string const: evaluated likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely score: type: number minimum: 0 maximum: 1 qualifiers: type: object propertyNames: type: string enum: - nudity - sexual-activity - explicit-sexual-language - sexual-solicitation - physical-attack - violent-threat - violent-preparation - violent-encouragement - injury - death - graphic - self-harm-thoughts - self-harm-preparation - self-harm-act - self-harm-methods - self-harm-encouragement - personal-abuse - targeted-intimidation - harassment-threat - sexual-harassment - harassment-encouragement - identity-abuse - dehumanization - identity-inferiority - discriminatory-exclusion - hate-threat - criminal-demonstration - criminal-preparation - criminal-request - criminal-instructions - criminal-promotion - historical - documentary - fictional - support-prevention additionalProperties: oneOf: - type: object properties: status: type: string const: evaluated score: type: number minimum: 0 maximum: 1 scopeScore: type: number minimum: 0 maximum: 1 likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely required: - status - score - likelihood additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable required: - status - reason additionalProperties: false required: - status - likelihood - score additionalProperties: false - type: object properties: status: type: string const: partial likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely score: type: number minimum: 0 maximum: 1 qualifiers: type: object propertyNames: type: string enum: - nudity - sexual-activity - explicit-sexual-language - sexual-solicitation - physical-attack - violent-threat - violent-preparation - violent-encouragement - injury - death - graphic - self-harm-thoughts - self-harm-preparation - self-harm-act - self-harm-methods - self-harm-encouragement - personal-abuse - targeted-intimidation - harassment-threat - sexual-harassment - harassment-encouragement - identity-abuse - dehumanization - identity-inferiority - discriminatory-exclusion - hate-threat - criminal-demonstration - criminal-preparation - criminal-request - criminal-instructions - criminal-promotion - historical - documentary - fictional - support-prevention additionalProperties: oneOf: - type: object properties: status: type: string const: evaluated score: type: number minimum: 0 maximum: 1 scopeScore: type: number minimum: 0 maximum: 1 likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely required: - status - score - likelihood additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable required: - status - reason additionalProperties: false required: - status - likelihood - score additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable qualifiers: type: object propertyNames: type: string enum: - nudity - sexual-activity - explicit-sexual-language - sexual-solicitation - physical-attack - violent-threat - violent-preparation - violent-encouragement - injury - death - graphic - self-harm-thoughts - self-harm-preparation - self-harm-act - self-harm-methods - self-harm-encouragement - personal-abuse - targeted-intimidation - harassment-threat - sexual-harassment - harassment-encouragement - identity-abuse - dehumanization - identity-inferiority - discriminatory-exclusion - hate-threat - criminal-demonstration - criminal-preparation - criminal-request - criminal-instructions - criminal-promotion - historical - documentary - fictional - support-prevention additionalProperties: oneOf: - type: object properties: status: type: string const: evaluated score: type: number minimum: 0 maximum: 1 scopeScore: type: number minimum: 0 maximum: 1 likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely required: - status - score - likelihood additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable required: - status - reason additionalProperties: false required: - status - reason additionalProperties: false criminal-activity: oneOf: - type: object properties: status: type: string const: evaluated likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely score: type: number minimum: 0 maximum: 1 qualifiers: type: object propertyNames: type: string enum: - nudity - sexual-activity - explicit-sexual-language - sexual-solicitation - physical-attack - violent-threat - violent-preparation - violent-encouragement - injury - death - graphic - self-harm-thoughts - self-harm-preparation - self-harm-act - self-harm-methods - self-harm-encouragement - personal-abuse - targeted-intimidation - harassment-threat - sexual-harassment - harassment-encouragement - identity-abuse - dehumanization - identity-inferiority - discriminatory-exclusion - hate-threat - criminal-demonstration - criminal-preparation - criminal-request - criminal-instructions - criminal-promotion - historical - documentary - fictional - support-prevention additionalProperties: oneOf: - type: object properties: status: type: string const: evaluated score: type: number minimum: 0 maximum: 1 scopeScore: type: number minimum: 0 maximum: 1 likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely required: - status - score - likelihood additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable required: - status - reason additionalProperties: false required: - status - likelihood - score additionalProperties: false - type: object properties: status: type: string const: partial likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely score: type: number minimum: 0 maximum: 1 qualifiers: type: object propertyNames: type: string enum: - nudity - sexual-activity - explicit-sexual-language - sexual-solicitation - physical-attack - violent-threat - violent-preparation - violent-encouragement - injury - death - graphic - self-harm-thoughts - self-harm-preparation - self-harm-act - self-harm-methods - self-harm-encouragement - personal-abuse - targeted-intimidation - harassment-threat - sexual-harassment - harassment-encouragement - identity-abuse - dehumanization - identity-inferiority - discriminatory-exclusion - hate-threat - criminal-demonstration - criminal-preparation - criminal-request - criminal-instructions - criminal-promotion - historical - documentary - fictional - support-prevention additionalProperties: oneOf: - type: object properties: status: type: string const: evaluated score: type: number minimum: 0 maximum: 1 scopeScore: type: number minimum: 0 maximum: 1 likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely required: - status - score - likelihood additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable required: - status - reason additionalProperties: false required: - status - likelihood - score additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable qualifiers: type: object propertyNames: type: string enum: - nudity - sexual-activity - explicit-sexual-language - sexual-solicitation - physical-attack - violent-threat - violent-preparation - violent-encouragement - injury - death - graphic - self-harm-thoughts - self-harm-preparation - self-harm-act - self-harm-methods - self-harm-encouragement - personal-abuse - targeted-intimidation - harassment-threat - sexual-harassment - harassment-encouragement - identity-abuse - dehumanization - identity-inferiority - discriminatory-exclusion - hate-threat - criminal-demonstration - criminal-preparation - criminal-request - criminal-instructions - criminal-promotion - historical - documentary - fictional - support-prevention additionalProperties: oneOf: - type: object properties: status: type: string const: evaluated score: type: number minimum: 0 maximum: 1 scopeScore: type: number minimum: 0 maximum: 1 likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely required: - status - score - likelihood additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable required: - status - reason additionalProperties: false required: - status - reason additionalProperties: false required: - sexual - violence - self-harm - harassment - hate - criminal-activity additionalProperties: false flagged: type: boolean score: type: number notes: anyOf: - {} - type: "null" media: type: object properties: durationSeconds: type: number exclusiveMinimum: 0 frameIntervalSeconds: type: number exclusiveMinimum: 0 sampledFrames: type: integer minimum: 0 maximum: 9007199254740991 audioTranscribed: type: boolean segments: type: array items: type: object properties: source: type: string enum: - frame - speech - frame-text - clip startSeconds: type: number minimum: 0 endSeconds: type: number minimum: 0 categories: type: object properties: sexual: oneOf: - type: object properties: status: type: string const: evaluated likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely score: type: number minimum: 0 maximum: 1 qualifiers: type: object propertyNames: type: string enum: - nudity - sexual-activity - explicit-sexual-language - sexual-solicitation - physical-attack - violent-threat - violent-preparation - violent-encouragement - injury - death - graphic - self-harm-thoughts - self-harm-preparation - self-harm-act - self-harm-methods - self-harm-encouragement - personal-abuse - targeted-intimidation - harassment-threat - sexual-harassment - harassment-encouragement - identity-abuse - dehumanization - identity-inferiority - discriminatory-exclusion - hate-threat - criminal-demonstration - criminal-preparation - criminal-request - criminal-instructions - criminal-promotion - historical - documentary - fictional - support-prevention additionalProperties: oneOf: - type: object properties: status: type: string const: evaluated score: type: number minimum: 0 maximum: 1 scopeScore: type: number minimum: 0 maximum: 1 likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely required: - status - score - likelihood additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable required: - status - reason additionalProperties: false required: - status - likelihood - score additionalProperties: false - type: object properties: status: type: string const: partial likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely score: type: number minimum: 0 maximum: 1 qualifiers: type: object propertyNames: type: string enum: - nudity - sexual-activity - explicit-sexual-language - sexual-solicitation - physical-attack - violent-threat - violent-preparation - violent-encouragement - injury - death - graphic - self-harm-thoughts - self-harm-preparation - self-harm-act - self-harm-methods - self-harm-encouragement - personal-abuse - targeted-intimidation - harassment-threat - sexual-harassment - harassment-encouragement - identity-abuse - dehumanization - identity-inferiority - discriminatory-exclusion - hate-threat - criminal-demonstration - criminal-preparation - criminal-request - criminal-instructions - criminal-promotion - historical - documentary - fictional - support-prevention additionalProperties: oneOf: - type: object properties: status: type: string const: evaluated score: type: number minimum: 0 maximum: 1 scopeScore: type: number minimum: 0 maximum: 1 likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely required: - status - score - likelihood additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable required: - status - reason additionalProperties: false required: - status - likelihood - score additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable qualifiers: type: object propertyNames: type: string enum: - nudity - sexual-activity - explicit-sexual-language - sexual-solicitation - physical-attack - violent-threat - violent-preparation - violent-encouragement - injury - death - graphic - self-harm-thoughts - self-harm-preparation - self-harm-act - self-harm-methods - self-harm-encouragement - personal-abuse - targeted-intimidation - harassment-threat - sexual-harassment - harassment-encouragement - identity-abuse - dehumanization - identity-inferiority - discriminatory-exclusion - hate-threat - criminal-demonstration - criminal-preparation - criminal-request - criminal-instructions - criminal-promotion - historical - documentary - fictional - support-prevention additionalProperties: oneOf: - type: object properties: status: type: string const: evaluated score: type: number minimum: 0 maximum: 1 scopeScore: type: number minimum: 0 maximum: 1 likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely required: - status - score - likelihood additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable required: - status - reason additionalProperties: false required: - status - reason additionalProperties: false violence: oneOf: - type: object properties: status: type: string const: evaluated likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely score: type: number minimum: 0 maximum: 1 qualifiers: type: object propertyNames: type: string enum: - nudity - sexual-activity - explicit-sexual-language - sexual-solicitation - physical-attack - violent-threat - violent-preparation - violent-encouragement - injury - death - graphic - self-harm-thoughts - self-harm-preparation - self-harm-act - self-harm-methods - self-harm-encouragement - personal-abuse - targeted-intimidation - harassment-threat - sexual-harassment - harassment-encouragement - identity-abuse - dehumanization - identity-inferiority - discriminatory-exclusion - hate-threat - criminal-demonstration - criminal-preparation - criminal-request - criminal-instructions - criminal-promotion - historical - documentary - fictional - support-prevention additionalProperties: oneOf: - type: object properties: status: type: string const: evaluated score: type: number minimum: 0 maximum: 1 scopeScore: type: number minimum: 0 maximum: 1 likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely required: - status - score - likelihood additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable required: - status - reason additionalProperties: false required: - status - likelihood - score additionalProperties: false - type: object properties: status: type: string const: partial likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely score: type: number minimum: 0 maximum: 1 qualifiers: type: object propertyNames: type: string enum: - nudity - sexual-activity - explicit-sexual-language - sexual-solicitation - physical-attack - violent-threat - violent-preparation - violent-encouragement - injury - death - graphic - self-harm-thoughts - self-harm-preparation - self-harm-act - self-harm-methods - self-harm-encouragement - personal-abuse - targeted-intimidation - harassment-threat - sexual-harassment - harassment-encouragement - identity-abuse - dehumanization - identity-inferiority - discriminatory-exclusion - hate-threat - criminal-demonstration - criminal-preparation - criminal-request - criminal-instructions - criminal-promotion - historical - documentary - fictional - support-prevention additionalProperties: oneOf: - type: object properties: status: type: string const: evaluated score: type: number minimum: 0 maximum: 1 scopeScore: type: number minimum: 0 maximum: 1 likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely required: - status - score - likelihood additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable required: - status - reason additionalProperties: false required: - status - likelihood - score additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable qualifiers: type: object propertyNames: type: string enum: - nudity - sexual-activity - explicit-sexual-language - sexual-solicitation - physical-attack - violent-threat - violent-preparation - violent-encouragement - injury - death - graphic - self-harm-thoughts - self-harm-preparation - self-harm-act - self-harm-methods - self-harm-encouragement - personal-abuse - targeted-intimidation - harassment-threat - sexual-harassment - harassment-encouragement - identity-abuse - dehumanization - identity-inferiority - discriminatory-exclusion - hate-threat - criminal-demonstration - criminal-preparation - criminal-request - criminal-instructions - criminal-promotion - historical - documentary - fictional - support-prevention additionalProperties: oneOf: - type: object properties: status: type: string const: evaluated score: type: number minimum: 0 maximum: 1 scopeScore: type: number minimum: 0 maximum: 1 likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely required: - status - score - likelihood additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable required: - status - reason additionalProperties: false required: - status - reason additionalProperties: false self-harm: oneOf: - type: object properties: status: type: string const: evaluated likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely score: type: number minimum: 0 maximum: 1 qualifiers: type: object propertyNames: type: string enum: - nudity - sexual-activity - explicit-sexual-language - sexual-solicitation - physical-attack - violent-threat - violent-preparation - violent-encouragement - injury - death - graphic - self-harm-thoughts - self-harm-preparation - self-harm-act - self-harm-methods - self-harm-encouragement - personal-abuse - targeted-intimidation - harassment-threat - sexual-harassment - harassment-encouragement - identity-abuse - dehumanization - identity-inferiority - discriminatory-exclusion - hate-threat - criminal-demonstration - criminal-preparation - criminal-request - criminal-instructions - criminal-promotion - historical - documentary - fictional - support-prevention additionalProperties: oneOf: - type: object properties: status: type: string const: evaluated score: type: number minimum: 0 maximum: 1 scopeScore: type: number minimum: 0 maximum: 1 likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely required: - status - score - likelihood additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable required: - status - reason additionalProperties: false required: - status - likelihood - score additionalProperties: false - type: object properties: status: type: string const: partial likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely score: type: number minimum: 0 maximum: 1 qualifiers: type: object propertyNames: type: string enum: - nudity - sexual-activity - explicit-sexual-language - sexual-solicitation - physical-attack - violent-threat - violent-preparation - violent-encouragement - injury - death - graphic - self-harm-thoughts - self-harm-preparation - self-harm-act - self-harm-methods - self-harm-encouragement - personal-abuse - targeted-intimidation - harassment-threat - sexual-harassment - harassment-encouragement - identity-abuse - dehumanization - identity-inferiority - discriminatory-exclusion - hate-threat - criminal-demonstration - criminal-preparation - criminal-request - criminal-instructions - criminal-promotion - historical - documentary - fictional - support-prevention additionalProperties: oneOf: - type: object properties: status: type: string const: evaluated score: type: number minimum: 0 maximum: 1 scopeScore: type: number minimum: 0 maximum: 1 likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely required: - status - score - likelihood additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable required: - status - reason additionalProperties: false required: - status - likelihood - score additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable qualifiers: type: object propertyNames: type: string enum: - nudity - sexual-activity - explicit-sexual-language - sexual-solicitation - physical-attack - violent-threat - violent-preparation - violent-encouragement - injury - death - graphic - self-harm-thoughts - self-harm-preparation - self-harm-act - self-harm-methods - self-harm-encouragement - personal-abuse - targeted-intimidation - harassment-threat - sexual-harassment - harassment-encouragement - identity-abuse - dehumanization - identity-inferiority - discriminatory-exclusion - hate-threat - criminal-demonstration - criminal-preparation - criminal-request - criminal-instructions - criminal-promotion - historical - documentary - fictional - support-prevention additionalProperties: oneOf: - type: object properties: status: type: string const: evaluated score: type: number minimum: 0 maximum: 1 scopeScore: type: number minimum: 0 maximum: 1 likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely required: - status - score - likelihood additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable required: - status - reason additionalProperties: false required: - status - reason additionalProperties: false harassment: oneOf: - type: object properties: status: type: string const: evaluated likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely score: type: number minimum: 0 maximum: 1 qualifiers: type: object propertyNames: type: string enum: - nudity - sexual-activity - explicit-sexual-language - sexual-solicitation - physical-attack - violent-threat - violent-preparation - violent-encouragement - injury - death - graphic - self-harm-thoughts - self-harm-preparation - self-harm-act - self-harm-methods - self-harm-encouragement - personal-abuse - targeted-intimidation - harassment-threat - sexual-harassment - harassment-encouragement - identity-abuse - dehumanization - identity-inferiority - discriminatory-exclusion - hate-threat - criminal-demonstration - criminal-preparation - criminal-request - criminal-instructions - criminal-promotion - historical - documentary - fictional - support-prevention additionalProperties: oneOf: - type: object properties: status: type: string const: evaluated score: type: number minimum: 0 maximum: 1 scopeScore: type: number minimum: 0 maximum: 1 likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely required: - status - score - likelihood additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable required: - status - reason additionalProperties: false required: - status - likelihood - score additionalProperties: false - type: object properties: status: type: string const: partial likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely score: type: number minimum: 0 maximum: 1 qualifiers: type: object propertyNames: type: string enum: - nudity - sexual-activity - explicit-sexual-language - sexual-solicitation - physical-attack - violent-threat - violent-preparation - violent-encouragement - injury - death - graphic - self-harm-thoughts - self-harm-preparation - self-harm-act - self-harm-methods - self-harm-encouragement - personal-abuse - targeted-intimidation - harassment-threat - sexual-harassment - harassment-encouragement - identity-abuse - dehumanization - identity-inferiority - discriminatory-exclusion - hate-threat - criminal-demonstration - criminal-preparation - criminal-request - criminal-instructions - criminal-promotion - historical - documentary - fictional - support-prevention additionalProperties: oneOf: - type: object properties: status: type: string const: evaluated score: type: number minimum: 0 maximum: 1 scopeScore: type: number minimum: 0 maximum: 1 likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely required: - status - score - likelihood additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable required: - status - reason additionalProperties: false required: - status - likelihood - score additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable qualifiers: type: object propertyNames: type: string enum: - nudity - sexual-activity - explicit-sexual-language - sexual-solicitation - physical-attack - violent-threat - violent-preparation - violent-encouragement - injury - death - graphic - self-harm-thoughts - self-harm-preparation - self-harm-act - self-harm-methods - self-harm-encouragement - personal-abuse - targeted-intimidation - harassment-threat - sexual-harassment - harassment-encouragement - identity-abuse - dehumanization - identity-inferiority - discriminatory-exclusion - hate-threat - criminal-demonstration - criminal-preparation - criminal-request - criminal-instructions - criminal-promotion - historical - documentary - fictional - support-prevention additionalProperties: oneOf: - type: object properties: status: type: string const: evaluated score: type: number minimum: 0 maximum: 1 scopeScore: type: number minimum: 0 maximum: 1 likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely required: - status - score - likelihood additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable required: - status - reason additionalProperties: false required: - status - reason additionalProperties: false hate: oneOf: - type: object properties: status: type: string const: evaluated likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely score: type: number minimum: 0 maximum: 1 qualifiers: type: object propertyNames: type: string enum: - nudity - sexual-activity - explicit-sexual-language - sexual-solicitation - physical-attack - violent-threat - violent-preparation - violent-encouragement - injury - death - graphic - self-harm-thoughts - self-harm-preparation - self-harm-act - self-harm-methods - self-harm-encouragement - personal-abuse - targeted-intimidation - harassment-threat - sexual-harassment - harassment-encouragement - identity-abuse - dehumanization - identity-inferiority - discriminatory-exclusion - hate-threat - criminal-demonstration - criminal-preparation - criminal-request - criminal-instructions - criminal-promotion - historical - documentary - fictional - support-prevention additionalProperties: oneOf: - type: object properties: status: type: string const: evaluated score: type: number minimum: 0 maximum: 1 scopeScore: type: number minimum: 0 maximum: 1 likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely required: - status - score - likelihood additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable required: - status - reason additionalProperties: false required: - status - likelihood - score additionalProperties: false - type: object properties: status: type: string const: partial likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely score: type: number minimum: 0 maximum: 1 qualifiers: type: object propertyNames: type: string enum: - nudity - sexual-activity - explicit-sexual-language - sexual-solicitation - physical-attack - violent-threat - violent-preparation - violent-encouragement - injury - death - graphic - self-harm-thoughts - self-harm-preparation - self-harm-act - self-harm-methods - self-harm-encouragement - personal-abuse - targeted-intimidation - harassment-threat - sexual-harassment - harassment-encouragement - identity-abuse - dehumanization - identity-inferiority - discriminatory-exclusion - hate-threat - criminal-demonstration - criminal-preparation - criminal-request - criminal-instructions - criminal-promotion - historical - documentary - fictional - support-prevention additionalProperties: oneOf: - type: object properties: status: type: string const: evaluated score: type: number minimum: 0 maximum: 1 scopeScore: type: number minimum: 0 maximum: 1 likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely required: - status - score - likelihood additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable required: - status - reason additionalProperties: false required: - status - likelihood - score additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable qualifiers: type: object propertyNames: type: string enum: - nudity - sexual-activity - explicit-sexual-language - sexual-solicitation - physical-attack - violent-threat - violent-preparation - violent-encouragement - injury - death - graphic - self-harm-thoughts - self-harm-preparation - self-harm-act - self-harm-methods - self-harm-encouragement - personal-abuse - targeted-intimidation - harassment-threat - sexual-harassment - harassment-encouragement - identity-abuse - dehumanization - identity-inferiority - discriminatory-exclusion - hate-threat - criminal-demonstration - criminal-preparation - criminal-request - criminal-instructions - criminal-promotion - historical - documentary - fictional - support-prevention additionalProperties: oneOf: - type: object properties: status: type: string const: evaluated score: type: number minimum: 0 maximum: 1 scopeScore: type: number minimum: 0 maximum: 1 likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely required: - status - score - likelihood additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable required: - status - reason additionalProperties: false required: - status - reason additionalProperties: false criminal-activity: oneOf: - type: object properties: status: type: string const: evaluated likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely score: type: number minimum: 0 maximum: 1 qualifiers: type: object propertyNames: type: string enum: - nudity - sexual-activity - explicit-sexual-language - sexual-solicitation - physical-attack - violent-threat - violent-preparation - violent-encouragement - injury - death - graphic - self-harm-thoughts - self-harm-preparation - self-harm-act - self-harm-methods - self-harm-encouragement - personal-abuse - targeted-intimidation - harassment-threat - sexual-harassment - harassment-encouragement - identity-abuse - dehumanization - identity-inferiority - discriminatory-exclusion - hate-threat - criminal-demonstration - criminal-preparation - criminal-request - criminal-instructions - criminal-promotion - historical - documentary - fictional - support-prevention additionalProperties: oneOf: - type: object properties: status: type: string const: evaluated score: type: number minimum: 0 maximum: 1 scopeScore: type: number minimum: 0 maximum: 1 likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely required: - status - score - likelihood additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable required: - status - reason additionalProperties: false required: - status - likelihood - score additionalProperties: false - type: object properties: status: type: string const: partial likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely score: type: number minimum: 0 maximum: 1 qualifiers: type: object propertyNames: type: string enum: - nudity - sexual-activity - explicit-sexual-language - sexual-solicitation - physical-attack - violent-threat - violent-preparation - violent-encouragement - injury - death - graphic - self-harm-thoughts - self-harm-preparation - self-harm-act - self-harm-methods - self-harm-encouragement - personal-abuse - targeted-intimidation - harassment-threat - sexual-harassment - harassment-encouragement - identity-abuse - dehumanization - identity-inferiority - discriminatory-exclusion - hate-threat - criminal-demonstration - criminal-preparation - criminal-request - criminal-instructions - criminal-promotion - historical - documentary - fictional - support-prevention additionalProperties: oneOf: - type: object properties: status: type: string const: evaluated score: type: number minimum: 0 maximum: 1 scopeScore: type: number minimum: 0 maximum: 1 likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely required: - status - score - likelihood additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable required: - status - reason additionalProperties: false required: - status - likelihood - score additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable qualifiers: type: object propertyNames: type: string enum: - nudity - sexual-activity - explicit-sexual-language - sexual-solicitation - physical-attack - violent-threat - violent-preparation - violent-encouragement - injury - death - graphic - self-harm-thoughts - self-harm-preparation - self-harm-act - self-harm-methods - self-harm-encouragement - personal-abuse - targeted-intimidation - harassment-threat - sexual-harassment - harassment-encouragement - identity-abuse - dehumanization - identity-inferiority - discriminatory-exclusion - hate-threat - criminal-demonstration - criminal-preparation - criminal-request - criminal-instructions - criminal-promotion - historical - documentary - fictional - support-prevention additionalProperties: oneOf: - type: object properties: status: type: string const: evaluated score: type: number minimum: 0 maximum: 1 scopeScore: type: number minimum: 0 maximum: 1 likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely required: - status - score - likelihood additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable required: - status - reason additionalProperties: false required: - status - reason additionalProperties: false required: - sexual - violence - self-harm - harassment - hate - criminal-activity additionalProperties: false required: - source - startSeconds - endSeconds - categories additionalProperties: false required: - durationSeconds - sampledFrames - audioTranscribed - segments additionalProperties: false labels: anyOf: - type: array items: type: object properties: description: {} score: type: number topicalityScore: type: - number - "null" likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely knowledgeBaseId: anyOf: - {} - type: "null" required: - description - score - likelihood additionalProperties: false - type: "null" required: - processedAt - categories - flagged - score additionalProperties: false - type: "null" moderationAction: anyOf: - type: string enum: - ignore - alert - hide - purge - type: "null" description: The moderation action applied when this asset crossed a policy threshold status: type: string enum: - uploading - pending - approved - rejected - error description: Processing and moderation status. See [Asset lifecycle](/docs/guides/asset-lifecycle). safetyHold: anyOf: - type: object properties: placedAt: type: number description: When the hold was placed, in milliseconds since the Unix epoch reason: type: string enum: - suspected-illegal-content description: Why the asset is held disposedAt: description: When the held content was disposed of, in milliseconds since the Unix epoch type: - number - "null" required: - placedAt - reason additionalProperties: false - type: "null" description: Internal delivery restriction for suspected illegal content. Held content cannot be viewed, changed, or deleted through normal asset operations. rejectionNote: anyOf: - {} - type: "null" description: Reason the asset was rejected, generated automatically or supplied by a reviewer extractedText: anyOf: - oneOf: - type: object properties: type: type: string const: string content: type: string required: - type - content additionalProperties: false - type: object properties: type: type: string const: document id: {} required: - type - id additionalProperties: false - type: "null" description: Extracted text stored inline for small content or in R2 for larger content processingOptions: description: Processing options supplied when the asset was uploaded anyOf: - type: object properties: keepContentAfterProcessing: description: Whether to keep the asset content after processing default: false type: - boolean - "null" flaggedContentPolicy: anyOf: - type: object properties: action: type: string enum: - ignore - alert - hide - purge required: - action additionalProperties: false - type: "null" description: Override the project moderation action for this asset. Ignore takes no action, alert keeps delivery enabled, hide blocks delivery while retaining content, and purge deletes content. image: description: Options for image assets anyOf: - type: object properties: ocrEnabled: description: Whether to extract image text into a child asset and run normal text moderation. Applies to images, including those extracted from multimedia documents and websites. default: false type: - boolean - "null" additionalProperties: false - type: "null" additionalProperties: false - type: "null" visibility: anyOf: - type: string enum: - public - private - type: "null" description: Visibility level of the asset default: private storageDeletedAt: description: When the stored content was removed, in milliseconds since the Unix epoch. The asset record and report remain. type: - number - "null" required: - id - projectId - createdAt - name - type - status additionalProperties: false description: An asset in the system $defs: __schema0: anyOf: - type: string - type: number - type: boolean - type: "null" - type: array items: $ref: "#/paths/~1projects~1{projectId}~1assets/post/responses/200/content/application~1json/schema/$defs/__schema0" - type: object propertyNames: type: string additionalProperties: $ref: "#/paths/~1projects~1{projectId}~1assets/post/responses/200/content/application~1json/schema/$defs/__schema0" "400": description: |- upload/file-too-large: File size exceeds limit. Maximum direct image size is 10MB, audio/video size is 50MiB, and other files is 5GB. upload/image-requires-multipart-upload: Images of 10MB or more must use a multipart upload. upload/multipart-image-too-small: Multipart image uploads must total at least 10MB. upload/multipart-image-too-large: Multipart image uploads cannot exceed 20MB. upload/invalid-mime-type: Upload file type is not supported. Uploads must use a concrete file MIME type that CalmLens can store and process, such as image/png, image/jpeg, application/pdf, or text/plain. upload/invalid-payload: Upload payload is invalid. idempotency/invalid-key: The Idempotency-Key header must be 1 to 255 printable ASCII characters, such as a UUID. headers: X-Request-Id: *a1 content: application/json: schema: type: object required: - message - code - traceId properties: message: type: string code: type: string enum: - upload/file-too-large - upload/image-requires-multipart-upload - upload/multipart-image-too-small - upload/multipart-image-too-large - upload/invalid-mime-type - upload/invalid-payload - idempotency/invalid-key traceId: type: string examples: upload-file-too-large: summary: File size exceeds limit. Maximum direct image size is 10MB, audio/video size is 50MiB, and other files is 5GB. value: message: File size exceeds limit. Maximum direct image size is 10MB, audio/video size is 50MiB, and other files is 5GB. code: upload/file-too-large traceId: request-trace-id upload-image-requires-multipart-upload: summary: Images of 10MB or more must use a multipart upload. value: message: Images of 10MB or more must use a multipart upload. code: upload/image-requires-multipart-upload traceId: request-trace-id upload-multipart-image-too-small: summary: Multipart image uploads must total at least 10MB. value: message: Multipart image uploads must total at least 10MB. code: upload/multipart-image-too-small traceId: request-trace-id upload-multipart-image-too-large: summary: Multipart image uploads cannot exceed 20MB. value: message: Multipart image uploads cannot exceed 20MB. code: upload/multipart-image-too-large traceId: request-trace-id upload-invalid-mime-type: summary: Upload file type is not supported. Uploads must use a concrete file MIME type that CalmLens can store and process, such as image/png, image/jpeg, application/pdf, or text/plain. value: message: Upload file type is not supported. Uploads must use a concrete file MIME type that CalmLens can store and process, such as image/png, image/jpeg, application/pdf, or text/plain. code: upload/invalid-mime-type traceId: request-trace-id upload-invalid-payload: summary: Upload payload is invalid. value: message: Upload payload is invalid. code: upload/invalid-payload traceId: request-trace-id idempotency-invalid-key: summary: The Idempotency-Key header must be 1 to 255 printable ASCII characters, such as a UUID. value: message: The Idempotency-Key header must be 1 to 255 printable ASCII characters, such as a UUID. code: idempotency/invalid-key traceId: request-trace-id "401": description: |- auth/missing-token: Authentication required. Send your project API key in the X-Api-Key header. auth/invalid-api-key: The API key is invalid, revoked or expired. Create a key under Developer → API Keys. headers: X-Request-Id: *a1 content: application/json: schema: type: object required: - message - code - traceId properties: message: type: string code: type: string enum: - auth/missing-token - auth/invalid-api-key traceId: type: string examples: auth-missing-token: summary: Authentication required. Send your project API key in the X-Api-Key header. value: message: Authentication required. Send your project API key in the X-Api-Key header. code: auth/missing-token traceId: request-trace-id auth-invalid-api-key: summary: The API key is invalid, revoked or expired. Create a key under Developer → API Keys. value: message: The API key is invalid, revoked or expired. Create a key under Developer → API Keys. code: auth/invalid-api-key traceId: request-trace-id "403": description: |- auth/project-mismatch: This API key belongs to a different project. Use a key created for the project that owns this resource. upload/limit-exceeded: Upload limit exceeded. You have used all your free uploads. Please upgrade to Plus or Pro for unlimited uploads. headers: X-Request-Id: *a1 content: application/json: schema: type: object required: - message - code - traceId properties: message: type: string code: type: string enum: - auth/project-mismatch - upload/limit-exceeded traceId: type: string examples: auth-project-mismatch: summary: This API key belongs to a different project. Use a key created for the project that owns this resource. value: message: This API key belongs to a different project. Use a key created for the project that owns this resource. code: auth/project-mismatch traceId: request-trace-id upload-limit-exceeded: summary: Upload limit exceeded. You have used all your free uploads. Please upgrade to Plus or Pro for unlimited uploads. value: message: Upload limit exceeded. You have used all your free uploads. Please upgrade to Plus or Pro for unlimited uploads. code: upload/limit-exceeded traceId: request-trace-id "404": description: "folder/not-found: Folder not found" headers: X-Request-Id: *a1 content: application/json: schema: type: object required: - message - code - traceId properties: message: type: string code: type: string enum: - folder/not-found traceId: type: string examples: folder-not-found: summary: Folder not found value: message: Folder not found code: folder/not-found traceId: request-trace-id "409": description: |- asset/duplicate-external-id: An asset with this externalId already exists in the project. upload/use-upload-part: Use uploadPart for multipart upload parts after the first part idempotency/key-reused: This Idempotency-Key was already used for a different request. Use a new key for each distinct request. idempotency/request-in-progress: A request with this Idempotency-Key is still being processed. Retry after the Retry-After delay to receive its result. headers: X-Request-Id: *a1 Retry-After: &a3 description: Seconds to wait before retrying the request. schema: type: integer minimum: 0 content: application/json: schema: type: object required: - message - code - traceId properties: message: type: string code: type: string enum: - asset/duplicate-external-id - upload/use-upload-part - idempotency/key-reused - idempotency/request-in-progress traceId: type: string examples: asset-duplicate-external-id: summary: An asset with this externalId already exists in the project. value: message: An asset with this externalId already exists in the project. code: asset/duplicate-external-id traceId: request-trace-id upload-use-upload-part: summary: Use uploadPart for multipart upload parts after the first part value: message: Use uploadPart for multipart upload parts after the first part code: upload/use-upload-part traceId: request-trace-id idempotency-key-reused: summary: This Idempotency-Key was already used for a different request. Use a new key for each distinct request. value: message: This Idempotency-Key was already used for a different request. Use a new key for each distinct request. code: idempotency/key-reused traceId: request-trace-id idempotency-request-in-progress: summary: A request with this Idempotency-Key is still being processed. Retry after the Retry-After delay to receive its result. value: message: A request with this Idempotency-Key is still being processed. Retry after the Retry-After delay to receive its result. code: idempotency/request-in-progress traceId: request-trace-id parameters: - name: projectId in: path required: true description: UUID of the project to upload the asset to schema: type: string format: uuid pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$ description: UUID of the project to upload the asset to - name: queue in: query required: false description: If true, queue the asset for asynchronous classification. If false, classify synchronously. Audio and video always run asynchronously and return pending. When this request starts a multipart upload, the choice is saved and applies when the final part arrives. schema: default: false type: boolean description: If true, queue the asset for asynchronous classification. If false, classify synchronously. Audio and video always run asynchronously and return pending. When this request starts a multipart upload, the choice is saved and applies when the final part arrives. example: true - name: Idempotency-Key in: header required: false description: A unique value, such as a UUID, that makes the request safe to retry. A retry with the same key and the same request returns the saved response for 24 hours instead of running again. Keys are scoped to the project and the API key. schema: type: string minLength: 1 maxLength: 255 requestBody: required: true content: application/json: schema: anyOf: - type: object properties: name: type: string description: Name of the asset isFinal: not: {} description: description: Optional description of the asset type: - string - "null" visibility: anyOf: - type: string enum: - public - private - type: "null" description: Visibility level of the asset default: private metadata: anyOf: - type: array items: type: object properties: id: type: string description: Identifier for the metadata item value: $ref: "#/paths/~1projects~1{projectId}~1assets/post/requestBody/content/application~1json/schema/$defs/__schema0" description: Value of the metadata item required: - id - value description: A metadata item with an ID and value - type: "null" description: List of custom metadata items for the asset externalId: description: External identifier for the asset type: - string - "null" externalUrl: allOf: - anyOf: - type: string format: uri - type: "null" description: External URL associated with the asset - type: string format: uri folderId: anyOf: - type: string format: uuid pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$ - type: "null" processingOptions: anyOf: - type: object properties: keepContentAfterProcessing: type: - boolean - string - "null" flaggedContentPolicy: anyOf: - type: object properties: action: type: string enum: - ignore - alert - hide - purge required: - action - type: "null" description: Overrides the project moderation action for this asset. Ignore takes no action, alert keeps delivery enabled, hide blocks delivery while retaining content, and purge deletes content. image: anyOf: - type: object properties: ocrEnabled: type: - boolean - string - "null" - type: "null" additionalProperties: false - type: "null" content: anyOf: - type: object properties: plainText: type: string description: Plain text content type: type: string description: MIME type or file extension required: - plainText - type - type: object properties: base64: type: string description: Base64 encoded content or data URL uint8Array: not: {} buffer: not: {} data: not: {} type: type: string description: MIME type or file extension required: - base64 - type - type: object properties: uint8Array: type: array items: type: integer minimum: 0 maximum: 255 description: Raw bytes as an array of numbers from 0 to 255 base64: not: {} buffer: not: {} data: not: {} type: type: string description: MIME type or file extension required: - uint8Array - type - type: object properties: buffer: {} base64: not: {} uint8Array: not: {} data: not: {} type: type: string required: - buffer - type - type: object properties: data: {} base64: not: {} uint8Array: not: {} buffer: not: {} type: type: string required: - data - type description: File content as plain text or base64 required: - name - content - type: object properties: name: type: string description: Name of the asset isFinal: not: {} description: description: Optional description of the asset type: - string - "null" visibility: anyOf: - type: string enum: - public - private - type: "null" description: Visibility level of the asset default: private metadata: anyOf: - type: array items: type: object properties: id: type: string description: Identifier for the metadata item value: $ref: "#/paths/~1projects~1{projectId}~1assets/post/requestBody/content/application~1json/schema/$defs/__schema0" description: Value of the metadata item required: - id - value description: A metadata item with an ID and value - type: "null" description: List of custom metadata items for the asset externalId: description: External identifier for the asset type: - string - "null" externalUrl: anyOf: - type: string format: uri - type: "null" description: External URL associated with the asset folderId: anyOf: - type: string format: uuid pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$ - type: "null" processingOptions: anyOf: - type: object properties: keepContentAfterProcessing: type: - boolean - string - "null" flaggedContentPolicy: anyOf: - type: object properties: action: type: string enum: - ignore - alert - hide - purge required: - action - type: "null" description: Overrides the project moderation action for this asset. Ignore takes no action, alert keeps delivery enabled, hide blocks delivery while retaining content, and purge deletes content. image: anyOf: - type: object properties: ocrEnabled: type: - boolean - string - "null" - type: "null" additionalProperties: false - type: "null" part: anyOf: - type: object properties: plainText: type: string description: Plain text content base64: not: {} uint8Array: not: {} buffer: not: {} data: not: {} type: type: string partNumber: default: 1 type: integer exclusiveMinimum: 0 maximum: 9007199254740991 isFinal: type: - boolean - string required: - plainText - type - type: object properties: base64: type: string description: Base64 encoded content or data URL uint8Array: not: {} buffer: not: {} data: not: {} type: type: string partNumber: default: 1 type: integer exclusiveMinimum: 0 maximum: 9007199254740991 isFinal: type: - boolean - string required: - base64 - type - type: object properties: uint8Array: type: array items: type: integer minimum: 0 maximum: 255 description: Raw bytes as an array of numbers from 0 to 255 base64: not: {} buffer: not: {} data: not: {} type: type: string partNumber: default: 1 type: integer exclusiveMinimum: 0 maximum: 9007199254740991 isFinal: type: - boolean - string required: - uint8Array - type - type: object properties: buffer: {} base64: not: {} uint8Array: not: {} data: not: {} type: type: string partNumber: default: 1 type: integer exclusiveMinimum: 0 maximum: 9007199254740991 isFinal: type: - boolean - string required: - buffer - type - type: object properties: data: {} base64: not: {} uint8Array: not: {} buffer: not: {} type: type: string partNumber: default: 1 type: integer exclusiveMinimum: 0 maximum: 9007199254740991 isFinal: type: - boolean - string required: - data - type sizeInBytes: type: integer exclusiveMinimum: 0 maximum: 9007199254740991 totalSizeInBytes: type: integer exclusiveMinimum: 0 maximum: 9007199254740991 description: "Multipart uploads only: the size of the whole file in bytes, if known. CalmLens checks it against the upload limits before any part is stored, and the final part fails with `upload/size-mismatch` if the parts add up to a different size." required: - name - part - type: object properties: name: type: string description: Name of the asset isFinal: not: {} description: description: Optional description of the asset type: - string - "null" visibility: anyOf: - type: string enum: - public - private - type: "null" description: Visibility level of the asset default: private metadata: anyOf: - type: array items: type: object properties: id: type: string description: Identifier for the metadata item value: $ref: "#/paths/~1projects~1{projectId}~1assets/post/requestBody/content/application~1json/schema/$defs/__schema0" description: Value of the metadata item required: - id - value description: A metadata item with an ID and value - type: "null" description: List of custom metadata items for the asset externalId: description: External identifier for the asset type: - string - "null" externalUrl: anyOf: - type: string format: uri - type: "null" description: External URL associated with the asset folderId: anyOf: - type: string format: uuid pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$ - type: "null" processingOptions: anyOf: - type: object properties: keepContentAfterProcessing: type: - boolean - string - "null" flaggedContentPolicy: anyOf: - type: object properties: action: type: string enum: - ignore - alert - hide - purge required: - action - type: "null" description: Overrides the project moderation action for this asset. Ignore takes no action, alert keeps delivery enabled, hide blocks delivery while retaining content, and purge deletes content. image: anyOf: - type: object properties: ocrEnabled: type: - boolean - string - "null" - type: "null" additionalProperties: false - type: "null" url: type: string format: uri description: URL to fetch the asset from required: - name - url $defs: __schema0: anyOf: - type: string - type: number - type: boolean - type: "null" - type: array items: $ref: "#/paths/~1projects~1{projectId}~1assets/post/requestBody/content/application~1json/schema/$defs/__schema0" - type: object propertyNames: type: string additionalProperties: $ref: "#/paths/~1projects~1{projectId}~1assets/post/requestBody/content/application~1json/schema/$defs/__schema0" example: name: homepage-image.jpg url: https://example.com/image.jpg visibility: private processingOptions: keepContentAfterProcessing: true /projects/{projectId}/assets/upload: post: operationId: post-asset-upload summary: Upload Asset File description: "Upload a file by sending its raw bytes as the request body, with the `X-CalmLens-Upload: content` header and the file's `Content-Type`. Asset fields are query parameters. This is the upload path the SDKs use for files. Send an `Idempotency-Key` header to retry safely without creating a second asset." security: - ApiKeyAuth: [] responses: "200": description: Successful response headers: X-Request-Id: *a1 Idempotent-Replayed: *a2 content: application/json: schema: type: object properties: id: type: string format: uuid pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-4[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$ description: Unique asset ID projectId: type: string format: uuid pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-4[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$ description: ID of the project that owns the asset sizeInBytes: description: Size of the uploaded content in bytes type: - number - "null" userId: description: ID of the user whose account created the asset anyOf: - {} - type: "null" parentId: description: ID of the parent asset for child assets CalmLens extracts during processing, such as images in a document or OCR text. `null` for uploaded assets. anyOf: - type: string format: uuid pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-4[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$ - type: "null" folderId: anyOf: - type: string format: uuid pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-4[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$ - type: "null" description: Folder containing the asset createdAt: type: integer minimum: -9007199254740991 maximum: 9007199254740991 description: When the asset was created, in milliseconds since the Unix epoch updatedAt: description: When the asset was last updated, in milliseconds since the Unix epoch type: integer minimum: -9007199254740991 maximum: 9007199254740991 checksums: description: Digests of the uploaded content anyOf: - type: object properties: md5: description: MD5 digest of the uploaded content type: - string - "null" sha1: description: SHA-1 digest of the uploaded content type: - string - "null" sha256: description: SHA-256 digest of the uploaded content type: - string - "null" sha384: description: SHA-384 digest of the uploaded content type: - string - "null" sha512: description: SHA-512 digest of the uploaded content type: - string - "null" additionalProperties: false - type: "null" imageData: description: Image properties, for image assets anyOf: - type: object properties: perceptualHash: description: Perceptual hash used to match visually similar images type: - string - "null" width: description: Image width in pixels anyOf: - type: integer exclusiveMinimum: 0 maximum: 9007199254740991 - type: "null" height: description: Image height in pixels anyOf: - type: integer exclusiveMinimum: 0 maximum: 9007199254740991 - type: "null" additionalProperties: false - type: "null" documentData: description: Document properties, for documents anyOf: - type: object properties: {} additionalProperties: false - type: "null" name: description: Name of the asset fileFormat: description: MIME type of the stored content anyOf: - {} - type: "null" fileExtension: description: File extension of the stored content anyOf: - {} - type: "null" description: anyOf: - {} - type: "null" description: Optional description of the asset externalId: anyOf: - {} - type: "null" description: External identifier for the asset externalUrl: anyOf: - type: string format: uri - type: "null" description: External URL associated with the asset previewImage: description: Browser-friendly preview generated for images, documents and websites anyOf: - type: object properties: id: anyOf: - {} - type: "null" description: Identifier of the stored preview image fileFormat: anyOf: - {} - type: "null" description: File format of the preview, such as `webp` thumbhash: anyOf: - {} - type: "null" description: ThumbHash placeholder you can render while the preview loads averageColor: anyOf: - {} - type: "null" description: Average color of the preview width: anyOf: - type: integer exclusiveMinimum: 0 maximum: 9007199254740991 - type: "null" description: Preview width in pixels height: anyOf: - type: integer exclusiveMinimum: 0 maximum: 9007199254740991 - type: "null" description: Preview height in pixels required: - id - fileFormat - thumbhash - averageColor - width - height additionalProperties: false - type: "null" storageId: description: Internal storage key of the retained content; `null` when nothing is stored anyOf: - {} - type: "null" uploadPartsReceived: description: Number of parts received so far for a multipart upload anyOf: - type: integer minimum: -9007199254740991 maximum: 9007199254740991 - type: "null" type: type: string enum: - image - video - audio - plaintext-document - multimedia-document - website - file description: Asset type, detected from the content's MIME type metadata: anyOf: - type: array items: type: object properties: id: description: Identifier for the metadata item value: $ref: "#/paths/~1projects~1{projectId}~1assets~1upload/post/responses/200/content/application~1json/schema/$defs/__schema0" description: Value of the metadata item required: - id - value additionalProperties: false description: A metadata item with an ID and value - type: "null" description: List of custom metadata items for the asset tags: anyOf: - type: array items: {} - type: "null" description: Array of tags for the asset report: description: Moderation report, set once classification finishes. See [Report format](/docs/guides/moderation-reports). anyOf: - type: object properties: processedAt: type: number categories: type: object properties: sexual: oneOf: - type: object properties: status: type: string const: evaluated likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely score: type: number minimum: 0 maximum: 1 qualifiers: type: object propertyNames: type: string enum: - nudity - sexual-activity - explicit-sexual-language - sexual-solicitation - physical-attack - violent-threat - violent-preparation - violent-encouragement - injury - death - graphic - self-harm-thoughts - self-harm-preparation - self-harm-act - self-harm-methods - self-harm-encouragement - personal-abuse - targeted-intimidation - harassment-threat - sexual-harassment - harassment-encouragement - identity-abuse - dehumanization - identity-inferiority - discriminatory-exclusion - hate-threat - criminal-demonstration - criminal-preparation - criminal-request - criminal-instructions - criminal-promotion - historical - documentary - fictional - support-prevention additionalProperties: oneOf: - type: object properties: status: type: string const: evaluated score: type: number minimum: 0 maximum: 1 scopeScore: type: number minimum: 0 maximum: 1 likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely required: - status - score - likelihood additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable required: - status - reason additionalProperties: false required: - status - likelihood - score additionalProperties: false - type: object properties: status: type: string const: partial likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely score: type: number minimum: 0 maximum: 1 qualifiers: type: object propertyNames: type: string enum: - nudity - sexual-activity - explicit-sexual-language - sexual-solicitation - physical-attack - violent-threat - violent-preparation - violent-encouragement - injury - death - graphic - self-harm-thoughts - self-harm-preparation - self-harm-act - self-harm-methods - self-harm-encouragement - personal-abuse - targeted-intimidation - harassment-threat - sexual-harassment - harassment-encouragement - identity-abuse - dehumanization - identity-inferiority - discriminatory-exclusion - hate-threat - criminal-demonstration - criminal-preparation - criminal-request - criminal-instructions - criminal-promotion - historical - documentary - fictional - support-prevention additionalProperties: oneOf: - type: object properties: status: type: string const: evaluated score: type: number minimum: 0 maximum: 1 scopeScore: type: number minimum: 0 maximum: 1 likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely required: - status - score - likelihood additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable required: - status - reason additionalProperties: false required: - status - likelihood - score additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable qualifiers: type: object propertyNames: type: string enum: - nudity - sexual-activity - explicit-sexual-language - sexual-solicitation - physical-attack - violent-threat - violent-preparation - violent-encouragement - injury - death - graphic - self-harm-thoughts - self-harm-preparation - self-harm-act - self-harm-methods - self-harm-encouragement - personal-abuse - targeted-intimidation - harassment-threat - sexual-harassment - harassment-encouragement - identity-abuse - dehumanization - identity-inferiority - discriminatory-exclusion - hate-threat - criminal-demonstration - criminal-preparation - criminal-request - criminal-instructions - criminal-promotion - historical - documentary - fictional - support-prevention additionalProperties: oneOf: - type: object properties: status: type: string const: evaluated score: type: number minimum: 0 maximum: 1 scopeScore: type: number minimum: 0 maximum: 1 likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely required: - status - score - likelihood additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable required: - status - reason additionalProperties: false required: - status - reason additionalProperties: false violence: oneOf: - type: object properties: status: type: string const: evaluated likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely score: type: number minimum: 0 maximum: 1 qualifiers: type: object propertyNames: type: string enum: - nudity - sexual-activity - explicit-sexual-language - sexual-solicitation - physical-attack - violent-threat - violent-preparation - violent-encouragement - injury - death - graphic - self-harm-thoughts - self-harm-preparation - self-harm-act - self-harm-methods - self-harm-encouragement - personal-abuse - targeted-intimidation - harassment-threat - sexual-harassment - harassment-encouragement - identity-abuse - dehumanization - identity-inferiority - discriminatory-exclusion - hate-threat - criminal-demonstration - criminal-preparation - criminal-request - criminal-instructions - criminal-promotion - historical - documentary - fictional - support-prevention additionalProperties: oneOf: - type: object properties: status: type: string const: evaluated score: type: number minimum: 0 maximum: 1 scopeScore: type: number minimum: 0 maximum: 1 likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely required: - status - score - likelihood additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable required: - status - reason additionalProperties: false required: - status - likelihood - score additionalProperties: false - type: object properties: status: type: string const: partial likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely score: type: number minimum: 0 maximum: 1 qualifiers: type: object propertyNames: type: string enum: - nudity - sexual-activity - explicit-sexual-language - sexual-solicitation - physical-attack - violent-threat - violent-preparation - violent-encouragement - injury - death - graphic - self-harm-thoughts - self-harm-preparation - self-harm-act - self-harm-methods - self-harm-encouragement - personal-abuse - targeted-intimidation - harassment-threat - sexual-harassment - harassment-encouragement - identity-abuse - dehumanization - identity-inferiority - discriminatory-exclusion - hate-threat - criminal-demonstration - criminal-preparation - criminal-request - criminal-instructions - criminal-promotion - historical - documentary - fictional - support-prevention additionalProperties: oneOf: - type: object properties: status: type: string const: evaluated score: type: number minimum: 0 maximum: 1 scopeScore: type: number minimum: 0 maximum: 1 likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely required: - status - score - likelihood additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable required: - status - reason additionalProperties: false required: - status - likelihood - score additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable qualifiers: type: object propertyNames: type: string enum: - nudity - sexual-activity - explicit-sexual-language - sexual-solicitation - physical-attack - violent-threat - violent-preparation - violent-encouragement - injury - death - graphic - self-harm-thoughts - self-harm-preparation - self-harm-act - self-harm-methods - self-harm-encouragement - personal-abuse - targeted-intimidation - harassment-threat - sexual-harassment - harassment-encouragement - identity-abuse - dehumanization - identity-inferiority - discriminatory-exclusion - hate-threat - criminal-demonstration - criminal-preparation - criminal-request - criminal-instructions - criminal-promotion - historical - documentary - fictional - support-prevention additionalProperties: oneOf: - type: object properties: status: type: string const: evaluated score: type: number minimum: 0 maximum: 1 scopeScore: type: number minimum: 0 maximum: 1 likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely required: - status - score - likelihood additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable required: - status - reason additionalProperties: false required: - status - reason additionalProperties: false self-harm: oneOf: - type: object properties: status: type: string const: evaluated likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely score: type: number minimum: 0 maximum: 1 qualifiers: type: object propertyNames: type: string enum: - nudity - sexual-activity - explicit-sexual-language - sexual-solicitation - physical-attack - violent-threat - violent-preparation - violent-encouragement - injury - death - graphic - self-harm-thoughts - self-harm-preparation - self-harm-act - self-harm-methods - self-harm-encouragement - personal-abuse - targeted-intimidation - harassment-threat - sexual-harassment - harassment-encouragement - identity-abuse - dehumanization - identity-inferiority - discriminatory-exclusion - hate-threat - criminal-demonstration - criminal-preparation - criminal-request - criminal-instructions - criminal-promotion - historical - documentary - fictional - support-prevention additionalProperties: oneOf: - type: object properties: status: type: string const: evaluated score: type: number minimum: 0 maximum: 1 scopeScore: type: number minimum: 0 maximum: 1 likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely required: - status - score - likelihood additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable required: - status - reason additionalProperties: false required: - status - likelihood - score additionalProperties: false - type: object properties: status: type: string const: partial likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely score: type: number minimum: 0 maximum: 1 qualifiers: type: object propertyNames: type: string enum: - nudity - sexual-activity - explicit-sexual-language - sexual-solicitation - physical-attack - violent-threat - violent-preparation - violent-encouragement - injury - death - graphic - self-harm-thoughts - self-harm-preparation - self-harm-act - self-harm-methods - self-harm-encouragement - personal-abuse - targeted-intimidation - harassment-threat - sexual-harassment - harassment-encouragement - identity-abuse - dehumanization - identity-inferiority - discriminatory-exclusion - hate-threat - criminal-demonstration - criminal-preparation - criminal-request - criminal-instructions - criminal-promotion - historical - documentary - fictional - support-prevention additionalProperties: oneOf: - type: object properties: status: type: string const: evaluated score: type: number minimum: 0 maximum: 1 scopeScore: type: number minimum: 0 maximum: 1 likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely required: - status - score - likelihood additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable required: - status - reason additionalProperties: false required: - status - likelihood - score additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable qualifiers: type: object propertyNames: type: string enum: - nudity - sexual-activity - explicit-sexual-language - sexual-solicitation - physical-attack - violent-threat - violent-preparation - violent-encouragement - injury - death - graphic - self-harm-thoughts - self-harm-preparation - self-harm-act - self-harm-methods - self-harm-encouragement - personal-abuse - targeted-intimidation - harassment-threat - sexual-harassment - harassment-encouragement - identity-abuse - dehumanization - identity-inferiority - discriminatory-exclusion - hate-threat - criminal-demonstration - criminal-preparation - criminal-request - criminal-instructions - criminal-promotion - historical - documentary - fictional - support-prevention additionalProperties: oneOf: - type: object properties: status: type: string const: evaluated score: type: number minimum: 0 maximum: 1 scopeScore: type: number minimum: 0 maximum: 1 likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely required: - status - score - likelihood additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable required: - status - reason additionalProperties: false required: - status - reason additionalProperties: false harassment: oneOf: - type: object properties: status: type: string const: evaluated likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely score: type: number minimum: 0 maximum: 1 qualifiers: type: object propertyNames: type: string enum: - nudity - sexual-activity - explicit-sexual-language - sexual-solicitation - physical-attack - violent-threat - violent-preparation - violent-encouragement - injury - death - graphic - self-harm-thoughts - self-harm-preparation - self-harm-act - self-harm-methods - self-harm-encouragement - personal-abuse - targeted-intimidation - harassment-threat - sexual-harassment - harassment-encouragement - identity-abuse - dehumanization - identity-inferiority - discriminatory-exclusion - hate-threat - criminal-demonstration - criminal-preparation - criminal-request - criminal-instructions - criminal-promotion - historical - documentary - fictional - support-prevention additionalProperties: oneOf: - type: object properties: status: type: string const: evaluated score: type: number minimum: 0 maximum: 1 scopeScore: type: number minimum: 0 maximum: 1 likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely required: - status - score - likelihood additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable required: - status - reason additionalProperties: false required: - status - likelihood - score additionalProperties: false - type: object properties: status: type: string const: partial likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely score: type: number minimum: 0 maximum: 1 qualifiers: type: object propertyNames: type: string enum: - nudity - sexual-activity - explicit-sexual-language - sexual-solicitation - physical-attack - violent-threat - violent-preparation - violent-encouragement - injury - death - graphic - self-harm-thoughts - self-harm-preparation - self-harm-act - self-harm-methods - self-harm-encouragement - personal-abuse - targeted-intimidation - harassment-threat - sexual-harassment - harassment-encouragement - identity-abuse - dehumanization - identity-inferiority - discriminatory-exclusion - hate-threat - criminal-demonstration - criminal-preparation - criminal-request - criminal-instructions - criminal-promotion - historical - documentary - fictional - support-prevention additionalProperties: oneOf: - type: object properties: status: type: string const: evaluated score: type: number minimum: 0 maximum: 1 scopeScore: type: number minimum: 0 maximum: 1 likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely required: - status - score - likelihood additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable required: - status - reason additionalProperties: false required: - status - likelihood - score additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable qualifiers: type: object propertyNames: type: string enum: - nudity - sexual-activity - explicit-sexual-language - sexual-solicitation - physical-attack - violent-threat - violent-preparation - violent-encouragement - injury - death - graphic - self-harm-thoughts - self-harm-preparation - self-harm-act - self-harm-methods - self-harm-encouragement - personal-abuse - targeted-intimidation - harassment-threat - sexual-harassment - harassment-encouragement - identity-abuse - dehumanization - identity-inferiority - discriminatory-exclusion - hate-threat - criminal-demonstration - criminal-preparation - criminal-request - criminal-instructions - criminal-promotion - historical - documentary - fictional - support-prevention additionalProperties: oneOf: - type: object properties: status: type: string const: evaluated score: type: number minimum: 0 maximum: 1 scopeScore: type: number minimum: 0 maximum: 1 likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely required: - status - score - likelihood additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable required: - status - reason additionalProperties: false required: - status - reason additionalProperties: false hate: oneOf: - type: object properties: status: type: string const: evaluated likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely score: type: number minimum: 0 maximum: 1 qualifiers: type: object propertyNames: type: string enum: - nudity - sexual-activity - explicit-sexual-language - sexual-solicitation - physical-attack - violent-threat - violent-preparation - violent-encouragement - injury - death - graphic - self-harm-thoughts - self-harm-preparation - self-harm-act - self-harm-methods - self-harm-encouragement - personal-abuse - targeted-intimidation - harassment-threat - sexual-harassment - harassment-encouragement - identity-abuse - dehumanization - identity-inferiority - discriminatory-exclusion - hate-threat - criminal-demonstration - criminal-preparation - criminal-request - criminal-instructions - criminal-promotion - historical - documentary - fictional - support-prevention additionalProperties: oneOf: - type: object properties: status: type: string const: evaluated score: type: number minimum: 0 maximum: 1 scopeScore: type: number minimum: 0 maximum: 1 likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely required: - status - score - likelihood additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable required: - status - reason additionalProperties: false required: - status - likelihood - score additionalProperties: false - type: object properties: status: type: string const: partial likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely score: type: number minimum: 0 maximum: 1 qualifiers: type: object propertyNames: type: string enum: - nudity - sexual-activity - explicit-sexual-language - sexual-solicitation - physical-attack - violent-threat - violent-preparation - violent-encouragement - injury - death - graphic - self-harm-thoughts - self-harm-preparation - self-harm-act - self-harm-methods - self-harm-encouragement - personal-abuse - targeted-intimidation - harassment-threat - sexual-harassment - harassment-encouragement - identity-abuse - dehumanization - identity-inferiority - discriminatory-exclusion - hate-threat - criminal-demonstration - criminal-preparation - criminal-request - criminal-instructions - criminal-promotion - historical - documentary - fictional - support-prevention additionalProperties: oneOf: - type: object properties: status: type: string const: evaluated score: type: number minimum: 0 maximum: 1 scopeScore: type: number minimum: 0 maximum: 1 likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely required: - status - score - likelihood additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable required: - status - reason additionalProperties: false required: - status - likelihood - score additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable qualifiers: type: object propertyNames: type: string enum: - nudity - sexual-activity - explicit-sexual-language - sexual-solicitation - physical-attack - violent-threat - violent-preparation - violent-encouragement - injury - death - graphic - self-harm-thoughts - self-harm-preparation - self-harm-act - self-harm-methods - self-harm-encouragement - personal-abuse - targeted-intimidation - harassment-threat - sexual-harassment - harassment-encouragement - identity-abuse - dehumanization - identity-inferiority - discriminatory-exclusion - hate-threat - criminal-demonstration - criminal-preparation - criminal-request - criminal-instructions - criminal-promotion - historical - documentary - fictional - support-prevention additionalProperties: oneOf: - type: object properties: status: type: string const: evaluated score: type: number minimum: 0 maximum: 1 scopeScore: type: number minimum: 0 maximum: 1 likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely required: - status - score - likelihood additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable required: - status - reason additionalProperties: false required: - status - reason additionalProperties: false criminal-activity: oneOf: - type: object properties: status: type: string const: evaluated likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely score: type: number minimum: 0 maximum: 1 qualifiers: type: object propertyNames: type: string enum: - nudity - sexual-activity - explicit-sexual-language - sexual-solicitation - physical-attack - violent-threat - violent-preparation - violent-encouragement - injury - death - graphic - self-harm-thoughts - self-harm-preparation - self-harm-act - self-harm-methods - self-harm-encouragement - personal-abuse - targeted-intimidation - harassment-threat - sexual-harassment - harassment-encouragement - identity-abuse - dehumanization - identity-inferiority - discriminatory-exclusion - hate-threat - criminal-demonstration - criminal-preparation - criminal-request - criminal-instructions - criminal-promotion - historical - documentary - fictional - support-prevention additionalProperties: oneOf: - type: object properties: status: type: string const: evaluated score: type: number minimum: 0 maximum: 1 scopeScore: type: number minimum: 0 maximum: 1 likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely required: - status - score - likelihood additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable required: - status - reason additionalProperties: false required: - status - likelihood - score additionalProperties: false - type: object properties: status: type: string const: partial likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely score: type: number minimum: 0 maximum: 1 qualifiers: type: object propertyNames: type: string enum: - nudity - sexual-activity - explicit-sexual-language - sexual-solicitation - physical-attack - violent-threat - violent-preparation - violent-encouragement - injury - death - graphic - self-harm-thoughts - self-harm-preparation - self-harm-act - self-harm-methods - self-harm-encouragement - personal-abuse - targeted-intimidation - harassment-threat - sexual-harassment - harassment-encouragement - identity-abuse - dehumanization - identity-inferiority - discriminatory-exclusion - hate-threat - criminal-demonstration - criminal-preparation - criminal-request - criminal-instructions - criminal-promotion - historical - documentary - fictional - support-prevention additionalProperties: oneOf: - type: object properties: status: type: string const: evaluated score: type: number minimum: 0 maximum: 1 scopeScore: type: number minimum: 0 maximum: 1 likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely required: - status - score - likelihood additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable required: - status - reason additionalProperties: false required: - status - likelihood - score additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable qualifiers: type: object propertyNames: type: string enum: - nudity - sexual-activity - explicit-sexual-language - sexual-solicitation - physical-attack - violent-threat - violent-preparation - violent-encouragement - injury - death - graphic - self-harm-thoughts - self-harm-preparation - self-harm-act - self-harm-methods - self-harm-encouragement - personal-abuse - targeted-intimidation - harassment-threat - sexual-harassment - harassment-encouragement - identity-abuse - dehumanization - identity-inferiority - discriminatory-exclusion - hate-threat - criminal-demonstration - criminal-preparation - criminal-request - criminal-instructions - criminal-promotion - historical - documentary - fictional - support-prevention additionalProperties: oneOf: - type: object properties: status: type: string const: evaluated score: type: number minimum: 0 maximum: 1 scopeScore: type: number minimum: 0 maximum: 1 likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely required: - status - score - likelihood additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable required: - status - reason additionalProperties: false required: - status - reason additionalProperties: false required: - sexual - violence - self-harm - harassment - hate - criminal-activity additionalProperties: false flagged: type: boolean score: type: number notes: anyOf: - {} - type: "null" media: type: object properties: durationSeconds: type: number exclusiveMinimum: 0 frameIntervalSeconds: type: number exclusiveMinimum: 0 sampledFrames: type: integer minimum: 0 maximum: 9007199254740991 audioTranscribed: type: boolean segments: type: array items: type: object properties: source: type: string enum: - frame - speech - frame-text - clip startSeconds: type: number minimum: 0 endSeconds: type: number minimum: 0 categories: type: object properties: sexual: oneOf: - type: object properties: status: type: string const: evaluated likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely score: type: number minimum: 0 maximum: 1 qualifiers: type: object propertyNames: type: string enum: - nudity - sexual-activity - explicit-sexual-language - sexual-solicitation - physical-attack - violent-threat - violent-preparation - violent-encouragement - injury - death - graphic - self-harm-thoughts - self-harm-preparation - self-harm-act - self-harm-methods - self-harm-encouragement - personal-abuse - targeted-intimidation - harassment-threat - sexual-harassment - harassment-encouragement - identity-abuse - dehumanization - identity-inferiority - discriminatory-exclusion - hate-threat - criminal-demonstration - criminal-preparation - criminal-request - criminal-instructions - criminal-promotion - historical - documentary - fictional - support-prevention additionalProperties: oneOf: - type: object properties: status: type: string const: evaluated score: type: number minimum: 0 maximum: 1 scopeScore: type: number minimum: 0 maximum: 1 likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely required: - status - score - likelihood additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable required: - status - reason additionalProperties: false required: - status - likelihood - score additionalProperties: false - type: object properties: status: type: string const: partial likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely score: type: number minimum: 0 maximum: 1 qualifiers: type: object propertyNames: type: string enum: - nudity - sexual-activity - explicit-sexual-language - sexual-solicitation - physical-attack - violent-threat - violent-preparation - violent-encouragement - injury - death - graphic - self-harm-thoughts - self-harm-preparation - self-harm-act - self-harm-methods - self-harm-encouragement - personal-abuse - targeted-intimidation - harassment-threat - sexual-harassment - harassment-encouragement - identity-abuse - dehumanization - identity-inferiority - discriminatory-exclusion - hate-threat - criminal-demonstration - criminal-preparation - criminal-request - criminal-instructions - criminal-promotion - historical - documentary - fictional - support-prevention additionalProperties: oneOf: - type: object properties: status: type: string const: evaluated score: type: number minimum: 0 maximum: 1 scopeScore: type: number minimum: 0 maximum: 1 likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely required: - status - score - likelihood additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable required: - status - reason additionalProperties: false required: - status - likelihood - score additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable qualifiers: type: object propertyNames: type: string enum: - nudity - sexual-activity - explicit-sexual-language - sexual-solicitation - physical-attack - violent-threat - violent-preparation - violent-encouragement - injury - death - graphic - self-harm-thoughts - self-harm-preparation - self-harm-act - self-harm-methods - self-harm-encouragement - personal-abuse - targeted-intimidation - harassment-threat - sexual-harassment - harassment-encouragement - identity-abuse - dehumanization - identity-inferiority - discriminatory-exclusion - hate-threat - criminal-demonstration - criminal-preparation - criminal-request - criminal-instructions - criminal-promotion - historical - documentary - fictional - support-prevention additionalProperties: oneOf: - type: object properties: status: type: string const: evaluated score: type: number minimum: 0 maximum: 1 scopeScore: type: number minimum: 0 maximum: 1 likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely required: - status - score - likelihood additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable required: - status - reason additionalProperties: false required: - status - reason additionalProperties: false violence: oneOf: - type: object properties: status: type: string const: evaluated likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely score: type: number minimum: 0 maximum: 1 qualifiers: type: object propertyNames: type: string enum: - nudity - sexual-activity - explicit-sexual-language - sexual-solicitation - physical-attack - violent-threat - violent-preparation - violent-encouragement - injury - death - graphic - self-harm-thoughts - self-harm-preparation - self-harm-act - self-harm-methods - self-harm-encouragement - personal-abuse - targeted-intimidation - harassment-threat - sexual-harassment - harassment-encouragement - identity-abuse - dehumanization - identity-inferiority - discriminatory-exclusion - hate-threat - criminal-demonstration - criminal-preparation - criminal-request - criminal-instructions - criminal-promotion - historical - documentary - fictional - support-prevention additionalProperties: oneOf: - type: object properties: status: type: string const: evaluated score: type: number minimum: 0 maximum: 1 scopeScore: type: number minimum: 0 maximum: 1 likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely required: - status - score - likelihood additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable required: - status - reason additionalProperties: false required: - status - likelihood - score additionalProperties: false - type: object properties: status: type: string const: partial likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely score: type: number minimum: 0 maximum: 1 qualifiers: type: object propertyNames: type: string enum: - nudity - sexual-activity - explicit-sexual-language - sexual-solicitation - physical-attack - violent-threat - violent-preparation - violent-encouragement - injury - death - graphic - self-harm-thoughts - self-harm-preparation - self-harm-act - self-harm-methods - self-harm-encouragement - personal-abuse - targeted-intimidation - harassment-threat - sexual-harassment - harassment-encouragement - identity-abuse - dehumanization - identity-inferiority - discriminatory-exclusion - hate-threat - criminal-demonstration - criminal-preparation - criminal-request - criminal-instructions - criminal-promotion - historical - documentary - fictional - support-prevention additionalProperties: oneOf: - type: object properties: status: type: string const: evaluated score: type: number minimum: 0 maximum: 1 scopeScore: type: number minimum: 0 maximum: 1 likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely required: - status - score - likelihood additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable required: - status - reason additionalProperties: false required: - status - likelihood - score additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable qualifiers: type: object propertyNames: type: string enum: - nudity - sexual-activity - explicit-sexual-language - sexual-solicitation - physical-attack - violent-threat - violent-preparation - violent-encouragement - injury - death - graphic - self-harm-thoughts - self-harm-preparation - self-harm-act - self-harm-methods - self-harm-encouragement - personal-abuse - targeted-intimidation - harassment-threat - sexual-harassment - harassment-encouragement - identity-abuse - dehumanization - identity-inferiority - discriminatory-exclusion - hate-threat - criminal-demonstration - criminal-preparation - criminal-request - criminal-instructions - criminal-promotion - historical - documentary - fictional - support-prevention additionalProperties: oneOf: - type: object properties: status: type: string const: evaluated score: type: number minimum: 0 maximum: 1 scopeScore: type: number minimum: 0 maximum: 1 likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely required: - status - score - likelihood additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable required: - status - reason additionalProperties: false required: - status - reason additionalProperties: false self-harm: oneOf: - type: object properties: status: type: string const: evaluated likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely score: type: number minimum: 0 maximum: 1 qualifiers: type: object propertyNames: type: string enum: - nudity - sexual-activity - explicit-sexual-language - sexual-solicitation - physical-attack - violent-threat - violent-preparation - violent-encouragement - injury - death - graphic - self-harm-thoughts - self-harm-preparation - self-harm-act - self-harm-methods - self-harm-encouragement - personal-abuse - targeted-intimidation - harassment-threat - sexual-harassment - harassment-encouragement - identity-abuse - dehumanization - identity-inferiority - discriminatory-exclusion - hate-threat - criminal-demonstration - criminal-preparation - criminal-request - criminal-instructions - criminal-promotion - historical - documentary - fictional - support-prevention additionalProperties: oneOf: - type: object properties: status: type: string const: evaluated score: type: number minimum: 0 maximum: 1 scopeScore: type: number minimum: 0 maximum: 1 likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely required: - status - score - likelihood additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable required: - status - reason additionalProperties: false required: - status - likelihood - score additionalProperties: false - type: object properties: status: type: string const: partial likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely score: type: number minimum: 0 maximum: 1 qualifiers: type: object propertyNames: type: string enum: - nudity - sexual-activity - explicit-sexual-language - sexual-solicitation - physical-attack - violent-threat - violent-preparation - violent-encouragement - injury - death - graphic - self-harm-thoughts - self-harm-preparation - self-harm-act - self-harm-methods - self-harm-encouragement - personal-abuse - targeted-intimidation - harassment-threat - sexual-harassment - harassment-encouragement - identity-abuse - dehumanization - identity-inferiority - discriminatory-exclusion - hate-threat - criminal-demonstration - criminal-preparation - criminal-request - criminal-instructions - criminal-promotion - historical - documentary - fictional - support-prevention additionalProperties: oneOf: - type: object properties: status: type: string const: evaluated score: type: number minimum: 0 maximum: 1 scopeScore: type: number minimum: 0 maximum: 1 likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely required: - status - score - likelihood additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable required: - status - reason additionalProperties: false required: - status - likelihood - score additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable qualifiers: type: object propertyNames: type: string enum: - nudity - sexual-activity - explicit-sexual-language - sexual-solicitation - physical-attack - violent-threat - violent-preparation - violent-encouragement - injury - death - graphic - self-harm-thoughts - self-harm-preparation - self-harm-act - self-harm-methods - self-harm-encouragement - personal-abuse - targeted-intimidation - harassment-threat - sexual-harassment - harassment-encouragement - identity-abuse - dehumanization - identity-inferiority - discriminatory-exclusion - hate-threat - criminal-demonstration - criminal-preparation - criminal-request - criminal-instructions - criminal-promotion - historical - documentary - fictional - support-prevention additionalProperties: oneOf: - type: object properties: status: type: string const: evaluated score: type: number minimum: 0 maximum: 1 scopeScore: type: number minimum: 0 maximum: 1 likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely required: - status - score - likelihood additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable required: - status - reason additionalProperties: false required: - status - reason additionalProperties: false harassment: oneOf: - type: object properties: status: type: string const: evaluated likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely score: type: number minimum: 0 maximum: 1 qualifiers: type: object propertyNames: type: string enum: - nudity - sexual-activity - explicit-sexual-language - sexual-solicitation - physical-attack - violent-threat - violent-preparation - violent-encouragement - injury - death - graphic - self-harm-thoughts - self-harm-preparation - self-harm-act - self-harm-methods - self-harm-encouragement - personal-abuse - targeted-intimidation - harassment-threat - sexual-harassment - harassment-encouragement - identity-abuse - dehumanization - identity-inferiority - discriminatory-exclusion - hate-threat - criminal-demonstration - criminal-preparation - criminal-request - criminal-instructions - criminal-promotion - historical - documentary - fictional - support-prevention additionalProperties: oneOf: - type: object properties: status: type: string const: evaluated score: type: number minimum: 0 maximum: 1 scopeScore: type: number minimum: 0 maximum: 1 likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely required: - status - score - likelihood additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable required: - status - reason additionalProperties: false required: - status - likelihood - score additionalProperties: false - type: object properties: status: type: string const: partial likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely score: type: number minimum: 0 maximum: 1 qualifiers: type: object propertyNames: type: string enum: - nudity - sexual-activity - explicit-sexual-language - sexual-solicitation - physical-attack - violent-threat - violent-preparation - violent-encouragement - injury - death - graphic - self-harm-thoughts - self-harm-preparation - self-harm-act - self-harm-methods - self-harm-encouragement - personal-abuse - targeted-intimidation - harassment-threat - sexual-harassment - harassment-encouragement - identity-abuse - dehumanization - identity-inferiority - discriminatory-exclusion - hate-threat - criminal-demonstration - criminal-preparation - criminal-request - criminal-instructions - criminal-promotion - historical - documentary - fictional - support-prevention additionalProperties: oneOf: - type: object properties: status: type: string const: evaluated score: type: number minimum: 0 maximum: 1 scopeScore: type: number minimum: 0 maximum: 1 likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely required: - status - score - likelihood additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable required: - status - reason additionalProperties: false required: - status - likelihood - score additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable qualifiers: type: object propertyNames: type: string enum: - nudity - sexual-activity - explicit-sexual-language - sexual-solicitation - physical-attack - violent-threat - violent-preparation - violent-encouragement - injury - death - graphic - self-harm-thoughts - self-harm-preparation - self-harm-act - self-harm-methods - self-harm-encouragement - personal-abuse - targeted-intimidation - harassment-threat - sexual-harassment - harassment-encouragement - identity-abuse - dehumanization - identity-inferiority - discriminatory-exclusion - hate-threat - criminal-demonstration - criminal-preparation - criminal-request - criminal-instructions - criminal-promotion - historical - documentary - fictional - support-prevention additionalProperties: oneOf: - type: object properties: status: type: string const: evaluated score: type: number minimum: 0 maximum: 1 scopeScore: type: number minimum: 0 maximum: 1 likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely required: - status - score - likelihood additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable required: - status - reason additionalProperties: false required: - status - reason additionalProperties: false hate: oneOf: - type: object properties: status: type: string const: evaluated likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely score: type: number minimum: 0 maximum: 1 qualifiers: type: object propertyNames: type: string enum: - nudity - sexual-activity - explicit-sexual-language - sexual-solicitation - physical-attack - violent-threat - violent-preparation - violent-encouragement - injury - death - graphic - self-harm-thoughts - self-harm-preparation - self-harm-act - self-harm-methods - self-harm-encouragement - personal-abuse - targeted-intimidation - harassment-threat - sexual-harassment - harassment-encouragement - identity-abuse - dehumanization - identity-inferiority - discriminatory-exclusion - hate-threat - criminal-demonstration - criminal-preparation - criminal-request - criminal-instructions - criminal-promotion - historical - documentary - fictional - support-prevention additionalProperties: oneOf: - type: object properties: status: type: string const: evaluated score: type: number minimum: 0 maximum: 1 scopeScore: type: number minimum: 0 maximum: 1 likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely required: - status - score - likelihood additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable required: - status - reason additionalProperties: false required: - status - likelihood - score additionalProperties: false - type: object properties: status: type: string const: partial likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely score: type: number minimum: 0 maximum: 1 qualifiers: type: object propertyNames: type: string enum: - nudity - sexual-activity - explicit-sexual-language - sexual-solicitation - physical-attack - violent-threat - violent-preparation - violent-encouragement - injury - death - graphic - self-harm-thoughts - self-harm-preparation - self-harm-act - self-harm-methods - self-harm-encouragement - personal-abuse - targeted-intimidation - harassment-threat - sexual-harassment - harassment-encouragement - identity-abuse - dehumanization - identity-inferiority - discriminatory-exclusion - hate-threat - criminal-demonstration - criminal-preparation - criminal-request - criminal-instructions - criminal-promotion - historical - documentary - fictional - support-prevention additionalProperties: oneOf: - type: object properties: status: type: string const: evaluated score: type: number minimum: 0 maximum: 1 scopeScore: type: number minimum: 0 maximum: 1 likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely required: - status - score - likelihood additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable required: - status - reason additionalProperties: false required: - status - likelihood - score additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable qualifiers: type: object propertyNames: type: string enum: - nudity - sexual-activity - explicit-sexual-language - sexual-solicitation - physical-attack - violent-threat - violent-preparation - violent-encouragement - injury - death - graphic - self-harm-thoughts - self-harm-preparation - self-harm-act - self-harm-methods - self-harm-encouragement - personal-abuse - targeted-intimidation - harassment-threat - sexual-harassment - harassment-encouragement - identity-abuse - dehumanization - identity-inferiority - discriminatory-exclusion - hate-threat - criminal-demonstration - criminal-preparation - criminal-request - criminal-instructions - criminal-promotion - historical - documentary - fictional - support-prevention additionalProperties: oneOf: - type: object properties: status: type: string const: evaluated score: type: number minimum: 0 maximum: 1 scopeScore: type: number minimum: 0 maximum: 1 likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely required: - status - score - likelihood additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable required: - status - reason additionalProperties: false required: - status - reason additionalProperties: false criminal-activity: oneOf: - type: object properties: status: type: string const: evaluated likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely score: type: number minimum: 0 maximum: 1 qualifiers: type: object propertyNames: type: string enum: - nudity - sexual-activity - explicit-sexual-language - sexual-solicitation - physical-attack - violent-threat - violent-preparation - violent-encouragement - injury - death - graphic - self-harm-thoughts - self-harm-preparation - self-harm-act - self-harm-methods - self-harm-encouragement - personal-abuse - targeted-intimidation - harassment-threat - sexual-harassment - harassment-encouragement - identity-abuse - dehumanization - identity-inferiority - discriminatory-exclusion - hate-threat - criminal-demonstration - criminal-preparation - criminal-request - criminal-instructions - criminal-promotion - historical - documentary - fictional - support-prevention additionalProperties: oneOf: - type: object properties: status: type: string const: evaluated score: type: number minimum: 0 maximum: 1 scopeScore: type: number minimum: 0 maximum: 1 likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely required: - status - score - likelihood additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable required: - status - reason additionalProperties: false required: - status - likelihood - score additionalProperties: false - type: object properties: status: type: string const: partial likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely score: type: number minimum: 0 maximum: 1 qualifiers: type: object propertyNames: type: string enum: - nudity - sexual-activity - explicit-sexual-language - sexual-solicitation - physical-attack - violent-threat - violent-preparation - violent-encouragement - injury - death - graphic - self-harm-thoughts - self-harm-preparation - self-harm-act - self-harm-methods - self-harm-encouragement - personal-abuse - targeted-intimidation - harassment-threat - sexual-harassment - harassment-encouragement - identity-abuse - dehumanization - identity-inferiority - discriminatory-exclusion - hate-threat - criminal-demonstration - criminal-preparation - criminal-request - criminal-instructions - criminal-promotion - historical - documentary - fictional - support-prevention additionalProperties: oneOf: - type: object properties: status: type: string const: evaluated score: type: number minimum: 0 maximum: 1 scopeScore: type: number minimum: 0 maximum: 1 likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely required: - status - score - likelihood additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable required: - status - reason additionalProperties: false required: - status - likelihood - score additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable qualifiers: type: object propertyNames: type: string enum: - nudity - sexual-activity - explicit-sexual-language - sexual-solicitation - physical-attack - violent-threat - violent-preparation - violent-encouragement - injury - death - graphic - self-harm-thoughts - self-harm-preparation - self-harm-act - self-harm-methods - self-harm-encouragement - personal-abuse - targeted-intimidation - harassment-threat - sexual-harassment - harassment-encouragement - identity-abuse - dehumanization - identity-inferiority - discriminatory-exclusion - hate-threat - criminal-demonstration - criminal-preparation - criminal-request - criminal-instructions - criminal-promotion - historical - documentary - fictional - support-prevention additionalProperties: oneOf: - type: object properties: status: type: string const: evaluated score: type: number minimum: 0 maximum: 1 scopeScore: type: number minimum: 0 maximum: 1 likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely required: - status - score - likelihood additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable required: - status - reason additionalProperties: false required: - status - reason additionalProperties: false required: - sexual - violence - self-harm - harassment - hate - criminal-activity additionalProperties: false required: - source - startSeconds - endSeconds - categories additionalProperties: false required: - durationSeconds - sampledFrames - audioTranscribed - segments additionalProperties: false labels: anyOf: - type: array items: type: object properties: description: {} score: type: number topicalityScore: type: - number - "null" likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely knowledgeBaseId: anyOf: - {} - type: "null" required: - description - score - likelihood additionalProperties: false - type: "null" required: - processedAt - categories - flagged - score additionalProperties: false - type: "null" moderationAction: anyOf: - type: string enum: - ignore - alert - hide - purge - type: "null" description: The moderation action applied when this asset crossed a policy threshold status: type: string enum: - uploading - pending - approved - rejected - error description: Processing and moderation status. See [Asset lifecycle](/docs/guides/asset-lifecycle). safetyHold: anyOf: - type: object properties: placedAt: type: number description: When the hold was placed, in milliseconds since the Unix epoch reason: type: string enum: - suspected-illegal-content description: Why the asset is held disposedAt: description: When the held content was disposed of, in milliseconds since the Unix epoch type: - number - "null" required: - placedAt - reason additionalProperties: false - type: "null" description: Internal delivery restriction for suspected illegal content. Held content cannot be viewed, changed, or deleted through normal asset operations. rejectionNote: anyOf: - {} - type: "null" description: Reason the asset was rejected, generated automatically or supplied by a reviewer extractedText: anyOf: - oneOf: - type: object properties: type: type: string const: string content: type: string required: - type - content additionalProperties: false - type: object properties: type: type: string const: document id: {} required: - type - id additionalProperties: false - type: "null" description: Extracted text stored inline for small content or in R2 for larger content processingOptions: description: Processing options supplied when the asset was uploaded anyOf: - type: object properties: keepContentAfterProcessing: description: Whether to keep the asset content after processing default: false type: - boolean - "null" flaggedContentPolicy: anyOf: - type: object properties: action: type: string enum: - ignore - alert - hide - purge required: - action additionalProperties: false - type: "null" description: Override the project moderation action for this asset. Ignore takes no action, alert keeps delivery enabled, hide blocks delivery while retaining content, and purge deletes content. image: description: Options for image assets anyOf: - type: object properties: ocrEnabled: description: Whether to extract image text into a child asset and run normal text moderation. Applies to images, including those extracted from multimedia documents and websites. default: false type: - boolean - "null" additionalProperties: false - type: "null" additionalProperties: false - type: "null" visibility: anyOf: - type: string enum: - public - private - type: "null" description: Visibility level of the asset default: private storageDeletedAt: description: When the stored content was removed, in milliseconds since the Unix epoch. The asset record and report remain. type: - number - "null" required: - id - projectId - createdAt - name - type - status additionalProperties: false description: An asset in the system $defs: __schema0: anyOf: - type: string - type: number - type: boolean - type: "null" - type: array items: $ref: "#/paths/~1projects~1{projectId}~1assets~1upload/post/responses/200/content/application~1json/schema/$defs/__schema0" - type: object propertyNames: type: string additionalProperties: $ref: "#/paths/~1projects~1{projectId}~1assets~1upload/post/responses/200/content/application~1json/schema/$defs/__schema0" "400": description: |- upload/file-too-large: File size exceeds limit. Maximum direct image size is 10MB, audio/video size is 50MiB, and other files is 5GB. upload/image-requires-multipart-upload: Images of 10MB or more must use a multipart upload. upload/multipart-image-too-small: Multipart image uploads must total at least 10MB. upload/multipart-image-too-large: Multipart image uploads cannot exceed 20MB. upload/invalid-mime-type: Upload file type is not supported. Uploads must use a concrete file MIME type that CalmLens can store and process, such as image/png, image/jpeg, application/pdf, or text/plain. upload/invalid-payload: Upload payload is invalid. idempotency/invalid-key: The Idempotency-Key header must be 1 to 255 printable ASCII characters, such as a UUID. headers: X-Request-Id: *a1 content: application/json: schema: type: object required: - message - code - traceId properties: message: type: string code: type: string enum: - upload/file-too-large - upload/image-requires-multipart-upload - upload/multipart-image-too-small - upload/multipart-image-too-large - upload/invalid-mime-type - upload/invalid-payload - idempotency/invalid-key traceId: type: string examples: upload-file-too-large: summary: File size exceeds limit. Maximum direct image size is 10MB, audio/video size is 50MiB, and other files is 5GB. value: message: File size exceeds limit. Maximum direct image size is 10MB, audio/video size is 50MiB, and other files is 5GB. code: upload/file-too-large traceId: request-trace-id upload-image-requires-multipart-upload: summary: Images of 10MB or more must use a multipart upload. value: message: Images of 10MB or more must use a multipart upload. code: upload/image-requires-multipart-upload traceId: request-trace-id upload-multipart-image-too-small: summary: Multipart image uploads must total at least 10MB. value: message: Multipart image uploads must total at least 10MB. code: upload/multipart-image-too-small traceId: request-trace-id upload-multipart-image-too-large: summary: Multipart image uploads cannot exceed 20MB. value: message: Multipart image uploads cannot exceed 20MB. code: upload/multipart-image-too-large traceId: request-trace-id upload-invalid-mime-type: summary: Upload file type is not supported. Uploads must use a concrete file MIME type that CalmLens can store and process, such as image/png, image/jpeg, application/pdf, or text/plain. value: message: Upload file type is not supported. Uploads must use a concrete file MIME type that CalmLens can store and process, such as image/png, image/jpeg, application/pdf, or text/plain. code: upload/invalid-mime-type traceId: request-trace-id upload-invalid-payload: summary: Upload payload is invalid. value: message: Upload payload is invalid. code: upload/invalid-payload traceId: request-trace-id idempotency-invalid-key: summary: The Idempotency-Key header must be 1 to 255 printable ASCII characters, such as a UUID. value: message: The Idempotency-Key header must be 1 to 255 printable ASCII characters, such as a UUID. code: idempotency/invalid-key traceId: request-trace-id "401": description: |- auth/missing-token: Authentication required. Send your project API key in the X-Api-Key header. auth/invalid-api-key: The API key is invalid, revoked or expired. Create a key under Developer → API Keys. headers: X-Request-Id: *a1 content: application/json: schema: type: object required: - message - code - traceId properties: message: type: string code: type: string enum: - auth/missing-token - auth/invalid-api-key traceId: type: string examples: auth-missing-token: summary: Authentication required. Send your project API key in the X-Api-Key header. value: message: Authentication required. Send your project API key in the X-Api-Key header. code: auth/missing-token traceId: request-trace-id auth-invalid-api-key: summary: The API key is invalid, revoked or expired. Create a key under Developer → API Keys. value: message: The API key is invalid, revoked or expired. Create a key under Developer → API Keys. code: auth/invalid-api-key traceId: request-trace-id "403": description: |- auth/project-mismatch: This API key belongs to a different project. Use a key created for the project that owns this resource. upload/limit-exceeded: Upload limit exceeded. You have used all your free uploads. Please upgrade to Plus or Pro for unlimited uploads. headers: X-Request-Id: *a1 content: application/json: schema: type: object required: - message - code - traceId properties: message: type: string code: type: string enum: - auth/project-mismatch - upload/limit-exceeded traceId: type: string examples: auth-project-mismatch: summary: This API key belongs to a different project. Use a key created for the project that owns this resource. value: message: This API key belongs to a different project. Use a key created for the project that owns this resource. code: auth/project-mismatch traceId: request-trace-id upload-limit-exceeded: summary: Upload limit exceeded. You have used all your free uploads. Please upgrade to Plus or Pro for unlimited uploads. value: message: Upload limit exceeded. You have used all your free uploads. Please upgrade to Plus or Pro for unlimited uploads. code: upload/limit-exceeded traceId: request-trace-id "404": description: "folder/not-found: Folder not found" headers: X-Request-Id: *a1 content: application/json: schema: type: object required: - message - code - traceId properties: message: type: string code: type: string enum: - folder/not-found traceId: type: string examples: folder-not-found: summary: Folder not found value: message: Folder not found code: folder/not-found traceId: request-trace-id "409": description: |- asset/duplicate-external-id: An asset with this externalId already exists in the project. idempotency/key-reused: This Idempotency-Key was already used for a different request. Use a new key for each distinct request. idempotency/request-in-progress: A request with this Idempotency-Key is still being processed. Retry after the Retry-After delay to receive its result. headers: X-Request-Id: *a1 Retry-After: *a3 content: application/json: schema: type: object required: - message - code - traceId properties: message: type: string code: type: string enum: - asset/duplicate-external-id - idempotency/key-reused - idempotency/request-in-progress traceId: type: string examples: asset-duplicate-external-id: summary: An asset with this externalId already exists in the project. value: message: An asset with this externalId already exists in the project. code: asset/duplicate-external-id traceId: request-trace-id idempotency-key-reused: summary: This Idempotency-Key was already used for a different request. Use a new key for each distinct request. value: message: This Idempotency-Key was already used for a different request. Use a new key for each distinct request. code: idempotency/key-reused traceId: request-trace-id idempotency-request-in-progress: summary: A request with this Idempotency-Key is still being processed. Retry after the Retry-After delay to receive its result. value: message: A request with this Idempotency-Key is still being processed. Retry after the Retry-After delay to receive its result. code: idempotency/request-in-progress traceId: request-trace-id requestBody: required: true description: The raw file bytes, sent with the file's MIME type as `Content-Type` content: application/octet-stream: schema: type: string format: binary parameters: - name: projectId in: path required: true description: UUID of the project to upload the asset to schema: type: string format: uuid pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$ description: UUID of the project to upload the asset to - name: name in: query required: true description: Name of the asset schema: type: string minLength: 1 description: Name of the asset example: cat.jpg - name: contentType in: query required: true description: MIME type of the file, such as `image/jpeg`. Ambiguous types are rejected. schema: type: string minLength: 1 description: MIME type of the file, such as `image/jpeg`. Ambiguous types are rejected. example: image/jpeg - name: queue in: query required: false description: If true, queue classification and return straight away. If false, wait for the decision. A multipart upload saves this choice and applies it when the final part arrives. schema: description: If true, queue classification and return straight away. If false, wait for the decision. A multipart upload saves this choice and applies it when the final part arrives. type: - boolean - string example: true - name: description in: query required: false description: Optional description of the asset schema: description: Optional description of the asset type: string - name: processingOptions in: query required: false description: Processing options as URL-encoded JSON, such as `{"keepContentAfterProcessing":true}` schema: description: Processing options as URL-encoded JSON, such as `{"keepContentAfterProcessing":true}` type: string - name: visibility in: query required: false description: Visibility of the asset schema: description: Visibility of the asset type: string enum: - public - private example: private - name: metadata in: query required: false description: Custom metadata as a URL-encoded JSON array of `{ id, value }` items schema: description: Custom metadata as a URL-encoded JSON array of `{ id, value }` items type: string - name: externalId in: query required: false description: Your identifier for the asset schema: description: Your identifier for the asset type: string - name: externalUrl in: query required: false description: URL in your app associated with the asset schema: description: URL in your app associated with the asset type: string format: uri - name: folderId in: query required: false description: ID of the folder to upload into schema: description: ID of the folder to upload into type: string format: uuid pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$ - name: partNumber in: query required: false description: "Multipart uploads only: the part number, starting at 1" schema: description: "Multipart uploads only: the part number, starting at 1" type: integer exclusiveMinimum: 0 maximum: 9007199254740991 - name: isFinal in: query required: false description: "Multipart uploads only: true when this is the last part" schema: description: "Multipart uploads only: true when this is the last part" type: - boolean - string - name: sizeInBytes in: query required: false description: The exact size of this request's body in bytes. For a multipart upload, the size of the first part. schema: description: The exact size of this request's body in bytes. For a multipart upload, the size of the first part. type: integer exclusiveMinimum: 0 maximum: 9007199254740991 - name: totalSizeInBytes in: query required: false description: "Multipart uploads only: the size of the whole file in bytes, if known. CalmLens checks it against the upload limits before any part is stored, and the final part fails with `upload/size-mismatch` if the parts add up to a different size." schema: description: "Multipart uploads only: the size of the whole file in bytes, if known. CalmLens checks it against the upload limits before any part is stored, and the final part fails with `upload/size-mismatch` if the parts add up to a different size." type: integer exclusiveMinimum: 0 maximum: 9007199254740991 - name: Idempotency-Key in: header required: false description: A unique value, such as a UUID, that makes the request safe to retry. A retry with the same key and the same request returns the saved response for 24 hours instead of running again. Keys are scoped to the project and the API key. schema: type: string minLength: 1 maxLength: 255 - name: X-CalmLens-Upload in: header required: true description: Marks the request body as raw file bytes schema: type: string enum: - content /projects/{projectId}/assets/multipart-upload: post: operationId: post-asset-multipart-upload summary: Start Multipart File Upload description: "Start a multipart upload by streaming the first part's raw bytes as the request body, with the `X-CalmLens-Upload: part` header and the file's `Content-Type`. Pass `partNumber=1`, `isFinal`, the part's `sizeInBytes` and, if known, the file's `totalSizeInBytes` as query parameters, then send later parts to Upload Asset Part. The `queue` choice is saved with the upload and applies when the final part arrives." security: - ApiKeyAuth: [] responses: "200": description: Successful response headers: X-Request-Id: *a1 Idempotent-Replayed: *a2 content: application/json: schema: type: object properties: id: type: string format: uuid pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-4[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$ description: Unique asset ID projectId: type: string format: uuid pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-4[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$ description: ID of the project that owns the asset sizeInBytes: description: Size of the uploaded content in bytes type: - number - "null" userId: description: ID of the user whose account created the asset anyOf: - {} - type: "null" parentId: description: ID of the parent asset for child assets CalmLens extracts during processing, such as images in a document or OCR text. `null` for uploaded assets. anyOf: - type: string format: uuid pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-4[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$ - type: "null" folderId: anyOf: - type: string format: uuid pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-4[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$ - type: "null" description: Folder containing the asset createdAt: type: integer minimum: -9007199254740991 maximum: 9007199254740991 description: When the asset was created, in milliseconds since the Unix epoch updatedAt: description: When the asset was last updated, in milliseconds since the Unix epoch type: integer minimum: -9007199254740991 maximum: 9007199254740991 checksums: description: Digests of the uploaded content anyOf: - type: object properties: md5: description: MD5 digest of the uploaded content type: - string - "null" sha1: description: SHA-1 digest of the uploaded content type: - string - "null" sha256: description: SHA-256 digest of the uploaded content type: - string - "null" sha384: description: SHA-384 digest of the uploaded content type: - string - "null" sha512: description: SHA-512 digest of the uploaded content type: - string - "null" additionalProperties: false - type: "null" imageData: description: Image properties, for image assets anyOf: - type: object properties: perceptualHash: description: Perceptual hash used to match visually similar images type: - string - "null" width: description: Image width in pixels anyOf: - type: integer exclusiveMinimum: 0 maximum: 9007199254740991 - type: "null" height: description: Image height in pixels anyOf: - type: integer exclusiveMinimum: 0 maximum: 9007199254740991 - type: "null" additionalProperties: false - type: "null" documentData: description: Document properties, for documents anyOf: - type: object properties: {} additionalProperties: false - type: "null" name: description: Name of the asset fileFormat: description: MIME type of the stored content anyOf: - {} - type: "null" fileExtension: description: File extension of the stored content anyOf: - {} - type: "null" description: anyOf: - {} - type: "null" description: Optional description of the asset externalId: anyOf: - {} - type: "null" description: External identifier for the asset externalUrl: anyOf: - type: string format: uri - type: "null" description: External URL associated with the asset previewImage: description: Browser-friendly preview generated for images, documents and websites anyOf: - type: object properties: id: anyOf: - {} - type: "null" description: Identifier of the stored preview image fileFormat: anyOf: - {} - type: "null" description: File format of the preview, such as `webp` thumbhash: anyOf: - {} - type: "null" description: ThumbHash placeholder you can render while the preview loads averageColor: anyOf: - {} - type: "null" description: Average color of the preview width: anyOf: - type: integer exclusiveMinimum: 0 maximum: 9007199254740991 - type: "null" description: Preview width in pixels height: anyOf: - type: integer exclusiveMinimum: 0 maximum: 9007199254740991 - type: "null" description: Preview height in pixels required: - id - fileFormat - thumbhash - averageColor - width - height additionalProperties: false - type: "null" storageId: description: Internal storage key of the retained content; `null` when nothing is stored anyOf: - {} - type: "null" uploadPartsReceived: description: Number of parts received so far for a multipart upload anyOf: - type: integer minimum: -9007199254740991 maximum: 9007199254740991 - type: "null" type: type: string enum: - image - video - audio - plaintext-document - multimedia-document - website - file description: Asset type, detected from the content's MIME type metadata: anyOf: - type: array items: type: object properties: id: description: Identifier for the metadata item value: $ref: "#/paths/~1projects~1{projectId}~1assets~1multipart-upload/post/responses/200/content/application~1json/schema/$defs/__schema0" description: Value of the metadata item required: - id - value additionalProperties: false description: A metadata item with an ID and value - type: "null" description: List of custom metadata items for the asset tags: anyOf: - type: array items: {} - type: "null" description: Array of tags for the asset report: description: Moderation report, set once classification finishes. See [Report format](/docs/guides/moderation-reports). anyOf: - type: object properties: processedAt: type: number categories: type: object properties: sexual: oneOf: - type: object properties: status: type: string const: evaluated likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely score: type: number minimum: 0 maximum: 1 qualifiers: type: object propertyNames: type: string enum: - nudity - sexual-activity - explicit-sexual-language - sexual-solicitation - physical-attack - violent-threat - violent-preparation - violent-encouragement - injury - death - graphic - self-harm-thoughts - self-harm-preparation - self-harm-act - self-harm-methods - self-harm-encouragement - personal-abuse - targeted-intimidation - harassment-threat - sexual-harassment - harassment-encouragement - identity-abuse - dehumanization - identity-inferiority - discriminatory-exclusion - hate-threat - criminal-demonstration - criminal-preparation - criminal-request - criminal-instructions - criminal-promotion - historical - documentary - fictional - support-prevention additionalProperties: oneOf: - type: object properties: status: type: string const: evaluated score: type: number minimum: 0 maximum: 1 scopeScore: type: number minimum: 0 maximum: 1 likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely required: - status - score - likelihood additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable required: - status - reason additionalProperties: false required: - status - likelihood - score additionalProperties: false - type: object properties: status: type: string const: partial likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely score: type: number minimum: 0 maximum: 1 qualifiers: type: object propertyNames: type: string enum: - nudity - sexual-activity - explicit-sexual-language - sexual-solicitation - physical-attack - violent-threat - violent-preparation - violent-encouragement - injury - death - graphic - self-harm-thoughts - self-harm-preparation - self-harm-act - self-harm-methods - self-harm-encouragement - personal-abuse - targeted-intimidation - harassment-threat - sexual-harassment - harassment-encouragement - identity-abuse - dehumanization - identity-inferiority - discriminatory-exclusion - hate-threat - criminal-demonstration - criminal-preparation - criminal-request - criminal-instructions - criminal-promotion - historical - documentary - fictional - support-prevention additionalProperties: oneOf: - type: object properties: status: type: string const: evaluated score: type: number minimum: 0 maximum: 1 scopeScore: type: number minimum: 0 maximum: 1 likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely required: - status - score - likelihood additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable required: - status - reason additionalProperties: false required: - status - likelihood - score additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable qualifiers: type: object propertyNames: type: string enum: - nudity - sexual-activity - explicit-sexual-language - sexual-solicitation - physical-attack - violent-threat - violent-preparation - violent-encouragement - injury - death - graphic - self-harm-thoughts - self-harm-preparation - self-harm-act - self-harm-methods - self-harm-encouragement - personal-abuse - targeted-intimidation - harassment-threat - sexual-harassment - harassment-encouragement - identity-abuse - dehumanization - identity-inferiority - discriminatory-exclusion - hate-threat - criminal-demonstration - criminal-preparation - criminal-request - criminal-instructions - criminal-promotion - historical - documentary - fictional - support-prevention additionalProperties: oneOf: - type: object properties: status: type: string const: evaluated score: type: number minimum: 0 maximum: 1 scopeScore: type: number minimum: 0 maximum: 1 likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely required: - status - score - likelihood additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable required: - status - reason additionalProperties: false required: - status - reason additionalProperties: false violence: oneOf: - type: object properties: status: type: string const: evaluated likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely score: type: number minimum: 0 maximum: 1 qualifiers: type: object propertyNames: type: string enum: - nudity - sexual-activity - explicit-sexual-language - sexual-solicitation - physical-attack - violent-threat - violent-preparation - violent-encouragement - injury - death - graphic - self-harm-thoughts - self-harm-preparation - self-harm-act - self-harm-methods - self-harm-encouragement - personal-abuse - targeted-intimidation - harassment-threat - sexual-harassment - harassment-encouragement - identity-abuse - dehumanization - identity-inferiority - discriminatory-exclusion - hate-threat - criminal-demonstration - criminal-preparation - criminal-request - criminal-instructions - criminal-promotion - historical - documentary - fictional - support-prevention additionalProperties: oneOf: - type: object properties: status: type: string const: evaluated score: type: number minimum: 0 maximum: 1 scopeScore: type: number minimum: 0 maximum: 1 likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely required: - status - score - likelihood additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable required: - status - reason additionalProperties: false required: - status - likelihood - score additionalProperties: false - type: object properties: status: type: string const: partial likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely score: type: number minimum: 0 maximum: 1 qualifiers: type: object propertyNames: type: string enum: - nudity - sexual-activity - explicit-sexual-language - sexual-solicitation - physical-attack - violent-threat - violent-preparation - violent-encouragement - injury - death - graphic - self-harm-thoughts - self-harm-preparation - self-harm-act - self-harm-methods - self-harm-encouragement - personal-abuse - targeted-intimidation - harassment-threat - sexual-harassment - harassment-encouragement - identity-abuse - dehumanization - identity-inferiority - discriminatory-exclusion - hate-threat - criminal-demonstration - criminal-preparation - criminal-request - criminal-instructions - criminal-promotion - historical - documentary - fictional - support-prevention additionalProperties: oneOf: - type: object properties: status: type: string const: evaluated score: type: number minimum: 0 maximum: 1 scopeScore: type: number minimum: 0 maximum: 1 likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely required: - status - score - likelihood additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable required: - status - reason additionalProperties: false required: - status - likelihood - score additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable qualifiers: type: object propertyNames: type: string enum: - nudity - sexual-activity - explicit-sexual-language - sexual-solicitation - physical-attack - violent-threat - violent-preparation - violent-encouragement - injury - death - graphic - self-harm-thoughts - self-harm-preparation - self-harm-act - self-harm-methods - self-harm-encouragement - personal-abuse - targeted-intimidation - harassment-threat - sexual-harassment - harassment-encouragement - identity-abuse - dehumanization - identity-inferiority - discriminatory-exclusion - hate-threat - criminal-demonstration - criminal-preparation - criminal-request - criminal-instructions - criminal-promotion - historical - documentary - fictional - support-prevention additionalProperties: oneOf: - type: object properties: status: type: string const: evaluated score: type: number minimum: 0 maximum: 1 scopeScore: type: number minimum: 0 maximum: 1 likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely required: - status - score - likelihood additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable required: - status - reason additionalProperties: false required: - status - reason additionalProperties: false self-harm: oneOf: - type: object properties: status: type: string const: evaluated likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely score: type: number minimum: 0 maximum: 1 qualifiers: type: object propertyNames: type: string enum: - nudity - sexual-activity - explicit-sexual-language - sexual-solicitation - physical-attack - violent-threat - violent-preparation - violent-encouragement - injury - death - graphic - self-harm-thoughts - self-harm-preparation - self-harm-act - self-harm-methods - self-harm-encouragement - personal-abuse - targeted-intimidation - harassment-threat - sexual-harassment - harassment-encouragement - identity-abuse - dehumanization - identity-inferiority - discriminatory-exclusion - hate-threat - criminal-demonstration - criminal-preparation - criminal-request - criminal-instructions - criminal-promotion - historical - documentary - fictional - support-prevention additionalProperties: oneOf: - type: object properties: status: type: string const: evaluated score: type: number minimum: 0 maximum: 1 scopeScore: type: number minimum: 0 maximum: 1 likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely required: - status - score - likelihood additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable required: - status - reason additionalProperties: false required: - status - likelihood - score additionalProperties: false - type: object properties: status: type: string const: partial likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely score: type: number minimum: 0 maximum: 1 qualifiers: type: object propertyNames: type: string enum: - nudity - sexual-activity - explicit-sexual-language - sexual-solicitation - physical-attack - violent-threat - violent-preparation - violent-encouragement - injury - death - graphic - self-harm-thoughts - self-harm-preparation - self-harm-act - self-harm-methods - self-harm-encouragement - personal-abuse - targeted-intimidation - harassment-threat - sexual-harassment - harassment-encouragement - identity-abuse - dehumanization - identity-inferiority - discriminatory-exclusion - hate-threat - criminal-demonstration - criminal-preparation - criminal-request - criminal-instructions - criminal-promotion - historical - documentary - fictional - support-prevention additionalProperties: oneOf: - type: object properties: status: type: string const: evaluated score: type: number minimum: 0 maximum: 1 scopeScore: type: number minimum: 0 maximum: 1 likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely required: - status - score - likelihood additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable required: - status - reason additionalProperties: false required: - status - likelihood - score additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable qualifiers: type: object propertyNames: type: string enum: - nudity - sexual-activity - explicit-sexual-language - sexual-solicitation - physical-attack - violent-threat - violent-preparation - violent-encouragement - injury - death - graphic - self-harm-thoughts - self-harm-preparation - self-harm-act - self-harm-methods - self-harm-encouragement - personal-abuse - targeted-intimidation - harassment-threat - sexual-harassment - harassment-encouragement - identity-abuse - dehumanization - identity-inferiority - discriminatory-exclusion - hate-threat - criminal-demonstration - criminal-preparation - criminal-request - criminal-instructions - criminal-promotion - historical - documentary - fictional - support-prevention additionalProperties: oneOf: - type: object properties: status: type: string const: evaluated score: type: number minimum: 0 maximum: 1 scopeScore: type: number minimum: 0 maximum: 1 likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely required: - status - score - likelihood additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable required: - status - reason additionalProperties: false required: - status - reason additionalProperties: false harassment: oneOf: - type: object properties: status: type: string const: evaluated likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely score: type: number minimum: 0 maximum: 1 qualifiers: type: object propertyNames: type: string enum: - nudity - sexual-activity - explicit-sexual-language - sexual-solicitation - physical-attack - violent-threat - violent-preparation - violent-encouragement - injury - death - graphic - self-harm-thoughts - self-harm-preparation - self-harm-act - self-harm-methods - self-harm-encouragement - personal-abuse - targeted-intimidation - harassment-threat - sexual-harassment - harassment-encouragement - identity-abuse - dehumanization - identity-inferiority - discriminatory-exclusion - hate-threat - criminal-demonstration - criminal-preparation - criminal-request - criminal-instructions - criminal-promotion - historical - documentary - fictional - support-prevention additionalProperties: oneOf: - type: object properties: status: type: string const: evaluated score: type: number minimum: 0 maximum: 1 scopeScore: type: number minimum: 0 maximum: 1 likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely required: - status - score - likelihood additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable required: - status - reason additionalProperties: false required: - status - likelihood - score additionalProperties: false - type: object properties: status: type: string const: partial likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely score: type: number minimum: 0 maximum: 1 qualifiers: type: object propertyNames: type: string enum: - nudity - sexual-activity - explicit-sexual-language - sexual-solicitation - physical-attack - violent-threat - violent-preparation - violent-encouragement - injury - death - graphic - self-harm-thoughts - self-harm-preparation - self-harm-act - self-harm-methods - self-harm-encouragement - personal-abuse - targeted-intimidation - harassment-threat - sexual-harassment - harassment-encouragement - identity-abuse - dehumanization - identity-inferiority - discriminatory-exclusion - hate-threat - criminal-demonstration - criminal-preparation - criminal-request - criminal-instructions - criminal-promotion - historical - documentary - fictional - support-prevention additionalProperties: oneOf: - type: object properties: status: type: string const: evaluated score: type: number minimum: 0 maximum: 1 scopeScore: type: number minimum: 0 maximum: 1 likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely required: - status - score - likelihood additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable required: - status - reason additionalProperties: false required: - status - likelihood - score additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable qualifiers: type: object propertyNames: type: string enum: - nudity - sexual-activity - explicit-sexual-language - sexual-solicitation - physical-attack - violent-threat - violent-preparation - violent-encouragement - injury - death - graphic - self-harm-thoughts - self-harm-preparation - self-harm-act - self-harm-methods - self-harm-encouragement - personal-abuse - targeted-intimidation - harassment-threat - sexual-harassment - harassment-encouragement - identity-abuse - dehumanization - identity-inferiority - discriminatory-exclusion - hate-threat - criminal-demonstration - criminal-preparation - criminal-request - criminal-instructions - criminal-promotion - historical - documentary - fictional - support-prevention additionalProperties: oneOf: - type: object properties: status: type: string const: evaluated score: type: number minimum: 0 maximum: 1 scopeScore: type: number minimum: 0 maximum: 1 likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely required: - status - score - likelihood additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable required: - status - reason additionalProperties: false required: - status - reason additionalProperties: false hate: oneOf: - type: object properties: status: type: string const: evaluated likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely score: type: number minimum: 0 maximum: 1 qualifiers: type: object propertyNames: type: string enum: - nudity - sexual-activity - explicit-sexual-language - sexual-solicitation - physical-attack - violent-threat - violent-preparation - violent-encouragement - injury - death - graphic - self-harm-thoughts - self-harm-preparation - self-harm-act - self-harm-methods - self-harm-encouragement - personal-abuse - targeted-intimidation - harassment-threat - sexual-harassment - harassment-encouragement - identity-abuse - dehumanization - identity-inferiority - discriminatory-exclusion - hate-threat - criminal-demonstration - criminal-preparation - criminal-request - criminal-instructions - criminal-promotion - historical - documentary - fictional - support-prevention additionalProperties: oneOf: - type: object properties: status: type: string const: evaluated score: type: number minimum: 0 maximum: 1 scopeScore: type: number minimum: 0 maximum: 1 likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely required: - status - score - likelihood additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable required: - status - reason additionalProperties: false required: - status - likelihood - score additionalProperties: false - type: object properties: status: type: string const: partial likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely score: type: number minimum: 0 maximum: 1 qualifiers: type: object propertyNames: type: string enum: - nudity - sexual-activity - explicit-sexual-language - sexual-solicitation - physical-attack - violent-threat - violent-preparation - violent-encouragement - injury - death - graphic - self-harm-thoughts - self-harm-preparation - self-harm-act - self-harm-methods - self-harm-encouragement - personal-abuse - targeted-intimidation - harassment-threat - sexual-harassment - harassment-encouragement - identity-abuse - dehumanization - identity-inferiority - discriminatory-exclusion - hate-threat - criminal-demonstration - criminal-preparation - criminal-request - criminal-instructions - criminal-promotion - historical - documentary - fictional - support-prevention additionalProperties: oneOf: - type: object properties: status: type: string const: evaluated score: type: number minimum: 0 maximum: 1 scopeScore: type: number minimum: 0 maximum: 1 likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely required: - status - score - likelihood additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable required: - status - reason additionalProperties: false required: - status - likelihood - score additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable qualifiers: type: object propertyNames: type: string enum: - nudity - sexual-activity - explicit-sexual-language - sexual-solicitation - physical-attack - violent-threat - violent-preparation - violent-encouragement - injury - death - graphic - self-harm-thoughts - self-harm-preparation - self-harm-act - self-harm-methods - self-harm-encouragement - personal-abuse - targeted-intimidation - harassment-threat - sexual-harassment - harassment-encouragement - identity-abuse - dehumanization - identity-inferiority - discriminatory-exclusion - hate-threat - criminal-demonstration - criminal-preparation - criminal-request - criminal-instructions - criminal-promotion - historical - documentary - fictional - support-prevention additionalProperties: oneOf: - type: object properties: status: type: string const: evaluated score: type: number minimum: 0 maximum: 1 scopeScore: type: number minimum: 0 maximum: 1 likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely required: - status - score - likelihood additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable required: - status - reason additionalProperties: false required: - status - reason additionalProperties: false criminal-activity: oneOf: - type: object properties: status: type: string const: evaluated likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely score: type: number minimum: 0 maximum: 1 qualifiers: type: object propertyNames: type: string enum: - nudity - sexual-activity - explicit-sexual-language - sexual-solicitation - physical-attack - violent-threat - violent-preparation - violent-encouragement - injury - death - graphic - self-harm-thoughts - self-harm-preparation - self-harm-act - self-harm-methods - self-harm-encouragement - personal-abuse - targeted-intimidation - harassment-threat - sexual-harassment - harassment-encouragement - identity-abuse - dehumanization - identity-inferiority - discriminatory-exclusion - hate-threat - criminal-demonstration - criminal-preparation - criminal-request - criminal-instructions - criminal-promotion - historical - documentary - fictional - support-prevention additionalProperties: oneOf: - type: object properties: status: type: string const: evaluated score: type: number minimum: 0 maximum: 1 scopeScore: type: number minimum: 0 maximum: 1 likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely required: - status - score - likelihood additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable required: - status - reason additionalProperties: false required: - status - likelihood - score additionalProperties: false - type: object properties: status: type: string const: partial likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely score: type: number minimum: 0 maximum: 1 qualifiers: type: object propertyNames: type: string enum: - nudity - sexual-activity - explicit-sexual-language - sexual-solicitation - physical-attack - violent-threat - violent-preparation - violent-encouragement - injury - death - graphic - self-harm-thoughts - self-harm-preparation - self-harm-act - self-harm-methods - self-harm-encouragement - personal-abuse - targeted-intimidation - harassment-threat - sexual-harassment - harassment-encouragement - identity-abuse - dehumanization - identity-inferiority - discriminatory-exclusion - hate-threat - criminal-demonstration - criminal-preparation - criminal-request - criminal-instructions - criminal-promotion - historical - documentary - fictional - support-prevention additionalProperties: oneOf: - type: object properties: status: type: string const: evaluated score: type: number minimum: 0 maximum: 1 scopeScore: type: number minimum: 0 maximum: 1 likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely required: - status - score - likelihood additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable required: - status - reason additionalProperties: false required: - status - likelihood - score additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable qualifiers: type: object propertyNames: type: string enum: - nudity - sexual-activity - explicit-sexual-language - sexual-solicitation - physical-attack - violent-threat - violent-preparation - violent-encouragement - injury - death - graphic - self-harm-thoughts - self-harm-preparation - self-harm-act - self-harm-methods - self-harm-encouragement - personal-abuse - targeted-intimidation - harassment-threat - sexual-harassment - harassment-encouragement - identity-abuse - dehumanization - identity-inferiority - discriminatory-exclusion - hate-threat - criminal-demonstration - criminal-preparation - criminal-request - criminal-instructions - criminal-promotion - historical - documentary - fictional - support-prevention additionalProperties: oneOf: - type: object properties: status: type: string const: evaluated score: type: number minimum: 0 maximum: 1 scopeScore: type: number minimum: 0 maximum: 1 likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely required: - status - score - likelihood additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable required: - status - reason additionalProperties: false required: - status - reason additionalProperties: false required: - sexual - violence - self-harm - harassment - hate - criminal-activity additionalProperties: false flagged: type: boolean score: type: number notes: anyOf: - {} - type: "null" media: type: object properties: durationSeconds: type: number exclusiveMinimum: 0 frameIntervalSeconds: type: number exclusiveMinimum: 0 sampledFrames: type: integer minimum: 0 maximum: 9007199254740991 audioTranscribed: type: boolean segments: type: array items: type: object properties: source: type: string enum: - frame - speech - frame-text - clip startSeconds: type: number minimum: 0 endSeconds: type: number minimum: 0 categories: type: object properties: sexual: oneOf: - type: object properties: status: type: string const: evaluated likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely score: type: number minimum: 0 maximum: 1 qualifiers: type: object propertyNames: type: string enum: - nudity - sexual-activity - explicit-sexual-language - sexual-solicitation - physical-attack - violent-threat - violent-preparation - violent-encouragement - injury - death - graphic - self-harm-thoughts - self-harm-preparation - self-harm-act - self-harm-methods - self-harm-encouragement - personal-abuse - targeted-intimidation - harassment-threat - sexual-harassment - harassment-encouragement - identity-abuse - dehumanization - identity-inferiority - discriminatory-exclusion - hate-threat - criminal-demonstration - criminal-preparation - criminal-request - criminal-instructions - criminal-promotion - historical - documentary - fictional - support-prevention additionalProperties: oneOf: - type: object properties: status: type: string const: evaluated score: type: number minimum: 0 maximum: 1 scopeScore: type: number minimum: 0 maximum: 1 likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely required: - status - score - likelihood additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable required: - status - reason additionalProperties: false required: - status - likelihood - score additionalProperties: false - type: object properties: status: type: string const: partial likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely score: type: number minimum: 0 maximum: 1 qualifiers: type: object propertyNames: type: string enum: - nudity - sexual-activity - explicit-sexual-language - sexual-solicitation - physical-attack - violent-threat - violent-preparation - violent-encouragement - injury - death - graphic - self-harm-thoughts - self-harm-preparation - self-harm-act - self-harm-methods - self-harm-encouragement - personal-abuse - targeted-intimidation - harassment-threat - sexual-harassment - harassment-encouragement - identity-abuse - dehumanization - identity-inferiority - discriminatory-exclusion - hate-threat - criminal-demonstration - criminal-preparation - criminal-request - criminal-instructions - criminal-promotion - historical - documentary - fictional - support-prevention additionalProperties: oneOf: - type: object properties: status: type: string const: evaluated score: type: number minimum: 0 maximum: 1 scopeScore: type: number minimum: 0 maximum: 1 likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely required: - status - score - likelihood additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable required: - status - reason additionalProperties: false required: - status - likelihood - score additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable qualifiers: type: object propertyNames: type: string enum: - nudity - sexual-activity - explicit-sexual-language - sexual-solicitation - physical-attack - violent-threat - violent-preparation - violent-encouragement - injury - death - graphic - self-harm-thoughts - self-harm-preparation - self-harm-act - self-harm-methods - self-harm-encouragement - personal-abuse - targeted-intimidation - harassment-threat - sexual-harassment - harassment-encouragement - identity-abuse - dehumanization - identity-inferiority - discriminatory-exclusion - hate-threat - criminal-demonstration - criminal-preparation - criminal-request - criminal-instructions - criminal-promotion - historical - documentary - fictional - support-prevention additionalProperties: oneOf: - type: object properties: status: type: string const: evaluated score: type: number minimum: 0 maximum: 1 scopeScore: type: number minimum: 0 maximum: 1 likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely required: - status - score - likelihood additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable required: - status - reason additionalProperties: false required: - status - reason additionalProperties: false violence: oneOf: - type: object properties: status: type: string const: evaluated likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely score: type: number minimum: 0 maximum: 1 qualifiers: type: object propertyNames: type: string enum: - nudity - sexual-activity - explicit-sexual-language - sexual-solicitation - physical-attack - violent-threat - violent-preparation - violent-encouragement - injury - death - graphic - self-harm-thoughts - self-harm-preparation - self-harm-act - self-harm-methods - self-harm-encouragement - personal-abuse - targeted-intimidation - harassment-threat - sexual-harassment - harassment-encouragement - identity-abuse - dehumanization - identity-inferiority - discriminatory-exclusion - hate-threat - criminal-demonstration - criminal-preparation - criminal-request - criminal-instructions - criminal-promotion - historical - documentary - fictional - support-prevention additionalProperties: oneOf: - type: object properties: status: type: string const: evaluated score: type: number minimum: 0 maximum: 1 scopeScore: type: number minimum: 0 maximum: 1 likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely required: - status - score - likelihood additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable required: - status - reason additionalProperties: false required: - status - likelihood - score additionalProperties: false - type: object properties: status: type: string const: partial likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely score: type: number minimum: 0 maximum: 1 qualifiers: type: object propertyNames: type: string enum: - nudity - sexual-activity - explicit-sexual-language - sexual-solicitation - physical-attack - violent-threat - violent-preparation - violent-encouragement - injury - death - graphic - self-harm-thoughts - self-harm-preparation - self-harm-act - self-harm-methods - self-harm-encouragement - personal-abuse - targeted-intimidation - harassment-threat - sexual-harassment - harassment-encouragement - identity-abuse - dehumanization - identity-inferiority - discriminatory-exclusion - hate-threat - criminal-demonstration - criminal-preparation - criminal-request - criminal-instructions - criminal-promotion - historical - documentary - fictional - support-prevention additionalProperties: oneOf: - type: object properties: status: type: string const: evaluated score: type: number minimum: 0 maximum: 1 scopeScore: type: number minimum: 0 maximum: 1 likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely required: - status - score - likelihood additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable required: - status - reason additionalProperties: false required: - status - likelihood - score additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable qualifiers: type: object propertyNames: type: string enum: - nudity - sexual-activity - explicit-sexual-language - sexual-solicitation - physical-attack - violent-threat - violent-preparation - violent-encouragement - injury - death - graphic - self-harm-thoughts - self-harm-preparation - self-harm-act - self-harm-methods - self-harm-encouragement - personal-abuse - targeted-intimidation - harassment-threat - sexual-harassment - harassment-encouragement - identity-abuse - dehumanization - identity-inferiority - discriminatory-exclusion - hate-threat - criminal-demonstration - criminal-preparation - criminal-request - criminal-instructions - criminal-promotion - historical - documentary - fictional - support-prevention additionalProperties: oneOf: - type: object properties: status: type: string const: evaluated score: type: number minimum: 0 maximum: 1 scopeScore: type: number minimum: 0 maximum: 1 likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely required: - status - score - likelihood additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable required: - status - reason additionalProperties: false required: - status - reason additionalProperties: false self-harm: oneOf: - type: object properties: status: type: string const: evaluated likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely score: type: number minimum: 0 maximum: 1 qualifiers: type: object propertyNames: type: string enum: - nudity - sexual-activity - explicit-sexual-language - sexual-solicitation - physical-attack - violent-threat - violent-preparation - violent-encouragement - injury - death - graphic - self-harm-thoughts - self-harm-preparation - self-harm-act - self-harm-methods - self-harm-encouragement - personal-abuse - targeted-intimidation - harassment-threat - sexual-harassment - harassment-encouragement - identity-abuse - dehumanization - identity-inferiority - discriminatory-exclusion - hate-threat - criminal-demonstration - criminal-preparation - criminal-request - criminal-instructions - criminal-promotion - historical - documentary - fictional - support-prevention additionalProperties: oneOf: - type: object properties: status: type: string const: evaluated score: type: number minimum: 0 maximum: 1 scopeScore: type: number minimum: 0 maximum: 1 likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely required: - status - score - likelihood additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable required: - status - reason additionalProperties: false required: - status - likelihood - score additionalProperties: false - type: object properties: status: type: string const: partial likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely score: type: number minimum: 0 maximum: 1 qualifiers: type: object propertyNames: type: string enum: - nudity - sexual-activity - explicit-sexual-language - sexual-solicitation - physical-attack - violent-threat - violent-preparation - violent-encouragement - injury - death - graphic - self-harm-thoughts - self-harm-preparation - self-harm-act - self-harm-methods - self-harm-encouragement - personal-abuse - targeted-intimidation - harassment-threat - sexual-harassment - harassment-encouragement - identity-abuse - dehumanization - identity-inferiority - discriminatory-exclusion - hate-threat - criminal-demonstration - criminal-preparation - criminal-request - criminal-instructions - criminal-promotion - historical - documentary - fictional - support-prevention additionalProperties: oneOf: - type: object properties: status: type: string const: evaluated score: type: number minimum: 0 maximum: 1 scopeScore: type: number minimum: 0 maximum: 1 likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely required: - status - score - likelihood additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable required: - status - reason additionalProperties: false required: - status - likelihood - score additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable qualifiers: type: object propertyNames: type: string enum: - nudity - sexual-activity - explicit-sexual-language - sexual-solicitation - physical-attack - violent-threat - violent-preparation - violent-encouragement - injury - death - graphic - self-harm-thoughts - self-harm-preparation - self-harm-act - self-harm-methods - self-harm-encouragement - personal-abuse - targeted-intimidation - harassment-threat - sexual-harassment - harassment-encouragement - identity-abuse - dehumanization - identity-inferiority - discriminatory-exclusion - hate-threat - criminal-demonstration - criminal-preparation - criminal-request - criminal-instructions - criminal-promotion - historical - documentary - fictional - support-prevention additionalProperties: oneOf: - type: object properties: status: type: string const: evaluated score: type: number minimum: 0 maximum: 1 scopeScore: type: number minimum: 0 maximum: 1 likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely required: - status - score - likelihood additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable required: - status - reason additionalProperties: false required: - status - reason additionalProperties: false harassment: oneOf: - type: object properties: status: type: string const: evaluated likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely score: type: number minimum: 0 maximum: 1 qualifiers: type: object propertyNames: type: string enum: - nudity - sexual-activity - explicit-sexual-language - sexual-solicitation - physical-attack - violent-threat - violent-preparation - violent-encouragement - injury - death - graphic - self-harm-thoughts - self-harm-preparation - self-harm-act - self-harm-methods - self-harm-encouragement - personal-abuse - targeted-intimidation - harassment-threat - sexual-harassment - harassment-encouragement - identity-abuse - dehumanization - identity-inferiority - discriminatory-exclusion - hate-threat - criminal-demonstration - criminal-preparation - criminal-request - criminal-instructions - criminal-promotion - historical - documentary - fictional - support-prevention additionalProperties: oneOf: - type: object properties: status: type: string const: evaluated score: type: number minimum: 0 maximum: 1 scopeScore: type: number minimum: 0 maximum: 1 likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely required: - status - score - likelihood additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable required: - status - reason additionalProperties: false required: - status - likelihood - score additionalProperties: false - type: object properties: status: type: string const: partial likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely score: type: number minimum: 0 maximum: 1 qualifiers: type: object propertyNames: type: string enum: - nudity - sexual-activity - explicit-sexual-language - sexual-solicitation - physical-attack - violent-threat - violent-preparation - violent-encouragement - injury - death - graphic - self-harm-thoughts - self-harm-preparation - self-harm-act - self-harm-methods - self-harm-encouragement - personal-abuse - targeted-intimidation - harassment-threat - sexual-harassment - harassment-encouragement - identity-abuse - dehumanization - identity-inferiority - discriminatory-exclusion - hate-threat - criminal-demonstration - criminal-preparation - criminal-request - criminal-instructions - criminal-promotion - historical - documentary - fictional - support-prevention additionalProperties: oneOf: - type: object properties: status: type: string const: evaluated score: type: number minimum: 0 maximum: 1 scopeScore: type: number minimum: 0 maximum: 1 likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely required: - status - score - likelihood additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable required: - status - reason additionalProperties: false required: - status - likelihood - score additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable qualifiers: type: object propertyNames: type: string enum: - nudity - sexual-activity - explicit-sexual-language - sexual-solicitation - physical-attack - violent-threat - violent-preparation - violent-encouragement - injury - death - graphic - self-harm-thoughts - self-harm-preparation - self-harm-act - self-harm-methods - self-harm-encouragement - personal-abuse - targeted-intimidation - harassment-threat - sexual-harassment - harassment-encouragement - identity-abuse - dehumanization - identity-inferiority - discriminatory-exclusion - hate-threat - criminal-demonstration - criminal-preparation - criminal-request - criminal-instructions - criminal-promotion - historical - documentary - fictional - support-prevention additionalProperties: oneOf: - type: object properties: status: type: string const: evaluated score: type: number minimum: 0 maximum: 1 scopeScore: type: number minimum: 0 maximum: 1 likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely required: - status - score - likelihood additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable required: - status - reason additionalProperties: false required: - status - reason additionalProperties: false hate: oneOf: - type: object properties: status: type: string const: evaluated likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely score: type: number minimum: 0 maximum: 1 qualifiers: type: object propertyNames: type: string enum: - nudity - sexual-activity - explicit-sexual-language - sexual-solicitation - physical-attack - violent-threat - violent-preparation - violent-encouragement - injury - death - graphic - self-harm-thoughts - self-harm-preparation - self-harm-act - self-harm-methods - self-harm-encouragement - personal-abuse - targeted-intimidation - harassment-threat - sexual-harassment - harassment-encouragement - identity-abuse - dehumanization - identity-inferiority - discriminatory-exclusion - hate-threat - criminal-demonstration - criminal-preparation - criminal-request - criminal-instructions - criminal-promotion - historical - documentary - fictional - support-prevention additionalProperties: oneOf: - type: object properties: status: type: string const: evaluated score: type: number minimum: 0 maximum: 1 scopeScore: type: number minimum: 0 maximum: 1 likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely required: - status - score - likelihood additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable required: - status - reason additionalProperties: false required: - status - likelihood - score additionalProperties: false - type: object properties: status: type: string const: partial likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely score: type: number minimum: 0 maximum: 1 qualifiers: type: object propertyNames: type: string enum: - nudity - sexual-activity - explicit-sexual-language - sexual-solicitation - physical-attack - violent-threat - violent-preparation - violent-encouragement - injury - death - graphic - self-harm-thoughts - self-harm-preparation - self-harm-act - self-harm-methods - self-harm-encouragement - personal-abuse - targeted-intimidation - harassment-threat - sexual-harassment - harassment-encouragement - identity-abuse - dehumanization - identity-inferiority - discriminatory-exclusion - hate-threat - criminal-demonstration - criminal-preparation - criminal-request - criminal-instructions - criminal-promotion - historical - documentary - fictional - support-prevention additionalProperties: oneOf: - type: object properties: status: type: string const: evaluated score: type: number minimum: 0 maximum: 1 scopeScore: type: number minimum: 0 maximum: 1 likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely required: - status - score - likelihood additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable required: - status - reason additionalProperties: false required: - status - likelihood - score additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable qualifiers: type: object propertyNames: type: string enum: - nudity - sexual-activity - explicit-sexual-language - sexual-solicitation - physical-attack - violent-threat - violent-preparation - violent-encouragement - injury - death - graphic - self-harm-thoughts - self-harm-preparation - self-harm-act - self-harm-methods - self-harm-encouragement - personal-abuse - targeted-intimidation - harassment-threat - sexual-harassment - harassment-encouragement - identity-abuse - dehumanization - identity-inferiority - discriminatory-exclusion - hate-threat - criminal-demonstration - criminal-preparation - criminal-request - criminal-instructions - criminal-promotion - historical - documentary - fictional - support-prevention additionalProperties: oneOf: - type: object properties: status: type: string const: evaluated score: type: number minimum: 0 maximum: 1 scopeScore: type: number minimum: 0 maximum: 1 likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely required: - status - score - likelihood additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable required: - status - reason additionalProperties: false required: - status - reason additionalProperties: false criminal-activity: oneOf: - type: object properties: status: type: string const: evaluated likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely score: type: number minimum: 0 maximum: 1 qualifiers: type: object propertyNames: type: string enum: - nudity - sexual-activity - explicit-sexual-language - sexual-solicitation - physical-attack - violent-threat - violent-preparation - violent-encouragement - injury - death - graphic - self-harm-thoughts - self-harm-preparation - self-harm-act - self-harm-methods - self-harm-encouragement - personal-abuse - targeted-intimidation - harassment-threat - sexual-harassment - harassment-encouragement - identity-abuse - dehumanization - identity-inferiority - discriminatory-exclusion - hate-threat - criminal-demonstration - criminal-preparation - criminal-request - criminal-instructions - criminal-promotion - historical - documentary - fictional - support-prevention additionalProperties: oneOf: - type: object properties: status: type: string const: evaluated score: type: number minimum: 0 maximum: 1 scopeScore: type: number minimum: 0 maximum: 1 likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely required: - status - score - likelihood additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable required: - status - reason additionalProperties: false required: - status - likelihood - score additionalProperties: false - type: object properties: status: type: string const: partial likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely score: type: number minimum: 0 maximum: 1 qualifiers: type: object propertyNames: type: string enum: - nudity - sexual-activity - explicit-sexual-language - sexual-solicitation - physical-attack - violent-threat - violent-preparation - violent-encouragement - injury - death - graphic - self-harm-thoughts - self-harm-preparation - self-harm-act - self-harm-methods - self-harm-encouragement - personal-abuse - targeted-intimidation - harassment-threat - sexual-harassment - harassment-encouragement - identity-abuse - dehumanization - identity-inferiority - discriminatory-exclusion - hate-threat - criminal-demonstration - criminal-preparation - criminal-request - criminal-instructions - criminal-promotion - historical - documentary - fictional - support-prevention additionalProperties: oneOf: - type: object properties: status: type: string const: evaluated score: type: number minimum: 0 maximum: 1 scopeScore: type: number minimum: 0 maximum: 1 likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely required: - status - score - likelihood additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable required: - status - reason additionalProperties: false required: - status - likelihood - score additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable qualifiers: type: object propertyNames: type: string enum: - nudity - sexual-activity - explicit-sexual-language - sexual-solicitation - physical-attack - violent-threat - violent-preparation - violent-encouragement - injury - death - graphic - self-harm-thoughts - self-harm-preparation - self-harm-act - self-harm-methods - self-harm-encouragement - personal-abuse - targeted-intimidation - harassment-threat - sexual-harassment - harassment-encouragement - identity-abuse - dehumanization - identity-inferiority - discriminatory-exclusion - hate-threat - criminal-demonstration - criminal-preparation - criminal-request - criminal-instructions - criminal-promotion - historical - documentary - fictional - support-prevention additionalProperties: oneOf: - type: object properties: status: type: string const: evaluated score: type: number minimum: 0 maximum: 1 scopeScore: type: number minimum: 0 maximum: 1 likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely required: - status - score - likelihood additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable required: - status - reason additionalProperties: false required: - status - reason additionalProperties: false required: - sexual - violence - self-harm - harassment - hate - criminal-activity additionalProperties: false required: - source - startSeconds - endSeconds - categories additionalProperties: false required: - durationSeconds - sampledFrames - audioTranscribed - segments additionalProperties: false labels: anyOf: - type: array items: type: object properties: description: {} score: type: number topicalityScore: type: - number - "null" likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely knowledgeBaseId: anyOf: - {} - type: "null" required: - description - score - likelihood additionalProperties: false - type: "null" required: - processedAt - categories - flagged - score additionalProperties: false - type: "null" moderationAction: anyOf: - type: string enum: - ignore - alert - hide - purge - type: "null" description: The moderation action applied when this asset crossed a policy threshold status: type: string enum: - uploading - pending - approved - rejected - error description: Processing and moderation status. See [Asset lifecycle](/docs/guides/asset-lifecycle). safetyHold: anyOf: - type: object properties: placedAt: type: number description: When the hold was placed, in milliseconds since the Unix epoch reason: type: string enum: - suspected-illegal-content description: Why the asset is held disposedAt: description: When the held content was disposed of, in milliseconds since the Unix epoch type: - number - "null" required: - placedAt - reason additionalProperties: false - type: "null" description: Internal delivery restriction for suspected illegal content. Held content cannot be viewed, changed, or deleted through normal asset operations. rejectionNote: anyOf: - {} - type: "null" description: Reason the asset was rejected, generated automatically or supplied by a reviewer extractedText: anyOf: - oneOf: - type: object properties: type: type: string const: string content: type: string required: - type - content additionalProperties: false - type: object properties: type: type: string const: document id: {} required: - type - id additionalProperties: false - type: "null" description: Extracted text stored inline for small content or in R2 for larger content processingOptions: description: Processing options supplied when the asset was uploaded anyOf: - type: object properties: keepContentAfterProcessing: description: Whether to keep the asset content after processing default: false type: - boolean - "null" flaggedContentPolicy: anyOf: - type: object properties: action: type: string enum: - ignore - alert - hide - purge required: - action additionalProperties: false - type: "null" description: Override the project moderation action for this asset. Ignore takes no action, alert keeps delivery enabled, hide blocks delivery while retaining content, and purge deletes content. image: description: Options for image assets anyOf: - type: object properties: ocrEnabled: description: Whether to extract image text into a child asset and run normal text moderation. Applies to images, including those extracted from multimedia documents and websites. default: false type: - boolean - "null" additionalProperties: false - type: "null" additionalProperties: false - type: "null" visibility: anyOf: - type: string enum: - public - private - type: "null" description: Visibility level of the asset default: private storageDeletedAt: description: When the stored content was removed, in milliseconds since the Unix epoch. The asset record and report remain. type: - number - "null" required: - id - projectId - createdAt - name - type - status additionalProperties: false description: An asset in the system $defs: __schema0: anyOf: - type: string - type: number - type: boolean - type: "null" - type: array items: $ref: "#/paths/~1projects~1{projectId}~1assets~1multipart-upload/post/responses/200/content/application~1json/schema/$defs/__schema0" - type: object propertyNames: type: string additionalProperties: $ref: "#/paths/~1projects~1{projectId}~1assets~1multipart-upload/post/responses/200/content/application~1json/schema/$defs/__schema0" "400": description: |- upload/file-too-large: File size exceeds limit. Maximum direct image size is 10MB, audio/video size is 50MiB, and other files is 5GB. upload/image-requires-multipart-upload: Images of 10MB or more must use a multipart upload. upload/multipart-image-too-small: Multipart image uploads must total at least 10MB. upload/multipart-image-too-large: Multipart image uploads cannot exceed 20MB. upload/invalid-mime-type: Upload file type is not supported. Uploads must use a concrete file MIME type that CalmLens can store and process, such as image/png, image/jpeg, application/pdf, or text/plain. upload/invalid-payload: Upload payload is invalid. idempotency/invalid-key: The Idempotency-Key header must be 1 to 255 printable ASCII characters, such as a UUID. headers: X-Request-Id: *a1 content: application/json: schema: type: object required: - message - code - traceId properties: message: type: string code: type: string enum: - upload/file-too-large - upload/image-requires-multipart-upload - upload/multipart-image-too-small - upload/multipart-image-too-large - upload/invalid-mime-type - upload/invalid-payload - idempotency/invalid-key traceId: type: string examples: upload-file-too-large: summary: File size exceeds limit. Maximum direct image size is 10MB, audio/video size is 50MiB, and other files is 5GB. value: message: File size exceeds limit. Maximum direct image size is 10MB, audio/video size is 50MiB, and other files is 5GB. code: upload/file-too-large traceId: request-trace-id upload-image-requires-multipart-upload: summary: Images of 10MB or more must use a multipart upload. value: message: Images of 10MB or more must use a multipart upload. code: upload/image-requires-multipart-upload traceId: request-trace-id upload-multipart-image-too-small: summary: Multipart image uploads must total at least 10MB. value: message: Multipart image uploads must total at least 10MB. code: upload/multipart-image-too-small traceId: request-trace-id upload-multipart-image-too-large: summary: Multipart image uploads cannot exceed 20MB. value: message: Multipart image uploads cannot exceed 20MB. code: upload/multipart-image-too-large traceId: request-trace-id upload-invalid-mime-type: summary: Upload file type is not supported. Uploads must use a concrete file MIME type that CalmLens can store and process, such as image/png, image/jpeg, application/pdf, or text/plain. value: message: Upload file type is not supported. Uploads must use a concrete file MIME type that CalmLens can store and process, such as image/png, image/jpeg, application/pdf, or text/plain. code: upload/invalid-mime-type traceId: request-trace-id upload-invalid-payload: summary: Upload payload is invalid. value: message: Upload payload is invalid. code: upload/invalid-payload traceId: request-trace-id idempotency-invalid-key: summary: The Idempotency-Key header must be 1 to 255 printable ASCII characters, such as a UUID. value: message: The Idempotency-Key header must be 1 to 255 printable ASCII characters, such as a UUID. code: idempotency/invalid-key traceId: request-trace-id "401": description: |- auth/missing-token: Authentication required. Send your project API key in the X-Api-Key header. auth/invalid-api-key: The API key is invalid, revoked or expired. Create a key under Developer → API Keys. headers: X-Request-Id: *a1 content: application/json: schema: type: object required: - message - code - traceId properties: message: type: string code: type: string enum: - auth/missing-token - auth/invalid-api-key traceId: type: string examples: auth-missing-token: summary: Authentication required. Send your project API key in the X-Api-Key header. value: message: Authentication required. Send your project API key in the X-Api-Key header. code: auth/missing-token traceId: request-trace-id auth-invalid-api-key: summary: The API key is invalid, revoked or expired. Create a key under Developer → API Keys. value: message: The API key is invalid, revoked or expired. Create a key under Developer → API Keys. code: auth/invalid-api-key traceId: request-trace-id "403": description: |- auth/project-mismatch: This API key belongs to a different project. Use a key created for the project that owns this resource. upload/limit-exceeded: Upload limit exceeded. You have used all your free uploads. Please upgrade to Plus or Pro for unlimited uploads. headers: X-Request-Id: *a1 content: application/json: schema: type: object required: - message - code - traceId properties: message: type: string code: type: string enum: - auth/project-mismatch - upload/limit-exceeded traceId: type: string examples: auth-project-mismatch: summary: This API key belongs to a different project. Use a key created for the project that owns this resource. value: message: This API key belongs to a different project. Use a key created for the project that owns this resource. code: auth/project-mismatch traceId: request-trace-id upload-limit-exceeded: summary: Upload limit exceeded. You have used all your free uploads. Please upgrade to Plus or Pro for unlimited uploads. value: message: Upload limit exceeded. You have used all your free uploads. Please upgrade to Plus or Pro for unlimited uploads. code: upload/limit-exceeded traceId: request-trace-id "404": description: "folder/not-found: Folder not found" headers: X-Request-Id: *a1 content: application/json: schema: type: object required: - message - code - traceId properties: message: type: string code: type: string enum: - folder/not-found traceId: type: string examples: folder-not-found: summary: Folder not found value: message: Folder not found code: folder/not-found traceId: request-trace-id "409": description: |- asset/duplicate-external-id: An asset with this externalId already exists in the project. idempotency/key-reused: This Idempotency-Key was already used for a different request. Use a new key for each distinct request. idempotency/request-in-progress: A request with this Idempotency-Key is still being processed. Retry after the Retry-After delay to receive its result. headers: X-Request-Id: *a1 Retry-After: *a3 content: application/json: schema: type: object required: - message - code - traceId properties: message: type: string code: type: string enum: - asset/duplicate-external-id - idempotency/key-reused - idempotency/request-in-progress traceId: type: string examples: asset-duplicate-external-id: summary: An asset with this externalId already exists in the project. value: message: An asset with this externalId already exists in the project. code: asset/duplicate-external-id traceId: request-trace-id idempotency-key-reused: summary: This Idempotency-Key was already used for a different request. Use a new key for each distinct request. value: message: This Idempotency-Key was already used for a different request. Use a new key for each distinct request. code: idempotency/key-reused traceId: request-trace-id idempotency-request-in-progress: summary: A request with this Idempotency-Key is still being processed. Retry after the Retry-After delay to receive its result. value: message: A request with this Idempotency-Key is still being processed. Retry after the Retry-After delay to receive its result. code: idempotency/request-in-progress traceId: request-trace-id requestBody: required: true description: The raw file bytes, sent with the file's MIME type as `Content-Type` content: application/octet-stream: schema: type: string format: binary parameters: - name: projectId in: path required: true description: UUID of the project to upload the asset to schema: type: string format: uuid pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$ description: UUID of the project to upload the asset to - name: name in: query required: true description: Name of the asset schema: type: string minLength: 1 description: Name of the asset example: large-video.mp4 - name: contentType in: query required: true description: MIME type of the file, such as `image/jpeg`. Ambiguous types are rejected. schema: type: string minLength: 1 description: MIME type of the file, such as `image/jpeg`. Ambiguous types are rejected. example: video/mp4 - name: queue in: query required: false description: If true, queue classification and return straight away. If false, wait for the decision. A multipart upload saves this choice and applies it when the final part arrives. schema: description: If true, queue classification and return straight away. If false, wait for the decision. A multipart upload saves this choice and applies it when the final part arrives. type: - boolean - string example: true - name: description in: query required: false description: Optional description of the asset schema: description: Optional description of the asset type: string - name: processingOptions in: query required: false description: Processing options as URL-encoded JSON, such as `{"keepContentAfterProcessing":true}` schema: description: Processing options as URL-encoded JSON, such as `{"keepContentAfterProcessing":true}` type: string - name: visibility in: query required: false description: Visibility of the asset schema: description: Visibility of the asset type: string enum: - public - private - name: metadata in: query required: false description: Custom metadata as a URL-encoded JSON array of `{ id, value }` items schema: description: Custom metadata as a URL-encoded JSON array of `{ id, value }` items type: string - name: externalId in: query required: false description: Your identifier for the asset schema: description: Your identifier for the asset type: string - name: externalUrl in: query required: false description: URL in your app associated with the asset schema: description: URL in your app associated with the asset type: string format: uri - name: folderId in: query required: false description: ID of the folder to upload into schema: description: ID of the folder to upload into type: string format: uuid pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$ - name: partNumber in: query required: false description: "Multipart uploads only: the part number, starting at 1" schema: description: "Multipart uploads only: the part number, starting at 1" type: integer exclusiveMinimum: 0 maximum: 9007199254740991 example: 1 - name: isFinal in: query required: false description: "Multipart uploads only: true when this is the last part" schema: description: "Multipart uploads only: true when this is the last part" type: - boolean - string example: false - name: sizeInBytes in: query required: false description: The exact size of this request's body in bytes. For a multipart upload, the size of the first part. schema: description: The exact size of this request's body in bytes. For a multipart upload, the size of the first part. type: integer exclusiveMinimum: 0 maximum: 9007199254740991 - name: totalSizeInBytes in: query required: false description: "Multipart uploads only: the size of the whole file in bytes, if known. CalmLens checks it against the upload limits before any part is stored, and the final part fails with `upload/size-mismatch` if the parts add up to a different size." schema: description: "Multipart uploads only: the size of the whole file in bytes, if known. CalmLens checks it against the upload limits before any part is stored, and the final part fails with `upload/size-mismatch` if the parts add up to a different size." type: integer exclusiveMinimum: 0 maximum: 9007199254740991 - name: Idempotency-Key in: header required: false description: A unique value, such as a UUID, that makes the request safe to retry. A retry with the same key and the same request returns the saved response for 24 hours instead of running again. Keys are scoped to the project and the API key. schema: type: string minLength: 1 maxLength: 255 - name: X-CalmLens-Upload in: header required: true description: Marks the request body as raw file bytes schema: type: string enum: - part /assets/{assetId}/part: post: operationId: post-asset-part summary: Upload Asset Part description: "Upload a sequential part for an in-progress asset upload. Image multipart uploads must total from 10MB through 20MB; each non-final part must be at least 5MiB. The final part is classified with the `queue` choice saved when the upload started unless you pass `queue` here. To stream raw bytes instead of JSON, send the `X-CalmLens-Upload: part` header and pass `partNumber`, `isFinal` and `sizeInBytes` as query parameters." security: - ApiKeyAuth: [] responses: "200": description: Successful response headers: X-Request-Id: *a1 Idempotent-Replayed: *a2 content: application/json: schema: type: object properties: id: type: string format: uuid pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-4[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$ description: Unique asset ID projectId: type: string format: uuid pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-4[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$ description: ID of the project that owns the asset sizeInBytes: description: Size of the uploaded content in bytes type: - number - "null" userId: description: ID of the user whose account created the asset anyOf: - {} - type: "null" parentId: description: ID of the parent asset for child assets CalmLens extracts during processing, such as images in a document or OCR text. `null` for uploaded assets. anyOf: - type: string format: uuid pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-4[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$ - type: "null" folderId: anyOf: - type: string format: uuid pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-4[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$ - type: "null" description: Folder containing the asset createdAt: type: integer minimum: -9007199254740991 maximum: 9007199254740991 description: When the asset was created, in milliseconds since the Unix epoch updatedAt: description: When the asset was last updated, in milliseconds since the Unix epoch type: integer minimum: -9007199254740991 maximum: 9007199254740991 checksums: description: Digests of the uploaded content anyOf: - type: object properties: md5: description: MD5 digest of the uploaded content type: - string - "null" sha1: description: SHA-1 digest of the uploaded content type: - string - "null" sha256: description: SHA-256 digest of the uploaded content type: - string - "null" sha384: description: SHA-384 digest of the uploaded content type: - string - "null" sha512: description: SHA-512 digest of the uploaded content type: - string - "null" additionalProperties: false - type: "null" imageData: description: Image properties, for image assets anyOf: - type: object properties: perceptualHash: description: Perceptual hash used to match visually similar images type: - string - "null" width: description: Image width in pixels anyOf: - type: integer exclusiveMinimum: 0 maximum: 9007199254740991 - type: "null" height: description: Image height in pixels anyOf: - type: integer exclusiveMinimum: 0 maximum: 9007199254740991 - type: "null" additionalProperties: false - type: "null" documentData: description: Document properties, for documents anyOf: - type: object properties: {} additionalProperties: false - type: "null" name: description: Name of the asset fileFormat: description: MIME type of the stored content anyOf: - {} - type: "null" fileExtension: description: File extension of the stored content anyOf: - {} - type: "null" description: anyOf: - {} - type: "null" description: Optional description of the asset externalId: anyOf: - {} - type: "null" description: External identifier for the asset externalUrl: anyOf: - type: string format: uri - type: "null" description: External URL associated with the asset previewImage: description: Browser-friendly preview generated for images, documents and websites anyOf: - type: object properties: id: anyOf: - {} - type: "null" description: Identifier of the stored preview image fileFormat: anyOf: - {} - type: "null" description: File format of the preview, such as `webp` thumbhash: anyOf: - {} - type: "null" description: ThumbHash placeholder you can render while the preview loads averageColor: anyOf: - {} - type: "null" description: Average color of the preview width: anyOf: - type: integer exclusiveMinimum: 0 maximum: 9007199254740991 - type: "null" description: Preview width in pixels height: anyOf: - type: integer exclusiveMinimum: 0 maximum: 9007199254740991 - type: "null" description: Preview height in pixels required: - id - fileFormat - thumbhash - averageColor - width - height additionalProperties: false - type: "null" storageId: description: Internal storage key of the retained content; `null` when nothing is stored anyOf: - {} - type: "null" uploadPartsReceived: description: Number of parts received so far for a multipart upload anyOf: - type: integer minimum: -9007199254740991 maximum: 9007199254740991 - type: "null" type: type: string enum: - image - video - audio - plaintext-document - multimedia-document - website - file description: Asset type, detected from the content's MIME type metadata: anyOf: - type: array items: type: object properties: id: description: Identifier for the metadata item value: $ref: "#/paths/~1assets~1{assetId}~1part/post/responses/200/content/application~1json/schema/$defs/__schema0" description: Value of the metadata item required: - id - value additionalProperties: false description: A metadata item with an ID and value - type: "null" description: List of custom metadata items for the asset tags: anyOf: - type: array items: {} - type: "null" description: Array of tags for the asset report: description: Moderation report, set once classification finishes. See [Report format](/docs/guides/moderation-reports). anyOf: - type: object properties: processedAt: type: number categories: type: object properties: sexual: oneOf: - type: object properties: status: type: string const: evaluated likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely score: type: number minimum: 0 maximum: 1 qualifiers: type: object propertyNames: type: string enum: - nudity - sexual-activity - explicit-sexual-language - sexual-solicitation - physical-attack - violent-threat - violent-preparation - violent-encouragement - injury - death - graphic - self-harm-thoughts - self-harm-preparation - self-harm-act - self-harm-methods - self-harm-encouragement - personal-abuse - targeted-intimidation - harassment-threat - sexual-harassment - harassment-encouragement - identity-abuse - dehumanization - identity-inferiority - discriminatory-exclusion - hate-threat - criminal-demonstration - criminal-preparation - criminal-request - criminal-instructions - criminal-promotion - historical - documentary - fictional - support-prevention additionalProperties: oneOf: - type: object properties: status: type: string const: evaluated score: type: number minimum: 0 maximum: 1 scopeScore: type: number minimum: 0 maximum: 1 likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely required: - status - score - likelihood additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable required: - status - reason additionalProperties: false required: - status - likelihood - score additionalProperties: false - type: object properties: status: type: string const: partial likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely score: type: number minimum: 0 maximum: 1 qualifiers: type: object propertyNames: type: string enum: - nudity - sexual-activity - explicit-sexual-language - sexual-solicitation - physical-attack - violent-threat - violent-preparation - violent-encouragement - injury - death - graphic - self-harm-thoughts - self-harm-preparation - self-harm-act - self-harm-methods - self-harm-encouragement - personal-abuse - targeted-intimidation - harassment-threat - sexual-harassment - harassment-encouragement - identity-abuse - dehumanization - identity-inferiority - discriminatory-exclusion - hate-threat - criminal-demonstration - criminal-preparation - criminal-request - criminal-instructions - criminal-promotion - historical - documentary - fictional - support-prevention additionalProperties: oneOf: - type: object properties: status: type: string const: evaluated score: type: number minimum: 0 maximum: 1 scopeScore: type: number minimum: 0 maximum: 1 likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely required: - status - score - likelihood additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable required: - status - reason additionalProperties: false required: - status - likelihood - score additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable qualifiers: type: object propertyNames: type: string enum: - nudity - sexual-activity - explicit-sexual-language - sexual-solicitation - physical-attack - violent-threat - violent-preparation - violent-encouragement - injury - death - graphic - self-harm-thoughts - self-harm-preparation - self-harm-act - self-harm-methods - self-harm-encouragement - personal-abuse - targeted-intimidation - harassment-threat - sexual-harassment - harassment-encouragement - identity-abuse - dehumanization - identity-inferiority - discriminatory-exclusion - hate-threat - criminal-demonstration - criminal-preparation - criminal-request - criminal-instructions - criminal-promotion - historical - documentary - fictional - support-prevention additionalProperties: oneOf: - type: object properties: status: type: string const: evaluated score: type: number minimum: 0 maximum: 1 scopeScore: type: number minimum: 0 maximum: 1 likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely required: - status - score - likelihood additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable required: - status - reason additionalProperties: false required: - status - reason additionalProperties: false violence: oneOf: - type: object properties: status: type: string const: evaluated likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely score: type: number minimum: 0 maximum: 1 qualifiers: type: object propertyNames: type: string enum: - nudity - sexual-activity - explicit-sexual-language - sexual-solicitation - physical-attack - violent-threat - violent-preparation - violent-encouragement - injury - death - graphic - self-harm-thoughts - self-harm-preparation - self-harm-act - self-harm-methods - self-harm-encouragement - personal-abuse - targeted-intimidation - harassment-threat - sexual-harassment - harassment-encouragement - identity-abuse - dehumanization - identity-inferiority - discriminatory-exclusion - hate-threat - criminal-demonstration - criminal-preparation - criminal-request - criminal-instructions - criminal-promotion - historical - documentary - fictional - support-prevention additionalProperties: oneOf: - type: object properties: status: type: string const: evaluated score: type: number minimum: 0 maximum: 1 scopeScore: type: number minimum: 0 maximum: 1 likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely required: - status - score - likelihood additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable required: - status - reason additionalProperties: false required: - status - likelihood - score additionalProperties: false - type: object properties: status: type: string const: partial likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely score: type: number minimum: 0 maximum: 1 qualifiers: type: object propertyNames: type: string enum: - nudity - sexual-activity - explicit-sexual-language - sexual-solicitation - physical-attack - violent-threat - violent-preparation - violent-encouragement - injury - death - graphic - self-harm-thoughts - self-harm-preparation - self-harm-act - self-harm-methods - self-harm-encouragement - personal-abuse - targeted-intimidation - harassment-threat - sexual-harassment - harassment-encouragement - identity-abuse - dehumanization - identity-inferiority - discriminatory-exclusion - hate-threat - criminal-demonstration - criminal-preparation - criminal-request - criminal-instructions - criminal-promotion - historical - documentary - fictional - support-prevention additionalProperties: oneOf: - type: object properties: status: type: string const: evaluated score: type: number minimum: 0 maximum: 1 scopeScore: type: number minimum: 0 maximum: 1 likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely required: - status - score - likelihood additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable required: - status - reason additionalProperties: false required: - status - likelihood - score additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable qualifiers: type: object propertyNames: type: string enum: - nudity - sexual-activity - explicit-sexual-language - sexual-solicitation - physical-attack - violent-threat - violent-preparation - violent-encouragement - injury - death - graphic - self-harm-thoughts - self-harm-preparation - self-harm-act - self-harm-methods - self-harm-encouragement - personal-abuse - targeted-intimidation - harassment-threat - sexual-harassment - harassment-encouragement - identity-abuse - dehumanization - identity-inferiority - discriminatory-exclusion - hate-threat - criminal-demonstration - criminal-preparation - criminal-request - criminal-instructions - criminal-promotion - historical - documentary - fictional - support-prevention additionalProperties: oneOf: - type: object properties: status: type: string const: evaluated score: type: number minimum: 0 maximum: 1 scopeScore: type: number minimum: 0 maximum: 1 likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely required: - status - score - likelihood additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable required: - status - reason additionalProperties: false required: - status - reason additionalProperties: false self-harm: oneOf: - type: object properties: status: type: string const: evaluated likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely score: type: number minimum: 0 maximum: 1 qualifiers: type: object propertyNames: type: string enum: - nudity - sexual-activity - explicit-sexual-language - sexual-solicitation - physical-attack - violent-threat - violent-preparation - violent-encouragement - injury - death - graphic - self-harm-thoughts - self-harm-preparation - self-harm-act - self-harm-methods - self-harm-encouragement - personal-abuse - targeted-intimidation - harassment-threat - sexual-harassment - harassment-encouragement - identity-abuse - dehumanization - identity-inferiority - discriminatory-exclusion - hate-threat - criminal-demonstration - criminal-preparation - criminal-request - criminal-instructions - criminal-promotion - historical - documentary - fictional - support-prevention additionalProperties: oneOf: - type: object properties: status: type: string const: evaluated score: type: number minimum: 0 maximum: 1 scopeScore: type: number minimum: 0 maximum: 1 likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely required: - status - score - likelihood additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable required: - status - reason additionalProperties: false required: - status - likelihood - score additionalProperties: false - type: object properties: status: type: string const: partial likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely score: type: number minimum: 0 maximum: 1 qualifiers: type: object propertyNames: type: string enum: - nudity - sexual-activity - explicit-sexual-language - sexual-solicitation - physical-attack - violent-threat - violent-preparation - violent-encouragement - injury - death - graphic - self-harm-thoughts - self-harm-preparation - self-harm-act - self-harm-methods - self-harm-encouragement - personal-abuse - targeted-intimidation - harassment-threat - sexual-harassment - harassment-encouragement - identity-abuse - dehumanization - identity-inferiority - discriminatory-exclusion - hate-threat - criminal-demonstration - criminal-preparation - criminal-request - criminal-instructions - criminal-promotion - historical - documentary - fictional - support-prevention additionalProperties: oneOf: - type: object properties: status: type: string const: evaluated score: type: number minimum: 0 maximum: 1 scopeScore: type: number minimum: 0 maximum: 1 likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely required: - status - score - likelihood additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable required: - status - reason additionalProperties: false required: - status - likelihood - score additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable qualifiers: type: object propertyNames: type: string enum: - nudity - sexual-activity - explicit-sexual-language - sexual-solicitation - physical-attack - violent-threat - violent-preparation - violent-encouragement - injury - death - graphic - self-harm-thoughts - self-harm-preparation - self-harm-act - self-harm-methods - self-harm-encouragement - personal-abuse - targeted-intimidation - harassment-threat - sexual-harassment - harassment-encouragement - identity-abuse - dehumanization - identity-inferiority - discriminatory-exclusion - hate-threat - criminal-demonstration - criminal-preparation - criminal-request - criminal-instructions - criminal-promotion - historical - documentary - fictional - support-prevention additionalProperties: oneOf: - type: object properties: status: type: string const: evaluated score: type: number minimum: 0 maximum: 1 scopeScore: type: number minimum: 0 maximum: 1 likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely required: - status - score - likelihood additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable required: - status - reason additionalProperties: false required: - status - reason additionalProperties: false harassment: oneOf: - type: object properties: status: type: string const: evaluated likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely score: type: number minimum: 0 maximum: 1 qualifiers: type: object propertyNames: type: string enum: - nudity - sexual-activity - explicit-sexual-language - sexual-solicitation - physical-attack - violent-threat - violent-preparation - violent-encouragement - injury - death - graphic - self-harm-thoughts - self-harm-preparation - self-harm-act - self-harm-methods - self-harm-encouragement - personal-abuse - targeted-intimidation - harassment-threat - sexual-harassment - harassment-encouragement - identity-abuse - dehumanization - identity-inferiority - discriminatory-exclusion - hate-threat - criminal-demonstration - criminal-preparation - criminal-request - criminal-instructions - criminal-promotion - historical - documentary - fictional - support-prevention additionalProperties: oneOf: - type: object properties: status: type: string const: evaluated score: type: number minimum: 0 maximum: 1 scopeScore: type: number minimum: 0 maximum: 1 likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely required: - status - score - likelihood additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable required: - status - reason additionalProperties: false required: - status - likelihood - score additionalProperties: false - type: object properties: status: type: string const: partial likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely score: type: number minimum: 0 maximum: 1 qualifiers: type: object propertyNames: type: string enum: - nudity - sexual-activity - explicit-sexual-language - sexual-solicitation - physical-attack - violent-threat - violent-preparation - violent-encouragement - injury - death - graphic - self-harm-thoughts - self-harm-preparation - self-harm-act - self-harm-methods - self-harm-encouragement - personal-abuse - targeted-intimidation - harassment-threat - sexual-harassment - harassment-encouragement - identity-abuse - dehumanization - identity-inferiority - discriminatory-exclusion - hate-threat - criminal-demonstration - criminal-preparation - criminal-request - criminal-instructions - criminal-promotion - historical - documentary - fictional - support-prevention additionalProperties: oneOf: - type: object properties: status: type: string const: evaluated score: type: number minimum: 0 maximum: 1 scopeScore: type: number minimum: 0 maximum: 1 likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely required: - status - score - likelihood additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable required: - status - reason additionalProperties: false required: - status - likelihood - score additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable qualifiers: type: object propertyNames: type: string enum: - nudity - sexual-activity - explicit-sexual-language - sexual-solicitation - physical-attack - violent-threat - violent-preparation - violent-encouragement - injury - death - graphic - self-harm-thoughts - self-harm-preparation - self-harm-act - self-harm-methods - self-harm-encouragement - personal-abuse - targeted-intimidation - harassment-threat - sexual-harassment - harassment-encouragement - identity-abuse - dehumanization - identity-inferiority - discriminatory-exclusion - hate-threat - criminal-demonstration - criminal-preparation - criminal-request - criminal-instructions - criminal-promotion - historical - documentary - fictional - support-prevention additionalProperties: oneOf: - type: object properties: status: type: string const: evaluated score: type: number minimum: 0 maximum: 1 scopeScore: type: number minimum: 0 maximum: 1 likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely required: - status - score - likelihood additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable required: - status - reason additionalProperties: false required: - status - reason additionalProperties: false hate: oneOf: - type: object properties: status: type: string const: evaluated likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely score: type: number minimum: 0 maximum: 1 qualifiers: type: object propertyNames: type: string enum: - nudity - sexual-activity - explicit-sexual-language - sexual-solicitation - physical-attack - violent-threat - violent-preparation - violent-encouragement - injury - death - graphic - self-harm-thoughts - self-harm-preparation - self-harm-act - self-harm-methods - self-harm-encouragement - personal-abuse - targeted-intimidation - harassment-threat - sexual-harassment - harassment-encouragement - identity-abuse - dehumanization - identity-inferiority - discriminatory-exclusion - hate-threat - criminal-demonstration - criminal-preparation - criminal-request - criminal-instructions - criminal-promotion - historical - documentary - fictional - support-prevention additionalProperties: oneOf: - type: object properties: status: type: string const: evaluated score: type: number minimum: 0 maximum: 1 scopeScore: type: number minimum: 0 maximum: 1 likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely required: - status - score - likelihood additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable required: - status - reason additionalProperties: false required: - status - likelihood - score additionalProperties: false - type: object properties: status: type: string const: partial likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely score: type: number minimum: 0 maximum: 1 qualifiers: type: object propertyNames: type: string enum: - nudity - sexual-activity - explicit-sexual-language - sexual-solicitation - physical-attack - violent-threat - violent-preparation - violent-encouragement - injury - death - graphic - self-harm-thoughts - self-harm-preparation - self-harm-act - self-harm-methods - self-harm-encouragement - personal-abuse - targeted-intimidation - harassment-threat - sexual-harassment - harassment-encouragement - identity-abuse - dehumanization - identity-inferiority - discriminatory-exclusion - hate-threat - criminal-demonstration - criminal-preparation - criminal-request - criminal-instructions - criminal-promotion - historical - documentary - fictional - support-prevention additionalProperties: oneOf: - type: object properties: status: type: string const: evaluated score: type: number minimum: 0 maximum: 1 scopeScore: type: number minimum: 0 maximum: 1 likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely required: - status - score - likelihood additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable required: - status - reason additionalProperties: false required: - status - likelihood - score additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable qualifiers: type: object propertyNames: type: string enum: - nudity - sexual-activity - explicit-sexual-language - sexual-solicitation - physical-attack - violent-threat - violent-preparation - violent-encouragement - injury - death - graphic - self-harm-thoughts - self-harm-preparation - self-harm-act - self-harm-methods - self-harm-encouragement - personal-abuse - targeted-intimidation - harassment-threat - sexual-harassment - harassment-encouragement - identity-abuse - dehumanization - identity-inferiority - discriminatory-exclusion - hate-threat - criminal-demonstration - criminal-preparation - criminal-request - criminal-instructions - criminal-promotion - historical - documentary - fictional - support-prevention additionalProperties: oneOf: - type: object properties: status: type: string const: evaluated score: type: number minimum: 0 maximum: 1 scopeScore: type: number minimum: 0 maximum: 1 likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely required: - status - score - likelihood additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable required: - status - reason additionalProperties: false required: - status - reason additionalProperties: false criminal-activity: oneOf: - type: object properties: status: type: string const: evaluated likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely score: type: number minimum: 0 maximum: 1 qualifiers: type: object propertyNames: type: string enum: - nudity - sexual-activity - explicit-sexual-language - sexual-solicitation - physical-attack - violent-threat - violent-preparation - violent-encouragement - injury - death - graphic - self-harm-thoughts - self-harm-preparation - self-harm-act - self-harm-methods - self-harm-encouragement - personal-abuse - targeted-intimidation - harassment-threat - sexual-harassment - harassment-encouragement - identity-abuse - dehumanization - identity-inferiority - discriminatory-exclusion - hate-threat - criminal-demonstration - criminal-preparation - criminal-request - criminal-instructions - criminal-promotion - historical - documentary - fictional - support-prevention additionalProperties: oneOf: - type: object properties: status: type: string const: evaluated score: type: number minimum: 0 maximum: 1 scopeScore: type: number minimum: 0 maximum: 1 likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely required: - status - score - likelihood additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable required: - status - reason additionalProperties: false required: - status - likelihood - score additionalProperties: false - type: object properties: status: type: string const: partial likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely score: type: number minimum: 0 maximum: 1 qualifiers: type: object propertyNames: type: string enum: - nudity - sexual-activity - explicit-sexual-language - sexual-solicitation - physical-attack - violent-threat - violent-preparation - violent-encouragement - injury - death - graphic - self-harm-thoughts - self-harm-preparation - self-harm-act - self-harm-methods - self-harm-encouragement - personal-abuse - targeted-intimidation - harassment-threat - sexual-harassment - harassment-encouragement - identity-abuse - dehumanization - identity-inferiority - discriminatory-exclusion - hate-threat - criminal-demonstration - criminal-preparation - criminal-request - criminal-instructions - criminal-promotion - historical - documentary - fictional - support-prevention additionalProperties: oneOf: - type: object properties: status: type: string const: evaluated score: type: number minimum: 0 maximum: 1 scopeScore: type: number minimum: 0 maximum: 1 likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely required: - status - score - likelihood additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable required: - status - reason additionalProperties: false required: - status - likelihood - score additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable qualifiers: type: object propertyNames: type: string enum: - nudity - sexual-activity - explicit-sexual-language - sexual-solicitation - physical-attack - violent-threat - violent-preparation - violent-encouragement - injury - death - graphic - self-harm-thoughts - self-harm-preparation - self-harm-act - self-harm-methods - self-harm-encouragement - personal-abuse - targeted-intimidation - harassment-threat - sexual-harassment - harassment-encouragement - identity-abuse - dehumanization - identity-inferiority - discriminatory-exclusion - hate-threat - criminal-demonstration - criminal-preparation - criminal-request - criminal-instructions - criminal-promotion - historical - documentary - fictional - support-prevention additionalProperties: oneOf: - type: object properties: status: type: string const: evaluated score: type: number minimum: 0 maximum: 1 scopeScore: type: number minimum: 0 maximum: 1 likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely required: - status - score - likelihood additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable required: - status - reason additionalProperties: false required: - status - reason additionalProperties: false required: - sexual - violence - self-harm - harassment - hate - criminal-activity additionalProperties: false flagged: type: boolean score: type: number notes: anyOf: - {} - type: "null" media: type: object properties: durationSeconds: type: number exclusiveMinimum: 0 frameIntervalSeconds: type: number exclusiveMinimum: 0 sampledFrames: type: integer minimum: 0 maximum: 9007199254740991 audioTranscribed: type: boolean segments: type: array items: type: object properties: source: type: string enum: - frame - speech - frame-text - clip startSeconds: type: number minimum: 0 endSeconds: type: number minimum: 0 categories: type: object properties: sexual: oneOf: - type: object properties: status: type: string const: evaluated likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely score: type: number minimum: 0 maximum: 1 qualifiers: type: object propertyNames: type: string enum: - nudity - sexual-activity - explicit-sexual-language - sexual-solicitation - physical-attack - violent-threat - violent-preparation - violent-encouragement - injury - death - graphic - self-harm-thoughts - self-harm-preparation - self-harm-act - self-harm-methods - self-harm-encouragement - personal-abuse - targeted-intimidation - harassment-threat - sexual-harassment - harassment-encouragement - identity-abuse - dehumanization - identity-inferiority - discriminatory-exclusion - hate-threat - criminal-demonstration - criminal-preparation - criminal-request - criminal-instructions - criminal-promotion - historical - documentary - fictional - support-prevention additionalProperties: oneOf: - type: object properties: status: type: string const: evaluated score: type: number minimum: 0 maximum: 1 scopeScore: type: number minimum: 0 maximum: 1 likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely required: - status - score - likelihood additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable required: - status - reason additionalProperties: false required: - status - likelihood - score additionalProperties: false - type: object properties: status: type: string const: partial likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely score: type: number minimum: 0 maximum: 1 qualifiers: type: object propertyNames: type: string enum: - nudity - sexual-activity - explicit-sexual-language - sexual-solicitation - physical-attack - violent-threat - violent-preparation - violent-encouragement - injury - death - graphic - self-harm-thoughts - self-harm-preparation - self-harm-act - self-harm-methods - self-harm-encouragement - personal-abuse - targeted-intimidation - harassment-threat - sexual-harassment - harassment-encouragement - identity-abuse - dehumanization - identity-inferiority - discriminatory-exclusion - hate-threat - criminal-demonstration - criminal-preparation - criminal-request - criminal-instructions - criminal-promotion - historical - documentary - fictional - support-prevention additionalProperties: oneOf: - type: object properties: status: type: string const: evaluated score: type: number minimum: 0 maximum: 1 scopeScore: type: number minimum: 0 maximum: 1 likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely required: - status - score - likelihood additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable required: - status - reason additionalProperties: false required: - status - likelihood - score additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable qualifiers: type: object propertyNames: type: string enum: - nudity - sexual-activity - explicit-sexual-language - sexual-solicitation - physical-attack - violent-threat - violent-preparation - violent-encouragement - injury - death - graphic - self-harm-thoughts - self-harm-preparation - self-harm-act - self-harm-methods - self-harm-encouragement - personal-abuse - targeted-intimidation - harassment-threat - sexual-harassment - harassment-encouragement - identity-abuse - dehumanization - identity-inferiority - discriminatory-exclusion - hate-threat - criminal-demonstration - criminal-preparation - criminal-request - criminal-instructions - criminal-promotion - historical - documentary - fictional - support-prevention additionalProperties: oneOf: - type: object properties: status: type: string const: evaluated score: type: number minimum: 0 maximum: 1 scopeScore: type: number minimum: 0 maximum: 1 likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely required: - status - score - likelihood additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable required: - status - reason additionalProperties: false required: - status - reason additionalProperties: false violence: oneOf: - type: object properties: status: type: string const: evaluated likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely score: type: number minimum: 0 maximum: 1 qualifiers: type: object propertyNames: type: string enum: - nudity - sexual-activity - explicit-sexual-language - sexual-solicitation - physical-attack - violent-threat - violent-preparation - violent-encouragement - injury - death - graphic - self-harm-thoughts - self-harm-preparation - self-harm-act - self-harm-methods - self-harm-encouragement - personal-abuse - targeted-intimidation - harassment-threat - sexual-harassment - harassment-encouragement - identity-abuse - dehumanization - identity-inferiority - discriminatory-exclusion - hate-threat - criminal-demonstration - criminal-preparation - criminal-request - criminal-instructions - criminal-promotion - historical - documentary - fictional - support-prevention additionalProperties: oneOf: - type: object properties: status: type: string const: evaluated score: type: number minimum: 0 maximum: 1 scopeScore: type: number minimum: 0 maximum: 1 likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely required: - status - score - likelihood additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable required: - status - reason additionalProperties: false required: - status - likelihood - score additionalProperties: false - type: object properties: status: type: string const: partial likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely score: type: number minimum: 0 maximum: 1 qualifiers: type: object propertyNames: type: string enum: - nudity - sexual-activity - explicit-sexual-language - sexual-solicitation - physical-attack - violent-threat - violent-preparation - violent-encouragement - injury - death - graphic - self-harm-thoughts - self-harm-preparation - self-harm-act - self-harm-methods - self-harm-encouragement - personal-abuse - targeted-intimidation - harassment-threat - sexual-harassment - harassment-encouragement - identity-abuse - dehumanization - identity-inferiority - discriminatory-exclusion - hate-threat - criminal-demonstration - criminal-preparation - criminal-request - criminal-instructions - criminal-promotion - historical - documentary - fictional - support-prevention additionalProperties: oneOf: - type: object properties: status: type: string const: evaluated score: type: number minimum: 0 maximum: 1 scopeScore: type: number minimum: 0 maximum: 1 likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely required: - status - score - likelihood additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable required: - status - reason additionalProperties: false required: - status - likelihood - score additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable qualifiers: type: object propertyNames: type: string enum: - nudity - sexual-activity - explicit-sexual-language - sexual-solicitation - physical-attack - violent-threat - violent-preparation - violent-encouragement - injury - death - graphic - self-harm-thoughts - self-harm-preparation - self-harm-act - self-harm-methods - self-harm-encouragement - personal-abuse - targeted-intimidation - harassment-threat - sexual-harassment - harassment-encouragement - identity-abuse - dehumanization - identity-inferiority - discriminatory-exclusion - hate-threat - criminal-demonstration - criminal-preparation - criminal-request - criminal-instructions - criminal-promotion - historical - documentary - fictional - support-prevention additionalProperties: oneOf: - type: object properties: status: type: string const: evaluated score: type: number minimum: 0 maximum: 1 scopeScore: type: number minimum: 0 maximum: 1 likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely required: - status - score - likelihood additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable required: - status - reason additionalProperties: false required: - status - reason additionalProperties: false self-harm: oneOf: - type: object properties: status: type: string const: evaluated likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely score: type: number minimum: 0 maximum: 1 qualifiers: type: object propertyNames: type: string enum: - nudity - sexual-activity - explicit-sexual-language - sexual-solicitation - physical-attack - violent-threat - violent-preparation - violent-encouragement - injury - death - graphic - self-harm-thoughts - self-harm-preparation - self-harm-act - self-harm-methods - self-harm-encouragement - personal-abuse - targeted-intimidation - harassment-threat - sexual-harassment - harassment-encouragement - identity-abuse - dehumanization - identity-inferiority - discriminatory-exclusion - hate-threat - criminal-demonstration - criminal-preparation - criminal-request - criminal-instructions - criminal-promotion - historical - documentary - fictional - support-prevention additionalProperties: oneOf: - type: object properties: status: type: string const: evaluated score: type: number minimum: 0 maximum: 1 scopeScore: type: number minimum: 0 maximum: 1 likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely required: - status - score - likelihood additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable required: - status - reason additionalProperties: false required: - status - likelihood - score additionalProperties: false - type: object properties: status: type: string const: partial likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely score: type: number minimum: 0 maximum: 1 qualifiers: type: object propertyNames: type: string enum: - nudity - sexual-activity - explicit-sexual-language - sexual-solicitation - physical-attack - violent-threat - violent-preparation - violent-encouragement - injury - death - graphic - self-harm-thoughts - self-harm-preparation - self-harm-act - self-harm-methods - self-harm-encouragement - personal-abuse - targeted-intimidation - harassment-threat - sexual-harassment - harassment-encouragement - identity-abuse - dehumanization - identity-inferiority - discriminatory-exclusion - hate-threat - criminal-demonstration - criminal-preparation - criminal-request - criminal-instructions - criminal-promotion - historical - documentary - fictional - support-prevention additionalProperties: oneOf: - type: object properties: status: type: string const: evaluated score: type: number minimum: 0 maximum: 1 scopeScore: type: number minimum: 0 maximum: 1 likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely required: - status - score - likelihood additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable required: - status - reason additionalProperties: false required: - status - likelihood - score additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable qualifiers: type: object propertyNames: type: string enum: - nudity - sexual-activity - explicit-sexual-language - sexual-solicitation - physical-attack - violent-threat - violent-preparation - violent-encouragement - injury - death - graphic - self-harm-thoughts - self-harm-preparation - self-harm-act - self-harm-methods - self-harm-encouragement - personal-abuse - targeted-intimidation - harassment-threat - sexual-harassment - harassment-encouragement - identity-abuse - dehumanization - identity-inferiority - discriminatory-exclusion - hate-threat - criminal-demonstration - criminal-preparation - criminal-request - criminal-instructions - criminal-promotion - historical - documentary - fictional - support-prevention additionalProperties: oneOf: - type: object properties: status: type: string const: evaluated score: type: number minimum: 0 maximum: 1 scopeScore: type: number minimum: 0 maximum: 1 likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely required: - status - score - likelihood additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable required: - status - reason additionalProperties: false required: - status - reason additionalProperties: false harassment: oneOf: - type: object properties: status: type: string const: evaluated likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely score: type: number minimum: 0 maximum: 1 qualifiers: type: object propertyNames: type: string enum: - nudity - sexual-activity - explicit-sexual-language - sexual-solicitation - physical-attack - violent-threat - violent-preparation - violent-encouragement - injury - death - graphic - self-harm-thoughts - self-harm-preparation - self-harm-act - self-harm-methods - self-harm-encouragement - personal-abuse - targeted-intimidation - harassment-threat - sexual-harassment - harassment-encouragement - identity-abuse - dehumanization - identity-inferiority - discriminatory-exclusion - hate-threat - criminal-demonstration - criminal-preparation - criminal-request - criminal-instructions - criminal-promotion - historical - documentary - fictional - support-prevention additionalProperties: oneOf: - type: object properties: status: type: string const: evaluated score: type: number minimum: 0 maximum: 1 scopeScore: type: number minimum: 0 maximum: 1 likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely required: - status - score - likelihood additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable required: - status - reason additionalProperties: false required: - status - likelihood - score additionalProperties: false - type: object properties: status: type: string const: partial likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely score: type: number minimum: 0 maximum: 1 qualifiers: type: object propertyNames: type: string enum: - nudity - sexual-activity - explicit-sexual-language - sexual-solicitation - physical-attack - violent-threat - violent-preparation - violent-encouragement - injury - death - graphic - self-harm-thoughts - self-harm-preparation - self-harm-act - self-harm-methods - self-harm-encouragement - personal-abuse - targeted-intimidation - harassment-threat - sexual-harassment - harassment-encouragement - identity-abuse - dehumanization - identity-inferiority - discriminatory-exclusion - hate-threat - criminal-demonstration - criminal-preparation - criminal-request - criminal-instructions - criminal-promotion - historical - documentary - fictional - support-prevention additionalProperties: oneOf: - type: object properties: status: type: string const: evaluated score: type: number minimum: 0 maximum: 1 scopeScore: type: number minimum: 0 maximum: 1 likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely required: - status - score - likelihood additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable required: - status - reason additionalProperties: false required: - status - likelihood - score additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable qualifiers: type: object propertyNames: type: string enum: - nudity - sexual-activity - explicit-sexual-language - sexual-solicitation - physical-attack - violent-threat - violent-preparation - violent-encouragement - injury - death - graphic - self-harm-thoughts - self-harm-preparation - self-harm-act - self-harm-methods - self-harm-encouragement - personal-abuse - targeted-intimidation - harassment-threat - sexual-harassment - harassment-encouragement - identity-abuse - dehumanization - identity-inferiority - discriminatory-exclusion - hate-threat - criminal-demonstration - criminal-preparation - criminal-request - criminal-instructions - criminal-promotion - historical - documentary - fictional - support-prevention additionalProperties: oneOf: - type: object properties: status: type: string const: evaluated score: type: number minimum: 0 maximum: 1 scopeScore: type: number minimum: 0 maximum: 1 likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely required: - status - score - likelihood additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable required: - status - reason additionalProperties: false required: - status - reason additionalProperties: false hate: oneOf: - type: object properties: status: type: string const: evaluated likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely score: type: number minimum: 0 maximum: 1 qualifiers: type: object propertyNames: type: string enum: - nudity - sexual-activity - explicit-sexual-language - sexual-solicitation - physical-attack - violent-threat - violent-preparation - violent-encouragement - injury - death - graphic - self-harm-thoughts - self-harm-preparation - self-harm-act - self-harm-methods - self-harm-encouragement - personal-abuse - targeted-intimidation - harassment-threat - sexual-harassment - harassment-encouragement - identity-abuse - dehumanization - identity-inferiority - discriminatory-exclusion - hate-threat - criminal-demonstration - criminal-preparation - criminal-request - criminal-instructions - criminal-promotion - historical - documentary - fictional - support-prevention additionalProperties: oneOf: - type: object properties: status: type: string const: evaluated score: type: number minimum: 0 maximum: 1 scopeScore: type: number minimum: 0 maximum: 1 likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely required: - status - score - likelihood additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable required: - status - reason additionalProperties: false required: - status - likelihood - score additionalProperties: false - type: object properties: status: type: string const: partial likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely score: type: number minimum: 0 maximum: 1 qualifiers: type: object propertyNames: type: string enum: - nudity - sexual-activity - explicit-sexual-language - sexual-solicitation - physical-attack - violent-threat - violent-preparation - violent-encouragement - injury - death - graphic - self-harm-thoughts - self-harm-preparation - self-harm-act - self-harm-methods - self-harm-encouragement - personal-abuse - targeted-intimidation - harassment-threat - sexual-harassment - harassment-encouragement - identity-abuse - dehumanization - identity-inferiority - discriminatory-exclusion - hate-threat - criminal-demonstration - criminal-preparation - criminal-request - criminal-instructions - criminal-promotion - historical - documentary - fictional - support-prevention additionalProperties: oneOf: - type: object properties: status: type: string const: evaluated score: type: number minimum: 0 maximum: 1 scopeScore: type: number minimum: 0 maximum: 1 likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely required: - status - score - likelihood additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable required: - status - reason additionalProperties: false required: - status - likelihood - score additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable qualifiers: type: object propertyNames: type: string enum: - nudity - sexual-activity - explicit-sexual-language - sexual-solicitation - physical-attack - violent-threat - violent-preparation - violent-encouragement - injury - death - graphic - self-harm-thoughts - self-harm-preparation - self-harm-act - self-harm-methods - self-harm-encouragement - personal-abuse - targeted-intimidation - harassment-threat - sexual-harassment - harassment-encouragement - identity-abuse - dehumanization - identity-inferiority - discriminatory-exclusion - hate-threat - criminal-demonstration - criminal-preparation - criminal-request - criminal-instructions - criminal-promotion - historical - documentary - fictional - support-prevention additionalProperties: oneOf: - type: object properties: status: type: string const: evaluated score: type: number minimum: 0 maximum: 1 scopeScore: type: number minimum: 0 maximum: 1 likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely required: - status - score - likelihood additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable required: - status - reason additionalProperties: false required: - status - reason additionalProperties: false criminal-activity: oneOf: - type: object properties: status: type: string const: evaluated likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely score: type: number minimum: 0 maximum: 1 qualifiers: type: object propertyNames: type: string enum: - nudity - sexual-activity - explicit-sexual-language - sexual-solicitation - physical-attack - violent-threat - violent-preparation - violent-encouragement - injury - death - graphic - self-harm-thoughts - self-harm-preparation - self-harm-act - self-harm-methods - self-harm-encouragement - personal-abuse - targeted-intimidation - harassment-threat - sexual-harassment - harassment-encouragement - identity-abuse - dehumanization - identity-inferiority - discriminatory-exclusion - hate-threat - criminal-demonstration - criminal-preparation - criminal-request - criminal-instructions - criminal-promotion - historical - documentary - fictional - support-prevention additionalProperties: oneOf: - type: object properties: status: type: string const: evaluated score: type: number minimum: 0 maximum: 1 scopeScore: type: number minimum: 0 maximum: 1 likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely required: - status - score - likelihood additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable required: - status - reason additionalProperties: false required: - status - likelihood - score additionalProperties: false - type: object properties: status: type: string const: partial likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely score: type: number minimum: 0 maximum: 1 qualifiers: type: object propertyNames: type: string enum: - nudity - sexual-activity - explicit-sexual-language - sexual-solicitation - physical-attack - violent-threat - violent-preparation - violent-encouragement - injury - death - graphic - self-harm-thoughts - self-harm-preparation - self-harm-act - self-harm-methods - self-harm-encouragement - personal-abuse - targeted-intimidation - harassment-threat - sexual-harassment - harassment-encouragement - identity-abuse - dehumanization - identity-inferiority - discriminatory-exclusion - hate-threat - criminal-demonstration - criminal-preparation - criminal-request - criminal-instructions - criminal-promotion - historical - documentary - fictional - support-prevention additionalProperties: oneOf: - type: object properties: status: type: string const: evaluated score: type: number minimum: 0 maximum: 1 scopeScore: type: number minimum: 0 maximum: 1 likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely required: - status - score - likelihood additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable required: - status - reason additionalProperties: false required: - status - likelihood - score additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable qualifiers: type: object propertyNames: type: string enum: - nudity - sexual-activity - explicit-sexual-language - sexual-solicitation - physical-attack - violent-threat - violent-preparation - violent-encouragement - injury - death - graphic - self-harm-thoughts - self-harm-preparation - self-harm-act - self-harm-methods - self-harm-encouragement - personal-abuse - targeted-intimidation - harassment-threat - sexual-harassment - harassment-encouragement - identity-abuse - dehumanization - identity-inferiority - discriminatory-exclusion - hate-threat - criminal-demonstration - criminal-preparation - criminal-request - criminal-instructions - criminal-promotion - historical - documentary - fictional - support-prevention additionalProperties: oneOf: - type: object properties: status: type: string const: evaluated score: type: number minimum: 0 maximum: 1 scopeScore: type: number minimum: 0 maximum: 1 likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely required: - status - score - likelihood additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable required: - status - reason additionalProperties: false required: - status - reason additionalProperties: false required: - sexual - violence - self-harm - harassment - hate - criminal-activity additionalProperties: false required: - source - startSeconds - endSeconds - categories additionalProperties: false required: - durationSeconds - sampledFrames - audioTranscribed - segments additionalProperties: false labels: anyOf: - type: array items: type: object properties: description: {} score: type: number topicalityScore: type: - number - "null" likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely knowledgeBaseId: anyOf: - {} - type: "null" required: - description - score - likelihood additionalProperties: false - type: "null" required: - processedAt - categories - flagged - score additionalProperties: false - type: "null" moderationAction: anyOf: - type: string enum: - ignore - alert - hide - purge - type: "null" description: The moderation action applied when this asset crossed a policy threshold status: type: string enum: - uploading - pending - approved - rejected - error description: Processing and moderation status. See [Asset lifecycle](/docs/guides/asset-lifecycle). safetyHold: anyOf: - type: object properties: placedAt: type: number description: When the hold was placed, in milliseconds since the Unix epoch reason: type: string enum: - suspected-illegal-content description: Why the asset is held disposedAt: description: When the held content was disposed of, in milliseconds since the Unix epoch type: - number - "null" required: - placedAt - reason additionalProperties: false - type: "null" description: Internal delivery restriction for suspected illegal content. Held content cannot be viewed, changed, or deleted through normal asset operations. rejectionNote: anyOf: - {} - type: "null" description: Reason the asset was rejected, generated automatically or supplied by a reviewer extractedText: anyOf: - oneOf: - type: object properties: type: type: string const: string content: type: string required: - type - content additionalProperties: false - type: object properties: type: type: string const: document id: {} required: - type - id additionalProperties: false - type: "null" description: Extracted text stored inline for small content or in R2 for larger content processingOptions: description: Processing options supplied when the asset was uploaded anyOf: - type: object properties: keepContentAfterProcessing: description: Whether to keep the asset content after processing default: false type: - boolean - "null" flaggedContentPolicy: anyOf: - type: object properties: action: type: string enum: - ignore - alert - hide - purge required: - action additionalProperties: false - type: "null" description: Override the project moderation action for this asset. Ignore takes no action, alert keeps delivery enabled, hide blocks delivery while retaining content, and purge deletes content. image: description: Options for image assets anyOf: - type: object properties: ocrEnabled: description: Whether to extract image text into a child asset and run normal text moderation. Applies to images, including those extracted from multimedia documents and websites. default: false type: - boolean - "null" additionalProperties: false - type: "null" additionalProperties: false - type: "null" visibility: anyOf: - type: string enum: - public - private - type: "null" description: Visibility level of the asset default: private storageDeletedAt: description: When the stored content was removed, in milliseconds since the Unix epoch. The asset record and report remain. type: - number - "null" required: - id - projectId - createdAt - name - type - status additionalProperties: false description: An asset in the system $defs: __schema0: anyOf: - type: string - type: number - type: boolean - type: "null" - type: array items: $ref: "#/paths/~1assets~1{assetId}~1part/post/responses/200/content/application~1json/schema/$defs/__schema0" - type: object propertyNames: type: string additionalProperties: $ref: "#/paths/~1assets~1{assetId}~1part/post/responses/200/content/application~1json/schema/$defs/__schema0" "400": description: |- upload/file-too-large: File size exceeds limit. Maximum direct image size is 10MB, audio/video size is 50MiB, and other files is 5GB. upload/multipart-image-too-small: Multipart image uploads must total at least 10MB. upload/multipart-image-too-large: Multipart image uploads cannot exceed 20MB. upload/invalid-payload: Upload payload is invalid. upload/size-mismatch: The uploaded parts do not add up to the totalSizeInBytes declared when the multipart upload started. idempotency/invalid-key: The Idempotency-Key header must be 1 to 255 printable ASCII characters, such as a UUID. headers: X-Request-Id: *a1 content: application/json: schema: type: object required: - message - code - traceId properties: message: type: string code: type: string enum: - upload/file-too-large - upload/multipart-image-too-small - upload/multipart-image-too-large - upload/invalid-payload - upload/size-mismatch - idempotency/invalid-key traceId: type: string examples: upload-file-too-large: summary: File size exceeds limit. Maximum direct image size is 10MB, audio/video size is 50MiB, and other files is 5GB. value: message: File size exceeds limit. Maximum direct image size is 10MB, audio/video size is 50MiB, and other files is 5GB. code: upload/file-too-large traceId: request-trace-id upload-multipart-image-too-small: summary: Multipart image uploads must total at least 10MB. value: message: Multipart image uploads must total at least 10MB. code: upload/multipart-image-too-small traceId: request-trace-id upload-multipart-image-too-large: summary: Multipart image uploads cannot exceed 20MB. value: message: Multipart image uploads cannot exceed 20MB. code: upload/multipart-image-too-large traceId: request-trace-id upload-invalid-payload: summary: Upload payload is invalid. value: message: Upload payload is invalid. code: upload/invalid-payload traceId: request-trace-id upload-size-mismatch: summary: The uploaded parts do not add up to the totalSizeInBytes declared when the multipart upload started. value: message: The uploaded parts do not add up to the totalSizeInBytes declared when the multipart upload started. code: upload/size-mismatch traceId: request-trace-id idempotency-invalid-key: summary: The Idempotency-Key header must be 1 to 255 printable ASCII characters, such as a UUID. value: message: The Idempotency-Key header must be 1 to 255 printable ASCII characters, such as a UUID. code: idempotency/invalid-key traceId: request-trace-id "401": description: |- auth/missing-token: Authentication required. Send your project API key in the X-Api-Key header. auth/invalid-api-key: The API key is invalid, revoked or expired. Create a key under Developer → API Keys. headers: X-Request-Id: *a1 content: application/json: schema: type: object required: - message - code - traceId properties: message: type: string code: type: string enum: - auth/missing-token - auth/invalid-api-key traceId: type: string examples: auth-missing-token: summary: Authentication required. Send your project API key in the X-Api-Key header. value: message: Authentication required. Send your project API key in the X-Api-Key header. code: auth/missing-token traceId: request-trace-id auth-invalid-api-key: summary: The API key is invalid, revoked or expired. Create a key under Developer → API Keys. value: message: The API key is invalid, revoked or expired. Create a key under Developer → API Keys. code: auth/invalid-api-key traceId: request-trace-id "403": description: "auth/project-mismatch: This API key belongs to a different project. Use a key created for the project that owns this resource." headers: X-Request-Id: *a1 content: application/json: schema: type: object required: - message - code - traceId properties: message: type: string code: type: string enum: - auth/project-mismatch traceId: type: string examples: auth-project-mismatch: summary: This API key belongs to a different project. Use a key created for the project that owns this resource. value: message: This API key belongs to a different project. Use a key created for the project that owns this resource. code: auth/project-mismatch traceId: request-trace-id "404": description: "asset/not-found: Asset not found" headers: X-Request-Id: *a1 content: application/json: schema: type: object required: - message - code - traceId properties: message: type: string code: type: string enum: - asset/not-found traceId: type: string examples: asset-not-found: summary: Asset not found value: message: Asset not found code: asset/not-found traceId: request-trace-id "409": description: |- upload/not-open: Asset is not accepting additional parts upload/invalid-part-number: Multipart upload part number is invalid. upload/missing: Multipart upload state is missing idempotency/key-reused: This Idempotency-Key was already used for a different request. Use a new key for each distinct request. idempotency/request-in-progress: A request with this Idempotency-Key is still being processed. Retry after the Retry-After delay to receive its result. headers: X-Request-Id: *a1 Retry-After: *a3 content: application/json: schema: type: object required: - message - code - traceId properties: message: type: string code: type: string enum: - upload/not-open - upload/invalid-part-number - upload/missing - idempotency/key-reused - idempotency/request-in-progress traceId: type: string examples: upload-not-open: summary: Asset is not accepting additional parts value: message: Asset is not accepting additional parts code: upload/not-open traceId: request-trace-id upload-invalid-part-number: summary: Multipart upload part number is invalid. value: message: Multipart upload part number is invalid. code: upload/invalid-part-number traceId: request-trace-id upload-missing: summary: Multipart upload state is missing value: message: Multipart upload state is missing code: upload/missing traceId: request-trace-id idempotency-key-reused: summary: This Idempotency-Key was already used for a different request. Use a new key for each distinct request. value: message: This Idempotency-Key was already used for a different request. Use a new key for each distinct request. code: idempotency/key-reused traceId: request-trace-id idempotency-request-in-progress: summary: A request with this Idempotency-Key is still being processed. Retry after the Retry-After delay to receive its result. value: message: A request with this Idempotency-Key is still being processed. Retry after the Retry-After delay to receive its result. code: idempotency/request-in-progress traceId: request-trace-id parameters: - name: assetId in: path required: true description: UUID of the asset to fetch schema: type: string format: uuid pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$ description: UUID of the asset to fetch example: 987fcdeb-51a2-43d7-b890-123456789abc - name: queue in: query required: false description: "Overrides how the final part is classified: true queues it, false waits for the decision. When omitted, the upload uses the `queue` value sent when it started. Audio and video always run asynchronously and return pending." schema: type: boolean description: "Overrides how the final part is classified: true queues it, false waits for the decision. When omitted, the upload uses the `queue` value sent when it started. Audio and video always run asynchronously and return pending." - name: Idempotency-Key in: header required: false description: A unique value, such as a UUID, that makes the request safe to retry. A retry with the same key and the same request returns the saved response for 24 hours instead of running again. Keys are scoped to the project and the API key. schema: type: string minLength: 1 maxLength: 255 requestBody: required: true content: application/json: schema: type: object properties: part: anyOf: - type: object properties: plainText: type: string description: Plain text content base64: not: {} uint8Array: not: {} buffer: not: {} data: not: {} partNumber: type: integer exclusiveMinimum: 0 maximum: 9007199254740991 isFinal: type: - boolean - string required: - plainText - partNumber - type: object properties: base64: type: string description: Base64 encoded content or data URL uint8Array: not: {} buffer: not: {} data: not: {} partNumber: type: integer exclusiveMinimum: 0 maximum: 9007199254740991 isFinal: type: - boolean - string required: - base64 - partNumber - type: object properties: uint8Array: type: array items: type: integer minimum: 0 maximum: 255 description: Raw bytes as an array of numbers from 0 to 255 base64: not: {} buffer: not: {} data: not: {} partNumber: type: integer exclusiveMinimum: 0 maximum: 9007199254740991 isFinal: type: - boolean - string required: - uint8Array - partNumber - type: object properties: buffer: {} base64: not: {} uint8Array: not: {} data: not: {} partNumber: type: integer exclusiveMinimum: 0 maximum: 9007199254740991 isFinal: type: - boolean - string required: - buffer - partNumber - type: object properties: data: {} base64: not: {} uint8Array: not: {} buffer: not: {} partNumber: type: integer exclusiveMinimum: 0 maximum: 9007199254740991 isFinal: type: - boolean - string required: - data - partNumber required: - part example: part: base64: partNumber: 2 isFinal: false /projects/{projectId}/assets/page: get: operationId: get-assets-page summary: Get Assets Page description: Get a paginated list of assets for a project security: - ApiKeyAuth: [] responses: "200": description: Successful response headers: X-Request-Id: *a1 content: application/json: schema: type: object properties: pageIndex: default: "0" type: number minimum: 0 description: The zero-based page index pageSize: type: number minimum: 1 maximum: 100 description: Number of items per page (1-100) ordering: type: array items: type: object properties: field: type: string description: The field name to order by direction: type: string enum: - ASC - DESC description: The sort direction default: ASC required: - field - direction additionalProperties: false description: Array of field ordering specifications items: type: array items: type: object properties: id: type: string format: uuid pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-4[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$ description: Unique asset ID projectId: type: string format: uuid pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-4[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$ description: ID of the project that owns the asset sizeInBytes: description: Size of the uploaded content in bytes type: - number - "null" userId: description: ID of the user whose account created the asset anyOf: - {} - type: "null" parentId: description: ID of the parent asset for child assets CalmLens extracts during processing, such as images in a document or OCR text. `null` for uploaded assets. anyOf: - type: string format: uuid pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-4[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$ - type: "null" folderId: anyOf: - type: string format: uuid pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-4[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$ - type: "null" description: Folder containing the asset createdAt: type: integer minimum: -9007199254740991 maximum: 9007199254740991 description: When the asset was created, in milliseconds since the Unix epoch updatedAt: description: When the asset was last updated, in milliseconds since the Unix epoch type: integer minimum: -9007199254740991 maximum: 9007199254740991 checksums: description: Digests of the uploaded content anyOf: - type: object properties: md5: description: MD5 digest of the uploaded content type: - string - "null" sha1: description: SHA-1 digest of the uploaded content type: - string - "null" sha256: description: SHA-256 digest of the uploaded content type: - string - "null" sha384: description: SHA-384 digest of the uploaded content type: - string - "null" sha512: description: SHA-512 digest of the uploaded content type: - string - "null" additionalProperties: false - type: "null" imageData: description: Image properties, for image assets anyOf: - type: object properties: perceptualHash: description: Perceptual hash used to match visually similar images type: - string - "null" width: description: Image width in pixels anyOf: - type: integer exclusiveMinimum: 0 maximum: 9007199254740991 - type: "null" height: description: Image height in pixels anyOf: - type: integer exclusiveMinimum: 0 maximum: 9007199254740991 - type: "null" additionalProperties: false - type: "null" documentData: description: Document properties, for documents anyOf: - type: object properties: {} additionalProperties: false - type: "null" name: description: Name of the asset fileFormat: description: MIME type of the stored content anyOf: - {} - type: "null" fileExtension: description: File extension of the stored content anyOf: - {} - type: "null" description: anyOf: - {} - type: "null" description: Optional description of the asset externalId: anyOf: - {} - type: "null" description: External identifier for the asset externalUrl: anyOf: - type: string format: uri - type: "null" description: External URL associated with the asset previewImage: description: Browser-friendly preview generated for images, documents and websites anyOf: - type: object properties: id: anyOf: - {} - type: "null" description: Identifier of the stored preview image fileFormat: anyOf: - {} - type: "null" description: File format of the preview, such as `webp` thumbhash: anyOf: - {} - type: "null" description: ThumbHash placeholder you can render while the preview loads averageColor: anyOf: - {} - type: "null" description: Average color of the preview width: anyOf: - type: integer exclusiveMinimum: 0 maximum: 9007199254740991 - type: "null" description: Preview width in pixels height: anyOf: - type: integer exclusiveMinimum: 0 maximum: 9007199254740991 - type: "null" description: Preview height in pixels required: - id - fileFormat - thumbhash - averageColor - width - height additionalProperties: false - type: "null" storageId: description: Internal storage key of the retained content; `null` when nothing is stored anyOf: - {} - type: "null" uploadPartsReceived: description: Number of parts received so far for a multipart upload anyOf: - type: integer minimum: -9007199254740991 maximum: 9007199254740991 - type: "null" type: type: string enum: - image - video - audio - plaintext-document - multimedia-document - website - file description: Asset type, detected from the content's MIME type metadata: anyOf: - type: array items: type: object properties: id: description: Identifier for the metadata item value: $ref: "#/paths/~1projects~1{projectId}~1assets~1page/get/responses/200/content/application~1json/schema/$defs/__schema0" description: Value of the metadata item required: - id - value additionalProperties: false description: A metadata item with an ID and value - type: "null" description: List of custom metadata items for the asset tags: anyOf: - type: array items: {} - type: "null" description: Array of tags for the asset report: description: Moderation report, set once classification finishes. See [Report format](/docs/guides/moderation-reports). anyOf: - type: object properties: processedAt: type: number categories: type: object properties: sexual: oneOf: - type: object properties: status: type: string const: evaluated likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely score: type: number minimum: 0 maximum: 1 qualifiers: type: object propertyNames: type: string enum: - nudity - sexual-activity - explicit-sexual-language - sexual-solicitation - physical-attack - violent-threat - violent-preparation - violent-encouragement - injury - death - graphic - self-harm-thoughts - self-harm-preparation - self-harm-act - self-harm-methods - self-harm-encouragement - personal-abuse - targeted-intimidation - harassment-threat - sexual-harassment - harassment-encouragement - identity-abuse - dehumanization - identity-inferiority - discriminatory-exclusion - hate-threat - criminal-demonstration - criminal-preparation - criminal-request - criminal-instructions - criminal-promotion - historical - documentary - fictional - support-prevention additionalProperties: oneOf: - type: object properties: status: type: string const: evaluated score: type: number minimum: 0 maximum: 1 scopeScore: type: number minimum: 0 maximum: 1 likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely required: - status - score - likelihood additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable required: - status - reason additionalProperties: false required: - status - likelihood - score additionalProperties: false - type: object properties: status: type: string const: partial likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely score: type: number minimum: 0 maximum: 1 qualifiers: type: object propertyNames: type: string enum: - nudity - sexual-activity - explicit-sexual-language - sexual-solicitation - physical-attack - violent-threat - violent-preparation - violent-encouragement - injury - death - graphic - self-harm-thoughts - self-harm-preparation - self-harm-act - self-harm-methods - self-harm-encouragement - personal-abuse - targeted-intimidation - harassment-threat - sexual-harassment - harassment-encouragement - identity-abuse - dehumanization - identity-inferiority - discriminatory-exclusion - hate-threat - criminal-demonstration - criminal-preparation - criminal-request - criminal-instructions - criminal-promotion - historical - documentary - fictional - support-prevention additionalProperties: oneOf: - type: object properties: status: type: string const: evaluated score: type: number minimum: 0 maximum: 1 scopeScore: type: number minimum: 0 maximum: 1 likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely required: - status - score - likelihood additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable required: - status - reason additionalProperties: false required: - status - likelihood - score additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable qualifiers: type: object propertyNames: type: string enum: - nudity - sexual-activity - explicit-sexual-language - sexual-solicitation - physical-attack - violent-threat - violent-preparation - violent-encouragement - injury - death - graphic - self-harm-thoughts - self-harm-preparation - self-harm-act - self-harm-methods - self-harm-encouragement - personal-abuse - targeted-intimidation - harassment-threat - sexual-harassment - harassment-encouragement - identity-abuse - dehumanization - identity-inferiority - discriminatory-exclusion - hate-threat - criminal-demonstration - criminal-preparation - criminal-request - criminal-instructions - criminal-promotion - historical - documentary - fictional - support-prevention additionalProperties: oneOf: - type: object properties: status: type: string const: evaluated score: type: number minimum: 0 maximum: 1 scopeScore: type: number minimum: 0 maximum: 1 likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely required: - status - score - likelihood additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable required: - status - reason additionalProperties: false required: - status - reason additionalProperties: false violence: oneOf: - type: object properties: status: type: string const: evaluated likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely score: type: number minimum: 0 maximum: 1 qualifiers: type: object propertyNames: type: string enum: - nudity - sexual-activity - explicit-sexual-language - sexual-solicitation - physical-attack - violent-threat - violent-preparation - violent-encouragement - injury - death - graphic - self-harm-thoughts - self-harm-preparation - self-harm-act - self-harm-methods - self-harm-encouragement - personal-abuse - targeted-intimidation - harassment-threat - sexual-harassment - harassment-encouragement - identity-abuse - dehumanization - identity-inferiority - discriminatory-exclusion - hate-threat - criminal-demonstration - criminal-preparation - criminal-request - criminal-instructions - criminal-promotion - historical - documentary - fictional - support-prevention additionalProperties: oneOf: - type: object properties: status: type: string const: evaluated score: type: number minimum: 0 maximum: 1 scopeScore: type: number minimum: 0 maximum: 1 likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely required: - status - score - likelihood additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable required: - status - reason additionalProperties: false required: - status - likelihood - score additionalProperties: false - type: object properties: status: type: string const: partial likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely score: type: number minimum: 0 maximum: 1 qualifiers: type: object propertyNames: type: string enum: - nudity - sexual-activity - explicit-sexual-language - sexual-solicitation - physical-attack - violent-threat - violent-preparation - violent-encouragement - injury - death - graphic - self-harm-thoughts - self-harm-preparation - self-harm-act - self-harm-methods - self-harm-encouragement - personal-abuse - targeted-intimidation - harassment-threat - sexual-harassment - harassment-encouragement - identity-abuse - dehumanization - identity-inferiority - discriminatory-exclusion - hate-threat - criminal-demonstration - criminal-preparation - criminal-request - criminal-instructions - criminal-promotion - historical - documentary - fictional - support-prevention additionalProperties: oneOf: - type: object properties: status: type: string const: evaluated score: type: number minimum: 0 maximum: 1 scopeScore: type: number minimum: 0 maximum: 1 likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely required: - status - score - likelihood additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable required: - status - reason additionalProperties: false required: - status - likelihood - score additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable qualifiers: type: object propertyNames: type: string enum: - nudity - sexual-activity - explicit-sexual-language - sexual-solicitation - physical-attack - violent-threat - violent-preparation - violent-encouragement - injury - death - graphic - self-harm-thoughts - self-harm-preparation - self-harm-act - self-harm-methods - self-harm-encouragement - personal-abuse - targeted-intimidation - harassment-threat - sexual-harassment - harassment-encouragement - identity-abuse - dehumanization - identity-inferiority - discriminatory-exclusion - hate-threat - criminal-demonstration - criminal-preparation - criminal-request - criminal-instructions - criminal-promotion - historical - documentary - fictional - support-prevention additionalProperties: oneOf: - type: object properties: status: type: string const: evaluated score: type: number minimum: 0 maximum: 1 scopeScore: type: number minimum: 0 maximum: 1 likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely required: - status - score - likelihood additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable required: - status - reason additionalProperties: false required: - status - reason additionalProperties: false self-harm: oneOf: - type: object properties: status: type: string const: evaluated likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely score: type: number minimum: 0 maximum: 1 qualifiers: type: object propertyNames: type: string enum: - nudity - sexual-activity - explicit-sexual-language - sexual-solicitation - physical-attack - violent-threat - violent-preparation - violent-encouragement - injury - death - graphic - self-harm-thoughts - self-harm-preparation - self-harm-act - self-harm-methods - self-harm-encouragement - personal-abuse - targeted-intimidation - harassment-threat - sexual-harassment - harassment-encouragement - identity-abuse - dehumanization - identity-inferiority - discriminatory-exclusion - hate-threat - criminal-demonstration - criminal-preparation - criminal-request - criminal-instructions - criminal-promotion - historical - documentary - fictional - support-prevention additionalProperties: oneOf: - type: object properties: status: type: string const: evaluated score: type: number minimum: 0 maximum: 1 scopeScore: type: number minimum: 0 maximum: 1 likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely required: - status - score - likelihood additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable required: - status - reason additionalProperties: false required: - status - likelihood - score additionalProperties: false - type: object properties: status: type: string const: partial likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely score: type: number minimum: 0 maximum: 1 qualifiers: type: object propertyNames: type: string enum: - nudity - sexual-activity - explicit-sexual-language - sexual-solicitation - physical-attack - violent-threat - violent-preparation - violent-encouragement - injury - death - graphic - self-harm-thoughts - self-harm-preparation - self-harm-act - self-harm-methods - self-harm-encouragement - personal-abuse - targeted-intimidation - harassment-threat - sexual-harassment - harassment-encouragement - identity-abuse - dehumanization - identity-inferiority - discriminatory-exclusion - hate-threat - criminal-demonstration - criminal-preparation - criminal-request - criminal-instructions - criminal-promotion - historical - documentary - fictional - support-prevention additionalProperties: oneOf: - type: object properties: status: type: string const: evaluated score: type: number minimum: 0 maximum: 1 scopeScore: type: number minimum: 0 maximum: 1 likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely required: - status - score - likelihood additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable required: - status - reason additionalProperties: false required: - status - likelihood - score additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable qualifiers: type: object propertyNames: type: string enum: - nudity - sexual-activity - explicit-sexual-language - sexual-solicitation - physical-attack - violent-threat - violent-preparation - violent-encouragement - injury - death - graphic - self-harm-thoughts - self-harm-preparation - self-harm-act - self-harm-methods - self-harm-encouragement - personal-abuse - targeted-intimidation - harassment-threat - sexual-harassment - harassment-encouragement - identity-abuse - dehumanization - identity-inferiority - discriminatory-exclusion - hate-threat - criminal-demonstration - criminal-preparation - criminal-request - criminal-instructions - criminal-promotion - historical - documentary - fictional - support-prevention additionalProperties: oneOf: - type: object properties: status: type: string const: evaluated score: type: number minimum: 0 maximum: 1 scopeScore: type: number minimum: 0 maximum: 1 likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely required: - status - score - likelihood additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable required: - status - reason additionalProperties: false required: - status - reason additionalProperties: false harassment: oneOf: - type: object properties: status: type: string const: evaluated likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely score: type: number minimum: 0 maximum: 1 qualifiers: type: object propertyNames: type: string enum: - nudity - sexual-activity - explicit-sexual-language - sexual-solicitation - physical-attack - violent-threat - violent-preparation - violent-encouragement - injury - death - graphic - self-harm-thoughts - self-harm-preparation - self-harm-act - self-harm-methods - self-harm-encouragement - personal-abuse - targeted-intimidation - harassment-threat - sexual-harassment - harassment-encouragement - identity-abuse - dehumanization - identity-inferiority - discriminatory-exclusion - hate-threat - criminal-demonstration - criminal-preparation - criminal-request - criminal-instructions - criminal-promotion - historical - documentary - fictional - support-prevention additionalProperties: oneOf: - type: object properties: status: type: string const: evaluated score: type: number minimum: 0 maximum: 1 scopeScore: type: number minimum: 0 maximum: 1 likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely required: - status - score - likelihood additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable required: - status - reason additionalProperties: false required: - status - likelihood - score additionalProperties: false - type: object properties: status: type: string const: partial likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely score: type: number minimum: 0 maximum: 1 qualifiers: type: object propertyNames: type: string enum: - nudity - sexual-activity - explicit-sexual-language - sexual-solicitation - physical-attack - violent-threat - violent-preparation - violent-encouragement - injury - death - graphic - self-harm-thoughts - self-harm-preparation - self-harm-act - self-harm-methods - self-harm-encouragement - personal-abuse - targeted-intimidation - harassment-threat - sexual-harassment - harassment-encouragement - identity-abuse - dehumanization - identity-inferiority - discriminatory-exclusion - hate-threat - criminal-demonstration - criminal-preparation - criminal-request - criminal-instructions - criminal-promotion - historical - documentary - fictional - support-prevention additionalProperties: oneOf: - type: object properties: status: type: string const: evaluated score: type: number minimum: 0 maximum: 1 scopeScore: type: number minimum: 0 maximum: 1 likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely required: - status - score - likelihood additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable required: - status - reason additionalProperties: false required: - status - likelihood - score additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable qualifiers: type: object propertyNames: type: string enum: - nudity - sexual-activity - explicit-sexual-language - sexual-solicitation - physical-attack - violent-threat - violent-preparation - violent-encouragement - injury - death - graphic - self-harm-thoughts - self-harm-preparation - self-harm-act - self-harm-methods - self-harm-encouragement - personal-abuse - targeted-intimidation - harassment-threat - sexual-harassment - harassment-encouragement - identity-abuse - dehumanization - identity-inferiority - discriminatory-exclusion - hate-threat - criminal-demonstration - criminal-preparation - criminal-request - criminal-instructions - criminal-promotion - historical - documentary - fictional - support-prevention additionalProperties: oneOf: - type: object properties: status: type: string const: evaluated score: type: number minimum: 0 maximum: 1 scopeScore: type: number minimum: 0 maximum: 1 likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely required: - status - score - likelihood additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable required: - status - reason additionalProperties: false required: - status - reason additionalProperties: false hate: oneOf: - type: object properties: status: type: string const: evaluated likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely score: type: number minimum: 0 maximum: 1 qualifiers: type: object propertyNames: type: string enum: - nudity - sexual-activity - explicit-sexual-language - sexual-solicitation - physical-attack - violent-threat - violent-preparation - violent-encouragement - injury - death - graphic - self-harm-thoughts - self-harm-preparation - self-harm-act - self-harm-methods - self-harm-encouragement - personal-abuse - targeted-intimidation - harassment-threat - sexual-harassment - harassment-encouragement - identity-abuse - dehumanization - identity-inferiority - discriminatory-exclusion - hate-threat - criminal-demonstration - criminal-preparation - criminal-request - criminal-instructions - criminal-promotion - historical - documentary - fictional - support-prevention additionalProperties: oneOf: - type: object properties: status: type: string const: evaluated score: type: number minimum: 0 maximum: 1 scopeScore: type: number minimum: 0 maximum: 1 likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely required: - status - score - likelihood additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable required: - status - reason additionalProperties: false required: - status - likelihood - score additionalProperties: false - type: object properties: status: type: string const: partial likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely score: type: number minimum: 0 maximum: 1 qualifiers: type: object propertyNames: type: string enum: - nudity - sexual-activity - explicit-sexual-language - sexual-solicitation - physical-attack - violent-threat - violent-preparation - violent-encouragement - injury - death - graphic - self-harm-thoughts - self-harm-preparation - self-harm-act - self-harm-methods - self-harm-encouragement - personal-abuse - targeted-intimidation - harassment-threat - sexual-harassment - harassment-encouragement - identity-abuse - dehumanization - identity-inferiority - discriminatory-exclusion - hate-threat - criminal-demonstration - criminal-preparation - criminal-request - criminal-instructions - criminal-promotion - historical - documentary - fictional - support-prevention additionalProperties: oneOf: - type: object properties: status: type: string const: evaluated score: type: number minimum: 0 maximum: 1 scopeScore: type: number minimum: 0 maximum: 1 likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely required: - status - score - likelihood additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable required: - status - reason additionalProperties: false required: - status - likelihood - score additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable qualifiers: type: object propertyNames: type: string enum: - nudity - sexual-activity - explicit-sexual-language - sexual-solicitation - physical-attack - violent-threat - violent-preparation - violent-encouragement - injury - death - graphic - self-harm-thoughts - self-harm-preparation - self-harm-act - self-harm-methods - self-harm-encouragement - personal-abuse - targeted-intimidation - harassment-threat - sexual-harassment - harassment-encouragement - identity-abuse - dehumanization - identity-inferiority - discriminatory-exclusion - hate-threat - criminal-demonstration - criminal-preparation - criminal-request - criminal-instructions - criminal-promotion - historical - documentary - fictional - support-prevention additionalProperties: oneOf: - type: object properties: status: type: string const: evaluated score: type: number minimum: 0 maximum: 1 scopeScore: type: number minimum: 0 maximum: 1 likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely required: - status - score - likelihood additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable required: - status - reason additionalProperties: false required: - status - reason additionalProperties: false criminal-activity: oneOf: - type: object properties: status: type: string const: evaluated likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely score: type: number minimum: 0 maximum: 1 qualifiers: type: object propertyNames: type: string enum: - nudity - sexual-activity - explicit-sexual-language - sexual-solicitation - physical-attack - violent-threat - violent-preparation - violent-encouragement - injury - death - graphic - self-harm-thoughts - self-harm-preparation - self-harm-act - self-harm-methods - self-harm-encouragement - personal-abuse - targeted-intimidation - harassment-threat - sexual-harassment - harassment-encouragement - identity-abuse - dehumanization - identity-inferiority - discriminatory-exclusion - hate-threat - criminal-demonstration - criminal-preparation - criminal-request - criminal-instructions - criminal-promotion - historical - documentary - fictional - support-prevention additionalProperties: oneOf: - type: object properties: status: type: string const: evaluated score: type: number minimum: 0 maximum: 1 scopeScore: type: number minimum: 0 maximum: 1 likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely required: - status - score - likelihood additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable required: - status - reason additionalProperties: false required: - status - likelihood - score additionalProperties: false - type: object properties: status: type: string const: partial likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely score: type: number minimum: 0 maximum: 1 qualifiers: type: object propertyNames: type: string enum: - nudity - sexual-activity - explicit-sexual-language - sexual-solicitation - physical-attack - violent-threat - violent-preparation - violent-encouragement - injury - death - graphic - self-harm-thoughts - self-harm-preparation - self-harm-act - self-harm-methods - self-harm-encouragement - personal-abuse - targeted-intimidation - harassment-threat - sexual-harassment - harassment-encouragement - identity-abuse - dehumanization - identity-inferiority - discriminatory-exclusion - hate-threat - criminal-demonstration - criminal-preparation - criminal-request - criminal-instructions - criminal-promotion - historical - documentary - fictional - support-prevention additionalProperties: oneOf: - type: object properties: status: type: string const: evaluated score: type: number minimum: 0 maximum: 1 scopeScore: type: number minimum: 0 maximum: 1 likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely required: - status - score - likelihood additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable required: - status - reason additionalProperties: false required: - status - likelihood - score additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable qualifiers: type: object propertyNames: type: string enum: - nudity - sexual-activity - explicit-sexual-language - sexual-solicitation - physical-attack - violent-threat - violent-preparation - violent-encouragement - injury - death - graphic - self-harm-thoughts - self-harm-preparation - self-harm-act - self-harm-methods - self-harm-encouragement - personal-abuse - targeted-intimidation - harassment-threat - sexual-harassment - harassment-encouragement - identity-abuse - dehumanization - identity-inferiority - discriminatory-exclusion - hate-threat - criminal-demonstration - criminal-preparation - criminal-request - criminal-instructions - criminal-promotion - historical - documentary - fictional - support-prevention additionalProperties: oneOf: - type: object properties: status: type: string const: evaluated score: type: number minimum: 0 maximum: 1 scopeScore: type: number minimum: 0 maximum: 1 likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely required: - status - score - likelihood additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable required: - status - reason additionalProperties: false required: - status - reason additionalProperties: false required: - sexual - violence - self-harm - harassment - hate - criminal-activity additionalProperties: false flagged: type: boolean score: type: number notes: anyOf: - {} - type: "null" media: type: object properties: durationSeconds: type: number exclusiveMinimum: 0 frameIntervalSeconds: type: number exclusiveMinimum: 0 sampledFrames: type: integer minimum: 0 maximum: 9007199254740991 audioTranscribed: type: boolean segments: type: array items: type: object properties: source: type: string enum: - frame - speech - frame-text - clip startSeconds: type: number minimum: 0 endSeconds: type: number minimum: 0 categories: type: object properties: sexual: oneOf: - type: object properties: status: type: string const: evaluated likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely score: type: number minimum: 0 maximum: 1 qualifiers: type: object propertyNames: type: string enum: - nudity - sexual-activity - explicit-sexual-language - sexual-solicitation - physical-attack - violent-threat - violent-preparation - violent-encouragement - injury - death - graphic - self-harm-thoughts - self-harm-preparation - self-harm-act - self-harm-methods - self-harm-encouragement - personal-abuse - targeted-intimidation - harassment-threat - sexual-harassment - harassment-encouragement - identity-abuse - dehumanization - identity-inferiority - discriminatory-exclusion - hate-threat - criminal-demonstration - criminal-preparation - criminal-request - criminal-instructions - criminal-promotion - historical - documentary - fictional - support-prevention additionalProperties: oneOf: - type: object properties: status: type: string const: evaluated score: type: number minimum: 0 maximum: 1 scopeScore: type: number minimum: 0 maximum: 1 likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely required: - status - score - likelihood additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable required: - status - reason additionalProperties: false required: - status - likelihood - score additionalProperties: false - type: object properties: status: type: string const: partial likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely score: type: number minimum: 0 maximum: 1 qualifiers: type: object propertyNames: type: string enum: - nudity - sexual-activity - explicit-sexual-language - sexual-solicitation - physical-attack - violent-threat - violent-preparation - violent-encouragement - injury - death - graphic - self-harm-thoughts - self-harm-preparation - self-harm-act - self-harm-methods - self-harm-encouragement - personal-abuse - targeted-intimidation - harassment-threat - sexual-harassment - harassment-encouragement - identity-abuse - dehumanization - identity-inferiority - discriminatory-exclusion - hate-threat - criminal-demonstration - criminal-preparation - criminal-request - criminal-instructions - criminal-promotion - historical - documentary - fictional - support-prevention additionalProperties: oneOf: - type: object properties: status: type: string const: evaluated score: type: number minimum: 0 maximum: 1 scopeScore: type: number minimum: 0 maximum: 1 likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely required: - status - score - likelihood additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable required: - status - reason additionalProperties: false required: - status - likelihood - score additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable qualifiers: type: object propertyNames: type: string enum: - nudity - sexual-activity - explicit-sexual-language - sexual-solicitation - physical-attack - violent-threat - violent-preparation - violent-encouragement - injury - death - graphic - self-harm-thoughts - self-harm-preparation - self-harm-act - self-harm-methods - self-harm-encouragement - personal-abuse - targeted-intimidation - harassment-threat - sexual-harassment - harassment-encouragement - identity-abuse - dehumanization - identity-inferiority - discriminatory-exclusion - hate-threat - criminal-demonstration - criminal-preparation - criminal-request - criminal-instructions - criminal-promotion - historical - documentary - fictional - support-prevention additionalProperties: oneOf: - type: object properties: status: type: string const: evaluated score: type: number minimum: 0 maximum: 1 scopeScore: type: number minimum: 0 maximum: 1 likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely required: - status - score - likelihood additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable required: - status - reason additionalProperties: false required: - status - reason additionalProperties: false violence: oneOf: - type: object properties: status: type: string const: evaluated likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely score: type: number minimum: 0 maximum: 1 qualifiers: type: object propertyNames: type: string enum: - nudity - sexual-activity - explicit-sexual-language - sexual-solicitation - physical-attack - violent-threat - violent-preparation - violent-encouragement - injury - death - graphic - self-harm-thoughts - self-harm-preparation - self-harm-act - self-harm-methods - self-harm-encouragement - personal-abuse - targeted-intimidation - harassment-threat - sexual-harassment - harassment-encouragement - identity-abuse - dehumanization - identity-inferiority - discriminatory-exclusion - hate-threat - criminal-demonstration - criminal-preparation - criminal-request - criminal-instructions - criminal-promotion - historical - documentary - fictional - support-prevention additionalProperties: oneOf: - type: object properties: status: type: string const: evaluated score: type: number minimum: 0 maximum: 1 scopeScore: type: number minimum: 0 maximum: 1 likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely required: - status - score - likelihood additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable required: - status - reason additionalProperties: false required: - status - likelihood - score additionalProperties: false - type: object properties: status: type: string const: partial likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely score: type: number minimum: 0 maximum: 1 qualifiers: type: object propertyNames: type: string enum: - nudity - sexual-activity - explicit-sexual-language - sexual-solicitation - physical-attack - violent-threat - violent-preparation - violent-encouragement - injury - death - graphic - self-harm-thoughts - self-harm-preparation - self-harm-act - self-harm-methods - self-harm-encouragement - personal-abuse - targeted-intimidation - harassment-threat - sexual-harassment - harassment-encouragement - identity-abuse - dehumanization - identity-inferiority - discriminatory-exclusion - hate-threat - criminal-demonstration - criminal-preparation - criminal-request - criminal-instructions - criminal-promotion - historical - documentary - fictional - support-prevention additionalProperties: oneOf: - type: object properties: status: type: string const: evaluated score: type: number minimum: 0 maximum: 1 scopeScore: type: number minimum: 0 maximum: 1 likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely required: - status - score - likelihood additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable required: - status - reason additionalProperties: false required: - status - likelihood - score additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable qualifiers: type: object propertyNames: type: string enum: - nudity - sexual-activity - explicit-sexual-language - sexual-solicitation - physical-attack - violent-threat - violent-preparation - violent-encouragement - injury - death - graphic - self-harm-thoughts - self-harm-preparation - self-harm-act - self-harm-methods - self-harm-encouragement - personal-abuse - targeted-intimidation - harassment-threat - sexual-harassment - harassment-encouragement - identity-abuse - dehumanization - identity-inferiority - discriminatory-exclusion - hate-threat - criminal-demonstration - criminal-preparation - criminal-request - criminal-instructions - criminal-promotion - historical - documentary - fictional - support-prevention additionalProperties: oneOf: - type: object properties: status: type: string const: evaluated score: type: number minimum: 0 maximum: 1 scopeScore: type: number minimum: 0 maximum: 1 likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely required: - status - score - likelihood additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable required: - status - reason additionalProperties: false required: - status - reason additionalProperties: false self-harm: oneOf: - type: object properties: status: type: string const: evaluated likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely score: type: number minimum: 0 maximum: 1 qualifiers: type: object propertyNames: type: string enum: - nudity - sexual-activity - explicit-sexual-language - sexual-solicitation - physical-attack - violent-threat - violent-preparation - violent-encouragement - injury - death - graphic - self-harm-thoughts - self-harm-preparation - self-harm-act - self-harm-methods - self-harm-encouragement - personal-abuse - targeted-intimidation - harassment-threat - sexual-harassment - harassment-encouragement - identity-abuse - dehumanization - identity-inferiority - discriminatory-exclusion - hate-threat - criminal-demonstration - criminal-preparation - criminal-request - criminal-instructions - criminal-promotion - historical - documentary - fictional - support-prevention additionalProperties: oneOf: - type: object properties: status: type: string const: evaluated score: type: number minimum: 0 maximum: 1 scopeScore: type: number minimum: 0 maximum: 1 likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely required: - status - score - likelihood additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable required: - status - reason additionalProperties: false required: - status - likelihood - score additionalProperties: false - type: object properties: status: type: string const: partial likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely score: type: number minimum: 0 maximum: 1 qualifiers: type: object propertyNames: type: string enum: - nudity - sexual-activity - explicit-sexual-language - sexual-solicitation - physical-attack - violent-threat - violent-preparation - violent-encouragement - injury - death - graphic - self-harm-thoughts - self-harm-preparation - self-harm-act - self-harm-methods - self-harm-encouragement - personal-abuse - targeted-intimidation - harassment-threat - sexual-harassment - harassment-encouragement - identity-abuse - dehumanization - identity-inferiority - discriminatory-exclusion - hate-threat - criminal-demonstration - criminal-preparation - criminal-request - criminal-instructions - criminal-promotion - historical - documentary - fictional - support-prevention additionalProperties: oneOf: - type: object properties: status: type: string const: evaluated score: type: number minimum: 0 maximum: 1 scopeScore: type: number minimum: 0 maximum: 1 likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely required: - status - score - likelihood additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable required: - status - reason additionalProperties: false required: - status - likelihood - score additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable qualifiers: type: object propertyNames: type: string enum: - nudity - sexual-activity - explicit-sexual-language - sexual-solicitation - physical-attack - violent-threat - violent-preparation - violent-encouragement - injury - death - graphic - self-harm-thoughts - self-harm-preparation - self-harm-act - self-harm-methods - self-harm-encouragement - personal-abuse - targeted-intimidation - harassment-threat - sexual-harassment - harassment-encouragement - identity-abuse - dehumanization - identity-inferiority - discriminatory-exclusion - hate-threat - criminal-demonstration - criminal-preparation - criminal-request - criminal-instructions - criminal-promotion - historical - documentary - fictional - support-prevention additionalProperties: oneOf: - type: object properties: status: type: string const: evaluated score: type: number minimum: 0 maximum: 1 scopeScore: type: number minimum: 0 maximum: 1 likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely required: - status - score - likelihood additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable required: - status - reason additionalProperties: false required: - status - reason additionalProperties: false harassment: oneOf: - type: object properties: status: type: string const: evaluated likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely score: type: number minimum: 0 maximum: 1 qualifiers: type: object propertyNames: type: string enum: - nudity - sexual-activity - explicit-sexual-language - sexual-solicitation - physical-attack - violent-threat - violent-preparation - violent-encouragement - injury - death - graphic - self-harm-thoughts - self-harm-preparation - self-harm-act - self-harm-methods - self-harm-encouragement - personal-abuse - targeted-intimidation - harassment-threat - sexual-harassment - harassment-encouragement - identity-abuse - dehumanization - identity-inferiority - discriminatory-exclusion - hate-threat - criminal-demonstration - criminal-preparation - criminal-request - criminal-instructions - criminal-promotion - historical - documentary - fictional - support-prevention additionalProperties: oneOf: - type: object properties: status: type: string const: evaluated score: type: number minimum: 0 maximum: 1 scopeScore: type: number minimum: 0 maximum: 1 likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely required: - status - score - likelihood additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable required: - status - reason additionalProperties: false required: - status - likelihood - score additionalProperties: false - type: object properties: status: type: string const: partial likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely score: type: number minimum: 0 maximum: 1 qualifiers: type: object propertyNames: type: string enum: - nudity - sexual-activity - explicit-sexual-language - sexual-solicitation - physical-attack - violent-threat - violent-preparation - violent-encouragement - injury - death - graphic - self-harm-thoughts - self-harm-preparation - self-harm-act - self-harm-methods - self-harm-encouragement - personal-abuse - targeted-intimidation - harassment-threat - sexual-harassment - harassment-encouragement - identity-abuse - dehumanization - identity-inferiority - discriminatory-exclusion - hate-threat - criminal-demonstration - criminal-preparation - criminal-request - criminal-instructions - criminal-promotion - historical - documentary - fictional - support-prevention additionalProperties: oneOf: - type: object properties: status: type: string const: evaluated score: type: number minimum: 0 maximum: 1 scopeScore: type: number minimum: 0 maximum: 1 likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely required: - status - score - likelihood additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable required: - status - reason additionalProperties: false required: - status - likelihood - score additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable qualifiers: type: object propertyNames: type: string enum: - nudity - sexual-activity - explicit-sexual-language - sexual-solicitation - physical-attack - violent-threat - violent-preparation - violent-encouragement - injury - death - graphic - self-harm-thoughts - self-harm-preparation - self-harm-act - self-harm-methods - self-harm-encouragement - personal-abuse - targeted-intimidation - harassment-threat - sexual-harassment - harassment-encouragement - identity-abuse - dehumanization - identity-inferiority - discriminatory-exclusion - hate-threat - criminal-demonstration - criminal-preparation - criminal-request - criminal-instructions - criminal-promotion - historical - documentary - fictional - support-prevention additionalProperties: oneOf: - type: object properties: status: type: string const: evaluated score: type: number minimum: 0 maximum: 1 scopeScore: type: number minimum: 0 maximum: 1 likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely required: - status - score - likelihood additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable required: - status - reason additionalProperties: false required: - status - reason additionalProperties: false hate: oneOf: - type: object properties: status: type: string const: evaluated likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely score: type: number minimum: 0 maximum: 1 qualifiers: type: object propertyNames: type: string enum: - nudity - sexual-activity - explicit-sexual-language - sexual-solicitation - physical-attack - violent-threat - violent-preparation - violent-encouragement - injury - death - graphic - self-harm-thoughts - self-harm-preparation - self-harm-act - self-harm-methods - self-harm-encouragement - personal-abuse - targeted-intimidation - harassment-threat - sexual-harassment - harassment-encouragement - identity-abuse - dehumanization - identity-inferiority - discriminatory-exclusion - hate-threat - criminal-demonstration - criminal-preparation - criminal-request - criminal-instructions - criminal-promotion - historical - documentary - fictional - support-prevention additionalProperties: oneOf: - type: object properties: status: type: string const: evaluated score: type: number minimum: 0 maximum: 1 scopeScore: type: number minimum: 0 maximum: 1 likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely required: - status - score - likelihood additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable required: - status - reason additionalProperties: false required: - status - likelihood - score additionalProperties: false - type: object properties: status: type: string const: partial likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely score: type: number minimum: 0 maximum: 1 qualifiers: type: object propertyNames: type: string enum: - nudity - sexual-activity - explicit-sexual-language - sexual-solicitation - physical-attack - violent-threat - violent-preparation - violent-encouragement - injury - death - graphic - self-harm-thoughts - self-harm-preparation - self-harm-act - self-harm-methods - self-harm-encouragement - personal-abuse - targeted-intimidation - harassment-threat - sexual-harassment - harassment-encouragement - identity-abuse - dehumanization - identity-inferiority - discriminatory-exclusion - hate-threat - criminal-demonstration - criminal-preparation - criminal-request - criminal-instructions - criminal-promotion - historical - documentary - fictional - support-prevention additionalProperties: oneOf: - type: object properties: status: type: string const: evaluated score: type: number minimum: 0 maximum: 1 scopeScore: type: number minimum: 0 maximum: 1 likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely required: - status - score - likelihood additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable required: - status - reason additionalProperties: false required: - status - likelihood - score additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable qualifiers: type: object propertyNames: type: string enum: - nudity - sexual-activity - explicit-sexual-language - sexual-solicitation - physical-attack - violent-threat - violent-preparation - violent-encouragement - injury - death - graphic - self-harm-thoughts - self-harm-preparation - self-harm-act - self-harm-methods - self-harm-encouragement - personal-abuse - targeted-intimidation - harassment-threat - sexual-harassment - harassment-encouragement - identity-abuse - dehumanization - identity-inferiority - discriminatory-exclusion - hate-threat - criminal-demonstration - criminal-preparation - criminal-request - criminal-instructions - criminal-promotion - historical - documentary - fictional - support-prevention additionalProperties: oneOf: - type: object properties: status: type: string const: evaluated score: type: number minimum: 0 maximum: 1 scopeScore: type: number minimum: 0 maximum: 1 likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely required: - status - score - likelihood additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable required: - status - reason additionalProperties: false required: - status - reason additionalProperties: false criminal-activity: oneOf: - type: object properties: status: type: string const: evaluated likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely score: type: number minimum: 0 maximum: 1 qualifiers: type: object propertyNames: type: string enum: - nudity - sexual-activity - explicit-sexual-language - sexual-solicitation - physical-attack - violent-threat - violent-preparation - violent-encouragement - injury - death - graphic - self-harm-thoughts - self-harm-preparation - self-harm-act - self-harm-methods - self-harm-encouragement - personal-abuse - targeted-intimidation - harassment-threat - sexual-harassment - harassment-encouragement - identity-abuse - dehumanization - identity-inferiority - discriminatory-exclusion - hate-threat - criminal-demonstration - criminal-preparation - criminal-request - criminal-instructions - criminal-promotion - historical - documentary - fictional - support-prevention additionalProperties: oneOf: - type: object properties: status: type: string const: evaluated score: type: number minimum: 0 maximum: 1 scopeScore: type: number minimum: 0 maximum: 1 likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely required: - status - score - likelihood additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable required: - status - reason additionalProperties: false required: - status - likelihood - score additionalProperties: false - type: object properties: status: type: string const: partial likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely score: type: number minimum: 0 maximum: 1 qualifiers: type: object propertyNames: type: string enum: - nudity - sexual-activity - explicit-sexual-language - sexual-solicitation - physical-attack - violent-threat - violent-preparation - violent-encouragement - injury - death - graphic - self-harm-thoughts - self-harm-preparation - self-harm-act - self-harm-methods - self-harm-encouragement - personal-abuse - targeted-intimidation - harassment-threat - sexual-harassment - harassment-encouragement - identity-abuse - dehumanization - identity-inferiority - discriminatory-exclusion - hate-threat - criminal-demonstration - criminal-preparation - criminal-request - criminal-instructions - criminal-promotion - historical - documentary - fictional - support-prevention additionalProperties: oneOf: - type: object properties: status: type: string const: evaluated score: type: number minimum: 0 maximum: 1 scopeScore: type: number minimum: 0 maximum: 1 likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely required: - status - score - likelihood additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable required: - status - reason additionalProperties: false required: - status - likelihood - score additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable qualifiers: type: object propertyNames: type: string enum: - nudity - sexual-activity - explicit-sexual-language - sexual-solicitation - physical-attack - violent-threat - violent-preparation - violent-encouragement - injury - death - graphic - self-harm-thoughts - self-harm-preparation - self-harm-act - self-harm-methods - self-harm-encouragement - personal-abuse - targeted-intimidation - harassment-threat - sexual-harassment - harassment-encouragement - identity-abuse - dehumanization - identity-inferiority - discriminatory-exclusion - hate-threat - criminal-demonstration - criminal-preparation - criminal-request - criminal-instructions - criminal-promotion - historical - documentary - fictional - support-prevention additionalProperties: oneOf: - type: object properties: status: type: string const: evaluated score: type: number minimum: 0 maximum: 1 scopeScore: type: number minimum: 0 maximum: 1 likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely required: - status - score - likelihood additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable required: - status - reason additionalProperties: false required: - status - reason additionalProperties: false required: - sexual - violence - self-harm - harassment - hate - criminal-activity additionalProperties: false required: - source - startSeconds - endSeconds - categories additionalProperties: false required: - durationSeconds - sampledFrames - audioTranscribed - segments additionalProperties: false labels: anyOf: - type: array items: type: object properties: description: {} score: type: number topicalityScore: type: - number - "null" likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely knowledgeBaseId: anyOf: - {} - type: "null" required: - description - score - likelihood additionalProperties: false - type: "null" required: - processedAt - categories - flagged - score additionalProperties: false - type: "null" moderationAction: anyOf: - type: string enum: - ignore - alert - hide - purge - type: "null" description: The moderation action applied when this asset crossed a policy threshold status: type: string enum: - uploading - pending - approved - rejected - error description: Processing and moderation status. See [Asset lifecycle](/docs/guides/asset-lifecycle). safetyHold: anyOf: - type: object properties: placedAt: type: number description: When the hold was placed, in milliseconds since the Unix epoch reason: type: string enum: - suspected-illegal-content description: Why the asset is held disposedAt: description: When the held content was disposed of, in milliseconds since the Unix epoch type: - number - "null" required: - placedAt - reason additionalProperties: false - type: "null" description: Internal delivery restriction for suspected illegal content. Held content cannot be viewed, changed, or deleted through normal asset operations. rejectionNote: anyOf: - {} - type: "null" description: Reason the asset was rejected, generated automatically or supplied by a reviewer extractedText: anyOf: - oneOf: - type: object properties: type: type: string const: string content: type: string required: - type - content additionalProperties: false - type: object properties: type: type: string const: document id: {} required: - type - id additionalProperties: false - type: "null" description: Extracted text stored inline for small content or in R2 for larger content processingOptions: description: Processing options supplied when the asset was uploaded anyOf: - type: object properties: keepContentAfterProcessing: description: Whether to keep the asset content after processing default: false type: - boolean - "null" flaggedContentPolicy: anyOf: - type: object properties: action: type: string enum: - ignore - alert - hide - purge required: - action additionalProperties: false - type: "null" description: Override the project moderation action for this asset. Ignore takes no action, alert keeps delivery enabled, hide blocks delivery while retaining content, and purge deletes content. image: description: Options for image assets anyOf: - type: object properties: ocrEnabled: description: Whether to extract image text into a child asset and run normal text moderation. Applies to images, including those extracted from multimedia documents and websites. default: false type: - boolean - "null" additionalProperties: false - type: "null" additionalProperties: false - type: "null" visibility: anyOf: - type: string enum: - public - private - type: "null" description: Visibility level of the asset default: private storageDeletedAt: description: When the stored content was removed, in milliseconds since the Unix epoch. The asset record and report remain. type: - number - "null" required: - id - projectId - createdAt - name - type - status additionalProperties: false description: An asset in the system description: Items on this page total: type: number description: Total number of matching items hasMore: type: boolean description: Whether another page follows this one required: - pageIndex - pageSize - ordering - items - total - hasMore additionalProperties: false $defs: __schema0: anyOf: - type: string - type: number - type: boolean - type: "null" - type: array items: $ref: "#/paths/~1projects~1{projectId}~1assets~1page/get/responses/200/content/application~1json/schema/$defs/__schema0" - type: object propertyNames: type: string additionalProperties: $ref: "#/paths/~1projects~1{projectId}~1assets~1page/get/responses/200/content/application~1json/schema/$defs/__schema0" "401": description: |- auth/missing-token: Authentication required. Send your project API key in the X-Api-Key header. auth/invalid-api-key: The API key is invalid, revoked or expired. Create a key under Developer → API Keys. headers: X-Request-Id: *a1 content: application/json: schema: type: object required: - message - code - traceId properties: message: type: string code: type: string enum: - auth/missing-token - auth/invalid-api-key traceId: type: string examples: auth-missing-token: summary: Authentication required. Send your project API key in the X-Api-Key header. value: message: Authentication required. Send your project API key in the X-Api-Key header. code: auth/missing-token traceId: request-trace-id auth-invalid-api-key: summary: The API key is invalid, revoked or expired. Create a key under Developer → API Keys. value: message: The API key is invalid, revoked or expired. Create a key under Developer → API Keys. code: auth/invalid-api-key traceId: request-trace-id "403": description: "auth/project-mismatch: This API key belongs to a different project. Use a key created for the project that owns this resource." headers: X-Request-Id: *a1 content: application/json: schema: type: object required: - message - code - traceId properties: message: type: string code: type: string enum: - auth/project-mismatch traceId: type: string examples: auth-project-mismatch: summary: This API key belongs to a different project. Use a key created for the project that owns this resource. value: message: This API key belongs to a different project. Use a key created for the project that owns this resource. code: auth/project-mismatch traceId: request-trace-id "404": description: |- project/not-found: Project not found folder/not-found: Folder not found headers: X-Request-Id: *a1 content: application/json: schema: type: object required: - message - code - traceId properties: message: type: string code: type: string enum: - project/not-found - folder/not-found traceId: type: string examples: project-not-found: summary: Project not found value: message: Project not found code: project/not-found traceId: request-trace-id folder-not-found: summary: Folder not found value: message: Folder not found code: folder/not-found traceId: request-trace-id parameters: - name: projectId in: path required: true description: UUID of the project to fetch assets from schema: type: string format: uuid pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$ description: UUID of the project to fetch assets from - name: pageIndex in: query required: false description: The zero-based page index schema: default: "0" type: number minimum: 0 description: The zero-based page index example: 0 - name: pageSize in: query required: false description: Number of items per page (1-100) schema: type: number minimum: 1 maximum: 100 description: Number of items per page (1-100) example: 20 - name: ordering in: query required: false description: Array of field ordering specifications schema: type: array items: type: object properties: field: type: string description: The field name to order by direction: type: string enum: - ASC - DESC description: The sort direction default: ASC required: - field - direction description: Array of field ordering specifications - name: filter in: query required: false description: |- RSQL filter string for filtering results. See [Asset filters](/docs/guides/pagination-and-filtering#asset-filters) for detailed syntax. **Examples:** - `status==rejected;parentId==null` (AND conditions) - `status==rejected,status==error` (OR conditions) - `price>100;price<500` (range filtering) - `tags=in=(react,typescript)` (array membership) **Supported operators:** `==`, `!=`, `>`, `>=`, `<`, `<=`, `=in=`, `=out=`, `=like=` **Logical operators:** `;` (AND), `,` (OR) schema: anyOf: - type: string description: |- RSQL filter string for filtering results. See [Asset filters](/docs/guides/pagination-and-filtering#asset-filters) for detailed syntax. **Examples:** - `status==rejected;parentId==null` (AND conditions) - `status==rejected,status==error` (OR conditions) - `price>100;price<500` (range filtering) - `tags=in=(react,typescript)` (array membership) **Supported operators:** `==`, `!=`, `>`, `>=`, `<`, `<=`, `=in=`, `=out=`, `=like=` **Logical operators:** `;` (AND), `,` (OR) - type: "null" description: |- RSQL filter string for filtering results. See [Asset filters](/docs/guides/pagination-and-filtering#asset-filters) for detailed syntax. **Examples:** - `status==rejected;parentId==null` (AND conditions) - `status==rejected,status==error` (OR conditions) - `price>100;price<500` (range filtering) - `tags=in=(react,typescript)` (array membership) **Supported operators:** `==`, `!=`, `>`, `>=`, `<`, `<=`, `=in=`, `=out=`, `=like=` **Logical operators:** `;` (AND), `,` (OR) - name: folderId in: query required: false schema: anyOf: - type: string format: uuid pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$ - type: "null" /projects/{projectId}/assets/search: get: operationId: get-asset-search summary: Search assets description: Search accessible assets by keyword or describe an image in natural language. Semantic image search must be enabled in project settings. Results are ranked and limited to 20. security: - ApiKeyAuth: [] responses: "200": description: Successful response headers: X-Request-Id: *a1 content: application/json: schema: type: object properties: query: type: string items: type: array items: type: object properties: asset: type: object properties: id: type: string format: uuid pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-4[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$ description: Unique asset ID projectId: type: string format: uuid pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-4[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$ description: ID of the project that owns the asset sizeInBytes: description: Size of the uploaded content in bytes type: - number - "null" userId: description: ID of the user whose account created the asset anyOf: - {} - type: "null" parentId: description: ID of the parent asset for child assets CalmLens extracts during processing, such as images in a document or OCR text. `null` for uploaded assets. anyOf: - type: string format: uuid pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-4[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$ - type: "null" folderId: anyOf: - type: string format: uuid pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-4[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$ - type: "null" description: Folder containing the asset createdAt: type: integer minimum: -9007199254740991 maximum: 9007199254740991 description: When the asset was created, in milliseconds since the Unix epoch updatedAt: description: When the asset was last updated, in milliseconds since the Unix epoch type: integer minimum: -9007199254740991 maximum: 9007199254740991 checksums: description: Digests of the uploaded content anyOf: - type: object properties: md5: description: MD5 digest of the uploaded content type: - string - "null" sha1: description: SHA-1 digest of the uploaded content type: - string - "null" sha256: description: SHA-256 digest of the uploaded content type: - string - "null" sha384: description: SHA-384 digest of the uploaded content type: - string - "null" sha512: description: SHA-512 digest of the uploaded content type: - string - "null" additionalProperties: false - type: "null" imageData: description: Image properties, for image assets anyOf: - type: object properties: perceptualHash: description: Perceptual hash used to match visually similar images type: - string - "null" width: description: Image width in pixels anyOf: - type: integer exclusiveMinimum: 0 maximum: 9007199254740991 - type: "null" height: description: Image height in pixels anyOf: - type: integer exclusiveMinimum: 0 maximum: 9007199254740991 - type: "null" additionalProperties: false - type: "null" documentData: description: Document properties, for documents anyOf: - type: object properties: {} additionalProperties: false - type: "null" name: description: Name of the asset fileFormat: description: MIME type of the stored content anyOf: - {} - type: "null" fileExtension: description: File extension of the stored content anyOf: - {} - type: "null" description: anyOf: - {} - type: "null" description: Optional description of the asset externalId: anyOf: - {} - type: "null" description: External identifier for the asset externalUrl: anyOf: - type: string format: uri - type: "null" description: External URL associated with the asset previewImage: description: Browser-friendly preview generated for images, documents and websites anyOf: - type: object properties: id: anyOf: - {} - type: "null" description: Identifier of the stored preview image fileFormat: anyOf: - {} - type: "null" description: File format of the preview, such as `webp` thumbhash: anyOf: - {} - type: "null" description: ThumbHash placeholder you can render while the preview loads averageColor: anyOf: - {} - type: "null" description: Average color of the preview width: anyOf: - type: integer exclusiveMinimum: 0 maximum: 9007199254740991 - type: "null" description: Preview width in pixels height: anyOf: - type: integer exclusiveMinimum: 0 maximum: 9007199254740991 - type: "null" description: Preview height in pixels required: - id - fileFormat - thumbhash - averageColor - width - height additionalProperties: false - type: "null" storageId: description: Internal storage key of the retained content; `null` when nothing is stored anyOf: - {} - type: "null" uploadPartsReceived: description: Number of parts received so far for a multipart upload anyOf: - type: integer minimum: -9007199254740991 maximum: 9007199254740991 - type: "null" type: type: string enum: - image - video - audio - plaintext-document - multimedia-document - website - file description: Asset type, detected from the content's MIME type metadata: anyOf: - type: array items: type: object properties: id: description: Identifier for the metadata item value: $ref: "#/paths/~1projects~1{projectId}~1assets~1search/get/responses/200/content/application~1json/schema/$defs/__schema0" description: Value of the metadata item required: - id - value additionalProperties: false description: A metadata item with an ID and value - type: "null" description: List of custom metadata items for the asset tags: anyOf: - type: array items: {} - type: "null" description: Array of tags for the asset report: description: Moderation report, set once classification finishes. See [Report format](/docs/guides/moderation-reports). anyOf: - type: object properties: processedAt: type: number categories: type: object properties: sexual: oneOf: - type: object properties: status: type: string const: evaluated likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely score: type: number minimum: 0 maximum: 1 qualifiers: type: object propertyNames: type: string enum: - nudity - sexual-activity - explicit-sexual-language - sexual-solicitation - physical-attack - violent-threat - violent-preparation - violent-encouragement - injury - death - graphic - self-harm-thoughts - self-harm-preparation - self-harm-act - self-harm-methods - self-harm-encouragement - personal-abuse - targeted-intimidation - harassment-threat - sexual-harassment - harassment-encouragement - identity-abuse - dehumanization - identity-inferiority - discriminatory-exclusion - hate-threat - criminal-demonstration - criminal-preparation - criminal-request - criminal-instructions - criminal-promotion - historical - documentary - fictional - support-prevention additionalProperties: oneOf: - type: object properties: status: type: string const: evaluated score: type: number minimum: 0 maximum: 1 scopeScore: type: number minimum: 0 maximum: 1 likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely required: - status - score - likelihood additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable required: - status - reason additionalProperties: false required: - status - likelihood - score additionalProperties: false - type: object properties: status: type: string const: partial likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely score: type: number minimum: 0 maximum: 1 qualifiers: type: object propertyNames: type: string enum: - nudity - sexual-activity - explicit-sexual-language - sexual-solicitation - physical-attack - violent-threat - violent-preparation - violent-encouragement - injury - death - graphic - self-harm-thoughts - self-harm-preparation - self-harm-act - self-harm-methods - self-harm-encouragement - personal-abuse - targeted-intimidation - harassment-threat - sexual-harassment - harassment-encouragement - identity-abuse - dehumanization - identity-inferiority - discriminatory-exclusion - hate-threat - criminal-demonstration - criminal-preparation - criminal-request - criminal-instructions - criminal-promotion - historical - documentary - fictional - support-prevention additionalProperties: oneOf: - type: object properties: status: type: string const: evaluated score: type: number minimum: 0 maximum: 1 scopeScore: type: number minimum: 0 maximum: 1 likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely required: - status - score - likelihood additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable required: - status - reason additionalProperties: false required: - status - likelihood - score additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable qualifiers: type: object propertyNames: type: string enum: - nudity - sexual-activity - explicit-sexual-language - sexual-solicitation - physical-attack - violent-threat - violent-preparation - violent-encouragement - injury - death - graphic - self-harm-thoughts - self-harm-preparation - self-harm-act - self-harm-methods - self-harm-encouragement - personal-abuse - targeted-intimidation - harassment-threat - sexual-harassment - harassment-encouragement - identity-abuse - dehumanization - identity-inferiority - discriminatory-exclusion - hate-threat - criminal-demonstration - criminal-preparation - criminal-request - criminal-instructions - criminal-promotion - historical - documentary - fictional - support-prevention additionalProperties: oneOf: - type: object properties: status: type: string const: evaluated score: type: number minimum: 0 maximum: 1 scopeScore: type: number minimum: 0 maximum: 1 likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely required: - status - score - likelihood additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable required: - status - reason additionalProperties: false required: - status - reason additionalProperties: false violence: oneOf: - type: object properties: status: type: string const: evaluated likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely score: type: number minimum: 0 maximum: 1 qualifiers: type: object propertyNames: type: string enum: - nudity - sexual-activity - explicit-sexual-language - sexual-solicitation - physical-attack - violent-threat - violent-preparation - violent-encouragement - injury - death - graphic - self-harm-thoughts - self-harm-preparation - self-harm-act - self-harm-methods - self-harm-encouragement - personal-abuse - targeted-intimidation - harassment-threat - sexual-harassment - harassment-encouragement - identity-abuse - dehumanization - identity-inferiority - discriminatory-exclusion - hate-threat - criminal-demonstration - criminal-preparation - criminal-request - criminal-instructions - criminal-promotion - historical - documentary - fictional - support-prevention additionalProperties: oneOf: - type: object properties: status: type: string const: evaluated score: type: number minimum: 0 maximum: 1 scopeScore: type: number minimum: 0 maximum: 1 likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely required: - status - score - likelihood additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable required: - status - reason additionalProperties: false required: - status - likelihood - score additionalProperties: false - type: object properties: status: type: string const: partial likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely score: type: number minimum: 0 maximum: 1 qualifiers: type: object propertyNames: type: string enum: - nudity - sexual-activity - explicit-sexual-language - sexual-solicitation - physical-attack - violent-threat - violent-preparation - violent-encouragement - injury - death - graphic - self-harm-thoughts - self-harm-preparation - self-harm-act - self-harm-methods - self-harm-encouragement - personal-abuse - targeted-intimidation - harassment-threat - sexual-harassment - harassment-encouragement - identity-abuse - dehumanization - identity-inferiority - discriminatory-exclusion - hate-threat - criminal-demonstration - criminal-preparation - criminal-request - criminal-instructions - criminal-promotion - historical - documentary - fictional - support-prevention additionalProperties: oneOf: - type: object properties: status: type: string const: evaluated score: type: number minimum: 0 maximum: 1 scopeScore: type: number minimum: 0 maximum: 1 likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely required: - status - score - likelihood additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable required: - status - reason additionalProperties: false required: - status - likelihood - score additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable qualifiers: type: object propertyNames: type: string enum: - nudity - sexual-activity - explicit-sexual-language - sexual-solicitation - physical-attack - violent-threat - violent-preparation - violent-encouragement - injury - death - graphic - self-harm-thoughts - self-harm-preparation - self-harm-act - self-harm-methods - self-harm-encouragement - personal-abuse - targeted-intimidation - harassment-threat - sexual-harassment - harassment-encouragement - identity-abuse - dehumanization - identity-inferiority - discriminatory-exclusion - hate-threat - criminal-demonstration - criminal-preparation - criminal-request - criminal-instructions - criminal-promotion - historical - documentary - fictional - support-prevention additionalProperties: oneOf: - type: object properties: status: type: string const: evaluated score: type: number minimum: 0 maximum: 1 scopeScore: type: number minimum: 0 maximum: 1 likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely required: - status - score - likelihood additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable required: - status - reason additionalProperties: false required: - status - reason additionalProperties: false self-harm: oneOf: - type: object properties: status: type: string const: evaluated likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely score: type: number minimum: 0 maximum: 1 qualifiers: type: object propertyNames: type: string enum: - nudity - sexual-activity - explicit-sexual-language - sexual-solicitation - physical-attack - violent-threat - violent-preparation - violent-encouragement - injury - death - graphic - self-harm-thoughts - self-harm-preparation - self-harm-act - self-harm-methods - self-harm-encouragement - personal-abuse - targeted-intimidation - harassment-threat - sexual-harassment - harassment-encouragement - identity-abuse - dehumanization - identity-inferiority - discriminatory-exclusion - hate-threat - criminal-demonstration - criminal-preparation - criminal-request - criminal-instructions - criminal-promotion - historical - documentary - fictional - support-prevention additionalProperties: oneOf: - type: object properties: status: type: string const: evaluated score: type: number minimum: 0 maximum: 1 scopeScore: type: number minimum: 0 maximum: 1 likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely required: - status - score - likelihood additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable required: - status - reason additionalProperties: false required: - status - likelihood - score additionalProperties: false - type: object properties: status: type: string const: partial likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely score: type: number minimum: 0 maximum: 1 qualifiers: type: object propertyNames: type: string enum: - nudity - sexual-activity - explicit-sexual-language - sexual-solicitation - physical-attack - violent-threat - violent-preparation - violent-encouragement - injury - death - graphic - self-harm-thoughts - self-harm-preparation - self-harm-act - self-harm-methods - self-harm-encouragement - personal-abuse - targeted-intimidation - harassment-threat - sexual-harassment - harassment-encouragement - identity-abuse - dehumanization - identity-inferiority - discriminatory-exclusion - hate-threat - criminal-demonstration - criminal-preparation - criminal-request - criminal-instructions - criminal-promotion - historical - documentary - fictional - support-prevention additionalProperties: oneOf: - type: object properties: status: type: string const: evaluated score: type: number minimum: 0 maximum: 1 scopeScore: type: number minimum: 0 maximum: 1 likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely required: - status - score - likelihood additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable required: - status - reason additionalProperties: false required: - status - likelihood - score additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable qualifiers: type: object propertyNames: type: string enum: - nudity - sexual-activity - explicit-sexual-language - sexual-solicitation - physical-attack - violent-threat - violent-preparation - violent-encouragement - injury - death - graphic - self-harm-thoughts - self-harm-preparation - self-harm-act - self-harm-methods - self-harm-encouragement - personal-abuse - targeted-intimidation - harassment-threat - sexual-harassment - harassment-encouragement - identity-abuse - dehumanization - identity-inferiority - discriminatory-exclusion - hate-threat - criminal-demonstration - criminal-preparation - criminal-request - criminal-instructions - criminal-promotion - historical - documentary - fictional - support-prevention additionalProperties: oneOf: - type: object properties: status: type: string const: evaluated score: type: number minimum: 0 maximum: 1 scopeScore: type: number minimum: 0 maximum: 1 likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely required: - status - score - likelihood additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable required: - status - reason additionalProperties: false required: - status - reason additionalProperties: false harassment: oneOf: - type: object properties: status: type: string const: evaluated likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely score: type: number minimum: 0 maximum: 1 qualifiers: type: object propertyNames: type: string enum: - nudity - sexual-activity - explicit-sexual-language - sexual-solicitation - physical-attack - violent-threat - violent-preparation - violent-encouragement - injury - death - graphic - self-harm-thoughts - self-harm-preparation - self-harm-act - self-harm-methods - self-harm-encouragement - personal-abuse - targeted-intimidation - harassment-threat - sexual-harassment - harassment-encouragement - identity-abuse - dehumanization - identity-inferiority - discriminatory-exclusion - hate-threat - criminal-demonstration - criminal-preparation - criminal-request - criminal-instructions - criminal-promotion - historical - documentary - fictional - support-prevention additionalProperties: oneOf: - type: object properties: status: type: string const: evaluated score: type: number minimum: 0 maximum: 1 scopeScore: type: number minimum: 0 maximum: 1 likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely required: - status - score - likelihood additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable required: - status - reason additionalProperties: false required: - status - likelihood - score additionalProperties: false - type: object properties: status: type: string const: partial likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely score: type: number minimum: 0 maximum: 1 qualifiers: type: object propertyNames: type: string enum: - nudity - sexual-activity - explicit-sexual-language - sexual-solicitation - physical-attack - violent-threat - violent-preparation - violent-encouragement - injury - death - graphic - self-harm-thoughts - self-harm-preparation - self-harm-act - self-harm-methods - self-harm-encouragement - personal-abuse - targeted-intimidation - harassment-threat - sexual-harassment - harassment-encouragement - identity-abuse - dehumanization - identity-inferiority - discriminatory-exclusion - hate-threat - criminal-demonstration - criminal-preparation - criminal-request - criminal-instructions - criminal-promotion - historical - documentary - fictional - support-prevention additionalProperties: oneOf: - type: object properties: status: type: string const: evaluated score: type: number minimum: 0 maximum: 1 scopeScore: type: number minimum: 0 maximum: 1 likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely required: - status - score - likelihood additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable required: - status - reason additionalProperties: false required: - status - likelihood - score additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable qualifiers: type: object propertyNames: type: string enum: - nudity - sexual-activity - explicit-sexual-language - sexual-solicitation - physical-attack - violent-threat - violent-preparation - violent-encouragement - injury - death - graphic - self-harm-thoughts - self-harm-preparation - self-harm-act - self-harm-methods - self-harm-encouragement - personal-abuse - targeted-intimidation - harassment-threat - sexual-harassment - harassment-encouragement - identity-abuse - dehumanization - identity-inferiority - discriminatory-exclusion - hate-threat - criminal-demonstration - criminal-preparation - criminal-request - criminal-instructions - criminal-promotion - historical - documentary - fictional - support-prevention additionalProperties: oneOf: - type: object properties: status: type: string const: evaluated score: type: number minimum: 0 maximum: 1 scopeScore: type: number minimum: 0 maximum: 1 likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely required: - status - score - likelihood additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable required: - status - reason additionalProperties: false required: - status - reason additionalProperties: false hate: oneOf: - type: object properties: status: type: string const: evaluated likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely score: type: number minimum: 0 maximum: 1 qualifiers: type: object propertyNames: type: string enum: - nudity - sexual-activity - explicit-sexual-language - sexual-solicitation - physical-attack - violent-threat - violent-preparation - violent-encouragement - injury - death - graphic - self-harm-thoughts - self-harm-preparation - self-harm-act - self-harm-methods - self-harm-encouragement - personal-abuse - targeted-intimidation - harassment-threat - sexual-harassment - harassment-encouragement - identity-abuse - dehumanization - identity-inferiority - discriminatory-exclusion - hate-threat - criminal-demonstration - criminal-preparation - criminal-request - criminal-instructions - criminal-promotion - historical - documentary - fictional - support-prevention additionalProperties: oneOf: - type: object properties: status: type: string const: evaluated score: type: number minimum: 0 maximum: 1 scopeScore: type: number minimum: 0 maximum: 1 likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely required: - status - score - likelihood additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable required: - status - reason additionalProperties: false required: - status - likelihood - score additionalProperties: false - type: object properties: status: type: string const: partial likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely score: type: number minimum: 0 maximum: 1 qualifiers: type: object propertyNames: type: string enum: - nudity - sexual-activity - explicit-sexual-language - sexual-solicitation - physical-attack - violent-threat - violent-preparation - violent-encouragement - injury - death - graphic - self-harm-thoughts - self-harm-preparation - self-harm-act - self-harm-methods - self-harm-encouragement - personal-abuse - targeted-intimidation - harassment-threat - sexual-harassment - harassment-encouragement - identity-abuse - dehumanization - identity-inferiority - discriminatory-exclusion - hate-threat - criminal-demonstration - criminal-preparation - criminal-request - criminal-instructions - criminal-promotion - historical - documentary - fictional - support-prevention additionalProperties: oneOf: - type: object properties: status: type: string const: evaluated score: type: number minimum: 0 maximum: 1 scopeScore: type: number minimum: 0 maximum: 1 likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely required: - status - score - likelihood additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable required: - status - reason additionalProperties: false required: - status - likelihood - score additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable qualifiers: type: object propertyNames: type: string enum: - nudity - sexual-activity - explicit-sexual-language - sexual-solicitation - physical-attack - violent-threat - violent-preparation - violent-encouragement - injury - death - graphic - self-harm-thoughts - self-harm-preparation - self-harm-act - self-harm-methods - self-harm-encouragement - personal-abuse - targeted-intimidation - harassment-threat - sexual-harassment - harassment-encouragement - identity-abuse - dehumanization - identity-inferiority - discriminatory-exclusion - hate-threat - criminal-demonstration - criminal-preparation - criminal-request - criminal-instructions - criminal-promotion - historical - documentary - fictional - support-prevention additionalProperties: oneOf: - type: object properties: status: type: string const: evaluated score: type: number minimum: 0 maximum: 1 scopeScore: type: number minimum: 0 maximum: 1 likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely required: - status - score - likelihood additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable required: - status - reason additionalProperties: false required: - status - reason additionalProperties: false criminal-activity: oneOf: - type: object properties: status: type: string const: evaluated likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely score: type: number minimum: 0 maximum: 1 qualifiers: type: object propertyNames: type: string enum: - nudity - sexual-activity - explicit-sexual-language - sexual-solicitation - physical-attack - violent-threat - violent-preparation - violent-encouragement - injury - death - graphic - self-harm-thoughts - self-harm-preparation - self-harm-act - self-harm-methods - self-harm-encouragement - personal-abuse - targeted-intimidation - harassment-threat - sexual-harassment - harassment-encouragement - identity-abuse - dehumanization - identity-inferiority - discriminatory-exclusion - hate-threat - criminal-demonstration - criminal-preparation - criminal-request - criminal-instructions - criminal-promotion - historical - documentary - fictional - support-prevention additionalProperties: oneOf: - type: object properties: status: type: string const: evaluated score: type: number minimum: 0 maximum: 1 scopeScore: type: number minimum: 0 maximum: 1 likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely required: - status - score - likelihood additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable required: - status - reason additionalProperties: false required: - status - likelihood - score additionalProperties: false - type: object properties: status: type: string const: partial likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely score: type: number minimum: 0 maximum: 1 qualifiers: type: object propertyNames: type: string enum: - nudity - sexual-activity - explicit-sexual-language - sexual-solicitation - physical-attack - violent-threat - violent-preparation - violent-encouragement - injury - death - graphic - self-harm-thoughts - self-harm-preparation - self-harm-act - self-harm-methods - self-harm-encouragement - personal-abuse - targeted-intimidation - harassment-threat - sexual-harassment - harassment-encouragement - identity-abuse - dehumanization - identity-inferiority - discriminatory-exclusion - hate-threat - criminal-demonstration - criminal-preparation - criminal-request - criminal-instructions - criminal-promotion - historical - documentary - fictional - support-prevention additionalProperties: oneOf: - type: object properties: status: type: string const: evaluated score: type: number minimum: 0 maximum: 1 scopeScore: type: number minimum: 0 maximum: 1 likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely required: - status - score - likelihood additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable required: - status - reason additionalProperties: false required: - status - likelihood - score additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable qualifiers: type: object propertyNames: type: string enum: - nudity - sexual-activity - explicit-sexual-language - sexual-solicitation - physical-attack - violent-threat - violent-preparation - violent-encouragement - injury - death - graphic - self-harm-thoughts - self-harm-preparation - self-harm-act - self-harm-methods - self-harm-encouragement - personal-abuse - targeted-intimidation - harassment-threat - sexual-harassment - harassment-encouragement - identity-abuse - dehumanization - identity-inferiority - discriminatory-exclusion - hate-threat - criminal-demonstration - criminal-preparation - criminal-request - criminal-instructions - criminal-promotion - historical - documentary - fictional - support-prevention additionalProperties: oneOf: - type: object properties: status: type: string const: evaluated score: type: number minimum: 0 maximum: 1 scopeScore: type: number minimum: 0 maximum: 1 likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely required: - status - score - likelihood additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable required: - status - reason additionalProperties: false required: - status - reason additionalProperties: false required: - sexual - violence - self-harm - harassment - hate - criminal-activity additionalProperties: false flagged: type: boolean score: type: number notes: anyOf: - {} - type: "null" media: type: object properties: durationSeconds: type: number exclusiveMinimum: 0 frameIntervalSeconds: type: number exclusiveMinimum: 0 sampledFrames: type: integer minimum: 0 maximum: 9007199254740991 audioTranscribed: type: boolean segments: type: array items: type: object properties: source: type: string enum: - frame - speech - frame-text - clip startSeconds: type: number minimum: 0 endSeconds: type: number minimum: 0 categories: type: object properties: sexual: oneOf: - type: object properties: status: type: string const: evaluated likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely score: type: number minimum: 0 maximum: 1 qualifiers: type: object propertyNames: type: string enum: - nudity - sexual-activity - explicit-sexual-language - sexual-solicitation - physical-attack - violent-threat - violent-preparation - violent-encouragement - injury - death - graphic - self-harm-thoughts - self-harm-preparation - self-harm-act - self-harm-methods - self-harm-encouragement - personal-abuse - targeted-intimidation - harassment-threat - sexual-harassment - harassment-encouragement - identity-abuse - dehumanization - identity-inferiority - discriminatory-exclusion - hate-threat - criminal-demonstration - criminal-preparation - criminal-request - criminal-instructions - criminal-promotion - historical - documentary - fictional - support-prevention additionalProperties: oneOf: - type: object properties: status: type: string const: evaluated score: type: number minimum: 0 maximum: 1 scopeScore: type: number minimum: 0 maximum: 1 likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely required: - status - score - likelihood additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable required: - status - reason additionalProperties: false required: - status - likelihood - score additionalProperties: false - type: object properties: status: type: string const: partial likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely score: type: number minimum: 0 maximum: 1 qualifiers: type: object propertyNames: type: string enum: - nudity - sexual-activity - explicit-sexual-language - sexual-solicitation - physical-attack - violent-threat - violent-preparation - violent-encouragement - injury - death - graphic - self-harm-thoughts - self-harm-preparation - self-harm-act - self-harm-methods - self-harm-encouragement - personal-abuse - targeted-intimidation - harassment-threat - sexual-harassment - harassment-encouragement - identity-abuse - dehumanization - identity-inferiority - discriminatory-exclusion - hate-threat - criminal-demonstration - criminal-preparation - criminal-request - criminal-instructions - criminal-promotion - historical - documentary - fictional - support-prevention additionalProperties: oneOf: - type: object properties: status: type: string const: evaluated score: type: number minimum: 0 maximum: 1 scopeScore: type: number minimum: 0 maximum: 1 likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely required: - status - score - likelihood additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable required: - status - reason additionalProperties: false required: - status - likelihood - score additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable qualifiers: type: object propertyNames: type: string enum: - nudity - sexual-activity - explicit-sexual-language - sexual-solicitation - physical-attack - violent-threat - violent-preparation - violent-encouragement - injury - death - graphic - self-harm-thoughts - self-harm-preparation - self-harm-act - self-harm-methods - self-harm-encouragement - personal-abuse - targeted-intimidation - harassment-threat - sexual-harassment - harassment-encouragement - identity-abuse - dehumanization - identity-inferiority - discriminatory-exclusion - hate-threat - criminal-demonstration - criminal-preparation - criminal-request - criminal-instructions - criminal-promotion - historical - documentary - fictional - support-prevention additionalProperties: oneOf: - type: object properties: status: type: string const: evaluated score: type: number minimum: 0 maximum: 1 scopeScore: type: number minimum: 0 maximum: 1 likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely required: - status - score - likelihood additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable required: - status - reason additionalProperties: false required: - status - reason additionalProperties: false violence: oneOf: - type: object properties: status: type: string const: evaluated likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely score: type: number minimum: 0 maximum: 1 qualifiers: type: object propertyNames: type: string enum: - nudity - sexual-activity - explicit-sexual-language - sexual-solicitation - physical-attack - violent-threat - violent-preparation - violent-encouragement - injury - death - graphic - self-harm-thoughts - self-harm-preparation - self-harm-act - self-harm-methods - self-harm-encouragement - personal-abuse - targeted-intimidation - harassment-threat - sexual-harassment - harassment-encouragement - identity-abuse - dehumanization - identity-inferiority - discriminatory-exclusion - hate-threat - criminal-demonstration - criminal-preparation - criminal-request - criminal-instructions - criminal-promotion - historical - documentary - fictional - support-prevention additionalProperties: oneOf: - type: object properties: status: type: string const: evaluated score: type: number minimum: 0 maximum: 1 scopeScore: type: number minimum: 0 maximum: 1 likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely required: - status - score - likelihood additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable required: - status - reason additionalProperties: false required: - status - likelihood - score additionalProperties: false - type: object properties: status: type: string const: partial likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely score: type: number minimum: 0 maximum: 1 qualifiers: type: object propertyNames: type: string enum: - nudity - sexual-activity - explicit-sexual-language - sexual-solicitation - physical-attack - violent-threat - violent-preparation - violent-encouragement - injury - death - graphic - self-harm-thoughts - self-harm-preparation - self-harm-act - self-harm-methods - self-harm-encouragement - personal-abuse - targeted-intimidation - harassment-threat - sexual-harassment - harassment-encouragement - identity-abuse - dehumanization - identity-inferiority - discriminatory-exclusion - hate-threat - criminal-demonstration - criminal-preparation - criminal-request - criminal-instructions - criminal-promotion - historical - documentary - fictional - support-prevention additionalProperties: oneOf: - type: object properties: status: type: string const: evaluated score: type: number minimum: 0 maximum: 1 scopeScore: type: number minimum: 0 maximum: 1 likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely required: - status - score - likelihood additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable required: - status - reason additionalProperties: false required: - status - likelihood - score additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable qualifiers: type: object propertyNames: type: string enum: - nudity - sexual-activity - explicit-sexual-language - sexual-solicitation - physical-attack - violent-threat - violent-preparation - violent-encouragement - injury - death - graphic - self-harm-thoughts - self-harm-preparation - self-harm-act - self-harm-methods - self-harm-encouragement - personal-abuse - targeted-intimidation - harassment-threat - sexual-harassment - harassment-encouragement - identity-abuse - dehumanization - identity-inferiority - discriminatory-exclusion - hate-threat - criminal-demonstration - criminal-preparation - criminal-request - criminal-instructions - criminal-promotion - historical - documentary - fictional - support-prevention additionalProperties: oneOf: - type: object properties: status: type: string const: evaluated score: type: number minimum: 0 maximum: 1 scopeScore: type: number minimum: 0 maximum: 1 likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely required: - status - score - likelihood additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable required: - status - reason additionalProperties: false required: - status - reason additionalProperties: false self-harm: oneOf: - type: object properties: status: type: string const: evaluated likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely score: type: number minimum: 0 maximum: 1 qualifiers: type: object propertyNames: type: string enum: - nudity - sexual-activity - explicit-sexual-language - sexual-solicitation - physical-attack - violent-threat - violent-preparation - violent-encouragement - injury - death - graphic - self-harm-thoughts - self-harm-preparation - self-harm-act - self-harm-methods - self-harm-encouragement - personal-abuse - targeted-intimidation - harassment-threat - sexual-harassment - harassment-encouragement - identity-abuse - dehumanization - identity-inferiority - discriminatory-exclusion - hate-threat - criminal-demonstration - criminal-preparation - criminal-request - criminal-instructions - criminal-promotion - historical - documentary - fictional - support-prevention additionalProperties: oneOf: - type: object properties: status: type: string const: evaluated score: type: number minimum: 0 maximum: 1 scopeScore: type: number minimum: 0 maximum: 1 likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely required: - status - score - likelihood additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable required: - status - reason additionalProperties: false required: - status - likelihood - score additionalProperties: false - type: object properties: status: type: string const: partial likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely score: type: number minimum: 0 maximum: 1 qualifiers: type: object propertyNames: type: string enum: - nudity - sexual-activity - explicit-sexual-language - sexual-solicitation - physical-attack - violent-threat - violent-preparation - violent-encouragement - injury - death - graphic - self-harm-thoughts - self-harm-preparation - self-harm-act - self-harm-methods - self-harm-encouragement - personal-abuse - targeted-intimidation - harassment-threat - sexual-harassment - harassment-encouragement - identity-abuse - dehumanization - identity-inferiority - discriminatory-exclusion - hate-threat - criminal-demonstration - criminal-preparation - criminal-request - criminal-instructions - criminal-promotion - historical - documentary - fictional - support-prevention additionalProperties: oneOf: - type: object properties: status: type: string const: evaluated score: type: number minimum: 0 maximum: 1 scopeScore: type: number minimum: 0 maximum: 1 likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely required: - status - score - likelihood additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable required: - status - reason additionalProperties: false required: - status - likelihood - score additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable qualifiers: type: object propertyNames: type: string enum: - nudity - sexual-activity - explicit-sexual-language - sexual-solicitation - physical-attack - violent-threat - violent-preparation - violent-encouragement - injury - death - graphic - self-harm-thoughts - self-harm-preparation - self-harm-act - self-harm-methods - self-harm-encouragement - personal-abuse - targeted-intimidation - harassment-threat - sexual-harassment - harassment-encouragement - identity-abuse - dehumanization - identity-inferiority - discriminatory-exclusion - hate-threat - criminal-demonstration - criminal-preparation - criminal-request - criminal-instructions - criminal-promotion - historical - documentary - fictional - support-prevention additionalProperties: oneOf: - type: object properties: status: type: string const: evaluated score: type: number minimum: 0 maximum: 1 scopeScore: type: number minimum: 0 maximum: 1 likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely required: - status - score - likelihood additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable required: - status - reason additionalProperties: false required: - status - reason additionalProperties: false harassment: oneOf: - type: object properties: status: type: string const: evaluated likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely score: type: number minimum: 0 maximum: 1 qualifiers: type: object propertyNames: type: string enum: - nudity - sexual-activity - explicit-sexual-language - sexual-solicitation - physical-attack - violent-threat - violent-preparation - violent-encouragement - injury - death - graphic - self-harm-thoughts - self-harm-preparation - self-harm-act - self-harm-methods - self-harm-encouragement - personal-abuse - targeted-intimidation - harassment-threat - sexual-harassment - harassment-encouragement - identity-abuse - dehumanization - identity-inferiority - discriminatory-exclusion - hate-threat - criminal-demonstration - criminal-preparation - criminal-request - criminal-instructions - criminal-promotion - historical - documentary - fictional - support-prevention additionalProperties: oneOf: - type: object properties: status: type: string const: evaluated score: type: number minimum: 0 maximum: 1 scopeScore: type: number minimum: 0 maximum: 1 likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely required: - status - score - likelihood additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable required: - status - reason additionalProperties: false required: - status - likelihood - score additionalProperties: false - type: object properties: status: type: string const: partial likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely score: type: number minimum: 0 maximum: 1 qualifiers: type: object propertyNames: type: string enum: - nudity - sexual-activity - explicit-sexual-language - sexual-solicitation - physical-attack - violent-threat - violent-preparation - violent-encouragement - injury - death - graphic - self-harm-thoughts - self-harm-preparation - self-harm-act - self-harm-methods - self-harm-encouragement - personal-abuse - targeted-intimidation - harassment-threat - sexual-harassment - harassment-encouragement - identity-abuse - dehumanization - identity-inferiority - discriminatory-exclusion - hate-threat - criminal-demonstration - criminal-preparation - criminal-request - criminal-instructions - criminal-promotion - historical - documentary - fictional - support-prevention additionalProperties: oneOf: - type: object properties: status: type: string const: evaluated score: type: number minimum: 0 maximum: 1 scopeScore: type: number minimum: 0 maximum: 1 likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely required: - status - score - likelihood additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable required: - status - reason additionalProperties: false required: - status - likelihood - score additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable qualifiers: type: object propertyNames: type: string enum: - nudity - sexual-activity - explicit-sexual-language - sexual-solicitation - physical-attack - violent-threat - violent-preparation - violent-encouragement - injury - death - graphic - self-harm-thoughts - self-harm-preparation - self-harm-act - self-harm-methods - self-harm-encouragement - personal-abuse - targeted-intimidation - harassment-threat - sexual-harassment - harassment-encouragement - identity-abuse - dehumanization - identity-inferiority - discriminatory-exclusion - hate-threat - criminal-demonstration - criminal-preparation - criminal-request - criminal-instructions - criminal-promotion - historical - documentary - fictional - support-prevention additionalProperties: oneOf: - type: object properties: status: type: string const: evaluated score: type: number minimum: 0 maximum: 1 scopeScore: type: number minimum: 0 maximum: 1 likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely required: - status - score - likelihood additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable required: - status - reason additionalProperties: false required: - status - reason additionalProperties: false hate: oneOf: - type: object properties: status: type: string const: evaluated likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely score: type: number minimum: 0 maximum: 1 qualifiers: type: object propertyNames: type: string enum: - nudity - sexual-activity - explicit-sexual-language - sexual-solicitation - physical-attack - violent-threat - violent-preparation - violent-encouragement - injury - death - graphic - self-harm-thoughts - self-harm-preparation - self-harm-act - self-harm-methods - self-harm-encouragement - personal-abuse - targeted-intimidation - harassment-threat - sexual-harassment - harassment-encouragement - identity-abuse - dehumanization - identity-inferiority - discriminatory-exclusion - hate-threat - criminal-demonstration - criminal-preparation - criminal-request - criminal-instructions - criminal-promotion - historical - documentary - fictional - support-prevention additionalProperties: oneOf: - type: object properties: status: type: string const: evaluated score: type: number minimum: 0 maximum: 1 scopeScore: type: number minimum: 0 maximum: 1 likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely required: - status - score - likelihood additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable required: - status - reason additionalProperties: false required: - status - likelihood - score additionalProperties: false - type: object properties: status: type: string const: partial likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely score: type: number minimum: 0 maximum: 1 qualifiers: type: object propertyNames: type: string enum: - nudity - sexual-activity - explicit-sexual-language - sexual-solicitation - physical-attack - violent-threat - violent-preparation - violent-encouragement - injury - death - graphic - self-harm-thoughts - self-harm-preparation - self-harm-act - self-harm-methods - self-harm-encouragement - personal-abuse - targeted-intimidation - harassment-threat - sexual-harassment - harassment-encouragement - identity-abuse - dehumanization - identity-inferiority - discriminatory-exclusion - hate-threat - criminal-demonstration - criminal-preparation - criminal-request - criminal-instructions - criminal-promotion - historical - documentary - fictional - support-prevention additionalProperties: oneOf: - type: object properties: status: type: string const: evaluated score: type: number minimum: 0 maximum: 1 scopeScore: type: number minimum: 0 maximum: 1 likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely required: - status - score - likelihood additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable required: - status - reason additionalProperties: false required: - status - likelihood - score additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable qualifiers: type: object propertyNames: type: string enum: - nudity - sexual-activity - explicit-sexual-language - sexual-solicitation - physical-attack - violent-threat - violent-preparation - violent-encouragement - injury - death - graphic - self-harm-thoughts - self-harm-preparation - self-harm-act - self-harm-methods - self-harm-encouragement - personal-abuse - targeted-intimidation - harassment-threat - sexual-harassment - harassment-encouragement - identity-abuse - dehumanization - identity-inferiority - discriminatory-exclusion - hate-threat - criminal-demonstration - criminal-preparation - criminal-request - criminal-instructions - criminal-promotion - historical - documentary - fictional - support-prevention additionalProperties: oneOf: - type: object properties: status: type: string const: evaluated score: type: number minimum: 0 maximum: 1 scopeScore: type: number minimum: 0 maximum: 1 likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely required: - status - score - likelihood additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable required: - status - reason additionalProperties: false required: - status - reason additionalProperties: false criminal-activity: oneOf: - type: object properties: status: type: string const: evaluated likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely score: type: number minimum: 0 maximum: 1 qualifiers: type: object propertyNames: type: string enum: - nudity - sexual-activity - explicit-sexual-language - sexual-solicitation - physical-attack - violent-threat - violent-preparation - violent-encouragement - injury - death - graphic - self-harm-thoughts - self-harm-preparation - self-harm-act - self-harm-methods - self-harm-encouragement - personal-abuse - targeted-intimidation - harassment-threat - sexual-harassment - harassment-encouragement - identity-abuse - dehumanization - identity-inferiority - discriminatory-exclusion - hate-threat - criminal-demonstration - criminal-preparation - criminal-request - criminal-instructions - criminal-promotion - historical - documentary - fictional - support-prevention additionalProperties: oneOf: - type: object properties: status: type: string const: evaluated score: type: number minimum: 0 maximum: 1 scopeScore: type: number minimum: 0 maximum: 1 likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely required: - status - score - likelihood additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable required: - status - reason additionalProperties: false required: - status - likelihood - score additionalProperties: false - type: object properties: status: type: string const: partial likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely score: type: number minimum: 0 maximum: 1 qualifiers: type: object propertyNames: type: string enum: - nudity - sexual-activity - explicit-sexual-language - sexual-solicitation - physical-attack - violent-threat - violent-preparation - violent-encouragement - injury - death - graphic - self-harm-thoughts - self-harm-preparation - self-harm-act - self-harm-methods - self-harm-encouragement - personal-abuse - targeted-intimidation - harassment-threat - sexual-harassment - harassment-encouragement - identity-abuse - dehumanization - identity-inferiority - discriminatory-exclusion - hate-threat - criminal-demonstration - criminal-preparation - criminal-request - criminal-instructions - criminal-promotion - historical - documentary - fictional - support-prevention additionalProperties: oneOf: - type: object properties: status: type: string const: evaluated score: type: number minimum: 0 maximum: 1 scopeScore: type: number minimum: 0 maximum: 1 likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely required: - status - score - likelihood additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable required: - status - reason additionalProperties: false required: - status - likelihood - score additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable qualifiers: type: object propertyNames: type: string enum: - nudity - sexual-activity - explicit-sexual-language - sexual-solicitation - physical-attack - violent-threat - violent-preparation - violent-encouragement - injury - death - graphic - self-harm-thoughts - self-harm-preparation - self-harm-act - self-harm-methods - self-harm-encouragement - personal-abuse - targeted-intimidation - harassment-threat - sexual-harassment - harassment-encouragement - identity-abuse - dehumanization - identity-inferiority - discriminatory-exclusion - hate-threat - criminal-demonstration - criminal-preparation - criminal-request - criminal-instructions - criminal-promotion - historical - documentary - fictional - support-prevention additionalProperties: oneOf: - type: object properties: status: type: string const: evaluated score: type: number minimum: 0 maximum: 1 scopeScore: type: number minimum: 0 maximum: 1 likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely required: - status - score - likelihood additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable required: - status - reason additionalProperties: false required: - status - reason additionalProperties: false required: - sexual - violence - self-harm - harassment - hate - criminal-activity additionalProperties: false required: - source - startSeconds - endSeconds - categories additionalProperties: false required: - durationSeconds - sampledFrames - audioTranscribed - segments additionalProperties: false labels: anyOf: - type: array items: type: object properties: description: {} score: type: number topicalityScore: type: - number - "null" likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely knowledgeBaseId: anyOf: - {} - type: "null" required: - description - score - likelihood additionalProperties: false - type: "null" required: - processedAt - categories - flagged - score additionalProperties: false - type: "null" moderationAction: anyOf: - type: string enum: - ignore - alert - hide - purge - type: "null" description: The moderation action applied when this asset crossed a policy threshold status: type: string enum: - uploading - pending - approved - rejected - error description: Processing and moderation status. See [Asset lifecycle](/docs/guides/asset-lifecycle). safetyHold: anyOf: - type: object properties: placedAt: type: number description: When the hold was placed, in milliseconds since the Unix epoch reason: type: string enum: - suspected-illegal-content description: Why the asset is held disposedAt: description: When the held content was disposed of, in milliseconds since the Unix epoch type: - number - "null" required: - placedAt - reason additionalProperties: false - type: "null" description: Internal delivery restriction for suspected illegal content. Held content cannot be viewed, changed, or deleted through normal asset operations. rejectionNote: anyOf: - {} - type: "null" description: Reason the asset was rejected, generated automatically or supplied by a reviewer extractedText: anyOf: - oneOf: - type: object properties: type: type: string const: string content: type: string required: - type - content additionalProperties: false - type: object properties: type: type: string const: document id: {} required: - type - id additionalProperties: false - type: "null" description: Extracted text stored inline for small content or in R2 for larger content processingOptions: description: Processing options supplied when the asset was uploaded anyOf: - type: object properties: keepContentAfterProcessing: description: Whether to keep the asset content after processing default: false type: - boolean - "null" flaggedContentPolicy: anyOf: - type: object properties: action: type: string enum: - ignore - alert - hide - purge required: - action additionalProperties: false - type: "null" description: Override the project moderation action for this asset. Ignore takes no action, alert keeps delivery enabled, hide blocks delivery while retaining content, and purge deletes content. image: description: Options for image assets anyOf: - type: object properties: ocrEnabled: description: Whether to extract image text into a child asset and run normal text moderation. Applies to images, including those extracted from multimedia documents and websites. default: false type: - boolean - "null" additionalProperties: false - type: "null" additionalProperties: false - type: "null" visibility: anyOf: - type: string enum: - public - private - type: "null" description: Visibility level of the asset default: private storageDeletedAt: description: When the stored content was removed, in milliseconds since the Unix epoch. The asset record and report remain. type: - number - "null" required: - id - projectId - createdAt - name - type - status additionalProperties: false description: An asset in the system score: type: number matchedFields: type: array items: type: string enum: - name - id - externalId - description - tags - type - fileFormat - fileExtension - status - visual - transcript required: - asset - score - matchedFields additionalProperties: false semanticStatus: type: string enum: - disabled - ready - indexing - unavailable required: - query - items - semanticStatus additionalProperties: false $defs: __schema0: anyOf: - type: string - type: number - type: boolean - type: "null" - type: array items: $ref: "#/paths/~1projects~1{projectId}~1assets~1search/get/responses/200/content/application~1json/schema/$defs/__schema0" - type: object propertyNames: type: string additionalProperties: $ref: "#/paths/~1projects~1{projectId}~1assets~1search/get/responses/200/content/application~1json/schema/$defs/__schema0" "401": description: |- auth/missing-token: Authentication required. Send your project API key in the X-Api-Key header. auth/invalid-api-key: The API key is invalid, revoked or expired. Create a key under Developer → API Keys. headers: X-Request-Id: *a1 content: application/json: schema: type: object required: - message - code - traceId properties: message: type: string code: type: string enum: - auth/missing-token - auth/invalid-api-key traceId: type: string examples: auth-missing-token: summary: Authentication required. Send your project API key in the X-Api-Key header. value: message: Authentication required. Send your project API key in the X-Api-Key header. code: auth/missing-token traceId: request-trace-id auth-invalid-api-key: summary: The API key is invalid, revoked or expired. Create a key under Developer → API Keys. value: message: The API key is invalid, revoked or expired. Create a key under Developer → API Keys. code: auth/invalid-api-key traceId: request-trace-id "403": description: "auth/project-mismatch: This API key belongs to a different project. Use a key created for the project that owns this resource." headers: X-Request-Id: *a1 content: application/json: schema: type: object required: - message - code - traceId properties: message: type: string code: type: string enum: - auth/project-mismatch traceId: type: string examples: auth-project-mismatch: summary: This API key belongs to a different project. Use a key created for the project that owns this resource. value: message: This API key belongs to a different project. Use a key created for the project that owns this resource. code: auth/project-mismatch traceId: request-trace-id parameters: - name: projectId in: path required: true schema: type: string format: uuid pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$ - name: query in: query required: true schema: type: string minLength: 1 maxLength: 200 example: a red car at night - name: limit in: query required: false schema: default: 10 type: integer minimum: 1 maximum: 20 example: 10 - name: mode in: query required: false schema: default: hybrid type: string enum: - keyword - semantic - hybrid example: hybrid /assets/{assetId}: get: operationId: get-asset summary: Get Asset description: Get a single asset by ID security: - ApiKeyAuth: [] responses: "200": description: Successful response headers: X-Request-Id: *a1 content: application/json: schema: type: object properties: id: type: string format: uuid pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-4[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$ description: Unique asset ID projectId: type: string format: uuid pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-4[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$ description: ID of the project that owns the asset sizeInBytes: description: Size of the uploaded content in bytes type: - number - "null" userId: description: ID of the user whose account created the asset anyOf: - {} - type: "null" parentId: description: ID of the parent asset for child assets CalmLens extracts during processing, such as images in a document or OCR text. `null` for uploaded assets. anyOf: - type: string format: uuid pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-4[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$ - type: "null" folderId: anyOf: - type: string format: uuid pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-4[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$ - type: "null" description: Folder containing the asset createdAt: type: integer minimum: -9007199254740991 maximum: 9007199254740991 description: When the asset was created, in milliseconds since the Unix epoch updatedAt: description: When the asset was last updated, in milliseconds since the Unix epoch type: integer minimum: -9007199254740991 maximum: 9007199254740991 checksums: description: Digests of the uploaded content anyOf: - type: object properties: md5: description: MD5 digest of the uploaded content type: - string - "null" sha1: description: SHA-1 digest of the uploaded content type: - string - "null" sha256: description: SHA-256 digest of the uploaded content type: - string - "null" sha384: description: SHA-384 digest of the uploaded content type: - string - "null" sha512: description: SHA-512 digest of the uploaded content type: - string - "null" additionalProperties: false - type: "null" imageData: description: Image properties, for image assets anyOf: - type: object properties: perceptualHash: description: Perceptual hash used to match visually similar images type: - string - "null" width: description: Image width in pixels anyOf: - type: integer exclusiveMinimum: 0 maximum: 9007199254740991 - type: "null" height: description: Image height in pixels anyOf: - type: integer exclusiveMinimum: 0 maximum: 9007199254740991 - type: "null" additionalProperties: false - type: "null" documentData: description: Document properties, for documents anyOf: - type: object properties: {} additionalProperties: false - type: "null" name: description: Name of the asset fileFormat: description: MIME type of the stored content anyOf: - {} - type: "null" fileExtension: description: File extension of the stored content anyOf: - {} - type: "null" description: anyOf: - {} - type: "null" description: Optional description of the asset externalId: anyOf: - {} - type: "null" description: External identifier for the asset externalUrl: anyOf: - type: string format: uri - type: "null" description: External URL associated with the asset previewImage: description: Browser-friendly preview generated for images, documents and websites anyOf: - type: object properties: id: anyOf: - {} - type: "null" description: Identifier of the stored preview image fileFormat: anyOf: - {} - type: "null" description: File format of the preview, such as `webp` thumbhash: anyOf: - {} - type: "null" description: ThumbHash placeholder you can render while the preview loads averageColor: anyOf: - {} - type: "null" description: Average color of the preview width: anyOf: - type: integer exclusiveMinimum: 0 maximum: 9007199254740991 - type: "null" description: Preview width in pixels height: anyOf: - type: integer exclusiveMinimum: 0 maximum: 9007199254740991 - type: "null" description: Preview height in pixels required: - id - fileFormat - thumbhash - averageColor - width - height additionalProperties: false - type: "null" storageId: description: Internal storage key of the retained content; `null` when nothing is stored anyOf: - {} - type: "null" uploadPartsReceived: description: Number of parts received so far for a multipart upload anyOf: - type: integer minimum: -9007199254740991 maximum: 9007199254740991 - type: "null" type: type: string enum: - image - video - audio - plaintext-document - multimedia-document - website - file description: Asset type, detected from the content's MIME type metadata: anyOf: - type: array items: type: object properties: id: description: Identifier for the metadata item value: $ref: "#/paths/~1assets~1{assetId}/get/responses/200/content/application~1json/schema/$defs/__schema0" description: Value of the metadata item required: - id - value additionalProperties: false description: A metadata item with an ID and value - type: "null" description: List of custom metadata items for the asset tags: anyOf: - type: array items: {} - type: "null" description: Array of tags for the asset report: description: Moderation report, set once classification finishes. See [Report format](/docs/guides/moderation-reports). anyOf: - type: object properties: processedAt: type: number categories: type: object properties: sexual: oneOf: - type: object properties: status: type: string const: evaluated likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely score: type: number minimum: 0 maximum: 1 qualifiers: type: object propertyNames: type: string enum: - nudity - sexual-activity - explicit-sexual-language - sexual-solicitation - physical-attack - violent-threat - violent-preparation - violent-encouragement - injury - death - graphic - self-harm-thoughts - self-harm-preparation - self-harm-act - self-harm-methods - self-harm-encouragement - personal-abuse - targeted-intimidation - harassment-threat - sexual-harassment - harassment-encouragement - identity-abuse - dehumanization - identity-inferiority - discriminatory-exclusion - hate-threat - criminal-demonstration - criminal-preparation - criminal-request - criminal-instructions - criminal-promotion - historical - documentary - fictional - support-prevention additionalProperties: oneOf: - type: object properties: status: type: string const: evaluated score: type: number minimum: 0 maximum: 1 scopeScore: type: number minimum: 0 maximum: 1 likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely required: - status - score - likelihood additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable required: - status - reason additionalProperties: false required: - status - likelihood - score additionalProperties: false - type: object properties: status: type: string const: partial likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely score: type: number minimum: 0 maximum: 1 qualifiers: type: object propertyNames: type: string enum: - nudity - sexual-activity - explicit-sexual-language - sexual-solicitation - physical-attack - violent-threat - violent-preparation - violent-encouragement - injury - death - graphic - self-harm-thoughts - self-harm-preparation - self-harm-act - self-harm-methods - self-harm-encouragement - personal-abuse - targeted-intimidation - harassment-threat - sexual-harassment - harassment-encouragement - identity-abuse - dehumanization - identity-inferiority - discriminatory-exclusion - hate-threat - criminal-demonstration - criminal-preparation - criminal-request - criminal-instructions - criminal-promotion - historical - documentary - fictional - support-prevention additionalProperties: oneOf: - type: object properties: status: type: string const: evaluated score: type: number minimum: 0 maximum: 1 scopeScore: type: number minimum: 0 maximum: 1 likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely required: - status - score - likelihood additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable required: - status - reason additionalProperties: false required: - status - likelihood - score additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable qualifiers: type: object propertyNames: type: string enum: - nudity - sexual-activity - explicit-sexual-language - sexual-solicitation - physical-attack - violent-threat - violent-preparation - violent-encouragement - injury - death - graphic - self-harm-thoughts - self-harm-preparation - self-harm-act - self-harm-methods - self-harm-encouragement - personal-abuse - targeted-intimidation - harassment-threat - sexual-harassment - harassment-encouragement - identity-abuse - dehumanization - identity-inferiority - discriminatory-exclusion - hate-threat - criminal-demonstration - criminal-preparation - criminal-request - criminal-instructions - criminal-promotion - historical - documentary - fictional - support-prevention additionalProperties: oneOf: - type: object properties: status: type: string const: evaluated score: type: number minimum: 0 maximum: 1 scopeScore: type: number minimum: 0 maximum: 1 likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely required: - status - score - likelihood additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable required: - status - reason additionalProperties: false required: - status - reason additionalProperties: false violence: oneOf: - type: object properties: status: type: string const: evaluated likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely score: type: number minimum: 0 maximum: 1 qualifiers: type: object propertyNames: type: string enum: - nudity - sexual-activity - explicit-sexual-language - sexual-solicitation - physical-attack - violent-threat - violent-preparation - violent-encouragement - injury - death - graphic - self-harm-thoughts - self-harm-preparation - self-harm-act - self-harm-methods - self-harm-encouragement - personal-abuse - targeted-intimidation - harassment-threat - sexual-harassment - harassment-encouragement - identity-abuse - dehumanization - identity-inferiority - discriminatory-exclusion - hate-threat - criminal-demonstration - criminal-preparation - criminal-request - criminal-instructions - criminal-promotion - historical - documentary - fictional - support-prevention additionalProperties: oneOf: - type: object properties: status: type: string const: evaluated score: type: number minimum: 0 maximum: 1 scopeScore: type: number minimum: 0 maximum: 1 likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely required: - status - score - likelihood additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable required: - status - reason additionalProperties: false required: - status - likelihood - score additionalProperties: false - type: object properties: status: type: string const: partial likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely score: type: number minimum: 0 maximum: 1 qualifiers: type: object propertyNames: type: string enum: - nudity - sexual-activity - explicit-sexual-language - sexual-solicitation - physical-attack - violent-threat - violent-preparation - violent-encouragement - injury - death - graphic - self-harm-thoughts - self-harm-preparation - self-harm-act - self-harm-methods - self-harm-encouragement - personal-abuse - targeted-intimidation - harassment-threat - sexual-harassment - harassment-encouragement - identity-abuse - dehumanization - identity-inferiority - discriminatory-exclusion - hate-threat - criminal-demonstration - criminal-preparation - criminal-request - criminal-instructions - criminal-promotion - historical - documentary - fictional - support-prevention additionalProperties: oneOf: - type: object properties: status: type: string const: evaluated score: type: number minimum: 0 maximum: 1 scopeScore: type: number minimum: 0 maximum: 1 likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely required: - status - score - likelihood additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable required: - status - reason additionalProperties: false required: - status - likelihood - score additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable qualifiers: type: object propertyNames: type: string enum: - nudity - sexual-activity - explicit-sexual-language - sexual-solicitation - physical-attack - violent-threat - violent-preparation - violent-encouragement - injury - death - graphic - self-harm-thoughts - self-harm-preparation - self-harm-act - self-harm-methods - self-harm-encouragement - personal-abuse - targeted-intimidation - harassment-threat - sexual-harassment - harassment-encouragement - identity-abuse - dehumanization - identity-inferiority - discriminatory-exclusion - hate-threat - criminal-demonstration - criminal-preparation - criminal-request - criminal-instructions - criminal-promotion - historical - documentary - fictional - support-prevention additionalProperties: oneOf: - type: object properties: status: type: string const: evaluated score: type: number minimum: 0 maximum: 1 scopeScore: type: number minimum: 0 maximum: 1 likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely required: - status - score - likelihood additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable required: - status - reason additionalProperties: false required: - status - reason additionalProperties: false self-harm: oneOf: - type: object properties: status: type: string const: evaluated likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely score: type: number minimum: 0 maximum: 1 qualifiers: type: object propertyNames: type: string enum: - nudity - sexual-activity - explicit-sexual-language - sexual-solicitation - physical-attack - violent-threat - violent-preparation - violent-encouragement - injury - death - graphic - self-harm-thoughts - self-harm-preparation - self-harm-act - self-harm-methods - self-harm-encouragement - personal-abuse - targeted-intimidation - harassment-threat - sexual-harassment - harassment-encouragement - identity-abuse - dehumanization - identity-inferiority - discriminatory-exclusion - hate-threat - criminal-demonstration - criminal-preparation - criminal-request - criminal-instructions - criminal-promotion - historical - documentary - fictional - support-prevention additionalProperties: oneOf: - type: object properties: status: type: string const: evaluated score: type: number minimum: 0 maximum: 1 scopeScore: type: number minimum: 0 maximum: 1 likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely required: - status - score - likelihood additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable required: - status - reason additionalProperties: false required: - status - likelihood - score additionalProperties: false - type: object properties: status: type: string const: partial likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely score: type: number minimum: 0 maximum: 1 qualifiers: type: object propertyNames: type: string enum: - nudity - sexual-activity - explicit-sexual-language - sexual-solicitation - physical-attack - violent-threat - violent-preparation - violent-encouragement - injury - death - graphic - self-harm-thoughts - self-harm-preparation - self-harm-act - self-harm-methods - self-harm-encouragement - personal-abuse - targeted-intimidation - harassment-threat - sexual-harassment - harassment-encouragement - identity-abuse - dehumanization - identity-inferiority - discriminatory-exclusion - hate-threat - criminal-demonstration - criminal-preparation - criminal-request - criminal-instructions - criminal-promotion - historical - documentary - fictional - support-prevention additionalProperties: oneOf: - type: object properties: status: type: string const: evaluated score: type: number minimum: 0 maximum: 1 scopeScore: type: number minimum: 0 maximum: 1 likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely required: - status - score - likelihood additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable required: - status - reason additionalProperties: false required: - status - likelihood - score additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable qualifiers: type: object propertyNames: type: string enum: - nudity - sexual-activity - explicit-sexual-language - sexual-solicitation - physical-attack - violent-threat - violent-preparation - violent-encouragement - injury - death - graphic - self-harm-thoughts - self-harm-preparation - self-harm-act - self-harm-methods - self-harm-encouragement - personal-abuse - targeted-intimidation - harassment-threat - sexual-harassment - harassment-encouragement - identity-abuse - dehumanization - identity-inferiority - discriminatory-exclusion - hate-threat - criminal-demonstration - criminal-preparation - criminal-request - criminal-instructions - criminal-promotion - historical - documentary - fictional - support-prevention additionalProperties: oneOf: - type: object properties: status: type: string const: evaluated score: type: number minimum: 0 maximum: 1 scopeScore: type: number minimum: 0 maximum: 1 likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely required: - status - score - likelihood additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable required: - status - reason additionalProperties: false required: - status - reason additionalProperties: false harassment: oneOf: - type: object properties: status: type: string const: evaluated likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely score: type: number minimum: 0 maximum: 1 qualifiers: type: object propertyNames: type: string enum: - nudity - sexual-activity - explicit-sexual-language - sexual-solicitation - physical-attack - violent-threat - violent-preparation - violent-encouragement - injury - death - graphic - self-harm-thoughts - self-harm-preparation - self-harm-act - self-harm-methods - self-harm-encouragement - personal-abuse - targeted-intimidation - harassment-threat - sexual-harassment - harassment-encouragement - identity-abuse - dehumanization - identity-inferiority - discriminatory-exclusion - hate-threat - criminal-demonstration - criminal-preparation - criminal-request - criminal-instructions - criminal-promotion - historical - documentary - fictional - support-prevention additionalProperties: oneOf: - type: object properties: status: type: string const: evaluated score: type: number minimum: 0 maximum: 1 scopeScore: type: number minimum: 0 maximum: 1 likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely required: - status - score - likelihood additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable required: - status - reason additionalProperties: false required: - status - likelihood - score additionalProperties: false - type: object properties: status: type: string const: partial likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely score: type: number minimum: 0 maximum: 1 qualifiers: type: object propertyNames: type: string enum: - nudity - sexual-activity - explicit-sexual-language - sexual-solicitation - physical-attack - violent-threat - violent-preparation - violent-encouragement - injury - death - graphic - self-harm-thoughts - self-harm-preparation - self-harm-act - self-harm-methods - self-harm-encouragement - personal-abuse - targeted-intimidation - harassment-threat - sexual-harassment - harassment-encouragement - identity-abuse - dehumanization - identity-inferiority - discriminatory-exclusion - hate-threat - criminal-demonstration - criminal-preparation - criminal-request - criminal-instructions - criminal-promotion - historical - documentary - fictional - support-prevention additionalProperties: oneOf: - type: object properties: status: type: string const: evaluated score: type: number minimum: 0 maximum: 1 scopeScore: type: number minimum: 0 maximum: 1 likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely required: - status - score - likelihood additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable required: - status - reason additionalProperties: false required: - status - likelihood - score additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable qualifiers: type: object propertyNames: type: string enum: - nudity - sexual-activity - explicit-sexual-language - sexual-solicitation - physical-attack - violent-threat - violent-preparation - violent-encouragement - injury - death - graphic - self-harm-thoughts - self-harm-preparation - self-harm-act - self-harm-methods - self-harm-encouragement - personal-abuse - targeted-intimidation - harassment-threat - sexual-harassment - harassment-encouragement - identity-abuse - dehumanization - identity-inferiority - discriminatory-exclusion - hate-threat - criminal-demonstration - criminal-preparation - criminal-request - criminal-instructions - criminal-promotion - historical - documentary - fictional - support-prevention additionalProperties: oneOf: - type: object properties: status: type: string const: evaluated score: type: number minimum: 0 maximum: 1 scopeScore: type: number minimum: 0 maximum: 1 likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely required: - status - score - likelihood additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable required: - status - reason additionalProperties: false required: - status - reason additionalProperties: false hate: oneOf: - type: object properties: status: type: string const: evaluated likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely score: type: number minimum: 0 maximum: 1 qualifiers: type: object propertyNames: type: string enum: - nudity - sexual-activity - explicit-sexual-language - sexual-solicitation - physical-attack - violent-threat - violent-preparation - violent-encouragement - injury - death - graphic - self-harm-thoughts - self-harm-preparation - self-harm-act - self-harm-methods - self-harm-encouragement - personal-abuse - targeted-intimidation - harassment-threat - sexual-harassment - harassment-encouragement - identity-abuse - dehumanization - identity-inferiority - discriminatory-exclusion - hate-threat - criminal-demonstration - criminal-preparation - criminal-request - criminal-instructions - criminal-promotion - historical - documentary - fictional - support-prevention additionalProperties: oneOf: - type: object properties: status: type: string const: evaluated score: type: number minimum: 0 maximum: 1 scopeScore: type: number minimum: 0 maximum: 1 likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely required: - status - score - likelihood additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable required: - status - reason additionalProperties: false required: - status - likelihood - score additionalProperties: false - type: object properties: status: type: string const: partial likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely score: type: number minimum: 0 maximum: 1 qualifiers: type: object propertyNames: type: string enum: - nudity - sexual-activity - explicit-sexual-language - sexual-solicitation - physical-attack - violent-threat - violent-preparation - violent-encouragement - injury - death - graphic - self-harm-thoughts - self-harm-preparation - self-harm-act - self-harm-methods - self-harm-encouragement - personal-abuse - targeted-intimidation - harassment-threat - sexual-harassment - harassment-encouragement - identity-abuse - dehumanization - identity-inferiority - discriminatory-exclusion - hate-threat - criminal-demonstration - criminal-preparation - criminal-request - criminal-instructions - criminal-promotion - historical - documentary - fictional - support-prevention additionalProperties: oneOf: - type: object properties: status: type: string const: evaluated score: type: number minimum: 0 maximum: 1 scopeScore: type: number minimum: 0 maximum: 1 likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely required: - status - score - likelihood additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable required: - status - reason additionalProperties: false required: - status - likelihood - score additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable qualifiers: type: object propertyNames: type: string enum: - nudity - sexual-activity - explicit-sexual-language - sexual-solicitation - physical-attack - violent-threat - violent-preparation - violent-encouragement - injury - death - graphic - self-harm-thoughts - self-harm-preparation - self-harm-act - self-harm-methods - self-harm-encouragement - personal-abuse - targeted-intimidation - harassment-threat - sexual-harassment - harassment-encouragement - identity-abuse - dehumanization - identity-inferiority - discriminatory-exclusion - hate-threat - criminal-demonstration - criminal-preparation - criminal-request - criminal-instructions - criminal-promotion - historical - documentary - fictional - support-prevention additionalProperties: oneOf: - type: object properties: status: type: string const: evaluated score: type: number minimum: 0 maximum: 1 scopeScore: type: number minimum: 0 maximum: 1 likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely required: - status - score - likelihood additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable required: - status - reason additionalProperties: false required: - status - reason additionalProperties: false criminal-activity: oneOf: - type: object properties: status: type: string const: evaluated likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely score: type: number minimum: 0 maximum: 1 qualifiers: type: object propertyNames: type: string enum: - nudity - sexual-activity - explicit-sexual-language - sexual-solicitation - physical-attack - violent-threat - violent-preparation - violent-encouragement - injury - death - graphic - self-harm-thoughts - self-harm-preparation - self-harm-act - self-harm-methods - self-harm-encouragement - personal-abuse - targeted-intimidation - harassment-threat - sexual-harassment - harassment-encouragement - identity-abuse - dehumanization - identity-inferiority - discriminatory-exclusion - hate-threat - criminal-demonstration - criminal-preparation - criminal-request - criminal-instructions - criminal-promotion - historical - documentary - fictional - support-prevention additionalProperties: oneOf: - type: object properties: status: type: string const: evaluated score: type: number minimum: 0 maximum: 1 scopeScore: type: number minimum: 0 maximum: 1 likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely required: - status - score - likelihood additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable required: - status - reason additionalProperties: false required: - status - likelihood - score additionalProperties: false - type: object properties: status: type: string const: partial likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely score: type: number minimum: 0 maximum: 1 qualifiers: type: object propertyNames: type: string enum: - nudity - sexual-activity - explicit-sexual-language - sexual-solicitation - physical-attack - violent-threat - violent-preparation - violent-encouragement - injury - death - graphic - self-harm-thoughts - self-harm-preparation - self-harm-act - self-harm-methods - self-harm-encouragement - personal-abuse - targeted-intimidation - harassment-threat - sexual-harassment - harassment-encouragement - identity-abuse - dehumanization - identity-inferiority - discriminatory-exclusion - hate-threat - criminal-demonstration - criminal-preparation - criminal-request - criminal-instructions - criminal-promotion - historical - documentary - fictional - support-prevention additionalProperties: oneOf: - type: object properties: status: type: string const: evaluated score: type: number minimum: 0 maximum: 1 scopeScore: type: number minimum: 0 maximum: 1 likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely required: - status - score - likelihood additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable required: - status - reason additionalProperties: false required: - status - likelihood - score additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable qualifiers: type: object propertyNames: type: string enum: - nudity - sexual-activity - explicit-sexual-language - sexual-solicitation - physical-attack - violent-threat - violent-preparation - violent-encouragement - injury - death - graphic - self-harm-thoughts - self-harm-preparation - self-harm-act - self-harm-methods - self-harm-encouragement - personal-abuse - targeted-intimidation - harassment-threat - sexual-harassment - harassment-encouragement - identity-abuse - dehumanization - identity-inferiority - discriminatory-exclusion - hate-threat - criminal-demonstration - criminal-preparation - criminal-request - criminal-instructions - criminal-promotion - historical - documentary - fictional - support-prevention additionalProperties: oneOf: - type: object properties: status: type: string const: evaluated score: type: number minimum: 0 maximum: 1 scopeScore: type: number minimum: 0 maximum: 1 likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely required: - status - score - likelihood additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable required: - status - reason additionalProperties: false required: - status - reason additionalProperties: false required: - sexual - violence - self-harm - harassment - hate - criminal-activity additionalProperties: false flagged: type: boolean score: type: number notes: anyOf: - {} - type: "null" media: type: object properties: durationSeconds: type: number exclusiveMinimum: 0 frameIntervalSeconds: type: number exclusiveMinimum: 0 sampledFrames: type: integer minimum: 0 maximum: 9007199254740991 audioTranscribed: type: boolean segments: type: array items: type: object properties: source: type: string enum: - frame - speech - frame-text - clip startSeconds: type: number minimum: 0 endSeconds: type: number minimum: 0 categories: type: object properties: sexual: oneOf: - type: object properties: status: type: string const: evaluated likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely score: type: number minimum: 0 maximum: 1 qualifiers: type: object propertyNames: type: string enum: - nudity - sexual-activity - explicit-sexual-language - sexual-solicitation - physical-attack - violent-threat - violent-preparation - violent-encouragement - injury - death - graphic - self-harm-thoughts - self-harm-preparation - self-harm-act - self-harm-methods - self-harm-encouragement - personal-abuse - targeted-intimidation - harassment-threat - sexual-harassment - harassment-encouragement - identity-abuse - dehumanization - identity-inferiority - discriminatory-exclusion - hate-threat - criminal-demonstration - criminal-preparation - criminal-request - criminal-instructions - criminal-promotion - historical - documentary - fictional - support-prevention additionalProperties: oneOf: - type: object properties: status: type: string const: evaluated score: type: number minimum: 0 maximum: 1 scopeScore: type: number minimum: 0 maximum: 1 likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely required: - status - score - likelihood additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable required: - status - reason additionalProperties: false required: - status - likelihood - score additionalProperties: false - type: object properties: status: type: string const: partial likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely score: type: number minimum: 0 maximum: 1 qualifiers: type: object propertyNames: type: string enum: - nudity - sexual-activity - explicit-sexual-language - sexual-solicitation - physical-attack - violent-threat - violent-preparation - violent-encouragement - injury - death - graphic - self-harm-thoughts - self-harm-preparation - self-harm-act - self-harm-methods - self-harm-encouragement - personal-abuse - targeted-intimidation - harassment-threat - sexual-harassment - harassment-encouragement - identity-abuse - dehumanization - identity-inferiority - discriminatory-exclusion - hate-threat - criminal-demonstration - criminal-preparation - criminal-request - criminal-instructions - criminal-promotion - historical - documentary - fictional - support-prevention additionalProperties: oneOf: - type: object properties: status: type: string const: evaluated score: type: number minimum: 0 maximum: 1 scopeScore: type: number minimum: 0 maximum: 1 likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely required: - status - score - likelihood additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable required: - status - reason additionalProperties: false required: - status - likelihood - score additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable qualifiers: type: object propertyNames: type: string enum: - nudity - sexual-activity - explicit-sexual-language - sexual-solicitation - physical-attack - violent-threat - violent-preparation - violent-encouragement - injury - death - graphic - self-harm-thoughts - self-harm-preparation - self-harm-act - self-harm-methods - self-harm-encouragement - personal-abuse - targeted-intimidation - harassment-threat - sexual-harassment - harassment-encouragement - identity-abuse - dehumanization - identity-inferiority - discriminatory-exclusion - hate-threat - criminal-demonstration - criminal-preparation - criminal-request - criminal-instructions - criminal-promotion - historical - documentary - fictional - support-prevention additionalProperties: oneOf: - type: object properties: status: type: string const: evaluated score: type: number minimum: 0 maximum: 1 scopeScore: type: number minimum: 0 maximum: 1 likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely required: - status - score - likelihood additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable required: - status - reason additionalProperties: false required: - status - reason additionalProperties: false violence: oneOf: - type: object properties: status: type: string const: evaluated likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely score: type: number minimum: 0 maximum: 1 qualifiers: type: object propertyNames: type: string enum: - nudity - sexual-activity - explicit-sexual-language - sexual-solicitation - physical-attack - violent-threat - violent-preparation - violent-encouragement - injury - death - graphic - self-harm-thoughts - self-harm-preparation - self-harm-act - self-harm-methods - self-harm-encouragement - personal-abuse - targeted-intimidation - harassment-threat - sexual-harassment - harassment-encouragement - identity-abuse - dehumanization - identity-inferiority - discriminatory-exclusion - hate-threat - criminal-demonstration - criminal-preparation - criminal-request - criminal-instructions - criminal-promotion - historical - documentary - fictional - support-prevention additionalProperties: oneOf: - type: object properties: status: type: string const: evaluated score: type: number minimum: 0 maximum: 1 scopeScore: type: number minimum: 0 maximum: 1 likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely required: - status - score - likelihood additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable required: - status - reason additionalProperties: false required: - status - likelihood - score additionalProperties: false - type: object properties: status: type: string const: partial likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely score: type: number minimum: 0 maximum: 1 qualifiers: type: object propertyNames: type: string enum: - nudity - sexual-activity - explicit-sexual-language - sexual-solicitation - physical-attack - violent-threat - violent-preparation - violent-encouragement - injury - death - graphic - self-harm-thoughts - self-harm-preparation - self-harm-act - self-harm-methods - self-harm-encouragement - personal-abuse - targeted-intimidation - harassment-threat - sexual-harassment - harassment-encouragement - identity-abuse - dehumanization - identity-inferiority - discriminatory-exclusion - hate-threat - criminal-demonstration - criminal-preparation - criminal-request - criminal-instructions - criminal-promotion - historical - documentary - fictional - support-prevention additionalProperties: oneOf: - type: object properties: status: type: string const: evaluated score: type: number minimum: 0 maximum: 1 scopeScore: type: number minimum: 0 maximum: 1 likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely required: - status - score - likelihood additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable required: - status - reason additionalProperties: false required: - status - likelihood - score additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable qualifiers: type: object propertyNames: type: string enum: - nudity - sexual-activity - explicit-sexual-language - sexual-solicitation - physical-attack - violent-threat - violent-preparation - violent-encouragement - injury - death - graphic - self-harm-thoughts - self-harm-preparation - self-harm-act - self-harm-methods - self-harm-encouragement - personal-abuse - targeted-intimidation - harassment-threat - sexual-harassment - harassment-encouragement - identity-abuse - dehumanization - identity-inferiority - discriminatory-exclusion - hate-threat - criminal-demonstration - criminal-preparation - criminal-request - criminal-instructions - criminal-promotion - historical - documentary - fictional - support-prevention additionalProperties: oneOf: - type: object properties: status: type: string const: evaluated score: type: number minimum: 0 maximum: 1 scopeScore: type: number minimum: 0 maximum: 1 likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely required: - status - score - likelihood additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable required: - status - reason additionalProperties: false required: - status - reason additionalProperties: false self-harm: oneOf: - type: object properties: status: type: string const: evaluated likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely score: type: number minimum: 0 maximum: 1 qualifiers: type: object propertyNames: type: string enum: - nudity - sexual-activity - explicit-sexual-language - sexual-solicitation - physical-attack - violent-threat - violent-preparation - violent-encouragement - injury - death - graphic - self-harm-thoughts - self-harm-preparation - self-harm-act - self-harm-methods - self-harm-encouragement - personal-abuse - targeted-intimidation - harassment-threat - sexual-harassment - harassment-encouragement - identity-abuse - dehumanization - identity-inferiority - discriminatory-exclusion - hate-threat - criminal-demonstration - criminal-preparation - criminal-request - criminal-instructions - criminal-promotion - historical - documentary - fictional - support-prevention additionalProperties: oneOf: - type: object properties: status: type: string const: evaluated score: type: number minimum: 0 maximum: 1 scopeScore: type: number minimum: 0 maximum: 1 likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely required: - status - score - likelihood additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable required: - status - reason additionalProperties: false required: - status - likelihood - score additionalProperties: false - type: object properties: status: type: string const: partial likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely score: type: number minimum: 0 maximum: 1 qualifiers: type: object propertyNames: type: string enum: - nudity - sexual-activity - explicit-sexual-language - sexual-solicitation - physical-attack - violent-threat - violent-preparation - violent-encouragement - injury - death - graphic - self-harm-thoughts - self-harm-preparation - self-harm-act - self-harm-methods - self-harm-encouragement - personal-abuse - targeted-intimidation - harassment-threat - sexual-harassment - harassment-encouragement - identity-abuse - dehumanization - identity-inferiority - discriminatory-exclusion - hate-threat - criminal-demonstration - criminal-preparation - criminal-request - criminal-instructions - criminal-promotion - historical - documentary - fictional - support-prevention additionalProperties: oneOf: - type: object properties: status: type: string const: evaluated score: type: number minimum: 0 maximum: 1 scopeScore: type: number minimum: 0 maximum: 1 likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely required: - status - score - likelihood additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable required: - status - reason additionalProperties: false required: - status - likelihood - score additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable qualifiers: type: object propertyNames: type: string enum: - nudity - sexual-activity - explicit-sexual-language - sexual-solicitation - physical-attack - violent-threat - violent-preparation - violent-encouragement - injury - death - graphic - self-harm-thoughts - self-harm-preparation - self-harm-act - self-harm-methods - self-harm-encouragement - personal-abuse - targeted-intimidation - harassment-threat - sexual-harassment - harassment-encouragement - identity-abuse - dehumanization - identity-inferiority - discriminatory-exclusion - hate-threat - criminal-demonstration - criminal-preparation - criminal-request - criminal-instructions - criminal-promotion - historical - documentary - fictional - support-prevention additionalProperties: oneOf: - type: object properties: status: type: string const: evaluated score: type: number minimum: 0 maximum: 1 scopeScore: type: number minimum: 0 maximum: 1 likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely required: - status - score - likelihood additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable required: - status - reason additionalProperties: false required: - status - reason additionalProperties: false harassment: oneOf: - type: object properties: status: type: string const: evaluated likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely score: type: number minimum: 0 maximum: 1 qualifiers: type: object propertyNames: type: string enum: - nudity - sexual-activity - explicit-sexual-language - sexual-solicitation - physical-attack - violent-threat - violent-preparation - violent-encouragement - injury - death - graphic - self-harm-thoughts - self-harm-preparation - self-harm-act - self-harm-methods - self-harm-encouragement - personal-abuse - targeted-intimidation - harassment-threat - sexual-harassment - harassment-encouragement - identity-abuse - dehumanization - identity-inferiority - discriminatory-exclusion - hate-threat - criminal-demonstration - criminal-preparation - criminal-request - criminal-instructions - criminal-promotion - historical - documentary - fictional - support-prevention additionalProperties: oneOf: - type: object properties: status: type: string const: evaluated score: type: number minimum: 0 maximum: 1 scopeScore: type: number minimum: 0 maximum: 1 likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely required: - status - score - likelihood additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable required: - status - reason additionalProperties: false required: - status - likelihood - score additionalProperties: false - type: object properties: status: type: string const: partial likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely score: type: number minimum: 0 maximum: 1 qualifiers: type: object propertyNames: type: string enum: - nudity - sexual-activity - explicit-sexual-language - sexual-solicitation - physical-attack - violent-threat - violent-preparation - violent-encouragement - injury - death - graphic - self-harm-thoughts - self-harm-preparation - self-harm-act - self-harm-methods - self-harm-encouragement - personal-abuse - targeted-intimidation - harassment-threat - sexual-harassment - harassment-encouragement - identity-abuse - dehumanization - identity-inferiority - discriminatory-exclusion - hate-threat - criminal-demonstration - criminal-preparation - criminal-request - criminal-instructions - criminal-promotion - historical - documentary - fictional - support-prevention additionalProperties: oneOf: - type: object properties: status: type: string const: evaluated score: type: number minimum: 0 maximum: 1 scopeScore: type: number minimum: 0 maximum: 1 likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely required: - status - score - likelihood additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable required: - status - reason additionalProperties: false required: - status - likelihood - score additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable qualifiers: type: object propertyNames: type: string enum: - nudity - sexual-activity - explicit-sexual-language - sexual-solicitation - physical-attack - violent-threat - violent-preparation - violent-encouragement - injury - death - graphic - self-harm-thoughts - self-harm-preparation - self-harm-act - self-harm-methods - self-harm-encouragement - personal-abuse - targeted-intimidation - harassment-threat - sexual-harassment - harassment-encouragement - identity-abuse - dehumanization - identity-inferiority - discriminatory-exclusion - hate-threat - criminal-demonstration - criminal-preparation - criminal-request - criminal-instructions - criminal-promotion - historical - documentary - fictional - support-prevention additionalProperties: oneOf: - type: object properties: status: type: string const: evaluated score: type: number minimum: 0 maximum: 1 scopeScore: type: number minimum: 0 maximum: 1 likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely required: - status - score - likelihood additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable required: - status - reason additionalProperties: false required: - status - reason additionalProperties: false hate: oneOf: - type: object properties: status: type: string const: evaluated likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely score: type: number minimum: 0 maximum: 1 qualifiers: type: object propertyNames: type: string enum: - nudity - sexual-activity - explicit-sexual-language - sexual-solicitation - physical-attack - violent-threat - violent-preparation - violent-encouragement - injury - death - graphic - self-harm-thoughts - self-harm-preparation - self-harm-act - self-harm-methods - self-harm-encouragement - personal-abuse - targeted-intimidation - harassment-threat - sexual-harassment - harassment-encouragement - identity-abuse - dehumanization - identity-inferiority - discriminatory-exclusion - hate-threat - criminal-demonstration - criminal-preparation - criminal-request - criminal-instructions - criminal-promotion - historical - documentary - fictional - support-prevention additionalProperties: oneOf: - type: object properties: status: type: string const: evaluated score: type: number minimum: 0 maximum: 1 scopeScore: type: number minimum: 0 maximum: 1 likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely required: - status - score - likelihood additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable required: - status - reason additionalProperties: false required: - status - likelihood - score additionalProperties: false - type: object properties: status: type: string const: partial likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely score: type: number minimum: 0 maximum: 1 qualifiers: type: object propertyNames: type: string enum: - nudity - sexual-activity - explicit-sexual-language - sexual-solicitation - physical-attack - violent-threat - violent-preparation - violent-encouragement - injury - death - graphic - self-harm-thoughts - self-harm-preparation - self-harm-act - self-harm-methods - self-harm-encouragement - personal-abuse - targeted-intimidation - harassment-threat - sexual-harassment - harassment-encouragement - identity-abuse - dehumanization - identity-inferiority - discriminatory-exclusion - hate-threat - criminal-demonstration - criminal-preparation - criminal-request - criminal-instructions - criminal-promotion - historical - documentary - fictional - support-prevention additionalProperties: oneOf: - type: object properties: status: type: string const: evaluated score: type: number minimum: 0 maximum: 1 scopeScore: type: number minimum: 0 maximum: 1 likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely required: - status - score - likelihood additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable required: - status - reason additionalProperties: false required: - status - likelihood - score additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable qualifiers: type: object propertyNames: type: string enum: - nudity - sexual-activity - explicit-sexual-language - sexual-solicitation - physical-attack - violent-threat - violent-preparation - violent-encouragement - injury - death - graphic - self-harm-thoughts - self-harm-preparation - self-harm-act - self-harm-methods - self-harm-encouragement - personal-abuse - targeted-intimidation - harassment-threat - sexual-harassment - harassment-encouragement - identity-abuse - dehumanization - identity-inferiority - discriminatory-exclusion - hate-threat - criminal-demonstration - criminal-preparation - criminal-request - criminal-instructions - criminal-promotion - historical - documentary - fictional - support-prevention additionalProperties: oneOf: - type: object properties: status: type: string const: evaluated score: type: number minimum: 0 maximum: 1 scopeScore: type: number minimum: 0 maximum: 1 likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely required: - status - score - likelihood additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable required: - status - reason additionalProperties: false required: - status - reason additionalProperties: false criminal-activity: oneOf: - type: object properties: status: type: string const: evaluated likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely score: type: number minimum: 0 maximum: 1 qualifiers: type: object propertyNames: type: string enum: - nudity - sexual-activity - explicit-sexual-language - sexual-solicitation - physical-attack - violent-threat - violent-preparation - violent-encouragement - injury - death - graphic - self-harm-thoughts - self-harm-preparation - self-harm-act - self-harm-methods - self-harm-encouragement - personal-abuse - targeted-intimidation - harassment-threat - sexual-harassment - harassment-encouragement - identity-abuse - dehumanization - identity-inferiority - discriminatory-exclusion - hate-threat - criminal-demonstration - criminal-preparation - criminal-request - criminal-instructions - criminal-promotion - historical - documentary - fictional - support-prevention additionalProperties: oneOf: - type: object properties: status: type: string const: evaluated score: type: number minimum: 0 maximum: 1 scopeScore: type: number minimum: 0 maximum: 1 likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely required: - status - score - likelihood additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable required: - status - reason additionalProperties: false required: - status - likelihood - score additionalProperties: false - type: object properties: status: type: string const: partial likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely score: type: number minimum: 0 maximum: 1 qualifiers: type: object propertyNames: type: string enum: - nudity - sexual-activity - explicit-sexual-language - sexual-solicitation - physical-attack - violent-threat - violent-preparation - violent-encouragement - injury - death - graphic - self-harm-thoughts - self-harm-preparation - self-harm-act - self-harm-methods - self-harm-encouragement - personal-abuse - targeted-intimidation - harassment-threat - sexual-harassment - harassment-encouragement - identity-abuse - dehumanization - identity-inferiority - discriminatory-exclusion - hate-threat - criminal-demonstration - criminal-preparation - criminal-request - criminal-instructions - criminal-promotion - historical - documentary - fictional - support-prevention additionalProperties: oneOf: - type: object properties: status: type: string const: evaluated score: type: number minimum: 0 maximum: 1 scopeScore: type: number minimum: 0 maximum: 1 likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely required: - status - score - likelihood additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable required: - status - reason additionalProperties: false required: - status - likelihood - score additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable qualifiers: type: object propertyNames: type: string enum: - nudity - sexual-activity - explicit-sexual-language - sexual-solicitation - physical-attack - violent-threat - violent-preparation - violent-encouragement - injury - death - graphic - self-harm-thoughts - self-harm-preparation - self-harm-act - self-harm-methods - self-harm-encouragement - personal-abuse - targeted-intimidation - harassment-threat - sexual-harassment - harassment-encouragement - identity-abuse - dehumanization - identity-inferiority - discriminatory-exclusion - hate-threat - criminal-demonstration - criminal-preparation - criminal-request - criminal-instructions - criminal-promotion - historical - documentary - fictional - support-prevention additionalProperties: oneOf: - type: object properties: status: type: string const: evaluated score: type: number minimum: 0 maximum: 1 scopeScore: type: number minimum: 0 maximum: 1 likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely required: - status - score - likelihood additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable required: - status - reason additionalProperties: false required: - status - reason additionalProperties: false required: - sexual - violence - self-harm - harassment - hate - criminal-activity additionalProperties: false required: - source - startSeconds - endSeconds - categories additionalProperties: false required: - durationSeconds - sampledFrames - audioTranscribed - segments additionalProperties: false labels: anyOf: - type: array items: type: object properties: description: {} score: type: number topicalityScore: type: - number - "null" likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely knowledgeBaseId: anyOf: - {} - type: "null" required: - description - score - likelihood additionalProperties: false - type: "null" required: - processedAt - categories - flagged - score additionalProperties: false - type: "null" moderationAction: anyOf: - type: string enum: - ignore - alert - hide - purge - type: "null" description: The moderation action applied when this asset crossed a policy threshold status: type: string enum: - uploading - pending - approved - rejected - error description: Processing and moderation status. See [Asset lifecycle](/docs/guides/asset-lifecycle). safetyHold: anyOf: - type: object properties: placedAt: type: number description: When the hold was placed, in milliseconds since the Unix epoch reason: type: string enum: - suspected-illegal-content description: Why the asset is held disposedAt: description: When the held content was disposed of, in milliseconds since the Unix epoch type: - number - "null" required: - placedAt - reason additionalProperties: false - type: "null" description: Internal delivery restriction for suspected illegal content. Held content cannot be viewed, changed, or deleted through normal asset operations. rejectionNote: anyOf: - {} - type: "null" description: Reason the asset was rejected, generated automatically or supplied by a reviewer extractedText: anyOf: - oneOf: - type: object properties: type: type: string const: string content: type: string required: - type - content additionalProperties: false - type: object properties: type: type: string const: document id: {} required: - type - id additionalProperties: false - type: "null" description: Extracted text stored inline for small content or in R2 for larger content processingOptions: description: Processing options supplied when the asset was uploaded anyOf: - type: object properties: keepContentAfterProcessing: description: Whether to keep the asset content after processing default: false type: - boolean - "null" flaggedContentPolicy: anyOf: - type: object properties: action: type: string enum: - ignore - alert - hide - purge required: - action additionalProperties: false - type: "null" description: Override the project moderation action for this asset. Ignore takes no action, alert keeps delivery enabled, hide blocks delivery while retaining content, and purge deletes content. image: description: Options for image assets anyOf: - type: object properties: ocrEnabled: description: Whether to extract image text into a child asset and run normal text moderation. Applies to images, including those extracted from multimedia documents and websites. default: false type: - boolean - "null" additionalProperties: false - type: "null" additionalProperties: false - type: "null" visibility: anyOf: - type: string enum: - public - private - type: "null" description: Visibility level of the asset default: private storageDeletedAt: description: When the stored content was removed, in milliseconds since the Unix epoch. The asset record and report remain. type: - number - "null" required: - id - projectId - createdAt - name - type - status additionalProperties: false description: An asset in the system $defs: __schema0: anyOf: - type: string - type: number - type: boolean - type: "null" - type: array items: $ref: "#/paths/~1assets~1{assetId}/get/responses/200/content/application~1json/schema/$defs/__schema0" - type: object propertyNames: type: string additionalProperties: $ref: "#/paths/~1assets~1{assetId}/get/responses/200/content/application~1json/schema/$defs/__schema0" "401": description: |- auth/missing-token: Authentication required. Send your project API key in the X-Api-Key header. auth/invalid-api-key: The API key is invalid, revoked or expired. Create a key under Developer → API Keys. headers: X-Request-Id: *a1 content: application/json: schema: type: object required: - message - code - traceId properties: message: type: string code: type: string enum: - auth/missing-token - auth/invalid-api-key traceId: type: string examples: auth-missing-token: summary: Authentication required. Send your project API key in the X-Api-Key header. value: message: Authentication required. Send your project API key in the X-Api-Key header. code: auth/missing-token traceId: request-trace-id auth-invalid-api-key: summary: The API key is invalid, revoked or expired. Create a key under Developer → API Keys. value: message: The API key is invalid, revoked or expired. Create a key under Developer → API Keys. code: auth/invalid-api-key traceId: request-trace-id "403": description: "auth/project-mismatch: This API key belongs to a different project. Use a key created for the project that owns this resource." headers: X-Request-Id: *a1 content: application/json: schema: type: object required: - message - code - traceId properties: message: type: string code: type: string enum: - auth/project-mismatch traceId: type: string examples: auth-project-mismatch: summary: This API key belongs to a different project. Use a key created for the project that owns this resource. value: message: This API key belongs to a different project. Use a key created for the project that owns this resource. code: auth/project-mismatch traceId: request-trace-id "404": description: |- asset/not-found: Asset not found project/not-found: Project not found headers: X-Request-Id: *a1 content: application/json: schema: type: object required: - message - code - traceId properties: message: type: string code: type: string enum: - asset/not-found - project/not-found traceId: type: string examples: asset-not-found: summary: Asset not found value: message: Asset not found code: asset/not-found traceId: request-trace-id project-not-found: summary: Project not found value: message: Project not found code: project/not-found traceId: request-trace-id parameters: - name: assetId in: path required: true description: UUID of the asset to fetch schema: type: string format: uuid pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$ description: UUID of the asset to fetch example: 987fcdeb-51a2-43d7-b890-123456789abc patch: operationId: patch-asset summary: Update Asset description: Update an existing asset security: - ApiKeyAuth: [] responses: "200": description: Successful response headers: X-Request-Id: *a1 content: application/json: schema: type: object properties: id: type: string format: uuid pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-4[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$ description: Unique asset ID projectId: type: string format: uuid pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-4[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$ description: ID of the project that owns the asset sizeInBytes: description: Size of the uploaded content in bytes type: - number - "null" userId: description: ID of the user whose account created the asset anyOf: - {} - type: "null" parentId: description: ID of the parent asset for child assets CalmLens extracts during processing, such as images in a document or OCR text. `null` for uploaded assets. anyOf: - type: string format: uuid pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-4[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$ - type: "null" folderId: anyOf: - type: string format: uuid pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-4[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$ - type: "null" description: Folder containing the asset createdAt: type: integer minimum: -9007199254740991 maximum: 9007199254740991 description: When the asset was created, in milliseconds since the Unix epoch updatedAt: description: When the asset was last updated, in milliseconds since the Unix epoch type: integer minimum: -9007199254740991 maximum: 9007199254740991 checksums: description: Digests of the uploaded content anyOf: - type: object properties: md5: description: MD5 digest of the uploaded content type: - string - "null" sha1: description: SHA-1 digest of the uploaded content type: - string - "null" sha256: description: SHA-256 digest of the uploaded content type: - string - "null" sha384: description: SHA-384 digest of the uploaded content type: - string - "null" sha512: description: SHA-512 digest of the uploaded content type: - string - "null" additionalProperties: false - type: "null" imageData: description: Image properties, for image assets anyOf: - type: object properties: perceptualHash: description: Perceptual hash used to match visually similar images type: - string - "null" width: description: Image width in pixels anyOf: - type: integer exclusiveMinimum: 0 maximum: 9007199254740991 - type: "null" height: description: Image height in pixels anyOf: - type: integer exclusiveMinimum: 0 maximum: 9007199254740991 - type: "null" additionalProperties: false - type: "null" documentData: description: Document properties, for documents anyOf: - type: object properties: {} additionalProperties: false - type: "null" name: description: Name of the asset fileFormat: description: MIME type of the stored content anyOf: - {} - type: "null" fileExtension: description: File extension of the stored content anyOf: - {} - type: "null" description: anyOf: - {} - type: "null" description: Optional description of the asset externalId: anyOf: - {} - type: "null" description: External identifier for the asset externalUrl: anyOf: - type: string format: uri - type: "null" description: External URL associated with the asset previewImage: description: Browser-friendly preview generated for images, documents and websites anyOf: - type: object properties: id: anyOf: - {} - type: "null" description: Identifier of the stored preview image fileFormat: anyOf: - {} - type: "null" description: File format of the preview, such as `webp` thumbhash: anyOf: - {} - type: "null" description: ThumbHash placeholder you can render while the preview loads averageColor: anyOf: - {} - type: "null" description: Average color of the preview width: anyOf: - type: integer exclusiveMinimum: 0 maximum: 9007199254740991 - type: "null" description: Preview width in pixels height: anyOf: - type: integer exclusiveMinimum: 0 maximum: 9007199254740991 - type: "null" description: Preview height in pixels required: - id - fileFormat - thumbhash - averageColor - width - height additionalProperties: false - type: "null" storageId: description: Internal storage key of the retained content; `null` when nothing is stored anyOf: - {} - type: "null" uploadPartsReceived: description: Number of parts received so far for a multipart upload anyOf: - type: integer minimum: -9007199254740991 maximum: 9007199254740991 - type: "null" type: type: string enum: - image - video - audio - plaintext-document - multimedia-document - website - file description: Asset type, detected from the content's MIME type metadata: anyOf: - type: array items: type: object properties: id: description: Identifier for the metadata item value: $ref: "#/paths/~1assets~1{assetId}/patch/responses/200/content/application~1json/schema/$defs/__schema0" description: Value of the metadata item required: - id - value additionalProperties: false description: A metadata item with an ID and value - type: "null" description: List of custom metadata items for the asset tags: anyOf: - type: array items: {} - type: "null" description: Array of tags for the asset report: description: Moderation report, set once classification finishes. See [Report format](/docs/guides/moderation-reports). anyOf: - type: object properties: processedAt: type: number categories: type: object properties: sexual: oneOf: - type: object properties: status: type: string const: evaluated likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely score: type: number minimum: 0 maximum: 1 qualifiers: type: object propertyNames: type: string enum: - nudity - sexual-activity - explicit-sexual-language - sexual-solicitation - physical-attack - violent-threat - violent-preparation - violent-encouragement - injury - death - graphic - self-harm-thoughts - self-harm-preparation - self-harm-act - self-harm-methods - self-harm-encouragement - personal-abuse - targeted-intimidation - harassment-threat - sexual-harassment - harassment-encouragement - identity-abuse - dehumanization - identity-inferiority - discriminatory-exclusion - hate-threat - criminal-demonstration - criminal-preparation - criminal-request - criminal-instructions - criminal-promotion - historical - documentary - fictional - support-prevention additionalProperties: oneOf: - type: object properties: status: type: string const: evaluated score: type: number minimum: 0 maximum: 1 scopeScore: type: number minimum: 0 maximum: 1 likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely required: - status - score - likelihood additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable required: - status - reason additionalProperties: false required: - status - likelihood - score additionalProperties: false - type: object properties: status: type: string const: partial likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely score: type: number minimum: 0 maximum: 1 qualifiers: type: object propertyNames: type: string enum: - nudity - sexual-activity - explicit-sexual-language - sexual-solicitation - physical-attack - violent-threat - violent-preparation - violent-encouragement - injury - death - graphic - self-harm-thoughts - self-harm-preparation - self-harm-act - self-harm-methods - self-harm-encouragement - personal-abuse - targeted-intimidation - harassment-threat - sexual-harassment - harassment-encouragement - identity-abuse - dehumanization - identity-inferiority - discriminatory-exclusion - hate-threat - criminal-demonstration - criminal-preparation - criminal-request - criminal-instructions - criminal-promotion - historical - documentary - fictional - support-prevention additionalProperties: oneOf: - type: object properties: status: type: string const: evaluated score: type: number minimum: 0 maximum: 1 scopeScore: type: number minimum: 0 maximum: 1 likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely required: - status - score - likelihood additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable required: - status - reason additionalProperties: false required: - status - likelihood - score additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable qualifiers: type: object propertyNames: type: string enum: - nudity - sexual-activity - explicit-sexual-language - sexual-solicitation - physical-attack - violent-threat - violent-preparation - violent-encouragement - injury - death - graphic - self-harm-thoughts - self-harm-preparation - self-harm-act - self-harm-methods - self-harm-encouragement - personal-abuse - targeted-intimidation - harassment-threat - sexual-harassment - harassment-encouragement - identity-abuse - dehumanization - identity-inferiority - discriminatory-exclusion - hate-threat - criminal-demonstration - criminal-preparation - criminal-request - criminal-instructions - criminal-promotion - historical - documentary - fictional - support-prevention additionalProperties: oneOf: - type: object properties: status: type: string const: evaluated score: type: number minimum: 0 maximum: 1 scopeScore: type: number minimum: 0 maximum: 1 likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely required: - status - score - likelihood additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable required: - status - reason additionalProperties: false required: - status - reason additionalProperties: false violence: oneOf: - type: object properties: status: type: string const: evaluated likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely score: type: number minimum: 0 maximum: 1 qualifiers: type: object propertyNames: type: string enum: - nudity - sexual-activity - explicit-sexual-language - sexual-solicitation - physical-attack - violent-threat - violent-preparation - violent-encouragement - injury - death - graphic - self-harm-thoughts - self-harm-preparation - self-harm-act - self-harm-methods - self-harm-encouragement - personal-abuse - targeted-intimidation - harassment-threat - sexual-harassment - harassment-encouragement - identity-abuse - dehumanization - identity-inferiority - discriminatory-exclusion - hate-threat - criminal-demonstration - criminal-preparation - criminal-request - criminal-instructions - criminal-promotion - historical - documentary - fictional - support-prevention additionalProperties: oneOf: - type: object properties: status: type: string const: evaluated score: type: number minimum: 0 maximum: 1 scopeScore: type: number minimum: 0 maximum: 1 likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely required: - status - score - likelihood additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable required: - status - reason additionalProperties: false required: - status - likelihood - score additionalProperties: false - type: object properties: status: type: string const: partial likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely score: type: number minimum: 0 maximum: 1 qualifiers: type: object propertyNames: type: string enum: - nudity - sexual-activity - explicit-sexual-language - sexual-solicitation - physical-attack - violent-threat - violent-preparation - violent-encouragement - injury - death - graphic - self-harm-thoughts - self-harm-preparation - self-harm-act - self-harm-methods - self-harm-encouragement - personal-abuse - targeted-intimidation - harassment-threat - sexual-harassment - harassment-encouragement - identity-abuse - dehumanization - identity-inferiority - discriminatory-exclusion - hate-threat - criminal-demonstration - criminal-preparation - criminal-request - criminal-instructions - criminal-promotion - historical - documentary - fictional - support-prevention additionalProperties: oneOf: - type: object properties: status: type: string const: evaluated score: type: number minimum: 0 maximum: 1 scopeScore: type: number minimum: 0 maximum: 1 likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely required: - status - score - likelihood additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable required: - status - reason additionalProperties: false required: - status - likelihood - score additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable qualifiers: type: object propertyNames: type: string enum: - nudity - sexual-activity - explicit-sexual-language - sexual-solicitation - physical-attack - violent-threat - violent-preparation - violent-encouragement - injury - death - graphic - self-harm-thoughts - self-harm-preparation - self-harm-act - self-harm-methods - self-harm-encouragement - personal-abuse - targeted-intimidation - harassment-threat - sexual-harassment - harassment-encouragement - identity-abuse - dehumanization - identity-inferiority - discriminatory-exclusion - hate-threat - criminal-demonstration - criminal-preparation - criminal-request - criminal-instructions - criminal-promotion - historical - documentary - fictional - support-prevention additionalProperties: oneOf: - type: object properties: status: type: string const: evaluated score: type: number minimum: 0 maximum: 1 scopeScore: type: number minimum: 0 maximum: 1 likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely required: - status - score - likelihood additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable required: - status - reason additionalProperties: false required: - status - reason additionalProperties: false self-harm: oneOf: - type: object properties: status: type: string const: evaluated likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely score: type: number minimum: 0 maximum: 1 qualifiers: type: object propertyNames: type: string enum: - nudity - sexual-activity - explicit-sexual-language - sexual-solicitation - physical-attack - violent-threat - violent-preparation - violent-encouragement - injury - death - graphic - self-harm-thoughts - self-harm-preparation - self-harm-act - self-harm-methods - self-harm-encouragement - personal-abuse - targeted-intimidation - harassment-threat - sexual-harassment - harassment-encouragement - identity-abuse - dehumanization - identity-inferiority - discriminatory-exclusion - hate-threat - criminal-demonstration - criminal-preparation - criminal-request - criminal-instructions - criminal-promotion - historical - documentary - fictional - support-prevention additionalProperties: oneOf: - type: object properties: status: type: string const: evaluated score: type: number minimum: 0 maximum: 1 scopeScore: type: number minimum: 0 maximum: 1 likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely required: - status - score - likelihood additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable required: - status - reason additionalProperties: false required: - status - likelihood - score additionalProperties: false - type: object properties: status: type: string const: partial likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely score: type: number minimum: 0 maximum: 1 qualifiers: type: object propertyNames: type: string enum: - nudity - sexual-activity - explicit-sexual-language - sexual-solicitation - physical-attack - violent-threat - violent-preparation - violent-encouragement - injury - death - graphic - self-harm-thoughts - self-harm-preparation - self-harm-act - self-harm-methods - self-harm-encouragement - personal-abuse - targeted-intimidation - harassment-threat - sexual-harassment - harassment-encouragement - identity-abuse - dehumanization - identity-inferiority - discriminatory-exclusion - hate-threat - criminal-demonstration - criminal-preparation - criminal-request - criminal-instructions - criminal-promotion - historical - documentary - fictional - support-prevention additionalProperties: oneOf: - type: object properties: status: type: string const: evaluated score: type: number minimum: 0 maximum: 1 scopeScore: type: number minimum: 0 maximum: 1 likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely required: - status - score - likelihood additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable required: - status - reason additionalProperties: false required: - status - likelihood - score additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable qualifiers: type: object propertyNames: type: string enum: - nudity - sexual-activity - explicit-sexual-language - sexual-solicitation - physical-attack - violent-threat - violent-preparation - violent-encouragement - injury - death - graphic - self-harm-thoughts - self-harm-preparation - self-harm-act - self-harm-methods - self-harm-encouragement - personal-abuse - targeted-intimidation - harassment-threat - sexual-harassment - harassment-encouragement - identity-abuse - dehumanization - identity-inferiority - discriminatory-exclusion - hate-threat - criminal-demonstration - criminal-preparation - criminal-request - criminal-instructions - criminal-promotion - historical - documentary - fictional - support-prevention additionalProperties: oneOf: - type: object properties: status: type: string const: evaluated score: type: number minimum: 0 maximum: 1 scopeScore: type: number minimum: 0 maximum: 1 likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely required: - status - score - likelihood additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable required: - status - reason additionalProperties: false required: - status - reason additionalProperties: false harassment: oneOf: - type: object properties: status: type: string const: evaluated likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely score: type: number minimum: 0 maximum: 1 qualifiers: type: object propertyNames: type: string enum: - nudity - sexual-activity - explicit-sexual-language - sexual-solicitation - physical-attack - violent-threat - violent-preparation - violent-encouragement - injury - death - graphic - self-harm-thoughts - self-harm-preparation - self-harm-act - self-harm-methods - self-harm-encouragement - personal-abuse - targeted-intimidation - harassment-threat - sexual-harassment - harassment-encouragement - identity-abuse - dehumanization - identity-inferiority - discriminatory-exclusion - hate-threat - criminal-demonstration - criminal-preparation - criminal-request - criminal-instructions - criminal-promotion - historical - documentary - fictional - support-prevention additionalProperties: oneOf: - type: object properties: status: type: string const: evaluated score: type: number minimum: 0 maximum: 1 scopeScore: type: number minimum: 0 maximum: 1 likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely required: - status - score - likelihood additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable required: - status - reason additionalProperties: false required: - status - likelihood - score additionalProperties: false - type: object properties: status: type: string const: partial likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely score: type: number minimum: 0 maximum: 1 qualifiers: type: object propertyNames: type: string enum: - nudity - sexual-activity - explicit-sexual-language - sexual-solicitation - physical-attack - violent-threat - violent-preparation - violent-encouragement - injury - death - graphic - self-harm-thoughts - self-harm-preparation - self-harm-act - self-harm-methods - self-harm-encouragement - personal-abuse - targeted-intimidation - harassment-threat - sexual-harassment - harassment-encouragement - identity-abuse - dehumanization - identity-inferiority - discriminatory-exclusion - hate-threat - criminal-demonstration - criminal-preparation - criminal-request - criminal-instructions - criminal-promotion - historical - documentary - fictional - support-prevention additionalProperties: oneOf: - type: object properties: status: type: string const: evaluated score: type: number minimum: 0 maximum: 1 scopeScore: type: number minimum: 0 maximum: 1 likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely required: - status - score - likelihood additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable required: - status - reason additionalProperties: false required: - status - likelihood - score additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable qualifiers: type: object propertyNames: type: string enum: - nudity - sexual-activity - explicit-sexual-language - sexual-solicitation - physical-attack - violent-threat - violent-preparation - violent-encouragement - injury - death - graphic - self-harm-thoughts - self-harm-preparation - self-harm-act - self-harm-methods - self-harm-encouragement - personal-abuse - targeted-intimidation - harassment-threat - sexual-harassment - harassment-encouragement - identity-abuse - dehumanization - identity-inferiority - discriminatory-exclusion - hate-threat - criminal-demonstration - criminal-preparation - criminal-request - criminal-instructions - criminal-promotion - historical - documentary - fictional - support-prevention additionalProperties: oneOf: - type: object properties: status: type: string const: evaluated score: type: number minimum: 0 maximum: 1 scopeScore: type: number minimum: 0 maximum: 1 likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely required: - status - score - likelihood additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable required: - status - reason additionalProperties: false required: - status - reason additionalProperties: false hate: oneOf: - type: object properties: status: type: string const: evaluated likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely score: type: number minimum: 0 maximum: 1 qualifiers: type: object propertyNames: type: string enum: - nudity - sexual-activity - explicit-sexual-language - sexual-solicitation - physical-attack - violent-threat - violent-preparation - violent-encouragement - injury - death - graphic - self-harm-thoughts - self-harm-preparation - self-harm-act - self-harm-methods - self-harm-encouragement - personal-abuse - targeted-intimidation - harassment-threat - sexual-harassment - harassment-encouragement - identity-abuse - dehumanization - identity-inferiority - discriminatory-exclusion - hate-threat - criminal-demonstration - criminal-preparation - criminal-request - criminal-instructions - criminal-promotion - historical - documentary - fictional - support-prevention additionalProperties: oneOf: - type: object properties: status: type: string const: evaluated score: type: number minimum: 0 maximum: 1 scopeScore: type: number minimum: 0 maximum: 1 likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely required: - status - score - likelihood additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable required: - status - reason additionalProperties: false required: - status - likelihood - score additionalProperties: false - type: object properties: status: type: string const: partial likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely score: type: number minimum: 0 maximum: 1 qualifiers: type: object propertyNames: type: string enum: - nudity - sexual-activity - explicit-sexual-language - sexual-solicitation - physical-attack - violent-threat - violent-preparation - violent-encouragement - injury - death - graphic - self-harm-thoughts - self-harm-preparation - self-harm-act - self-harm-methods - self-harm-encouragement - personal-abuse - targeted-intimidation - harassment-threat - sexual-harassment - harassment-encouragement - identity-abuse - dehumanization - identity-inferiority - discriminatory-exclusion - hate-threat - criminal-demonstration - criminal-preparation - criminal-request - criminal-instructions - criminal-promotion - historical - documentary - fictional - support-prevention additionalProperties: oneOf: - type: object properties: status: type: string const: evaluated score: type: number minimum: 0 maximum: 1 scopeScore: type: number minimum: 0 maximum: 1 likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely required: - status - score - likelihood additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable required: - status - reason additionalProperties: false required: - status - likelihood - score additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable qualifiers: type: object propertyNames: type: string enum: - nudity - sexual-activity - explicit-sexual-language - sexual-solicitation - physical-attack - violent-threat - violent-preparation - violent-encouragement - injury - death - graphic - self-harm-thoughts - self-harm-preparation - self-harm-act - self-harm-methods - self-harm-encouragement - personal-abuse - targeted-intimidation - harassment-threat - sexual-harassment - harassment-encouragement - identity-abuse - dehumanization - identity-inferiority - discriminatory-exclusion - hate-threat - criminal-demonstration - criminal-preparation - criminal-request - criminal-instructions - criminal-promotion - historical - documentary - fictional - support-prevention additionalProperties: oneOf: - type: object properties: status: type: string const: evaluated score: type: number minimum: 0 maximum: 1 scopeScore: type: number minimum: 0 maximum: 1 likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely required: - status - score - likelihood additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable required: - status - reason additionalProperties: false required: - status - reason additionalProperties: false criminal-activity: oneOf: - type: object properties: status: type: string const: evaluated likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely score: type: number minimum: 0 maximum: 1 qualifiers: type: object propertyNames: type: string enum: - nudity - sexual-activity - explicit-sexual-language - sexual-solicitation - physical-attack - violent-threat - violent-preparation - violent-encouragement - injury - death - graphic - self-harm-thoughts - self-harm-preparation - self-harm-act - self-harm-methods - self-harm-encouragement - personal-abuse - targeted-intimidation - harassment-threat - sexual-harassment - harassment-encouragement - identity-abuse - dehumanization - identity-inferiority - discriminatory-exclusion - hate-threat - criminal-demonstration - criminal-preparation - criminal-request - criminal-instructions - criminal-promotion - historical - documentary - fictional - support-prevention additionalProperties: oneOf: - type: object properties: status: type: string const: evaluated score: type: number minimum: 0 maximum: 1 scopeScore: type: number minimum: 0 maximum: 1 likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely required: - status - score - likelihood additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable required: - status - reason additionalProperties: false required: - status - likelihood - score additionalProperties: false - type: object properties: status: type: string const: partial likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely score: type: number minimum: 0 maximum: 1 qualifiers: type: object propertyNames: type: string enum: - nudity - sexual-activity - explicit-sexual-language - sexual-solicitation - physical-attack - violent-threat - violent-preparation - violent-encouragement - injury - death - graphic - self-harm-thoughts - self-harm-preparation - self-harm-act - self-harm-methods - self-harm-encouragement - personal-abuse - targeted-intimidation - harassment-threat - sexual-harassment - harassment-encouragement - identity-abuse - dehumanization - identity-inferiority - discriminatory-exclusion - hate-threat - criminal-demonstration - criminal-preparation - criminal-request - criminal-instructions - criminal-promotion - historical - documentary - fictional - support-prevention additionalProperties: oneOf: - type: object properties: status: type: string const: evaluated score: type: number minimum: 0 maximum: 1 scopeScore: type: number minimum: 0 maximum: 1 likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely required: - status - score - likelihood additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable required: - status - reason additionalProperties: false required: - status - likelihood - score additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable qualifiers: type: object propertyNames: type: string enum: - nudity - sexual-activity - explicit-sexual-language - sexual-solicitation - physical-attack - violent-threat - violent-preparation - violent-encouragement - injury - death - graphic - self-harm-thoughts - self-harm-preparation - self-harm-act - self-harm-methods - self-harm-encouragement - personal-abuse - targeted-intimidation - harassment-threat - sexual-harassment - harassment-encouragement - identity-abuse - dehumanization - identity-inferiority - discriminatory-exclusion - hate-threat - criminal-demonstration - criminal-preparation - criminal-request - criminal-instructions - criminal-promotion - historical - documentary - fictional - support-prevention additionalProperties: oneOf: - type: object properties: status: type: string const: evaluated score: type: number minimum: 0 maximum: 1 scopeScore: type: number minimum: 0 maximum: 1 likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely required: - status - score - likelihood additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable required: - status - reason additionalProperties: false required: - status - reason additionalProperties: false required: - sexual - violence - self-harm - harassment - hate - criminal-activity additionalProperties: false flagged: type: boolean score: type: number notes: anyOf: - {} - type: "null" media: type: object properties: durationSeconds: type: number exclusiveMinimum: 0 frameIntervalSeconds: type: number exclusiveMinimum: 0 sampledFrames: type: integer minimum: 0 maximum: 9007199254740991 audioTranscribed: type: boolean segments: type: array items: type: object properties: source: type: string enum: - frame - speech - frame-text - clip startSeconds: type: number minimum: 0 endSeconds: type: number minimum: 0 categories: type: object properties: sexual: oneOf: - type: object properties: status: type: string const: evaluated likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely score: type: number minimum: 0 maximum: 1 qualifiers: type: object propertyNames: type: string enum: - nudity - sexual-activity - explicit-sexual-language - sexual-solicitation - physical-attack - violent-threat - violent-preparation - violent-encouragement - injury - death - graphic - self-harm-thoughts - self-harm-preparation - self-harm-act - self-harm-methods - self-harm-encouragement - personal-abuse - targeted-intimidation - harassment-threat - sexual-harassment - harassment-encouragement - identity-abuse - dehumanization - identity-inferiority - discriminatory-exclusion - hate-threat - criminal-demonstration - criminal-preparation - criminal-request - criminal-instructions - criminal-promotion - historical - documentary - fictional - support-prevention additionalProperties: oneOf: - type: object properties: status: type: string const: evaluated score: type: number minimum: 0 maximum: 1 scopeScore: type: number minimum: 0 maximum: 1 likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely required: - status - score - likelihood additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable required: - status - reason additionalProperties: false required: - status - likelihood - score additionalProperties: false - type: object properties: status: type: string const: partial likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely score: type: number minimum: 0 maximum: 1 qualifiers: type: object propertyNames: type: string enum: - nudity - sexual-activity - explicit-sexual-language - sexual-solicitation - physical-attack - violent-threat - violent-preparation - violent-encouragement - injury - death - graphic - self-harm-thoughts - self-harm-preparation - self-harm-act - self-harm-methods - self-harm-encouragement - personal-abuse - targeted-intimidation - harassment-threat - sexual-harassment - harassment-encouragement - identity-abuse - dehumanization - identity-inferiority - discriminatory-exclusion - hate-threat - criminal-demonstration - criminal-preparation - criminal-request - criminal-instructions - criminal-promotion - historical - documentary - fictional - support-prevention additionalProperties: oneOf: - type: object properties: status: type: string const: evaluated score: type: number minimum: 0 maximum: 1 scopeScore: type: number minimum: 0 maximum: 1 likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely required: - status - score - likelihood additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable required: - status - reason additionalProperties: false required: - status - likelihood - score additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable qualifiers: type: object propertyNames: type: string enum: - nudity - sexual-activity - explicit-sexual-language - sexual-solicitation - physical-attack - violent-threat - violent-preparation - violent-encouragement - injury - death - graphic - self-harm-thoughts - self-harm-preparation - self-harm-act - self-harm-methods - self-harm-encouragement - personal-abuse - targeted-intimidation - harassment-threat - sexual-harassment - harassment-encouragement - identity-abuse - dehumanization - identity-inferiority - discriminatory-exclusion - hate-threat - criminal-demonstration - criminal-preparation - criminal-request - criminal-instructions - criminal-promotion - historical - documentary - fictional - support-prevention additionalProperties: oneOf: - type: object properties: status: type: string const: evaluated score: type: number minimum: 0 maximum: 1 scopeScore: type: number minimum: 0 maximum: 1 likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely required: - status - score - likelihood additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable required: - status - reason additionalProperties: false required: - status - reason additionalProperties: false violence: oneOf: - type: object properties: status: type: string const: evaluated likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely score: type: number minimum: 0 maximum: 1 qualifiers: type: object propertyNames: type: string enum: - nudity - sexual-activity - explicit-sexual-language - sexual-solicitation - physical-attack - violent-threat - violent-preparation - violent-encouragement - injury - death - graphic - self-harm-thoughts - self-harm-preparation - self-harm-act - self-harm-methods - self-harm-encouragement - personal-abuse - targeted-intimidation - harassment-threat - sexual-harassment - harassment-encouragement - identity-abuse - dehumanization - identity-inferiority - discriminatory-exclusion - hate-threat - criminal-demonstration - criminal-preparation - criminal-request - criminal-instructions - criminal-promotion - historical - documentary - fictional - support-prevention additionalProperties: oneOf: - type: object properties: status: type: string const: evaluated score: type: number minimum: 0 maximum: 1 scopeScore: type: number minimum: 0 maximum: 1 likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely required: - status - score - likelihood additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable required: - status - reason additionalProperties: false required: - status - likelihood - score additionalProperties: false - type: object properties: status: type: string const: partial likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely score: type: number minimum: 0 maximum: 1 qualifiers: type: object propertyNames: type: string enum: - nudity - sexual-activity - explicit-sexual-language - sexual-solicitation - physical-attack - violent-threat - violent-preparation - violent-encouragement - injury - death - graphic - self-harm-thoughts - self-harm-preparation - self-harm-act - self-harm-methods - self-harm-encouragement - personal-abuse - targeted-intimidation - harassment-threat - sexual-harassment - harassment-encouragement - identity-abuse - dehumanization - identity-inferiority - discriminatory-exclusion - hate-threat - criminal-demonstration - criminal-preparation - criminal-request - criminal-instructions - criminal-promotion - historical - documentary - fictional - support-prevention additionalProperties: oneOf: - type: object properties: status: type: string const: evaluated score: type: number minimum: 0 maximum: 1 scopeScore: type: number minimum: 0 maximum: 1 likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely required: - status - score - likelihood additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable required: - status - reason additionalProperties: false required: - status - likelihood - score additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable qualifiers: type: object propertyNames: type: string enum: - nudity - sexual-activity - explicit-sexual-language - sexual-solicitation - physical-attack - violent-threat - violent-preparation - violent-encouragement - injury - death - graphic - self-harm-thoughts - self-harm-preparation - self-harm-act - self-harm-methods - self-harm-encouragement - personal-abuse - targeted-intimidation - harassment-threat - sexual-harassment - harassment-encouragement - identity-abuse - dehumanization - identity-inferiority - discriminatory-exclusion - hate-threat - criminal-demonstration - criminal-preparation - criminal-request - criminal-instructions - criminal-promotion - historical - documentary - fictional - support-prevention additionalProperties: oneOf: - type: object properties: status: type: string const: evaluated score: type: number minimum: 0 maximum: 1 scopeScore: type: number minimum: 0 maximum: 1 likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely required: - status - score - likelihood additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable required: - status - reason additionalProperties: false required: - status - reason additionalProperties: false self-harm: oneOf: - type: object properties: status: type: string const: evaluated likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely score: type: number minimum: 0 maximum: 1 qualifiers: type: object propertyNames: type: string enum: - nudity - sexual-activity - explicit-sexual-language - sexual-solicitation - physical-attack - violent-threat - violent-preparation - violent-encouragement - injury - death - graphic - self-harm-thoughts - self-harm-preparation - self-harm-act - self-harm-methods - self-harm-encouragement - personal-abuse - targeted-intimidation - harassment-threat - sexual-harassment - harassment-encouragement - identity-abuse - dehumanization - identity-inferiority - discriminatory-exclusion - hate-threat - criminal-demonstration - criminal-preparation - criminal-request - criminal-instructions - criminal-promotion - historical - documentary - fictional - support-prevention additionalProperties: oneOf: - type: object properties: status: type: string const: evaluated score: type: number minimum: 0 maximum: 1 scopeScore: type: number minimum: 0 maximum: 1 likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely required: - status - score - likelihood additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable required: - status - reason additionalProperties: false required: - status - likelihood - score additionalProperties: false - type: object properties: status: type: string const: partial likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely score: type: number minimum: 0 maximum: 1 qualifiers: type: object propertyNames: type: string enum: - nudity - sexual-activity - explicit-sexual-language - sexual-solicitation - physical-attack - violent-threat - violent-preparation - violent-encouragement - injury - death - graphic - self-harm-thoughts - self-harm-preparation - self-harm-act - self-harm-methods - self-harm-encouragement - personal-abuse - targeted-intimidation - harassment-threat - sexual-harassment - harassment-encouragement - identity-abuse - dehumanization - identity-inferiority - discriminatory-exclusion - hate-threat - criminal-demonstration - criminal-preparation - criminal-request - criminal-instructions - criminal-promotion - historical - documentary - fictional - support-prevention additionalProperties: oneOf: - type: object properties: status: type: string const: evaluated score: type: number minimum: 0 maximum: 1 scopeScore: type: number minimum: 0 maximum: 1 likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely required: - status - score - likelihood additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable required: - status - reason additionalProperties: false required: - status - likelihood - score additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable qualifiers: type: object propertyNames: type: string enum: - nudity - sexual-activity - explicit-sexual-language - sexual-solicitation - physical-attack - violent-threat - violent-preparation - violent-encouragement - injury - death - graphic - self-harm-thoughts - self-harm-preparation - self-harm-act - self-harm-methods - self-harm-encouragement - personal-abuse - targeted-intimidation - harassment-threat - sexual-harassment - harassment-encouragement - identity-abuse - dehumanization - identity-inferiority - discriminatory-exclusion - hate-threat - criminal-demonstration - criminal-preparation - criminal-request - criminal-instructions - criminal-promotion - historical - documentary - fictional - support-prevention additionalProperties: oneOf: - type: object properties: status: type: string const: evaluated score: type: number minimum: 0 maximum: 1 scopeScore: type: number minimum: 0 maximum: 1 likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely required: - status - score - likelihood additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable required: - status - reason additionalProperties: false required: - status - reason additionalProperties: false harassment: oneOf: - type: object properties: status: type: string const: evaluated likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely score: type: number minimum: 0 maximum: 1 qualifiers: type: object propertyNames: type: string enum: - nudity - sexual-activity - explicit-sexual-language - sexual-solicitation - physical-attack - violent-threat - violent-preparation - violent-encouragement - injury - death - graphic - self-harm-thoughts - self-harm-preparation - self-harm-act - self-harm-methods - self-harm-encouragement - personal-abuse - targeted-intimidation - harassment-threat - sexual-harassment - harassment-encouragement - identity-abuse - dehumanization - identity-inferiority - discriminatory-exclusion - hate-threat - criminal-demonstration - criminal-preparation - criminal-request - criminal-instructions - criminal-promotion - historical - documentary - fictional - support-prevention additionalProperties: oneOf: - type: object properties: status: type: string const: evaluated score: type: number minimum: 0 maximum: 1 scopeScore: type: number minimum: 0 maximum: 1 likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely required: - status - score - likelihood additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable required: - status - reason additionalProperties: false required: - status - likelihood - score additionalProperties: false - type: object properties: status: type: string const: partial likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely score: type: number minimum: 0 maximum: 1 qualifiers: type: object propertyNames: type: string enum: - nudity - sexual-activity - explicit-sexual-language - sexual-solicitation - physical-attack - violent-threat - violent-preparation - violent-encouragement - injury - death - graphic - self-harm-thoughts - self-harm-preparation - self-harm-act - self-harm-methods - self-harm-encouragement - personal-abuse - targeted-intimidation - harassment-threat - sexual-harassment - harassment-encouragement - identity-abuse - dehumanization - identity-inferiority - discriminatory-exclusion - hate-threat - criminal-demonstration - criminal-preparation - criminal-request - criminal-instructions - criminal-promotion - historical - documentary - fictional - support-prevention additionalProperties: oneOf: - type: object properties: status: type: string const: evaluated score: type: number minimum: 0 maximum: 1 scopeScore: type: number minimum: 0 maximum: 1 likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely required: - status - score - likelihood additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable required: - status - reason additionalProperties: false required: - status - likelihood - score additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable qualifiers: type: object propertyNames: type: string enum: - nudity - sexual-activity - explicit-sexual-language - sexual-solicitation - physical-attack - violent-threat - violent-preparation - violent-encouragement - injury - death - graphic - self-harm-thoughts - self-harm-preparation - self-harm-act - self-harm-methods - self-harm-encouragement - personal-abuse - targeted-intimidation - harassment-threat - sexual-harassment - harassment-encouragement - identity-abuse - dehumanization - identity-inferiority - discriminatory-exclusion - hate-threat - criminal-demonstration - criminal-preparation - criminal-request - criminal-instructions - criminal-promotion - historical - documentary - fictional - support-prevention additionalProperties: oneOf: - type: object properties: status: type: string const: evaluated score: type: number minimum: 0 maximum: 1 scopeScore: type: number minimum: 0 maximum: 1 likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely required: - status - score - likelihood additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable required: - status - reason additionalProperties: false required: - status - reason additionalProperties: false hate: oneOf: - type: object properties: status: type: string const: evaluated likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely score: type: number minimum: 0 maximum: 1 qualifiers: type: object propertyNames: type: string enum: - nudity - sexual-activity - explicit-sexual-language - sexual-solicitation - physical-attack - violent-threat - violent-preparation - violent-encouragement - injury - death - graphic - self-harm-thoughts - self-harm-preparation - self-harm-act - self-harm-methods - self-harm-encouragement - personal-abuse - targeted-intimidation - harassment-threat - sexual-harassment - harassment-encouragement - identity-abuse - dehumanization - identity-inferiority - discriminatory-exclusion - hate-threat - criminal-demonstration - criminal-preparation - criminal-request - criminal-instructions - criminal-promotion - historical - documentary - fictional - support-prevention additionalProperties: oneOf: - type: object properties: status: type: string const: evaluated score: type: number minimum: 0 maximum: 1 scopeScore: type: number minimum: 0 maximum: 1 likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely required: - status - score - likelihood additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable required: - status - reason additionalProperties: false required: - status - likelihood - score additionalProperties: false - type: object properties: status: type: string const: partial likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely score: type: number minimum: 0 maximum: 1 qualifiers: type: object propertyNames: type: string enum: - nudity - sexual-activity - explicit-sexual-language - sexual-solicitation - physical-attack - violent-threat - violent-preparation - violent-encouragement - injury - death - graphic - self-harm-thoughts - self-harm-preparation - self-harm-act - self-harm-methods - self-harm-encouragement - personal-abuse - targeted-intimidation - harassment-threat - sexual-harassment - harassment-encouragement - identity-abuse - dehumanization - identity-inferiority - discriminatory-exclusion - hate-threat - criminal-demonstration - criminal-preparation - criminal-request - criminal-instructions - criminal-promotion - historical - documentary - fictional - support-prevention additionalProperties: oneOf: - type: object properties: status: type: string const: evaluated score: type: number minimum: 0 maximum: 1 scopeScore: type: number minimum: 0 maximum: 1 likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely required: - status - score - likelihood additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable required: - status - reason additionalProperties: false required: - status - likelihood - score additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable qualifiers: type: object propertyNames: type: string enum: - nudity - sexual-activity - explicit-sexual-language - sexual-solicitation - physical-attack - violent-threat - violent-preparation - violent-encouragement - injury - death - graphic - self-harm-thoughts - self-harm-preparation - self-harm-act - self-harm-methods - self-harm-encouragement - personal-abuse - targeted-intimidation - harassment-threat - sexual-harassment - harassment-encouragement - identity-abuse - dehumanization - identity-inferiority - discriminatory-exclusion - hate-threat - criminal-demonstration - criminal-preparation - criminal-request - criminal-instructions - criminal-promotion - historical - documentary - fictional - support-prevention additionalProperties: oneOf: - type: object properties: status: type: string const: evaluated score: type: number minimum: 0 maximum: 1 scopeScore: type: number minimum: 0 maximum: 1 likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely required: - status - score - likelihood additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable required: - status - reason additionalProperties: false required: - status - reason additionalProperties: false criminal-activity: oneOf: - type: object properties: status: type: string const: evaluated likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely score: type: number minimum: 0 maximum: 1 qualifiers: type: object propertyNames: type: string enum: - nudity - sexual-activity - explicit-sexual-language - sexual-solicitation - physical-attack - violent-threat - violent-preparation - violent-encouragement - injury - death - graphic - self-harm-thoughts - self-harm-preparation - self-harm-act - self-harm-methods - self-harm-encouragement - personal-abuse - targeted-intimidation - harassment-threat - sexual-harassment - harassment-encouragement - identity-abuse - dehumanization - identity-inferiority - discriminatory-exclusion - hate-threat - criminal-demonstration - criminal-preparation - criminal-request - criminal-instructions - criminal-promotion - historical - documentary - fictional - support-prevention additionalProperties: oneOf: - type: object properties: status: type: string const: evaluated score: type: number minimum: 0 maximum: 1 scopeScore: type: number minimum: 0 maximum: 1 likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely required: - status - score - likelihood additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable required: - status - reason additionalProperties: false required: - status - likelihood - score additionalProperties: false - type: object properties: status: type: string const: partial likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely score: type: number minimum: 0 maximum: 1 qualifiers: type: object propertyNames: type: string enum: - nudity - sexual-activity - explicit-sexual-language - sexual-solicitation - physical-attack - violent-threat - violent-preparation - violent-encouragement - injury - death - graphic - self-harm-thoughts - self-harm-preparation - self-harm-act - self-harm-methods - self-harm-encouragement - personal-abuse - targeted-intimidation - harassment-threat - sexual-harassment - harassment-encouragement - identity-abuse - dehumanization - identity-inferiority - discriminatory-exclusion - hate-threat - criminal-demonstration - criminal-preparation - criminal-request - criminal-instructions - criminal-promotion - historical - documentary - fictional - support-prevention additionalProperties: oneOf: - type: object properties: status: type: string const: evaluated score: type: number minimum: 0 maximum: 1 scopeScore: type: number minimum: 0 maximum: 1 likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely required: - status - score - likelihood additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable required: - status - reason additionalProperties: false required: - status - likelihood - score additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable qualifiers: type: object propertyNames: type: string enum: - nudity - sexual-activity - explicit-sexual-language - sexual-solicitation - physical-attack - violent-threat - violent-preparation - violent-encouragement - injury - death - graphic - self-harm-thoughts - self-harm-preparation - self-harm-act - self-harm-methods - self-harm-encouragement - personal-abuse - targeted-intimidation - harassment-threat - sexual-harassment - harassment-encouragement - identity-abuse - dehumanization - identity-inferiority - discriminatory-exclusion - hate-threat - criminal-demonstration - criminal-preparation - criminal-request - criminal-instructions - criminal-promotion - historical - documentary - fictional - support-prevention additionalProperties: oneOf: - type: object properties: status: type: string const: evaluated score: type: number minimum: 0 maximum: 1 scopeScore: type: number minimum: 0 maximum: 1 likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely required: - status - score - likelihood additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable required: - status - reason additionalProperties: false required: - status - reason additionalProperties: false required: - sexual - violence - self-harm - harassment - hate - criminal-activity additionalProperties: false required: - source - startSeconds - endSeconds - categories additionalProperties: false required: - durationSeconds - sampledFrames - audioTranscribed - segments additionalProperties: false labels: anyOf: - type: array items: type: object properties: description: {} score: type: number topicalityScore: type: - number - "null" likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely knowledgeBaseId: anyOf: - {} - type: "null" required: - description - score - likelihood additionalProperties: false - type: "null" required: - processedAt - categories - flagged - score additionalProperties: false - type: "null" moderationAction: anyOf: - type: string enum: - ignore - alert - hide - purge - type: "null" description: The moderation action applied when this asset crossed a policy threshold status: type: string enum: - uploading - pending - approved - rejected - error description: Processing and moderation status. See [Asset lifecycle](/docs/guides/asset-lifecycle). safetyHold: anyOf: - type: object properties: placedAt: type: number description: When the hold was placed, in milliseconds since the Unix epoch reason: type: string enum: - suspected-illegal-content description: Why the asset is held disposedAt: description: When the held content was disposed of, in milliseconds since the Unix epoch type: - number - "null" required: - placedAt - reason additionalProperties: false - type: "null" description: Internal delivery restriction for suspected illegal content. Held content cannot be viewed, changed, or deleted through normal asset operations. rejectionNote: anyOf: - {} - type: "null" description: Reason the asset was rejected, generated automatically or supplied by a reviewer extractedText: anyOf: - oneOf: - type: object properties: type: type: string const: string content: type: string required: - type - content additionalProperties: false - type: object properties: type: type: string const: document id: {} required: - type - id additionalProperties: false - type: "null" description: Extracted text stored inline for small content or in R2 for larger content processingOptions: description: Processing options supplied when the asset was uploaded anyOf: - type: object properties: keepContentAfterProcessing: description: Whether to keep the asset content after processing default: false type: - boolean - "null" flaggedContentPolicy: anyOf: - type: object properties: action: type: string enum: - ignore - alert - hide - purge required: - action additionalProperties: false - type: "null" description: Override the project moderation action for this asset. Ignore takes no action, alert keeps delivery enabled, hide blocks delivery while retaining content, and purge deletes content. image: description: Options for image assets anyOf: - type: object properties: ocrEnabled: description: Whether to extract image text into a child asset and run normal text moderation. Applies to images, including those extracted from multimedia documents and websites. default: false type: - boolean - "null" additionalProperties: false - type: "null" additionalProperties: false - type: "null" visibility: anyOf: - type: string enum: - public - private - type: "null" description: Visibility level of the asset default: private storageDeletedAt: description: When the stored content was removed, in milliseconds since the Unix epoch. The asset record and report remain. type: - number - "null" required: - id - projectId - createdAt - name - type - status additionalProperties: false description: An asset in the system $defs: __schema0: anyOf: - type: string - type: number - type: boolean - type: "null" - type: array items: $ref: "#/paths/~1assets~1{assetId}/patch/responses/200/content/application~1json/schema/$defs/__schema0" - type: object propertyNames: type: string additionalProperties: $ref: "#/paths/~1assets~1{assetId}/patch/responses/200/content/application~1json/schema/$defs/__schema0" "401": description: |- auth/missing-token: Authentication required. Send your project API key in the X-Api-Key header. auth/invalid-api-key: The API key is invalid, revoked or expired. Create a key under Developer → API Keys. headers: X-Request-Id: *a1 content: application/json: schema: type: object required: - message - code - traceId properties: message: type: string code: type: string enum: - auth/missing-token - auth/invalid-api-key traceId: type: string examples: auth-missing-token: summary: Authentication required. Send your project API key in the X-Api-Key header. value: message: Authentication required. Send your project API key in the X-Api-Key header. code: auth/missing-token traceId: request-trace-id auth-invalid-api-key: summary: The API key is invalid, revoked or expired. Create a key under Developer → API Keys. value: message: The API key is invalid, revoked or expired. Create a key under Developer → API Keys. code: auth/invalid-api-key traceId: request-trace-id "403": description: "auth/project-mismatch: This API key belongs to a different project. Use a key created for the project that owns this resource." headers: X-Request-Id: *a1 content: application/json: schema: type: object required: - message - code - traceId properties: message: type: string code: type: string enum: - auth/project-mismatch traceId: type: string examples: auth-project-mismatch: summary: This API key belongs to a different project. Use a key created for the project that owns this resource. value: message: This API key belongs to a different project. Use a key created for the project that owns this resource. code: auth/project-mismatch traceId: request-trace-id "404": description: "asset/not-found: Asset not found" headers: X-Request-Id: *a1 content: application/json: schema: type: object required: - message - code - traceId properties: message: type: string code: type: string enum: - asset/not-found traceId: type: string examples: asset-not-found: summary: Asset not found value: message: Asset not found code: asset/not-found traceId: request-trace-id "409": description: "asset/duplicate-external-id: An asset with this externalId already exists in the project." headers: X-Request-Id: *a1 content: application/json: schema: type: object required: - message - code - traceId properties: message: type: string code: type: string enum: - asset/duplicate-external-id traceId: type: string examples: asset-duplicate-external-id: summary: An asset with this externalId already exists in the project. value: message: An asset with this externalId already exists in the project. code: asset/duplicate-external-id traceId: request-trace-id "500": description: "asset/update-failed: Failed to update asset" headers: X-Request-Id: *a1 content: application/json: schema: type: object required: - message - code - traceId properties: message: type: string code: type: string enum: - asset/update-failed traceId: type: string examples: asset-update-failed: summary: Failed to update asset value: message: Failed to update asset code: asset/update-failed traceId: request-trace-id parameters: - name: assetId in: path required: true description: UUID of the asset to update schema: type: string format: uuid pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$ description: UUID of the asset to update example: 987fcdeb-51a2-43d7-b890-123456789abc requestBody: required: true content: application/json: schema: type: object properties: name: type: string description: Name of the asset description: description: Optional description of the asset type: - string - "null" externalId: description: External identifier for the asset type: - string - "null" externalUrl: anyOf: - type: string format: uri - type: "null" description: External URL associated with the asset metadata: anyOf: - type: array items: type: object properties: id: type: string description: Identifier for the metadata item value: $ref: "#/paths/~1assets~1{assetId}/patch/requestBody/content/application~1json/schema/$defs/__schema0" description: Value of the metadata item required: - id - value description: A metadata item with an ID and value - type: "null" description: List of custom metadata items for the asset tags: anyOf: - type: array items: type: string - type: "null" description: Array of tags for the asset visibility: anyOf: - type: string enum: - public - private - type: "null" description: Visibility level of the asset default: private $defs: __schema0: anyOf: - type: string - type: number - type: boolean - type: "null" - type: array items: $ref: "#/paths/~1assets~1{assetId}/patch/requestBody/content/application~1json/schema/$defs/__schema0" - type: object propertyNames: type: string additionalProperties: $ref: "#/paths/~1assets~1{assetId}/patch/requestBody/content/application~1json/schema/$defs/__schema0" example: name: Updated asset name visibility: private delete: operationId: delete-asset summary: Delete Asset description: Delete an asset, its child assets and their stored content from a project security: - ApiKeyAuth: [] responses: "200": description: Successful response headers: X-Request-Id: *a1 content: application/json: schema: type: object properties: {} additionalProperties: false "401": description: |- auth/missing-token: Authentication required. Send your project API key in the X-Api-Key header. auth/invalid-api-key: The API key is invalid, revoked or expired. Create a key under Developer → API Keys. headers: X-Request-Id: *a1 content: application/json: schema: type: object required: - message - code - traceId properties: message: type: string code: type: string enum: - auth/missing-token - auth/invalid-api-key traceId: type: string examples: auth-missing-token: summary: Authentication required. Send your project API key in the X-Api-Key header. value: message: Authentication required. Send your project API key in the X-Api-Key header. code: auth/missing-token traceId: request-trace-id auth-invalid-api-key: summary: The API key is invalid, revoked or expired. Create a key under Developer → API Keys. value: message: The API key is invalid, revoked or expired. Create a key under Developer → API Keys. code: auth/invalid-api-key traceId: request-trace-id "403": description: "auth/project-mismatch: This API key belongs to a different project. Use a key created for the project that owns this resource." headers: X-Request-Id: *a1 content: application/json: schema: type: object required: - message - code - traceId properties: message: type: string code: type: string enum: - auth/project-mismatch traceId: type: string examples: auth-project-mismatch: summary: This API key belongs to a different project. Use a key created for the project that owns this resource. value: message: This API key belongs to a different project. Use a key created for the project that owns this resource. code: auth/project-mismatch traceId: request-trace-id "404": description: "asset/not-found: Asset not found" headers: X-Request-Id: *a1 content: application/json: schema: type: object required: - message - code - traceId properties: message: type: string code: type: string enum: - asset/not-found traceId: type: string examples: asset-not-found: summary: Asset not found value: message: Asset not found code: asset/not-found traceId: request-trace-id parameters: - name: assetId in: path required: true description: UUID of the asset to delete schema: type: string format: uuid pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$ description: UUID of the asset to delete example: 987fcdeb-51a2-43d7-b890-123456789abc /assets/{assetId}/children: get: operationId: get-asset-children summary: Get Asset Children description: Get child assets of a parent asset security: - ApiKeyAuth: [] responses: "200": description: Successful response headers: X-Request-Id: *a1 content: application/json: schema: type: object properties: pageIndex: default: "0" type: number minimum: 0 description: The zero-based page index pageSize: type: number minimum: 1 maximum: 100 description: Number of items per page (1-100) ordering: type: array items: type: object properties: field: type: string description: The field name to order by direction: type: string enum: - ASC - DESC description: The sort direction default: ASC required: - field - direction additionalProperties: false description: Array of field ordering specifications items: type: array items: type: object properties: id: type: string format: uuid pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-4[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$ description: Unique asset ID projectId: type: string format: uuid pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-4[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$ description: ID of the project that owns the asset sizeInBytes: description: Size of the uploaded content in bytes type: - number - "null" userId: description: ID of the user whose account created the asset anyOf: - {} - type: "null" parentId: description: ID of the parent asset for child assets CalmLens extracts during processing, such as images in a document or OCR text. `null` for uploaded assets. anyOf: - type: string format: uuid pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-4[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$ - type: "null" folderId: anyOf: - type: string format: uuid pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-4[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$ - type: "null" description: Folder containing the asset createdAt: type: integer minimum: -9007199254740991 maximum: 9007199254740991 description: When the asset was created, in milliseconds since the Unix epoch updatedAt: description: When the asset was last updated, in milliseconds since the Unix epoch type: integer minimum: -9007199254740991 maximum: 9007199254740991 checksums: description: Digests of the uploaded content anyOf: - type: object properties: md5: description: MD5 digest of the uploaded content type: - string - "null" sha1: description: SHA-1 digest of the uploaded content type: - string - "null" sha256: description: SHA-256 digest of the uploaded content type: - string - "null" sha384: description: SHA-384 digest of the uploaded content type: - string - "null" sha512: description: SHA-512 digest of the uploaded content type: - string - "null" additionalProperties: false - type: "null" imageData: description: Image properties, for image assets anyOf: - type: object properties: perceptualHash: description: Perceptual hash used to match visually similar images type: - string - "null" width: description: Image width in pixels anyOf: - type: integer exclusiveMinimum: 0 maximum: 9007199254740991 - type: "null" height: description: Image height in pixels anyOf: - type: integer exclusiveMinimum: 0 maximum: 9007199254740991 - type: "null" additionalProperties: false - type: "null" documentData: description: Document properties, for documents anyOf: - type: object properties: {} additionalProperties: false - type: "null" name: description: Name of the asset fileFormat: description: MIME type of the stored content anyOf: - {} - type: "null" fileExtension: description: File extension of the stored content anyOf: - {} - type: "null" description: anyOf: - {} - type: "null" description: Optional description of the asset externalId: anyOf: - {} - type: "null" description: External identifier for the asset externalUrl: anyOf: - type: string format: uri - type: "null" description: External URL associated with the asset previewImage: description: Browser-friendly preview generated for images, documents and websites anyOf: - type: object properties: id: anyOf: - {} - type: "null" description: Identifier of the stored preview image fileFormat: anyOf: - {} - type: "null" description: File format of the preview, such as `webp` thumbhash: anyOf: - {} - type: "null" description: ThumbHash placeholder you can render while the preview loads averageColor: anyOf: - {} - type: "null" description: Average color of the preview width: anyOf: - type: integer exclusiveMinimum: 0 maximum: 9007199254740991 - type: "null" description: Preview width in pixels height: anyOf: - type: integer exclusiveMinimum: 0 maximum: 9007199254740991 - type: "null" description: Preview height in pixels required: - id - fileFormat - thumbhash - averageColor - width - height additionalProperties: false - type: "null" storageId: description: Internal storage key of the retained content; `null` when nothing is stored anyOf: - {} - type: "null" uploadPartsReceived: description: Number of parts received so far for a multipart upload anyOf: - type: integer minimum: -9007199254740991 maximum: 9007199254740991 - type: "null" type: type: string enum: - image - video - audio - plaintext-document - multimedia-document - website - file description: Asset type, detected from the content's MIME type metadata: anyOf: - type: array items: type: object properties: id: description: Identifier for the metadata item value: $ref: "#/paths/~1assets~1{assetId}~1children/get/responses/200/content/application~1json/schema/$defs/__schema0" description: Value of the metadata item required: - id - value additionalProperties: false description: A metadata item with an ID and value - type: "null" description: List of custom metadata items for the asset tags: anyOf: - type: array items: {} - type: "null" description: Array of tags for the asset report: description: Moderation report, set once classification finishes. See [Report format](/docs/guides/moderation-reports). anyOf: - type: object properties: processedAt: type: number categories: type: object properties: sexual: oneOf: - type: object properties: status: type: string const: evaluated likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely score: type: number minimum: 0 maximum: 1 qualifiers: type: object propertyNames: type: string enum: - nudity - sexual-activity - explicit-sexual-language - sexual-solicitation - physical-attack - violent-threat - violent-preparation - violent-encouragement - injury - death - graphic - self-harm-thoughts - self-harm-preparation - self-harm-act - self-harm-methods - self-harm-encouragement - personal-abuse - targeted-intimidation - harassment-threat - sexual-harassment - harassment-encouragement - identity-abuse - dehumanization - identity-inferiority - discriminatory-exclusion - hate-threat - criminal-demonstration - criminal-preparation - criminal-request - criminal-instructions - criminal-promotion - historical - documentary - fictional - support-prevention additionalProperties: oneOf: - type: object properties: status: type: string const: evaluated score: type: number minimum: 0 maximum: 1 scopeScore: type: number minimum: 0 maximum: 1 likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely required: - status - score - likelihood additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable required: - status - reason additionalProperties: false required: - status - likelihood - score additionalProperties: false - type: object properties: status: type: string const: partial likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely score: type: number minimum: 0 maximum: 1 qualifiers: type: object propertyNames: type: string enum: - nudity - sexual-activity - explicit-sexual-language - sexual-solicitation - physical-attack - violent-threat - violent-preparation - violent-encouragement - injury - death - graphic - self-harm-thoughts - self-harm-preparation - self-harm-act - self-harm-methods - self-harm-encouragement - personal-abuse - targeted-intimidation - harassment-threat - sexual-harassment - harassment-encouragement - identity-abuse - dehumanization - identity-inferiority - discriminatory-exclusion - hate-threat - criminal-demonstration - criminal-preparation - criminal-request - criminal-instructions - criminal-promotion - historical - documentary - fictional - support-prevention additionalProperties: oneOf: - type: object properties: status: type: string const: evaluated score: type: number minimum: 0 maximum: 1 scopeScore: type: number minimum: 0 maximum: 1 likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely required: - status - score - likelihood additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable required: - status - reason additionalProperties: false required: - status - likelihood - score additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable qualifiers: type: object propertyNames: type: string enum: - nudity - sexual-activity - explicit-sexual-language - sexual-solicitation - physical-attack - violent-threat - violent-preparation - violent-encouragement - injury - death - graphic - self-harm-thoughts - self-harm-preparation - self-harm-act - self-harm-methods - self-harm-encouragement - personal-abuse - targeted-intimidation - harassment-threat - sexual-harassment - harassment-encouragement - identity-abuse - dehumanization - identity-inferiority - discriminatory-exclusion - hate-threat - criminal-demonstration - criminal-preparation - criminal-request - criminal-instructions - criminal-promotion - historical - documentary - fictional - support-prevention additionalProperties: oneOf: - type: object properties: status: type: string const: evaluated score: type: number minimum: 0 maximum: 1 scopeScore: type: number minimum: 0 maximum: 1 likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely required: - status - score - likelihood additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable required: - status - reason additionalProperties: false required: - status - reason additionalProperties: false violence: oneOf: - type: object properties: status: type: string const: evaluated likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely score: type: number minimum: 0 maximum: 1 qualifiers: type: object propertyNames: type: string enum: - nudity - sexual-activity - explicit-sexual-language - sexual-solicitation - physical-attack - violent-threat - violent-preparation - violent-encouragement - injury - death - graphic - self-harm-thoughts - self-harm-preparation - self-harm-act - self-harm-methods - self-harm-encouragement - personal-abuse - targeted-intimidation - harassment-threat - sexual-harassment - harassment-encouragement - identity-abuse - dehumanization - identity-inferiority - discriminatory-exclusion - hate-threat - criminal-demonstration - criminal-preparation - criminal-request - criminal-instructions - criminal-promotion - historical - documentary - fictional - support-prevention additionalProperties: oneOf: - type: object properties: status: type: string const: evaluated score: type: number minimum: 0 maximum: 1 scopeScore: type: number minimum: 0 maximum: 1 likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely required: - status - score - likelihood additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable required: - status - reason additionalProperties: false required: - status - likelihood - score additionalProperties: false - type: object properties: status: type: string const: partial likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely score: type: number minimum: 0 maximum: 1 qualifiers: type: object propertyNames: type: string enum: - nudity - sexual-activity - explicit-sexual-language - sexual-solicitation - physical-attack - violent-threat - violent-preparation - violent-encouragement - injury - death - graphic - self-harm-thoughts - self-harm-preparation - self-harm-act - self-harm-methods - self-harm-encouragement - personal-abuse - targeted-intimidation - harassment-threat - sexual-harassment - harassment-encouragement - identity-abuse - dehumanization - identity-inferiority - discriminatory-exclusion - hate-threat - criminal-demonstration - criminal-preparation - criminal-request - criminal-instructions - criminal-promotion - historical - documentary - fictional - support-prevention additionalProperties: oneOf: - type: object properties: status: type: string const: evaluated score: type: number minimum: 0 maximum: 1 scopeScore: type: number minimum: 0 maximum: 1 likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely required: - status - score - likelihood additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable required: - status - reason additionalProperties: false required: - status - likelihood - score additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable qualifiers: type: object propertyNames: type: string enum: - nudity - sexual-activity - explicit-sexual-language - sexual-solicitation - physical-attack - violent-threat - violent-preparation - violent-encouragement - injury - death - graphic - self-harm-thoughts - self-harm-preparation - self-harm-act - self-harm-methods - self-harm-encouragement - personal-abuse - targeted-intimidation - harassment-threat - sexual-harassment - harassment-encouragement - identity-abuse - dehumanization - identity-inferiority - discriminatory-exclusion - hate-threat - criminal-demonstration - criminal-preparation - criminal-request - criminal-instructions - criminal-promotion - historical - documentary - fictional - support-prevention additionalProperties: oneOf: - type: object properties: status: type: string const: evaluated score: type: number minimum: 0 maximum: 1 scopeScore: type: number minimum: 0 maximum: 1 likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely required: - status - score - likelihood additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable required: - status - reason additionalProperties: false required: - status - reason additionalProperties: false self-harm: oneOf: - type: object properties: status: type: string const: evaluated likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely score: type: number minimum: 0 maximum: 1 qualifiers: type: object propertyNames: type: string enum: - nudity - sexual-activity - explicit-sexual-language - sexual-solicitation - physical-attack - violent-threat - violent-preparation - violent-encouragement - injury - death - graphic - self-harm-thoughts - self-harm-preparation - self-harm-act - self-harm-methods - self-harm-encouragement - personal-abuse - targeted-intimidation - harassment-threat - sexual-harassment - harassment-encouragement - identity-abuse - dehumanization - identity-inferiority - discriminatory-exclusion - hate-threat - criminal-demonstration - criminal-preparation - criminal-request - criminal-instructions - criminal-promotion - historical - documentary - fictional - support-prevention additionalProperties: oneOf: - type: object properties: status: type: string const: evaluated score: type: number minimum: 0 maximum: 1 scopeScore: type: number minimum: 0 maximum: 1 likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely required: - status - score - likelihood additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable required: - status - reason additionalProperties: false required: - status - likelihood - score additionalProperties: false - type: object properties: status: type: string const: partial likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely score: type: number minimum: 0 maximum: 1 qualifiers: type: object propertyNames: type: string enum: - nudity - sexual-activity - explicit-sexual-language - sexual-solicitation - physical-attack - violent-threat - violent-preparation - violent-encouragement - injury - death - graphic - self-harm-thoughts - self-harm-preparation - self-harm-act - self-harm-methods - self-harm-encouragement - personal-abuse - targeted-intimidation - harassment-threat - sexual-harassment - harassment-encouragement - identity-abuse - dehumanization - identity-inferiority - discriminatory-exclusion - hate-threat - criminal-demonstration - criminal-preparation - criminal-request - criminal-instructions - criminal-promotion - historical - documentary - fictional - support-prevention additionalProperties: oneOf: - type: object properties: status: type: string const: evaluated score: type: number minimum: 0 maximum: 1 scopeScore: type: number minimum: 0 maximum: 1 likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely required: - status - score - likelihood additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable required: - status - reason additionalProperties: false required: - status - likelihood - score additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable qualifiers: type: object propertyNames: type: string enum: - nudity - sexual-activity - explicit-sexual-language - sexual-solicitation - physical-attack - violent-threat - violent-preparation - violent-encouragement - injury - death - graphic - self-harm-thoughts - self-harm-preparation - self-harm-act - self-harm-methods - self-harm-encouragement - personal-abuse - targeted-intimidation - harassment-threat - sexual-harassment - harassment-encouragement - identity-abuse - dehumanization - identity-inferiority - discriminatory-exclusion - hate-threat - criminal-demonstration - criminal-preparation - criminal-request - criminal-instructions - criminal-promotion - historical - documentary - fictional - support-prevention additionalProperties: oneOf: - type: object properties: status: type: string const: evaluated score: type: number minimum: 0 maximum: 1 scopeScore: type: number minimum: 0 maximum: 1 likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely required: - status - score - likelihood additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable required: - status - reason additionalProperties: false required: - status - reason additionalProperties: false harassment: oneOf: - type: object properties: status: type: string const: evaluated likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely score: type: number minimum: 0 maximum: 1 qualifiers: type: object propertyNames: type: string enum: - nudity - sexual-activity - explicit-sexual-language - sexual-solicitation - physical-attack - violent-threat - violent-preparation - violent-encouragement - injury - death - graphic - self-harm-thoughts - self-harm-preparation - self-harm-act - self-harm-methods - self-harm-encouragement - personal-abuse - targeted-intimidation - harassment-threat - sexual-harassment - harassment-encouragement - identity-abuse - dehumanization - identity-inferiority - discriminatory-exclusion - hate-threat - criminal-demonstration - criminal-preparation - criminal-request - criminal-instructions - criminal-promotion - historical - documentary - fictional - support-prevention additionalProperties: oneOf: - type: object properties: status: type: string const: evaluated score: type: number minimum: 0 maximum: 1 scopeScore: type: number minimum: 0 maximum: 1 likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely required: - status - score - likelihood additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable required: - status - reason additionalProperties: false required: - status - likelihood - score additionalProperties: false - type: object properties: status: type: string const: partial likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely score: type: number minimum: 0 maximum: 1 qualifiers: type: object propertyNames: type: string enum: - nudity - sexual-activity - explicit-sexual-language - sexual-solicitation - physical-attack - violent-threat - violent-preparation - violent-encouragement - injury - death - graphic - self-harm-thoughts - self-harm-preparation - self-harm-act - self-harm-methods - self-harm-encouragement - personal-abuse - targeted-intimidation - harassment-threat - sexual-harassment - harassment-encouragement - identity-abuse - dehumanization - identity-inferiority - discriminatory-exclusion - hate-threat - criminal-demonstration - criminal-preparation - criminal-request - criminal-instructions - criminal-promotion - historical - documentary - fictional - support-prevention additionalProperties: oneOf: - type: object properties: status: type: string const: evaluated score: type: number minimum: 0 maximum: 1 scopeScore: type: number minimum: 0 maximum: 1 likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely required: - status - score - likelihood additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable required: - status - reason additionalProperties: false required: - status - likelihood - score additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable qualifiers: type: object propertyNames: type: string enum: - nudity - sexual-activity - explicit-sexual-language - sexual-solicitation - physical-attack - violent-threat - violent-preparation - violent-encouragement - injury - death - graphic - self-harm-thoughts - self-harm-preparation - self-harm-act - self-harm-methods - self-harm-encouragement - personal-abuse - targeted-intimidation - harassment-threat - sexual-harassment - harassment-encouragement - identity-abuse - dehumanization - identity-inferiority - discriminatory-exclusion - hate-threat - criminal-demonstration - criminal-preparation - criminal-request - criminal-instructions - criminal-promotion - historical - documentary - fictional - support-prevention additionalProperties: oneOf: - type: object properties: status: type: string const: evaluated score: type: number minimum: 0 maximum: 1 scopeScore: type: number minimum: 0 maximum: 1 likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely required: - status - score - likelihood additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable required: - status - reason additionalProperties: false required: - status - reason additionalProperties: false hate: oneOf: - type: object properties: status: type: string const: evaluated likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely score: type: number minimum: 0 maximum: 1 qualifiers: type: object propertyNames: type: string enum: - nudity - sexual-activity - explicit-sexual-language - sexual-solicitation - physical-attack - violent-threat - violent-preparation - violent-encouragement - injury - death - graphic - self-harm-thoughts - self-harm-preparation - self-harm-act - self-harm-methods - self-harm-encouragement - personal-abuse - targeted-intimidation - harassment-threat - sexual-harassment - harassment-encouragement - identity-abuse - dehumanization - identity-inferiority - discriminatory-exclusion - hate-threat - criminal-demonstration - criminal-preparation - criminal-request - criminal-instructions - criminal-promotion - historical - documentary - fictional - support-prevention additionalProperties: oneOf: - type: object properties: status: type: string const: evaluated score: type: number minimum: 0 maximum: 1 scopeScore: type: number minimum: 0 maximum: 1 likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely required: - status - score - likelihood additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable required: - status - reason additionalProperties: false required: - status - likelihood - score additionalProperties: false - type: object properties: status: type: string const: partial likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely score: type: number minimum: 0 maximum: 1 qualifiers: type: object propertyNames: type: string enum: - nudity - sexual-activity - explicit-sexual-language - sexual-solicitation - physical-attack - violent-threat - violent-preparation - violent-encouragement - injury - death - graphic - self-harm-thoughts - self-harm-preparation - self-harm-act - self-harm-methods - self-harm-encouragement - personal-abuse - targeted-intimidation - harassment-threat - sexual-harassment - harassment-encouragement - identity-abuse - dehumanization - identity-inferiority - discriminatory-exclusion - hate-threat - criminal-demonstration - criminal-preparation - criminal-request - criminal-instructions - criminal-promotion - historical - documentary - fictional - support-prevention additionalProperties: oneOf: - type: object properties: status: type: string const: evaluated score: type: number minimum: 0 maximum: 1 scopeScore: type: number minimum: 0 maximum: 1 likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely required: - status - score - likelihood additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable required: - status - reason additionalProperties: false required: - status - likelihood - score additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable qualifiers: type: object propertyNames: type: string enum: - nudity - sexual-activity - explicit-sexual-language - sexual-solicitation - physical-attack - violent-threat - violent-preparation - violent-encouragement - injury - death - graphic - self-harm-thoughts - self-harm-preparation - self-harm-act - self-harm-methods - self-harm-encouragement - personal-abuse - targeted-intimidation - harassment-threat - sexual-harassment - harassment-encouragement - identity-abuse - dehumanization - identity-inferiority - discriminatory-exclusion - hate-threat - criminal-demonstration - criminal-preparation - criminal-request - criminal-instructions - criminal-promotion - historical - documentary - fictional - support-prevention additionalProperties: oneOf: - type: object properties: status: type: string const: evaluated score: type: number minimum: 0 maximum: 1 scopeScore: type: number minimum: 0 maximum: 1 likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely required: - status - score - likelihood additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable required: - status - reason additionalProperties: false required: - status - reason additionalProperties: false criminal-activity: oneOf: - type: object properties: status: type: string const: evaluated likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely score: type: number minimum: 0 maximum: 1 qualifiers: type: object propertyNames: type: string enum: - nudity - sexual-activity - explicit-sexual-language - sexual-solicitation - physical-attack - violent-threat - violent-preparation - violent-encouragement - injury - death - graphic - self-harm-thoughts - self-harm-preparation - self-harm-act - self-harm-methods - self-harm-encouragement - personal-abuse - targeted-intimidation - harassment-threat - sexual-harassment - harassment-encouragement - identity-abuse - dehumanization - identity-inferiority - discriminatory-exclusion - hate-threat - criminal-demonstration - criminal-preparation - criminal-request - criminal-instructions - criminal-promotion - historical - documentary - fictional - support-prevention additionalProperties: oneOf: - type: object properties: status: type: string const: evaluated score: type: number minimum: 0 maximum: 1 scopeScore: type: number minimum: 0 maximum: 1 likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely required: - status - score - likelihood additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable required: - status - reason additionalProperties: false required: - status - likelihood - score additionalProperties: false - type: object properties: status: type: string const: partial likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely score: type: number minimum: 0 maximum: 1 qualifiers: type: object propertyNames: type: string enum: - nudity - sexual-activity - explicit-sexual-language - sexual-solicitation - physical-attack - violent-threat - violent-preparation - violent-encouragement - injury - death - graphic - self-harm-thoughts - self-harm-preparation - self-harm-act - self-harm-methods - self-harm-encouragement - personal-abuse - targeted-intimidation - harassment-threat - sexual-harassment - harassment-encouragement - identity-abuse - dehumanization - identity-inferiority - discriminatory-exclusion - hate-threat - criminal-demonstration - criminal-preparation - criminal-request - criminal-instructions - criminal-promotion - historical - documentary - fictional - support-prevention additionalProperties: oneOf: - type: object properties: status: type: string const: evaluated score: type: number minimum: 0 maximum: 1 scopeScore: type: number minimum: 0 maximum: 1 likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely required: - status - score - likelihood additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable required: - status - reason additionalProperties: false required: - status - likelihood - score additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable qualifiers: type: object propertyNames: type: string enum: - nudity - sexual-activity - explicit-sexual-language - sexual-solicitation - physical-attack - violent-threat - violent-preparation - violent-encouragement - injury - death - graphic - self-harm-thoughts - self-harm-preparation - self-harm-act - self-harm-methods - self-harm-encouragement - personal-abuse - targeted-intimidation - harassment-threat - sexual-harassment - harassment-encouragement - identity-abuse - dehumanization - identity-inferiority - discriminatory-exclusion - hate-threat - criminal-demonstration - criminal-preparation - criminal-request - criminal-instructions - criminal-promotion - historical - documentary - fictional - support-prevention additionalProperties: oneOf: - type: object properties: status: type: string const: evaluated score: type: number minimum: 0 maximum: 1 scopeScore: type: number minimum: 0 maximum: 1 likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely required: - status - score - likelihood additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable required: - status - reason additionalProperties: false required: - status - reason additionalProperties: false required: - sexual - violence - self-harm - harassment - hate - criminal-activity additionalProperties: false flagged: type: boolean score: type: number notes: anyOf: - {} - type: "null" media: type: object properties: durationSeconds: type: number exclusiveMinimum: 0 frameIntervalSeconds: type: number exclusiveMinimum: 0 sampledFrames: type: integer minimum: 0 maximum: 9007199254740991 audioTranscribed: type: boolean segments: type: array items: type: object properties: source: type: string enum: - frame - speech - frame-text - clip startSeconds: type: number minimum: 0 endSeconds: type: number minimum: 0 categories: type: object properties: sexual: oneOf: - type: object properties: status: type: string const: evaluated likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely score: type: number minimum: 0 maximum: 1 qualifiers: type: object propertyNames: type: string enum: - nudity - sexual-activity - explicit-sexual-language - sexual-solicitation - physical-attack - violent-threat - violent-preparation - violent-encouragement - injury - death - graphic - self-harm-thoughts - self-harm-preparation - self-harm-act - self-harm-methods - self-harm-encouragement - personal-abuse - targeted-intimidation - harassment-threat - sexual-harassment - harassment-encouragement - identity-abuse - dehumanization - identity-inferiority - discriminatory-exclusion - hate-threat - criminal-demonstration - criminal-preparation - criminal-request - criminal-instructions - criminal-promotion - historical - documentary - fictional - support-prevention additionalProperties: oneOf: - type: object properties: status: type: string const: evaluated score: type: number minimum: 0 maximum: 1 scopeScore: type: number minimum: 0 maximum: 1 likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely required: - status - score - likelihood additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable required: - status - reason additionalProperties: false required: - status - likelihood - score additionalProperties: false - type: object properties: status: type: string const: partial likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely score: type: number minimum: 0 maximum: 1 qualifiers: type: object propertyNames: type: string enum: - nudity - sexual-activity - explicit-sexual-language - sexual-solicitation - physical-attack - violent-threat - violent-preparation - violent-encouragement - injury - death - graphic - self-harm-thoughts - self-harm-preparation - self-harm-act - self-harm-methods - self-harm-encouragement - personal-abuse - targeted-intimidation - harassment-threat - sexual-harassment - harassment-encouragement - identity-abuse - dehumanization - identity-inferiority - discriminatory-exclusion - hate-threat - criminal-demonstration - criminal-preparation - criminal-request - criminal-instructions - criminal-promotion - historical - documentary - fictional - support-prevention additionalProperties: oneOf: - type: object properties: status: type: string const: evaluated score: type: number minimum: 0 maximum: 1 scopeScore: type: number minimum: 0 maximum: 1 likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely required: - status - score - likelihood additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable required: - status - reason additionalProperties: false required: - status - likelihood - score additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable qualifiers: type: object propertyNames: type: string enum: - nudity - sexual-activity - explicit-sexual-language - sexual-solicitation - physical-attack - violent-threat - violent-preparation - violent-encouragement - injury - death - graphic - self-harm-thoughts - self-harm-preparation - self-harm-act - self-harm-methods - self-harm-encouragement - personal-abuse - targeted-intimidation - harassment-threat - sexual-harassment - harassment-encouragement - identity-abuse - dehumanization - identity-inferiority - discriminatory-exclusion - hate-threat - criminal-demonstration - criminal-preparation - criminal-request - criminal-instructions - criminal-promotion - historical - documentary - fictional - support-prevention additionalProperties: oneOf: - type: object properties: status: type: string const: evaluated score: type: number minimum: 0 maximum: 1 scopeScore: type: number minimum: 0 maximum: 1 likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely required: - status - score - likelihood additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable required: - status - reason additionalProperties: false required: - status - reason additionalProperties: false violence: oneOf: - type: object properties: status: type: string const: evaluated likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely score: type: number minimum: 0 maximum: 1 qualifiers: type: object propertyNames: type: string enum: - nudity - sexual-activity - explicit-sexual-language - sexual-solicitation - physical-attack - violent-threat - violent-preparation - violent-encouragement - injury - death - graphic - self-harm-thoughts - self-harm-preparation - self-harm-act - self-harm-methods - self-harm-encouragement - personal-abuse - targeted-intimidation - harassment-threat - sexual-harassment - harassment-encouragement - identity-abuse - dehumanization - identity-inferiority - discriminatory-exclusion - hate-threat - criminal-demonstration - criminal-preparation - criminal-request - criminal-instructions - criminal-promotion - historical - documentary - fictional - support-prevention additionalProperties: oneOf: - type: object properties: status: type: string const: evaluated score: type: number minimum: 0 maximum: 1 scopeScore: type: number minimum: 0 maximum: 1 likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely required: - status - score - likelihood additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable required: - status - reason additionalProperties: false required: - status - likelihood - score additionalProperties: false - type: object properties: status: type: string const: partial likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely score: type: number minimum: 0 maximum: 1 qualifiers: type: object propertyNames: type: string enum: - nudity - sexual-activity - explicit-sexual-language - sexual-solicitation - physical-attack - violent-threat - violent-preparation - violent-encouragement - injury - death - graphic - self-harm-thoughts - self-harm-preparation - self-harm-act - self-harm-methods - self-harm-encouragement - personal-abuse - targeted-intimidation - harassment-threat - sexual-harassment - harassment-encouragement - identity-abuse - dehumanization - identity-inferiority - discriminatory-exclusion - hate-threat - criminal-demonstration - criminal-preparation - criminal-request - criminal-instructions - criminal-promotion - historical - documentary - fictional - support-prevention additionalProperties: oneOf: - type: object properties: status: type: string const: evaluated score: type: number minimum: 0 maximum: 1 scopeScore: type: number minimum: 0 maximum: 1 likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely required: - status - score - likelihood additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable required: - status - reason additionalProperties: false required: - status - likelihood - score additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable qualifiers: type: object propertyNames: type: string enum: - nudity - sexual-activity - explicit-sexual-language - sexual-solicitation - physical-attack - violent-threat - violent-preparation - violent-encouragement - injury - death - graphic - self-harm-thoughts - self-harm-preparation - self-harm-act - self-harm-methods - self-harm-encouragement - personal-abuse - targeted-intimidation - harassment-threat - sexual-harassment - harassment-encouragement - identity-abuse - dehumanization - identity-inferiority - discriminatory-exclusion - hate-threat - criminal-demonstration - criminal-preparation - criminal-request - criminal-instructions - criminal-promotion - historical - documentary - fictional - support-prevention additionalProperties: oneOf: - type: object properties: status: type: string const: evaluated score: type: number minimum: 0 maximum: 1 scopeScore: type: number minimum: 0 maximum: 1 likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely required: - status - score - likelihood additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable required: - status - reason additionalProperties: false required: - status - reason additionalProperties: false self-harm: oneOf: - type: object properties: status: type: string const: evaluated likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely score: type: number minimum: 0 maximum: 1 qualifiers: type: object propertyNames: type: string enum: - nudity - sexual-activity - explicit-sexual-language - sexual-solicitation - physical-attack - violent-threat - violent-preparation - violent-encouragement - injury - death - graphic - self-harm-thoughts - self-harm-preparation - self-harm-act - self-harm-methods - self-harm-encouragement - personal-abuse - targeted-intimidation - harassment-threat - sexual-harassment - harassment-encouragement - identity-abuse - dehumanization - identity-inferiority - discriminatory-exclusion - hate-threat - criminal-demonstration - criminal-preparation - criminal-request - criminal-instructions - criminal-promotion - historical - documentary - fictional - support-prevention additionalProperties: oneOf: - type: object properties: status: type: string const: evaluated score: type: number minimum: 0 maximum: 1 scopeScore: type: number minimum: 0 maximum: 1 likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely required: - status - score - likelihood additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable required: - status - reason additionalProperties: false required: - status - likelihood - score additionalProperties: false - type: object properties: status: type: string const: partial likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely score: type: number minimum: 0 maximum: 1 qualifiers: type: object propertyNames: type: string enum: - nudity - sexual-activity - explicit-sexual-language - sexual-solicitation - physical-attack - violent-threat - violent-preparation - violent-encouragement - injury - death - graphic - self-harm-thoughts - self-harm-preparation - self-harm-act - self-harm-methods - self-harm-encouragement - personal-abuse - targeted-intimidation - harassment-threat - sexual-harassment - harassment-encouragement - identity-abuse - dehumanization - identity-inferiority - discriminatory-exclusion - hate-threat - criminal-demonstration - criminal-preparation - criminal-request - criminal-instructions - criminal-promotion - historical - documentary - fictional - support-prevention additionalProperties: oneOf: - type: object properties: status: type: string const: evaluated score: type: number minimum: 0 maximum: 1 scopeScore: type: number minimum: 0 maximum: 1 likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely required: - status - score - likelihood additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable required: - status - reason additionalProperties: false required: - status - likelihood - score additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable qualifiers: type: object propertyNames: type: string enum: - nudity - sexual-activity - explicit-sexual-language - sexual-solicitation - physical-attack - violent-threat - violent-preparation - violent-encouragement - injury - death - graphic - self-harm-thoughts - self-harm-preparation - self-harm-act - self-harm-methods - self-harm-encouragement - personal-abuse - targeted-intimidation - harassment-threat - sexual-harassment - harassment-encouragement - identity-abuse - dehumanization - identity-inferiority - discriminatory-exclusion - hate-threat - criminal-demonstration - criminal-preparation - criminal-request - criminal-instructions - criminal-promotion - historical - documentary - fictional - support-prevention additionalProperties: oneOf: - type: object properties: status: type: string const: evaluated score: type: number minimum: 0 maximum: 1 scopeScore: type: number minimum: 0 maximum: 1 likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely required: - status - score - likelihood additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable required: - status - reason additionalProperties: false required: - status - reason additionalProperties: false harassment: oneOf: - type: object properties: status: type: string const: evaluated likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely score: type: number minimum: 0 maximum: 1 qualifiers: type: object propertyNames: type: string enum: - nudity - sexual-activity - explicit-sexual-language - sexual-solicitation - physical-attack - violent-threat - violent-preparation - violent-encouragement - injury - death - graphic - self-harm-thoughts - self-harm-preparation - self-harm-act - self-harm-methods - self-harm-encouragement - personal-abuse - targeted-intimidation - harassment-threat - sexual-harassment - harassment-encouragement - identity-abuse - dehumanization - identity-inferiority - discriminatory-exclusion - hate-threat - criminal-demonstration - criminal-preparation - criminal-request - criminal-instructions - criminal-promotion - historical - documentary - fictional - support-prevention additionalProperties: oneOf: - type: object properties: status: type: string const: evaluated score: type: number minimum: 0 maximum: 1 scopeScore: type: number minimum: 0 maximum: 1 likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely required: - status - score - likelihood additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable required: - status - reason additionalProperties: false required: - status - likelihood - score additionalProperties: false - type: object properties: status: type: string const: partial likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely score: type: number minimum: 0 maximum: 1 qualifiers: type: object propertyNames: type: string enum: - nudity - sexual-activity - explicit-sexual-language - sexual-solicitation - physical-attack - violent-threat - violent-preparation - violent-encouragement - injury - death - graphic - self-harm-thoughts - self-harm-preparation - self-harm-act - self-harm-methods - self-harm-encouragement - personal-abuse - targeted-intimidation - harassment-threat - sexual-harassment - harassment-encouragement - identity-abuse - dehumanization - identity-inferiority - discriminatory-exclusion - hate-threat - criminal-demonstration - criminal-preparation - criminal-request - criminal-instructions - criminal-promotion - historical - documentary - fictional - support-prevention additionalProperties: oneOf: - type: object properties: status: type: string const: evaluated score: type: number minimum: 0 maximum: 1 scopeScore: type: number minimum: 0 maximum: 1 likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely required: - status - score - likelihood additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable required: - status - reason additionalProperties: false required: - status - likelihood - score additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable qualifiers: type: object propertyNames: type: string enum: - nudity - sexual-activity - explicit-sexual-language - sexual-solicitation - physical-attack - violent-threat - violent-preparation - violent-encouragement - injury - death - graphic - self-harm-thoughts - self-harm-preparation - self-harm-act - self-harm-methods - self-harm-encouragement - personal-abuse - targeted-intimidation - harassment-threat - sexual-harassment - harassment-encouragement - identity-abuse - dehumanization - identity-inferiority - discriminatory-exclusion - hate-threat - criminal-demonstration - criminal-preparation - criminal-request - criminal-instructions - criminal-promotion - historical - documentary - fictional - support-prevention additionalProperties: oneOf: - type: object properties: status: type: string const: evaluated score: type: number minimum: 0 maximum: 1 scopeScore: type: number minimum: 0 maximum: 1 likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely required: - status - score - likelihood additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable required: - status - reason additionalProperties: false required: - status - reason additionalProperties: false hate: oneOf: - type: object properties: status: type: string const: evaluated likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely score: type: number minimum: 0 maximum: 1 qualifiers: type: object propertyNames: type: string enum: - nudity - sexual-activity - explicit-sexual-language - sexual-solicitation - physical-attack - violent-threat - violent-preparation - violent-encouragement - injury - death - graphic - self-harm-thoughts - self-harm-preparation - self-harm-act - self-harm-methods - self-harm-encouragement - personal-abuse - targeted-intimidation - harassment-threat - sexual-harassment - harassment-encouragement - identity-abuse - dehumanization - identity-inferiority - discriminatory-exclusion - hate-threat - criminal-demonstration - criminal-preparation - criminal-request - criminal-instructions - criminal-promotion - historical - documentary - fictional - support-prevention additionalProperties: oneOf: - type: object properties: status: type: string const: evaluated score: type: number minimum: 0 maximum: 1 scopeScore: type: number minimum: 0 maximum: 1 likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely required: - status - score - likelihood additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable required: - status - reason additionalProperties: false required: - status - likelihood - score additionalProperties: false - type: object properties: status: type: string const: partial likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely score: type: number minimum: 0 maximum: 1 qualifiers: type: object propertyNames: type: string enum: - nudity - sexual-activity - explicit-sexual-language - sexual-solicitation - physical-attack - violent-threat - violent-preparation - violent-encouragement - injury - death - graphic - self-harm-thoughts - self-harm-preparation - self-harm-act - self-harm-methods - self-harm-encouragement - personal-abuse - targeted-intimidation - harassment-threat - sexual-harassment - harassment-encouragement - identity-abuse - dehumanization - identity-inferiority - discriminatory-exclusion - hate-threat - criminal-demonstration - criminal-preparation - criminal-request - criminal-instructions - criminal-promotion - historical - documentary - fictional - support-prevention additionalProperties: oneOf: - type: object properties: status: type: string const: evaluated score: type: number minimum: 0 maximum: 1 scopeScore: type: number minimum: 0 maximum: 1 likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely required: - status - score - likelihood additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable required: - status - reason additionalProperties: false required: - status - likelihood - score additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable qualifiers: type: object propertyNames: type: string enum: - nudity - sexual-activity - explicit-sexual-language - sexual-solicitation - physical-attack - violent-threat - violent-preparation - violent-encouragement - injury - death - graphic - self-harm-thoughts - self-harm-preparation - self-harm-act - self-harm-methods - self-harm-encouragement - personal-abuse - targeted-intimidation - harassment-threat - sexual-harassment - harassment-encouragement - identity-abuse - dehumanization - identity-inferiority - discriminatory-exclusion - hate-threat - criminal-demonstration - criminal-preparation - criminal-request - criminal-instructions - criminal-promotion - historical - documentary - fictional - support-prevention additionalProperties: oneOf: - type: object properties: status: type: string const: evaluated score: type: number minimum: 0 maximum: 1 scopeScore: type: number minimum: 0 maximum: 1 likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely required: - status - score - likelihood additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable required: - status - reason additionalProperties: false required: - status - reason additionalProperties: false criminal-activity: oneOf: - type: object properties: status: type: string const: evaluated likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely score: type: number minimum: 0 maximum: 1 qualifiers: type: object propertyNames: type: string enum: - nudity - sexual-activity - explicit-sexual-language - sexual-solicitation - physical-attack - violent-threat - violent-preparation - violent-encouragement - injury - death - graphic - self-harm-thoughts - self-harm-preparation - self-harm-act - self-harm-methods - self-harm-encouragement - personal-abuse - targeted-intimidation - harassment-threat - sexual-harassment - harassment-encouragement - identity-abuse - dehumanization - identity-inferiority - discriminatory-exclusion - hate-threat - criminal-demonstration - criminal-preparation - criminal-request - criminal-instructions - criminal-promotion - historical - documentary - fictional - support-prevention additionalProperties: oneOf: - type: object properties: status: type: string const: evaluated score: type: number minimum: 0 maximum: 1 scopeScore: type: number minimum: 0 maximum: 1 likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely required: - status - score - likelihood additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable required: - status - reason additionalProperties: false required: - status - likelihood - score additionalProperties: false - type: object properties: status: type: string const: partial likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely score: type: number minimum: 0 maximum: 1 qualifiers: type: object propertyNames: type: string enum: - nudity - sexual-activity - explicit-sexual-language - sexual-solicitation - physical-attack - violent-threat - violent-preparation - violent-encouragement - injury - death - graphic - self-harm-thoughts - self-harm-preparation - self-harm-act - self-harm-methods - self-harm-encouragement - personal-abuse - targeted-intimidation - harassment-threat - sexual-harassment - harassment-encouragement - identity-abuse - dehumanization - identity-inferiority - discriminatory-exclusion - hate-threat - criminal-demonstration - criminal-preparation - criminal-request - criminal-instructions - criminal-promotion - historical - documentary - fictional - support-prevention additionalProperties: oneOf: - type: object properties: status: type: string const: evaluated score: type: number minimum: 0 maximum: 1 scopeScore: type: number minimum: 0 maximum: 1 likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely required: - status - score - likelihood additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable required: - status - reason additionalProperties: false required: - status - likelihood - score additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable qualifiers: type: object propertyNames: type: string enum: - nudity - sexual-activity - explicit-sexual-language - sexual-solicitation - physical-attack - violent-threat - violent-preparation - violent-encouragement - injury - death - graphic - self-harm-thoughts - self-harm-preparation - self-harm-act - self-harm-methods - self-harm-encouragement - personal-abuse - targeted-intimidation - harassment-threat - sexual-harassment - harassment-encouragement - identity-abuse - dehumanization - identity-inferiority - discriminatory-exclusion - hate-threat - criminal-demonstration - criminal-preparation - criminal-request - criminal-instructions - criminal-promotion - historical - documentary - fictional - support-prevention additionalProperties: oneOf: - type: object properties: status: type: string const: evaluated score: type: number minimum: 0 maximum: 1 scopeScore: type: number minimum: 0 maximum: 1 likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely required: - status - score - likelihood additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable required: - status - reason additionalProperties: false required: - status - reason additionalProperties: false required: - sexual - violence - self-harm - harassment - hate - criminal-activity additionalProperties: false required: - source - startSeconds - endSeconds - categories additionalProperties: false required: - durationSeconds - sampledFrames - audioTranscribed - segments additionalProperties: false labels: anyOf: - type: array items: type: object properties: description: {} score: type: number topicalityScore: type: - number - "null" likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely knowledgeBaseId: anyOf: - {} - type: "null" required: - description - score - likelihood additionalProperties: false - type: "null" required: - processedAt - categories - flagged - score additionalProperties: false - type: "null" moderationAction: anyOf: - type: string enum: - ignore - alert - hide - purge - type: "null" description: The moderation action applied when this asset crossed a policy threshold status: type: string enum: - uploading - pending - approved - rejected - error description: Processing and moderation status. See [Asset lifecycle](/docs/guides/asset-lifecycle). safetyHold: anyOf: - type: object properties: placedAt: type: number description: When the hold was placed, in milliseconds since the Unix epoch reason: type: string enum: - suspected-illegal-content description: Why the asset is held disposedAt: description: When the held content was disposed of, in milliseconds since the Unix epoch type: - number - "null" required: - placedAt - reason additionalProperties: false - type: "null" description: Internal delivery restriction for suspected illegal content. Held content cannot be viewed, changed, or deleted through normal asset operations. rejectionNote: anyOf: - {} - type: "null" description: Reason the asset was rejected, generated automatically or supplied by a reviewer extractedText: anyOf: - oneOf: - type: object properties: type: type: string const: string content: type: string required: - type - content additionalProperties: false - type: object properties: type: type: string const: document id: {} required: - type - id additionalProperties: false - type: "null" description: Extracted text stored inline for small content or in R2 for larger content processingOptions: description: Processing options supplied when the asset was uploaded anyOf: - type: object properties: keepContentAfterProcessing: description: Whether to keep the asset content after processing default: false type: - boolean - "null" flaggedContentPolicy: anyOf: - type: object properties: action: type: string enum: - ignore - alert - hide - purge required: - action additionalProperties: false - type: "null" description: Override the project moderation action for this asset. Ignore takes no action, alert keeps delivery enabled, hide blocks delivery while retaining content, and purge deletes content. image: description: Options for image assets anyOf: - type: object properties: ocrEnabled: description: Whether to extract image text into a child asset and run normal text moderation. Applies to images, including those extracted from multimedia documents and websites. default: false type: - boolean - "null" additionalProperties: false - type: "null" additionalProperties: false - type: "null" visibility: anyOf: - type: string enum: - public - private - type: "null" description: Visibility level of the asset default: private storageDeletedAt: description: When the stored content was removed, in milliseconds since the Unix epoch. The asset record and report remain. type: - number - "null" required: - id - projectId - createdAt - name - type - status additionalProperties: false description: An asset in the system description: Items on this page total: type: number description: Total number of matching items hasMore: type: boolean description: Whether another page follows this one required: - pageIndex - pageSize - ordering - items - total - hasMore additionalProperties: false $defs: __schema0: anyOf: - type: string - type: number - type: boolean - type: "null" - type: array items: $ref: "#/paths/~1assets~1{assetId}~1children/get/responses/200/content/application~1json/schema/$defs/__schema0" - type: object propertyNames: type: string additionalProperties: $ref: "#/paths/~1assets~1{assetId}~1children/get/responses/200/content/application~1json/schema/$defs/__schema0" "401": description: |- auth/missing-token: Authentication required. Send your project API key in the X-Api-Key header. auth/invalid-api-key: The API key is invalid, revoked or expired. Create a key under Developer → API Keys. headers: X-Request-Id: *a1 content: application/json: schema: type: object required: - message - code - traceId properties: message: type: string code: type: string enum: - auth/missing-token - auth/invalid-api-key traceId: type: string examples: auth-missing-token: summary: Authentication required. Send your project API key in the X-Api-Key header. value: message: Authentication required. Send your project API key in the X-Api-Key header. code: auth/missing-token traceId: request-trace-id auth-invalid-api-key: summary: The API key is invalid, revoked or expired. Create a key under Developer → API Keys. value: message: The API key is invalid, revoked or expired. Create a key under Developer → API Keys. code: auth/invalid-api-key traceId: request-trace-id "403": description: "auth/project-mismatch: This API key belongs to a different project. Use a key created for the project that owns this resource." headers: X-Request-Id: *a1 content: application/json: schema: type: object required: - message - code - traceId properties: message: type: string code: type: string enum: - auth/project-mismatch traceId: type: string examples: auth-project-mismatch: summary: This API key belongs to a different project. Use a key created for the project that owns this resource. value: message: This API key belongs to a different project. Use a key created for the project that owns this resource. code: auth/project-mismatch traceId: request-trace-id parameters: - name: assetId in: path required: true description: UUID of the parent asset to fetch children for schema: type: string format: uuid pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$ description: UUID of the parent asset to fetch children for example: 987fcdeb-51a2-43d7-b890-123456789abc - name: pageIndex in: query required: false description: The zero-based page index schema: default: "0" type: number minimum: 0 description: The zero-based page index example: 0 - name: pageSize in: query required: false description: Number of items per page (1-100) schema: type: number minimum: 1 maximum: 100 description: Number of items per page (1-100) example: 20 - name: ordering in: query required: false description: Array of field ordering specifications schema: type: array items: type: object properties: field: type: string description: The field name to order by direction: type: string enum: - ASC - DESC description: The sort direction default: ASC required: - field - direction description: Array of field ordering specifications /assets/{assetId}/content: delete: operationId: delete-asset-content summary: Remove Asset Content description: Remove stored content, including the content derived from it in child assets, while retaining the asset records security: - ApiKeyAuth: [] responses: "200": description: Successful response headers: X-Request-Id: *a1 content: application/json: schema: type: object properties: id: type: string format: uuid pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-4[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$ description: Unique asset ID projectId: type: string format: uuid pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-4[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$ description: ID of the project that owns the asset sizeInBytes: description: Size of the uploaded content in bytes type: - number - "null" userId: description: ID of the user whose account created the asset anyOf: - {} - type: "null" parentId: description: ID of the parent asset for child assets CalmLens extracts during processing, such as images in a document or OCR text. `null` for uploaded assets. anyOf: - type: string format: uuid pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-4[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$ - type: "null" folderId: anyOf: - type: string format: uuid pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-4[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$ - type: "null" description: Folder containing the asset createdAt: type: integer minimum: -9007199254740991 maximum: 9007199254740991 description: When the asset was created, in milliseconds since the Unix epoch updatedAt: description: When the asset was last updated, in milliseconds since the Unix epoch type: integer minimum: -9007199254740991 maximum: 9007199254740991 checksums: description: Digests of the uploaded content anyOf: - type: object properties: md5: description: MD5 digest of the uploaded content type: - string - "null" sha1: description: SHA-1 digest of the uploaded content type: - string - "null" sha256: description: SHA-256 digest of the uploaded content type: - string - "null" sha384: description: SHA-384 digest of the uploaded content type: - string - "null" sha512: description: SHA-512 digest of the uploaded content type: - string - "null" additionalProperties: false - type: "null" imageData: description: Image properties, for image assets anyOf: - type: object properties: perceptualHash: description: Perceptual hash used to match visually similar images type: - string - "null" width: description: Image width in pixels anyOf: - type: integer exclusiveMinimum: 0 maximum: 9007199254740991 - type: "null" height: description: Image height in pixels anyOf: - type: integer exclusiveMinimum: 0 maximum: 9007199254740991 - type: "null" additionalProperties: false - type: "null" documentData: description: Document properties, for documents anyOf: - type: object properties: {} additionalProperties: false - type: "null" name: description: Name of the asset fileFormat: description: MIME type of the stored content anyOf: - {} - type: "null" fileExtension: description: File extension of the stored content anyOf: - {} - type: "null" description: anyOf: - {} - type: "null" description: Optional description of the asset externalId: anyOf: - {} - type: "null" description: External identifier for the asset externalUrl: anyOf: - type: string format: uri - type: "null" description: External URL associated with the asset previewImage: description: Browser-friendly preview generated for images, documents and websites anyOf: - type: object properties: id: anyOf: - {} - type: "null" description: Identifier of the stored preview image fileFormat: anyOf: - {} - type: "null" description: File format of the preview, such as `webp` thumbhash: anyOf: - {} - type: "null" description: ThumbHash placeholder you can render while the preview loads averageColor: anyOf: - {} - type: "null" description: Average color of the preview width: anyOf: - type: integer exclusiveMinimum: 0 maximum: 9007199254740991 - type: "null" description: Preview width in pixels height: anyOf: - type: integer exclusiveMinimum: 0 maximum: 9007199254740991 - type: "null" description: Preview height in pixels required: - id - fileFormat - thumbhash - averageColor - width - height additionalProperties: false - type: "null" storageId: description: Internal storage key of the retained content; `null` when nothing is stored anyOf: - {} - type: "null" uploadPartsReceived: description: Number of parts received so far for a multipart upload anyOf: - type: integer minimum: -9007199254740991 maximum: 9007199254740991 - type: "null" type: type: string enum: - image - video - audio - plaintext-document - multimedia-document - website - file description: Asset type, detected from the content's MIME type metadata: anyOf: - type: array items: type: object properties: id: description: Identifier for the metadata item value: $ref: "#/paths/~1assets~1{assetId}~1content/delete/responses/200/content/application~1json/schema/$defs/__schema0" description: Value of the metadata item required: - id - value additionalProperties: false description: A metadata item with an ID and value - type: "null" description: List of custom metadata items for the asset tags: anyOf: - type: array items: {} - type: "null" description: Array of tags for the asset report: description: Moderation report, set once classification finishes. See [Report format](/docs/guides/moderation-reports). anyOf: - type: object properties: processedAt: type: number categories: type: object properties: sexual: oneOf: - type: object properties: status: type: string const: evaluated likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely score: type: number minimum: 0 maximum: 1 qualifiers: type: object propertyNames: type: string enum: - nudity - sexual-activity - explicit-sexual-language - sexual-solicitation - physical-attack - violent-threat - violent-preparation - violent-encouragement - injury - death - graphic - self-harm-thoughts - self-harm-preparation - self-harm-act - self-harm-methods - self-harm-encouragement - personal-abuse - targeted-intimidation - harassment-threat - sexual-harassment - harassment-encouragement - identity-abuse - dehumanization - identity-inferiority - discriminatory-exclusion - hate-threat - criminal-demonstration - criminal-preparation - criminal-request - criminal-instructions - criminal-promotion - historical - documentary - fictional - support-prevention additionalProperties: oneOf: - type: object properties: status: type: string const: evaluated score: type: number minimum: 0 maximum: 1 scopeScore: type: number minimum: 0 maximum: 1 likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely required: - status - score - likelihood additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable required: - status - reason additionalProperties: false required: - status - likelihood - score additionalProperties: false - type: object properties: status: type: string const: partial likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely score: type: number minimum: 0 maximum: 1 qualifiers: type: object propertyNames: type: string enum: - nudity - sexual-activity - explicit-sexual-language - sexual-solicitation - physical-attack - violent-threat - violent-preparation - violent-encouragement - injury - death - graphic - self-harm-thoughts - self-harm-preparation - self-harm-act - self-harm-methods - self-harm-encouragement - personal-abuse - targeted-intimidation - harassment-threat - sexual-harassment - harassment-encouragement - identity-abuse - dehumanization - identity-inferiority - discriminatory-exclusion - hate-threat - criminal-demonstration - criminal-preparation - criminal-request - criminal-instructions - criminal-promotion - historical - documentary - fictional - support-prevention additionalProperties: oneOf: - type: object properties: status: type: string const: evaluated score: type: number minimum: 0 maximum: 1 scopeScore: type: number minimum: 0 maximum: 1 likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely required: - status - score - likelihood additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable required: - status - reason additionalProperties: false required: - status - likelihood - score additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable qualifiers: type: object propertyNames: type: string enum: - nudity - sexual-activity - explicit-sexual-language - sexual-solicitation - physical-attack - violent-threat - violent-preparation - violent-encouragement - injury - death - graphic - self-harm-thoughts - self-harm-preparation - self-harm-act - self-harm-methods - self-harm-encouragement - personal-abuse - targeted-intimidation - harassment-threat - sexual-harassment - harassment-encouragement - identity-abuse - dehumanization - identity-inferiority - discriminatory-exclusion - hate-threat - criminal-demonstration - criminal-preparation - criminal-request - criminal-instructions - criminal-promotion - historical - documentary - fictional - support-prevention additionalProperties: oneOf: - type: object properties: status: type: string const: evaluated score: type: number minimum: 0 maximum: 1 scopeScore: type: number minimum: 0 maximum: 1 likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely required: - status - score - likelihood additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable required: - status - reason additionalProperties: false required: - status - reason additionalProperties: false violence: oneOf: - type: object properties: status: type: string const: evaluated likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely score: type: number minimum: 0 maximum: 1 qualifiers: type: object propertyNames: type: string enum: - nudity - sexual-activity - explicit-sexual-language - sexual-solicitation - physical-attack - violent-threat - violent-preparation - violent-encouragement - injury - death - graphic - self-harm-thoughts - self-harm-preparation - self-harm-act - self-harm-methods - self-harm-encouragement - personal-abuse - targeted-intimidation - harassment-threat - sexual-harassment - harassment-encouragement - identity-abuse - dehumanization - identity-inferiority - discriminatory-exclusion - hate-threat - criminal-demonstration - criminal-preparation - criminal-request - criminal-instructions - criminal-promotion - historical - documentary - fictional - support-prevention additionalProperties: oneOf: - type: object properties: status: type: string const: evaluated score: type: number minimum: 0 maximum: 1 scopeScore: type: number minimum: 0 maximum: 1 likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely required: - status - score - likelihood additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable required: - status - reason additionalProperties: false required: - status - likelihood - score additionalProperties: false - type: object properties: status: type: string const: partial likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely score: type: number minimum: 0 maximum: 1 qualifiers: type: object propertyNames: type: string enum: - nudity - sexual-activity - explicit-sexual-language - sexual-solicitation - physical-attack - violent-threat - violent-preparation - violent-encouragement - injury - death - graphic - self-harm-thoughts - self-harm-preparation - self-harm-act - self-harm-methods - self-harm-encouragement - personal-abuse - targeted-intimidation - harassment-threat - sexual-harassment - harassment-encouragement - identity-abuse - dehumanization - identity-inferiority - discriminatory-exclusion - hate-threat - criminal-demonstration - criminal-preparation - criminal-request - criminal-instructions - criminal-promotion - historical - documentary - fictional - support-prevention additionalProperties: oneOf: - type: object properties: status: type: string const: evaluated score: type: number minimum: 0 maximum: 1 scopeScore: type: number minimum: 0 maximum: 1 likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely required: - status - score - likelihood additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable required: - status - reason additionalProperties: false required: - status - likelihood - score additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable qualifiers: type: object propertyNames: type: string enum: - nudity - sexual-activity - explicit-sexual-language - sexual-solicitation - physical-attack - violent-threat - violent-preparation - violent-encouragement - injury - death - graphic - self-harm-thoughts - self-harm-preparation - self-harm-act - self-harm-methods - self-harm-encouragement - personal-abuse - targeted-intimidation - harassment-threat - sexual-harassment - harassment-encouragement - identity-abuse - dehumanization - identity-inferiority - discriminatory-exclusion - hate-threat - criminal-demonstration - criminal-preparation - criminal-request - criminal-instructions - criminal-promotion - historical - documentary - fictional - support-prevention additionalProperties: oneOf: - type: object properties: status: type: string const: evaluated score: type: number minimum: 0 maximum: 1 scopeScore: type: number minimum: 0 maximum: 1 likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely required: - status - score - likelihood additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable required: - status - reason additionalProperties: false required: - status - reason additionalProperties: false self-harm: oneOf: - type: object properties: status: type: string const: evaluated likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely score: type: number minimum: 0 maximum: 1 qualifiers: type: object propertyNames: type: string enum: - nudity - sexual-activity - explicit-sexual-language - sexual-solicitation - physical-attack - violent-threat - violent-preparation - violent-encouragement - injury - death - graphic - self-harm-thoughts - self-harm-preparation - self-harm-act - self-harm-methods - self-harm-encouragement - personal-abuse - targeted-intimidation - harassment-threat - sexual-harassment - harassment-encouragement - identity-abuse - dehumanization - identity-inferiority - discriminatory-exclusion - hate-threat - criminal-demonstration - criminal-preparation - criminal-request - criminal-instructions - criminal-promotion - historical - documentary - fictional - support-prevention additionalProperties: oneOf: - type: object properties: status: type: string const: evaluated score: type: number minimum: 0 maximum: 1 scopeScore: type: number minimum: 0 maximum: 1 likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely required: - status - score - likelihood additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable required: - status - reason additionalProperties: false required: - status - likelihood - score additionalProperties: false - type: object properties: status: type: string const: partial likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely score: type: number minimum: 0 maximum: 1 qualifiers: type: object propertyNames: type: string enum: - nudity - sexual-activity - explicit-sexual-language - sexual-solicitation - physical-attack - violent-threat - violent-preparation - violent-encouragement - injury - death - graphic - self-harm-thoughts - self-harm-preparation - self-harm-act - self-harm-methods - self-harm-encouragement - personal-abuse - targeted-intimidation - harassment-threat - sexual-harassment - harassment-encouragement - identity-abuse - dehumanization - identity-inferiority - discriminatory-exclusion - hate-threat - criminal-demonstration - criminal-preparation - criminal-request - criminal-instructions - criminal-promotion - historical - documentary - fictional - support-prevention additionalProperties: oneOf: - type: object properties: status: type: string const: evaluated score: type: number minimum: 0 maximum: 1 scopeScore: type: number minimum: 0 maximum: 1 likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely required: - status - score - likelihood additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable required: - status - reason additionalProperties: false required: - status - likelihood - score additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable qualifiers: type: object propertyNames: type: string enum: - nudity - sexual-activity - explicit-sexual-language - sexual-solicitation - physical-attack - violent-threat - violent-preparation - violent-encouragement - injury - death - graphic - self-harm-thoughts - self-harm-preparation - self-harm-act - self-harm-methods - self-harm-encouragement - personal-abuse - targeted-intimidation - harassment-threat - sexual-harassment - harassment-encouragement - identity-abuse - dehumanization - identity-inferiority - discriminatory-exclusion - hate-threat - criminal-demonstration - criminal-preparation - criminal-request - criminal-instructions - criminal-promotion - historical - documentary - fictional - support-prevention additionalProperties: oneOf: - type: object properties: status: type: string const: evaluated score: type: number minimum: 0 maximum: 1 scopeScore: type: number minimum: 0 maximum: 1 likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely required: - status - score - likelihood additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable required: - status - reason additionalProperties: false required: - status - reason additionalProperties: false harassment: oneOf: - type: object properties: status: type: string const: evaluated likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely score: type: number minimum: 0 maximum: 1 qualifiers: type: object propertyNames: type: string enum: - nudity - sexual-activity - explicit-sexual-language - sexual-solicitation - physical-attack - violent-threat - violent-preparation - violent-encouragement - injury - death - graphic - self-harm-thoughts - self-harm-preparation - self-harm-act - self-harm-methods - self-harm-encouragement - personal-abuse - targeted-intimidation - harassment-threat - sexual-harassment - harassment-encouragement - identity-abuse - dehumanization - identity-inferiority - discriminatory-exclusion - hate-threat - criminal-demonstration - criminal-preparation - criminal-request - criminal-instructions - criminal-promotion - historical - documentary - fictional - support-prevention additionalProperties: oneOf: - type: object properties: status: type: string const: evaluated score: type: number minimum: 0 maximum: 1 scopeScore: type: number minimum: 0 maximum: 1 likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely required: - status - score - likelihood additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable required: - status - reason additionalProperties: false required: - status - likelihood - score additionalProperties: false - type: object properties: status: type: string const: partial likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely score: type: number minimum: 0 maximum: 1 qualifiers: type: object propertyNames: type: string enum: - nudity - sexual-activity - explicit-sexual-language - sexual-solicitation - physical-attack - violent-threat - violent-preparation - violent-encouragement - injury - death - graphic - self-harm-thoughts - self-harm-preparation - self-harm-act - self-harm-methods - self-harm-encouragement - personal-abuse - targeted-intimidation - harassment-threat - sexual-harassment - harassment-encouragement - identity-abuse - dehumanization - identity-inferiority - discriminatory-exclusion - hate-threat - criminal-demonstration - criminal-preparation - criminal-request - criminal-instructions - criminal-promotion - historical - documentary - fictional - support-prevention additionalProperties: oneOf: - type: object properties: status: type: string const: evaluated score: type: number minimum: 0 maximum: 1 scopeScore: type: number minimum: 0 maximum: 1 likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely required: - status - score - likelihood additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable required: - status - reason additionalProperties: false required: - status - likelihood - score additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable qualifiers: type: object propertyNames: type: string enum: - nudity - sexual-activity - explicit-sexual-language - sexual-solicitation - physical-attack - violent-threat - violent-preparation - violent-encouragement - injury - death - graphic - self-harm-thoughts - self-harm-preparation - self-harm-act - self-harm-methods - self-harm-encouragement - personal-abuse - targeted-intimidation - harassment-threat - sexual-harassment - harassment-encouragement - identity-abuse - dehumanization - identity-inferiority - discriminatory-exclusion - hate-threat - criminal-demonstration - criminal-preparation - criminal-request - criminal-instructions - criminal-promotion - historical - documentary - fictional - support-prevention additionalProperties: oneOf: - type: object properties: status: type: string const: evaluated score: type: number minimum: 0 maximum: 1 scopeScore: type: number minimum: 0 maximum: 1 likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely required: - status - score - likelihood additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable required: - status - reason additionalProperties: false required: - status - reason additionalProperties: false hate: oneOf: - type: object properties: status: type: string const: evaluated likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely score: type: number minimum: 0 maximum: 1 qualifiers: type: object propertyNames: type: string enum: - nudity - sexual-activity - explicit-sexual-language - sexual-solicitation - physical-attack - violent-threat - violent-preparation - violent-encouragement - injury - death - graphic - self-harm-thoughts - self-harm-preparation - self-harm-act - self-harm-methods - self-harm-encouragement - personal-abuse - targeted-intimidation - harassment-threat - sexual-harassment - harassment-encouragement - identity-abuse - dehumanization - identity-inferiority - discriminatory-exclusion - hate-threat - criminal-demonstration - criminal-preparation - criminal-request - criminal-instructions - criminal-promotion - historical - documentary - fictional - support-prevention additionalProperties: oneOf: - type: object properties: status: type: string const: evaluated score: type: number minimum: 0 maximum: 1 scopeScore: type: number minimum: 0 maximum: 1 likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely required: - status - score - likelihood additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable required: - status - reason additionalProperties: false required: - status - likelihood - score additionalProperties: false - type: object properties: status: type: string const: partial likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely score: type: number minimum: 0 maximum: 1 qualifiers: type: object propertyNames: type: string enum: - nudity - sexual-activity - explicit-sexual-language - sexual-solicitation - physical-attack - violent-threat - violent-preparation - violent-encouragement - injury - death - graphic - self-harm-thoughts - self-harm-preparation - self-harm-act - self-harm-methods - self-harm-encouragement - personal-abuse - targeted-intimidation - harassment-threat - sexual-harassment - harassment-encouragement - identity-abuse - dehumanization - identity-inferiority - discriminatory-exclusion - hate-threat - criminal-demonstration - criminal-preparation - criminal-request - criminal-instructions - criminal-promotion - historical - documentary - fictional - support-prevention additionalProperties: oneOf: - type: object properties: status: type: string const: evaluated score: type: number minimum: 0 maximum: 1 scopeScore: type: number minimum: 0 maximum: 1 likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely required: - status - score - likelihood additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable required: - status - reason additionalProperties: false required: - status - likelihood - score additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable qualifiers: type: object propertyNames: type: string enum: - nudity - sexual-activity - explicit-sexual-language - sexual-solicitation - physical-attack - violent-threat - violent-preparation - violent-encouragement - injury - death - graphic - self-harm-thoughts - self-harm-preparation - self-harm-act - self-harm-methods - self-harm-encouragement - personal-abuse - targeted-intimidation - harassment-threat - sexual-harassment - harassment-encouragement - identity-abuse - dehumanization - identity-inferiority - discriminatory-exclusion - hate-threat - criminal-demonstration - criminal-preparation - criminal-request - criminal-instructions - criminal-promotion - historical - documentary - fictional - support-prevention additionalProperties: oneOf: - type: object properties: status: type: string const: evaluated score: type: number minimum: 0 maximum: 1 scopeScore: type: number minimum: 0 maximum: 1 likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely required: - status - score - likelihood additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable required: - status - reason additionalProperties: false required: - status - reason additionalProperties: false criminal-activity: oneOf: - type: object properties: status: type: string const: evaluated likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely score: type: number minimum: 0 maximum: 1 qualifiers: type: object propertyNames: type: string enum: - nudity - sexual-activity - explicit-sexual-language - sexual-solicitation - physical-attack - violent-threat - violent-preparation - violent-encouragement - injury - death - graphic - self-harm-thoughts - self-harm-preparation - self-harm-act - self-harm-methods - self-harm-encouragement - personal-abuse - targeted-intimidation - harassment-threat - sexual-harassment - harassment-encouragement - identity-abuse - dehumanization - identity-inferiority - discriminatory-exclusion - hate-threat - criminal-demonstration - criminal-preparation - criminal-request - criminal-instructions - criminal-promotion - historical - documentary - fictional - support-prevention additionalProperties: oneOf: - type: object properties: status: type: string const: evaluated score: type: number minimum: 0 maximum: 1 scopeScore: type: number minimum: 0 maximum: 1 likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely required: - status - score - likelihood additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable required: - status - reason additionalProperties: false required: - status - likelihood - score additionalProperties: false - type: object properties: status: type: string const: partial likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely score: type: number minimum: 0 maximum: 1 qualifiers: type: object propertyNames: type: string enum: - nudity - sexual-activity - explicit-sexual-language - sexual-solicitation - physical-attack - violent-threat - violent-preparation - violent-encouragement - injury - death - graphic - self-harm-thoughts - self-harm-preparation - self-harm-act - self-harm-methods - self-harm-encouragement - personal-abuse - targeted-intimidation - harassment-threat - sexual-harassment - harassment-encouragement - identity-abuse - dehumanization - identity-inferiority - discriminatory-exclusion - hate-threat - criminal-demonstration - criminal-preparation - criminal-request - criminal-instructions - criminal-promotion - historical - documentary - fictional - support-prevention additionalProperties: oneOf: - type: object properties: status: type: string const: evaluated score: type: number minimum: 0 maximum: 1 scopeScore: type: number minimum: 0 maximum: 1 likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely required: - status - score - likelihood additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable required: - status - reason additionalProperties: false required: - status - likelihood - score additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable qualifiers: type: object propertyNames: type: string enum: - nudity - sexual-activity - explicit-sexual-language - sexual-solicitation - physical-attack - violent-threat - violent-preparation - violent-encouragement - injury - death - graphic - self-harm-thoughts - self-harm-preparation - self-harm-act - self-harm-methods - self-harm-encouragement - personal-abuse - targeted-intimidation - harassment-threat - sexual-harassment - harassment-encouragement - identity-abuse - dehumanization - identity-inferiority - discriminatory-exclusion - hate-threat - criminal-demonstration - criminal-preparation - criminal-request - criminal-instructions - criminal-promotion - historical - documentary - fictional - support-prevention additionalProperties: oneOf: - type: object properties: status: type: string const: evaluated score: type: number minimum: 0 maximum: 1 scopeScore: type: number minimum: 0 maximum: 1 likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely required: - status - score - likelihood additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable required: - status - reason additionalProperties: false required: - status - reason additionalProperties: false required: - sexual - violence - self-harm - harassment - hate - criminal-activity additionalProperties: false flagged: type: boolean score: type: number notes: anyOf: - {} - type: "null" media: type: object properties: durationSeconds: type: number exclusiveMinimum: 0 frameIntervalSeconds: type: number exclusiveMinimum: 0 sampledFrames: type: integer minimum: 0 maximum: 9007199254740991 audioTranscribed: type: boolean segments: type: array items: type: object properties: source: type: string enum: - frame - speech - frame-text - clip startSeconds: type: number minimum: 0 endSeconds: type: number minimum: 0 categories: type: object properties: sexual: oneOf: - type: object properties: status: type: string const: evaluated likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely score: type: number minimum: 0 maximum: 1 qualifiers: type: object propertyNames: type: string enum: - nudity - sexual-activity - explicit-sexual-language - sexual-solicitation - physical-attack - violent-threat - violent-preparation - violent-encouragement - injury - death - graphic - self-harm-thoughts - self-harm-preparation - self-harm-act - self-harm-methods - self-harm-encouragement - personal-abuse - targeted-intimidation - harassment-threat - sexual-harassment - harassment-encouragement - identity-abuse - dehumanization - identity-inferiority - discriminatory-exclusion - hate-threat - criminal-demonstration - criminal-preparation - criminal-request - criminal-instructions - criminal-promotion - historical - documentary - fictional - support-prevention additionalProperties: oneOf: - type: object properties: status: type: string const: evaluated score: type: number minimum: 0 maximum: 1 scopeScore: type: number minimum: 0 maximum: 1 likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely required: - status - score - likelihood additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable required: - status - reason additionalProperties: false required: - status - likelihood - score additionalProperties: false - type: object properties: status: type: string const: partial likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely score: type: number minimum: 0 maximum: 1 qualifiers: type: object propertyNames: type: string enum: - nudity - sexual-activity - explicit-sexual-language - sexual-solicitation - physical-attack - violent-threat - violent-preparation - violent-encouragement - injury - death - graphic - self-harm-thoughts - self-harm-preparation - self-harm-act - self-harm-methods - self-harm-encouragement - personal-abuse - targeted-intimidation - harassment-threat - sexual-harassment - harassment-encouragement - identity-abuse - dehumanization - identity-inferiority - discriminatory-exclusion - hate-threat - criminal-demonstration - criminal-preparation - criminal-request - criminal-instructions - criminal-promotion - historical - documentary - fictional - support-prevention additionalProperties: oneOf: - type: object properties: status: type: string const: evaluated score: type: number minimum: 0 maximum: 1 scopeScore: type: number minimum: 0 maximum: 1 likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely required: - status - score - likelihood additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable required: - status - reason additionalProperties: false required: - status - likelihood - score additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable qualifiers: type: object propertyNames: type: string enum: - nudity - sexual-activity - explicit-sexual-language - sexual-solicitation - physical-attack - violent-threat - violent-preparation - violent-encouragement - injury - death - graphic - self-harm-thoughts - self-harm-preparation - self-harm-act - self-harm-methods - self-harm-encouragement - personal-abuse - targeted-intimidation - harassment-threat - sexual-harassment - harassment-encouragement - identity-abuse - dehumanization - identity-inferiority - discriminatory-exclusion - hate-threat - criminal-demonstration - criminal-preparation - criminal-request - criminal-instructions - criminal-promotion - historical - documentary - fictional - support-prevention additionalProperties: oneOf: - type: object properties: status: type: string const: evaluated score: type: number minimum: 0 maximum: 1 scopeScore: type: number minimum: 0 maximum: 1 likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely required: - status - score - likelihood additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable required: - status - reason additionalProperties: false required: - status - reason additionalProperties: false violence: oneOf: - type: object properties: status: type: string const: evaluated likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely score: type: number minimum: 0 maximum: 1 qualifiers: type: object propertyNames: type: string enum: - nudity - sexual-activity - explicit-sexual-language - sexual-solicitation - physical-attack - violent-threat - violent-preparation - violent-encouragement - injury - death - graphic - self-harm-thoughts - self-harm-preparation - self-harm-act - self-harm-methods - self-harm-encouragement - personal-abuse - targeted-intimidation - harassment-threat - sexual-harassment - harassment-encouragement - identity-abuse - dehumanization - identity-inferiority - discriminatory-exclusion - hate-threat - criminal-demonstration - criminal-preparation - criminal-request - criminal-instructions - criminal-promotion - historical - documentary - fictional - support-prevention additionalProperties: oneOf: - type: object properties: status: type: string const: evaluated score: type: number minimum: 0 maximum: 1 scopeScore: type: number minimum: 0 maximum: 1 likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely required: - status - score - likelihood additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable required: - status - reason additionalProperties: false required: - status - likelihood - score additionalProperties: false - type: object properties: status: type: string const: partial likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely score: type: number minimum: 0 maximum: 1 qualifiers: type: object propertyNames: type: string enum: - nudity - sexual-activity - explicit-sexual-language - sexual-solicitation - physical-attack - violent-threat - violent-preparation - violent-encouragement - injury - death - graphic - self-harm-thoughts - self-harm-preparation - self-harm-act - self-harm-methods - self-harm-encouragement - personal-abuse - targeted-intimidation - harassment-threat - sexual-harassment - harassment-encouragement - identity-abuse - dehumanization - identity-inferiority - discriminatory-exclusion - hate-threat - criminal-demonstration - criminal-preparation - criminal-request - criminal-instructions - criminal-promotion - historical - documentary - fictional - support-prevention additionalProperties: oneOf: - type: object properties: status: type: string const: evaluated score: type: number minimum: 0 maximum: 1 scopeScore: type: number minimum: 0 maximum: 1 likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely required: - status - score - likelihood additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable required: - status - reason additionalProperties: false required: - status - likelihood - score additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable qualifiers: type: object propertyNames: type: string enum: - nudity - sexual-activity - explicit-sexual-language - sexual-solicitation - physical-attack - violent-threat - violent-preparation - violent-encouragement - injury - death - graphic - self-harm-thoughts - self-harm-preparation - self-harm-act - self-harm-methods - self-harm-encouragement - personal-abuse - targeted-intimidation - harassment-threat - sexual-harassment - harassment-encouragement - identity-abuse - dehumanization - identity-inferiority - discriminatory-exclusion - hate-threat - criminal-demonstration - criminal-preparation - criminal-request - criminal-instructions - criminal-promotion - historical - documentary - fictional - support-prevention additionalProperties: oneOf: - type: object properties: status: type: string const: evaluated score: type: number minimum: 0 maximum: 1 scopeScore: type: number minimum: 0 maximum: 1 likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely required: - status - score - likelihood additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable required: - status - reason additionalProperties: false required: - status - reason additionalProperties: false self-harm: oneOf: - type: object properties: status: type: string const: evaluated likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely score: type: number minimum: 0 maximum: 1 qualifiers: type: object propertyNames: type: string enum: - nudity - sexual-activity - explicit-sexual-language - sexual-solicitation - physical-attack - violent-threat - violent-preparation - violent-encouragement - injury - death - graphic - self-harm-thoughts - self-harm-preparation - self-harm-act - self-harm-methods - self-harm-encouragement - personal-abuse - targeted-intimidation - harassment-threat - sexual-harassment - harassment-encouragement - identity-abuse - dehumanization - identity-inferiority - discriminatory-exclusion - hate-threat - criminal-demonstration - criminal-preparation - criminal-request - criminal-instructions - criminal-promotion - historical - documentary - fictional - support-prevention additionalProperties: oneOf: - type: object properties: status: type: string const: evaluated score: type: number minimum: 0 maximum: 1 scopeScore: type: number minimum: 0 maximum: 1 likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely required: - status - score - likelihood additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable required: - status - reason additionalProperties: false required: - status - likelihood - score additionalProperties: false - type: object properties: status: type: string const: partial likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely score: type: number minimum: 0 maximum: 1 qualifiers: type: object propertyNames: type: string enum: - nudity - sexual-activity - explicit-sexual-language - sexual-solicitation - physical-attack - violent-threat - violent-preparation - violent-encouragement - injury - death - graphic - self-harm-thoughts - self-harm-preparation - self-harm-act - self-harm-methods - self-harm-encouragement - personal-abuse - targeted-intimidation - harassment-threat - sexual-harassment - harassment-encouragement - identity-abuse - dehumanization - identity-inferiority - discriminatory-exclusion - hate-threat - criminal-demonstration - criminal-preparation - criminal-request - criminal-instructions - criminal-promotion - historical - documentary - fictional - support-prevention additionalProperties: oneOf: - type: object properties: status: type: string const: evaluated score: type: number minimum: 0 maximum: 1 scopeScore: type: number minimum: 0 maximum: 1 likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely required: - status - score - likelihood additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable required: - status - reason additionalProperties: false required: - status - likelihood - score additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable qualifiers: type: object propertyNames: type: string enum: - nudity - sexual-activity - explicit-sexual-language - sexual-solicitation - physical-attack - violent-threat - violent-preparation - violent-encouragement - injury - death - graphic - self-harm-thoughts - self-harm-preparation - self-harm-act - self-harm-methods - self-harm-encouragement - personal-abuse - targeted-intimidation - harassment-threat - sexual-harassment - harassment-encouragement - identity-abuse - dehumanization - identity-inferiority - discriminatory-exclusion - hate-threat - criminal-demonstration - criminal-preparation - criminal-request - criminal-instructions - criminal-promotion - historical - documentary - fictional - support-prevention additionalProperties: oneOf: - type: object properties: status: type: string const: evaluated score: type: number minimum: 0 maximum: 1 scopeScore: type: number minimum: 0 maximum: 1 likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely required: - status - score - likelihood additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable required: - status - reason additionalProperties: false required: - status - reason additionalProperties: false harassment: oneOf: - type: object properties: status: type: string const: evaluated likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely score: type: number minimum: 0 maximum: 1 qualifiers: type: object propertyNames: type: string enum: - nudity - sexual-activity - explicit-sexual-language - sexual-solicitation - physical-attack - violent-threat - violent-preparation - violent-encouragement - injury - death - graphic - self-harm-thoughts - self-harm-preparation - self-harm-act - self-harm-methods - self-harm-encouragement - personal-abuse - targeted-intimidation - harassment-threat - sexual-harassment - harassment-encouragement - identity-abuse - dehumanization - identity-inferiority - discriminatory-exclusion - hate-threat - criminal-demonstration - criminal-preparation - criminal-request - criminal-instructions - criminal-promotion - historical - documentary - fictional - support-prevention additionalProperties: oneOf: - type: object properties: status: type: string const: evaluated score: type: number minimum: 0 maximum: 1 scopeScore: type: number minimum: 0 maximum: 1 likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely required: - status - score - likelihood additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable required: - status - reason additionalProperties: false required: - status - likelihood - score additionalProperties: false - type: object properties: status: type: string const: partial likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely score: type: number minimum: 0 maximum: 1 qualifiers: type: object propertyNames: type: string enum: - nudity - sexual-activity - explicit-sexual-language - sexual-solicitation - physical-attack - violent-threat - violent-preparation - violent-encouragement - injury - death - graphic - self-harm-thoughts - self-harm-preparation - self-harm-act - self-harm-methods - self-harm-encouragement - personal-abuse - targeted-intimidation - harassment-threat - sexual-harassment - harassment-encouragement - identity-abuse - dehumanization - identity-inferiority - discriminatory-exclusion - hate-threat - criminal-demonstration - criminal-preparation - criminal-request - criminal-instructions - criminal-promotion - historical - documentary - fictional - support-prevention additionalProperties: oneOf: - type: object properties: status: type: string const: evaluated score: type: number minimum: 0 maximum: 1 scopeScore: type: number minimum: 0 maximum: 1 likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely required: - status - score - likelihood additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable required: - status - reason additionalProperties: false required: - status - likelihood - score additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable qualifiers: type: object propertyNames: type: string enum: - nudity - sexual-activity - explicit-sexual-language - sexual-solicitation - physical-attack - violent-threat - violent-preparation - violent-encouragement - injury - death - graphic - self-harm-thoughts - self-harm-preparation - self-harm-act - self-harm-methods - self-harm-encouragement - personal-abuse - targeted-intimidation - harassment-threat - sexual-harassment - harassment-encouragement - identity-abuse - dehumanization - identity-inferiority - discriminatory-exclusion - hate-threat - criminal-demonstration - criminal-preparation - criminal-request - criminal-instructions - criminal-promotion - historical - documentary - fictional - support-prevention additionalProperties: oneOf: - type: object properties: status: type: string const: evaluated score: type: number minimum: 0 maximum: 1 scopeScore: type: number minimum: 0 maximum: 1 likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely required: - status - score - likelihood additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable required: - status - reason additionalProperties: false required: - status - reason additionalProperties: false hate: oneOf: - type: object properties: status: type: string const: evaluated likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely score: type: number minimum: 0 maximum: 1 qualifiers: type: object propertyNames: type: string enum: - nudity - sexual-activity - explicit-sexual-language - sexual-solicitation - physical-attack - violent-threat - violent-preparation - violent-encouragement - injury - death - graphic - self-harm-thoughts - self-harm-preparation - self-harm-act - self-harm-methods - self-harm-encouragement - personal-abuse - targeted-intimidation - harassment-threat - sexual-harassment - harassment-encouragement - identity-abuse - dehumanization - identity-inferiority - discriminatory-exclusion - hate-threat - criminal-demonstration - criminal-preparation - criminal-request - criminal-instructions - criminal-promotion - historical - documentary - fictional - support-prevention additionalProperties: oneOf: - type: object properties: status: type: string const: evaluated score: type: number minimum: 0 maximum: 1 scopeScore: type: number minimum: 0 maximum: 1 likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely required: - status - score - likelihood additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable required: - status - reason additionalProperties: false required: - status - likelihood - score additionalProperties: false - type: object properties: status: type: string const: partial likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely score: type: number minimum: 0 maximum: 1 qualifiers: type: object propertyNames: type: string enum: - nudity - sexual-activity - explicit-sexual-language - sexual-solicitation - physical-attack - violent-threat - violent-preparation - violent-encouragement - injury - death - graphic - self-harm-thoughts - self-harm-preparation - self-harm-act - self-harm-methods - self-harm-encouragement - personal-abuse - targeted-intimidation - harassment-threat - sexual-harassment - harassment-encouragement - identity-abuse - dehumanization - identity-inferiority - discriminatory-exclusion - hate-threat - criminal-demonstration - criminal-preparation - criminal-request - criminal-instructions - criminal-promotion - historical - documentary - fictional - support-prevention additionalProperties: oneOf: - type: object properties: status: type: string const: evaluated score: type: number minimum: 0 maximum: 1 scopeScore: type: number minimum: 0 maximum: 1 likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely required: - status - score - likelihood additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable required: - status - reason additionalProperties: false required: - status - likelihood - score additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable qualifiers: type: object propertyNames: type: string enum: - nudity - sexual-activity - explicit-sexual-language - sexual-solicitation - physical-attack - violent-threat - violent-preparation - violent-encouragement - injury - death - graphic - self-harm-thoughts - self-harm-preparation - self-harm-act - self-harm-methods - self-harm-encouragement - personal-abuse - targeted-intimidation - harassment-threat - sexual-harassment - harassment-encouragement - identity-abuse - dehumanization - identity-inferiority - discriminatory-exclusion - hate-threat - criminal-demonstration - criminal-preparation - criminal-request - criminal-instructions - criminal-promotion - historical - documentary - fictional - support-prevention additionalProperties: oneOf: - type: object properties: status: type: string const: evaluated score: type: number minimum: 0 maximum: 1 scopeScore: type: number minimum: 0 maximum: 1 likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely required: - status - score - likelihood additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable required: - status - reason additionalProperties: false required: - status - reason additionalProperties: false criminal-activity: oneOf: - type: object properties: status: type: string const: evaluated likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely score: type: number minimum: 0 maximum: 1 qualifiers: type: object propertyNames: type: string enum: - nudity - sexual-activity - explicit-sexual-language - sexual-solicitation - physical-attack - violent-threat - violent-preparation - violent-encouragement - injury - death - graphic - self-harm-thoughts - self-harm-preparation - self-harm-act - self-harm-methods - self-harm-encouragement - personal-abuse - targeted-intimidation - harassment-threat - sexual-harassment - harassment-encouragement - identity-abuse - dehumanization - identity-inferiority - discriminatory-exclusion - hate-threat - criminal-demonstration - criminal-preparation - criminal-request - criminal-instructions - criminal-promotion - historical - documentary - fictional - support-prevention additionalProperties: oneOf: - type: object properties: status: type: string const: evaluated score: type: number minimum: 0 maximum: 1 scopeScore: type: number minimum: 0 maximum: 1 likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely required: - status - score - likelihood additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable required: - status - reason additionalProperties: false required: - status - likelihood - score additionalProperties: false - type: object properties: status: type: string const: partial likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely score: type: number minimum: 0 maximum: 1 qualifiers: type: object propertyNames: type: string enum: - nudity - sexual-activity - explicit-sexual-language - sexual-solicitation - physical-attack - violent-threat - violent-preparation - violent-encouragement - injury - death - graphic - self-harm-thoughts - self-harm-preparation - self-harm-act - self-harm-methods - self-harm-encouragement - personal-abuse - targeted-intimidation - harassment-threat - sexual-harassment - harassment-encouragement - identity-abuse - dehumanization - identity-inferiority - discriminatory-exclusion - hate-threat - criminal-demonstration - criminal-preparation - criminal-request - criminal-instructions - criminal-promotion - historical - documentary - fictional - support-prevention additionalProperties: oneOf: - type: object properties: status: type: string const: evaluated score: type: number minimum: 0 maximum: 1 scopeScore: type: number minimum: 0 maximum: 1 likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely required: - status - score - likelihood additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable required: - status - reason additionalProperties: false required: - status - likelihood - score additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable qualifiers: type: object propertyNames: type: string enum: - nudity - sexual-activity - explicit-sexual-language - sexual-solicitation - physical-attack - violent-threat - violent-preparation - violent-encouragement - injury - death - graphic - self-harm-thoughts - self-harm-preparation - self-harm-act - self-harm-methods - self-harm-encouragement - personal-abuse - targeted-intimidation - harassment-threat - sexual-harassment - harassment-encouragement - identity-abuse - dehumanization - identity-inferiority - discriminatory-exclusion - hate-threat - criminal-demonstration - criminal-preparation - criminal-request - criminal-instructions - criminal-promotion - historical - documentary - fictional - support-prevention additionalProperties: oneOf: - type: object properties: status: type: string const: evaluated score: type: number minimum: 0 maximum: 1 scopeScore: type: number minimum: 0 maximum: 1 likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely required: - status - score - likelihood additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable required: - status - reason additionalProperties: false required: - status - reason additionalProperties: false required: - sexual - violence - self-harm - harassment - hate - criminal-activity additionalProperties: false required: - source - startSeconds - endSeconds - categories additionalProperties: false required: - durationSeconds - sampledFrames - audioTranscribed - segments additionalProperties: false labels: anyOf: - type: array items: type: object properties: description: {} score: type: number topicalityScore: type: - number - "null" likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely knowledgeBaseId: anyOf: - {} - type: "null" required: - description - score - likelihood additionalProperties: false - type: "null" required: - processedAt - categories - flagged - score additionalProperties: false - type: "null" moderationAction: anyOf: - type: string enum: - ignore - alert - hide - purge - type: "null" description: The moderation action applied when this asset crossed a policy threshold status: type: string enum: - uploading - pending - approved - rejected - error description: Processing and moderation status. See [Asset lifecycle](/docs/guides/asset-lifecycle). safetyHold: anyOf: - type: object properties: placedAt: type: number description: When the hold was placed, in milliseconds since the Unix epoch reason: type: string enum: - suspected-illegal-content description: Why the asset is held disposedAt: description: When the held content was disposed of, in milliseconds since the Unix epoch type: - number - "null" required: - placedAt - reason additionalProperties: false - type: "null" description: Internal delivery restriction for suspected illegal content. Held content cannot be viewed, changed, or deleted through normal asset operations. rejectionNote: anyOf: - {} - type: "null" description: Reason the asset was rejected, generated automatically or supplied by a reviewer extractedText: anyOf: - oneOf: - type: object properties: type: type: string const: string content: type: string required: - type - content additionalProperties: false - type: object properties: type: type: string const: document id: {} required: - type - id additionalProperties: false - type: "null" description: Extracted text stored inline for small content or in R2 for larger content processingOptions: description: Processing options supplied when the asset was uploaded anyOf: - type: object properties: keepContentAfterProcessing: description: Whether to keep the asset content after processing default: false type: - boolean - "null" flaggedContentPolicy: anyOf: - type: object properties: action: type: string enum: - ignore - alert - hide - purge required: - action additionalProperties: false - type: "null" description: Override the project moderation action for this asset. Ignore takes no action, alert keeps delivery enabled, hide blocks delivery while retaining content, and purge deletes content. image: description: Options for image assets anyOf: - type: object properties: ocrEnabled: description: Whether to extract image text into a child asset and run normal text moderation. Applies to images, including those extracted from multimedia documents and websites. default: false type: - boolean - "null" additionalProperties: false - type: "null" additionalProperties: false - type: "null" visibility: anyOf: - type: string enum: - public - private - type: "null" description: Visibility level of the asset default: private storageDeletedAt: description: When the stored content was removed, in milliseconds since the Unix epoch. The asset record and report remain. type: - number - "null" required: - id - projectId - createdAt - name - type - status additionalProperties: false description: An asset in the system $defs: __schema0: anyOf: - type: string - type: number - type: boolean - type: "null" - type: array items: $ref: "#/paths/~1assets~1{assetId}~1content/delete/responses/200/content/application~1json/schema/$defs/__schema0" - type: object propertyNames: type: string additionalProperties: $ref: "#/paths/~1assets~1{assetId}~1content/delete/responses/200/content/application~1json/schema/$defs/__schema0" "401": description: |- auth/missing-token: Authentication required. Send your project API key in the X-Api-Key header. auth/invalid-api-key: The API key is invalid, revoked or expired. Create a key under Developer → API Keys. headers: X-Request-Id: *a1 content: application/json: schema: type: object required: - message - code - traceId properties: message: type: string code: type: string enum: - auth/missing-token - auth/invalid-api-key traceId: type: string examples: auth-missing-token: summary: Authentication required. Send your project API key in the X-Api-Key header. value: message: Authentication required. Send your project API key in the X-Api-Key header. code: auth/missing-token traceId: request-trace-id auth-invalid-api-key: summary: The API key is invalid, revoked or expired. Create a key under Developer → API Keys. value: message: The API key is invalid, revoked or expired. Create a key under Developer → API Keys. code: auth/invalid-api-key traceId: request-trace-id "403": description: "auth/project-mismatch: This API key belongs to a different project. Use a key created for the project that owns this resource." headers: X-Request-Id: *a1 content: application/json: schema: type: object required: - message - code - traceId properties: message: type: string code: type: string enum: - auth/project-mismatch traceId: type: string examples: auth-project-mismatch: summary: This API key belongs to a different project. Use a key created for the project that owns this resource. value: message: This API key belongs to a different project. Use a key created for the project that owns this resource. code: auth/project-mismatch traceId: request-trace-id "404": description: "asset/not-found: Asset not found" headers: X-Request-Id: *a1 content: application/json: schema: type: object required: - message - code - traceId properties: message: type: string code: type: string enum: - asset/not-found traceId: type: string examples: asset-not-found: summary: Asset not found value: message: Asset not found code: asset/not-found traceId: request-trace-id "500": description: "asset/update-failed: Failed to update asset" headers: X-Request-Id: *a1 content: application/json: schema: type: object required: - message - code - traceId properties: message: type: string code: type: string enum: - asset/update-failed traceId: type: string examples: asset-update-failed: summary: Failed to update asset value: message: Failed to update asset code: asset/update-failed traceId: request-trace-id parameters: - name: assetId in: path required: true description: UUID of the asset to delete schema: type: string format: uuid pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$ description: UUID of the asset to delete example: 987fcdeb-51a2-43d7-b890-123456789abc /assets/{assetId}/move: post: operationId: move-asset summary: Move Asset description: Move an asset into a folder, or to the project root security: - ApiKeyAuth: [] responses: "200": description: Successful response headers: X-Request-Id: *a1 content: application/json: schema: type: object properties: id: type: string format: uuid pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-4[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$ description: Unique asset ID projectId: type: string format: uuid pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-4[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$ description: ID of the project that owns the asset sizeInBytes: description: Size of the uploaded content in bytes type: - number - "null" userId: description: ID of the user whose account created the asset anyOf: - {} - type: "null" parentId: description: ID of the parent asset for child assets CalmLens extracts during processing, such as images in a document or OCR text. `null` for uploaded assets. anyOf: - type: string format: uuid pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-4[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$ - type: "null" folderId: anyOf: - type: string format: uuid pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-4[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$ - type: "null" description: Folder containing the asset createdAt: type: integer minimum: -9007199254740991 maximum: 9007199254740991 description: When the asset was created, in milliseconds since the Unix epoch updatedAt: description: When the asset was last updated, in milliseconds since the Unix epoch type: integer minimum: -9007199254740991 maximum: 9007199254740991 checksums: description: Digests of the uploaded content anyOf: - type: object properties: md5: description: MD5 digest of the uploaded content type: - string - "null" sha1: description: SHA-1 digest of the uploaded content type: - string - "null" sha256: description: SHA-256 digest of the uploaded content type: - string - "null" sha384: description: SHA-384 digest of the uploaded content type: - string - "null" sha512: description: SHA-512 digest of the uploaded content type: - string - "null" additionalProperties: false - type: "null" imageData: description: Image properties, for image assets anyOf: - type: object properties: perceptualHash: description: Perceptual hash used to match visually similar images type: - string - "null" width: description: Image width in pixels anyOf: - type: integer exclusiveMinimum: 0 maximum: 9007199254740991 - type: "null" height: description: Image height in pixels anyOf: - type: integer exclusiveMinimum: 0 maximum: 9007199254740991 - type: "null" additionalProperties: false - type: "null" documentData: description: Document properties, for documents anyOf: - type: object properties: {} additionalProperties: false - type: "null" name: description: Name of the asset fileFormat: description: MIME type of the stored content anyOf: - {} - type: "null" fileExtension: description: File extension of the stored content anyOf: - {} - type: "null" description: anyOf: - {} - type: "null" description: Optional description of the asset externalId: anyOf: - {} - type: "null" description: External identifier for the asset externalUrl: anyOf: - type: string format: uri - type: "null" description: External URL associated with the asset previewImage: description: Browser-friendly preview generated for images, documents and websites anyOf: - type: object properties: id: anyOf: - {} - type: "null" description: Identifier of the stored preview image fileFormat: anyOf: - {} - type: "null" description: File format of the preview, such as `webp` thumbhash: anyOf: - {} - type: "null" description: ThumbHash placeholder you can render while the preview loads averageColor: anyOf: - {} - type: "null" description: Average color of the preview width: anyOf: - type: integer exclusiveMinimum: 0 maximum: 9007199254740991 - type: "null" description: Preview width in pixels height: anyOf: - type: integer exclusiveMinimum: 0 maximum: 9007199254740991 - type: "null" description: Preview height in pixels required: - id - fileFormat - thumbhash - averageColor - width - height additionalProperties: false - type: "null" storageId: description: Internal storage key of the retained content; `null` when nothing is stored anyOf: - {} - type: "null" uploadPartsReceived: description: Number of parts received so far for a multipart upload anyOf: - type: integer minimum: -9007199254740991 maximum: 9007199254740991 - type: "null" type: type: string enum: - image - video - audio - plaintext-document - multimedia-document - website - file description: Asset type, detected from the content's MIME type metadata: anyOf: - type: array items: type: object properties: id: description: Identifier for the metadata item value: $ref: "#/paths/~1assets~1{assetId}~1move/post/responses/200/content/application~1json/schema/$defs/__schema0" description: Value of the metadata item required: - id - value additionalProperties: false description: A metadata item with an ID and value - type: "null" description: List of custom metadata items for the asset tags: anyOf: - type: array items: {} - type: "null" description: Array of tags for the asset report: description: Moderation report, set once classification finishes. See [Report format](/docs/guides/moderation-reports). anyOf: - type: object properties: processedAt: type: number categories: type: object properties: sexual: oneOf: - type: object properties: status: type: string const: evaluated likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely score: type: number minimum: 0 maximum: 1 qualifiers: type: object propertyNames: type: string enum: - nudity - sexual-activity - explicit-sexual-language - sexual-solicitation - physical-attack - violent-threat - violent-preparation - violent-encouragement - injury - death - graphic - self-harm-thoughts - self-harm-preparation - self-harm-act - self-harm-methods - self-harm-encouragement - personal-abuse - targeted-intimidation - harassment-threat - sexual-harassment - harassment-encouragement - identity-abuse - dehumanization - identity-inferiority - discriminatory-exclusion - hate-threat - criminal-demonstration - criminal-preparation - criminal-request - criminal-instructions - criminal-promotion - historical - documentary - fictional - support-prevention additionalProperties: oneOf: - type: object properties: status: type: string const: evaluated score: type: number minimum: 0 maximum: 1 scopeScore: type: number minimum: 0 maximum: 1 likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely required: - status - score - likelihood additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable required: - status - reason additionalProperties: false required: - status - likelihood - score additionalProperties: false - type: object properties: status: type: string const: partial likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely score: type: number minimum: 0 maximum: 1 qualifiers: type: object propertyNames: type: string enum: - nudity - sexual-activity - explicit-sexual-language - sexual-solicitation - physical-attack - violent-threat - violent-preparation - violent-encouragement - injury - death - graphic - self-harm-thoughts - self-harm-preparation - self-harm-act - self-harm-methods - self-harm-encouragement - personal-abuse - targeted-intimidation - harassment-threat - sexual-harassment - harassment-encouragement - identity-abuse - dehumanization - identity-inferiority - discriminatory-exclusion - hate-threat - criminal-demonstration - criminal-preparation - criminal-request - criminal-instructions - criminal-promotion - historical - documentary - fictional - support-prevention additionalProperties: oneOf: - type: object properties: status: type: string const: evaluated score: type: number minimum: 0 maximum: 1 scopeScore: type: number minimum: 0 maximum: 1 likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely required: - status - score - likelihood additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable required: - status - reason additionalProperties: false required: - status - likelihood - score additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable qualifiers: type: object propertyNames: type: string enum: - nudity - sexual-activity - explicit-sexual-language - sexual-solicitation - physical-attack - violent-threat - violent-preparation - violent-encouragement - injury - death - graphic - self-harm-thoughts - self-harm-preparation - self-harm-act - self-harm-methods - self-harm-encouragement - personal-abuse - targeted-intimidation - harassment-threat - sexual-harassment - harassment-encouragement - identity-abuse - dehumanization - identity-inferiority - discriminatory-exclusion - hate-threat - criminal-demonstration - criminal-preparation - criminal-request - criminal-instructions - criminal-promotion - historical - documentary - fictional - support-prevention additionalProperties: oneOf: - type: object properties: status: type: string const: evaluated score: type: number minimum: 0 maximum: 1 scopeScore: type: number minimum: 0 maximum: 1 likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely required: - status - score - likelihood additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable required: - status - reason additionalProperties: false required: - status - reason additionalProperties: false violence: oneOf: - type: object properties: status: type: string const: evaluated likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely score: type: number minimum: 0 maximum: 1 qualifiers: type: object propertyNames: type: string enum: - nudity - sexual-activity - explicit-sexual-language - sexual-solicitation - physical-attack - violent-threat - violent-preparation - violent-encouragement - injury - death - graphic - self-harm-thoughts - self-harm-preparation - self-harm-act - self-harm-methods - self-harm-encouragement - personal-abuse - targeted-intimidation - harassment-threat - sexual-harassment - harassment-encouragement - identity-abuse - dehumanization - identity-inferiority - discriminatory-exclusion - hate-threat - criminal-demonstration - criminal-preparation - criminal-request - criminal-instructions - criminal-promotion - historical - documentary - fictional - support-prevention additionalProperties: oneOf: - type: object properties: status: type: string const: evaluated score: type: number minimum: 0 maximum: 1 scopeScore: type: number minimum: 0 maximum: 1 likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely required: - status - score - likelihood additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable required: - status - reason additionalProperties: false required: - status - likelihood - score additionalProperties: false - type: object properties: status: type: string const: partial likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely score: type: number minimum: 0 maximum: 1 qualifiers: type: object propertyNames: type: string enum: - nudity - sexual-activity - explicit-sexual-language - sexual-solicitation - physical-attack - violent-threat - violent-preparation - violent-encouragement - injury - death - graphic - self-harm-thoughts - self-harm-preparation - self-harm-act - self-harm-methods - self-harm-encouragement - personal-abuse - targeted-intimidation - harassment-threat - sexual-harassment - harassment-encouragement - identity-abuse - dehumanization - identity-inferiority - discriminatory-exclusion - hate-threat - criminal-demonstration - criminal-preparation - criminal-request - criminal-instructions - criminal-promotion - historical - documentary - fictional - support-prevention additionalProperties: oneOf: - type: object properties: status: type: string const: evaluated score: type: number minimum: 0 maximum: 1 scopeScore: type: number minimum: 0 maximum: 1 likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely required: - status - score - likelihood additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable required: - status - reason additionalProperties: false required: - status - likelihood - score additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable qualifiers: type: object propertyNames: type: string enum: - nudity - sexual-activity - explicit-sexual-language - sexual-solicitation - physical-attack - violent-threat - violent-preparation - violent-encouragement - injury - death - graphic - self-harm-thoughts - self-harm-preparation - self-harm-act - self-harm-methods - self-harm-encouragement - personal-abuse - targeted-intimidation - harassment-threat - sexual-harassment - harassment-encouragement - identity-abuse - dehumanization - identity-inferiority - discriminatory-exclusion - hate-threat - criminal-demonstration - criminal-preparation - criminal-request - criminal-instructions - criminal-promotion - historical - documentary - fictional - support-prevention additionalProperties: oneOf: - type: object properties: status: type: string const: evaluated score: type: number minimum: 0 maximum: 1 scopeScore: type: number minimum: 0 maximum: 1 likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely required: - status - score - likelihood additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable required: - status - reason additionalProperties: false required: - status - reason additionalProperties: false self-harm: oneOf: - type: object properties: status: type: string const: evaluated likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely score: type: number minimum: 0 maximum: 1 qualifiers: type: object propertyNames: type: string enum: - nudity - sexual-activity - explicit-sexual-language - sexual-solicitation - physical-attack - violent-threat - violent-preparation - violent-encouragement - injury - death - graphic - self-harm-thoughts - self-harm-preparation - self-harm-act - self-harm-methods - self-harm-encouragement - personal-abuse - targeted-intimidation - harassment-threat - sexual-harassment - harassment-encouragement - identity-abuse - dehumanization - identity-inferiority - discriminatory-exclusion - hate-threat - criminal-demonstration - criminal-preparation - criminal-request - criminal-instructions - criminal-promotion - historical - documentary - fictional - support-prevention additionalProperties: oneOf: - type: object properties: status: type: string const: evaluated score: type: number minimum: 0 maximum: 1 scopeScore: type: number minimum: 0 maximum: 1 likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely required: - status - score - likelihood additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable required: - status - reason additionalProperties: false required: - status - likelihood - score additionalProperties: false - type: object properties: status: type: string const: partial likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely score: type: number minimum: 0 maximum: 1 qualifiers: type: object propertyNames: type: string enum: - nudity - sexual-activity - explicit-sexual-language - sexual-solicitation - physical-attack - violent-threat - violent-preparation - violent-encouragement - injury - death - graphic - self-harm-thoughts - self-harm-preparation - self-harm-act - self-harm-methods - self-harm-encouragement - personal-abuse - targeted-intimidation - harassment-threat - sexual-harassment - harassment-encouragement - identity-abuse - dehumanization - identity-inferiority - discriminatory-exclusion - hate-threat - criminal-demonstration - criminal-preparation - criminal-request - criminal-instructions - criminal-promotion - historical - documentary - fictional - support-prevention additionalProperties: oneOf: - type: object properties: status: type: string const: evaluated score: type: number minimum: 0 maximum: 1 scopeScore: type: number minimum: 0 maximum: 1 likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely required: - status - score - likelihood additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable required: - status - reason additionalProperties: false required: - status - likelihood - score additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable qualifiers: type: object propertyNames: type: string enum: - nudity - sexual-activity - explicit-sexual-language - sexual-solicitation - physical-attack - violent-threat - violent-preparation - violent-encouragement - injury - death - graphic - self-harm-thoughts - self-harm-preparation - self-harm-act - self-harm-methods - self-harm-encouragement - personal-abuse - targeted-intimidation - harassment-threat - sexual-harassment - harassment-encouragement - identity-abuse - dehumanization - identity-inferiority - discriminatory-exclusion - hate-threat - criminal-demonstration - criminal-preparation - criminal-request - criminal-instructions - criminal-promotion - historical - documentary - fictional - support-prevention additionalProperties: oneOf: - type: object properties: status: type: string const: evaluated score: type: number minimum: 0 maximum: 1 scopeScore: type: number minimum: 0 maximum: 1 likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely required: - status - score - likelihood additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable required: - status - reason additionalProperties: false required: - status - reason additionalProperties: false harassment: oneOf: - type: object properties: status: type: string const: evaluated likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely score: type: number minimum: 0 maximum: 1 qualifiers: type: object propertyNames: type: string enum: - nudity - sexual-activity - explicit-sexual-language - sexual-solicitation - physical-attack - violent-threat - violent-preparation - violent-encouragement - injury - death - graphic - self-harm-thoughts - self-harm-preparation - self-harm-act - self-harm-methods - self-harm-encouragement - personal-abuse - targeted-intimidation - harassment-threat - sexual-harassment - harassment-encouragement - identity-abuse - dehumanization - identity-inferiority - discriminatory-exclusion - hate-threat - criminal-demonstration - criminal-preparation - criminal-request - criminal-instructions - criminal-promotion - historical - documentary - fictional - support-prevention additionalProperties: oneOf: - type: object properties: status: type: string const: evaluated score: type: number minimum: 0 maximum: 1 scopeScore: type: number minimum: 0 maximum: 1 likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely required: - status - score - likelihood additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable required: - status - reason additionalProperties: false required: - status - likelihood - score additionalProperties: false - type: object properties: status: type: string const: partial likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely score: type: number minimum: 0 maximum: 1 qualifiers: type: object propertyNames: type: string enum: - nudity - sexual-activity - explicit-sexual-language - sexual-solicitation - physical-attack - violent-threat - violent-preparation - violent-encouragement - injury - death - graphic - self-harm-thoughts - self-harm-preparation - self-harm-act - self-harm-methods - self-harm-encouragement - personal-abuse - targeted-intimidation - harassment-threat - sexual-harassment - harassment-encouragement - identity-abuse - dehumanization - identity-inferiority - discriminatory-exclusion - hate-threat - criminal-demonstration - criminal-preparation - criminal-request - criminal-instructions - criminal-promotion - historical - documentary - fictional - support-prevention additionalProperties: oneOf: - type: object properties: status: type: string const: evaluated score: type: number minimum: 0 maximum: 1 scopeScore: type: number minimum: 0 maximum: 1 likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely required: - status - score - likelihood additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable required: - status - reason additionalProperties: false required: - status - likelihood - score additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable qualifiers: type: object propertyNames: type: string enum: - nudity - sexual-activity - explicit-sexual-language - sexual-solicitation - physical-attack - violent-threat - violent-preparation - violent-encouragement - injury - death - graphic - self-harm-thoughts - self-harm-preparation - self-harm-act - self-harm-methods - self-harm-encouragement - personal-abuse - targeted-intimidation - harassment-threat - sexual-harassment - harassment-encouragement - identity-abuse - dehumanization - identity-inferiority - discriminatory-exclusion - hate-threat - criminal-demonstration - criminal-preparation - criminal-request - criminal-instructions - criminal-promotion - historical - documentary - fictional - support-prevention additionalProperties: oneOf: - type: object properties: status: type: string const: evaluated score: type: number minimum: 0 maximum: 1 scopeScore: type: number minimum: 0 maximum: 1 likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely required: - status - score - likelihood additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable required: - status - reason additionalProperties: false required: - status - reason additionalProperties: false hate: oneOf: - type: object properties: status: type: string const: evaluated likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely score: type: number minimum: 0 maximum: 1 qualifiers: type: object propertyNames: type: string enum: - nudity - sexual-activity - explicit-sexual-language - sexual-solicitation - physical-attack - violent-threat - violent-preparation - violent-encouragement - injury - death - graphic - self-harm-thoughts - self-harm-preparation - self-harm-act - self-harm-methods - self-harm-encouragement - personal-abuse - targeted-intimidation - harassment-threat - sexual-harassment - harassment-encouragement - identity-abuse - dehumanization - identity-inferiority - discriminatory-exclusion - hate-threat - criminal-demonstration - criminal-preparation - criminal-request - criminal-instructions - criminal-promotion - historical - documentary - fictional - support-prevention additionalProperties: oneOf: - type: object properties: status: type: string const: evaluated score: type: number minimum: 0 maximum: 1 scopeScore: type: number minimum: 0 maximum: 1 likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely required: - status - score - likelihood additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable required: - status - reason additionalProperties: false required: - status - likelihood - score additionalProperties: false - type: object properties: status: type: string const: partial likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely score: type: number minimum: 0 maximum: 1 qualifiers: type: object propertyNames: type: string enum: - nudity - sexual-activity - explicit-sexual-language - sexual-solicitation - physical-attack - violent-threat - violent-preparation - violent-encouragement - injury - death - graphic - self-harm-thoughts - self-harm-preparation - self-harm-act - self-harm-methods - self-harm-encouragement - personal-abuse - targeted-intimidation - harassment-threat - sexual-harassment - harassment-encouragement - identity-abuse - dehumanization - identity-inferiority - discriminatory-exclusion - hate-threat - criminal-demonstration - criminal-preparation - criminal-request - criminal-instructions - criminal-promotion - historical - documentary - fictional - support-prevention additionalProperties: oneOf: - type: object properties: status: type: string const: evaluated score: type: number minimum: 0 maximum: 1 scopeScore: type: number minimum: 0 maximum: 1 likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely required: - status - score - likelihood additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable required: - status - reason additionalProperties: false required: - status - likelihood - score additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable qualifiers: type: object propertyNames: type: string enum: - nudity - sexual-activity - explicit-sexual-language - sexual-solicitation - physical-attack - violent-threat - violent-preparation - violent-encouragement - injury - death - graphic - self-harm-thoughts - self-harm-preparation - self-harm-act - self-harm-methods - self-harm-encouragement - personal-abuse - targeted-intimidation - harassment-threat - sexual-harassment - harassment-encouragement - identity-abuse - dehumanization - identity-inferiority - discriminatory-exclusion - hate-threat - criminal-demonstration - criminal-preparation - criminal-request - criminal-instructions - criminal-promotion - historical - documentary - fictional - support-prevention additionalProperties: oneOf: - type: object properties: status: type: string const: evaluated score: type: number minimum: 0 maximum: 1 scopeScore: type: number minimum: 0 maximum: 1 likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely required: - status - score - likelihood additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable required: - status - reason additionalProperties: false required: - status - reason additionalProperties: false criminal-activity: oneOf: - type: object properties: status: type: string const: evaluated likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely score: type: number minimum: 0 maximum: 1 qualifiers: type: object propertyNames: type: string enum: - nudity - sexual-activity - explicit-sexual-language - sexual-solicitation - physical-attack - violent-threat - violent-preparation - violent-encouragement - injury - death - graphic - self-harm-thoughts - self-harm-preparation - self-harm-act - self-harm-methods - self-harm-encouragement - personal-abuse - targeted-intimidation - harassment-threat - sexual-harassment - harassment-encouragement - identity-abuse - dehumanization - identity-inferiority - discriminatory-exclusion - hate-threat - criminal-demonstration - criminal-preparation - criminal-request - criminal-instructions - criminal-promotion - historical - documentary - fictional - support-prevention additionalProperties: oneOf: - type: object properties: status: type: string const: evaluated score: type: number minimum: 0 maximum: 1 scopeScore: type: number minimum: 0 maximum: 1 likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely required: - status - score - likelihood additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable required: - status - reason additionalProperties: false required: - status - likelihood - score additionalProperties: false - type: object properties: status: type: string const: partial likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely score: type: number minimum: 0 maximum: 1 qualifiers: type: object propertyNames: type: string enum: - nudity - sexual-activity - explicit-sexual-language - sexual-solicitation - physical-attack - violent-threat - violent-preparation - violent-encouragement - injury - death - graphic - self-harm-thoughts - self-harm-preparation - self-harm-act - self-harm-methods - self-harm-encouragement - personal-abuse - targeted-intimidation - harassment-threat - sexual-harassment - harassment-encouragement - identity-abuse - dehumanization - identity-inferiority - discriminatory-exclusion - hate-threat - criminal-demonstration - criminal-preparation - criminal-request - criminal-instructions - criminal-promotion - historical - documentary - fictional - support-prevention additionalProperties: oneOf: - type: object properties: status: type: string const: evaluated score: type: number minimum: 0 maximum: 1 scopeScore: type: number minimum: 0 maximum: 1 likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely required: - status - score - likelihood additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable required: - status - reason additionalProperties: false required: - status - likelihood - score additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable qualifiers: type: object propertyNames: type: string enum: - nudity - sexual-activity - explicit-sexual-language - sexual-solicitation - physical-attack - violent-threat - violent-preparation - violent-encouragement - injury - death - graphic - self-harm-thoughts - self-harm-preparation - self-harm-act - self-harm-methods - self-harm-encouragement - personal-abuse - targeted-intimidation - harassment-threat - sexual-harassment - harassment-encouragement - identity-abuse - dehumanization - identity-inferiority - discriminatory-exclusion - hate-threat - criminal-demonstration - criminal-preparation - criminal-request - criminal-instructions - criminal-promotion - historical - documentary - fictional - support-prevention additionalProperties: oneOf: - type: object properties: status: type: string const: evaluated score: type: number minimum: 0 maximum: 1 scopeScore: type: number minimum: 0 maximum: 1 likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely required: - status - score - likelihood additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable required: - status - reason additionalProperties: false required: - status - reason additionalProperties: false required: - sexual - violence - self-harm - harassment - hate - criminal-activity additionalProperties: false flagged: type: boolean score: type: number notes: anyOf: - {} - type: "null" media: type: object properties: durationSeconds: type: number exclusiveMinimum: 0 frameIntervalSeconds: type: number exclusiveMinimum: 0 sampledFrames: type: integer minimum: 0 maximum: 9007199254740991 audioTranscribed: type: boolean segments: type: array items: type: object properties: source: type: string enum: - frame - speech - frame-text - clip startSeconds: type: number minimum: 0 endSeconds: type: number minimum: 0 categories: type: object properties: sexual: oneOf: - type: object properties: status: type: string const: evaluated likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely score: type: number minimum: 0 maximum: 1 qualifiers: type: object propertyNames: type: string enum: - nudity - sexual-activity - explicit-sexual-language - sexual-solicitation - physical-attack - violent-threat - violent-preparation - violent-encouragement - injury - death - graphic - self-harm-thoughts - self-harm-preparation - self-harm-act - self-harm-methods - self-harm-encouragement - personal-abuse - targeted-intimidation - harassment-threat - sexual-harassment - harassment-encouragement - identity-abuse - dehumanization - identity-inferiority - discriminatory-exclusion - hate-threat - criminal-demonstration - criminal-preparation - criminal-request - criminal-instructions - criminal-promotion - historical - documentary - fictional - support-prevention additionalProperties: oneOf: - type: object properties: status: type: string const: evaluated score: type: number minimum: 0 maximum: 1 scopeScore: type: number minimum: 0 maximum: 1 likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely required: - status - score - likelihood additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable required: - status - reason additionalProperties: false required: - status - likelihood - score additionalProperties: false - type: object properties: status: type: string const: partial likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely score: type: number minimum: 0 maximum: 1 qualifiers: type: object propertyNames: type: string enum: - nudity - sexual-activity - explicit-sexual-language - sexual-solicitation - physical-attack - violent-threat - violent-preparation - violent-encouragement - injury - death - graphic - self-harm-thoughts - self-harm-preparation - self-harm-act - self-harm-methods - self-harm-encouragement - personal-abuse - targeted-intimidation - harassment-threat - sexual-harassment - harassment-encouragement - identity-abuse - dehumanization - identity-inferiority - discriminatory-exclusion - hate-threat - criminal-demonstration - criminal-preparation - criminal-request - criminal-instructions - criminal-promotion - historical - documentary - fictional - support-prevention additionalProperties: oneOf: - type: object properties: status: type: string const: evaluated score: type: number minimum: 0 maximum: 1 scopeScore: type: number minimum: 0 maximum: 1 likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely required: - status - score - likelihood additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable required: - status - reason additionalProperties: false required: - status - likelihood - score additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable qualifiers: type: object propertyNames: type: string enum: - nudity - sexual-activity - explicit-sexual-language - sexual-solicitation - physical-attack - violent-threat - violent-preparation - violent-encouragement - injury - death - graphic - self-harm-thoughts - self-harm-preparation - self-harm-act - self-harm-methods - self-harm-encouragement - personal-abuse - targeted-intimidation - harassment-threat - sexual-harassment - harassment-encouragement - identity-abuse - dehumanization - identity-inferiority - discriminatory-exclusion - hate-threat - criminal-demonstration - criminal-preparation - criminal-request - criminal-instructions - criminal-promotion - historical - documentary - fictional - support-prevention additionalProperties: oneOf: - type: object properties: status: type: string const: evaluated score: type: number minimum: 0 maximum: 1 scopeScore: type: number minimum: 0 maximum: 1 likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely required: - status - score - likelihood additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable required: - status - reason additionalProperties: false required: - status - reason additionalProperties: false violence: oneOf: - type: object properties: status: type: string const: evaluated likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely score: type: number minimum: 0 maximum: 1 qualifiers: type: object propertyNames: type: string enum: - nudity - sexual-activity - explicit-sexual-language - sexual-solicitation - physical-attack - violent-threat - violent-preparation - violent-encouragement - injury - death - graphic - self-harm-thoughts - self-harm-preparation - self-harm-act - self-harm-methods - self-harm-encouragement - personal-abuse - targeted-intimidation - harassment-threat - sexual-harassment - harassment-encouragement - identity-abuse - dehumanization - identity-inferiority - discriminatory-exclusion - hate-threat - criminal-demonstration - criminal-preparation - criminal-request - criminal-instructions - criminal-promotion - historical - documentary - fictional - support-prevention additionalProperties: oneOf: - type: object properties: status: type: string const: evaluated score: type: number minimum: 0 maximum: 1 scopeScore: type: number minimum: 0 maximum: 1 likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely required: - status - score - likelihood additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable required: - status - reason additionalProperties: false required: - status - likelihood - score additionalProperties: false - type: object properties: status: type: string const: partial likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely score: type: number minimum: 0 maximum: 1 qualifiers: type: object propertyNames: type: string enum: - nudity - sexual-activity - explicit-sexual-language - sexual-solicitation - physical-attack - violent-threat - violent-preparation - violent-encouragement - injury - death - graphic - self-harm-thoughts - self-harm-preparation - self-harm-act - self-harm-methods - self-harm-encouragement - personal-abuse - targeted-intimidation - harassment-threat - sexual-harassment - harassment-encouragement - identity-abuse - dehumanization - identity-inferiority - discriminatory-exclusion - hate-threat - criminal-demonstration - criminal-preparation - criminal-request - criminal-instructions - criminal-promotion - historical - documentary - fictional - support-prevention additionalProperties: oneOf: - type: object properties: status: type: string const: evaluated score: type: number minimum: 0 maximum: 1 scopeScore: type: number minimum: 0 maximum: 1 likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely required: - status - score - likelihood additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable required: - status - reason additionalProperties: false required: - status - likelihood - score additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable qualifiers: type: object propertyNames: type: string enum: - nudity - sexual-activity - explicit-sexual-language - sexual-solicitation - physical-attack - violent-threat - violent-preparation - violent-encouragement - injury - death - graphic - self-harm-thoughts - self-harm-preparation - self-harm-act - self-harm-methods - self-harm-encouragement - personal-abuse - targeted-intimidation - harassment-threat - sexual-harassment - harassment-encouragement - identity-abuse - dehumanization - identity-inferiority - discriminatory-exclusion - hate-threat - criminal-demonstration - criminal-preparation - criminal-request - criminal-instructions - criminal-promotion - historical - documentary - fictional - support-prevention additionalProperties: oneOf: - type: object properties: status: type: string const: evaluated score: type: number minimum: 0 maximum: 1 scopeScore: type: number minimum: 0 maximum: 1 likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely required: - status - score - likelihood additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable required: - status - reason additionalProperties: false required: - status - reason additionalProperties: false self-harm: oneOf: - type: object properties: status: type: string const: evaluated likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely score: type: number minimum: 0 maximum: 1 qualifiers: type: object propertyNames: type: string enum: - nudity - sexual-activity - explicit-sexual-language - sexual-solicitation - physical-attack - violent-threat - violent-preparation - violent-encouragement - injury - death - graphic - self-harm-thoughts - self-harm-preparation - self-harm-act - self-harm-methods - self-harm-encouragement - personal-abuse - targeted-intimidation - harassment-threat - sexual-harassment - harassment-encouragement - identity-abuse - dehumanization - identity-inferiority - discriminatory-exclusion - hate-threat - criminal-demonstration - criminal-preparation - criminal-request - criminal-instructions - criminal-promotion - historical - documentary - fictional - support-prevention additionalProperties: oneOf: - type: object properties: status: type: string const: evaluated score: type: number minimum: 0 maximum: 1 scopeScore: type: number minimum: 0 maximum: 1 likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely required: - status - score - likelihood additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable required: - status - reason additionalProperties: false required: - status - likelihood - score additionalProperties: false - type: object properties: status: type: string const: partial likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely score: type: number minimum: 0 maximum: 1 qualifiers: type: object propertyNames: type: string enum: - nudity - sexual-activity - explicit-sexual-language - sexual-solicitation - physical-attack - violent-threat - violent-preparation - violent-encouragement - injury - death - graphic - self-harm-thoughts - self-harm-preparation - self-harm-act - self-harm-methods - self-harm-encouragement - personal-abuse - targeted-intimidation - harassment-threat - sexual-harassment - harassment-encouragement - identity-abuse - dehumanization - identity-inferiority - discriminatory-exclusion - hate-threat - criminal-demonstration - criminal-preparation - criminal-request - criminal-instructions - criminal-promotion - historical - documentary - fictional - support-prevention additionalProperties: oneOf: - type: object properties: status: type: string const: evaluated score: type: number minimum: 0 maximum: 1 scopeScore: type: number minimum: 0 maximum: 1 likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely required: - status - score - likelihood additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable required: - status - reason additionalProperties: false required: - status - likelihood - score additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable qualifiers: type: object propertyNames: type: string enum: - nudity - sexual-activity - explicit-sexual-language - sexual-solicitation - physical-attack - violent-threat - violent-preparation - violent-encouragement - injury - death - graphic - self-harm-thoughts - self-harm-preparation - self-harm-act - self-harm-methods - self-harm-encouragement - personal-abuse - targeted-intimidation - harassment-threat - sexual-harassment - harassment-encouragement - identity-abuse - dehumanization - identity-inferiority - discriminatory-exclusion - hate-threat - criminal-demonstration - criminal-preparation - criminal-request - criminal-instructions - criminal-promotion - historical - documentary - fictional - support-prevention additionalProperties: oneOf: - type: object properties: status: type: string const: evaluated score: type: number minimum: 0 maximum: 1 scopeScore: type: number minimum: 0 maximum: 1 likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely required: - status - score - likelihood additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable required: - status - reason additionalProperties: false required: - status - reason additionalProperties: false harassment: oneOf: - type: object properties: status: type: string const: evaluated likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely score: type: number minimum: 0 maximum: 1 qualifiers: type: object propertyNames: type: string enum: - nudity - sexual-activity - explicit-sexual-language - sexual-solicitation - physical-attack - violent-threat - violent-preparation - violent-encouragement - injury - death - graphic - self-harm-thoughts - self-harm-preparation - self-harm-act - self-harm-methods - self-harm-encouragement - personal-abuse - targeted-intimidation - harassment-threat - sexual-harassment - harassment-encouragement - identity-abuse - dehumanization - identity-inferiority - discriminatory-exclusion - hate-threat - criminal-demonstration - criminal-preparation - criminal-request - criminal-instructions - criminal-promotion - historical - documentary - fictional - support-prevention additionalProperties: oneOf: - type: object properties: status: type: string const: evaluated score: type: number minimum: 0 maximum: 1 scopeScore: type: number minimum: 0 maximum: 1 likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely required: - status - score - likelihood additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable required: - status - reason additionalProperties: false required: - status - likelihood - score additionalProperties: false - type: object properties: status: type: string const: partial likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely score: type: number minimum: 0 maximum: 1 qualifiers: type: object propertyNames: type: string enum: - nudity - sexual-activity - explicit-sexual-language - sexual-solicitation - physical-attack - violent-threat - violent-preparation - violent-encouragement - injury - death - graphic - self-harm-thoughts - self-harm-preparation - self-harm-act - self-harm-methods - self-harm-encouragement - personal-abuse - targeted-intimidation - harassment-threat - sexual-harassment - harassment-encouragement - identity-abuse - dehumanization - identity-inferiority - discriminatory-exclusion - hate-threat - criminal-demonstration - criminal-preparation - criminal-request - criminal-instructions - criminal-promotion - historical - documentary - fictional - support-prevention additionalProperties: oneOf: - type: object properties: status: type: string const: evaluated score: type: number minimum: 0 maximum: 1 scopeScore: type: number minimum: 0 maximum: 1 likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely required: - status - score - likelihood additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable required: - status - reason additionalProperties: false required: - status - likelihood - score additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable qualifiers: type: object propertyNames: type: string enum: - nudity - sexual-activity - explicit-sexual-language - sexual-solicitation - physical-attack - violent-threat - violent-preparation - violent-encouragement - injury - death - graphic - self-harm-thoughts - self-harm-preparation - self-harm-act - self-harm-methods - self-harm-encouragement - personal-abuse - targeted-intimidation - harassment-threat - sexual-harassment - harassment-encouragement - identity-abuse - dehumanization - identity-inferiority - discriminatory-exclusion - hate-threat - criminal-demonstration - criminal-preparation - criminal-request - criminal-instructions - criminal-promotion - historical - documentary - fictional - support-prevention additionalProperties: oneOf: - type: object properties: status: type: string const: evaluated score: type: number minimum: 0 maximum: 1 scopeScore: type: number minimum: 0 maximum: 1 likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely required: - status - score - likelihood additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable required: - status - reason additionalProperties: false required: - status - reason additionalProperties: false hate: oneOf: - type: object properties: status: type: string const: evaluated likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely score: type: number minimum: 0 maximum: 1 qualifiers: type: object propertyNames: type: string enum: - nudity - sexual-activity - explicit-sexual-language - sexual-solicitation - physical-attack - violent-threat - violent-preparation - violent-encouragement - injury - death - graphic - self-harm-thoughts - self-harm-preparation - self-harm-act - self-harm-methods - self-harm-encouragement - personal-abuse - targeted-intimidation - harassment-threat - sexual-harassment - harassment-encouragement - identity-abuse - dehumanization - identity-inferiority - discriminatory-exclusion - hate-threat - criminal-demonstration - criminal-preparation - criminal-request - criminal-instructions - criminal-promotion - historical - documentary - fictional - support-prevention additionalProperties: oneOf: - type: object properties: status: type: string const: evaluated score: type: number minimum: 0 maximum: 1 scopeScore: type: number minimum: 0 maximum: 1 likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely required: - status - score - likelihood additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable required: - status - reason additionalProperties: false required: - status - likelihood - score additionalProperties: false - type: object properties: status: type: string const: partial likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely score: type: number minimum: 0 maximum: 1 qualifiers: type: object propertyNames: type: string enum: - nudity - sexual-activity - explicit-sexual-language - sexual-solicitation - physical-attack - violent-threat - violent-preparation - violent-encouragement - injury - death - graphic - self-harm-thoughts - self-harm-preparation - self-harm-act - self-harm-methods - self-harm-encouragement - personal-abuse - targeted-intimidation - harassment-threat - sexual-harassment - harassment-encouragement - identity-abuse - dehumanization - identity-inferiority - discriminatory-exclusion - hate-threat - criminal-demonstration - criminal-preparation - criminal-request - criminal-instructions - criminal-promotion - historical - documentary - fictional - support-prevention additionalProperties: oneOf: - type: object properties: status: type: string const: evaluated score: type: number minimum: 0 maximum: 1 scopeScore: type: number minimum: 0 maximum: 1 likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely required: - status - score - likelihood additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable required: - status - reason additionalProperties: false required: - status - likelihood - score additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable qualifiers: type: object propertyNames: type: string enum: - nudity - sexual-activity - explicit-sexual-language - sexual-solicitation - physical-attack - violent-threat - violent-preparation - violent-encouragement - injury - death - graphic - self-harm-thoughts - self-harm-preparation - self-harm-act - self-harm-methods - self-harm-encouragement - personal-abuse - targeted-intimidation - harassment-threat - sexual-harassment - harassment-encouragement - identity-abuse - dehumanization - identity-inferiority - discriminatory-exclusion - hate-threat - criminal-demonstration - criminal-preparation - criminal-request - criminal-instructions - criminal-promotion - historical - documentary - fictional - support-prevention additionalProperties: oneOf: - type: object properties: status: type: string const: evaluated score: type: number minimum: 0 maximum: 1 scopeScore: type: number minimum: 0 maximum: 1 likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely required: - status - score - likelihood additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable required: - status - reason additionalProperties: false required: - status - reason additionalProperties: false criminal-activity: oneOf: - type: object properties: status: type: string const: evaluated likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely score: type: number minimum: 0 maximum: 1 qualifiers: type: object propertyNames: type: string enum: - nudity - sexual-activity - explicit-sexual-language - sexual-solicitation - physical-attack - violent-threat - violent-preparation - violent-encouragement - injury - death - graphic - self-harm-thoughts - self-harm-preparation - self-harm-act - self-harm-methods - self-harm-encouragement - personal-abuse - targeted-intimidation - harassment-threat - sexual-harassment - harassment-encouragement - identity-abuse - dehumanization - identity-inferiority - discriminatory-exclusion - hate-threat - criminal-demonstration - criminal-preparation - criminal-request - criminal-instructions - criminal-promotion - historical - documentary - fictional - support-prevention additionalProperties: oneOf: - type: object properties: status: type: string const: evaluated score: type: number minimum: 0 maximum: 1 scopeScore: type: number minimum: 0 maximum: 1 likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely required: - status - score - likelihood additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable required: - status - reason additionalProperties: false required: - status - likelihood - score additionalProperties: false - type: object properties: status: type: string const: partial likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely score: type: number minimum: 0 maximum: 1 qualifiers: type: object propertyNames: type: string enum: - nudity - sexual-activity - explicit-sexual-language - sexual-solicitation - physical-attack - violent-threat - violent-preparation - violent-encouragement - injury - death - graphic - self-harm-thoughts - self-harm-preparation - self-harm-act - self-harm-methods - self-harm-encouragement - personal-abuse - targeted-intimidation - harassment-threat - sexual-harassment - harassment-encouragement - identity-abuse - dehumanization - identity-inferiority - discriminatory-exclusion - hate-threat - criminal-demonstration - criminal-preparation - criminal-request - criminal-instructions - criminal-promotion - historical - documentary - fictional - support-prevention additionalProperties: oneOf: - type: object properties: status: type: string const: evaluated score: type: number minimum: 0 maximum: 1 scopeScore: type: number minimum: 0 maximum: 1 likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely required: - status - score - likelihood additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable required: - status - reason additionalProperties: false required: - status - likelihood - score additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable qualifiers: type: object propertyNames: type: string enum: - nudity - sexual-activity - explicit-sexual-language - sexual-solicitation - physical-attack - violent-threat - violent-preparation - violent-encouragement - injury - death - graphic - self-harm-thoughts - self-harm-preparation - self-harm-act - self-harm-methods - self-harm-encouragement - personal-abuse - targeted-intimidation - harassment-threat - sexual-harassment - harassment-encouragement - identity-abuse - dehumanization - identity-inferiority - discriminatory-exclusion - hate-threat - criminal-demonstration - criminal-preparation - criminal-request - criminal-instructions - criminal-promotion - historical - documentary - fictional - support-prevention additionalProperties: oneOf: - type: object properties: status: type: string const: evaluated score: type: number minimum: 0 maximum: 1 scopeScore: type: number minimum: 0 maximum: 1 likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely required: - status - score - likelihood additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable required: - status - reason additionalProperties: false required: - status - reason additionalProperties: false required: - sexual - violence - self-harm - harassment - hate - criminal-activity additionalProperties: false required: - source - startSeconds - endSeconds - categories additionalProperties: false required: - durationSeconds - sampledFrames - audioTranscribed - segments additionalProperties: false labels: anyOf: - type: array items: type: object properties: description: {} score: type: number topicalityScore: type: - number - "null" likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely knowledgeBaseId: anyOf: - {} - type: "null" required: - description - score - likelihood additionalProperties: false - type: "null" required: - processedAt - categories - flagged - score additionalProperties: false - type: "null" moderationAction: anyOf: - type: string enum: - ignore - alert - hide - purge - type: "null" description: The moderation action applied when this asset crossed a policy threshold status: type: string enum: - uploading - pending - approved - rejected - error description: Processing and moderation status. See [Asset lifecycle](/docs/guides/asset-lifecycle). safetyHold: anyOf: - type: object properties: placedAt: type: number description: When the hold was placed, in milliseconds since the Unix epoch reason: type: string enum: - suspected-illegal-content description: Why the asset is held disposedAt: description: When the held content was disposed of, in milliseconds since the Unix epoch type: - number - "null" required: - placedAt - reason additionalProperties: false - type: "null" description: Internal delivery restriction for suspected illegal content. Held content cannot be viewed, changed, or deleted through normal asset operations. rejectionNote: anyOf: - {} - type: "null" description: Reason the asset was rejected, generated automatically or supplied by a reviewer extractedText: anyOf: - oneOf: - type: object properties: type: type: string const: string content: type: string required: - type - content additionalProperties: false - type: object properties: type: type: string const: document id: {} required: - type - id additionalProperties: false - type: "null" description: Extracted text stored inline for small content or in R2 for larger content processingOptions: description: Processing options supplied when the asset was uploaded anyOf: - type: object properties: keepContentAfterProcessing: description: Whether to keep the asset content after processing default: false type: - boolean - "null" flaggedContentPolicy: anyOf: - type: object properties: action: type: string enum: - ignore - alert - hide - purge required: - action additionalProperties: false - type: "null" description: Override the project moderation action for this asset. Ignore takes no action, alert keeps delivery enabled, hide blocks delivery while retaining content, and purge deletes content. image: description: Options for image assets anyOf: - type: object properties: ocrEnabled: description: Whether to extract image text into a child asset and run normal text moderation. Applies to images, including those extracted from multimedia documents and websites. default: false type: - boolean - "null" additionalProperties: false - type: "null" additionalProperties: false - type: "null" visibility: anyOf: - type: string enum: - public - private - type: "null" description: Visibility level of the asset default: private storageDeletedAt: description: When the stored content was removed, in milliseconds since the Unix epoch. The asset record and report remain. type: - number - "null" required: - id - projectId - createdAt - name - type - status additionalProperties: false description: An asset in the system $defs: __schema0: anyOf: - type: string - type: number - type: boolean - type: "null" - type: array items: $ref: "#/paths/~1assets~1{assetId}~1move/post/responses/200/content/application~1json/schema/$defs/__schema0" - type: object propertyNames: type: string additionalProperties: $ref: "#/paths/~1assets~1{assetId}~1move/post/responses/200/content/application~1json/schema/$defs/__schema0" "401": description: |- auth/missing-token: Authentication required. Send your project API key in the X-Api-Key header. auth/invalid-api-key: The API key is invalid, revoked or expired. Create a key under Developer → API Keys. headers: X-Request-Id: *a1 content: application/json: schema: type: object required: - message - code - traceId properties: message: type: string code: type: string enum: - auth/missing-token - auth/invalid-api-key traceId: type: string examples: auth-missing-token: summary: Authentication required. Send your project API key in the X-Api-Key header. value: message: Authentication required. Send your project API key in the X-Api-Key header. code: auth/missing-token traceId: request-trace-id auth-invalid-api-key: summary: The API key is invalid, revoked or expired. Create a key under Developer → API Keys. value: message: The API key is invalid, revoked or expired. Create a key under Developer → API Keys. code: auth/invalid-api-key traceId: request-trace-id "403": description: "auth/project-mismatch: This API key belongs to a different project. Use a key created for the project that owns this resource." headers: X-Request-Id: *a1 content: application/json: schema: type: object required: - message - code - traceId properties: message: type: string code: type: string enum: - auth/project-mismatch traceId: type: string examples: auth-project-mismatch: summary: This API key belongs to a different project. Use a key created for the project that owns this resource. value: message: This API key belongs to a different project. Use a key created for the project that owns this resource. code: auth/project-mismatch traceId: request-trace-id "404": description: |- asset/not-found: Asset not found folder/not-found: Folder not found headers: X-Request-Id: *a1 content: application/json: schema: type: object required: - message - code - traceId properties: message: type: string code: type: string enum: - asset/not-found - folder/not-found traceId: type: string examples: asset-not-found: summary: Asset not found value: message: Asset not found code: asset/not-found traceId: request-trace-id folder-not-found: summary: Folder not found value: message: Folder not found code: folder/not-found traceId: request-trace-id "423": description: "asset/safety-held: Asset access is restricted by a safety hold." headers: X-Request-Id: *a1 content: application/json: schema: type: object required: - message - code - traceId properties: message: type: string code: type: string enum: - asset/safety-held traceId: type: string examples: asset-safety-held: summary: Asset access is restricted by a safety hold. value: message: Asset access is restricted by a safety hold. code: asset/safety-held traceId: request-trace-id "500": description: "asset/update-failed: Failed to update asset" headers: X-Request-Id: *a1 content: application/json: schema: type: object required: - message - code - traceId properties: message: type: string code: type: string enum: - asset/update-failed traceId: type: string examples: asset-update-failed: summary: Failed to update asset value: message: Failed to update asset code: asset/update-failed traceId: request-trace-id parameters: - name: assetId in: path required: true description: UUID of the asset to fetch schema: type: string format: uuid pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$ description: UUID of the asset to fetch requestBody: required: true content: application/json: schema: type: object properties: folderId: anyOf: - type: string format: uuid pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$ - type: "null" required: - folderId /assets/{assetId}/retry: post: operationId: retry-asset summary: Retry Asset description: Process an asset that failed (status error) again. It returns to pending and is moderated like a new upload. Its content must still be stored. security: - ApiKeyAuth: [] responses: "200": description: Successful response headers: X-Request-Id: *a1 content: application/json: schema: type: object properties: id: type: string format: uuid pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-4[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$ description: Unique asset ID projectId: type: string format: uuid pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-4[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$ description: ID of the project that owns the asset sizeInBytes: description: Size of the uploaded content in bytes type: - number - "null" userId: description: ID of the user whose account created the asset anyOf: - {} - type: "null" parentId: description: ID of the parent asset for child assets CalmLens extracts during processing, such as images in a document or OCR text. `null` for uploaded assets. anyOf: - type: string format: uuid pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-4[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$ - type: "null" folderId: anyOf: - type: string format: uuid pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-4[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$ - type: "null" description: Folder containing the asset createdAt: type: integer minimum: -9007199254740991 maximum: 9007199254740991 description: When the asset was created, in milliseconds since the Unix epoch updatedAt: description: When the asset was last updated, in milliseconds since the Unix epoch type: integer minimum: -9007199254740991 maximum: 9007199254740991 checksums: description: Digests of the uploaded content anyOf: - type: object properties: md5: description: MD5 digest of the uploaded content type: - string - "null" sha1: description: SHA-1 digest of the uploaded content type: - string - "null" sha256: description: SHA-256 digest of the uploaded content type: - string - "null" sha384: description: SHA-384 digest of the uploaded content type: - string - "null" sha512: description: SHA-512 digest of the uploaded content type: - string - "null" additionalProperties: false - type: "null" imageData: description: Image properties, for image assets anyOf: - type: object properties: perceptualHash: description: Perceptual hash used to match visually similar images type: - string - "null" width: description: Image width in pixels anyOf: - type: integer exclusiveMinimum: 0 maximum: 9007199254740991 - type: "null" height: description: Image height in pixels anyOf: - type: integer exclusiveMinimum: 0 maximum: 9007199254740991 - type: "null" additionalProperties: false - type: "null" documentData: description: Document properties, for documents anyOf: - type: object properties: {} additionalProperties: false - type: "null" name: description: Name of the asset fileFormat: description: MIME type of the stored content anyOf: - {} - type: "null" fileExtension: description: File extension of the stored content anyOf: - {} - type: "null" description: anyOf: - {} - type: "null" description: Optional description of the asset externalId: anyOf: - {} - type: "null" description: External identifier for the asset externalUrl: anyOf: - type: string format: uri - type: "null" description: External URL associated with the asset previewImage: description: Browser-friendly preview generated for images, documents and websites anyOf: - type: object properties: id: anyOf: - {} - type: "null" description: Identifier of the stored preview image fileFormat: anyOf: - {} - type: "null" description: File format of the preview, such as `webp` thumbhash: anyOf: - {} - type: "null" description: ThumbHash placeholder you can render while the preview loads averageColor: anyOf: - {} - type: "null" description: Average color of the preview width: anyOf: - type: integer exclusiveMinimum: 0 maximum: 9007199254740991 - type: "null" description: Preview width in pixels height: anyOf: - type: integer exclusiveMinimum: 0 maximum: 9007199254740991 - type: "null" description: Preview height in pixels required: - id - fileFormat - thumbhash - averageColor - width - height additionalProperties: false - type: "null" storageId: description: Internal storage key of the retained content; `null` when nothing is stored anyOf: - {} - type: "null" uploadPartsReceived: description: Number of parts received so far for a multipart upload anyOf: - type: integer minimum: -9007199254740991 maximum: 9007199254740991 - type: "null" type: type: string enum: - image - video - audio - plaintext-document - multimedia-document - website - file description: Asset type, detected from the content's MIME type metadata: anyOf: - type: array items: type: object properties: id: description: Identifier for the metadata item value: $ref: "#/paths/~1assets~1{assetId}~1retry/post/responses/200/content/application~1json/schema/$defs/__schema0" description: Value of the metadata item required: - id - value additionalProperties: false description: A metadata item with an ID and value - type: "null" description: List of custom metadata items for the asset tags: anyOf: - type: array items: {} - type: "null" description: Array of tags for the asset report: description: Moderation report, set once classification finishes. See [Report format](/docs/guides/moderation-reports). anyOf: - type: object properties: processedAt: type: number categories: type: object properties: sexual: oneOf: - type: object properties: status: type: string const: evaluated likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely score: type: number minimum: 0 maximum: 1 qualifiers: type: object propertyNames: type: string enum: - nudity - sexual-activity - explicit-sexual-language - sexual-solicitation - physical-attack - violent-threat - violent-preparation - violent-encouragement - injury - death - graphic - self-harm-thoughts - self-harm-preparation - self-harm-act - self-harm-methods - self-harm-encouragement - personal-abuse - targeted-intimidation - harassment-threat - sexual-harassment - harassment-encouragement - identity-abuse - dehumanization - identity-inferiority - discriminatory-exclusion - hate-threat - criminal-demonstration - criminal-preparation - criminal-request - criminal-instructions - criminal-promotion - historical - documentary - fictional - support-prevention additionalProperties: oneOf: - type: object properties: status: type: string const: evaluated score: type: number minimum: 0 maximum: 1 scopeScore: type: number minimum: 0 maximum: 1 likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely required: - status - score - likelihood additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable required: - status - reason additionalProperties: false required: - status - likelihood - score additionalProperties: false - type: object properties: status: type: string const: partial likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely score: type: number minimum: 0 maximum: 1 qualifiers: type: object propertyNames: type: string enum: - nudity - sexual-activity - explicit-sexual-language - sexual-solicitation - physical-attack - violent-threat - violent-preparation - violent-encouragement - injury - death - graphic - self-harm-thoughts - self-harm-preparation - self-harm-act - self-harm-methods - self-harm-encouragement - personal-abuse - targeted-intimidation - harassment-threat - sexual-harassment - harassment-encouragement - identity-abuse - dehumanization - identity-inferiority - discriminatory-exclusion - hate-threat - criminal-demonstration - criminal-preparation - criminal-request - criminal-instructions - criminal-promotion - historical - documentary - fictional - support-prevention additionalProperties: oneOf: - type: object properties: status: type: string const: evaluated score: type: number minimum: 0 maximum: 1 scopeScore: type: number minimum: 0 maximum: 1 likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely required: - status - score - likelihood additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable required: - status - reason additionalProperties: false required: - status - likelihood - score additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable qualifiers: type: object propertyNames: type: string enum: - nudity - sexual-activity - explicit-sexual-language - sexual-solicitation - physical-attack - violent-threat - violent-preparation - violent-encouragement - injury - death - graphic - self-harm-thoughts - self-harm-preparation - self-harm-act - self-harm-methods - self-harm-encouragement - personal-abuse - targeted-intimidation - harassment-threat - sexual-harassment - harassment-encouragement - identity-abuse - dehumanization - identity-inferiority - discriminatory-exclusion - hate-threat - criminal-demonstration - criminal-preparation - criminal-request - criminal-instructions - criminal-promotion - historical - documentary - fictional - support-prevention additionalProperties: oneOf: - type: object properties: status: type: string const: evaluated score: type: number minimum: 0 maximum: 1 scopeScore: type: number minimum: 0 maximum: 1 likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely required: - status - score - likelihood additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable required: - status - reason additionalProperties: false required: - status - reason additionalProperties: false violence: oneOf: - type: object properties: status: type: string const: evaluated likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely score: type: number minimum: 0 maximum: 1 qualifiers: type: object propertyNames: type: string enum: - nudity - sexual-activity - explicit-sexual-language - sexual-solicitation - physical-attack - violent-threat - violent-preparation - violent-encouragement - injury - death - graphic - self-harm-thoughts - self-harm-preparation - self-harm-act - self-harm-methods - self-harm-encouragement - personal-abuse - targeted-intimidation - harassment-threat - sexual-harassment - harassment-encouragement - identity-abuse - dehumanization - identity-inferiority - discriminatory-exclusion - hate-threat - criminal-demonstration - criminal-preparation - criminal-request - criminal-instructions - criminal-promotion - historical - documentary - fictional - support-prevention additionalProperties: oneOf: - type: object properties: status: type: string const: evaluated score: type: number minimum: 0 maximum: 1 scopeScore: type: number minimum: 0 maximum: 1 likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely required: - status - score - likelihood additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable required: - status - reason additionalProperties: false required: - status - likelihood - score additionalProperties: false - type: object properties: status: type: string const: partial likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely score: type: number minimum: 0 maximum: 1 qualifiers: type: object propertyNames: type: string enum: - nudity - sexual-activity - explicit-sexual-language - sexual-solicitation - physical-attack - violent-threat - violent-preparation - violent-encouragement - injury - death - graphic - self-harm-thoughts - self-harm-preparation - self-harm-act - self-harm-methods - self-harm-encouragement - personal-abuse - targeted-intimidation - harassment-threat - sexual-harassment - harassment-encouragement - identity-abuse - dehumanization - identity-inferiority - discriminatory-exclusion - hate-threat - criminal-demonstration - criminal-preparation - criminal-request - criminal-instructions - criminal-promotion - historical - documentary - fictional - support-prevention additionalProperties: oneOf: - type: object properties: status: type: string const: evaluated score: type: number minimum: 0 maximum: 1 scopeScore: type: number minimum: 0 maximum: 1 likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely required: - status - score - likelihood additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable required: - status - reason additionalProperties: false required: - status - likelihood - score additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable qualifiers: type: object propertyNames: type: string enum: - nudity - sexual-activity - explicit-sexual-language - sexual-solicitation - physical-attack - violent-threat - violent-preparation - violent-encouragement - injury - death - graphic - self-harm-thoughts - self-harm-preparation - self-harm-act - self-harm-methods - self-harm-encouragement - personal-abuse - targeted-intimidation - harassment-threat - sexual-harassment - harassment-encouragement - identity-abuse - dehumanization - identity-inferiority - discriminatory-exclusion - hate-threat - criminal-demonstration - criminal-preparation - criminal-request - criminal-instructions - criminal-promotion - historical - documentary - fictional - support-prevention additionalProperties: oneOf: - type: object properties: status: type: string const: evaluated score: type: number minimum: 0 maximum: 1 scopeScore: type: number minimum: 0 maximum: 1 likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely required: - status - score - likelihood additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable required: - status - reason additionalProperties: false required: - status - reason additionalProperties: false self-harm: oneOf: - type: object properties: status: type: string const: evaluated likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely score: type: number minimum: 0 maximum: 1 qualifiers: type: object propertyNames: type: string enum: - nudity - sexual-activity - explicit-sexual-language - sexual-solicitation - physical-attack - violent-threat - violent-preparation - violent-encouragement - injury - death - graphic - self-harm-thoughts - self-harm-preparation - self-harm-act - self-harm-methods - self-harm-encouragement - personal-abuse - targeted-intimidation - harassment-threat - sexual-harassment - harassment-encouragement - identity-abuse - dehumanization - identity-inferiority - discriminatory-exclusion - hate-threat - criminal-demonstration - criminal-preparation - criminal-request - criminal-instructions - criminal-promotion - historical - documentary - fictional - support-prevention additionalProperties: oneOf: - type: object properties: status: type: string const: evaluated score: type: number minimum: 0 maximum: 1 scopeScore: type: number minimum: 0 maximum: 1 likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely required: - status - score - likelihood additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable required: - status - reason additionalProperties: false required: - status - likelihood - score additionalProperties: false - type: object properties: status: type: string const: partial likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely score: type: number minimum: 0 maximum: 1 qualifiers: type: object propertyNames: type: string enum: - nudity - sexual-activity - explicit-sexual-language - sexual-solicitation - physical-attack - violent-threat - violent-preparation - violent-encouragement - injury - death - graphic - self-harm-thoughts - self-harm-preparation - self-harm-act - self-harm-methods - self-harm-encouragement - personal-abuse - targeted-intimidation - harassment-threat - sexual-harassment - harassment-encouragement - identity-abuse - dehumanization - identity-inferiority - discriminatory-exclusion - hate-threat - criminal-demonstration - criminal-preparation - criminal-request - criminal-instructions - criminal-promotion - historical - documentary - fictional - support-prevention additionalProperties: oneOf: - type: object properties: status: type: string const: evaluated score: type: number minimum: 0 maximum: 1 scopeScore: type: number minimum: 0 maximum: 1 likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely required: - status - score - likelihood additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable required: - status - reason additionalProperties: false required: - status - likelihood - score additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable qualifiers: type: object propertyNames: type: string enum: - nudity - sexual-activity - explicit-sexual-language - sexual-solicitation - physical-attack - violent-threat - violent-preparation - violent-encouragement - injury - death - graphic - self-harm-thoughts - self-harm-preparation - self-harm-act - self-harm-methods - self-harm-encouragement - personal-abuse - targeted-intimidation - harassment-threat - sexual-harassment - harassment-encouragement - identity-abuse - dehumanization - identity-inferiority - discriminatory-exclusion - hate-threat - criminal-demonstration - criminal-preparation - criminal-request - criminal-instructions - criminal-promotion - historical - documentary - fictional - support-prevention additionalProperties: oneOf: - type: object properties: status: type: string const: evaluated score: type: number minimum: 0 maximum: 1 scopeScore: type: number minimum: 0 maximum: 1 likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely required: - status - score - likelihood additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable required: - status - reason additionalProperties: false required: - status - reason additionalProperties: false harassment: oneOf: - type: object properties: status: type: string const: evaluated likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely score: type: number minimum: 0 maximum: 1 qualifiers: type: object propertyNames: type: string enum: - nudity - sexual-activity - explicit-sexual-language - sexual-solicitation - physical-attack - violent-threat - violent-preparation - violent-encouragement - injury - death - graphic - self-harm-thoughts - self-harm-preparation - self-harm-act - self-harm-methods - self-harm-encouragement - personal-abuse - targeted-intimidation - harassment-threat - sexual-harassment - harassment-encouragement - identity-abuse - dehumanization - identity-inferiority - discriminatory-exclusion - hate-threat - criminal-demonstration - criminal-preparation - criminal-request - criminal-instructions - criminal-promotion - historical - documentary - fictional - support-prevention additionalProperties: oneOf: - type: object properties: status: type: string const: evaluated score: type: number minimum: 0 maximum: 1 scopeScore: type: number minimum: 0 maximum: 1 likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely required: - status - score - likelihood additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable required: - status - reason additionalProperties: false required: - status - likelihood - score additionalProperties: false - type: object properties: status: type: string const: partial likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely score: type: number minimum: 0 maximum: 1 qualifiers: type: object propertyNames: type: string enum: - nudity - sexual-activity - explicit-sexual-language - sexual-solicitation - physical-attack - violent-threat - violent-preparation - violent-encouragement - injury - death - graphic - self-harm-thoughts - self-harm-preparation - self-harm-act - self-harm-methods - self-harm-encouragement - personal-abuse - targeted-intimidation - harassment-threat - sexual-harassment - harassment-encouragement - identity-abuse - dehumanization - identity-inferiority - discriminatory-exclusion - hate-threat - criminal-demonstration - criminal-preparation - criminal-request - criminal-instructions - criminal-promotion - historical - documentary - fictional - support-prevention additionalProperties: oneOf: - type: object properties: status: type: string const: evaluated score: type: number minimum: 0 maximum: 1 scopeScore: type: number minimum: 0 maximum: 1 likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely required: - status - score - likelihood additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable required: - status - reason additionalProperties: false required: - status - likelihood - score additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable qualifiers: type: object propertyNames: type: string enum: - nudity - sexual-activity - explicit-sexual-language - sexual-solicitation - physical-attack - violent-threat - violent-preparation - violent-encouragement - injury - death - graphic - self-harm-thoughts - self-harm-preparation - self-harm-act - self-harm-methods - self-harm-encouragement - personal-abuse - targeted-intimidation - harassment-threat - sexual-harassment - harassment-encouragement - identity-abuse - dehumanization - identity-inferiority - discriminatory-exclusion - hate-threat - criminal-demonstration - criminal-preparation - criminal-request - criminal-instructions - criminal-promotion - historical - documentary - fictional - support-prevention additionalProperties: oneOf: - type: object properties: status: type: string const: evaluated score: type: number minimum: 0 maximum: 1 scopeScore: type: number minimum: 0 maximum: 1 likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely required: - status - score - likelihood additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable required: - status - reason additionalProperties: false required: - status - reason additionalProperties: false hate: oneOf: - type: object properties: status: type: string const: evaluated likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely score: type: number minimum: 0 maximum: 1 qualifiers: type: object propertyNames: type: string enum: - nudity - sexual-activity - explicit-sexual-language - sexual-solicitation - physical-attack - violent-threat - violent-preparation - violent-encouragement - injury - death - graphic - self-harm-thoughts - self-harm-preparation - self-harm-act - self-harm-methods - self-harm-encouragement - personal-abuse - targeted-intimidation - harassment-threat - sexual-harassment - harassment-encouragement - identity-abuse - dehumanization - identity-inferiority - discriminatory-exclusion - hate-threat - criminal-demonstration - criminal-preparation - criminal-request - criminal-instructions - criminal-promotion - historical - documentary - fictional - support-prevention additionalProperties: oneOf: - type: object properties: status: type: string const: evaluated score: type: number minimum: 0 maximum: 1 scopeScore: type: number minimum: 0 maximum: 1 likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely required: - status - score - likelihood additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable required: - status - reason additionalProperties: false required: - status - likelihood - score additionalProperties: false - type: object properties: status: type: string const: partial likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely score: type: number minimum: 0 maximum: 1 qualifiers: type: object propertyNames: type: string enum: - nudity - sexual-activity - explicit-sexual-language - sexual-solicitation - physical-attack - violent-threat - violent-preparation - violent-encouragement - injury - death - graphic - self-harm-thoughts - self-harm-preparation - self-harm-act - self-harm-methods - self-harm-encouragement - personal-abuse - targeted-intimidation - harassment-threat - sexual-harassment - harassment-encouragement - identity-abuse - dehumanization - identity-inferiority - discriminatory-exclusion - hate-threat - criminal-demonstration - criminal-preparation - criminal-request - criminal-instructions - criminal-promotion - historical - documentary - fictional - support-prevention additionalProperties: oneOf: - type: object properties: status: type: string const: evaluated score: type: number minimum: 0 maximum: 1 scopeScore: type: number minimum: 0 maximum: 1 likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely required: - status - score - likelihood additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable required: - status - reason additionalProperties: false required: - status - likelihood - score additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable qualifiers: type: object propertyNames: type: string enum: - nudity - sexual-activity - explicit-sexual-language - sexual-solicitation - physical-attack - violent-threat - violent-preparation - violent-encouragement - injury - death - graphic - self-harm-thoughts - self-harm-preparation - self-harm-act - self-harm-methods - self-harm-encouragement - personal-abuse - targeted-intimidation - harassment-threat - sexual-harassment - harassment-encouragement - identity-abuse - dehumanization - identity-inferiority - discriminatory-exclusion - hate-threat - criminal-demonstration - criminal-preparation - criminal-request - criminal-instructions - criminal-promotion - historical - documentary - fictional - support-prevention additionalProperties: oneOf: - type: object properties: status: type: string const: evaluated score: type: number minimum: 0 maximum: 1 scopeScore: type: number minimum: 0 maximum: 1 likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely required: - status - score - likelihood additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable required: - status - reason additionalProperties: false required: - status - reason additionalProperties: false criminal-activity: oneOf: - type: object properties: status: type: string const: evaluated likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely score: type: number minimum: 0 maximum: 1 qualifiers: type: object propertyNames: type: string enum: - nudity - sexual-activity - explicit-sexual-language - sexual-solicitation - physical-attack - violent-threat - violent-preparation - violent-encouragement - injury - death - graphic - self-harm-thoughts - self-harm-preparation - self-harm-act - self-harm-methods - self-harm-encouragement - personal-abuse - targeted-intimidation - harassment-threat - sexual-harassment - harassment-encouragement - identity-abuse - dehumanization - identity-inferiority - discriminatory-exclusion - hate-threat - criminal-demonstration - criminal-preparation - criminal-request - criminal-instructions - criminal-promotion - historical - documentary - fictional - support-prevention additionalProperties: oneOf: - type: object properties: status: type: string const: evaluated score: type: number minimum: 0 maximum: 1 scopeScore: type: number minimum: 0 maximum: 1 likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely required: - status - score - likelihood additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable required: - status - reason additionalProperties: false required: - status - likelihood - score additionalProperties: false - type: object properties: status: type: string const: partial likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely score: type: number minimum: 0 maximum: 1 qualifiers: type: object propertyNames: type: string enum: - nudity - sexual-activity - explicit-sexual-language - sexual-solicitation - physical-attack - violent-threat - violent-preparation - violent-encouragement - injury - death - graphic - self-harm-thoughts - self-harm-preparation - self-harm-act - self-harm-methods - self-harm-encouragement - personal-abuse - targeted-intimidation - harassment-threat - sexual-harassment - harassment-encouragement - identity-abuse - dehumanization - identity-inferiority - discriminatory-exclusion - hate-threat - criminal-demonstration - criminal-preparation - criminal-request - criminal-instructions - criminal-promotion - historical - documentary - fictional - support-prevention additionalProperties: oneOf: - type: object properties: status: type: string const: evaluated score: type: number minimum: 0 maximum: 1 scopeScore: type: number minimum: 0 maximum: 1 likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely required: - status - score - likelihood additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable required: - status - reason additionalProperties: false required: - status - likelihood - score additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable qualifiers: type: object propertyNames: type: string enum: - nudity - sexual-activity - explicit-sexual-language - sexual-solicitation - physical-attack - violent-threat - violent-preparation - violent-encouragement - injury - death - graphic - self-harm-thoughts - self-harm-preparation - self-harm-act - self-harm-methods - self-harm-encouragement - personal-abuse - targeted-intimidation - harassment-threat - sexual-harassment - harassment-encouragement - identity-abuse - dehumanization - identity-inferiority - discriminatory-exclusion - hate-threat - criminal-demonstration - criminal-preparation - criminal-request - criminal-instructions - criminal-promotion - historical - documentary - fictional - support-prevention additionalProperties: oneOf: - type: object properties: status: type: string const: evaluated score: type: number minimum: 0 maximum: 1 scopeScore: type: number minimum: 0 maximum: 1 likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely required: - status - score - likelihood additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable required: - status - reason additionalProperties: false required: - status - reason additionalProperties: false required: - sexual - violence - self-harm - harassment - hate - criminal-activity additionalProperties: false flagged: type: boolean score: type: number notes: anyOf: - {} - type: "null" media: type: object properties: durationSeconds: type: number exclusiveMinimum: 0 frameIntervalSeconds: type: number exclusiveMinimum: 0 sampledFrames: type: integer minimum: 0 maximum: 9007199254740991 audioTranscribed: type: boolean segments: type: array items: type: object properties: source: type: string enum: - frame - speech - frame-text - clip startSeconds: type: number minimum: 0 endSeconds: type: number minimum: 0 categories: type: object properties: sexual: oneOf: - type: object properties: status: type: string const: evaluated likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely score: type: number minimum: 0 maximum: 1 qualifiers: type: object propertyNames: type: string enum: - nudity - sexual-activity - explicit-sexual-language - sexual-solicitation - physical-attack - violent-threat - violent-preparation - violent-encouragement - injury - death - graphic - self-harm-thoughts - self-harm-preparation - self-harm-act - self-harm-methods - self-harm-encouragement - personal-abuse - targeted-intimidation - harassment-threat - sexual-harassment - harassment-encouragement - identity-abuse - dehumanization - identity-inferiority - discriminatory-exclusion - hate-threat - criminal-demonstration - criminal-preparation - criminal-request - criminal-instructions - criminal-promotion - historical - documentary - fictional - support-prevention additionalProperties: oneOf: - type: object properties: status: type: string const: evaluated score: type: number minimum: 0 maximum: 1 scopeScore: type: number minimum: 0 maximum: 1 likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely required: - status - score - likelihood additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable required: - status - reason additionalProperties: false required: - status - likelihood - score additionalProperties: false - type: object properties: status: type: string const: partial likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely score: type: number minimum: 0 maximum: 1 qualifiers: type: object propertyNames: type: string enum: - nudity - sexual-activity - explicit-sexual-language - sexual-solicitation - physical-attack - violent-threat - violent-preparation - violent-encouragement - injury - death - graphic - self-harm-thoughts - self-harm-preparation - self-harm-act - self-harm-methods - self-harm-encouragement - personal-abuse - targeted-intimidation - harassment-threat - sexual-harassment - harassment-encouragement - identity-abuse - dehumanization - identity-inferiority - discriminatory-exclusion - hate-threat - criminal-demonstration - criminal-preparation - criminal-request - criminal-instructions - criminal-promotion - historical - documentary - fictional - support-prevention additionalProperties: oneOf: - type: object properties: status: type: string const: evaluated score: type: number minimum: 0 maximum: 1 scopeScore: type: number minimum: 0 maximum: 1 likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely required: - status - score - likelihood additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable required: - status - reason additionalProperties: false required: - status - likelihood - score additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable qualifiers: type: object propertyNames: type: string enum: - nudity - sexual-activity - explicit-sexual-language - sexual-solicitation - physical-attack - violent-threat - violent-preparation - violent-encouragement - injury - death - graphic - self-harm-thoughts - self-harm-preparation - self-harm-act - self-harm-methods - self-harm-encouragement - personal-abuse - targeted-intimidation - harassment-threat - sexual-harassment - harassment-encouragement - identity-abuse - dehumanization - identity-inferiority - discriminatory-exclusion - hate-threat - criminal-demonstration - criminal-preparation - criminal-request - criminal-instructions - criminal-promotion - historical - documentary - fictional - support-prevention additionalProperties: oneOf: - type: object properties: status: type: string const: evaluated score: type: number minimum: 0 maximum: 1 scopeScore: type: number minimum: 0 maximum: 1 likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely required: - status - score - likelihood additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable required: - status - reason additionalProperties: false required: - status - reason additionalProperties: false violence: oneOf: - type: object properties: status: type: string const: evaluated likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely score: type: number minimum: 0 maximum: 1 qualifiers: type: object propertyNames: type: string enum: - nudity - sexual-activity - explicit-sexual-language - sexual-solicitation - physical-attack - violent-threat - violent-preparation - violent-encouragement - injury - death - graphic - self-harm-thoughts - self-harm-preparation - self-harm-act - self-harm-methods - self-harm-encouragement - personal-abuse - targeted-intimidation - harassment-threat - sexual-harassment - harassment-encouragement - identity-abuse - dehumanization - identity-inferiority - discriminatory-exclusion - hate-threat - criminal-demonstration - criminal-preparation - criminal-request - criminal-instructions - criminal-promotion - historical - documentary - fictional - support-prevention additionalProperties: oneOf: - type: object properties: status: type: string const: evaluated score: type: number minimum: 0 maximum: 1 scopeScore: type: number minimum: 0 maximum: 1 likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely required: - status - score - likelihood additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable required: - status - reason additionalProperties: false required: - status - likelihood - score additionalProperties: false - type: object properties: status: type: string const: partial likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely score: type: number minimum: 0 maximum: 1 qualifiers: type: object propertyNames: type: string enum: - nudity - sexual-activity - explicit-sexual-language - sexual-solicitation - physical-attack - violent-threat - violent-preparation - violent-encouragement - injury - death - graphic - self-harm-thoughts - self-harm-preparation - self-harm-act - self-harm-methods - self-harm-encouragement - personal-abuse - targeted-intimidation - harassment-threat - sexual-harassment - harassment-encouragement - identity-abuse - dehumanization - identity-inferiority - discriminatory-exclusion - hate-threat - criminal-demonstration - criminal-preparation - criminal-request - criminal-instructions - criminal-promotion - historical - documentary - fictional - support-prevention additionalProperties: oneOf: - type: object properties: status: type: string const: evaluated score: type: number minimum: 0 maximum: 1 scopeScore: type: number minimum: 0 maximum: 1 likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely required: - status - score - likelihood additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable required: - status - reason additionalProperties: false required: - status - likelihood - score additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable qualifiers: type: object propertyNames: type: string enum: - nudity - sexual-activity - explicit-sexual-language - sexual-solicitation - physical-attack - violent-threat - violent-preparation - violent-encouragement - injury - death - graphic - self-harm-thoughts - self-harm-preparation - self-harm-act - self-harm-methods - self-harm-encouragement - personal-abuse - targeted-intimidation - harassment-threat - sexual-harassment - harassment-encouragement - identity-abuse - dehumanization - identity-inferiority - discriminatory-exclusion - hate-threat - criminal-demonstration - criminal-preparation - criminal-request - criminal-instructions - criminal-promotion - historical - documentary - fictional - support-prevention additionalProperties: oneOf: - type: object properties: status: type: string const: evaluated score: type: number minimum: 0 maximum: 1 scopeScore: type: number minimum: 0 maximum: 1 likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely required: - status - score - likelihood additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable required: - status - reason additionalProperties: false required: - status - reason additionalProperties: false self-harm: oneOf: - type: object properties: status: type: string const: evaluated likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely score: type: number minimum: 0 maximum: 1 qualifiers: type: object propertyNames: type: string enum: - nudity - sexual-activity - explicit-sexual-language - sexual-solicitation - physical-attack - violent-threat - violent-preparation - violent-encouragement - injury - death - graphic - self-harm-thoughts - self-harm-preparation - self-harm-act - self-harm-methods - self-harm-encouragement - personal-abuse - targeted-intimidation - harassment-threat - sexual-harassment - harassment-encouragement - identity-abuse - dehumanization - identity-inferiority - discriminatory-exclusion - hate-threat - criminal-demonstration - criminal-preparation - criminal-request - criminal-instructions - criminal-promotion - historical - documentary - fictional - support-prevention additionalProperties: oneOf: - type: object properties: status: type: string const: evaluated score: type: number minimum: 0 maximum: 1 scopeScore: type: number minimum: 0 maximum: 1 likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely required: - status - score - likelihood additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable required: - status - reason additionalProperties: false required: - status - likelihood - score additionalProperties: false - type: object properties: status: type: string const: partial likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely score: type: number minimum: 0 maximum: 1 qualifiers: type: object propertyNames: type: string enum: - nudity - sexual-activity - explicit-sexual-language - sexual-solicitation - physical-attack - violent-threat - violent-preparation - violent-encouragement - injury - death - graphic - self-harm-thoughts - self-harm-preparation - self-harm-act - self-harm-methods - self-harm-encouragement - personal-abuse - targeted-intimidation - harassment-threat - sexual-harassment - harassment-encouragement - identity-abuse - dehumanization - identity-inferiority - discriminatory-exclusion - hate-threat - criminal-demonstration - criminal-preparation - criminal-request - criminal-instructions - criminal-promotion - historical - documentary - fictional - support-prevention additionalProperties: oneOf: - type: object properties: status: type: string const: evaluated score: type: number minimum: 0 maximum: 1 scopeScore: type: number minimum: 0 maximum: 1 likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely required: - status - score - likelihood additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable required: - status - reason additionalProperties: false required: - status - likelihood - score additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable qualifiers: type: object propertyNames: type: string enum: - nudity - sexual-activity - explicit-sexual-language - sexual-solicitation - physical-attack - violent-threat - violent-preparation - violent-encouragement - injury - death - graphic - self-harm-thoughts - self-harm-preparation - self-harm-act - self-harm-methods - self-harm-encouragement - personal-abuse - targeted-intimidation - harassment-threat - sexual-harassment - harassment-encouragement - identity-abuse - dehumanization - identity-inferiority - discriminatory-exclusion - hate-threat - criminal-demonstration - criminal-preparation - criminal-request - criminal-instructions - criminal-promotion - historical - documentary - fictional - support-prevention additionalProperties: oneOf: - type: object properties: status: type: string const: evaluated score: type: number minimum: 0 maximum: 1 scopeScore: type: number minimum: 0 maximum: 1 likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely required: - status - score - likelihood additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable required: - status - reason additionalProperties: false required: - status - reason additionalProperties: false harassment: oneOf: - type: object properties: status: type: string const: evaluated likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely score: type: number minimum: 0 maximum: 1 qualifiers: type: object propertyNames: type: string enum: - nudity - sexual-activity - explicit-sexual-language - sexual-solicitation - physical-attack - violent-threat - violent-preparation - violent-encouragement - injury - death - graphic - self-harm-thoughts - self-harm-preparation - self-harm-act - self-harm-methods - self-harm-encouragement - personal-abuse - targeted-intimidation - harassment-threat - sexual-harassment - harassment-encouragement - identity-abuse - dehumanization - identity-inferiority - discriminatory-exclusion - hate-threat - criminal-demonstration - criminal-preparation - criminal-request - criminal-instructions - criminal-promotion - historical - documentary - fictional - support-prevention additionalProperties: oneOf: - type: object properties: status: type: string const: evaluated score: type: number minimum: 0 maximum: 1 scopeScore: type: number minimum: 0 maximum: 1 likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely required: - status - score - likelihood additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable required: - status - reason additionalProperties: false required: - status - likelihood - score additionalProperties: false - type: object properties: status: type: string const: partial likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely score: type: number minimum: 0 maximum: 1 qualifiers: type: object propertyNames: type: string enum: - nudity - sexual-activity - explicit-sexual-language - sexual-solicitation - physical-attack - violent-threat - violent-preparation - violent-encouragement - injury - death - graphic - self-harm-thoughts - self-harm-preparation - self-harm-act - self-harm-methods - self-harm-encouragement - personal-abuse - targeted-intimidation - harassment-threat - sexual-harassment - harassment-encouragement - identity-abuse - dehumanization - identity-inferiority - discriminatory-exclusion - hate-threat - criminal-demonstration - criminal-preparation - criminal-request - criminal-instructions - criminal-promotion - historical - documentary - fictional - support-prevention additionalProperties: oneOf: - type: object properties: status: type: string const: evaluated score: type: number minimum: 0 maximum: 1 scopeScore: type: number minimum: 0 maximum: 1 likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely required: - status - score - likelihood additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable required: - status - reason additionalProperties: false required: - status - likelihood - score additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable qualifiers: type: object propertyNames: type: string enum: - nudity - sexual-activity - explicit-sexual-language - sexual-solicitation - physical-attack - violent-threat - violent-preparation - violent-encouragement - injury - death - graphic - self-harm-thoughts - self-harm-preparation - self-harm-act - self-harm-methods - self-harm-encouragement - personal-abuse - targeted-intimidation - harassment-threat - sexual-harassment - harassment-encouragement - identity-abuse - dehumanization - identity-inferiority - discriminatory-exclusion - hate-threat - criminal-demonstration - criminal-preparation - criminal-request - criminal-instructions - criminal-promotion - historical - documentary - fictional - support-prevention additionalProperties: oneOf: - type: object properties: status: type: string const: evaluated score: type: number minimum: 0 maximum: 1 scopeScore: type: number minimum: 0 maximum: 1 likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely required: - status - score - likelihood additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable required: - status - reason additionalProperties: false required: - status - reason additionalProperties: false hate: oneOf: - type: object properties: status: type: string const: evaluated likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely score: type: number minimum: 0 maximum: 1 qualifiers: type: object propertyNames: type: string enum: - nudity - sexual-activity - explicit-sexual-language - sexual-solicitation - physical-attack - violent-threat - violent-preparation - violent-encouragement - injury - death - graphic - self-harm-thoughts - self-harm-preparation - self-harm-act - self-harm-methods - self-harm-encouragement - personal-abuse - targeted-intimidation - harassment-threat - sexual-harassment - harassment-encouragement - identity-abuse - dehumanization - identity-inferiority - discriminatory-exclusion - hate-threat - criminal-demonstration - criminal-preparation - criminal-request - criminal-instructions - criminal-promotion - historical - documentary - fictional - support-prevention additionalProperties: oneOf: - type: object properties: status: type: string const: evaluated score: type: number minimum: 0 maximum: 1 scopeScore: type: number minimum: 0 maximum: 1 likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely required: - status - score - likelihood additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable required: - status - reason additionalProperties: false required: - status - likelihood - score additionalProperties: false - type: object properties: status: type: string const: partial likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely score: type: number minimum: 0 maximum: 1 qualifiers: type: object propertyNames: type: string enum: - nudity - sexual-activity - explicit-sexual-language - sexual-solicitation - physical-attack - violent-threat - violent-preparation - violent-encouragement - injury - death - graphic - self-harm-thoughts - self-harm-preparation - self-harm-act - self-harm-methods - self-harm-encouragement - personal-abuse - targeted-intimidation - harassment-threat - sexual-harassment - harassment-encouragement - identity-abuse - dehumanization - identity-inferiority - discriminatory-exclusion - hate-threat - criminal-demonstration - criminal-preparation - criminal-request - criminal-instructions - criminal-promotion - historical - documentary - fictional - support-prevention additionalProperties: oneOf: - type: object properties: status: type: string const: evaluated score: type: number minimum: 0 maximum: 1 scopeScore: type: number minimum: 0 maximum: 1 likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely required: - status - score - likelihood additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable required: - status - reason additionalProperties: false required: - status - likelihood - score additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable qualifiers: type: object propertyNames: type: string enum: - nudity - sexual-activity - explicit-sexual-language - sexual-solicitation - physical-attack - violent-threat - violent-preparation - violent-encouragement - injury - death - graphic - self-harm-thoughts - self-harm-preparation - self-harm-act - self-harm-methods - self-harm-encouragement - personal-abuse - targeted-intimidation - harassment-threat - sexual-harassment - harassment-encouragement - identity-abuse - dehumanization - identity-inferiority - discriminatory-exclusion - hate-threat - criminal-demonstration - criminal-preparation - criminal-request - criminal-instructions - criminal-promotion - historical - documentary - fictional - support-prevention additionalProperties: oneOf: - type: object properties: status: type: string const: evaluated score: type: number minimum: 0 maximum: 1 scopeScore: type: number minimum: 0 maximum: 1 likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely required: - status - score - likelihood additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable required: - status - reason additionalProperties: false required: - status - reason additionalProperties: false criminal-activity: oneOf: - type: object properties: status: type: string const: evaluated likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely score: type: number minimum: 0 maximum: 1 qualifiers: type: object propertyNames: type: string enum: - nudity - sexual-activity - explicit-sexual-language - sexual-solicitation - physical-attack - violent-threat - violent-preparation - violent-encouragement - injury - death - graphic - self-harm-thoughts - self-harm-preparation - self-harm-act - self-harm-methods - self-harm-encouragement - personal-abuse - targeted-intimidation - harassment-threat - sexual-harassment - harassment-encouragement - identity-abuse - dehumanization - identity-inferiority - discriminatory-exclusion - hate-threat - criminal-demonstration - criminal-preparation - criminal-request - criminal-instructions - criminal-promotion - historical - documentary - fictional - support-prevention additionalProperties: oneOf: - type: object properties: status: type: string const: evaluated score: type: number minimum: 0 maximum: 1 scopeScore: type: number minimum: 0 maximum: 1 likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely required: - status - score - likelihood additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable required: - status - reason additionalProperties: false required: - status - likelihood - score additionalProperties: false - type: object properties: status: type: string const: partial likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely score: type: number minimum: 0 maximum: 1 qualifiers: type: object propertyNames: type: string enum: - nudity - sexual-activity - explicit-sexual-language - sexual-solicitation - physical-attack - violent-threat - violent-preparation - violent-encouragement - injury - death - graphic - self-harm-thoughts - self-harm-preparation - self-harm-act - self-harm-methods - self-harm-encouragement - personal-abuse - targeted-intimidation - harassment-threat - sexual-harassment - harassment-encouragement - identity-abuse - dehumanization - identity-inferiority - discriminatory-exclusion - hate-threat - criminal-demonstration - criminal-preparation - criminal-request - criminal-instructions - criminal-promotion - historical - documentary - fictional - support-prevention additionalProperties: oneOf: - type: object properties: status: type: string const: evaluated score: type: number minimum: 0 maximum: 1 scopeScore: type: number minimum: 0 maximum: 1 likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely required: - status - score - likelihood additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable required: - status - reason additionalProperties: false required: - status - likelihood - score additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable qualifiers: type: object propertyNames: type: string enum: - nudity - sexual-activity - explicit-sexual-language - sexual-solicitation - physical-attack - violent-threat - violent-preparation - violent-encouragement - injury - death - graphic - self-harm-thoughts - self-harm-preparation - self-harm-act - self-harm-methods - self-harm-encouragement - personal-abuse - targeted-intimidation - harassment-threat - sexual-harassment - harassment-encouragement - identity-abuse - dehumanization - identity-inferiority - discriminatory-exclusion - hate-threat - criminal-demonstration - criminal-preparation - criminal-request - criminal-instructions - criminal-promotion - historical - documentary - fictional - support-prevention additionalProperties: oneOf: - type: object properties: status: type: string const: evaluated score: type: number minimum: 0 maximum: 1 scopeScore: type: number minimum: 0 maximum: 1 likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely required: - status - score - likelihood additionalProperties: false - type: object properties: status: type: string const: not-evaluated reason: type: string enum: - not-supported - unavailable required: - status - reason additionalProperties: false required: - status - reason additionalProperties: false required: - sexual - violence - self-harm - harassment - hate - criminal-activity additionalProperties: false required: - source - startSeconds - endSeconds - categories additionalProperties: false required: - durationSeconds - sampledFrames - audioTranscribed - segments additionalProperties: false labels: anyOf: - type: array items: type: object properties: description: {} score: type: number topicalityScore: type: - number - "null" likelihood: type: string enum: - very-unlikely - unlikely - possible - likely - very-likely knowledgeBaseId: anyOf: - {} - type: "null" required: - description - score - likelihood additionalProperties: false - type: "null" required: - processedAt - categories - flagged - score additionalProperties: false - type: "null" moderationAction: anyOf: - type: string enum: - ignore - alert - hide - purge - type: "null" description: The moderation action applied when this asset crossed a policy threshold status: type: string enum: - uploading - pending - approved - rejected - error description: Processing and moderation status. See [Asset lifecycle](/docs/guides/asset-lifecycle). safetyHold: anyOf: - type: object properties: placedAt: type: number description: When the hold was placed, in milliseconds since the Unix epoch reason: type: string enum: - suspected-illegal-content description: Why the asset is held disposedAt: description: When the held content was disposed of, in milliseconds since the Unix epoch type: - number - "null" required: - placedAt - reason additionalProperties: false - type: "null" description: Internal delivery restriction for suspected illegal content. Held content cannot be viewed, changed, or deleted through normal asset operations. rejectionNote: anyOf: - {} - type: "null" description: Reason the asset was rejected, generated automatically or supplied by a reviewer extractedText: anyOf: - oneOf: - type: object properties: type: type: string const: string content: type: string required: - type - content additionalProperties: false - type: object properties: type: type: string const: document id: {} required: - type - id additionalProperties: false - type: "null" description: Extracted text stored inline for small content or in R2 for larger content processingOptions: description: Processing options supplied when the asset was uploaded anyOf: - type: object properties: keepContentAfterProcessing: description: Whether to keep the asset content after processing default: false type: - boolean - "null" flaggedContentPolicy: anyOf: - type: object properties: action: type: string enum: - ignore - alert - hide - purge required: - action additionalProperties: false - type: "null" description: Override the project moderation action for this asset. Ignore takes no action, alert keeps delivery enabled, hide blocks delivery while retaining content, and purge deletes content. image: description: Options for image assets anyOf: - type: object properties: ocrEnabled: description: Whether to extract image text into a child asset and run normal text moderation. Applies to images, including those extracted from multimedia documents and websites. default: false type: - boolean - "null" additionalProperties: false - type: "null" additionalProperties: false - type: "null" visibility: anyOf: - type: string enum: - public - private - type: "null" description: Visibility level of the asset default: private storageDeletedAt: description: When the stored content was removed, in milliseconds since the Unix epoch. The asset record and report remain. type: - number - "null" required: - id - projectId - createdAt - name - type - status additionalProperties: false description: An asset in the system $defs: __schema0: anyOf: - type: string - type: number - type: boolean - type: "null" - type: array items: $ref: "#/paths/~1assets~1{assetId}~1retry/post/responses/200/content/application~1json/schema/$defs/__schema0" - type: object propertyNames: type: string additionalProperties: $ref: "#/paths/~1assets~1{assetId}~1retry/post/responses/200/content/application~1json/schema/$defs/__schema0" "401": description: |- auth/missing-token: Authentication required. Send your project API key in the X-Api-Key header. auth/invalid-api-key: The API key is invalid, revoked or expired. Create a key under Developer → API Keys. headers: X-Request-Id: *a1 content: application/json: schema: type: object required: - message - code - traceId properties: message: type: string code: type: string enum: - auth/missing-token - auth/invalid-api-key traceId: type: string examples: auth-missing-token: summary: Authentication required. Send your project API key in the X-Api-Key header. value: message: Authentication required. Send your project API key in the X-Api-Key header. code: auth/missing-token traceId: request-trace-id auth-invalid-api-key: summary: The API key is invalid, revoked or expired. Create a key under Developer → API Keys. value: message: The API key is invalid, revoked or expired. Create a key under Developer → API Keys. code: auth/invalid-api-key traceId: request-trace-id "403": description: "auth/project-mismatch: This API key belongs to a different project. Use a key created for the project that owns this resource." headers: X-Request-Id: *a1 content: application/json: schema: type: object required: - message - code - traceId properties: message: type: string code: type: string enum: - auth/project-mismatch traceId: type: string examples: auth-project-mismatch: summary: This API key belongs to a different project. Use a key created for the project that owns this resource. value: message: This API key belongs to a different project. Use a key created for the project that owns this resource. code: auth/project-mismatch traceId: request-trace-id "404": description: "asset/not-found: Asset not found" headers: X-Request-Id: *a1 content: application/json: schema: type: object required: - message - code - traceId properties: message: type: string code: type: string enum: - asset/not-found traceId: type: string examples: asset-not-found: summary: Asset not found value: message: Asset not found code: asset/not-found traceId: request-trace-id "409": description: |- asset/not-retryable: Only assets that failed to process (status error) can be retried. asset/content-unavailable: This asset's content is no longer stored, so it can't be processed again. Upload it again instead. headers: X-Request-Id: *a1 content: application/json: schema: type: object required: - message - code - traceId properties: message: type: string code: type: string enum: - asset/not-retryable - asset/content-unavailable traceId: type: string examples: asset-not-retryable: summary: Only assets that failed to process (status error) can be retried. value: message: Only assets that failed to process (status error) can be retried. code: asset/not-retryable traceId: request-trace-id asset-content-unavailable: summary: This asset's content is no longer stored, so it can't be processed again. Upload it again instead. value: message: This asset's content is no longer stored, so it can't be processed again. Upload it again instead. code: asset/content-unavailable traceId: request-trace-id "423": description: "asset/safety-held: Asset access is restricted by a safety hold." headers: X-Request-Id: *a1 content: application/json: schema: type: object required: - message - code - traceId properties: message: type: string code: type: string enum: - asset/safety-held traceId: type: string examples: asset-safety-held: summary: Asset access is restricted by a safety hold. value: message: Asset access is restricted by a safety hold. code: asset/safety-held traceId: request-trace-id parameters: - name: assetId in: path required: true description: UUID of the asset to fetch schema: type: string format: uuid pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$ description: UUID of the asset to fetch /projects/{projectId}/assets/batch: post: operationId: post-asset-batch-operation summary: Run Asset Batch Operation description: Queue a bounded batch operation for selected assets security: - ApiKeyAuth: [] responses: "200": description: Successful response headers: X-Request-Id: *a1 content: application/json: schema: type: object properties: queued: type: boolean const: true required: - queued additionalProperties: false "401": description: |- auth/missing-token: Authentication required. Send your project API key in the X-Api-Key header. auth/invalid-api-key: The API key is invalid, revoked or expired. Create a key under Developer → API Keys. headers: X-Request-Id: *a1 content: application/json: schema: type: object required: - message - code - traceId properties: message: type: string code: type: string enum: - auth/missing-token - auth/invalid-api-key traceId: type: string examples: auth-missing-token: summary: Authentication required. Send your project API key in the X-Api-Key header. value: message: Authentication required. Send your project API key in the X-Api-Key header. code: auth/missing-token traceId: request-trace-id auth-invalid-api-key: summary: The API key is invalid, revoked or expired. Create a key under Developer → API Keys. value: message: The API key is invalid, revoked or expired. Create a key under Developer → API Keys. code: auth/invalid-api-key traceId: request-trace-id "403": description: "auth/project-mismatch: This API key belongs to a different project. Use a key created for the project that owns this resource." headers: X-Request-Id: *a1 content: application/json: schema: type: object required: - message - code - traceId properties: message: type: string code: type: string enum: - auth/project-mismatch traceId: type: string examples: auth-project-mismatch: summary: This API key belongs to a different project. Use a key created for the project that owns this resource. value: message: This API key belongs to a different project. Use a key created for the project that owns this resource. code: auth/project-mismatch traceId: request-trace-id "404": description: "project/not-found: Project not found" headers: X-Request-Id: *a1 content: application/json: schema: type: object required: - message - code - traceId properties: message: type: string code: type: string enum: - project/not-found traceId: type: string examples: project-not-found: summary: Project not found value: message: Project not found code: project/not-found traceId: request-trace-id parameters: - name: projectId in: path required: true schema: type: string format: uuid pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$ requestBody: required: true content: application/json: schema: type: object properties: assetIds: minItems: 1 maxItems: 500 type: array items: type: string format: uuid pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$ operation: type: string enum: - delete - remove-content required: - assetIds - operation example: assetIds: - 987fcdeb-51a2-43d7-b890-123456789abc operation: remove-content /assets/{assetId}/signed-url: post: operationId: post-asset-signed-url summary: Create Asset Signed URL description: Create a short-lived signed CDN URL for an asset security: - ApiKeyAuth: [] responses: "200": description: Successful response headers: X-Request-Id: *a1 content: application/json: schema: type: object properties: url: type: string description: Signed CDN URL, including the `exp` and `sig` query parameters expiresAt: type: number description: When the URL expires, in milliseconds since the Unix epoch required: - url - expiresAt additionalProperties: false "401": description: |- auth/missing-token: Authentication required. Send your project API key in the X-Api-Key header. auth/invalid-api-key: The API key is invalid, revoked or expired. Create a key under Developer → API Keys. headers: X-Request-Id: *a1 content: application/json: schema: type: object required: - message - code - traceId properties: message: type: string code: type: string enum: - auth/missing-token - auth/invalid-api-key traceId: type: string examples: auth-missing-token: summary: Authentication required. Send your project API key in the X-Api-Key header. value: message: Authentication required. Send your project API key in the X-Api-Key header. code: auth/missing-token traceId: request-trace-id auth-invalid-api-key: summary: The API key is invalid, revoked or expired. Create a key under Developer → API Keys. value: message: The API key is invalid, revoked or expired. Create a key under Developer → API Keys. code: auth/invalid-api-key traceId: request-trace-id "403": description: "auth/project-mismatch: This API key belongs to a different project. Use a key created for the project that owns this resource." headers: X-Request-Id: *a1 content: application/json: schema: type: object required: - message - code - traceId properties: message: type: string code: type: string enum: - auth/project-mismatch traceId: type: string examples: auth-project-mismatch: summary: This API key belongs to a different project. Use a key created for the project that owns this resource. value: message: This API key belongs to a different project. Use a key created for the project that owns this resource. code: auth/project-mismatch traceId: request-trace-id "404": description: |- asset/not-found: Asset not found project/not-found: Project not found headers: X-Request-Id: *a1 content: application/json: schema: type: object required: - message - code - traceId properties: message: type: string code: type: string enum: - asset/not-found - project/not-found traceId: type: string examples: asset-not-found: summary: Asset not found value: message: Asset not found code: asset/not-found traceId: request-trace-id project-not-found: summary: Project not found value: message: Project not found code: project/not-found traceId: request-trace-id parameters: - name: assetId in: path required: true description: UUID of the asset to fetch schema: type: string format: uuid pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$ description: UUID of the asset to fetch example: 987fcdeb-51a2-43d7-b890-123456789abc requestBody: required: true content: application/json: schema: type: object properties: resource: default: content description: Which CDN resource to sign type: string enum: - content - preview lens: description: Lens identifier to apply, such as `thumbnail`. Do not combine with `transform`. type: string transform: description: Direct transform selector, such as `imageTransform[format=png,width=1024]`. Do not combine with `lens`. type: string expiresInSeconds: default: 900 description: Lifetime of the URL in seconds, from 1 second to 24 hours type: integer minimum: 1 maximum: 86400 example: resource: content expiresInSeconds: 900 /lenses/{lensIdentifier}: put: operationId: ensure-lens summary: Ensure Lens description: Create a lens or update it with a version greater than the current version security: - ApiKeyAuth: [] responses: "200": description: Successful response headers: X-Request-Id: *a1 content: application/json: schema: type: object properties: lens: type: object properties: id: type: string format: uuid pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-4[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$ description: Unique lens ID projectId: description: ID of the project that owns the lens; `null` for built-in lenses anyOf: - type: string format: uuid pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-4[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$ - type: "null" userId: description: ID of the user whose account created the lens anyOf: - {} - type: "null" version: default: 1 description: Definition version. Updates must use a greater version; it is part of the CDN cache key. type: integer exclusiveMinimum: 0 maximum: 9007199254740991 identifier: type: string minLength: 1 maxLength: 50 pattern: ^[a-z0-9-]+$ description: Name used in CDN URLs after `@`. Lowercase letters, numbers and hyphens, at most 50 characters. name: description: Display name description: description: Optional description of what the lens produces anyOf: - {} - type: "null" type: type: string enum: - image - video - audio - document - website description: Asset type the lens applies to active: type: boolean description: Whether the CDN serves the lens transforms: description: Transforms applied in order to produce the derived asset anyOf: - type: array items: type: object properties: type: type: string description: Transform type, such as `imageTransform` options: description: Options for the transform type, such as `width` and `format` required: - type - options additionalProperties: false - type: "null" createdAt: type: integer minimum: -9007199254740991 maximum: 9007199254740991 description: When the lens was created, in milliseconds since the Unix epoch updatedAt: description: When the lens was last updated, in milliseconds since the Unix epoch type: integer minimum: -9007199254740991 maximum: 9007199254740991 required: - id - version - identifier - name - type - active - createdAt additionalProperties: false required: - lens additionalProperties: false "401": description: |- auth/missing-token: Authentication required. Send your project API key in the X-Api-Key header. auth/invalid-api-key: The API key is invalid, revoked or expired. Create a key under Developer → API Keys. headers: X-Request-Id: *a1 content: application/json: schema: type: object required: - message - code - traceId properties: message: type: string code: type: string enum: - auth/missing-token - auth/invalid-api-key traceId: type: string examples: auth-missing-token: summary: Authentication required. Send your project API key in the X-Api-Key header. value: message: Authentication required. Send your project API key in the X-Api-Key header. code: auth/missing-token traceId: request-trace-id auth-invalid-api-key: summary: The API key is invalid, revoked or expired. Create a key under Developer → API Keys. value: message: The API key is invalid, revoked or expired. Create a key under Developer → API Keys. code: auth/invalid-api-key traceId: request-trace-id "403": description: "auth/project-mismatch: This API key belongs to a different project. Use a key created for the project that owns this resource." headers: X-Request-Id: *a1 content: application/json: schema: type: object required: - message - code - traceId properties: message: type: string code: type: string enum: - auth/project-mismatch traceId: type: string examples: auth-project-mismatch: summary: This API key belongs to a different project. Use a key created for the project that owns this resource. value: message: This API key belongs to a different project. Use a key created for the project that owns this resource. code: auth/project-mismatch traceId: request-trace-id parameters: - name: lensIdentifier in: path required: true schema: type: string example: thumbnail requestBody: required: true content: application/json: schema: type: object properties: identifier: type: string minLength: 1 maxLength: 50 pattern: ^[a-z0-9-]+$ description: Name used in CDN URLs after `@`. Lowercase letters, numbers and hyphens, at most 50 characters. name: description: Display name type: string description: description: Optional description of what the lens produces type: - string - "null" type: type: string enum: - image - video - audio - document - website description: Asset type the lens applies to active: type: boolean description: Whether the CDN serves the lens transforms: description: Transforms applied in order to produce the derived asset anyOf: - type: array items: type: object properties: type: type: string description: Transform type, such as `imageTransform` options: description: Options for the transform type, such as `width` and `format` required: - type - options - type: "null" version: default: 1 description: Definition version. Updates must use a greater version; it is part of the CDN cache key. type: integer exclusiveMinimum: 0 maximum: 9007199254740991 required: - identifier - name - type - active example: identifier: thumbnail name: Thumbnail type: image active: true version: 1 transforms: - type: imageTransform options: fit: scale-down width: 640 format: webp /projects/{projectId}/lenses: put: operationId: ensure-lenses summary: Ensure Lenses description: Create lenses or update them with their next versions security: - ApiKeyAuth: [] responses: "200": description: Successful response headers: X-Request-Id: *a1 content: application/json: schema: type: object properties: lenses: type: array items: type: object properties: id: type: string format: uuid pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-4[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$ description: Unique lens ID projectId: description: ID of the project that owns the lens; `null` for built-in lenses anyOf: - type: string format: uuid pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-4[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$ - type: "null" userId: description: ID of the user whose account created the lens anyOf: - {} - type: "null" version: default: 1 description: Definition version. Updates must use a greater version; it is part of the CDN cache key. type: integer exclusiveMinimum: 0 maximum: 9007199254740991 identifier: type: string minLength: 1 maxLength: 50 pattern: ^[a-z0-9-]+$ description: Name used in CDN URLs after `@`. Lowercase letters, numbers and hyphens, at most 50 characters. name: description: Display name description: description: Optional description of what the lens produces anyOf: - {} - type: "null" type: type: string enum: - image - video - audio - document - website description: Asset type the lens applies to active: type: boolean description: Whether the CDN serves the lens transforms: description: Transforms applied in order to produce the derived asset anyOf: - type: array items: type: object properties: type: type: string description: Transform type, such as `imageTransform` options: description: Options for the transform type, such as `width` and `format` required: - type - options additionalProperties: false - type: "null" createdAt: type: integer minimum: -9007199254740991 maximum: 9007199254740991 description: When the lens was created, in milliseconds since the Unix epoch updatedAt: description: When the lens was last updated, in milliseconds since the Unix epoch type: integer minimum: -9007199254740991 maximum: 9007199254740991 required: - id - version - identifier - name - type - active - createdAt additionalProperties: false required: - lenses additionalProperties: false "401": description: |- auth/missing-token: Authentication required. Send your project API key in the X-Api-Key header. auth/invalid-api-key: The API key is invalid, revoked or expired. Create a key under Developer → API Keys. headers: X-Request-Id: *a1 content: application/json: schema: type: object required: - message - code - traceId properties: message: type: string code: type: string enum: - auth/missing-token - auth/invalid-api-key traceId: type: string examples: auth-missing-token: summary: Authentication required. Send your project API key in the X-Api-Key header. value: message: Authentication required. Send your project API key in the X-Api-Key header. code: auth/missing-token traceId: request-trace-id auth-invalid-api-key: summary: The API key is invalid, revoked or expired. Create a key under Developer → API Keys. value: message: The API key is invalid, revoked or expired. Create a key under Developer → API Keys. code: auth/invalid-api-key traceId: request-trace-id "403": description: "auth/project-mismatch: This API key belongs to a different project. Use a key created for the project that owns this resource." headers: X-Request-Id: *a1 content: application/json: schema: type: object required: - message - code - traceId properties: message: type: string code: type: string enum: - auth/project-mismatch traceId: type: string examples: auth-project-mismatch: summary: This API key belongs to a different project. Use a key created for the project that owns this resource. value: message: This API key belongs to a different project. Use a key created for the project that owns this resource. code: auth/project-mismatch traceId: request-trace-id parameters: - name: projectId in: path required: true schema: type: string format: uuid pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$ requestBody: required: true content: application/json: schema: type: object properties: lenses: minItems: 1 type: array items: type: object properties: identifier: type: string minLength: 1 maxLength: 50 pattern: ^[a-z0-9-]+$ description: Name used in CDN URLs after `@`. Lowercase letters, numbers and hyphens, at most 50 characters. name: description: Display name type: string description: description: Optional description of what the lens produces type: - string - "null" type: type: string enum: - image - video - audio - document - website description: Asset type the lens applies to active: type: boolean description: Whether the CDN serves the lens transforms: description: Transforms applied in order to produce the derived asset anyOf: - type: array items: type: object properties: type: type: string description: Transform type, such as `imageTransform` options: description: Options for the transform type, such as `width` and `format` required: - type - options - type: "null" version: default: 1 description: Definition version. Updates must use a greater version; it is part of the CDN cache key. type: integer exclusiveMinimum: 0 maximum: 9007199254740991 required: - identifier - name - type - active required: - lenses example: lenses: - identifier: thumbnail name: Thumbnail type: image active: true version: 1 transforms: - type: imageTransform options: fit: scale-down width: 640 format: webp /projects/{projectId}/events: get: operationId: get-events summary: List Events description: List project events, oldest first, after a cursor. A webhook connector delivers each event as `{ id, type, createdAt, projectId, data }`, where `data` holds the remaining event fields. Each event's `facts` are `{ key, value, url? }` entries registered for its `type` (see the event types in the webhooks guide). Omit `after` to get a cursor for the current time without any events, then pass each response's `cursor` as `after` until `hasMore` is false. Polling receives new events without a public webhook URL, for example during local development. security: - ApiKeyAuth: [] responses: "200": description: Successful response headers: X-Request-Id: *a1 content: application/json: schema: type: object properties: events: type: array items: oneOf: - type: object properties: id: type: string format: uuid pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-4[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$ description: Unique event ID projectId: type: string format: uuid pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-4[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$ description: ID of the project the event belongs to userId: description: ID of the user who caused the event, if any anyOf: - {} - type: "null" type: type: string const: asset.uploaded description: A new asset was uploaded to the project. severity: type: string enum: - low - high description: Default severity of the event type title: description: Short human-readable summary description: description: Longer human-readable explanation anyOf: - {} - type: "null" assetId: description: ID of the asset the event is about, for asset events anyOf: - type: string format: uuid pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-4[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$ - type: "null" asset: description: Snapshot of the asset's moderation decision when the event was created, for asset events anyOf: - type: object properties: id: type: string description: Asset ID externalId: description: The asset's `externalId`, if you set one type: - string - "null" status: type: string enum: - uploading - pending - approved - rejected - error description: Asset status when the event was created flagged: description: The report's `flagged` value; `null` until the asset has been classified type: - boolean - "null" moderationAction: description: Moderation action applied to the asset, if any anyOf: - type: string enum: - ignore - alert - hide - purge - type: "null" required: - id - status additionalProperties: false - type: "null" facts: type: array items: oneOf: - type: object properties: key: type: string const: asset-name value: description: The asset's name when the event was created. type: - string - "null" url: type: string required: - key additionalProperties: false - type: object properties: key: type: string const: asset-type value: anyOf: - type: string enum: - image - video - audio - plaintext-document - multimedia-document - website - file - type: "null" description: The asset's type, such as `image` or `video`. url: type: string required: - key additionalProperties: false - type: object properties: key: type: string const: file-format value: description: The uploaded file's format, such as `jpg`. type: - string - "null" url: type: string required: - key additionalProperties: false - type: object properties: key: type: string const: test value: type: boolean url: type: string required: - key - value additionalProperties: false notify: description: Whether the event triggers in-app notifications type: - boolean - "null" createdAt: type: integer minimum: -9007199254740991 maximum: 9007199254740991 description: When the event was created, in milliseconds since the Unix epoch updatedAt: description: When the event was last updated, in milliseconds since the Unix epoch type: integer minimum: -9007199254740991 maximum: 9007199254740991 readAt: description: When the event was marked as read in the portal, in milliseconds since the Unix epoch type: - number - "null" required: - id - projectId - type - severity - title - facts - createdAt additionalProperties: false description: "Asset uploaded: A new asset was uploaded to the project." - type: object properties: id: type: string format: uuid pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-4[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$ description: Unique event ID projectId: type: string format: uuid pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-4[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$ description: ID of the project the event belongs to userId: description: ID of the user who caused the event, if any anyOf: - {} - type: "null" type: type: string const: asset.classified description: Moderation finished and the asset has a decision. severity: type: string enum: - low - high description: Default severity of the event type title: description: Short human-readable summary description: description: Longer human-readable explanation anyOf: - {} - type: "null" assetId: description: ID of the asset the event is about, for asset events anyOf: - type: string format: uuid pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-4[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$ - type: "null" asset: description: Snapshot of the asset's moderation decision when the event was created, for asset events anyOf: - type: object properties: id: type: string description: Asset ID externalId: description: The asset's `externalId`, if you set one type: - string - "null" status: type: string enum: - uploading - pending - approved - rejected - error description: Asset status when the event was created flagged: description: The report's `flagged` value; `null` until the asset has been classified type: - boolean - "null" moderationAction: description: Moderation action applied to the asset, if any anyOf: - type: string enum: - ignore - alert - hide - purge - type: "null" required: - id - status additionalProperties: false - type: "null" facts: type: array items: oneOf: - type: object properties: key: type: string const: asset-name value: description: The asset's name when the event was created. type: - string - "null" url: type: string required: - key additionalProperties: false - type: object properties: key: type: string const: asset-type value: anyOf: - type: string enum: - image - video - audio - plaintext-document - multimedia-document - website - file - type: "null" description: The asset's type, such as `image` or `video`. url: type: string required: - key additionalProperties: false - type: object properties: key: type: string const: status value: type: string enum: - uploading - pending - approved - rejected - error description: "The asset's status after classification: `approved`, `rejected` or `error`." url: type: string required: - key - value additionalProperties: false - type: object properties: key: type: string const: moderation-action value: anyOf: - type: string enum: - ignore - alert - hide - purge - type: "null" description: The action applied to flagged content (`alert`, `hide` or `purge`), or `null`. url: type: string required: - key additionalProperties: false - type: object properties: key: type: string const: test value: type: boolean url: type: string required: - key - value additionalProperties: false notify: description: Whether the event triggers in-app notifications type: - boolean - "null" createdAt: type: integer minimum: -9007199254740991 maximum: 9007199254740991 description: When the event was created, in milliseconds since the Unix epoch updatedAt: description: When the event was last updated, in milliseconds since the Unix epoch type: integer minimum: -9007199254740991 maximum: 9007199254740991 readAt: description: When the event was marked as read in the portal, in milliseconds since the Unix epoch type: - number - "null" required: - id - projectId - type - severity - title - facts - createdAt additionalProperties: false description: "Asset classified: Moderation finished and the asset has a decision." - type: object properties: id: type: string format: uuid pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-4[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$ description: Unique event ID projectId: type: string format: uuid pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-4[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$ description: ID of the project the event belongs to userId: description: ID of the user who caused the event, if any anyOf: - {} - type: "null" type: type: string const: asset.flagged description: Automated moderation flagged the asset for a policy violation. severity: type: string enum: - low - high description: Default severity of the event type title: description: Short human-readable summary description: description: Longer human-readable explanation anyOf: - {} - type: "null" assetId: description: ID of the asset the event is about, for asset events anyOf: - type: string format: uuid pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-4[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$ - type: "null" asset: description: Snapshot of the asset's moderation decision when the event was created, for asset events anyOf: - type: object properties: id: type: string description: Asset ID externalId: description: The asset's `externalId`, if you set one type: - string - "null" status: type: string enum: - uploading - pending - approved - rejected - error description: Asset status when the event was created flagged: description: The report's `flagged` value; `null` until the asset has been classified type: - boolean - "null" moderationAction: description: Moderation action applied to the asset, if any anyOf: - type: string enum: - ignore - alert - hide - purge - type: "null" required: - id - status additionalProperties: false - type: "null" facts: type: array items: oneOf: - type: object properties: key: type: string const: asset-name value: description: The asset's name when the event was created. type: - string - "null" url: type: string required: - key additionalProperties: false - type: object properties: key: type: string const: asset-type value: anyOf: - type: string enum: - image - video - audio - plaintext-document - multimedia-document - website - file - type: "null" description: The asset's type, such as `image` or `video`. url: type: string required: - key additionalProperties: false - type: object properties: key: type: string const: flagged-categories value: type: array items: type: string description: The matched parent policy categories. Inspect the asset's moderation report for qualifier detail. url: type: string required: - key - value additionalProperties: false - type: object properties: key: type: string const: moderation-action value: anyOf: - type: string enum: - ignore - alert - hide - purge - type: "null" description: The action applied to the flagged content (`alert`, `hide` or `purge`). url: type: string required: - key additionalProperties: false - type: object properties: key: type: string const: test value: type: boolean url: type: string required: - key - value additionalProperties: false notify: description: Whether the event triggers in-app notifications type: - boolean - "null" createdAt: type: integer minimum: -9007199254740991 maximum: 9007199254740991 description: When the event was created, in milliseconds since the Unix epoch updatedAt: description: When the event was last updated, in milliseconds since the Unix epoch type: integer minimum: -9007199254740991 maximum: 9007199254740991 readAt: description: When the event was marked as read in the portal, in milliseconds since the Unix epoch type: - number - "null" required: - id - projectId - type - severity - title - facts - createdAt additionalProperties: false description: "Asset flagged: Automated moderation flagged the asset for a policy violation." - type: object properties: id: type: string format: uuid pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-4[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$ description: Unique event ID projectId: type: string format: uuid pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-4[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$ description: ID of the project the event belongs to userId: description: ID of the user who caused the event, if any anyOf: - {} - type: "null" type: type: string const: asset.approved description: A reviewer approved a rejected asset in the portal. severity: type: string enum: - low - high description: Default severity of the event type title: description: Short human-readable summary description: description: Longer human-readable explanation anyOf: - {} - type: "null" assetId: description: ID of the asset the event is about, for asset events anyOf: - type: string format: uuid pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-4[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$ - type: "null" asset: description: Snapshot of the asset's moderation decision when the event was created, for asset events anyOf: - type: object properties: id: type: string description: Asset ID externalId: description: The asset's `externalId`, if you set one type: - string - "null" status: type: string enum: - uploading - pending - approved - rejected - error description: Asset status when the event was created flagged: description: The report's `flagged` value; `null` until the asset has been classified type: - boolean - "null" moderationAction: description: Moderation action applied to the asset, if any anyOf: - type: string enum: - ignore - alert - hide - purge - type: "null" required: - id - status additionalProperties: false - type: "null" facts: type: array items: oneOf: - type: object properties: key: type: string const: asset-name value: description: The asset's name when the event was created. type: - string - "null" url: type: string required: - key additionalProperties: false - type: object properties: key: type: string const: asset-type value: anyOf: - type: string enum: - image - video - audio - plaintext-document - multimedia-document - website - file - type: "null" description: The asset's type, such as `image` or `video`. url: type: string required: - key additionalProperties: false - type: object properties: key: type: string const: reviewer-user-id value: description: ID of the user who made the decision, or `null` when an API key made it. type: - string - "null" url: type: string required: - key additionalProperties: false - type: object properties: key: type: string const: reviewer-name value: description: Name or email of the user who made the decision, when known. type: - string - "null" url: type: string required: - key additionalProperties: false - type: object properties: key: type: string const: note value: description: The reviewer's note, or `null`. type: - string - "null" url: type: string required: - key additionalProperties: false - type: object properties: key: type: string const: test value: type: boolean url: type: string required: - key - value additionalProperties: false notify: description: Whether the event triggers in-app notifications type: - boolean - "null" createdAt: type: integer minimum: -9007199254740991 maximum: 9007199254740991 description: When the event was created, in milliseconds since the Unix epoch updatedAt: description: When the event was last updated, in milliseconds since the Unix epoch type: integer minimum: -9007199254740991 maximum: 9007199254740991 readAt: description: When the event was marked as read in the portal, in milliseconds since the Unix epoch type: - number - "null" required: - id - projectId - type - severity - title - facts - createdAt additionalProperties: false description: "Asset approved: A reviewer approved a rejected asset in the portal." - type: object properties: id: type: string format: uuid pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-4[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$ description: Unique event ID projectId: type: string format: uuid pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-4[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$ description: ID of the project the event belongs to userId: description: ID of the user who caused the event, if any anyOf: - {} - type: "null" type: type: string const: asset.rejected description: A reviewer rejected an asset in the portal. severity: type: string enum: - low - high description: Default severity of the event type title: description: Short human-readable summary description: description: Longer human-readable explanation anyOf: - {} - type: "null" assetId: description: ID of the asset the event is about, for asset events anyOf: - type: string format: uuid pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-4[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$ - type: "null" asset: description: Snapshot of the asset's moderation decision when the event was created, for asset events anyOf: - type: object properties: id: type: string description: Asset ID externalId: description: The asset's `externalId`, if you set one type: - string - "null" status: type: string enum: - uploading - pending - approved - rejected - error description: Asset status when the event was created flagged: description: The report's `flagged` value; `null` until the asset has been classified type: - boolean - "null" moderationAction: description: Moderation action applied to the asset, if any anyOf: - type: string enum: - ignore - alert - hide - purge - type: "null" required: - id - status additionalProperties: false - type: "null" facts: type: array items: oneOf: - type: object properties: key: type: string const: asset-name value: description: The asset's name when the event was created. type: - string - "null" url: type: string required: - key additionalProperties: false - type: object properties: key: type: string const: asset-type value: anyOf: - type: string enum: - image - video - audio - plaintext-document - multimedia-document - website - file - type: "null" description: The asset's type, such as `image` or `video`. url: type: string required: - key additionalProperties: false - type: object properties: key: type: string const: reviewer-user-id value: description: ID of the user who made the decision, or `null` when an API key made it. type: - string - "null" url: type: string required: - key additionalProperties: false - type: object properties: key: type: string const: reviewer-name value: description: Name or email of the user who made the decision, when known. type: - string - "null" url: type: string required: - key additionalProperties: false - type: object properties: key: type: string const: note value: description: The reviewer's reason for rejecting the asset, or `null`. type: - string - "null" url: type: string required: - key additionalProperties: false - type: object properties: key: type: string const: test value: type: boolean url: type: string required: - key - value additionalProperties: false notify: description: Whether the event triggers in-app notifications type: - boolean - "null" createdAt: type: integer minimum: -9007199254740991 maximum: 9007199254740991 description: When the event was created, in milliseconds since the Unix epoch updatedAt: description: When the event was last updated, in milliseconds since the Unix epoch type: integer minimum: -9007199254740991 maximum: 9007199254740991 readAt: description: When the event was marked as read in the portal, in milliseconds since the Unix epoch type: - number - "null" required: - id - projectId - type - severity - title - facts - createdAt additionalProperties: false description: "Asset rejected: A reviewer rejected an asset in the portal." - type: object properties: id: type: string format: uuid pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-4[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$ description: Unique event ID projectId: type: string format: uuid pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-4[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$ description: ID of the project the event belongs to userId: description: ID of the user who caused the event, if any anyOf: - {} - type: "null" type: type: string const: asset.failed description: The asset could not be processed and is in the error state. severity: type: string enum: - low - high description: Default severity of the event type title: description: Short human-readable summary description: description: Longer human-readable explanation anyOf: - {} - type: "null" assetId: description: ID of the asset the event is about, for asset events anyOf: - type: string format: uuid pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-4[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$ - type: "null" asset: description: Snapshot of the asset's moderation decision when the event was created, for asset events anyOf: - type: object properties: id: type: string description: Asset ID externalId: description: The asset's `externalId`, if you set one type: - string - "null" status: type: string enum: - uploading - pending - approved - rejected - error description: Asset status when the event was created flagged: description: The report's `flagged` value; `null` until the asset has been classified type: - boolean - "null" moderationAction: description: Moderation action applied to the asset, if any anyOf: - type: string enum: - ignore - alert - hide - purge - type: "null" required: - id - status additionalProperties: false - type: "null" facts: type: array items: oneOf: - type: object properties: key: type: string const: asset-name value: description: The asset's name when the event was created. type: - string - "null" url: type: string required: - key additionalProperties: false - type: object properties: key: type: string const: asset-type value: anyOf: - type: string enum: - image - video - audio - plaintext-document - multimedia-document - website - file - type: "null" description: The asset's type, such as `image` or `video`. url: type: string required: - key additionalProperties: false - type: object properties: key: type: string const: previous-status value: anyOf: - type: string enum: - uploading - pending - approved - rejected - error - type: "null" description: The asset's status before it failed, such as `pending`. url: type: string required: - key additionalProperties: false - type: object properties: key: type: string const: test value: type: boolean url: type: string required: - key - value additionalProperties: false notify: description: Whether the event triggers in-app notifications type: - boolean - "null" createdAt: type: integer minimum: -9007199254740991 maximum: 9007199254740991 description: When the event was created, in milliseconds since the Unix epoch updatedAt: description: When the event was last updated, in milliseconds since the Unix epoch type: integer minimum: -9007199254740991 maximum: 9007199254740991 readAt: description: When the event was marked as read in the portal, in milliseconds since the Unix epoch type: - number - "null" required: - id - projectId - type - severity - title - facts - createdAt additionalProperties: false description: "Asset failed: The asset could not be processed and is in the error state." - type: object properties: id: type: string format: uuid pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-4[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$ description: Unique event ID projectId: type: string format: uuid pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-4[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$ description: ID of the project the event belongs to userId: description: ID of the user who caused the event, if any anyOf: - {} - type: "null" type: type: string const: usage.limit-reached description: The project owner used their free upload allowance; new uploads are blocked. severity: type: string enum: - low - high description: Default severity of the event type title: description: Short human-readable summary description: description: Longer human-readable explanation anyOf: - {} - type: "null" assetId: description: ID of the asset the event is about, for asset events anyOf: - type: string format: uuid pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-4[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$ - type: "null" asset: description: Snapshot of the asset's moderation decision when the event was created, for asset events anyOf: - type: object properties: id: type: string description: Asset ID externalId: description: The asset's `externalId`, if you set one type: - string - "null" status: type: string enum: - uploading - pending - approved - rejected - error description: Asset status when the event was created flagged: description: The report's `flagged` value; `null` until the asset has been classified type: - boolean - "null" moderationAction: description: Moderation action applied to the asset, if any anyOf: - type: string enum: - ignore - alert - hide - purge - type: "null" required: - id - status additionalProperties: false - type: "null" facts: type: array items: oneOf: - type: object properties: key: type: string const: limit value: type: integer minimum: -9007199254740991 maximum: 9007199254740991 description: Number of free uploads in the allowance. url: type: string required: - key - value additionalProperties: false - type: object properties: key: type: string const: used value: type: integer minimum: -9007199254740991 maximum: 9007199254740991 description: Number of free uploads used. url: type: string required: - key - value additionalProperties: false - type: object properties: key: type: string const: owner-user-id value: type: string description: ID of the project owner whose allowance was used. url: type: string required: - key - value additionalProperties: false - type: object properties: key: type: string const: test value: type: boolean url: type: string required: - key - value additionalProperties: false notify: description: Whether the event triggers in-app notifications type: - boolean - "null" createdAt: type: integer minimum: -9007199254740991 maximum: 9007199254740991 description: When the event was created, in milliseconds since the Unix epoch updatedAt: description: When the event was last updated, in milliseconds since the Unix epoch type: integer minimum: -9007199254740991 maximum: 9007199254740991 readAt: description: When the event was marked as read in the portal, in milliseconds since the Unix epoch type: - number - "null" required: - id - projectId - type - severity - title - facts - createdAt additionalProperties: false description: "Upload limit reached: The project owner used their free upload allowance; new uploads are blocked." - type: object properties: id: type: string format: uuid pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-4[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$ description: Unique event ID projectId: type: string format: uuid pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-4[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$ description: ID of the project the event belongs to userId: description: ID of the user who caused the event, if any anyOf: - {} - type: "null" type: type: string const: project.member-joined description: Someone accepted an invitation and joined the project. severity: type: string enum: - low - high description: Default severity of the event type title: description: Short human-readable summary description: description: Longer human-readable explanation anyOf: - {} - type: "null" assetId: description: ID of the asset the event is about, for asset events anyOf: - type: string format: uuid pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-4[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$ - type: "null" asset: description: Snapshot of the asset's moderation decision when the event was created, for asset events anyOf: - type: object properties: id: type: string description: Asset ID externalId: description: The asset's `externalId`, if you set one type: - string - "null" status: type: string enum: - uploading - pending - approved - rejected - error description: Asset status when the event was created flagged: description: The report's `flagged` value; `null` until the asset has been classified type: - boolean - "null" moderationAction: description: Moderation action applied to the asset, if any anyOf: - type: string enum: - ignore - alert - hide - purge - type: "null" required: - id - status additionalProperties: false - type: "null" facts: type: array items: oneOf: - type: object properties: key: type: string const: member-user-id value: type: string description: User ID of the new member. url: type: string required: - key - value additionalProperties: false - type: object properties: key: type: string const: member-name value: description: The new member's name or email. type: - string - "null" url: type: string required: - key additionalProperties: false - type: object properties: key: type: string const: role value: type: string enum: - admin - member - viewer - custom description: "The member's role: `admin`, `member`, `viewer` or `custom`." url: type: string required: - key - value additionalProperties: false - type: object properties: key: type: string const: invited-by-user-id value: description: User ID of the person who sent the invitation. type: - string - "null" url: type: string required: - key additionalProperties: false - type: object properties: key: type: string const: test value: type: boolean url: type: string required: - key - value additionalProperties: false notify: description: Whether the event triggers in-app notifications type: - boolean - "null" createdAt: type: integer minimum: -9007199254740991 maximum: 9007199254740991 description: When the event was created, in milliseconds since the Unix epoch updatedAt: description: When the event was last updated, in milliseconds since the Unix epoch type: integer minimum: -9007199254740991 maximum: 9007199254740991 readAt: description: When the event was marked as read in the portal, in milliseconds since the Unix epoch type: - number - "null" required: - id - projectId - type - severity - title - facts - createdAt additionalProperties: false description: "Member joined: Someone accepted an invitation and joined the project." - type: object properties: id: type: string format: uuid pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-4[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$ description: Unique event ID projectId: type: string format: uuid pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-4[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$ description: ID of the project the event belongs to userId: description: ID of the user who caused the event, if any anyOf: - {} - type: "null" type: type: string const: connector.failing description: Deliveries to a connector kept failing, so it was turned off. severity: type: string enum: - low - high description: Default severity of the event type title: description: Short human-readable summary description: description: Longer human-readable explanation anyOf: - {} - type: "null" assetId: description: ID of the asset the event is about, for asset events anyOf: - type: string format: uuid pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-4[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$ - type: "null" asset: description: Snapshot of the asset's moderation decision when the event was created, for asset events anyOf: - type: object properties: id: type: string description: Asset ID externalId: description: The asset's `externalId`, if you set one type: - string - "null" status: type: string enum: - uploading - pending - approved - rejected - error description: Asset status when the event was created flagged: description: The report's `flagged` value; `null` until the asset has been classified type: - boolean - "null" moderationAction: description: Moderation action applied to the asset, if any anyOf: - type: string enum: - ignore - alert - hide - purge - type: "null" required: - id - status additionalProperties: false - type: "null" facts: type: array items: oneOf: - type: object properties: key: type: string const: connector-id value: type: string description: ID of the failing connector. url: type: string required: - key - value additionalProperties: false - type: object properties: key: type: string const: connector-name value: type: string description: The connector's name. url: type: string required: - key - value additionalProperties: false - type: object properties: key: type: string const: connector-type value: type: string description: The connector's type, such as `webhook`, `slack` or `email`. url: type: string required: - key - value additionalProperties: false - type: object properties: key: type: string const: consecutive-failures value: type: integer minimum: -9007199254740991 maximum: 9007199254740991 description: Number of deliveries in a row that failed after their retries. url: type: string required: - key - value additionalProperties: false - type: object properties: key: type: string const: last-error value: description: Summary of the most recent failure, or `null`. type: - string - "null" url: type: string required: - key additionalProperties: false - type: object properties: key: type: string const: test value: type: boolean url: type: string required: - key - value additionalProperties: false notify: description: Whether the event triggers in-app notifications type: - boolean - "null" createdAt: type: integer minimum: -9007199254740991 maximum: 9007199254740991 description: When the event was created, in milliseconds since the Unix epoch updatedAt: description: When the event was last updated, in milliseconds since the Unix epoch type: integer minimum: -9007199254740991 maximum: 9007199254740991 readAt: description: When the event was marked as read in the portal, in milliseconds since the Unix epoch type: - number - "null" required: - id - projectId - type - severity - title - facts - createdAt additionalProperties: false description: "Connector failing: Deliveries to a connector kept failing, so it was turned off." description: An event; `facts` depends on `type` cursor: type: string hasMore: type: boolean required: - events - cursor - hasMore additionalProperties: false "400": description: "events/invalid-cursor: The events cursor is invalid. Use the cursor from a previous response, or omit it to start from now." headers: X-Request-Id: *a1 content: application/json: schema: type: object required: - message - code - traceId properties: message: type: string code: type: string enum: - events/invalid-cursor traceId: type: string examples: events-invalid-cursor: summary: The events cursor is invalid. Use the cursor from a previous response, or omit it to start from now. value: message: The events cursor is invalid. Use the cursor from a previous response, or omit it to start from now. code: events/invalid-cursor traceId: request-trace-id "401": description: |- auth/missing-token: Authentication required. Send your project API key in the X-Api-Key header. auth/invalid-api-key: The API key is invalid, revoked or expired. Create a key under Developer → API Keys. headers: X-Request-Id: *a1 content: application/json: schema: type: object required: - message - code - traceId properties: message: type: string code: type: string enum: - auth/missing-token - auth/invalid-api-key traceId: type: string examples: auth-missing-token: summary: Authentication required. Send your project API key in the X-Api-Key header. value: message: Authentication required. Send your project API key in the X-Api-Key header. code: auth/missing-token traceId: request-trace-id auth-invalid-api-key: summary: The API key is invalid, revoked or expired. Create a key under Developer → API Keys. value: message: The API key is invalid, revoked or expired. Create a key under Developer → API Keys. code: auth/invalid-api-key traceId: request-trace-id "403": description: "auth/project-mismatch: This API key belongs to a different project. Use a key created for the project that owns this resource." headers: X-Request-Id: *a1 content: application/json: schema: type: object required: - message - code - traceId properties: message: type: string code: type: string enum: - auth/project-mismatch traceId: type: string examples: auth-project-mismatch: summary: This API key belongs to a different project. Use a key created for the project that owns this resource. value: message: This API key belongs to a different project. Use a key created for the project that owns this resource. code: auth/project-mismatch traceId: request-trace-id "404": description: "project/not-found: Project not found" headers: X-Request-Id: *a1 content: application/json: schema: type: object required: - message - code - traceId properties: message: type: string code: type: string enum: - project/not-found traceId: type: string examples: project-not-found: summary: Project not found value: message: Project not found code: project/not-found traceId: request-trace-id parameters: - name: projectId in: path required: true description: UUID of the project to read events from schema: type: string format: uuid pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$ description: UUID of the project to read events from - name: after in: query required: false description: The `cursor` from a previous response. Omit it to get a cursor for the current time without any events. schema: type: string maxLength: 200 description: The `cursor` from a previous response. Omit it to get a cursor for the current time without any events. - name: limit in: query required: false description: Maximum number of events to return schema: default: "50" type: integer minimum: 1 maximum: 100 description: Maximum number of events to return example: 50 components: securitySchemes: ApiKeyAuth: type: apiKey in: header name: X-Api-Key