Events reference
Every event topic Koil delivers to Event Destinations, with the JSON Schema of each delivery envelope.
Every delivery to an Event Destination is one JSON object with the same envelope: a stable id for dedupe, the wire topic, the event time, the family's metadata (the facts destination filters match on, always including organizationId and mode), and the topic's data payload. Subscribe to a topic exactly, to a family with a trailing .*, or to everything with *.
This page is generated from the event catalog when the docs are built; a topic that is not listed here is not emitted.
Connection
connection.created
A provider connection was created.
metadata
| Field | Type | Required | Description |
|---|---|---|---|
organizationId | string | yes | |
mode | "live" | "test" | yes | Which mode produced the event. Test-mode events come from fixture providers and never reach live infrastructure. |
connectionId | string | yes | |
authIntegrationId | string | yes | |
provider | string | no |
data
| Field | Type | Required | Description |
|---|---|---|---|
connectionId | string | yes | |
authIntegrationId | string | yes | |
provider | string | no | |
error | Record<string, unknown> | no | |
| additional fields | unknown | no | Providers may add fields; treat unknown keys as optional. |
Envelope JSON Schema
{
"additionalProperties": false,
"type": "object",
"properties": {
"id": {
"description": "Stable dedupe id for this logical event (`evt_…`).",
"pattern": "^evt_[0-9a-f]{40}$",
"type": "string"
},
"topic": {
"const": "connection.created",
"type": "string"
},
"time": {
"description": "When the event occurred (RFC 3339).",
"format": "date-time",
"type": "string"
},
"metadata": {
"additionalProperties": false,
"type": "object",
"properties": {
"organizationId": {
"minLength": 1,
"type": "string"
},
"mode": {
"description": "Which mode produced the event. Test-mode events come from fixture providers and never reach live infrastructure.",
"anyOf": [
{
"const": "live",
"type": "string"
},
{
"const": "test",
"type": "string"
}
]
},
"connectionId": {
"minLength": 1,
"type": "string"
},
"authIntegrationId": {
"minLength": 1,
"type": "string"
},
"provider": {
"minLength": 1,
"type": "string"
}
},
"required": [
"organizationId",
"mode",
"connectionId",
"authIntegrationId"
]
},
"data": {
"additionalProperties": true,
"type": "object",
"properties": {
"connectionId": {
"minLength": 1,
"type": "string"
},
"authIntegrationId": {
"minLength": 1,
"type": "string"
},
"provider": {
"minLength": 1,
"type": "string"
},
"error": {
"type": "object",
"patternProperties": {
"^(.*)$": {}
}
}
},
"required": [
"connectionId",
"authIntegrationId"
]
}
},
"required": [
"id",
"topic",
"time",
"metadata",
"data"
]
}connection.deleted
A provider connection was deleted: through the API, with its Auth Integration or Organization, or by Koil once the end user revoked access.
metadata
| Field | Type | Required | Description |
|---|---|---|---|
organizationId | string | yes | |
mode | "live" | "test" | yes | Which mode produced the event. Test-mode events come from fixture providers and never reach live infrastructure. |
connectionId | string | yes | |
authIntegrationId | string | yes | |
provider | string | no |
data
| Field | Type | Required | Description |
|---|---|---|---|
connectionId | string | yes | |
authIntegrationId | string | yes | |
provider | string | no | |
error | Record<string, unknown> | no | |
| additional fields | unknown | no | Providers may add fields; treat unknown keys as optional. |
Envelope JSON Schema
{
"additionalProperties": false,
"type": "object",
"properties": {
"id": {
"description": "Stable dedupe id for this logical event (`evt_…`).",
"pattern": "^evt_[0-9a-f]{40}$",
"type": "string"
},
"topic": {
"const": "connection.deleted",
"type": "string"
},
"time": {
"description": "When the event occurred (RFC 3339).",
"format": "date-time",
"type": "string"
},
"metadata": {
"additionalProperties": false,
"type": "object",
"properties": {
"organizationId": {
"minLength": 1,
"type": "string"
},
"mode": {
"description": "Which mode produced the event. Test-mode events come from fixture providers and never reach live infrastructure.",
"anyOf": [
{
"const": "live",
"type": "string"
},
{
"const": "test",
"type": "string"
}
]
},
"connectionId": {
"minLength": 1,
"type": "string"
},
"authIntegrationId": {
"minLength": 1,
"type": "string"
},
"provider": {
"minLength": 1,
"type": "string"
}
},
"required": [
"organizationId",
"mode",
"connectionId",
"authIntegrationId"
]
},
"data": {
"additionalProperties": true,
"type": "object",
"properties": {
"connectionId": {
"minLength": 1,
"type": "string"
},
"authIntegrationId": {
"minLength": 1,
"type": "string"
},
"provider": {
"minLength": 1,
"type": "string"
},
"error": {
"type": "object",
"patternProperties": {
"^(.*)$": {}
}
}
},
"required": [
"connectionId",
"authIntegrationId"
]
}
},
"required": [
"id",
"topic",
"time",
"metadata",
"data"
]
}connection.refresh_failed
A connection's stored credential could no longer be refreshed; it is now invalid and the end user must re-authorize. This is the one connection-health signal: expired, revoked, and insufficient-scope grants are not distinguished. A connection still failing six days later is deleted, since the failure may be a revocation.
metadata
| Field | Type | Required | Description |
|---|---|---|---|
organizationId | string | yes | |
mode | "live" | "test" | yes | Which mode produced the event. Test-mode events come from fixture providers and never reach live infrastructure. |
connectionId | string | yes | |
authIntegrationId | string | yes | |
provider | string | no |
data
| Field | Type | Required | Description |
|---|---|---|---|
connectionId | string | yes | |
authIntegrationId | string | yes | |
provider | string | no | |
error | Record<string, unknown> | no | |
| additional fields | unknown | no | Providers may add fields; treat unknown keys as optional. |
Envelope JSON Schema
{
"additionalProperties": false,
"type": "object",
"properties": {
"id": {
"description": "Stable dedupe id for this logical event (`evt_…`).",
"pattern": "^evt_[0-9a-f]{40}$",
"type": "string"
},
"topic": {
"const": "connection.refresh_failed",
"type": "string"
},
"time": {
"description": "When the event occurred (RFC 3339).",
"format": "date-time",
"type": "string"
},
"metadata": {
"additionalProperties": false,
"type": "object",
"properties": {
"organizationId": {
"minLength": 1,
"type": "string"
},
"mode": {
"description": "Which mode produced the event. Test-mode events come from fixture providers and never reach live infrastructure.",
"anyOf": [
{
"const": "live",
"type": "string"
},
{
"const": "test",
"type": "string"
}
]
},
"connectionId": {
"minLength": 1,
"type": "string"
},
"authIntegrationId": {
"minLength": 1,
"type": "string"
},
"provider": {
"minLength": 1,
"type": "string"
}
},
"required": [
"organizationId",
"mode",
"connectionId",
"authIntegrationId"
]
},
"data": {
"additionalProperties": true,
"type": "object",
"properties": {
"connectionId": {
"minLength": 1,
"type": "string"
},
"authIntegrationId": {
"minLength": 1,
"type": "string"
},
"provider": {
"minLength": 1,
"type": "string"
},
"error": {
"type": "object",
"patternProperties": {
"^(.*)$": {}
}
}
},
"required": [
"connectionId",
"authIntegrationId"
]
}
},
"required": [
"id",
"topic",
"time",
"metadata",
"data"
]
}Connected profile
connected_profile.created
A connected profile was created.
metadata
| Field | Type | Required | Description |
|---|---|---|---|
organizationId | string | yes | |
mode | "live" | "test" | yes | Which mode produced the event. Test-mode events come from fixture providers and never reach live infrastructure. |
connectedProfileId | string | yes | |
provider | string | no |
data
| Field | Type | Required | Description |
|---|---|---|---|
connectedProfileId | string | yes | |
provider | string | no | |
| additional fields | unknown | no | Providers may add fields; treat unknown keys as optional. |
Envelope JSON Schema
{
"additionalProperties": false,
"type": "object",
"properties": {
"id": {
"description": "Stable dedupe id for this logical event (`evt_…`).",
"pattern": "^evt_[0-9a-f]{40}$",
"type": "string"
},
"topic": {
"const": "connected_profile.created",
"type": "string"
},
"time": {
"description": "When the event occurred (RFC 3339).",
"format": "date-time",
"type": "string"
},
"metadata": {
"additionalProperties": false,
"type": "object",
"properties": {
"organizationId": {
"minLength": 1,
"type": "string"
},
"mode": {
"description": "Which mode produced the event. Test-mode events come from fixture providers and never reach live infrastructure.",
"anyOf": [
{
"const": "live",
"type": "string"
},
{
"const": "test",
"type": "string"
}
]
},
"connectedProfileId": {
"minLength": 1,
"type": "string"
},
"provider": {
"minLength": 1,
"type": "string"
}
},
"required": [
"organizationId",
"mode",
"connectedProfileId"
]
},
"data": {
"additionalProperties": true,
"type": "object",
"properties": {
"connectedProfileId": {
"minLength": 1,
"type": "string"
},
"provider": {
"minLength": 1,
"type": "string"
}
},
"required": [
"connectedProfileId"
]
}
},
"required": [
"id",
"topic",
"time",
"metadata",
"data"
]
}connected_profile.deleted
A connected profile was deleted.
metadata
| Field | Type | Required | Description |
|---|---|---|---|
organizationId | string | yes | |
mode | "live" | "test" | yes | Which mode produced the event. Test-mode events come from fixture providers and never reach live infrastructure. |
connectedProfileId | string | yes | |
provider | string | no |
data
| Field | Type | Required | Description |
|---|---|---|---|
connectedProfileId | string | yes | |
provider | string | no | |
| additional fields | unknown | no | Providers may add fields; treat unknown keys as optional. |
Envelope JSON Schema
{
"additionalProperties": false,
"type": "object",
"properties": {
"id": {
"description": "Stable dedupe id for this logical event (`evt_…`).",
"pattern": "^evt_[0-9a-f]{40}$",
"type": "string"
},
"topic": {
"const": "connected_profile.deleted",
"type": "string"
},
"time": {
"description": "When the event occurred (RFC 3339).",
"format": "date-time",
"type": "string"
},
"metadata": {
"additionalProperties": false,
"type": "object",
"properties": {
"organizationId": {
"minLength": 1,
"type": "string"
},
"mode": {
"description": "Which mode produced the event. Test-mode events come from fixture providers and never reach live infrastructure.",
"anyOf": [
{
"const": "live",
"type": "string"
},
{
"const": "test",
"type": "string"
}
]
},
"connectedProfileId": {
"minLength": 1,
"type": "string"
},
"provider": {
"minLength": 1,
"type": "string"
}
},
"required": [
"organizationId",
"mode",
"connectedProfileId"
]
},
"data": {
"additionalProperties": true,
"type": "object",
"properties": {
"connectedProfileId": {
"minLength": 1,
"type": "string"
},
"provider": {
"minLength": 1,
"type": "string"
}
},
"required": [
"connectedProfileId"
]
}
},
"required": [
"id",
"topic",
"time",
"metadata",
"data"
]
}Media
media.process_failed
Media processing failed; the media cannot be published.
metadata
| Field | Type | Required | Description |
|---|---|---|---|
organizationId | string | yes | |
mode | "live" | "test" | yes | Which mode produced the event. Test-mode events come from fixture providers and never reach live infrastructure. |
mediaId | string | yes | |
status | string | yes |
data
| Field | Type | Required | Description |
|---|---|---|---|
mediaId | string | yes | |
status | string | yes | |
error | Record<string, unknown> | no | |
| additional fields | unknown | no | Providers may add fields; treat unknown keys as optional. |
Envelope JSON Schema
{
"additionalProperties": false,
"type": "object",
"properties": {
"id": {
"description": "Stable dedupe id for this logical event (`evt_…`).",
"pattern": "^evt_[0-9a-f]{40}$",
"type": "string"
},
"topic": {
"const": "media.process_failed",
"type": "string"
},
"time": {
"description": "When the event occurred (RFC 3339).",
"format": "date-time",
"type": "string"
},
"metadata": {
"additionalProperties": false,
"type": "object",
"properties": {
"organizationId": {
"minLength": 1,
"type": "string"
},
"mode": {
"description": "Which mode produced the event. Test-mode events come from fixture providers and never reach live infrastructure.",
"anyOf": [
{
"const": "live",
"type": "string"
},
{
"const": "test",
"type": "string"
}
]
},
"mediaId": {
"minLength": 1,
"type": "string"
},
"status": {
"minLength": 1,
"type": "string"
}
},
"required": [
"organizationId",
"mode",
"mediaId",
"status"
]
},
"data": {
"additionalProperties": true,
"type": "object",
"properties": {
"mediaId": {
"minLength": 1,
"type": "string"
},
"status": {
"minLength": 1,
"type": "string"
},
"error": {
"type": "object",
"patternProperties": {
"^(.*)$": {}
}
}
},
"required": [
"mediaId",
"status"
]
}
},
"required": [
"id",
"topic",
"time",
"metadata",
"data"
]
}media.processed
Media was verified and copied to originals; the preview URL is now usable and it is ready to publish.
metadata
| Field | Type | Required | Description |
|---|---|---|---|
organizationId | string | yes | |
mode | "live" | "test" | yes | Which mode produced the event. Test-mode events come from fixture providers and never reach live infrastructure. |
mediaId | string | yes | |
status | string | yes |
data
| Field | Type | Required | Description |
|---|---|---|---|
mediaId | string | yes | |
status | string | yes | |
error | Record<string, unknown> | no | |
| additional fields | unknown | no | Providers may add fields; treat unknown keys as optional. |
Envelope JSON Schema
{
"additionalProperties": false,
"type": "object",
"properties": {
"id": {
"description": "Stable dedupe id for this logical event (`evt_…`).",
"pattern": "^evt_[0-9a-f]{40}$",
"type": "string"
},
"topic": {
"const": "media.processed",
"type": "string"
},
"time": {
"description": "When the event occurred (RFC 3339).",
"format": "date-time",
"type": "string"
},
"metadata": {
"additionalProperties": false,
"type": "object",
"properties": {
"organizationId": {
"minLength": 1,
"type": "string"
},
"mode": {
"description": "Which mode produced the event. Test-mode events come from fixture providers and never reach live infrastructure.",
"anyOf": [
{
"const": "live",
"type": "string"
},
{
"const": "test",
"type": "string"
}
]
},
"mediaId": {
"minLength": 1,
"type": "string"
},
"status": {
"minLength": 1,
"type": "string"
}
},
"required": [
"organizationId",
"mode",
"mediaId",
"status"
]
},
"data": {
"additionalProperties": true,
"type": "object",
"properties": {
"mediaId": {
"minLength": 1,
"type": "string"
},
"status": {
"minLength": 1,
"type": "string"
},
"error": {
"type": "object",
"patternProperties": {
"^(.*)$": {}
}
}
},
"required": [
"mediaId",
"status"
]
}
},
"required": [
"id",
"topic",
"time",
"metadata",
"data"
]
}media.upload_failed
A media upload never arrived or failed verification.
metadata
| Field | Type | Required | Description |
|---|---|---|---|
organizationId | string | yes | |
mode | "live" | "test" | yes | Which mode produced the event. Test-mode events come from fixture providers and never reach live infrastructure. |
mediaId | string | yes | |
status | string | yes |
data
| Field | Type | Required | Description |
|---|---|---|---|
mediaId | string | yes | |
status | string | yes | |
error | Record<string, unknown> | no | |
| additional fields | unknown | no | Providers may add fields; treat unknown keys as optional. |
Envelope JSON Schema
{
"additionalProperties": false,
"type": "object",
"properties": {
"id": {
"description": "Stable dedupe id for this logical event (`evt_…`).",
"pattern": "^evt_[0-9a-f]{40}$",
"type": "string"
},
"topic": {
"const": "media.upload_failed",
"type": "string"
},
"time": {
"description": "When the event occurred (RFC 3339).",
"format": "date-time",
"type": "string"
},
"metadata": {
"additionalProperties": false,
"type": "object",
"properties": {
"organizationId": {
"minLength": 1,
"type": "string"
},
"mode": {
"description": "Which mode produced the event. Test-mode events come from fixture providers and never reach live infrastructure.",
"anyOf": [
{
"const": "live",
"type": "string"
},
{
"const": "test",
"type": "string"
}
]
},
"mediaId": {
"minLength": 1,
"type": "string"
},
"status": {
"minLength": 1,
"type": "string"
}
},
"required": [
"organizationId",
"mode",
"mediaId",
"status"
]
},
"data": {
"additionalProperties": true,
"type": "object",
"properties": {
"mediaId": {
"minLength": 1,
"type": "string"
},
"status": {
"minLength": 1,
"type": "string"
},
"error": {
"type": "object",
"patternProperties": {
"^(.*)$": {}
}
}
},
"required": [
"mediaId",
"status"
]
}
},
"required": [
"id",
"topic",
"time",
"metadata",
"data"
]
}media.uploaded
Media bytes landed in the uploads bucket and were accepted.
metadata
| Field | Type | Required | Description |
|---|---|---|---|
organizationId | string | yes | |
mode | "live" | "test" | yes | Which mode produced the event. Test-mode events come from fixture providers and never reach live infrastructure. |
mediaId | string | yes | |
status | string | yes |
data
| Field | Type | Required | Description |
|---|---|---|---|
mediaId | string | yes | |
status | string | yes | |
error | Record<string, unknown> | no | |
| additional fields | unknown | no | Providers may add fields; treat unknown keys as optional. |
Envelope JSON Schema
{
"additionalProperties": false,
"type": "object",
"properties": {
"id": {
"description": "Stable dedupe id for this logical event (`evt_…`).",
"pattern": "^evt_[0-9a-f]{40}$",
"type": "string"
},
"topic": {
"const": "media.uploaded",
"type": "string"
},
"time": {
"description": "When the event occurred (RFC 3339).",
"format": "date-time",
"type": "string"
},
"metadata": {
"additionalProperties": false,
"type": "object",
"properties": {
"organizationId": {
"minLength": 1,
"type": "string"
},
"mode": {
"description": "Which mode produced the event. Test-mode events come from fixture providers and never reach live infrastructure.",
"anyOf": [
{
"const": "live",
"type": "string"
},
{
"const": "test",
"type": "string"
}
]
},
"mediaId": {
"minLength": 1,
"type": "string"
},
"status": {
"minLength": 1,
"type": "string"
}
},
"required": [
"organizationId",
"mode",
"mediaId",
"status"
]
},
"data": {
"additionalProperties": true,
"type": "object",
"properties": {
"mediaId": {
"minLength": 1,
"type": "string"
},
"status": {
"minLength": 1,
"type": "string"
},
"error": {
"type": "object",
"patternProperties": {
"^(.*)$": {}
}
}
},
"required": [
"mediaId",
"status"
]
}
},
"required": [
"id",
"topic",
"time",
"metadata",
"data"
]
}Event destination
event_destination.disabled
An event destination was disabled, for example after repeated delivery failures. The disabled destination will not receive this event; subscribe a separate, healthy destination to event_destination.disabled to be notified.
metadata
| Field | Type | Required | Description |
|---|---|---|---|
organizationId | string | yes | |
mode | "live" | "test" | yes | Which mode produced the event. Test-mode events come from fixture providers and never reach live infrastructure. |
destinationId | string | yes |
data
| Field | Type | Required | Description |
|---|---|---|---|
destinationId | string | yes | |
| additional fields | unknown | no | Providers may add fields; treat unknown keys as optional. |
Envelope JSON Schema
{
"additionalProperties": false,
"type": "object",
"properties": {
"id": {
"description": "Stable dedupe id for this logical event (`evt_…`).",
"pattern": "^evt_[0-9a-f]{40}$",
"type": "string"
},
"topic": {
"const": "event_destination.disabled",
"type": "string"
},
"time": {
"description": "When the event occurred (RFC 3339).",
"format": "date-time",
"type": "string"
},
"metadata": {
"additionalProperties": false,
"type": "object",
"properties": {
"organizationId": {
"minLength": 1,
"type": "string"
},
"mode": {
"description": "Which mode produced the event. Test-mode events come from fixture providers and never reach live infrastructure.",
"anyOf": [
{
"const": "live",
"type": "string"
},
{
"const": "test",
"type": "string"
}
]
},
"destinationId": {
"minLength": 1,
"type": "string"
}
},
"required": [
"organizationId",
"mode",
"destinationId"
]
},
"data": {
"additionalProperties": true,
"type": "object",
"properties": {
"destinationId": {
"minLength": 1,
"type": "string"
}
},
"required": [
"destinationId"
]
}
},
"required": [
"id",
"topic",
"time",
"metadata",
"data"
]
}Publish request
publish_request.cancelled
A publish request was cancelled before publishing.
metadata
| Field | Type | Required | Description |
|---|---|---|---|
organizationId | string | yes | |
mode | "live" | "test" | yes | Which mode produced the event. Test-mode events come from fixture providers and never reach live infrastructure. |
publishRequestId | string | yes | |
connectedProfileId | string | yes | |
contentType | string | yes | |
status | string | yes |
data
| Field | Type | Required | Description |
|---|---|---|---|
publishRequestId | string | yes | |
status | string | yes | |
contentType | string | yes | |
connectedProfileId | string | yes | |
variant | string | no | |
groupId | string | no | |
clientItemId | string | no | |
scheduledAt | string (date-time) | no | |
externalId | string | no | |
error | Record<string, unknown> | no | |
| additional fields | unknown | no | Providers may add fields; treat unknown keys as optional. |
Envelope JSON Schema
{
"additionalProperties": false,
"type": "object",
"properties": {
"id": {
"description": "Stable dedupe id for this logical event (`evt_…`).",
"pattern": "^evt_[0-9a-f]{40}$",
"type": "string"
},
"topic": {
"const": "publish_request.cancelled",
"type": "string"
},
"time": {
"description": "When the event occurred (RFC 3339).",
"format": "date-time",
"type": "string"
},
"metadata": {
"additionalProperties": false,
"type": "object",
"properties": {
"organizationId": {
"minLength": 1,
"type": "string"
},
"mode": {
"description": "Which mode produced the event. Test-mode events come from fixture providers and never reach live infrastructure.",
"anyOf": [
{
"const": "live",
"type": "string"
},
{
"const": "test",
"type": "string"
}
]
},
"publishRequestId": {
"minLength": 1,
"type": "string"
},
"connectedProfileId": {
"minLength": 1,
"type": "string"
},
"contentType": {
"minLength": 1,
"type": "string"
},
"status": {
"minLength": 1,
"type": "string"
}
},
"required": [
"organizationId",
"mode",
"publishRequestId",
"connectedProfileId",
"contentType",
"status"
]
},
"data": {
"additionalProperties": true,
"type": "object",
"properties": {
"publishRequestId": {
"minLength": 1,
"type": "string"
},
"status": {
"minLength": 1,
"type": "string"
},
"contentType": {
"minLength": 1,
"type": "string"
},
"connectedProfileId": {
"minLength": 1,
"type": "string"
},
"variant": {
"minLength": 1,
"type": "string"
},
"groupId": {
"minLength": 1,
"type": "string"
},
"clientItemId": {
"minLength": 1,
"type": "string"
},
"scheduledAt": {
"format": "date-time",
"type": "string"
},
"externalId": {
"minLength": 1,
"type": "string"
},
"error": {
"type": "object",
"patternProperties": {
"^(.*)$": {}
}
}
},
"required": [
"publishRequestId",
"status",
"contentType",
"connectedProfileId"
]
}
},
"required": [
"id",
"topic",
"time",
"metadata",
"data"
]
}publish_request.created
A publish request entered the ledger.
metadata
| Field | Type | Required | Description |
|---|---|---|---|
organizationId | string | yes | |
mode | "live" | "test" | yes | Which mode produced the event. Test-mode events come from fixture providers and never reach live infrastructure. |
publishRequestId | string | yes | |
connectedProfileId | string | yes | |
contentType | string | yes | |
status | string | yes |
data
| Field | Type | Required | Description |
|---|---|---|---|
publishRequestId | string | yes | |
status | string | yes | |
contentType | string | yes | |
connectedProfileId | string | yes | |
variant | string | no | |
groupId | string | no | |
clientItemId | string | no | |
scheduledAt | string (date-time) | no | |
externalId | string | no | |
error | Record<string, unknown> | no | |
| additional fields | unknown | no | Providers may add fields; treat unknown keys as optional. |
Envelope JSON Schema
{
"additionalProperties": false,
"type": "object",
"properties": {
"id": {
"description": "Stable dedupe id for this logical event (`evt_…`).",
"pattern": "^evt_[0-9a-f]{40}$",
"type": "string"
},
"topic": {
"const": "publish_request.created",
"type": "string"
},
"time": {
"description": "When the event occurred (RFC 3339).",
"format": "date-time",
"type": "string"
},
"metadata": {
"additionalProperties": false,
"type": "object",
"properties": {
"organizationId": {
"minLength": 1,
"type": "string"
},
"mode": {
"description": "Which mode produced the event. Test-mode events come from fixture providers and never reach live infrastructure.",
"anyOf": [
{
"const": "live",
"type": "string"
},
{
"const": "test",
"type": "string"
}
]
},
"publishRequestId": {
"minLength": 1,
"type": "string"
},
"connectedProfileId": {
"minLength": 1,
"type": "string"
},
"contentType": {
"minLength": 1,
"type": "string"
},
"status": {
"minLength": 1,
"type": "string"
}
},
"required": [
"organizationId",
"mode",
"publishRequestId",
"connectedProfileId",
"contentType",
"status"
]
},
"data": {
"additionalProperties": true,
"type": "object",
"properties": {
"publishRequestId": {
"minLength": 1,
"type": "string"
},
"status": {
"minLength": 1,
"type": "string"
},
"contentType": {
"minLength": 1,
"type": "string"
},
"connectedProfileId": {
"minLength": 1,
"type": "string"
},
"variant": {
"minLength": 1,
"type": "string"
},
"groupId": {
"minLength": 1,
"type": "string"
},
"clientItemId": {
"minLength": 1,
"type": "string"
},
"scheduledAt": {
"format": "date-time",
"type": "string"
},
"externalId": {
"minLength": 1,
"type": "string"
},
"error": {
"type": "object",
"patternProperties": {
"^(.*)$": {}
}
}
},
"required": [
"publishRequestId",
"status",
"contentType",
"connectedProfileId"
]
}
},
"required": [
"id",
"topic",
"time",
"metadata",
"data"
]
}publish_request.failed
A publish request failed and will not be retried.
metadata
| Field | Type | Required | Description |
|---|---|---|---|
organizationId | string | yes | |
mode | "live" | "test" | yes | Which mode produced the event. Test-mode events come from fixture providers and never reach live infrastructure. |
publishRequestId | string | yes | |
connectedProfileId | string | yes | |
contentType | string | yes | |
status | string | yes |
data
| Field | Type | Required | Description |
|---|---|---|---|
publishRequestId | string | yes | |
status | string | yes | |
contentType | string | yes | |
connectedProfileId | string | yes | |
variant | string | no | |
groupId | string | no | |
clientItemId | string | no | |
scheduledAt | string (date-time) | no | |
externalId | string | no | |
error | Record<string, unknown> | no | |
| additional fields | unknown | no | Providers may add fields; treat unknown keys as optional. |
Envelope JSON Schema
{
"additionalProperties": false,
"type": "object",
"properties": {
"id": {
"description": "Stable dedupe id for this logical event (`evt_…`).",
"pattern": "^evt_[0-9a-f]{40}$",
"type": "string"
},
"topic": {
"const": "publish_request.failed",
"type": "string"
},
"time": {
"description": "When the event occurred (RFC 3339).",
"format": "date-time",
"type": "string"
},
"metadata": {
"additionalProperties": false,
"type": "object",
"properties": {
"organizationId": {
"minLength": 1,
"type": "string"
},
"mode": {
"description": "Which mode produced the event. Test-mode events come from fixture providers and never reach live infrastructure.",
"anyOf": [
{
"const": "live",
"type": "string"
},
{
"const": "test",
"type": "string"
}
]
},
"publishRequestId": {
"minLength": 1,
"type": "string"
},
"connectedProfileId": {
"minLength": 1,
"type": "string"
},
"contentType": {
"minLength": 1,
"type": "string"
},
"status": {
"minLength": 1,
"type": "string"
}
},
"required": [
"organizationId",
"mode",
"publishRequestId",
"connectedProfileId",
"contentType",
"status"
]
},
"data": {
"additionalProperties": true,
"type": "object",
"properties": {
"publishRequestId": {
"minLength": 1,
"type": "string"
},
"status": {
"minLength": 1,
"type": "string"
},
"contentType": {
"minLength": 1,
"type": "string"
},
"connectedProfileId": {
"minLength": 1,
"type": "string"
},
"variant": {
"minLength": 1,
"type": "string"
},
"groupId": {
"minLength": 1,
"type": "string"
},
"clientItemId": {
"minLength": 1,
"type": "string"
},
"scheduledAt": {
"format": "date-time",
"type": "string"
},
"externalId": {
"minLength": 1,
"type": "string"
},
"error": {
"type": "object",
"patternProperties": {
"^(.*)$": {}
}
}
},
"required": [
"publishRequestId",
"status",
"contentType",
"connectedProfileId"
]
}
},
"required": [
"id",
"topic",
"time",
"metadata",
"data"
]
}publish_request.outcome_unknown
The call that creates the content failed ambiguously, so the provider may have published it; Koil will not retry it. Check the provider before submitting again.
metadata
| Field | Type | Required | Description |
|---|---|---|---|
organizationId | string | yes | |
mode | "live" | "test" | yes | Which mode produced the event. Test-mode events come from fixture providers and never reach live infrastructure. |
publishRequestId | string | yes | |
connectedProfileId | string | yes | |
contentType | string | yes | |
status | string | yes |
data
| Field | Type | Required | Description |
|---|---|---|---|
publishRequestId | string | yes | |
status | string | yes | |
contentType | string | yes | |
connectedProfileId | string | yes | |
variant | string | no | |
groupId | string | no | |
clientItemId | string | no | |
scheduledAt | string (date-time) | no | |
externalId | string | no | |
error | Record<string, unknown> | no | |
| additional fields | unknown | no | Providers may add fields; treat unknown keys as optional. |
Envelope JSON Schema
{
"additionalProperties": false,
"type": "object",
"properties": {
"id": {
"description": "Stable dedupe id for this logical event (`evt_…`).",
"pattern": "^evt_[0-9a-f]{40}$",
"type": "string"
},
"topic": {
"const": "publish_request.outcome_unknown",
"type": "string"
},
"time": {
"description": "When the event occurred (RFC 3339).",
"format": "date-time",
"type": "string"
},
"metadata": {
"additionalProperties": false,
"type": "object",
"properties": {
"organizationId": {
"minLength": 1,
"type": "string"
},
"mode": {
"description": "Which mode produced the event. Test-mode events come from fixture providers and never reach live infrastructure.",
"anyOf": [
{
"const": "live",
"type": "string"
},
{
"const": "test",
"type": "string"
}
]
},
"publishRequestId": {
"minLength": 1,
"type": "string"
},
"connectedProfileId": {
"minLength": 1,
"type": "string"
},
"contentType": {
"minLength": 1,
"type": "string"
},
"status": {
"minLength": 1,
"type": "string"
}
},
"required": [
"organizationId",
"mode",
"publishRequestId",
"connectedProfileId",
"contentType",
"status"
]
},
"data": {
"additionalProperties": true,
"type": "object",
"properties": {
"publishRequestId": {
"minLength": 1,
"type": "string"
},
"status": {
"minLength": 1,
"type": "string"
},
"contentType": {
"minLength": 1,
"type": "string"
},
"connectedProfileId": {
"minLength": 1,
"type": "string"
},
"variant": {
"minLength": 1,
"type": "string"
},
"groupId": {
"minLength": 1,
"type": "string"
},
"clientItemId": {
"minLength": 1,
"type": "string"
},
"scheduledAt": {
"format": "date-time",
"type": "string"
},
"externalId": {
"minLength": 1,
"type": "string"
},
"error": {
"type": "object",
"patternProperties": {
"^(.*)$": {}
}
}
},
"required": [
"publishRequestId",
"status",
"contentType",
"connectedProfileId"
]
}
},
"required": [
"id",
"topic",
"time",
"metadata",
"data"
]
}publish_request.scheduled
A publish request was scheduled for a future time.
metadata
| Field | Type | Required | Description |
|---|---|---|---|
organizationId | string | yes | |
mode | "live" | "test" | yes | Which mode produced the event. Test-mode events come from fixture providers and never reach live infrastructure. |
publishRequestId | string | yes | |
connectedProfileId | string | yes | |
contentType | string | yes | |
status | string | yes |
data
| Field | Type | Required | Description |
|---|---|---|---|
publishRequestId | string | yes | |
status | string | yes | |
contentType | string | yes | |
connectedProfileId | string | yes | |
variant | string | no | |
groupId | string | no | |
clientItemId | string | no | |
scheduledAt | string (date-time) | no | |
externalId | string | no | |
error | Record<string, unknown> | no | |
| additional fields | unknown | no | Providers may add fields; treat unknown keys as optional. |
Envelope JSON Schema
{
"additionalProperties": false,
"type": "object",
"properties": {
"id": {
"description": "Stable dedupe id for this logical event (`evt_…`).",
"pattern": "^evt_[0-9a-f]{40}$",
"type": "string"
},
"topic": {
"const": "publish_request.scheduled",
"type": "string"
},
"time": {
"description": "When the event occurred (RFC 3339).",
"format": "date-time",
"type": "string"
},
"metadata": {
"additionalProperties": false,
"type": "object",
"properties": {
"organizationId": {
"minLength": 1,
"type": "string"
},
"mode": {
"description": "Which mode produced the event. Test-mode events come from fixture providers and never reach live infrastructure.",
"anyOf": [
{
"const": "live",
"type": "string"
},
{
"const": "test",
"type": "string"
}
]
},
"publishRequestId": {
"minLength": 1,
"type": "string"
},
"connectedProfileId": {
"minLength": 1,
"type": "string"
},
"contentType": {
"minLength": 1,
"type": "string"
},
"status": {
"minLength": 1,
"type": "string"
}
},
"required": [
"organizationId",
"mode",
"publishRequestId",
"connectedProfileId",
"contentType",
"status"
]
},
"data": {
"additionalProperties": true,
"type": "object",
"properties": {
"publishRequestId": {
"minLength": 1,
"type": "string"
},
"status": {
"minLength": 1,
"type": "string"
},
"contentType": {
"minLength": 1,
"type": "string"
},
"connectedProfileId": {
"minLength": 1,
"type": "string"
},
"variant": {
"minLength": 1,
"type": "string"
},
"groupId": {
"minLength": 1,
"type": "string"
},
"clientItemId": {
"minLength": 1,
"type": "string"
},
"scheduledAt": {
"format": "date-time",
"type": "string"
},
"externalId": {
"minLength": 1,
"type": "string"
},
"error": {
"type": "object",
"patternProperties": {
"^(.*)$": {}
}
}
},
"required": [
"publishRequestId",
"status",
"contentType",
"connectedProfileId"
]
}
},
"required": [
"id",
"topic",
"time",
"metadata",
"data"
]
}publish_request.started
A publish request began publishing to the provider.
metadata
| Field | Type | Required | Description |
|---|---|---|---|
organizationId | string | yes | |
mode | "live" | "test" | yes | Which mode produced the event. Test-mode events come from fixture providers and never reach live infrastructure. |
publishRequestId | string | yes | |
connectedProfileId | string | yes | |
contentType | string | yes | |
status | string | yes |
data
| Field | Type | Required | Description |
|---|---|---|---|
publishRequestId | string | yes | |
status | string | yes | |
contentType | string | yes | |
connectedProfileId | string | yes | |
variant | string | no | |
groupId | string | no | |
clientItemId | string | no | |
scheduledAt | string (date-time) | no | |
externalId | string | no | |
error | Record<string, unknown> | no | |
| additional fields | unknown | no | Providers may add fields; treat unknown keys as optional. |
Envelope JSON Schema
{
"additionalProperties": false,
"type": "object",
"properties": {
"id": {
"description": "Stable dedupe id for this logical event (`evt_…`).",
"pattern": "^evt_[0-9a-f]{40}$",
"type": "string"
},
"topic": {
"const": "publish_request.started",
"type": "string"
},
"time": {
"description": "When the event occurred (RFC 3339).",
"format": "date-time",
"type": "string"
},
"metadata": {
"additionalProperties": false,
"type": "object",
"properties": {
"organizationId": {
"minLength": 1,
"type": "string"
},
"mode": {
"description": "Which mode produced the event. Test-mode events come from fixture providers and never reach live infrastructure.",
"anyOf": [
{
"const": "live",
"type": "string"
},
{
"const": "test",
"type": "string"
}
]
},
"publishRequestId": {
"minLength": 1,
"type": "string"
},
"connectedProfileId": {
"minLength": 1,
"type": "string"
},
"contentType": {
"minLength": 1,
"type": "string"
},
"status": {
"minLength": 1,
"type": "string"
}
},
"required": [
"organizationId",
"mode",
"publishRequestId",
"connectedProfileId",
"contentType",
"status"
]
},
"data": {
"additionalProperties": true,
"type": "object",
"properties": {
"publishRequestId": {
"minLength": 1,
"type": "string"
},
"status": {
"minLength": 1,
"type": "string"
},
"contentType": {
"minLength": 1,
"type": "string"
},
"connectedProfileId": {
"minLength": 1,
"type": "string"
},
"variant": {
"minLength": 1,
"type": "string"
},
"groupId": {
"minLength": 1,
"type": "string"
},
"clientItemId": {
"minLength": 1,
"type": "string"
},
"scheduledAt": {
"format": "date-time",
"type": "string"
},
"externalId": {
"minLength": 1,
"type": "string"
},
"error": {
"type": "object",
"patternProperties": {
"^(.*)$": {}
}
}
},
"required": [
"publishRequestId",
"status",
"contentType",
"connectedProfileId"
]
}
},
"required": [
"id",
"topic",
"time",
"metadata",
"data"
]
}publish_request.succeeded
A publish request was published successfully.
metadata
| Field | Type | Required | Description |
|---|---|---|---|
organizationId | string | yes | |
mode | "live" | "test" | yes | Which mode produced the event. Test-mode events come from fixture providers and never reach live infrastructure. |
publishRequestId | string | yes | |
connectedProfileId | string | yes | |
contentType | string | yes | |
status | string | yes |
data
| Field | Type | Required | Description |
|---|---|---|---|
publishRequestId | string | yes | |
status | string | yes | |
contentType | string | yes | |
connectedProfileId | string | yes | |
variant | string | no | |
groupId | string | no | |
clientItemId | string | no | |
scheduledAt | string (date-time) | no | |
externalId | string | no | |
error | Record<string, unknown> | no | |
| additional fields | unknown | no | Providers may add fields; treat unknown keys as optional. |
Envelope JSON Schema
{
"additionalProperties": false,
"type": "object",
"properties": {
"id": {
"description": "Stable dedupe id for this logical event (`evt_…`).",
"pattern": "^evt_[0-9a-f]{40}$",
"type": "string"
},
"topic": {
"const": "publish_request.succeeded",
"type": "string"
},
"time": {
"description": "When the event occurred (RFC 3339).",
"format": "date-time",
"type": "string"
},
"metadata": {
"additionalProperties": false,
"type": "object",
"properties": {
"organizationId": {
"minLength": 1,
"type": "string"
},
"mode": {
"description": "Which mode produced the event. Test-mode events come from fixture providers and never reach live infrastructure.",
"anyOf": [
{
"const": "live",
"type": "string"
},
{
"const": "test",
"type": "string"
}
]
},
"publishRequestId": {
"minLength": 1,
"type": "string"
},
"connectedProfileId": {
"minLength": 1,
"type": "string"
},
"contentType": {
"minLength": 1,
"type": "string"
},
"status": {
"minLength": 1,
"type": "string"
}
},
"required": [
"organizationId",
"mode",
"publishRequestId",
"connectedProfileId",
"contentType",
"status"
]
},
"data": {
"additionalProperties": true,
"type": "object",
"properties": {
"publishRequestId": {
"minLength": 1,
"type": "string"
},
"status": {
"minLength": 1,
"type": "string"
},
"contentType": {
"minLength": 1,
"type": "string"
},
"connectedProfileId": {
"minLength": 1,
"type": "string"
},
"variant": {
"minLength": 1,
"type": "string"
},
"groupId": {
"minLength": 1,
"type": "string"
},
"clientItemId": {
"minLength": 1,
"type": "string"
},
"scheduledAt": {
"format": "date-time",
"type": "string"
},
"externalId": {
"minLength": 1,
"type": "string"
},
"error": {
"type": "object",
"patternProperties": {
"^(.*)$": {}
}
}
},
"required": [
"publishRequestId",
"status",
"contentType",
"connectedProfileId"
]
}
},
"required": [
"id",
"topic",
"time",
"metadata",
"data"
]
}Content
content.facebook.dm.messages.created
Normalized created event for facebook.dm.messages content.
Content type facebook.dm.messages. data is the content type's own schema — the same shape content reads return for it.
metadata
| Field | Type | Required | Description |
|---|---|---|---|
organizationId | string | yes | |
mode | "live" | "test" | yes | Which mode produced the event. Test-mode events come from fixture providers and never reach live infrastructure. |
connectedProfileId | string | yes | The Connected Profile that observed the content. |
providerProfileExternalId | string | yes | The observing profile's provider-namespace id. Content the profile authored has data.author.id equal to this. |
providerId | string | yes | |
contentType | string | yes | The canonical {provider}.{surface}.{resource} identifier. |
data
| Field | Type | Required | Description |
|---|---|---|---|
externalId | string | yes | Provider-owned content identifier. |
threadExternalId | string | no | Owning conversation id. Present on messages read through facebook.dm.threads; absent on webhook-observed messages because Messenger webhooks do not identify the conversation. |
text | string | no | Caption/body text for content. |
author | object | no | Provider actor reference for observed content. |
thread | object | no | Parent/root identifiers for threaded contexts. |
publishedAt | string (date-time) | no | Provider publish timestamp as an ISO-8601 string. |
providerRaw | unknown | no | Optional provider-native payload included only for transient delivery/debug use. |
contentType | "facebook.dm.messages" | yes |
Envelope JSON Schema
{
"additionalProperties": false,
"type": "object",
"properties": {
"id": {
"description": "Stable dedupe id for this logical event (`evt_…`).",
"pattern": "^evt_[0-9a-f]{40}$",
"type": "string"
},
"topic": {
"const": "content.facebook.dm.messages.created",
"type": "string"
},
"time": {
"description": "When the event occurred (RFC 3339).",
"format": "date-time",
"type": "string"
},
"metadata": {
"additionalProperties": false,
"type": "object",
"properties": {
"organizationId": {
"minLength": 1,
"type": "string"
},
"mode": {
"description": "Which mode produced the event. Test-mode events come from fixture providers and never reach live infrastructure.",
"anyOf": [
{
"const": "live",
"type": "string"
},
{
"const": "test",
"type": "string"
}
]
},
"connectedProfileId": {
"minLength": 1,
"description": "The Connected Profile that observed the content.",
"type": "string"
},
"providerProfileExternalId": {
"minLength": 1,
"description": "The observing profile's provider-namespace id. Content the profile authored has `data.author.id` equal to this.",
"type": "string"
},
"providerId": {
"minLength": 1,
"type": "string"
},
"contentType": {
"minLength": 1,
"description": "The canonical `{provider}.{surface}.{resource}` identifier.",
"type": "string"
}
},
"required": [
"organizationId",
"mode",
"connectedProfileId",
"providerProfileExternalId",
"providerId",
"contentType"
]
},
"data": {
"additionalProperties": false,
"type": "object",
"properties": {
"externalId": {
"description": "Provider-owned content identifier.",
"minLength": 1,
"type": "string"
},
"threadExternalId": {
"minLength": 1,
"description": "Owning conversation id. Present on messages read through facebook.dm.threads; absent on webhook-observed messages because Messenger webhooks do not identify the conversation.",
"type": "string"
},
"text": {
"description": "Caption/body text for content.",
"type": "string"
},
"author": {
"additionalProperties": false,
"description": "Provider actor reference for observed content.",
"type": "object",
"properties": {
"id": {
"minLength": 1,
"type": "string"
},
"displayName": {
"minLength": 1,
"type": "string"
},
"username": {
"minLength": 1,
"type": "string"
}
},
"required": [
"id"
]
},
"thread": {
"additionalProperties": false,
"description": "Parent/root identifiers for threaded contexts.",
"type": "object",
"properties": {
"parentId": {
"minLength": 1,
"type": "string"
},
"rootId": {
"minLength": 1,
"type": "string"
},
"threadId": {
"minLength": 1,
"type": "string"
}
}
},
"publishedAt": {
"format": "date-time",
"description": "Provider publish timestamp as an ISO-8601 string.",
"type": "string"
},
"providerRaw": {
"description": "Optional provider-native payload included only for transient delivery/debug use."
},
"contentType": {
"const": "facebook.dm.messages",
"type": "string"
}
},
"required": [
"externalId",
"contentType"
]
}
},
"required": [
"id",
"topic",
"time",
"metadata",
"data"
]
}content.facebook.media.comments.created
Normalized created event for facebook.media.comments content.
Content type facebook.media.comments. data is the content type's own schema — the same shape content reads return for it.
metadata
| Field | Type | Required | Description |
|---|---|---|---|
organizationId | string | yes | |
mode | "live" | "test" | yes | Which mode produced the event. Test-mode events come from fixture providers and never reach live infrastructure. |
connectedProfileId | string | yes | The Connected Profile that observed the content. |
providerProfileExternalId | string | yes | The observing profile's provider-namespace id. Content the profile authored has data.author.id equal to this. |
providerId | string | yes | |
contentType | string | yes | The canonical {provider}.{surface}.{resource} identifier. |
data
| Field | Type | Required | Description |
|---|---|---|---|
externalId | string | yes | Provider-owned content identifier. |
mediaExternalId | string | yes | |
text | string | yes | Caption/body text for content. |
author | object | no | Provider actor reference for observed content. |
thread | object | no | Parent/root identifiers for threaded contexts. |
hidden | boolean | no | |
providerPermalink | string (uri) | no | Canonical provider URL for content. |
publishedAt | string (date-time) | no | Provider publish timestamp as an ISO-8601 string. |
providerRaw | unknown | no | Optional provider-native payload included only for transient delivery/debug use. |
contentType | "facebook.media.comments" | yes |
Envelope JSON Schema
{
"additionalProperties": false,
"type": "object",
"properties": {
"id": {
"description": "Stable dedupe id for this logical event (`evt_…`).",
"pattern": "^evt_[0-9a-f]{40}$",
"type": "string"
},
"topic": {
"const": "content.facebook.media.comments.created",
"type": "string"
},
"time": {
"description": "When the event occurred (RFC 3339).",
"format": "date-time",
"type": "string"
},
"metadata": {
"additionalProperties": false,
"type": "object",
"properties": {
"organizationId": {
"minLength": 1,
"type": "string"
},
"mode": {
"description": "Which mode produced the event. Test-mode events come from fixture providers and never reach live infrastructure.",
"anyOf": [
{
"const": "live",
"type": "string"
},
{
"const": "test",
"type": "string"
}
]
},
"connectedProfileId": {
"minLength": 1,
"description": "The Connected Profile that observed the content.",
"type": "string"
},
"providerProfileExternalId": {
"minLength": 1,
"description": "The observing profile's provider-namespace id. Content the profile authored has `data.author.id` equal to this.",
"type": "string"
},
"providerId": {
"minLength": 1,
"type": "string"
},
"contentType": {
"minLength": 1,
"description": "The canonical `{provider}.{surface}.{resource}` identifier.",
"type": "string"
}
},
"required": [
"organizationId",
"mode",
"connectedProfileId",
"providerProfileExternalId",
"providerId",
"contentType"
]
},
"data": {
"additionalProperties": false,
"type": "object",
"properties": {
"externalId": {
"description": "Provider-owned content identifier.",
"minLength": 1,
"type": "string"
},
"mediaExternalId": {
"minLength": 1,
"type": "string"
},
"text": {
"description": "Caption/body text for content.",
"type": "string"
},
"author": {
"additionalProperties": false,
"description": "Provider actor reference for observed content.",
"type": "object",
"properties": {
"id": {
"minLength": 1,
"type": "string"
},
"displayName": {
"minLength": 1,
"type": "string"
},
"username": {
"minLength": 1,
"type": "string"
}
},
"required": [
"id"
]
},
"thread": {
"additionalProperties": false,
"description": "Parent/root identifiers for threaded contexts.",
"type": "object",
"properties": {
"parentId": {
"minLength": 1,
"type": "string"
},
"rootId": {
"minLength": 1,
"type": "string"
},
"threadId": {
"minLength": 1,
"type": "string"
}
}
},
"hidden": {
"type": "boolean"
},
"providerPermalink": {
"format": "uri",
"description": "Canonical provider URL for content.",
"minLength": 1,
"pattern": "^https?://",
"type": "string"
},
"publishedAt": {
"format": "date-time",
"description": "Provider publish timestamp as an ISO-8601 string.",
"type": "string"
},
"providerRaw": {
"description": "Optional provider-native payload included only for transient delivery/debug use."
},
"contentType": {
"const": "facebook.media.comments",
"type": "string"
}
},
"required": [
"externalId",
"mediaExternalId",
"text",
"contentType"
]
}
},
"required": [
"id",
"topic",
"time",
"metadata",
"data"
]
}content.facebook.media.comments.deleted
Normalized deleted event for facebook.media.comments content.
Content type facebook.media.comments. data is the content type's own schema — the same shape content reads return for it.
metadata
| Field | Type | Required | Description |
|---|---|---|---|
organizationId | string | yes | |
mode | "live" | "test" | yes | Which mode produced the event. Test-mode events come from fixture providers and never reach live infrastructure. |
connectedProfileId | string | yes | The Connected Profile that observed the content. |
providerProfileExternalId | string | yes | The observing profile's provider-namespace id. Content the profile authored has data.author.id equal to this. |
providerId | string | yes | |
contentType | string | yes | The canonical {provider}.{surface}.{resource} identifier. |
data
| Field | Type | Required | Description |
|---|---|---|---|
externalId | string | yes | Provider-owned content identifier. |
mediaExternalId | string | yes | |
text | string | yes | Caption/body text for content. |
author | object | no | Provider actor reference for observed content. |
thread | object | no | Parent/root identifiers for threaded contexts. |
hidden | boolean | no | |
providerPermalink | string (uri) | no | Canonical provider URL for content. |
publishedAt | string (date-time) | no | Provider publish timestamp as an ISO-8601 string. |
providerRaw | unknown | no | Optional provider-native payload included only for transient delivery/debug use. |
contentType | "facebook.media.comments" | yes |
Envelope JSON Schema
{
"additionalProperties": false,
"type": "object",
"properties": {
"id": {
"description": "Stable dedupe id for this logical event (`evt_…`).",
"pattern": "^evt_[0-9a-f]{40}$",
"type": "string"
},
"topic": {
"const": "content.facebook.media.comments.deleted",
"type": "string"
},
"time": {
"description": "When the event occurred (RFC 3339).",
"format": "date-time",
"type": "string"
},
"metadata": {
"additionalProperties": false,
"type": "object",
"properties": {
"organizationId": {
"minLength": 1,
"type": "string"
},
"mode": {
"description": "Which mode produced the event. Test-mode events come from fixture providers and never reach live infrastructure.",
"anyOf": [
{
"const": "live",
"type": "string"
},
{
"const": "test",
"type": "string"
}
]
},
"connectedProfileId": {
"minLength": 1,
"description": "The Connected Profile that observed the content.",
"type": "string"
},
"providerProfileExternalId": {
"minLength": 1,
"description": "The observing profile's provider-namespace id. Content the profile authored has `data.author.id` equal to this.",
"type": "string"
},
"providerId": {
"minLength": 1,
"type": "string"
},
"contentType": {
"minLength": 1,
"description": "The canonical `{provider}.{surface}.{resource}` identifier.",
"type": "string"
}
},
"required": [
"organizationId",
"mode",
"connectedProfileId",
"providerProfileExternalId",
"providerId",
"contentType"
]
},
"data": {
"additionalProperties": false,
"type": "object",
"properties": {
"externalId": {
"description": "Provider-owned content identifier.",
"minLength": 1,
"type": "string"
},
"mediaExternalId": {
"minLength": 1,
"type": "string"
},
"text": {
"description": "Caption/body text for content.",
"type": "string"
},
"author": {
"additionalProperties": false,
"description": "Provider actor reference for observed content.",
"type": "object",
"properties": {
"id": {
"minLength": 1,
"type": "string"
},
"displayName": {
"minLength": 1,
"type": "string"
},
"username": {
"minLength": 1,
"type": "string"
}
},
"required": [
"id"
]
},
"thread": {
"additionalProperties": false,
"description": "Parent/root identifiers for threaded contexts.",
"type": "object",
"properties": {
"parentId": {
"minLength": 1,
"type": "string"
},
"rootId": {
"minLength": 1,
"type": "string"
},
"threadId": {
"minLength": 1,
"type": "string"
}
}
},
"hidden": {
"type": "boolean"
},
"providerPermalink": {
"format": "uri",
"description": "Canonical provider URL for content.",
"minLength": 1,
"pattern": "^https?://",
"type": "string"
},
"publishedAt": {
"format": "date-time",
"description": "Provider publish timestamp as an ISO-8601 string.",
"type": "string"
},
"providerRaw": {
"description": "Optional provider-native payload included only for transient delivery/debug use."
},
"contentType": {
"const": "facebook.media.comments",
"type": "string"
}
},
"required": [
"externalId",
"mediaExternalId",
"text",
"contentType"
]
}
},
"required": [
"id",
"topic",
"time",
"metadata",
"data"
]
}content.facebook.media.comments.moderated
Normalized moderated event for facebook.media.comments content.
Content type facebook.media.comments. data is the content type's own schema — the same shape content reads return for it.
metadata
| Field | Type | Required | Description |
|---|---|---|---|
organizationId | string | yes | |
mode | "live" | "test" | yes | Which mode produced the event. Test-mode events come from fixture providers and never reach live infrastructure. |
connectedProfileId | string | yes | The Connected Profile that observed the content. |
providerProfileExternalId | string | yes | The observing profile's provider-namespace id. Content the profile authored has data.author.id equal to this. |
providerId | string | yes | |
contentType | string | yes | The canonical {provider}.{surface}.{resource} identifier. |
data
| Field | Type | Required | Description |
|---|---|---|---|
externalId | string | yes | Provider-owned content identifier. |
mediaExternalId | string | yes | |
text | string | yes | Caption/body text for content. |
author | object | no | Provider actor reference for observed content. |
thread | object | no | Parent/root identifiers for threaded contexts. |
hidden | boolean | no | |
providerPermalink | string (uri) | no | Canonical provider URL for content. |
publishedAt | string (date-time) | no | Provider publish timestamp as an ISO-8601 string. |
providerRaw | unknown | no | Optional provider-native payload included only for transient delivery/debug use. |
contentType | "facebook.media.comments" | yes |
Envelope JSON Schema
{
"additionalProperties": false,
"type": "object",
"properties": {
"id": {
"description": "Stable dedupe id for this logical event (`evt_…`).",
"pattern": "^evt_[0-9a-f]{40}$",
"type": "string"
},
"topic": {
"const": "content.facebook.media.comments.moderated",
"type": "string"
},
"time": {
"description": "When the event occurred (RFC 3339).",
"format": "date-time",
"type": "string"
},
"metadata": {
"additionalProperties": false,
"type": "object",
"properties": {
"organizationId": {
"minLength": 1,
"type": "string"
},
"mode": {
"description": "Which mode produced the event. Test-mode events come from fixture providers and never reach live infrastructure.",
"anyOf": [
{
"const": "live",
"type": "string"
},
{
"const": "test",
"type": "string"
}
]
},
"connectedProfileId": {
"minLength": 1,
"description": "The Connected Profile that observed the content.",
"type": "string"
},
"providerProfileExternalId": {
"minLength": 1,
"description": "The observing profile's provider-namespace id. Content the profile authored has `data.author.id` equal to this.",
"type": "string"
},
"providerId": {
"minLength": 1,
"type": "string"
},
"contentType": {
"minLength": 1,
"description": "The canonical `{provider}.{surface}.{resource}` identifier.",
"type": "string"
}
},
"required": [
"organizationId",
"mode",
"connectedProfileId",
"providerProfileExternalId",
"providerId",
"contentType"
]
},
"data": {
"additionalProperties": false,
"type": "object",
"properties": {
"externalId": {
"description": "Provider-owned content identifier.",
"minLength": 1,
"type": "string"
},
"mediaExternalId": {
"minLength": 1,
"type": "string"
},
"text": {
"description": "Caption/body text for content.",
"type": "string"
},
"author": {
"additionalProperties": false,
"description": "Provider actor reference for observed content.",
"type": "object",
"properties": {
"id": {
"minLength": 1,
"type": "string"
},
"displayName": {
"minLength": 1,
"type": "string"
},
"username": {
"minLength": 1,
"type": "string"
}
},
"required": [
"id"
]
},
"thread": {
"additionalProperties": false,
"description": "Parent/root identifiers for threaded contexts.",
"type": "object",
"properties": {
"parentId": {
"minLength": 1,
"type": "string"
},
"rootId": {
"minLength": 1,
"type": "string"
},
"threadId": {
"minLength": 1,
"type": "string"
}
}
},
"hidden": {
"type": "boolean"
},
"providerPermalink": {
"format": "uri",
"description": "Canonical provider URL for content.",
"minLength": 1,
"pattern": "^https?://",
"type": "string"
},
"publishedAt": {
"format": "date-time",
"description": "Provider publish timestamp as an ISO-8601 string.",
"type": "string"
},
"providerRaw": {
"description": "Optional provider-native payload included only for transient delivery/debug use."
},
"contentType": {
"const": "facebook.media.comments",
"type": "string"
}
},
"required": [
"externalId",
"mediaExternalId",
"text",
"contentType"
]
}
},
"required": [
"id",
"topic",
"time",
"metadata",
"data"
]
}content.facebook.media.comments.updated
Normalized updated event for facebook.media.comments content.
Content type facebook.media.comments. data is the content type's own schema — the same shape content reads return for it.
metadata
| Field | Type | Required | Description |
|---|---|---|---|
organizationId | string | yes | |
mode | "live" | "test" | yes | Which mode produced the event. Test-mode events come from fixture providers and never reach live infrastructure. |
connectedProfileId | string | yes | The Connected Profile that observed the content. |
providerProfileExternalId | string | yes | The observing profile's provider-namespace id. Content the profile authored has data.author.id equal to this. |
providerId | string | yes | |
contentType | string | yes | The canonical {provider}.{surface}.{resource} identifier. |
data
| Field | Type | Required | Description |
|---|---|---|---|
externalId | string | yes | Provider-owned content identifier. |
mediaExternalId | string | yes | |
text | string | yes | Caption/body text for content. |
author | object | no | Provider actor reference for observed content. |
thread | object | no | Parent/root identifiers for threaded contexts. |
hidden | boolean | no | |
providerPermalink | string (uri) | no | Canonical provider URL for content. |
publishedAt | string (date-time) | no | Provider publish timestamp as an ISO-8601 string. |
providerRaw | unknown | no | Optional provider-native payload included only for transient delivery/debug use. |
contentType | "facebook.media.comments" | yes |
Envelope JSON Schema
{
"additionalProperties": false,
"type": "object",
"properties": {
"id": {
"description": "Stable dedupe id for this logical event (`evt_…`).",
"pattern": "^evt_[0-9a-f]{40}$",
"type": "string"
},
"topic": {
"const": "content.facebook.media.comments.updated",
"type": "string"
},
"time": {
"description": "When the event occurred (RFC 3339).",
"format": "date-time",
"type": "string"
},
"metadata": {
"additionalProperties": false,
"type": "object",
"properties": {
"organizationId": {
"minLength": 1,
"type": "string"
},
"mode": {
"description": "Which mode produced the event. Test-mode events come from fixture providers and never reach live infrastructure.",
"anyOf": [
{
"const": "live",
"type": "string"
},
{
"const": "test",
"type": "string"
}
]
},
"connectedProfileId": {
"minLength": 1,
"description": "The Connected Profile that observed the content.",
"type": "string"
},
"providerProfileExternalId": {
"minLength": 1,
"description": "The observing profile's provider-namespace id. Content the profile authored has `data.author.id` equal to this.",
"type": "string"
},
"providerId": {
"minLength": 1,
"type": "string"
},
"contentType": {
"minLength": 1,
"description": "The canonical `{provider}.{surface}.{resource}` identifier.",
"type": "string"
}
},
"required": [
"organizationId",
"mode",
"connectedProfileId",
"providerProfileExternalId",
"providerId",
"contentType"
]
},
"data": {
"additionalProperties": false,
"type": "object",
"properties": {
"externalId": {
"description": "Provider-owned content identifier.",
"minLength": 1,
"type": "string"
},
"mediaExternalId": {
"minLength": 1,
"type": "string"
},
"text": {
"description": "Caption/body text for content.",
"type": "string"
},
"author": {
"additionalProperties": false,
"description": "Provider actor reference for observed content.",
"type": "object",
"properties": {
"id": {
"minLength": 1,
"type": "string"
},
"displayName": {
"minLength": 1,
"type": "string"
},
"username": {
"minLength": 1,
"type": "string"
}
},
"required": [
"id"
]
},
"thread": {
"additionalProperties": false,
"description": "Parent/root identifiers for threaded contexts.",
"type": "object",
"properties": {
"parentId": {
"minLength": 1,
"type": "string"
},
"rootId": {
"minLength": 1,
"type": "string"
},
"threadId": {
"minLength": 1,
"type": "string"
}
}
},
"hidden": {
"type": "boolean"
},
"providerPermalink": {
"format": "uri",
"description": "Canonical provider URL for content.",
"minLength": 1,
"pattern": "^https?://",
"type": "string"
},
"publishedAt": {
"format": "date-time",
"description": "Provider publish timestamp as an ISO-8601 string.",
"type": "string"
},
"providerRaw": {
"description": "Optional provider-native payload included only for transient delivery/debug use."
},
"contentType": {
"const": "facebook.media.comments",
"type": "string"
}
},
"required": [
"externalId",
"mediaExternalId",
"text",
"contentType"
]
}
},
"required": [
"id",
"topic",
"time",
"metadata",
"data"
]
}content.facebook.media.items.created
Normalized created event for facebook.media.items content.
Content type facebook.media.items. data is the content type's own schema — the same shape content reads return for it.
metadata
| Field | Type | Required | Description |
|---|---|---|---|
organizationId | string | yes | |
mode | "live" | "test" | yes | Which mode produced the event. Test-mode events come from fixture providers and never reach live infrastructure. |
connectedProfileId | string | yes | The Connected Profile that observed the content. |
providerProfileExternalId | string | yes | The observing profile's provider-namespace id. Content the profile authored has data.author.id equal to this. |
providerId | string | yes | |
contentType | string | yes | The canonical {provider}.{surface}.{resource} identifier. |
data
| Field | Type | Required | Description |
|---|---|---|---|
externalId | string | yes | Provider-owned content identifier. |
variant | "feed" | "reel" | yes | |
text | string | no | Caption/body text for content. |
media | object[] | no | |
providerPermalink | string (uri) | no | Canonical provider URL for content. |
publishedAt | string (date-time) | no | Provider publish timestamp as an ISO-8601 string. |
providerRaw | unknown | no | Optional provider-native payload included only for transient delivery/debug use. |
contentType | "facebook.media.items" | yes |
Envelope JSON Schema
{
"additionalProperties": false,
"type": "object",
"properties": {
"id": {
"description": "Stable dedupe id for this logical event (`evt_…`).",
"pattern": "^evt_[0-9a-f]{40}$",
"type": "string"
},
"topic": {
"const": "content.facebook.media.items.created",
"type": "string"
},
"time": {
"description": "When the event occurred (RFC 3339).",
"format": "date-time",
"type": "string"
},
"metadata": {
"additionalProperties": false,
"type": "object",
"properties": {
"organizationId": {
"minLength": 1,
"type": "string"
},
"mode": {
"description": "Which mode produced the event. Test-mode events come from fixture providers and never reach live infrastructure.",
"anyOf": [
{
"const": "live",
"type": "string"
},
{
"const": "test",
"type": "string"
}
]
},
"connectedProfileId": {
"minLength": 1,
"description": "The Connected Profile that observed the content.",
"type": "string"
},
"providerProfileExternalId": {
"minLength": 1,
"description": "The observing profile's provider-namespace id. Content the profile authored has `data.author.id` equal to this.",
"type": "string"
},
"providerId": {
"minLength": 1,
"type": "string"
},
"contentType": {
"minLength": 1,
"description": "The canonical `{provider}.{surface}.{resource}` identifier.",
"type": "string"
}
},
"required": [
"organizationId",
"mode",
"connectedProfileId",
"providerProfileExternalId",
"providerId",
"contentType"
]
},
"data": {
"additionalProperties": false,
"type": "object",
"properties": {
"externalId": {
"description": "Provider-owned content identifier.",
"minLength": 1,
"type": "string"
},
"variant": {
"anyOf": [
{
"const": "feed",
"type": "string"
},
{
"const": "reel",
"type": "string"
}
]
},
"text": {
"description": "Caption/body text for content.",
"type": "string"
},
"media": {
"type": "array",
"items": {
"additionalProperties": false,
"description": "A staged or remote media asset. Source constraints are enforced by operation schemas.",
"type": "object",
"properties": {
"mediaId": {
"minLength": 1,
"type": "string"
},
"sourceUrl": {
"minLength": 1,
"type": "string"
},
"contentType": {
"minLength": 1,
"type": "string"
},
"filename": {
"minLength": 1,
"type": "string"
},
"checksum": {
"pattern": "^sha256:[0-9a-fA-F]{64}$",
"type": "string"
},
"altText": {
"minLength": 1,
"type": "string"
}
}
}
},
"providerPermalink": {
"format": "uri",
"description": "Canonical provider URL for content.",
"minLength": 1,
"pattern": "^https?://",
"type": "string"
},
"publishedAt": {
"format": "date-time",
"description": "Provider publish timestamp as an ISO-8601 string.",
"type": "string"
},
"providerRaw": {
"description": "Optional provider-native payload included only for transient delivery/debug use."
},
"contentType": {
"const": "facebook.media.items",
"type": "string"
}
},
"required": [
"externalId",
"variant",
"contentType"
]
}
},
"required": [
"id",
"topic",
"time",
"metadata",
"data"
]
}content.facebook.media.items.deleted
Normalized deleted event for facebook.media.items content.
Content type facebook.media.items. data is the content type's own schema — the same shape content reads return for it.
metadata
| Field | Type | Required | Description |
|---|---|---|---|
organizationId | string | yes | |
mode | "live" | "test" | yes | Which mode produced the event. Test-mode events come from fixture providers and never reach live infrastructure. |
connectedProfileId | string | yes | The Connected Profile that observed the content. |
providerProfileExternalId | string | yes | The observing profile's provider-namespace id. Content the profile authored has data.author.id equal to this. |
providerId | string | yes | |
contentType | string | yes | The canonical {provider}.{surface}.{resource} identifier. |
data
| Field | Type | Required | Description |
|---|---|---|---|
externalId | string | yes | Provider-owned content identifier. |
variant | "feed" | "reel" | yes | |
text | string | no | Caption/body text for content. |
media | object[] | no | |
providerPermalink | string (uri) | no | Canonical provider URL for content. |
publishedAt | string (date-time) | no | Provider publish timestamp as an ISO-8601 string. |
providerRaw | unknown | no | Optional provider-native payload included only for transient delivery/debug use. |
contentType | "facebook.media.items" | yes |
Envelope JSON Schema
{
"additionalProperties": false,
"type": "object",
"properties": {
"id": {
"description": "Stable dedupe id for this logical event (`evt_…`).",
"pattern": "^evt_[0-9a-f]{40}$",
"type": "string"
},
"topic": {
"const": "content.facebook.media.items.deleted",
"type": "string"
},
"time": {
"description": "When the event occurred (RFC 3339).",
"format": "date-time",
"type": "string"
},
"metadata": {
"additionalProperties": false,
"type": "object",
"properties": {
"organizationId": {
"minLength": 1,
"type": "string"
},
"mode": {
"description": "Which mode produced the event. Test-mode events come from fixture providers and never reach live infrastructure.",
"anyOf": [
{
"const": "live",
"type": "string"
},
{
"const": "test",
"type": "string"
}
]
},
"connectedProfileId": {
"minLength": 1,
"description": "The Connected Profile that observed the content.",
"type": "string"
},
"providerProfileExternalId": {
"minLength": 1,
"description": "The observing profile's provider-namespace id. Content the profile authored has `data.author.id` equal to this.",
"type": "string"
},
"providerId": {
"minLength": 1,
"type": "string"
},
"contentType": {
"minLength": 1,
"description": "The canonical `{provider}.{surface}.{resource}` identifier.",
"type": "string"
}
},
"required": [
"organizationId",
"mode",
"connectedProfileId",
"providerProfileExternalId",
"providerId",
"contentType"
]
},
"data": {
"additionalProperties": false,
"type": "object",
"properties": {
"externalId": {
"description": "Provider-owned content identifier.",
"minLength": 1,
"type": "string"
},
"variant": {
"anyOf": [
{
"const": "feed",
"type": "string"
},
{
"const": "reel",
"type": "string"
}
]
},
"text": {
"description": "Caption/body text for content.",
"type": "string"
},
"media": {
"type": "array",
"items": {
"additionalProperties": false,
"description": "A staged or remote media asset. Source constraints are enforced by operation schemas.",
"type": "object",
"properties": {
"mediaId": {
"minLength": 1,
"type": "string"
},
"sourceUrl": {
"minLength": 1,
"type": "string"
},
"contentType": {
"minLength": 1,
"type": "string"
},
"filename": {
"minLength": 1,
"type": "string"
},
"checksum": {
"pattern": "^sha256:[0-9a-fA-F]{64}$",
"type": "string"
},
"altText": {
"minLength": 1,
"type": "string"
}
}
}
},
"providerPermalink": {
"format": "uri",
"description": "Canonical provider URL for content.",
"minLength": 1,
"pattern": "^https?://",
"type": "string"
},
"publishedAt": {
"format": "date-time",
"description": "Provider publish timestamp as an ISO-8601 string.",
"type": "string"
},
"providerRaw": {
"description": "Optional provider-native payload included only for transient delivery/debug use."
},
"contentType": {
"const": "facebook.media.items",
"type": "string"
}
},
"required": [
"externalId",
"variant",
"contentType"
]
}
},
"required": [
"id",
"topic",
"time",
"metadata",
"data"
]
}content.facebook.media.items.updated
Normalized updated event for facebook.media.items content.
Content type facebook.media.items. data is the content type's own schema — the same shape content reads return for it.
metadata
| Field | Type | Required | Description |
|---|---|---|---|
organizationId | string | yes | |
mode | "live" | "test" | yes | Which mode produced the event. Test-mode events come from fixture providers and never reach live infrastructure. |
connectedProfileId | string | yes | The Connected Profile that observed the content. |
providerProfileExternalId | string | yes | The observing profile's provider-namespace id. Content the profile authored has data.author.id equal to this. |
providerId | string | yes | |
contentType | string | yes | The canonical {provider}.{surface}.{resource} identifier. |
data
| Field | Type | Required | Description |
|---|---|---|---|
externalId | string | yes | Provider-owned content identifier. |
variant | "feed" | "reel" | yes | |
text | string | no | Caption/body text for content. |
media | object[] | no | |
providerPermalink | string (uri) | no | Canonical provider URL for content. |
publishedAt | string (date-time) | no | Provider publish timestamp as an ISO-8601 string. |
providerRaw | unknown | no | Optional provider-native payload included only for transient delivery/debug use. |
contentType | "facebook.media.items" | yes |
Envelope JSON Schema
{
"additionalProperties": false,
"type": "object",
"properties": {
"id": {
"description": "Stable dedupe id for this logical event (`evt_…`).",
"pattern": "^evt_[0-9a-f]{40}$",
"type": "string"
},
"topic": {
"const": "content.facebook.media.items.updated",
"type": "string"
},
"time": {
"description": "When the event occurred (RFC 3339).",
"format": "date-time",
"type": "string"
},
"metadata": {
"additionalProperties": false,
"type": "object",
"properties": {
"organizationId": {
"minLength": 1,
"type": "string"
},
"mode": {
"description": "Which mode produced the event. Test-mode events come from fixture providers and never reach live infrastructure.",
"anyOf": [
{
"const": "live",
"type": "string"
},
{
"const": "test",
"type": "string"
}
]
},
"connectedProfileId": {
"minLength": 1,
"description": "The Connected Profile that observed the content.",
"type": "string"
},
"providerProfileExternalId": {
"minLength": 1,
"description": "The observing profile's provider-namespace id. Content the profile authored has `data.author.id` equal to this.",
"type": "string"
},
"providerId": {
"minLength": 1,
"type": "string"
},
"contentType": {
"minLength": 1,
"description": "The canonical `{provider}.{surface}.{resource}` identifier.",
"type": "string"
}
},
"required": [
"organizationId",
"mode",
"connectedProfileId",
"providerProfileExternalId",
"providerId",
"contentType"
]
},
"data": {
"additionalProperties": false,
"type": "object",
"properties": {
"externalId": {
"description": "Provider-owned content identifier.",
"minLength": 1,
"type": "string"
},
"variant": {
"anyOf": [
{
"const": "feed",
"type": "string"
},
{
"const": "reel",
"type": "string"
}
]
},
"text": {
"description": "Caption/body text for content.",
"type": "string"
},
"media": {
"type": "array",
"items": {
"additionalProperties": false,
"description": "A staged or remote media asset. Source constraints are enforced by operation schemas.",
"type": "object",
"properties": {
"mediaId": {
"minLength": 1,
"type": "string"
},
"sourceUrl": {
"minLength": 1,
"type": "string"
},
"contentType": {
"minLength": 1,
"type": "string"
},
"filename": {
"minLength": 1,
"type": "string"
},
"checksum": {
"pattern": "^sha256:[0-9a-fA-F]{64}$",
"type": "string"
},
"altText": {
"minLength": 1,
"type": "string"
}
}
}
},
"providerPermalink": {
"format": "uri",
"description": "Canonical provider URL for content.",
"minLength": 1,
"pattern": "^https?://",
"type": "string"
},
"publishedAt": {
"format": "date-time",
"description": "Provider publish timestamp as an ISO-8601 string.",
"type": "string"
},
"providerRaw": {
"description": "Optional provider-native payload included only for transient delivery/debug use."
},
"contentType": {
"const": "facebook.media.items",
"type": "string"
}
},
"required": [
"externalId",
"variant",
"contentType"
]
}
},
"required": [
"id",
"topic",
"time",
"metadata",
"data"
]
}content.facebook.media.mentions.created
Normalized created event for facebook.media.mentions content.
Content type facebook.media.mentions. data is the content type's own schema — the same shape content reads return for it.
metadata
| Field | Type | Required | Description |
|---|---|---|---|
organizationId | string | yes | |
mode | "live" | "test" | yes | Which mode produced the event. Test-mode events come from fixture providers and never reach live infrastructure. |
connectedProfileId | string | yes | The Connected Profile that observed the content. |
providerProfileExternalId | string | yes | The observing profile's provider-namespace id. Content the profile authored has data.author.id equal to this. |
providerId | string | yes | |
contentType | string | yes | The canonical {provider}.{surface}.{resource} identifier. |
data
| Field | Type | Required | Description |
|---|---|---|---|
externalId | string | yes | Provider-owned content identifier. |
variant | "post" | "comment" | yes | |
mediaExternalId | string | no | |
commentExternalId | string | no | |
text | string | no | Caption/body text for content. |
author | object | no | Provider actor reference for observed content. |
providerPermalink | string (uri) | no | Canonical provider URL for content. |
publishedAt | string (date-time) | no | Provider publish timestamp as an ISO-8601 string. |
providerRaw | unknown | no | Optional provider-native payload included only for transient delivery/debug use. |
contentType | "facebook.media.mentions" | yes |
Envelope JSON Schema
{
"additionalProperties": false,
"type": "object",
"properties": {
"id": {
"description": "Stable dedupe id for this logical event (`evt_…`).",
"pattern": "^evt_[0-9a-f]{40}$",
"type": "string"
},
"topic": {
"const": "content.facebook.media.mentions.created",
"type": "string"
},
"time": {
"description": "When the event occurred (RFC 3339).",
"format": "date-time",
"type": "string"
},
"metadata": {
"additionalProperties": false,
"type": "object",
"properties": {
"organizationId": {
"minLength": 1,
"type": "string"
},
"mode": {
"description": "Which mode produced the event. Test-mode events come from fixture providers and never reach live infrastructure.",
"anyOf": [
{
"const": "live",
"type": "string"
},
{
"const": "test",
"type": "string"
}
]
},
"connectedProfileId": {
"minLength": 1,
"description": "The Connected Profile that observed the content.",
"type": "string"
},
"providerProfileExternalId": {
"minLength": 1,
"description": "The observing profile's provider-namespace id. Content the profile authored has `data.author.id` equal to this.",
"type": "string"
},
"providerId": {
"minLength": 1,
"type": "string"
},
"contentType": {
"minLength": 1,
"description": "The canonical `{provider}.{surface}.{resource}` identifier.",
"type": "string"
}
},
"required": [
"organizationId",
"mode",
"connectedProfileId",
"providerProfileExternalId",
"providerId",
"contentType"
]
},
"data": {
"additionalProperties": false,
"type": "object",
"properties": {
"externalId": {
"description": "Provider-owned content identifier.",
"minLength": 1,
"type": "string"
},
"variant": {
"anyOf": [
{
"const": "post",
"type": "string"
},
{
"const": "comment",
"type": "string"
}
]
},
"mediaExternalId": {
"minLength": 1,
"type": "string"
},
"commentExternalId": {
"minLength": 1,
"type": "string"
},
"text": {
"description": "Caption/body text for content.",
"type": "string"
},
"author": {
"additionalProperties": false,
"description": "Provider actor reference for observed content.",
"type": "object",
"properties": {
"id": {
"minLength": 1,
"type": "string"
},
"displayName": {
"minLength": 1,
"type": "string"
},
"username": {
"minLength": 1,
"type": "string"
}
},
"required": [
"id"
]
},
"providerPermalink": {
"format": "uri",
"description": "Canonical provider URL for content.",
"minLength": 1,
"pattern": "^https?://",
"type": "string"
},
"publishedAt": {
"format": "date-time",
"description": "Provider publish timestamp as an ISO-8601 string.",
"type": "string"
},
"providerRaw": {
"description": "Optional provider-native payload included only for transient delivery/debug use."
},
"contentType": {
"const": "facebook.media.mentions",
"type": "string"
}
},
"required": [
"externalId",
"variant",
"contentType"
]
}
},
"required": [
"id",
"topic",
"time",
"metadata",
"data"
]
}content.facebook.stories.items.created
Normalized created event for facebook.stories.items content.
Content type facebook.stories.items. data is the content type's own schema — the same shape content reads return for it.
metadata
| Field | Type | Required | Description |
|---|---|---|---|
organizationId | string | yes | |
mode | "live" | "test" | yes | Which mode produced the event. Test-mode events come from fixture providers and never reach live infrastructure. |
connectedProfileId | string | yes | The Connected Profile that observed the content. |
providerProfileExternalId | string | yes | The observing profile's provider-namespace id. Content the profile authored has data.author.id equal to this. |
providerId | string | yes | |
contentType | string | yes | The canonical {provider}.{surface}.{resource} identifier. |
data
| Field | Type | Required | Description |
|---|---|---|---|
externalId | string | yes | Provider-owned content identifier. |
variant | "photo" | "video" | yes | |
status | "published" | "archived" | yes | |
mediaExternalId | string | no | Meta's id for the story's photo or video. |
providerPermalink | string (uri) | no | Canonical provider URL for content. |
publishedAt | string (date-time) | no | Provider publish timestamp as an ISO-8601 string. |
providerRaw | unknown | no | Optional provider-native payload included only for transient delivery/debug use. |
contentType | "facebook.stories.items" | yes |
Envelope JSON Schema
{
"additionalProperties": false,
"type": "object",
"properties": {
"id": {
"description": "Stable dedupe id for this logical event (`evt_…`).",
"pattern": "^evt_[0-9a-f]{40}$",
"type": "string"
},
"topic": {
"const": "content.facebook.stories.items.created",
"type": "string"
},
"time": {
"description": "When the event occurred (RFC 3339).",
"format": "date-time",
"type": "string"
},
"metadata": {
"additionalProperties": false,
"type": "object",
"properties": {
"organizationId": {
"minLength": 1,
"type": "string"
},
"mode": {
"description": "Which mode produced the event. Test-mode events come from fixture providers and never reach live infrastructure.",
"anyOf": [
{
"const": "live",
"type": "string"
},
{
"const": "test",
"type": "string"
}
]
},
"connectedProfileId": {
"minLength": 1,
"description": "The Connected Profile that observed the content.",
"type": "string"
},
"providerProfileExternalId": {
"minLength": 1,
"description": "The observing profile's provider-namespace id. Content the profile authored has `data.author.id` equal to this.",
"type": "string"
},
"providerId": {
"minLength": 1,
"type": "string"
},
"contentType": {
"minLength": 1,
"description": "The canonical `{provider}.{surface}.{resource}` identifier.",
"type": "string"
}
},
"required": [
"organizationId",
"mode",
"connectedProfileId",
"providerProfileExternalId",
"providerId",
"contentType"
]
},
"data": {
"additionalProperties": false,
"type": "object",
"properties": {
"externalId": {
"description": "Provider-owned content identifier.",
"minLength": 1,
"type": "string"
},
"variant": {
"anyOf": [
{
"const": "photo",
"type": "string"
},
{
"const": "video",
"type": "string"
}
]
},
"status": {
"anyOf": [
{
"const": "published",
"type": "string"
},
{
"const": "archived",
"type": "string"
}
]
},
"mediaExternalId": {
"minLength": 1,
"description": "Meta's id for the story's photo or video.",
"type": "string"
},
"providerPermalink": {
"format": "uri",
"description": "Canonical provider URL for content.",
"minLength": 1,
"pattern": "^https?://",
"type": "string"
},
"publishedAt": {
"format": "date-time",
"description": "Provider publish timestamp as an ISO-8601 string.",
"type": "string"
},
"providerRaw": {
"description": "Optional provider-native payload included only for transient delivery/debug use."
},
"contentType": {
"const": "facebook.stories.items",
"type": "string"
}
},
"required": [
"externalId",
"variant",
"status",
"contentType"
]
}
},
"required": [
"id",
"topic",
"time",
"metadata",
"data"
]
}content.google_business_profile.locations.reviews.created
Normalized created event for google_business_profile.locations.reviews content.
Content type google_business_profile.locations.reviews. data is the content type's own schema — the same shape content reads return for it.
metadata
| Field | Type | Required | Description |
|---|---|---|---|
organizationId | string | yes | |
mode | "live" | "test" | yes | Which mode produced the event. Test-mode events come from fixture providers and never reach live infrastructure. |
connectedProfileId | string | yes | The Connected Profile that observed the content. |
providerProfileExternalId | string | yes | The observing profile's provider-namespace id. Content the profile authored has data.author.id equal to this. |
providerId | string | yes | |
contentType | string | yes | The canonical {provider}.{surface}.{resource} identifier. |
data
| Field | Type | Required | Description |
|---|---|---|---|
externalId | string | yes | Provider-owned content identifier. |
locationExternalId | string | yes | |
rating | object | no | A score on the provider's own scale, with its position on that scale as a percentage. |
text | string | no | Caption/body text for content. |
reviewer | object | yes | The reviewer as Google reports them: a name and photo, or neither when anonymous. Google publishes no stable reviewer id. |
media | object[] | no | |
reply | object | no | |
publishedAt | string (date-time) | no | Provider publish timestamp as an ISO-8601 string. |
updatedAt | string (date-time) | no | Provider update timestamp as an ISO-8601 string. |
providerRaw | unknown | no | Optional provider-native payload included only for transient delivery/debug use. |
contentType | "google_business_profile.locations.reviews" | yes |
Envelope JSON Schema
{
"additionalProperties": false,
"type": "object",
"properties": {
"id": {
"description": "Stable dedupe id for this logical event (`evt_…`).",
"pattern": "^evt_[0-9a-f]{40}$",
"type": "string"
},
"topic": {
"const": "content.google_business_profile.locations.reviews.created",
"type": "string"
},
"time": {
"description": "When the event occurred (RFC 3339).",
"format": "date-time",
"type": "string"
},
"metadata": {
"additionalProperties": false,
"type": "object",
"properties": {
"organizationId": {
"minLength": 1,
"type": "string"
},
"mode": {
"description": "Which mode produced the event. Test-mode events come from fixture providers and never reach live infrastructure.",
"anyOf": [
{
"const": "live",
"type": "string"
},
{
"const": "test",
"type": "string"
}
]
},
"connectedProfileId": {
"minLength": 1,
"description": "The Connected Profile that observed the content.",
"type": "string"
},
"providerProfileExternalId": {
"minLength": 1,
"description": "The observing profile's provider-namespace id. Content the profile authored has `data.author.id` equal to this.",
"type": "string"
},
"providerId": {
"minLength": 1,
"type": "string"
},
"contentType": {
"minLength": 1,
"description": "The canonical `{provider}.{surface}.{resource}` identifier.",
"type": "string"
}
},
"required": [
"organizationId",
"mode",
"connectedProfileId",
"providerProfileExternalId",
"providerId",
"contentType"
]
},
"data": {
"additionalProperties": false,
"type": "object",
"properties": {
"externalId": {
"description": "Provider-owned content identifier.",
"minLength": 1,
"type": "string"
},
"locationExternalId": {
"minLength": 1,
"type": "string"
},
"rating": {
"additionalProperties": false,
"description": "A score on the provider's own scale, with its position on that scale as a percentage.",
"type": "object",
"properties": {
"value": {
"description": "The score as the provider reports it, on its own scale.",
"type": "number"
},
"min": {
"description": "The lowest score the provider's scale allows.",
"type": "number"
},
"max": {
"description": "The highest score the provider's scale allows.",
"type": "number"
},
"percent": {
"minimum": 0,
"maximum": 100,
"description": "Where `value` sits on the scale: 0 at `min`, 100 at `max`, to two decimal places. Derived, and comparable across providers.",
"type": "number"
}
},
"required": [
"value",
"min",
"max",
"percent"
]
},
"text": {
"description": "Caption/body text for content.",
"type": "string"
},
"reviewer": {
"additionalProperties": false,
"description": "The reviewer as Google reports them: a name and photo, or neither when anonymous. Google publishes no stable reviewer id.",
"type": "object",
"properties": {
"displayName": {
"minLength": 1,
"type": "string"
},
"profilePhotoUrl": {
"minLength": 1,
"type": "string"
},
"isAnonymous": {
"type": "boolean"
}
},
"required": [
"isAnonymous"
]
},
"media": {
"type": "array",
"items": {
"additionalProperties": false,
"type": "object",
"properties": {
"thumbnailUrl": {
"minLength": 1,
"type": "string"
},
"videoUrl": {
"minLength": 1,
"type": "string"
}
}
}
},
"reply": {
"additionalProperties": false,
"type": "object",
"properties": {
"text": {
"description": "Caption/body text for content.",
"type": "string"
},
"state": {
"description": "Google's moderation state of the owner's reply.",
"anyOf": [
{
"const": "PENDING",
"type": "string"
},
{
"const": "APPROVED",
"type": "string"
},
{
"const": "REJECTED",
"type": "string"
}
]
},
"policyViolation": {
"minLength": 1,
"type": "string"
},
"updatedAt": {
"format": "date-time",
"description": "Provider update timestamp as an ISO-8601 string.",
"type": "string"
}
},
"required": [
"text"
]
},
"publishedAt": {
"format": "date-time",
"description": "Provider publish timestamp as an ISO-8601 string.",
"type": "string"
},
"updatedAt": {
"format": "date-time",
"description": "Provider update timestamp as an ISO-8601 string.",
"type": "string"
},
"providerRaw": {
"description": "Optional provider-native payload included only for transient delivery/debug use."
},
"contentType": {
"const": "google_business_profile.locations.reviews",
"type": "string"
}
},
"required": [
"externalId",
"locationExternalId",
"reviewer",
"contentType"
]
}
},
"required": [
"id",
"topic",
"time",
"metadata",
"data"
]
}content.google_business_profile.locations.reviews.updated
Normalized updated event for google_business_profile.locations.reviews content.
Content type google_business_profile.locations.reviews. data is the content type's own schema — the same shape content reads return for it.
metadata
| Field | Type | Required | Description |
|---|---|---|---|
organizationId | string | yes | |
mode | "live" | "test" | yes | Which mode produced the event. Test-mode events come from fixture providers and never reach live infrastructure. |
connectedProfileId | string | yes | The Connected Profile that observed the content. |
providerProfileExternalId | string | yes | The observing profile's provider-namespace id. Content the profile authored has data.author.id equal to this. |
providerId | string | yes | |
contentType | string | yes | The canonical {provider}.{surface}.{resource} identifier. |
data
| Field | Type | Required | Description |
|---|---|---|---|
externalId | string | yes | Provider-owned content identifier. |
locationExternalId | string | yes | |
rating | object | no | A score on the provider's own scale, with its position on that scale as a percentage. |
text | string | no | Caption/body text for content. |
reviewer | object | yes | The reviewer as Google reports them: a name and photo, or neither when anonymous. Google publishes no stable reviewer id. |
media | object[] | no | |
reply | object | no | |
publishedAt | string (date-time) | no | Provider publish timestamp as an ISO-8601 string. |
updatedAt | string (date-time) | no | Provider update timestamp as an ISO-8601 string. |
providerRaw | unknown | no | Optional provider-native payload included only for transient delivery/debug use. |
contentType | "google_business_profile.locations.reviews" | yes |
Envelope JSON Schema
{
"additionalProperties": false,
"type": "object",
"properties": {
"id": {
"description": "Stable dedupe id for this logical event (`evt_…`).",
"pattern": "^evt_[0-9a-f]{40}$",
"type": "string"
},
"topic": {
"const": "content.google_business_profile.locations.reviews.updated",
"type": "string"
},
"time": {
"description": "When the event occurred (RFC 3339).",
"format": "date-time",
"type": "string"
},
"metadata": {
"additionalProperties": false,
"type": "object",
"properties": {
"organizationId": {
"minLength": 1,
"type": "string"
},
"mode": {
"description": "Which mode produced the event. Test-mode events come from fixture providers and never reach live infrastructure.",
"anyOf": [
{
"const": "live",
"type": "string"
},
{
"const": "test",
"type": "string"
}
]
},
"connectedProfileId": {
"minLength": 1,
"description": "The Connected Profile that observed the content.",
"type": "string"
},
"providerProfileExternalId": {
"minLength": 1,
"description": "The observing profile's provider-namespace id. Content the profile authored has `data.author.id` equal to this.",
"type": "string"
},
"providerId": {
"minLength": 1,
"type": "string"
},
"contentType": {
"minLength": 1,
"description": "The canonical `{provider}.{surface}.{resource}` identifier.",
"type": "string"
}
},
"required": [
"organizationId",
"mode",
"connectedProfileId",
"providerProfileExternalId",
"providerId",
"contentType"
]
},
"data": {
"additionalProperties": false,
"type": "object",
"properties": {
"externalId": {
"description": "Provider-owned content identifier.",
"minLength": 1,
"type": "string"
},
"locationExternalId": {
"minLength": 1,
"type": "string"
},
"rating": {
"additionalProperties": false,
"description": "A score on the provider's own scale, with its position on that scale as a percentage.",
"type": "object",
"properties": {
"value": {
"description": "The score as the provider reports it, on its own scale.",
"type": "number"
},
"min": {
"description": "The lowest score the provider's scale allows.",
"type": "number"
},
"max": {
"description": "The highest score the provider's scale allows.",
"type": "number"
},
"percent": {
"minimum": 0,
"maximum": 100,
"description": "Where `value` sits on the scale: 0 at `min`, 100 at `max`, to two decimal places. Derived, and comparable across providers.",
"type": "number"
}
},
"required": [
"value",
"min",
"max",
"percent"
]
},
"text": {
"description": "Caption/body text for content.",
"type": "string"
},
"reviewer": {
"additionalProperties": false,
"description": "The reviewer as Google reports them: a name and photo, or neither when anonymous. Google publishes no stable reviewer id.",
"type": "object",
"properties": {
"displayName": {
"minLength": 1,
"type": "string"
},
"profilePhotoUrl": {
"minLength": 1,
"type": "string"
},
"isAnonymous": {
"type": "boolean"
}
},
"required": [
"isAnonymous"
]
},
"media": {
"type": "array",
"items": {
"additionalProperties": false,
"type": "object",
"properties": {
"thumbnailUrl": {
"minLength": 1,
"type": "string"
},
"videoUrl": {
"minLength": 1,
"type": "string"
}
}
}
},
"reply": {
"additionalProperties": false,
"type": "object",
"properties": {
"text": {
"description": "Caption/body text for content.",
"type": "string"
},
"state": {
"description": "Google's moderation state of the owner's reply.",
"anyOf": [
{
"const": "PENDING",
"type": "string"
},
{
"const": "APPROVED",
"type": "string"
},
{
"const": "REJECTED",
"type": "string"
}
]
},
"policyViolation": {
"minLength": 1,
"type": "string"
},
"updatedAt": {
"format": "date-time",
"description": "Provider update timestamp as an ISO-8601 string.",
"type": "string"
}
},
"required": [
"text"
]
},
"publishedAt": {
"format": "date-time",
"description": "Provider publish timestamp as an ISO-8601 string.",
"type": "string"
},
"updatedAt": {
"format": "date-time",
"description": "Provider update timestamp as an ISO-8601 string.",
"type": "string"
},
"providerRaw": {
"description": "Optional provider-native payload included only for transient delivery/debug use."
},
"contentType": {
"const": "google_business_profile.locations.reviews",
"type": "string"
}
},
"required": [
"externalId",
"locationExternalId",
"reviewer",
"contentType"
]
}
},
"required": [
"id",
"topic",
"time",
"metadata",
"data"
]
}content.instagram.dm.messages.created
Normalized created event for instagram.dm.messages content.
Content type instagram.dm.messages. data is the content type's own schema — the same shape content reads return for it.
metadata
| Field | Type | Required | Description |
|---|---|---|---|
organizationId | string | yes | |
mode | "live" | "test" | yes | Which mode produced the event. Test-mode events come from fixture providers and never reach live infrastructure. |
connectedProfileId | string | yes | The Connected Profile that observed the content. |
providerProfileExternalId | string | yes | The observing profile's provider-namespace id. Content the profile authored has data.author.id equal to this. |
providerId | string | yes | |
contentType | string | yes | The canonical {provider}.{surface}.{resource} identifier. |
data
| Field | Type | Required | Description |
|---|---|---|---|
externalId | string | yes | Provider-owned content identifier. |
threadExternalId | string | no | Owning conversation id. Present on messages read through instagram.dm.threads; absent on webhook-observed messages because the provider's messaging webhooks do not identify the conversation. |
text | string | no | Caption/body text for content. |
author | object | no | Provider actor reference for observed content. |
thread | object | no | Parent/root identifiers for threaded contexts. |
publishedAt | string (date-time) | no | Provider publish timestamp as an ISO-8601 string. |
providerRaw | unknown | no | Optional provider-native payload included only for transient delivery/debug use. |
contentType | "instagram.dm.messages" | yes |
Envelope JSON Schema
{
"additionalProperties": false,
"type": "object",
"properties": {
"id": {
"description": "Stable dedupe id for this logical event (`evt_…`).",
"pattern": "^evt_[0-9a-f]{40}$",
"type": "string"
},
"topic": {
"const": "content.instagram.dm.messages.created",
"type": "string"
},
"time": {
"description": "When the event occurred (RFC 3339).",
"format": "date-time",
"type": "string"
},
"metadata": {
"additionalProperties": false,
"type": "object",
"properties": {
"organizationId": {
"minLength": 1,
"type": "string"
},
"mode": {
"description": "Which mode produced the event. Test-mode events come from fixture providers and never reach live infrastructure.",
"anyOf": [
{
"const": "live",
"type": "string"
},
{
"const": "test",
"type": "string"
}
]
},
"connectedProfileId": {
"minLength": 1,
"description": "The Connected Profile that observed the content.",
"type": "string"
},
"providerProfileExternalId": {
"minLength": 1,
"description": "The observing profile's provider-namespace id. Content the profile authored has `data.author.id` equal to this.",
"type": "string"
},
"providerId": {
"minLength": 1,
"type": "string"
},
"contentType": {
"minLength": 1,
"description": "The canonical `{provider}.{surface}.{resource}` identifier.",
"type": "string"
}
},
"required": [
"organizationId",
"mode",
"connectedProfileId",
"providerProfileExternalId",
"providerId",
"contentType"
]
},
"data": {
"additionalProperties": false,
"type": "object",
"properties": {
"externalId": {
"description": "Provider-owned content identifier.",
"minLength": 1,
"type": "string"
},
"threadExternalId": {
"minLength": 1,
"description": "Owning conversation id. Present on messages read through instagram.dm.threads; absent on webhook-observed messages because the provider's messaging webhooks do not identify the conversation.",
"type": "string"
},
"text": {
"description": "Caption/body text for content.",
"type": "string"
},
"author": {
"additionalProperties": false,
"description": "Provider actor reference for observed content.",
"type": "object",
"properties": {
"id": {
"minLength": 1,
"type": "string"
},
"displayName": {
"minLength": 1,
"type": "string"
},
"username": {
"minLength": 1,
"type": "string"
}
},
"required": [
"id"
]
},
"thread": {
"additionalProperties": false,
"description": "Parent/root identifiers for threaded contexts.",
"type": "object",
"properties": {
"parentId": {
"minLength": 1,
"type": "string"
},
"rootId": {
"minLength": 1,
"type": "string"
},
"threadId": {
"minLength": 1,
"type": "string"
}
}
},
"publishedAt": {
"format": "date-time",
"description": "Provider publish timestamp as an ISO-8601 string.",
"type": "string"
},
"providerRaw": {
"description": "Optional provider-native payload included only for transient delivery/debug use."
},
"contentType": {
"const": "instagram.dm.messages",
"type": "string"
}
},
"required": [
"externalId",
"contentType"
]
}
},
"required": [
"id",
"topic",
"time",
"metadata",
"data"
]
}content.instagram.media.comments.created
Normalized created event for instagram.media.comments content.
Content type instagram.media.comments. data is the content type's own schema — the same shape content reads return for it.
metadata
| Field | Type | Required | Description |
|---|---|---|---|
organizationId | string | yes | |
mode | "live" | "test" | yes | Which mode produced the event. Test-mode events come from fixture providers and never reach live infrastructure. |
connectedProfileId | string | yes | The Connected Profile that observed the content. |
providerProfileExternalId | string | yes | The observing profile's provider-namespace id. Content the profile authored has data.author.id equal to this. |
providerId | string | yes | |
contentType | string | yes | The canonical {provider}.{surface}.{resource} identifier. |
data
| Field | Type | Required | Description |
|---|---|---|---|
externalId | string | yes | Provider-owned content identifier. |
mediaExternalId | string | yes | |
text | string | yes | Caption/body text for content. |
author | object | no | Provider actor reference for observed content. |
thread | object | no | Parent/root identifiers for threaded contexts. |
publishedAt | string (date-time) | no | Provider publish timestamp as an ISO-8601 string. |
providerRaw | unknown | no | Optional provider-native payload included only for transient delivery/debug use. |
contentType | "instagram.media.comments" | yes |
Envelope JSON Schema
{
"additionalProperties": false,
"type": "object",
"properties": {
"id": {
"description": "Stable dedupe id for this logical event (`evt_…`).",
"pattern": "^evt_[0-9a-f]{40}$",
"type": "string"
},
"topic": {
"const": "content.instagram.media.comments.created",
"type": "string"
},
"time": {
"description": "When the event occurred (RFC 3339).",
"format": "date-time",
"type": "string"
},
"metadata": {
"additionalProperties": false,
"type": "object",
"properties": {
"organizationId": {
"minLength": 1,
"type": "string"
},
"mode": {
"description": "Which mode produced the event. Test-mode events come from fixture providers and never reach live infrastructure.",
"anyOf": [
{
"const": "live",
"type": "string"
},
{
"const": "test",
"type": "string"
}
]
},
"connectedProfileId": {
"minLength": 1,
"description": "The Connected Profile that observed the content.",
"type": "string"
},
"providerProfileExternalId": {
"minLength": 1,
"description": "The observing profile's provider-namespace id. Content the profile authored has `data.author.id` equal to this.",
"type": "string"
},
"providerId": {
"minLength": 1,
"type": "string"
},
"contentType": {
"minLength": 1,
"description": "The canonical `{provider}.{surface}.{resource}` identifier.",
"type": "string"
}
},
"required": [
"organizationId",
"mode",
"connectedProfileId",
"providerProfileExternalId",
"providerId",
"contentType"
]
},
"data": {
"additionalProperties": false,
"type": "object",
"properties": {
"externalId": {
"description": "Provider-owned content identifier.",
"minLength": 1,
"type": "string"
},
"mediaExternalId": {
"minLength": 1,
"type": "string"
},
"text": {
"description": "Caption/body text for content.",
"type": "string"
},
"author": {
"additionalProperties": false,
"description": "Provider actor reference for observed content.",
"type": "object",
"properties": {
"id": {
"minLength": 1,
"type": "string"
},
"displayName": {
"minLength": 1,
"type": "string"
},
"username": {
"minLength": 1,
"type": "string"
}
},
"required": [
"id"
]
},
"thread": {
"additionalProperties": false,
"description": "Parent/root identifiers for threaded contexts.",
"type": "object",
"properties": {
"parentId": {
"minLength": 1,
"type": "string"
},
"rootId": {
"minLength": 1,
"type": "string"
},
"threadId": {
"minLength": 1,
"type": "string"
}
}
},
"publishedAt": {
"format": "date-time",
"description": "Provider publish timestamp as an ISO-8601 string.",
"type": "string"
},
"providerRaw": {
"description": "Optional provider-native payload included only for transient delivery/debug use."
},
"contentType": {
"const": "instagram.media.comments",
"type": "string"
}
},
"required": [
"externalId",
"mediaExternalId",
"text",
"contentType"
]
}
},
"required": [
"id",
"topic",
"time",
"metadata",
"data"
]
}content.instagram.media.items.created
Normalized created event for instagram.media.items content.
Content type instagram.media.items. data is the content type's own schema — the same shape content reads return for it.
metadata
| Field | Type | Required | Description |
|---|---|---|---|
organizationId | string | yes | |
mode | "live" | "test" | yes | Which mode produced the event. Test-mode events come from fixture providers and never reach live infrastructure. |
connectedProfileId | string | yes | The Connected Profile that observed the content. |
providerProfileExternalId | string | yes | The observing profile's provider-namespace id. Content the profile authored has data.author.id equal to this. |
providerId | string | yes | |
contentType | string | yes | The canonical {provider}.{surface}.{resource} identifier. |
data
| Field | Type | Required | Description |
|---|---|---|---|
externalId | string | yes | Provider-owned content identifier. |
variant | "feed" | "reel" | yes | |
text | string | no | Caption/body text for content. |
media | object[] | no | |
providerPermalink | string (uri) | no | Canonical provider URL for content. |
publishedAt | string (date-time) | no | Provider publish timestamp as an ISO-8601 string. |
providerRaw | unknown | no | Optional provider-native payload included only for transient delivery/debug use. |
contentType | "instagram.media.items" | yes |
Envelope JSON Schema
{
"additionalProperties": false,
"type": "object",
"properties": {
"id": {
"description": "Stable dedupe id for this logical event (`evt_…`).",
"pattern": "^evt_[0-9a-f]{40}$",
"type": "string"
},
"topic": {
"const": "content.instagram.media.items.created",
"type": "string"
},
"time": {
"description": "When the event occurred (RFC 3339).",
"format": "date-time",
"type": "string"
},
"metadata": {
"additionalProperties": false,
"type": "object",
"properties": {
"organizationId": {
"minLength": 1,
"type": "string"
},
"mode": {
"description": "Which mode produced the event. Test-mode events come from fixture providers and never reach live infrastructure.",
"anyOf": [
{
"const": "live",
"type": "string"
},
{
"const": "test",
"type": "string"
}
]
},
"connectedProfileId": {
"minLength": 1,
"description": "The Connected Profile that observed the content.",
"type": "string"
},
"providerProfileExternalId": {
"minLength": 1,
"description": "The observing profile's provider-namespace id. Content the profile authored has `data.author.id` equal to this.",
"type": "string"
},
"providerId": {
"minLength": 1,
"type": "string"
},
"contentType": {
"minLength": 1,
"description": "The canonical `{provider}.{surface}.{resource}` identifier.",
"type": "string"
}
},
"required": [
"organizationId",
"mode",
"connectedProfileId",
"providerProfileExternalId",
"providerId",
"contentType"
]
},
"data": {
"additionalProperties": false,
"type": "object",
"properties": {
"externalId": {
"description": "Provider-owned content identifier.",
"minLength": 1,
"type": "string"
},
"variant": {
"anyOf": [
{
"const": "feed",
"type": "string"
},
{
"const": "reel",
"type": "string"
}
]
},
"text": {
"description": "Caption/body text for content.",
"type": "string"
},
"media": {
"type": "array",
"items": {
"additionalProperties": false,
"description": "A staged or remote media asset. Source constraints are enforced by operation schemas.",
"type": "object",
"properties": {
"mediaId": {
"minLength": 1,
"type": "string"
},
"sourceUrl": {
"minLength": 1,
"type": "string"
},
"contentType": {
"minLength": 1,
"type": "string"
},
"filename": {
"minLength": 1,
"type": "string"
},
"checksum": {
"pattern": "^sha256:[0-9a-fA-F]{64}$",
"type": "string"
},
"altText": {
"minLength": 1,
"type": "string"
}
}
}
},
"providerPermalink": {
"format": "uri",
"description": "Canonical provider URL for content.",
"minLength": 1,
"pattern": "^https?://",
"type": "string"
},
"publishedAt": {
"format": "date-time",
"description": "Provider publish timestamp as an ISO-8601 string.",
"type": "string"
},
"providerRaw": {
"description": "Optional provider-native payload included only for transient delivery/debug use."
},
"contentType": {
"const": "instagram.media.items",
"type": "string"
}
},
"required": [
"externalId",
"variant",
"contentType"
]
}
},
"required": [
"id",
"topic",
"time",
"metadata",
"data"
]
}content.instagram.media.mentions.created
Normalized created event for instagram.media.mentions content.
Content type instagram.media.mentions. data is the content type's own schema — the same shape content reads return for it.
metadata
| Field | Type | Required | Description |
|---|---|---|---|
organizationId | string | yes | |
mode | "live" | "test" | yes | Which mode produced the event. Test-mode events come from fixture providers and never reach live infrastructure. |
connectedProfileId | string | yes | The Connected Profile that observed the content. |
providerProfileExternalId | string | yes | The observing profile's provider-namespace id. Content the profile authored has data.author.id equal to this. |
providerId | string | yes | |
contentType | string | yes | The canonical {provider}.{surface}.{resource} identifier. |
data
| Field | Type | Required | Description |
|---|---|---|---|
externalId | string | yes | Provider-owned content identifier. |
variant | "comment" | "caption" | yes | |
mediaExternalId | string | no | |
commentExternalId | string | no | |
text | string | no | Caption/body text for content. |
author | object | no | Provider actor reference for observed content. |
thread | object | no | Parent/root identifiers for threaded contexts. |
providerPermalink | string (uri) | no | Canonical provider URL for content. |
publishedAt | string (date-time) | no | Provider publish timestamp as an ISO-8601 string. |
providerRaw | unknown | no | Optional provider-native payload included only for transient delivery/debug use. |
contentType | "instagram.media.mentions" | yes |
Envelope JSON Schema
{
"additionalProperties": false,
"type": "object",
"properties": {
"id": {
"description": "Stable dedupe id for this logical event (`evt_…`).",
"pattern": "^evt_[0-9a-f]{40}$",
"type": "string"
},
"topic": {
"const": "content.instagram.media.mentions.created",
"type": "string"
},
"time": {
"description": "When the event occurred (RFC 3339).",
"format": "date-time",
"type": "string"
},
"metadata": {
"additionalProperties": false,
"type": "object",
"properties": {
"organizationId": {
"minLength": 1,
"type": "string"
},
"mode": {
"description": "Which mode produced the event. Test-mode events come from fixture providers and never reach live infrastructure.",
"anyOf": [
{
"const": "live",
"type": "string"
},
{
"const": "test",
"type": "string"
}
]
},
"connectedProfileId": {
"minLength": 1,
"description": "The Connected Profile that observed the content.",
"type": "string"
},
"providerProfileExternalId": {
"minLength": 1,
"description": "The observing profile's provider-namespace id. Content the profile authored has `data.author.id` equal to this.",
"type": "string"
},
"providerId": {
"minLength": 1,
"type": "string"
},
"contentType": {
"minLength": 1,
"description": "The canonical `{provider}.{surface}.{resource}` identifier.",
"type": "string"
}
},
"required": [
"organizationId",
"mode",
"connectedProfileId",
"providerProfileExternalId",
"providerId",
"contentType"
]
},
"data": {
"additionalProperties": false,
"type": "object",
"properties": {
"externalId": {
"description": "Provider-owned content identifier.",
"minLength": 1,
"type": "string"
},
"variant": {
"anyOf": [
{
"const": "comment",
"type": "string"
},
{
"const": "caption",
"type": "string"
}
]
},
"mediaExternalId": {
"minLength": 1,
"type": "string"
},
"commentExternalId": {
"minLength": 1,
"type": "string"
},
"text": {
"description": "Caption/body text for content.",
"type": "string"
},
"author": {
"additionalProperties": false,
"description": "Provider actor reference for observed content.",
"type": "object",
"properties": {
"id": {
"minLength": 1,
"type": "string"
},
"displayName": {
"minLength": 1,
"type": "string"
},
"username": {
"minLength": 1,
"type": "string"
}
},
"required": [
"id"
]
},
"thread": {
"additionalProperties": false,
"description": "Parent/root identifiers for threaded contexts.",
"type": "object",
"properties": {
"parentId": {
"minLength": 1,
"type": "string"
},
"rootId": {
"minLength": 1,
"type": "string"
},
"threadId": {
"minLength": 1,
"type": "string"
}
}
},
"providerPermalink": {
"format": "uri",
"description": "Canonical provider URL for content.",
"minLength": 1,
"pattern": "^https?://",
"type": "string"
},
"publishedAt": {
"format": "date-time",
"description": "Provider publish timestamp as an ISO-8601 string.",
"type": "string"
},
"providerRaw": {
"description": "Optional provider-native payload included only for transient delivery/debug use."
},
"contentType": {
"const": "instagram.media.mentions",
"type": "string"
}
},
"required": [
"externalId",
"variant",
"contentType"
]
}
},
"required": [
"id",
"topic",
"time",
"metadata",
"data"
]
}content.instagram.stories.items.created
Normalized created event for instagram.stories.items content.
Content type instagram.stories.items. data is the content type's own schema — the same shape content reads return for it.
metadata
| Field | Type | Required | Description |
|---|---|---|---|
organizationId | string | yes | |
mode | "live" | "test" | yes | Which mode produced the event. Test-mode events come from fixture providers and never reach live infrastructure. |
connectedProfileId | string | yes | The Connected Profile that observed the content. |
providerProfileExternalId | string | yes | The observing profile's provider-namespace id. Content the profile authored has data.author.id equal to this. |
providerId | string | yes | |
contentType | string | yes | The canonical {provider}.{surface}.{resource} identifier. |
data
| Field | Type | Required | Description |
|---|---|---|---|
externalId | string | yes | Provider-owned content identifier. |
text | string | no | Caption/body text for content. |
media | object[] | no | |
providerPermalink | string (uri) | no | Canonical provider URL for content. |
publishedAt | string (date-time) | no | Provider publish timestamp as an ISO-8601 string. |
providerRaw | unknown | no | Optional provider-native payload included only for transient delivery/debug use. |
contentType | "instagram.stories.items" | yes |
Envelope JSON Schema
{
"additionalProperties": false,
"type": "object",
"properties": {
"id": {
"description": "Stable dedupe id for this logical event (`evt_…`).",
"pattern": "^evt_[0-9a-f]{40}$",
"type": "string"
},
"topic": {
"const": "content.instagram.stories.items.created",
"type": "string"
},
"time": {
"description": "When the event occurred (RFC 3339).",
"format": "date-time",
"type": "string"
},
"metadata": {
"additionalProperties": false,
"type": "object",
"properties": {
"organizationId": {
"minLength": 1,
"type": "string"
},
"mode": {
"description": "Which mode produced the event. Test-mode events come from fixture providers and never reach live infrastructure.",
"anyOf": [
{
"const": "live",
"type": "string"
},
{
"const": "test",
"type": "string"
}
]
},
"connectedProfileId": {
"minLength": 1,
"description": "The Connected Profile that observed the content.",
"type": "string"
},
"providerProfileExternalId": {
"minLength": 1,
"description": "The observing profile's provider-namespace id. Content the profile authored has `data.author.id` equal to this.",
"type": "string"
},
"providerId": {
"minLength": 1,
"type": "string"
},
"contentType": {
"minLength": 1,
"description": "The canonical `{provider}.{surface}.{resource}` identifier.",
"type": "string"
}
},
"required": [
"organizationId",
"mode",
"connectedProfileId",
"providerProfileExternalId",
"providerId",
"contentType"
]
},
"data": {
"additionalProperties": false,
"type": "object",
"properties": {
"externalId": {
"description": "Provider-owned content identifier.",
"minLength": 1,
"type": "string"
},
"text": {
"description": "Caption/body text for content.",
"type": "string"
},
"media": {
"type": "array",
"items": {
"additionalProperties": false,
"description": "A staged or remote media asset. Source constraints are enforced by operation schemas.",
"type": "object",
"properties": {
"mediaId": {
"minLength": 1,
"type": "string"
},
"sourceUrl": {
"minLength": 1,
"type": "string"
},
"contentType": {
"minLength": 1,
"type": "string"
},
"filename": {
"minLength": 1,
"type": "string"
},
"checksum": {
"pattern": "^sha256:[0-9a-fA-F]{64}$",
"type": "string"
},
"altText": {
"minLength": 1,
"type": "string"
}
}
}
},
"providerPermalink": {
"format": "uri",
"description": "Canonical provider URL for content.",
"minLength": 1,
"pattern": "^https?://",
"type": "string"
},
"publishedAt": {
"format": "date-time",
"description": "Provider publish timestamp as an ISO-8601 string.",
"type": "string"
},
"providerRaw": {
"description": "Optional provider-native payload included only for transient delivery/debug use."
},
"contentType": {
"const": "instagram.stories.items",
"type": "string"
}
},
"required": [
"externalId",
"contentType"
]
}
},
"required": [
"id",
"topic",
"time",
"metadata",
"data"
]
}content.linkedin.feed.comments.created
Normalized created event for linkedin.feed.comments content.
Content type linkedin.feed.comments. data is the content type's own schema — the same shape content reads return for it.
metadata
| Field | Type | Required | Description |
|---|---|---|---|
organizationId | string | yes | |
mode | "live" | "test" | yes | Which mode produced the event. Test-mode events come from fixture providers and never reach live infrastructure. |
connectedProfileId | string | yes | The Connected Profile that observed the content. |
providerProfileExternalId | string | yes | The observing profile's provider-namespace id. Content the profile authored has data.author.id equal to this. |
providerId | string | yes | |
contentType | string | yes | The canonical {provider}.{surface}.{resource} identifier. |
data
| Field | Type | Required | Description |
|---|---|---|---|
externalId | string | yes | Provider-owned content identifier. |
commentId | string | yes | |
threadUrn | string | yes | |
mediaExternalId | string | no | |
text | string | no | Caption/body text for content. |
mentions | object[] | no | |
media | object[] | no | |
author | object | no | Provider actor reference for observed content. |
ownerAuthored | boolean | no | |
thread | object | no | Parent/root identifiers for threaded contexts. |
engagement | object | no | Provider-reported engagement counts. |
publishedAt | string (date-time) | no | Provider publish timestamp as an ISO-8601 string. |
updatedAt | string (date-time) | no | Provider update timestamp as an ISO-8601 string. |
providerRaw | unknown | no | Optional provider-native payload included only for transient delivery/debug use. |
contentType | "linkedin.feed.comments" | yes |
Envelope JSON Schema
{
"additionalProperties": false,
"type": "object",
"properties": {
"id": {
"description": "Stable dedupe id for this logical event (`evt_…`).",
"pattern": "^evt_[0-9a-f]{40}$",
"type": "string"
},
"topic": {
"const": "content.linkedin.feed.comments.created",
"type": "string"
},
"time": {
"description": "When the event occurred (RFC 3339).",
"format": "date-time",
"type": "string"
},
"metadata": {
"additionalProperties": false,
"type": "object",
"properties": {
"organizationId": {
"minLength": 1,
"type": "string"
},
"mode": {
"description": "Which mode produced the event. Test-mode events come from fixture providers and never reach live infrastructure.",
"anyOf": [
{
"const": "live",
"type": "string"
},
{
"const": "test",
"type": "string"
}
]
},
"connectedProfileId": {
"minLength": 1,
"description": "The Connected Profile that observed the content.",
"type": "string"
},
"providerProfileExternalId": {
"minLength": 1,
"description": "The observing profile's provider-namespace id. Content the profile authored has `data.author.id` equal to this.",
"type": "string"
},
"providerId": {
"minLength": 1,
"type": "string"
},
"contentType": {
"minLength": 1,
"description": "The canonical `{provider}.{surface}.{resource}` identifier.",
"type": "string"
}
},
"required": [
"organizationId",
"mode",
"connectedProfileId",
"providerProfileExternalId",
"providerId",
"contentType"
]
},
"data": {
"additionalProperties": false,
"type": "object",
"properties": {
"externalId": {
"description": "Provider-owned content identifier.",
"minLength": 1,
"type": "string"
},
"commentId": {
"minLength": 1,
"type": "string"
},
"threadUrn": {
"minLength": 1,
"type": "string"
},
"mediaExternalId": {
"minLength": 1,
"type": "string"
},
"text": {
"description": "Caption/body text for content.",
"type": "string"
},
"mentions": {
"type": "array",
"items": {
"additionalProperties": false,
"type": "object",
"properties": {
"start": {
"minimum": 0,
"type": "integer"
},
"length": {
"minimum": 0,
"type": "integer"
},
"urn": {
"minLength": 1,
"type": "string"
}
},
"required": [
"start",
"length",
"urn"
]
}
},
"media": {
"type": "array",
"items": {
"additionalProperties": false,
"description": "A staged or remote media asset. Source constraints are enforced by operation schemas.",
"type": "object",
"properties": {
"mediaId": {
"minLength": 1,
"type": "string"
},
"sourceUrl": {
"minLength": 1,
"type": "string"
},
"contentType": {
"minLength": 1,
"type": "string"
},
"filename": {
"minLength": 1,
"type": "string"
},
"checksum": {
"pattern": "^sha256:[0-9a-fA-F]{64}$",
"type": "string"
},
"altText": {
"minLength": 1,
"type": "string"
}
}
}
},
"author": {
"additionalProperties": false,
"description": "Provider actor reference for observed content.",
"type": "object",
"properties": {
"id": {
"minLength": 1,
"type": "string"
},
"displayName": {
"minLength": 1,
"type": "string"
},
"username": {
"minLength": 1,
"type": "string"
}
},
"required": [
"id"
]
},
"ownerAuthored": {
"type": "boolean"
},
"thread": {
"additionalProperties": false,
"description": "Parent/root identifiers for threaded contexts.",
"type": "object",
"properties": {
"parentId": {
"minLength": 1,
"type": "string"
},
"rootId": {
"minLength": 1,
"type": "string"
},
"threadId": {
"minLength": 1,
"type": "string"
}
}
},
"engagement": {
"additionalProperties": false,
"description": "Provider-reported engagement counts.",
"type": "object",
"properties": {
"likes": {
"minimum": 0,
"description": "Likes, favourites, or reactions on the content.",
"type": "number"
},
"comments": {
"minimum": 0,
"description": "Comments or replies on the content.",
"type": "number"
}
}
},
"publishedAt": {
"format": "date-time",
"description": "Provider publish timestamp as an ISO-8601 string.",
"type": "string"
},
"updatedAt": {
"format": "date-time",
"description": "Provider update timestamp as an ISO-8601 string.",
"type": "string"
},
"providerRaw": {
"description": "Optional provider-native payload included only for transient delivery/debug use."
},
"contentType": {
"const": "linkedin.feed.comments",
"type": "string"
}
},
"required": [
"externalId",
"commentId",
"threadUrn",
"contentType"
]
}
},
"required": [
"id",
"topic",
"time",
"metadata",
"data"
]
}content.linkedin.feed.comments.deleted
Normalized deleted event for linkedin.feed.comments content.
Content type linkedin.feed.comments. data is the content type's own schema — the same shape content reads return for it.
metadata
| Field | Type | Required | Description |
|---|---|---|---|
organizationId | string | yes | |
mode | "live" | "test" | yes | Which mode produced the event. Test-mode events come from fixture providers and never reach live infrastructure. |
connectedProfileId | string | yes | The Connected Profile that observed the content. |
providerProfileExternalId | string | yes | The observing profile's provider-namespace id. Content the profile authored has data.author.id equal to this. |
providerId | string | yes | |
contentType | string | yes | The canonical {provider}.{surface}.{resource} identifier. |
data
| Field | Type | Required | Description |
|---|---|---|---|
externalId | string | yes | Provider-owned content identifier. |
commentId | string | yes | |
threadUrn | string | yes | |
mediaExternalId | string | no | |
text | string | no | Caption/body text for content. |
mentions | object[] | no | |
media | object[] | no | |
author | object | no | Provider actor reference for observed content. |
ownerAuthored | boolean | no | |
thread | object | no | Parent/root identifiers for threaded contexts. |
engagement | object | no | Provider-reported engagement counts. |
publishedAt | string (date-time) | no | Provider publish timestamp as an ISO-8601 string. |
updatedAt | string (date-time) | no | Provider update timestamp as an ISO-8601 string. |
providerRaw | unknown | no | Optional provider-native payload included only for transient delivery/debug use. |
contentType | "linkedin.feed.comments" | yes |
Envelope JSON Schema
{
"additionalProperties": false,
"type": "object",
"properties": {
"id": {
"description": "Stable dedupe id for this logical event (`evt_…`).",
"pattern": "^evt_[0-9a-f]{40}$",
"type": "string"
},
"topic": {
"const": "content.linkedin.feed.comments.deleted",
"type": "string"
},
"time": {
"description": "When the event occurred (RFC 3339).",
"format": "date-time",
"type": "string"
},
"metadata": {
"additionalProperties": false,
"type": "object",
"properties": {
"organizationId": {
"minLength": 1,
"type": "string"
},
"mode": {
"description": "Which mode produced the event. Test-mode events come from fixture providers and never reach live infrastructure.",
"anyOf": [
{
"const": "live",
"type": "string"
},
{
"const": "test",
"type": "string"
}
]
},
"connectedProfileId": {
"minLength": 1,
"description": "The Connected Profile that observed the content.",
"type": "string"
},
"providerProfileExternalId": {
"minLength": 1,
"description": "The observing profile's provider-namespace id. Content the profile authored has `data.author.id` equal to this.",
"type": "string"
},
"providerId": {
"minLength": 1,
"type": "string"
},
"contentType": {
"minLength": 1,
"description": "The canonical `{provider}.{surface}.{resource}` identifier.",
"type": "string"
}
},
"required": [
"organizationId",
"mode",
"connectedProfileId",
"providerProfileExternalId",
"providerId",
"contentType"
]
},
"data": {
"additionalProperties": false,
"type": "object",
"properties": {
"externalId": {
"description": "Provider-owned content identifier.",
"minLength": 1,
"type": "string"
},
"commentId": {
"minLength": 1,
"type": "string"
},
"threadUrn": {
"minLength": 1,
"type": "string"
},
"mediaExternalId": {
"minLength": 1,
"type": "string"
},
"text": {
"description": "Caption/body text for content.",
"type": "string"
},
"mentions": {
"type": "array",
"items": {
"additionalProperties": false,
"type": "object",
"properties": {
"start": {
"minimum": 0,
"type": "integer"
},
"length": {
"minimum": 0,
"type": "integer"
},
"urn": {
"minLength": 1,
"type": "string"
}
},
"required": [
"start",
"length",
"urn"
]
}
},
"media": {
"type": "array",
"items": {
"additionalProperties": false,
"description": "A staged or remote media asset. Source constraints are enforced by operation schemas.",
"type": "object",
"properties": {
"mediaId": {
"minLength": 1,
"type": "string"
},
"sourceUrl": {
"minLength": 1,
"type": "string"
},
"contentType": {
"minLength": 1,
"type": "string"
},
"filename": {
"minLength": 1,
"type": "string"
},
"checksum": {
"pattern": "^sha256:[0-9a-fA-F]{64}$",
"type": "string"
},
"altText": {
"minLength": 1,
"type": "string"
}
}
}
},
"author": {
"additionalProperties": false,
"description": "Provider actor reference for observed content.",
"type": "object",
"properties": {
"id": {
"minLength": 1,
"type": "string"
},
"displayName": {
"minLength": 1,
"type": "string"
},
"username": {
"minLength": 1,
"type": "string"
}
},
"required": [
"id"
]
},
"ownerAuthored": {
"type": "boolean"
},
"thread": {
"additionalProperties": false,
"description": "Parent/root identifiers for threaded contexts.",
"type": "object",
"properties": {
"parentId": {
"minLength": 1,
"type": "string"
},
"rootId": {
"minLength": 1,
"type": "string"
},
"threadId": {
"minLength": 1,
"type": "string"
}
}
},
"engagement": {
"additionalProperties": false,
"description": "Provider-reported engagement counts.",
"type": "object",
"properties": {
"likes": {
"minimum": 0,
"description": "Likes, favourites, or reactions on the content.",
"type": "number"
},
"comments": {
"minimum": 0,
"description": "Comments or replies on the content.",
"type": "number"
}
}
},
"publishedAt": {
"format": "date-time",
"description": "Provider publish timestamp as an ISO-8601 string.",
"type": "string"
},
"updatedAt": {
"format": "date-time",
"description": "Provider update timestamp as an ISO-8601 string.",
"type": "string"
},
"providerRaw": {
"description": "Optional provider-native payload included only for transient delivery/debug use."
},
"contentType": {
"const": "linkedin.feed.comments",
"type": "string"
}
},
"required": [
"externalId",
"commentId",
"threadUrn",
"contentType"
]
}
},
"required": [
"id",
"topic",
"time",
"metadata",
"data"
]
}content.linkedin.feed.comments.updated
Normalized updated event for linkedin.feed.comments content.
Content type linkedin.feed.comments. data is the content type's own schema — the same shape content reads return for it.
metadata
| Field | Type | Required | Description |
|---|---|---|---|
organizationId | string | yes | |
mode | "live" | "test" | yes | Which mode produced the event. Test-mode events come from fixture providers and never reach live infrastructure. |
connectedProfileId | string | yes | The Connected Profile that observed the content. |
providerProfileExternalId | string | yes | The observing profile's provider-namespace id. Content the profile authored has data.author.id equal to this. |
providerId | string | yes | |
contentType | string | yes | The canonical {provider}.{surface}.{resource} identifier. |
data
| Field | Type | Required | Description |
|---|---|---|---|
externalId | string | yes | Provider-owned content identifier. |
commentId | string | yes | |
threadUrn | string | yes | |
mediaExternalId | string | no | |
text | string | no | Caption/body text for content. |
mentions | object[] | no | |
media | object[] | no | |
author | object | no | Provider actor reference for observed content. |
ownerAuthored | boolean | no | |
thread | object | no | Parent/root identifiers for threaded contexts. |
engagement | object | no | Provider-reported engagement counts. |
publishedAt | string (date-time) | no | Provider publish timestamp as an ISO-8601 string. |
updatedAt | string (date-time) | no | Provider update timestamp as an ISO-8601 string. |
providerRaw | unknown | no | Optional provider-native payload included only for transient delivery/debug use. |
contentType | "linkedin.feed.comments" | yes |
Envelope JSON Schema
{
"additionalProperties": false,
"type": "object",
"properties": {
"id": {
"description": "Stable dedupe id for this logical event (`evt_…`).",
"pattern": "^evt_[0-9a-f]{40}$",
"type": "string"
},
"topic": {
"const": "content.linkedin.feed.comments.updated",
"type": "string"
},
"time": {
"description": "When the event occurred (RFC 3339).",
"format": "date-time",
"type": "string"
},
"metadata": {
"additionalProperties": false,
"type": "object",
"properties": {
"organizationId": {
"minLength": 1,
"type": "string"
},
"mode": {
"description": "Which mode produced the event. Test-mode events come from fixture providers and never reach live infrastructure.",
"anyOf": [
{
"const": "live",
"type": "string"
},
{
"const": "test",
"type": "string"
}
]
},
"connectedProfileId": {
"minLength": 1,
"description": "The Connected Profile that observed the content.",
"type": "string"
},
"providerProfileExternalId": {
"minLength": 1,
"description": "The observing profile's provider-namespace id. Content the profile authored has `data.author.id` equal to this.",
"type": "string"
},
"providerId": {
"minLength": 1,
"type": "string"
},
"contentType": {
"minLength": 1,
"description": "The canonical `{provider}.{surface}.{resource}` identifier.",
"type": "string"
}
},
"required": [
"organizationId",
"mode",
"connectedProfileId",
"providerProfileExternalId",
"providerId",
"contentType"
]
},
"data": {
"additionalProperties": false,
"type": "object",
"properties": {
"externalId": {
"description": "Provider-owned content identifier.",
"minLength": 1,
"type": "string"
},
"commentId": {
"minLength": 1,
"type": "string"
},
"threadUrn": {
"minLength": 1,
"type": "string"
},
"mediaExternalId": {
"minLength": 1,
"type": "string"
},
"text": {
"description": "Caption/body text for content.",
"type": "string"
},
"mentions": {
"type": "array",
"items": {
"additionalProperties": false,
"type": "object",
"properties": {
"start": {
"minimum": 0,
"type": "integer"
},
"length": {
"minimum": 0,
"type": "integer"
},
"urn": {
"minLength": 1,
"type": "string"
}
},
"required": [
"start",
"length",
"urn"
]
}
},
"media": {
"type": "array",
"items": {
"additionalProperties": false,
"description": "A staged or remote media asset. Source constraints are enforced by operation schemas.",
"type": "object",
"properties": {
"mediaId": {
"minLength": 1,
"type": "string"
},
"sourceUrl": {
"minLength": 1,
"type": "string"
},
"contentType": {
"minLength": 1,
"type": "string"
},
"filename": {
"minLength": 1,
"type": "string"
},
"checksum": {
"pattern": "^sha256:[0-9a-fA-F]{64}$",
"type": "string"
},
"altText": {
"minLength": 1,
"type": "string"
}
}
}
},
"author": {
"additionalProperties": false,
"description": "Provider actor reference for observed content.",
"type": "object",
"properties": {
"id": {
"minLength": 1,
"type": "string"
},
"displayName": {
"minLength": 1,
"type": "string"
},
"username": {
"minLength": 1,
"type": "string"
}
},
"required": [
"id"
]
},
"ownerAuthored": {
"type": "boolean"
},
"thread": {
"additionalProperties": false,
"description": "Parent/root identifiers for threaded contexts.",
"type": "object",
"properties": {
"parentId": {
"minLength": 1,
"type": "string"
},
"rootId": {
"minLength": 1,
"type": "string"
},
"threadId": {
"minLength": 1,
"type": "string"
}
}
},
"engagement": {
"additionalProperties": false,
"description": "Provider-reported engagement counts.",
"type": "object",
"properties": {
"likes": {
"minimum": 0,
"description": "Likes, favourites, or reactions on the content.",
"type": "number"
},
"comments": {
"minimum": 0,
"description": "Comments or replies on the content.",
"type": "number"
}
}
},
"publishedAt": {
"format": "date-time",
"description": "Provider publish timestamp as an ISO-8601 string.",
"type": "string"
},
"updatedAt": {
"format": "date-time",
"description": "Provider update timestamp as an ISO-8601 string.",
"type": "string"
},
"providerRaw": {
"description": "Optional provider-native payload included only for transient delivery/debug use."
},
"contentType": {
"const": "linkedin.feed.comments",
"type": "string"
}
},
"required": [
"externalId",
"commentId",
"threadUrn",
"contentType"
]
}
},
"required": [
"id",
"topic",
"time",
"metadata",
"data"
]
}content.linkedin.feed.items.created
Normalized created event for linkedin.feed.items content.
Content type linkedin.feed.items. data is the content type's own schema — the same shape content reads return for it.
metadata
| Field | Type | Required | Description |
|---|---|---|---|
organizationId | string | yes | |
mode | "live" | "test" | yes | Which mode produced the event. Test-mode events come from fixture providers and never reach live infrastructure. |
connectedProfileId | string | yes | The Connected Profile that observed the content. |
providerProfileExternalId | string | yes | The observing profile's provider-namespace id. Content the profile authored has data.author.id equal to this. |
providerId | string | yes | |
contentType | string | yes | The canonical {provider}.{surface}.{resource} identifier. |
data
| Field | Type | Required | Description |
|---|---|---|---|
externalId | string | yes | Provider-owned content identifier. |
organizationExternalId | string | yes | |
text | string | no | Caption/body text for content. |
mentions | object[] | no | |
hashtags | string[] | no | |
content | object | yes | |
visibility | string | no | PUBLIC, CONNECTIONS, LOGGED_IN or CONTAINER. Only PUBLIC posts raise LinkedIn's comment notifications. |
lifecycleState | string | no | PUBLISHED, or PUBLISH_REQUESTED while LinkedIn processes it, PUBLISH_FAILED, DRAFT. |
reshareDisabled | boolean | no | |
permalink | string | no | |
publishedAt | string (date-time) | no | Provider publish timestamp as an ISO-8601 string. |
updatedAt | string (date-time) | no | Provider update timestamp as an ISO-8601 string. |
providerRaw | unknown | no | Optional provider-native payload included only for transient delivery/debug use. |
contentType | "linkedin.feed.items" | yes |
Envelope JSON Schema
{
"additionalProperties": false,
"type": "object",
"properties": {
"id": {
"description": "Stable dedupe id for this logical event (`evt_…`).",
"pattern": "^evt_[0-9a-f]{40}$",
"type": "string"
},
"topic": {
"const": "content.linkedin.feed.items.created",
"type": "string"
},
"time": {
"description": "When the event occurred (RFC 3339).",
"format": "date-time",
"type": "string"
},
"metadata": {
"additionalProperties": false,
"type": "object",
"properties": {
"organizationId": {
"minLength": 1,
"type": "string"
},
"mode": {
"description": "Which mode produced the event. Test-mode events come from fixture providers and never reach live infrastructure.",
"anyOf": [
{
"const": "live",
"type": "string"
},
{
"const": "test",
"type": "string"
}
]
},
"connectedProfileId": {
"minLength": 1,
"description": "The Connected Profile that observed the content.",
"type": "string"
},
"providerProfileExternalId": {
"minLength": 1,
"description": "The observing profile's provider-namespace id. Content the profile authored has `data.author.id` equal to this.",
"type": "string"
},
"providerId": {
"minLength": 1,
"type": "string"
},
"contentType": {
"minLength": 1,
"description": "The canonical `{provider}.{surface}.{resource}` identifier.",
"type": "string"
}
},
"required": [
"organizationId",
"mode",
"connectedProfileId",
"providerProfileExternalId",
"providerId",
"contentType"
]
},
"data": {
"additionalProperties": false,
"type": "object",
"properties": {
"externalId": {
"description": "Provider-owned content identifier.",
"minLength": 1,
"type": "string"
},
"organizationExternalId": {
"minLength": 1,
"type": "string"
},
"text": {
"description": "Caption/body text for content.",
"type": "string"
},
"mentions": {
"type": "array",
"items": {
"additionalProperties": false,
"type": "object",
"properties": {
"name": {
"type": "string"
},
"urn": {
"minLength": 1,
"type": "string"
}
},
"required": [
"name",
"urn"
]
}
},
"hashtags": {
"type": "array",
"items": {
"minLength": 1,
"type": "string"
}
},
"content": {
"additionalProperties": false,
"type": "object",
"properties": {
"kind": {
"description": "What the post carries besides its text. `image`, `video` and `document` name a single uploaded asset by its LinkedIn URN.",
"anyOf": [
{
"const": "text",
"type": "string"
},
{
"const": "image",
"type": "string"
},
{
"const": "video",
"type": "string"
},
{
"const": "document",
"type": "string"
},
{
"const": "article",
"type": "string"
},
{
"const": "multi_image",
"type": "string"
},
{
"const": "poll",
"type": "string"
},
{
"const": "reshare",
"type": "string"
},
{
"const": "other",
"type": "string"
}
]
},
"mediaUrn": {
"minLength": 1,
"type": "string"
},
"imageUrns": {
"type": "array",
"items": {
"minLength": 1,
"type": "string"
}
},
"url": {
"minLength": 1,
"type": "string"
},
"title": {
"type": "string"
},
"description": {
"type": "string"
},
"altText": {
"type": "string"
},
"resharedPostUrn": {
"minLength": 1,
"type": "string"
}
},
"required": [
"kind"
]
},
"visibility": {
"description": "`PUBLIC`, `CONNECTIONS`, `LOGGED_IN` or `CONTAINER`. Only `PUBLIC` posts raise LinkedIn's comment notifications.",
"type": "string"
},
"lifecycleState": {
"description": "`PUBLISHED`, or `PUBLISH_REQUESTED` while LinkedIn processes it, `PUBLISH_FAILED`, `DRAFT`.",
"type": "string"
},
"reshareDisabled": {
"type": "boolean"
},
"permalink": {
"minLength": 1,
"type": "string"
},
"publishedAt": {
"format": "date-time",
"description": "Provider publish timestamp as an ISO-8601 string.",
"type": "string"
},
"updatedAt": {
"format": "date-time",
"description": "Provider update timestamp as an ISO-8601 string.",
"type": "string"
},
"providerRaw": {
"description": "Optional provider-native payload included only for transient delivery/debug use."
},
"contentType": {
"const": "linkedin.feed.items",
"type": "string"
}
},
"required": [
"externalId",
"organizationExternalId",
"content",
"contentType"
]
}
},
"required": [
"id",
"topic",
"time",
"metadata",
"data"
]
}content.linkedin.feed.mentions.created
Normalized created event for linkedin.feed.mentions content.
Content type linkedin.feed.mentions. data is the content type's own schema — the same shape content reads return for it.
metadata
| Field | Type | Required | Description |
|---|---|---|---|
organizationId | string | yes | |
mode | "live" | "test" | yes | Which mode produced the event. Test-mode events come from fixture providers and never reach live infrastructure. |
connectedProfileId | string | yes | The Connected Profile that observed the content. |
providerProfileExternalId | string | yes | The observing profile's provider-namespace id. Content the profile authored has data.author.id equal to this. |
providerId | string | yes | |
contentType | string | yes | The canonical {provider}.{surface}.{resource} identifier. |
data
| Field | Type | Required | Description |
|---|---|---|---|
externalId | string | yes | Provider-owned content identifier. |
mentionedIn | "post" | "comment" | yes | |
organizationExternalId | string | yes | |
activityUrn | string | no | |
text | string | no | Caption/body text for content. |
author | object | no | Provider actor reference for observed content. |
permalink | string | no | |
publishedAt | string (date-time) | no | Provider publish timestamp as an ISO-8601 string. |
contentType | "linkedin.feed.mentions" | yes |
Envelope JSON Schema
{
"additionalProperties": false,
"type": "object",
"properties": {
"id": {
"description": "Stable dedupe id for this logical event (`evt_…`).",
"pattern": "^evt_[0-9a-f]{40}$",
"type": "string"
},
"topic": {
"const": "content.linkedin.feed.mentions.created",
"type": "string"
},
"time": {
"description": "When the event occurred (RFC 3339).",
"format": "date-time",
"type": "string"
},
"metadata": {
"additionalProperties": false,
"type": "object",
"properties": {
"organizationId": {
"minLength": 1,
"type": "string"
},
"mode": {
"description": "Which mode produced the event. Test-mode events come from fixture providers and never reach live infrastructure.",
"anyOf": [
{
"const": "live",
"type": "string"
},
{
"const": "test",
"type": "string"
}
]
},
"connectedProfileId": {
"minLength": 1,
"description": "The Connected Profile that observed the content.",
"type": "string"
},
"providerProfileExternalId": {
"minLength": 1,
"description": "The observing profile's provider-namespace id. Content the profile authored has `data.author.id` equal to this.",
"type": "string"
},
"providerId": {
"minLength": 1,
"type": "string"
},
"contentType": {
"minLength": 1,
"description": "The canonical `{provider}.{surface}.{resource}` identifier.",
"type": "string"
}
},
"required": [
"organizationId",
"mode",
"connectedProfileId",
"providerProfileExternalId",
"providerId",
"contentType"
]
},
"data": {
"additionalProperties": false,
"type": "object",
"properties": {
"externalId": {
"description": "Provider-owned content identifier.",
"minLength": 1,
"type": "string"
},
"mentionedIn": {
"anyOf": [
{
"const": "post",
"type": "string"
},
{
"const": "comment",
"type": "string"
}
]
},
"organizationExternalId": {
"minLength": 1,
"type": "string"
},
"activityUrn": {
"minLength": 1,
"type": "string"
},
"text": {
"description": "Caption/body text for content.",
"type": "string"
},
"author": {
"additionalProperties": false,
"description": "Provider actor reference for observed content.",
"type": "object",
"properties": {
"id": {
"minLength": 1,
"type": "string"
},
"displayName": {
"minLength": 1,
"type": "string"
},
"username": {
"minLength": 1,
"type": "string"
}
},
"required": [
"id"
]
},
"permalink": {
"minLength": 1,
"type": "string"
},
"publishedAt": {
"format": "date-time",
"description": "Provider publish timestamp as an ISO-8601 string.",
"type": "string"
},
"contentType": {
"const": "linkedin.feed.mentions",
"type": "string"
}
},
"required": [
"externalId",
"mentionedIn",
"organizationExternalId",
"contentType"
]
}
},
"required": [
"id",
"topic",
"time",
"metadata",
"data"
]
}content.tiktok.dm.messages.created
Normalized created event for tiktok.dm.messages content.
Content type tiktok.dm.messages. data is the content type's own schema — the same shape content reads return for it.
metadata
| Field | Type | Required | Description |
|---|---|---|---|
organizationId | string | yes | |
mode | "live" | "test" | yes | Which mode produced the event. Test-mode events come from fixture providers and never reach live infrastructure. |
connectedProfileId | string | yes | The Connected Profile that observed the content. |
providerProfileExternalId | string | yes | The observing profile's provider-namespace id. Content the profile authored has data.author.id equal to this. |
providerId | string | yes | |
contentType | string | yes | The canonical {provider}.{surface}.{resource} identifier. |
data
| Field | Type | Required | Description |
|---|---|---|---|
externalId | string | yes | Provider-owned content identifier. |
threadExternalId | string | yes | |
kind | "text" | "image" | "video" | "sharePost" | "emoji" | "sticker" | "template" | "other" | yes | |
text | string | no | Caption/body text for content. |
author | object | no | Provider actor reference for observed content. |
recipient | object | no | Provider actor reference for observed content. |
thread | object | no | Parent/root identifiers for threaded contexts. |
attachments | object[] | no | |
source | string | no | |
autoMessageType | "welcomeMessage" | "suggestedQuestion" | "autoReply" | no | |
publishedAt | string (date-time) | no | Provider publish timestamp as an ISO-8601 string. |
providerRaw | unknown | no | Optional provider-native payload included only for transient delivery/debug use. |
contentType | "tiktok.dm.messages" | yes |
Envelope JSON Schema
{
"additionalProperties": false,
"type": "object",
"properties": {
"id": {
"description": "Stable dedupe id for this logical event (`evt_…`).",
"pattern": "^evt_[0-9a-f]{40}$",
"type": "string"
},
"topic": {
"const": "content.tiktok.dm.messages.created",
"type": "string"
},
"time": {
"description": "When the event occurred (RFC 3339).",
"format": "date-time",
"type": "string"
},
"metadata": {
"additionalProperties": false,
"type": "object",
"properties": {
"organizationId": {
"minLength": 1,
"type": "string"
},
"mode": {
"description": "Which mode produced the event. Test-mode events come from fixture providers and never reach live infrastructure.",
"anyOf": [
{
"const": "live",
"type": "string"
},
{
"const": "test",
"type": "string"
}
]
},
"connectedProfileId": {
"minLength": 1,
"description": "The Connected Profile that observed the content.",
"type": "string"
},
"providerProfileExternalId": {
"minLength": 1,
"description": "The observing profile's provider-namespace id. Content the profile authored has `data.author.id` equal to this.",
"type": "string"
},
"providerId": {
"minLength": 1,
"type": "string"
},
"contentType": {
"minLength": 1,
"description": "The canonical `{provider}.{surface}.{resource}` identifier.",
"type": "string"
}
},
"required": [
"organizationId",
"mode",
"connectedProfileId",
"providerProfileExternalId",
"providerId",
"contentType"
]
},
"data": {
"additionalProperties": false,
"type": "object",
"properties": {
"externalId": {
"description": "Provider-owned content identifier.",
"minLength": 1,
"type": "string"
},
"threadExternalId": {
"minLength": 1,
"type": "string"
},
"kind": {
"anyOf": [
{
"const": "text",
"type": "string"
},
{
"const": "image",
"type": "string"
},
{
"const": "video",
"type": "string"
},
{
"const": "sharePost",
"type": "string"
},
{
"const": "emoji",
"type": "string"
},
{
"const": "sticker",
"type": "string"
},
{
"const": "template",
"type": "string"
},
{
"const": "other",
"type": "string"
}
]
},
"text": {
"description": "Caption/body text for content.",
"type": "string"
},
"author": {
"additionalProperties": false,
"description": "Provider actor reference for observed content.",
"type": "object",
"properties": {
"id": {
"minLength": 1,
"type": "string"
},
"displayName": {
"minLength": 1,
"type": "string"
},
"username": {
"minLength": 1,
"type": "string"
}
},
"required": [
"id"
]
},
"recipient": {
"additionalProperties": false,
"description": "Provider actor reference for observed content.",
"type": "object",
"properties": {
"id": {
"minLength": 1,
"type": "string"
},
"displayName": {
"minLength": 1,
"type": "string"
},
"username": {
"minLength": 1,
"type": "string"
}
},
"required": [
"id"
]
},
"thread": {
"additionalProperties": false,
"description": "Parent/root identifiers for threaded contexts.",
"type": "object",
"properties": {
"parentId": {
"minLength": 1,
"type": "string"
},
"rootId": {
"minLength": 1,
"type": "string"
},
"threadId": {
"minLength": 1,
"type": "string"
}
}
},
"attachments": {
"type": "array",
"items": {
"additionalProperties": false,
"type": "object",
"properties": {
"kind": {
"anyOf": [
{
"const": "text",
"type": "string"
},
{
"const": "image",
"type": "string"
},
{
"const": "video",
"type": "string"
},
{
"const": "sharePost",
"type": "string"
},
{
"const": "emoji",
"type": "string"
},
{
"const": "sticker",
"type": "string"
},
{
"const": "template",
"type": "string"
},
{
"const": "other",
"type": "string"
}
]
},
"externalId": {
"minLength": 1,
"type": "string"
},
"sourceUrl": {
"minLength": 1,
"type": "string"
}
},
"required": [
"kind"
]
}
},
"source": {
"minLength": 1,
"type": "string"
},
"autoMessageType": {
"anyOf": [
{
"const": "welcomeMessage",
"type": "string"
},
{
"const": "suggestedQuestion",
"type": "string"
},
{
"const": "autoReply",
"type": "string"
}
]
},
"publishedAt": {
"format": "date-time",
"description": "Provider publish timestamp as an ISO-8601 string.",
"type": "string"
},
"providerRaw": {
"description": "Optional provider-native payload included only for transient delivery/debug use."
},
"contentType": {
"const": "tiktok.dm.messages",
"type": "string"
}
},
"required": [
"externalId",
"threadExternalId",
"kind",
"contentType"
]
}
},
"required": [
"id",
"topic",
"time",
"metadata",
"data"
]
}content.tiktok.dm.threads.updated
Normalized updated event for tiktok.dm.threads content.
Content type tiktok.dm.threads. data is the content type's own schema — the same shape content reads return for it.
metadata
| Field | Type | Required | Description |
|---|---|---|---|
organizationId | string | yes | |
mode | "live" | "test" | yes | Which mode produced the event. Test-mode events come from fixture providers and never reach live infrastructure. |
connectedProfileId | string | yes | The Connected Profile that observed the content. |
providerProfileExternalId | string | yes | The observing profile's provider-namespace id. Content the profile authored has data.author.id equal to this. |
providerId | string | yes | |
contentType | string | yes | The canonical {provider}.{surface}.{resource} identifier. |
data
| Field | Type | Required | Description |
|---|---|---|---|
externalId | string | yes | Provider-owned content identifier. |
variant | "stranger" | "single" | no | |
updatedAt | string (date-time) | no | Provider update timestamp as an ISO-8601 string. |
referral | object | no | |
lastReadAt | string (date-time) | no | Provider update timestamp as an ISO-8601 string. |
providerRaw | unknown | no | Optional provider-native payload included only for transient delivery/debug use. |
contentType | "tiktok.dm.threads" | yes |
Envelope JSON Schema
{
"additionalProperties": false,
"type": "object",
"properties": {
"id": {
"description": "Stable dedupe id for this logical event (`evt_…`).",
"pattern": "^evt_[0-9a-f]{40}$",
"type": "string"
},
"topic": {
"const": "content.tiktok.dm.threads.updated",
"type": "string"
},
"time": {
"description": "When the event occurred (RFC 3339).",
"format": "date-time",
"type": "string"
},
"metadata": {
"additionalProperties": false,
"type": "object",
"properties": {
"organizationId": {
"minLength": 1,
"type": "string"
},
"mode": {
"description": "Which mode produced the event. Test-mode events come from fixture providers and never reach live infrastructure.",
"anyOf": [
{
"const": "live",
"type": "string"
},
{
"const": "test",
"type": "string"
}
]
},
"connectedProfileId": {
"minLength": 1,
"description": "The Connected Profile that observed the content.",
"type": "string"
},
"providerProfileExternalId": {
"minLength": 1,
"description": "The observing profile's provider-namespace id. Content the profile authored has `data.author.id` equal to this.",
"type": "string"
},
"providerId": {
"minLength": 1,
"type": "string"
},
"contentType": {
"minLength": 1,
"description": "The canonical `{provider}.{surface}.{resource}` identifier.",
"type": "string"
}
},
"required": [
"organizationId",
"mode",
"connectedProfileId",
"providerProfileExternalId",
"providerId",
"contentType"
]
},
"data": {
"additionalProperties": false,
"type": "object",
"properties": {
"externalId": {
"description": "Provider-owned content identifier.",
"minLength": 1,
"type": "string"
},
"variant": {
"anyOf": [
{
"const": "stranger",
"type": "string"
},
{
"const": "single",
"type": "string"
}
]
},
"updatedAt": {
"format": "date-time",
"description": "Provider update timestamp as an ISO-8601 string.",
"type": "string"
},
"referral": {
"additionalProperties": false,
"type": "object",
"properties": {
"source": {
"anyOf": [
{
"const": "ad",
"type": "string"
},
{
"const": "shortLink",
"type": "string"
}
]
},
"ads": {
"type": "array",
"items": {
"additionalProperties": false,
"type": "object",
"properties": {
"advertiserId": {
"minLength": 1,
"type": "string"
},
"adId": {
"minLength": 1,
"type": "string"
},
"adName": {
"minLength": 1,
"type": "string"
},
"embedUrl": {
"minLength": 1,
"type": "string"
},
"materialId": {
"minLength": 1,
"type": "string"
},
"referredAt": {
"format": "date-time",
"description": "Provider update timestamp as an ISO-8601 string.",
"type": "string"
}
}
}
},
"shortLinks": {
"type": "array",
"items": {
"additionalProperties": false,
"type": "object",
"properties": {
"ref": {
"minLength": 1,
"type": "string"
},
"prefilledMessage": {
"minLength": 1,
"type": "string"
},
"prefilledMessageAuditStatus": {
"anyOf": [
{
"const": "PASS",
"type": "string"
},
{
"const": "REJECT",
"type": "string"
}
]
}
}
}
}
}
},
"lastReadAt": {
"format": "date-time",
"description": "Provider update timestamp as an ISO-8601 string.",
"type": "string"
},
"providerRaw": {
"description": "Optional provider-native payload included only for transient delivery/debug use."
},
"contentType": {
"const": "tiktok.dm.threads",
"type": "string"
}
},
"required": [
"externalId",
"contentType"
]
}
},
"required": [
"id",
"topic",
"time",
"metadata",
"data"
]
}content.tiktok.posts.comments.created
Normalized created event for tiktok.posts.comments content.
Content type tiktok.posts.comments. data is the content type's own schema — the same shape content reads return for it.
metadata
| Field | Type | Required | Description |
|---|---|---|---|
organizationId | string | yes | |
mode | "live" | "test" | yes | Which mode produced the event. Test-mode events come from fixture providers and never reach live infrastructure. |
connectedProfileId | string | yes | The Connected Profile that observed the content. |
providerProfileExternalId | string | yes | The observing profile's provider-namespace id. Content the profile authored has data.author.id equal to this. |
providerId | string | yes | |
contentType | string | yes | The canonical {provider}.{surface}.{resource} identifier. |
data
| Field | Type | Required | Description |
|---|---|---|---|
externalId | string | yes | Provider-owned content identifier. |
mediaExternalId | string | yes | |
text | string | no | Caption/body text for content. |
media | object[] | no | |
author | object | no | Provider actor reference for observed content. |
thread | object | no | Parent/root identifiers for threaded contexts. |
hidden | boolean | no | |
pinned | boolean | no | |
liked | boolean | no | |
ownerAuthored | boolean | no | |
engagement | object | no | Provider-reported engagement counts. |
publishedAt | string (date-time) | no | Provider publish timestamp as an ISO-8601 string. |
providerRaw | unknown | no | Optional provider-native payload included only for transient delivery/debug use. |
contentType | "tiktok.posts.comments" | yes |
Envelope JSON Schema
{
"additionalProperties": false,
"type": "object",
"properties": {
"id": {
"description": "Stable dedupe id for this logical event (`evt_…`).",
"pattern": "^evt_[0-9a-f]{40}$",
"type": "string"
},
"topic": {
"const": "content.tiktok.posts.comments.created",
"type": "string"
},
"time": {
"description": "When the event occurred (RFC 3339).",
"format": "date-time",
"type": "string"
},
"metadata": {
"additionalProperties": false,
"type": "object",
"properties": {
"organizationId": {
"minLength": 1,
"type": "string"
},
"mode": {
"description": "Which mode produced the event. Test-mode events come from fixture providers and never reach live infrastructure.",
"anyOf": [
{
"const": "live",
"type": "string"
},
{
"const": "test",
"type": "string"
}
]
},
"connectedProfileId": {
"minLength": 1,
"description": "The Connected Profile that observed the content.",
"type": "string"
},
"providerProfileExternalId": {
"minLength": 1,
"description": "The observing profile's provider-namespace id. Content the profile authored has `data.author.id` equal to this.",
"type": "string"
},
"providerId": {
"minLength": 1,
"type": "string"
},
"contentType": {
"minLength": 1,
"description": "The canonical `{provider}.{surface}.{resource}` identifier.",
"type": "string"
}
},
"required": [
"organizationId",
"mode",
"connectedProfileId",
"providerProfileExternalId",
"providerId",
"contentType"
]
},
"data": {
"additionalProperties": false,
"type": "object",
"properties": {
"externalId": {
"description": "Provider-owned content identifier.",
"minLength": 1,
"type": "string"
},
"mediaExternalId": {
"minLength": 1,
"type": "string"
},
"text": {
"description": "Caption/body text for content.",
"type": "string"
},
"media": {
"type": "array",
"items": {
"additionalProperties": false,
"description": "A staged or remote media asset. Source constraints are enforced by operation schemas.",
"type": "object",
"properties": {
"mediaId": {
"minLength": 1,
"type": "string"
},
"sourceUrl": {
"minLength": 1,
"type": "string"
},
"contentType": {
"minLength": 1,
"type": "string"
},
"filename": {
"minLength": 1,
"type": "string"
},
"checksum": {
"pattern": "^sha256:[0-9a-fA-F]{64}$",
"type": "string"
},
"altText": {
"minLength": 1,
"type": "string"
}
}
}
},
"author": {
"additionalProperties": false,
"description": "Provider actor reference for observed content.",
"type": "object",
"properties": {
"id": {
"minLength": 1,
"type": "string"
},
"displayName": {
"minLength": 1,
"type": "string"
},
"username": {
"minLength": 1,
"type": "string"
}
},
"required": [
"id"
]
},
"thread": {
"additionalProperties": false,
"description": "Parent/root identifiers for threaded contexts.",
"type": "object",
"properties": {
"parentId": {
"minLength": 1,
"type": "string"
},
"rootId": {
"minLength": 1,
"type": "string"
},
"threadId": {
"minLength": 1,
"type": "string"
}
}
},
"hidden": {
"type": "boolean"
},
"pinned": {
"type": "boolean"
},
"liked": {
"type": "boolean"
},
"ownerAuthored": {
"type": "boolean"
},
"engagement": {
"additionalProperties": false,
"description": "Provider-reported engagement counts.",
"type": "object",
"properties": {
"likes": {
"minimum": 0,
"description": "Likes, favourites, or reactions on the content.",
"type": "number"
},
"comments": {
"minimum": 0,
"description": "Comments or replies on the content.",
"type": "number"
},
"shares": {
"minimum": 0,
"description": "Times the content was shared or reposted.",
"type": "number"
},
"views": {
"minimum": 0,
"description": "Times the content was viewed.",
"type": "number"
}
}
},
"publishedAt": {
"format": "date-time",
"description": "Provider publish timestamp as an ISO-8601 string.",
"type": "string"
},
"providerRaw": {
"description": "Optional provider-native payload included only for transient delivery/debug use."
},
"contentType": {
"const": "tiktok.posts.comments",
"type": "string"
}
},
"required": [
"externalId",
"mediaExternalId",
"contentType"
]
}
},
"required": [
"id",
"topic",
"time",
"metadata",
"data"
]
}content.tiktok.posts.comments.deleted
Normalized deleted event for tiktok.posts.comments content.
Content type tiktok.posts.comments. data is the content type's own schema — the same shape content reads return for it.
metadata
| Field | Type | Required | Description |
|---|---|---|---|
organizationId | string | yes | |
mode | "live" | "test" | yes | Which mode produced the event. Test-mode events come from fixture providers and never reach live infrastructure. |
connectedProfileId | string | yes | The Connected Profile that observed the content. |
providerProfileExternalId | string | yes | The observing profile's provider-namespace id. Content the profile authored has data.author.id equal to this. |
providerId | string | yes | |
contentType | string | yes | The canonical {provider}.{surface}.{resource} identifier. |
data
| Field | Type | Required | Description |
|---|---|---|---|
externalId | string | yes | Provider-owned content identifier. |
mediaExternalId | string | yes | |
text | string | no | Caption/body text for content. |
media | object[] | no | |
author | object | no | Provider actor reference for observed content. |
thread | object | no | Parent/root identifiers for threaded contexts. |
hidden | boolean | no | |
pinned | boolean | no | |
liked | boolean | no | |
ownerAuthored | boolean | no | |
engagement | object | no | Provider-reported engagement counts. |
publishedAt | string (date-time) | no | Provider publish timestamp as an ISO-8601 string. |
providerRaw | unknown | no | Optional provider-native payload included only for transient delivery/debug use. |
contentType | "tiktok.posts.comments" | yes |
Envelope JSON Schema
{
"additionalProperties": false,
"type": "object",
"properties": {
"id": {
"description": "Stable dedupe id for this logical event (`evt_…`).",
"pattern": "^evt_[0-9a-f]{40}$",
"type": "string"
},
"topic": {
"const": "content.tiktok.posts.comments.deleted",
"type": "string"
},
"time": {
"description": "When the event occurred (RFC 3339).",
"format": "date-time",
"type": "string"
},
"metadata": {
"additionalProperties": false,
"type": "object",
"properties": {
"organizationId": {
"minLength": 1,
"type": "string"
},
"mode": {
"description": "Which mode produced the event. Test-mode events come from fixture providers and never reach live infrastructure.",
"anyOf": [
{
"const": "live",
"type": "string"
},
{
"const": "test",
"type": "string"
}
]
},
"connectedProfileId": {
"minLength": 1,
"description": "The Connected Profile that observed the content.",
"type": "string"
},
"providerProfileExternalId": {
"minLength": 1,
"description": "The observing profile's provider-namespace id. Content the profile authored has `data.author.id` equal to this.",
"type": "string"
},
"providerId": {
"minLength": 1,
"type": "string"
},
"contentType": {
"minLength": 1,
"description": "The canonical `{provider}.{surface}.{resource}` identifier.",
"type": "string"
}
},
"required": [
"organizationId",
"mode",
"connectedProfileId",
"providerProfileExternalId",
"providerId",
"contentType"
]
},
"data": {
"additionalProperties": false,
"type": "object",
"properties": {
"externalId": {
"description": "Provider-owned content identifier.",
"minLength": 1,
"type": "string"
},
"mediaExternalId": {
"minLength": 1,
"type": "string"
},
"text": {
"description": "Caption/body text for content.",
"type": "string"
},
"media": {
"type": "array",
"items": {
"additionalProperties": false,
"description": "A staged or remote media asset. Source constraints are enforced by operation schemas.",
"type": "object",
"properties": {
"mediaId": {
"minLength": 1,
"type": "string"
},
"sourceUrl": {
"minLength": 1,
"type": "string"
},
"contentType": {
"minLength": 1,
"type": "string"
},
"filename": {
"minLength": 1,
"type": "string"
},
"checksum": {
"pattern": "^sha256:[0-9a-fA-F]{64}$",
"type": "string"
},
"altText": {
"minLength": 1,
"type": "string"
}
}
}
},
"author": {
"additionalProperties": false,
"description": "Provider actor reference for observed content.",
"type": "object",
"properties": {
"id": {
"minLength": 1,
"type": "string"
},
"displayName": {
"minLength": 1,
"type": "string"
},
"username": {
"minLength": 1,
"type": "string"
}
},
"required": [
"id"
]
},
"thread": {
"additionalProperties": false,
"description": "Parent/root identifiers for threaded contexts.",
"type": "object",
"properties": {
"parentId": {
"minLength": 1,
"type": "string"
},
"rootId": {
"minLength": 1,
"type": "string"
},
"threadId": {
"minLength": 1,
"type": "string"
}
}
},
"hidden": {
"type": "boolean"
},
"pinned": {
"type": "boolean"
},
"liked": {
"type": "boolean"
},
"ownerAuthored": {
"type": "boolean"
},
"engagement": {
"additionalProperties": false,
"description": "Provider-reported engagement counts.",
"type": "object",
"properties": {
"likes": {
"minimum": 0,
"description": "Likes, favourites, or reactions on the content.",
"type": "number"
},
"comments": {
"minimum": 0,
"description": "Comments or replies on the content.",
"type": "number"
},
"shares": {
"minimum": 0,
"description": "Times the content was shared or reposted.",
"type": "number"
},
"views": {
"minimum": 0,
"description": "Times the content was viewed.",
"type": "number"
}
}
},
"publishedAt": {
"format": "date-time",
"description": "Provider publish timestamp as an ISO-8601 string.",
"type": "string"
},
"providerRaw": {
"description": "Optional provider-native payload included only for transient delivery/debug use."
},
"contentType": {
"const": "tiktok.posts.comments",
"type": "string"
}
},
"required": [
"externalId",
"mediaExternalId",
"contentType"
]
}
},
"required": [
"id",
"topic",
"time",
"metadata",
"data"
]
}content.tiktok.posts.comments.moderated
Normalized moderated event for tiktok.posts.comments content.
Content type tiktok.posts.comments. data is the content type's own schema — the same shape content reads return for it.
metadata
| Field | Type | Required | Description |
|---|---|---|---|
organizationId | string | yes | |
mode | "live" | "test" | yes | Which mode produced the event. Test-mode events come from fixture providers and never reach live infrastructure. |
connectedProfileId | string | yes | The Connected Profile that observed the content. |
providerProfileExternalId | string | yes | The observing profile's provider-namespace id. Content the profile authored has data.author.id equal to this. |
providerId | string | yes | |
contentType | string | yes | The canonical {provider}.{surface}.{resource} identifier. |
data
| Field | Type | Required | Description |
|---|---|---|---|
externalId | string | yes | Provider-owned content identifier. |
mediaExternalId | string | yes | |
text | string | no | Caption/body text for content. |
media | object[] | no | |
author | object | no | Provider actor reference for observed content. |
thread | object | no | Parent/root identifiers for threaded contexts. |
hidden | boolean | no | |
pinned | boolean | no | |
liked | boolean | no | |
ownerAuthored | boolean | no | |
engagement | object | no | Provider-reported engagement counts. |
publishedAt | string (date-time) | no | Provider publish timestamp as an ISO-8601 string. |
providerRaw | unknown | no | Optional provider-native payload included only for transient delivery/debug use. |
contentType | "tiktok.posts.comments" | yes |
Envelope JSON Schema
{
"additionalProperties": false,
"type": "object",
"properties": {
"id": {
"description": "Stable dedupe id for this logical event (`evt_…`).",
"pattern": "^evt_[0-9a-f]{40}$",
"type": "string"
},
"topic": {
"const": "content.tiktok.posts.comments.moderated",
"type": "string"
},
"time": {
"description": "When the event occurred (RFC 3339).",
"format": "date-time",
"type": "string"
},
"metadata": {
"additionalProperties": false,
"type": "object",
"properties": {
"organizationId": {
"minLength": 1,
"type": "string"
},
"mode": {
"description": "Which mode produced the event. Test-mode events come from fixture providers and never reach live infrastructure.",
"anyOf": [
{
"const": "live",
"type": "string"
},
{
"const": "test",
"type": "string"
}
]
},
"connectedProfileId": {
"minLength": 1,
"description": "The Connected Profile that observed the content.",
"type": "string"
},
"providerProfileExternalId": {
"minLength": 1,
"description": "The observing profile's provider-namespace id. Content the profile authored has `data.author.id` equal to this.",
"type": "string"
},
"providerId": {
"minLength": 1,
"type": "string"
},
"contentType": {
"minLength": 1,
"description": "The canonical `{provider}.{surface}.{resource}` identifier.",
"type": "string"
}
},
"required": [
"organizationId",
"mode",
"connectedProfileId",
"providerProfileExternalId",
"providerId",
"contentType"
]
},
"data": {
"additionalProperties": false,
"type": "object",
"properties": {
"externalId": {
"description": "Provider-owned content identifier.",
"minLength": 1,
"type": "string"
},
"mediaExternalId": {
"minLength": 1,
"type": "string"
},
"text": {
"description": "Caption/body text for content.",
"type": "string"
},
"media": {
"type": "array",
"items": {
"additionalProperties": false,
"description": "A staged or remote media asset. Source constraints are enforced by operation schemas.",
"type": "object",
"properties": {
"mediaId": {
"minLength": 1,
"type": "string"
},
"sourceUrl": {
"minLength": 1,
"type": "string"
},
"contentType": {
"minLength": 1,
"type": "string"
},
"filename": {
"minLength": 1,
"type": "string"
},
"checksum": {
"pattern": "^sha256:[0-9a-fA-F]{64}$",
"type": "string"
},
"altText": {
"minLength": 1,
"type": "string"
}
}
}
},
"author": {
"additionalProperties": false,
"description": "Provider actor reference for observed content.",
"type": "object",
"properties": {
"id": {
"minLength": 1,
"type": "string"
},
"displayName": {
"minLength": 1,
"type": "string"
},
"username": {
"minLength": 1,
"type": "string"
}
},
"required": [
"id"
]
},
"thread": {
"additionalProperties": false,
"description": "Parent/root identifiers for threaded contexts.",
"type": "object",
"properties": {
"parentId": {
"minLength": 1,
"type": "string"
},
"rootId": {
"minLength": 1,
"type": "string"
},
"threadId": {
"minLength": 1,
"type": "string"
}
}
},
"hidden": {
"type": "boolean"
},
"pinned": {
"type": "boolean"
},
"liked": {
"type": "boolean"
},
"ownerAuthored": {
"type": "boolean"
},
"engagement": {
"additionalProperties": false,
"description": "Provider-reported engagement counts.",
"type": "object",
"properties": {
"likes": {
"minimum": 0,
"description": "Likes, favourites, or reactions on the content.",
"type": "number"
},
"comments": {
"minimum": 0,
"description": "Comments or replies on the content.",
"type": "number"
},
"shares": {
"minimum": 0,
"description": "Times the content was shared or reposted.",
"type": "number"
},
"views": {
"minimum": 0,
"description": "Times the content was viewed.",
"type": "number"
}
}
},
"publishedAt": {
"format": "date-time",
"description": "Provider publish timestamp as an ISO-8601 string.",
"type": "string"
},
"providerRaw": {
"description": "Optional provider-native payload included only for transient delivery/debug use."
},
"contentType": {
"const": "tiktok.posts.comments",
"type": "string"
}
},
"required": [
"externalId",
"mediaExternalId",
"contentType"
]
}
},
"required": [
"id",
"topic",
"time",
"metadata",
"data"
]
}content.tiktok.posts.comments.updated
Normalized updated event for tiktok.posts.comments content.
Content type tiktok.posts.comments. data is the content type's own schema — the same shape content reads return for it.
metadata
| Field | Type | Required | Description |
|---|---|---|---|
organizationId | string | yes | |
mode | "live" | "test" | yes | Which mode produced the event. Test-mode events come from fixture providers and never reach live infrastructure. |
connectedProfileId | string | yes | The Connected Profile that observed the content. |
providerProfileExternalId | string | yes | The observing profile's provider-namespace id. Content the profile authored has data.author.id equal to this. |
providerId | string | yes | |
contentType | string | yes | The canonical {provider}.{surface}.{resource} identifier. |
data
| Field | Type | Required | Description |
|---|---|---|---|
externalId | string | yes | Provider-owned content identifier. |
mediaExternalId | string | yes | |
text | string | no | Caption/body text for content. |
media | object[] | no | |
author | object | no | Provider actor reference for observed content. |
thread | object | no | Parent/root identifiers for threaded contexts. |
hidden | boolean | no | |
pinned | boolean | no | |
liked | boolean | no | |
ownerAuthored | boolean | no | |
engagement | object | no | Provider-reported engagement counts. |
publishedAt | string (date-time) | no | Provider publish timestamp as an ISO-8601 string. |
providerRaw | unknown | no | Optional provider-native payload included only for transient delivery/debug use. |
contentType | "tiktok.posts.comments" | yes |
Envelope JSON Schema
{
"additionalProperties": false,
"type": "object",
"properties": {
"id": {
"description": "Stable dedupe id for this logical event (`evt_…`).",
"pattern": "^evt_[0-9a-f]{40}$",
"type": "string"
},
"topic": {
"const": "content.tiktok.posts.comments.updated",
"type": "string"
},
"time": {
"description": "When the event occurred (RFC 3339).",
"format": "date-time",
"type": "string"
},
"metadata": {
"additionalProperties": false,
"type": "object",
"properties": {
"organizationId": {
"minLength": 1,
"type": "string"
},
"mode": {
"description": "Which mode produced the event. Test-mode events come from fixture providers and never reach live infrastructure.",
"anyOf": [
{
"const": "live",
"type": "string"
},
{
"const": "test",
"type": "string"
}
]
},
"connectedProfileId": {
"minLength": 1,
"description": "The Connected Profile that observed the content.",
"type": "string"
},
"providerProfileExternalId": {
"minLength": 1,
"description": "The observing profile's provider-namespace id. Content the profile authored has `data.author.id` equal to this.",
"type": "string"
},
"providerId": {
"minLength": 1,
"type": "string"
},
"contentType": {
"minLength": 1,
"description": "The canonical `{provider}.{surface}.{resource}` identifier.",
"type": "string"
}
},
"required": [
"organizationId",
"mode",
"connectedProfileId",
"providerProfileExternalId",
"providerId",
"contentType"
]
},
"data": {
"additionalProperties": false,
"type": "object",
"properties": {
"externalId": {
"description": "Provider-owned content identifier.",
"minLength": 1,
"type": "string"
},
"mediaExternalId": {
"minLength": 1,
"type": "string"
},
"text": {
"description": "Caption/body text for content.",
"type": "string"
},
"media": {
"type": "array",
"items": {
"additionalProperties": false,
"description": "A staged or remote media asset. Source constraints are enforced by operation schemas.",
"type": "object",
"properties": {
"mediaId": {
"minLength": 1,
"type": "string"
},
"sourceUrl": {
"minLength": 1,
"type": "string"
},
"contentType": {
"minLength": 1,
"type": "string"
},
"filename": {
"minLength": 1,
"type": "string"
},
"checksum": {
"pattern": "^sha256:[0-9a-fA-F]{64}$",
"type": "string"
},
"altText": {
"minLength": 1,
"type": "string"
}
}
}
},
"author": {
"additionalProperties": false,
"description": "Provider actor reference for observed content.",
"type": "object",
"properties": {
"id": {
"minLength": 1,
"type": "string"
},
"displayName": {
"minLength": 1,
"type": "string"
},
"username": {
"minLength": 1,
"type": "string"
}
},
"required": [
"id"
]
},
"thread": {
"additionalProperties": false,
"description": "Parent/root identifiers for threaded contexts.",
"type": "object",
"properties": {
"parentId": {
"minLength": 1,
"type": "string"
},
"rootId": {
"minLength": 1,
"type": "string"
},
"threadId": {
"minLength": 1,
"type": "string"
}
}
},
"hidden": {
"type": "boolean"
},
"pinned": {
"type": "boolean"
},
"liked": {
"type": "boolean"
},
"ownerAuthored": {
"type": "boolean"
},
"engagement": {
"additionalProperties": false,
"description": "Provider-reported engagement counts.",
"type": "object",
"properties": {
"likes": {
"minimum": 0,
"description": "Likes, favourites, or reactions on the content.",
"type": "number"
},
"comments": {
"minimum": 0,
"description": "Comments or replies on the content.",
"type": "number"
},
"shares": {
"minimum": 0,
"description": "Times the content was shared or reposted.",
"type": "number"
},
"views": {
"minimum": 0,
"description": "Times the content was viewed.",
"type": "number"
}
}
},
"publishedAt": {
"format": "date-time",
"description": "Provider publish timestamp as an ISO-8601 string.",
"type": "string"
},
"providerRaw": {
"description": "Optional provider-native payload included only for transient delivery/debug use."
},
"contentType": {
"const": "tiktok.posts.comments",
"type": "string"
}
},
"required": [
"externalId",
"mediaExternalId",
"contentType"
]
}
},
"required": [
"id",
"topic",
"time",
"metadata",
"data"
]
}content.tiktok.posts.items.created
Normalized created event for tiktok.posts.items content.
Content type tiktok.posts.items. data is the content type's own schema — the same shape content reads return for it.
metadata
| Field | Type | Required | Description |
|---|---|---|---|
organizationId | string | yes | |
mode | "live" | "test" | yes | Which mode produced the event. Test-mode events come from fixture providers and never reach live infrastructure. |
connectedProfileId | string | yes | The Connected Profile that observed the content. |
providerProfileExternalId | string | yes | The observing profile's provider-namespace id. Content the profile authored has data.author.id equal to this. |
providerId | string | yes | |
contentType | string | yes | The canonical {provider}.{surface}.{resource} identifier. |
data
| Field | Type | Required | Description |
|---|---|---|---|
externalId | string | yes | Provider-owned content identifier. |
variant | "video" | "photo" | yes | |
text | string | no | Caption/body text for content. |
media | object[] | no | |
providerPermalink | string (uri) | no | Canonical provider URL for content. |
embedUrl | string | no | |
engagement | object | no | Provider-reported engagement counts. |
durationSeconds | number | no | |
isAd | boolean | no | |
publishedAt | string (date-time) | no | Provider publish timestamp as an ISO-8601 string. |
providerRaw | unknown | no | Optional provider-native payload included only for transient delivery/debug use. |
contentType | "tiktok.posts.items" | yes |
Envelope JSON Schema
{
"additionalProperties": false,
"type": "object",
"properties": {
"id": {
"description": "Stable dedupe id for this logical event (`evt_…`).",
"pattern": "^evt_[0-9a-f]{40}$",
"type": "string"
},
"topic": {
"const": "content.tiktok.posts.items.created",
"type": "string"
},
"time": {
"description": "When the event occurred (RFC 3339).",
"format": "date-time",
"type": "string"
},
"metadata": {
"additionalProperties": false,
"type": "object",
"properties": {
"organizationId": {
"minLength": 1,
"type": "string"
},
"mode": {
"description": "Which mode produced the event. Test-mode events come from fixture providers and never reach live infrastructure.",
"anyOf": [
{
"const": "live",
"type": "string"
},
{
"const": "test",
"type": "string"
}
]
},
"connectedProfileId": {
"minLength": 1,
"description": "The Connected Profile that observed the content.",
"type": "string"
},
"providerProfileExternalId": {
"minLength": 1,
"description": "The observing profile's provider-namespace id. Content the profile authored has `data.author.id` equal to this.",
"type": "string"
},
"providerId": {
"minLength": 1,
"type": "string"
},
"contentType": {
"minLength": 1,
"description": "The canonical `{provider}.{surface}.{resource}` identifier.",
"type": "string"
}
},
"required": [
"organizationId",
"mode",
"connectedProfileId",
"providerProfileExternalId",
"providerId",
"contentType"
]
},
"data": {
"additionalProperties": false,
"type": "object",
"properties": {
"externalId": {
"description": "Provider-owned content identifier.",
"minLength": 1,
"type": "string"
},
"variant": {
"anyOf": [
{
"const": "video",
"type": "string"
},
{
"const": "photo",
"type": "string"
}
]
},
"text": {
"description": "Caption/body text for content.",
"type": "string"
},
"media": {
"type": "array",
"items": {
"additionalProperties": false,
"description": "A staged or remote media asset. Source constraints are enforced by operation schemas.",
"type": "object",
"properties": {
"mediaId": {
"minLength": 1,
"type": "string"
},
"sourceUrl": {
"minLength": 1,
"type": "string"
},
"contentType": {
"minLength": 1,
"type": "string"
},
"filename": {
"minLength": 1,
"type": "string"
},
"checksum": {
"pattern": "^sha256:[0-9a-fA-F]{64}$",
"type": "string"
},
"altText": {
"minLength": 1,
"type": "string"
}
}
}
},
"providerPermalink": {
"format": "uri",
"description": "Canonical provider URL for content.",
"minLength": 1,
"pattern": "^https?://",
"type": "string"
},
"embedUrl": {
"minLength": 1,
"type": "string"
},
"engagement": {
"additionalProperties": false,
"description": "Provider-reported engagement counts.",
"type": "object",
"properties": {
"likes": {
"minimum": 0,
"description": "Likes, favourites, or reactions on the content.",
"type": "number"
},
"comments": {
"minimum": 0,
"description": "Comments or replies on the content.",
"type": "number"
},
"shares": {
"minimum": 0,
"description": "Times the content was shared or reposted.",
"type": "number"
},
"views": {
"minimum": 0,
"description": "Times the content was viewed.",
"type": "number"
}
}
},
"durationSeconds": {
"minimum": 0,
"type": "number"
},
"isAd": {
"type": "boolean"
},
"publishedAt": {
"format": "date-time",
"description": "Provider publish timestamp as an ISO-8601 string.",
"type": "string"
},
"providerRaw": {
"description": "Optional provider-native payload included only for transient delivery/debug use."
},
"contentType": {
"const": "tiktok.posts.items",
"type": "string"
}
},
"required": [
"externalId",
"variant",
"contentType"
]
}
},
"required": [
"id",
"topic",
"time",
"metadata",
"data"
]
}content.tiktok.posts.items.deleted
Normalized deleted event for tiktok.posts.items content.
Content type tiktok.posts.items. data is the content type's own schema — the same shape content reads return for it.
metadata
| Field | Type | Required | Description |
|---|---|---|---|
organizationId | string | yes | |
mode | "live" | "test" | yes | Which mode produced the event. Test-mode events come from fixture providers and never reach live infrastructure. |
connectedProfileId | string | yes | The Connected Profile that observed the content. |
providerProfileExternalId | string | yes | The observing profile's provider-namespace id. Content the profile authored has data.author.id equal to this. |
providerId | string | yes | |
contentType | string | yes | The canonical {provider}.{surface}.{resource} identifier. |
data
| Field | Type | Required | Description |
|---|---|---|---|
externalId | string | yes | Provider-owned content identifier. |
variant | "video" | "photo" | yes | |
text | string | no | Caption/body text for content. |
media | object[] | no | |
providerPermalink | string (uri) | no | Canonical provider URL for content. |
embedUrl | string | no | |
engagement | object | no | Provider-reported engagement counts. |
durationSeconds | number | no | |
isAd | boolean | no | |
publishedAt | string (date-time) | no | Provider publish timestamp as an ISO-8601 string. |
providerRaw | unknown | no | Optional provider-native payload included only for transient delivery/debug use. |
contentType | "tiktok.posts.items" | yes |
Envelope JSON Schema
{
"additionalProperties": false,
"type": "object",
"properties": {
"id": {
"description": "Stable dedupe id for this logical event (`evt_…`).",
"pattern": "^evt_[0-9a-f]{40}$",
"type": "string"
},
"topic": {
"const": "content.tiktok.posts.items.deleted",
"type": "string"
},
"time": {
"description": "When the event occurred (RFC 3339).",
"format": "date-time",
"type": "string"
},
"metadata": {
"additionalProperties": false,
"type": "object",
"properties": {
"organizationId": {
"minLength": 1,
"type": "string"
},
"mode": {
"description": "Which mode produced the event. Test-mode events come from fixture providers and never reach live infrastructure.",
"anyOf": [
{
"const": "live",
"type": "string"
},
{
"const": "test",
"type": "string"
}
]
},
"connectedProfileId": {
"minLength": 1,
"description": "The Connected Profile that observed the content.",
"type": "string"
},
"providerProfileExternalId": {
"minLength": 1,
"description": "The observing profile's provider-namespace id. Content the profile authored has `data.author.id` equal to this.",
"type": "string"
},
"providerId": {
"minLength": 1,
"type": "string"
},
"contentType": {
"minLength": 1,
"description": "The canonical `{provider}.{surface}.{resource}` identifier.",
"type": "string"
}
},
"required": [
"organizationId",
"mode",
"connectedProfileId",
"providerProfileExternalId",
"providerId",
"contentType"
]
},
"data": {
"additionalProperties": false,
"type": "object",
"properties": {
"externalId": {
"description": "Provider-owned content identifier.",
"minLength": 1,
"type": "string"
},
"variant": {
"anyOf": [
{
"const": "video",
"type": "string"
},
{
"const": "photo",
"type": "string"
}
]
},
"text": {
"description": "Caption/body text for content.",
"type": "string"
},
"media": {
"type": "array",
"items": {
"additionalProperties": false,
"description": "A staged or remote media asset. Source constraints are enforced by operation schemas.",
"type": "object",
"properties": {
"mediaId": {
"minLength": 1,
"type": "string"
},
"sourceUrl": {
"minLength": 1,
"type": "string"
},
"contentType": {
"minLength": 1,
"type": "string"
},
"filename": {
"minLength": 1,
"type": "string"
},
"checksum": {
"pattern": "^sha256:[0-9a-fA-F]{64}$",
"type": "string"
},
"altText": {
"minLength": 1,
"type": "string"
}
}
}
},
"providerPermalink": {
"format": "uri",
"description": "Canonical provider URL for content.",
"minLength": 1,
"pattern": "^https?://",
"type": "string"
},
"embedUrl": {
"minLength": 1,
"type": "string"
},
"engagement": {
"additionalProperties": false,
"description": "Provider-reported engagement counts.",
"type": "object",
"properties": {
"likes": {
"minimum": 0,
"description": "Likes, favourites, or reactions on the content.",
"type": "number"
},
"comments": {
"minimum": 0,
"description": "Comments or replies on the content.",
"type": "number"
},
"shares": {
"minimum": 0,
"description": "Times the content was shared or reposted.",
"type": "number"
},
"views": {
"minimum": 0,
"description": "Times the content was viewed.",
"type": "number"
}
}
},
"durationSeconds": {
"minimum": 0,
"type": "number"
},
"isAd": {
"type": "boolean"
},
"publishedAt": {
"format": "date-time",
"description": "Provider publish timestamp as an ISO-8601 string.",
"type": "string"
},
"providerRaw": {
"description": "Optional provider-native payload included only for transient delivery/debug use."
},
"contentType": {
"const": "tiktok.posts.items",
"type": "string"
}
},
"required": [
"externalId",
"variant",
"contentType"
]
}
},
"required": [
"id",
"topic",
"time",
"metadata",
"data"
]
}content.tiktok.posts.mentions.created
Normalized created event for tiktok.posts.mentions content.
Content type tiktok.posts.mentions. data is the content type's own schema — the same shape content reads return for it.
metadata
| Field | Type | Required | Description |
|---|---|---|---|
organizationId | string | yes | |
mode | "live" | "test" | yes | Which mode produced the event. Test-mode events come from fixture providers and never reach live infrastructure. |
connectedProfileId | string | yes | The Connected Profile that observed the content. |
providerProfileExternalId | string | yes | The observing profile's provider-namespace id. Content the profile authored has data.author.id equal to this. |
providerId | string | yes | |
contentType | string | yes | The canonical {provider}.{surface}.{resource} identifier. |
data
| Field | Type | Required | Description |
|---|---|---|---|
externalId | string | yes | Provider-owned content identifier. |
variant | "caption" | "comment" | yes | |
mediaExternalId | string | yes | |
commentExternalId | string | no | |
text | string | no | Caption/body text for content. |
author | object | no | Provider actor reference for observed content. |
media | object[] | no | |
providerPermalink | string (uri) | no | Canonical provider URL for content. |
engagement | object | no | Provider-reported engagement counts. |
publishedAt | string (date-time) | no | Provider publish timestamp as an ISO-8601 string. |
providerRaw | unknown | no | Optional provider-native payload included only for transient delivery/debug use. |
contentType | "tiktok.posts.mentions" | yes |
Envelope JSON Schema
{
"additionalProperties": false,
"type": "object",
"properties": {
"id": {
"description": "Stable dedupe id for this logical event (`evt_…`).",
"pattern": "^evt_[0-9a-f]{40}$",
"type": "string"
},
"topic": {
"const": "content.tiktok.posts.mentions.created",
"type": "string"
},
"time": {
"description": "When the event occurred (RFC 3339).",
"format": "date-time",
"type": "string"
},
"metadata": {
"additionalProperties": false,
"type": "object",
"properties": {
"organizationId": {
"minLength": 1,
"type": "string"
},
"mode": {
"description": "Which mode produced the event. Test-mode events come from fixture providers and never reach live infrastructure.",
"anyOf": [
{
"const": "live",
"type": "string"
},
{
"const": "test",
"type": "string"
}
]
},
"connectedProfileId": {
"minLength": 1,
"description": "The Connected Profile that observed the content.",
"type": "string"
},
"providerProfileExternalId": {
"minLength": 1,
"description": "The observing profile's provider-namespace id. Content the profile authored has `data.author.id` equal to this.",
"type": "string"
},
"providerId": {
"minLength": 1,
"type": "string"
},
"contentType": {
"minLength": 1,
"description": "The canonical `{provider}.{surface}.{resource}` identifier.",
"type": "string"
}
},
"required": [
"organizationId",
"mode",
"connectedProfileId",
"providerProfileExternalId",
"providerId",
"contentType"
]
},
"data": {
"additionalProperties": false,
"type": "object",
"properties": {
"externalId": {
"description": "Provider-owned content identifier.",
"minLength": 1,
"type": "string"
},
"variant": {
"anyOf": [
{
"const": "caption",
"type": "string"
},
{
"const": "comment",
"type": "string"
}
]
},
"mediaExternalId": {
"minLength": 1,
"type": "string"
},
"commentExternalId": {
"minLength": 1,
"type": "string"
},
"text": {
"description": "Caption/body text for content.",
"type": "string"
},
"author": {
"additionalProperties": false,
"description": "Provider actor reference for observed content.",
"type": "object",
"properties": {
"id": {
"minLength": 1,
"type": "string"
},
"displayName": {
"minLength": 1,
"type": "string"
},
"username": {
"minLength": 1,
"type": "string"
}
},
"required": [
"id"
]
},
"media": {
"type": "array",
"items": {
"additionalProperties": false,
"description": "A staged or remote media asset. Source constraints are enforced by operation schemas.",
"type": "object",
"properties": {
"mediaId": {
"minLength": 1,
"type": "string"
},
"sourceUrl": {
"minLength": 1,
"type": "string"
},
"contentType": {
"minLength": 1,
"type": "string"
},
"filename": {
"minLength": 1,
"type": "string"
},
"checksum": {
"pattern": "^sha256:[0-9a-fA-F]{64}$",
"type": "string"
},
"altText": {
"minLength": 1,
"type": "string"
}
}
}
},
"providerPermalink": {
"format": "uri",
"description": "Canonical provider URL for content.",
"minLength": 1,
"pattern": "^https?://",
"type": "string"
},
"engagement": {
"additionalProperties": false,
"description": "Provider-reported engagement counts.",
"type": "object",
"properties": {
"likes": {
"minimum": 0,
"description": "Likes, favourites, or reactions on the content.",
"type": "number"
},
"comments": {
"minimum": 0,
"description": "Comments or replies on the content.",
"type": "number"
},
"shares": {
"minimum": 0,
"description": "Times the content was shared or reposted.",
"type": "number"
},
"views": {
"minimum": 0,
"description": "Times the content was viewed.",
"type": "number"
}
}
},
"publishedAt": {
"format": "date-time",
"description": "Provider publish timestamp as an ISO-8601 string.",
"type": "string"
},
"providerRaw": {
"description": "Optional provider-native payload included only for transient delivery/debug use."
},
"contentType": {
"const": "tiktok.posts.mentions",
"type": "string"
}
},
"required": [
"externalId",
"variant",
"mediaExternalId",
"contentType"
]
}
},
"required": [
"id",
"topic",
"time",
"metadata",
"data"
]
}content.tiktok.posts.mentions.updated
Normalized updated event for tiktok.posts.mentions content.
Content type tiktok.posts.mentions. data is the content type's own schema — the same shape content reads return for it.
metadata
| Field | Type | Required | Description |
|---|---|---|---|
organizationId | string | yes | |
mode | "live" | "test" | yes | Which mode produced the event. Test-mode events come from fixture providers and never reach live infrastructure. |
connectedProfileId | string | yes | The Connected Profile that observed the content. |
providerProfileExternalId | string | yes | The observing profile's provider-namespace id. Content the profile authored has data.author.id equal to this. |
providerId | string | yes | |
contentType | string | yes | The canonical {provider}.{surface}.{resource} identifier. |
data
| Field | Type | Required | Description |
|---|---|---|---|
externalId | string | yes | Provider-owned content identifier. |
variant | "caption" | "comment" | yes | |
mediaExternalId | string | yes | |
commentExternalId | string | no | |
text | string | no | Caption/body text for content. |
author | object | no | Provider actor reference for observed content. |
media | object[] | no | |
providerPermalink | string (uri) | no | Canonical provider URL for content. |
engagement | object | no | Provider-reported engagement counts. |
publishedAt | string (date-time) | no | Provider publish timestamp as an ISO-8601 string. |
providerRaw | unknown | no | Optional provider-native payload included only for transient delivery/debug use. |
contentType | "tiktok.posts.mentions" | yes |
Envelope JSON Schema
{
"additionalProperties": false,
"type": "object",
"properties": {
"id": {
"description": "Stable dedupe id for this logical event (`evt_…`).",
"pattern": "^evt_[0-9a-f]{40}$",
"type": "string"
},
"topic": {
"const": "content.tiktok.posts.mentions.updated",
"type": "string"
},
"time": {
"description": "When the event occurred (RFC 3339).",
"format": "date-time",
"type": "string"
},
"metadata": {
"additionalProperties": false,
"type": "object",
"properties": {
"organizationId": {
"minLength": 1,
"type": "string"
},
"mode": {
"description": "Which mode produced the event. Test-mode events come from fixture providers and never reach live infrastructure.",
"anyOf": [
{
"const": "live",
"type": "string"
},
{
"const": "test",
"type": "string"
}
]
},
"connectedProfileId": {
"minLength": 1,
"description": "The Connected Profile that observed the content.",
"type": "string"
},
"providerProfileExternalId": {
"minLength": 1,
"description": "The observing profile's provider-namespace id. Content the profile authored has `data.author.id` equal to this.",
"type": "string"
},
"providerId": {
"minLength": 1,
"type": "string"
},
"contentType": {
"minLength": 1,
"description": "The canonical `{provider}.{surface}.{resource}` identifier.",
"type": "string"
}
},
"required": [
"organizationId",
"mode",
"connectedProfileId",
"providerProfileExternalId",
"providerId",
"contentType"
]
},
"data": {
"additionalProperties": false,
"type": "object",
"properties": {
"externalId": {
"description": "Provider-owned content identifier.",
"minLength": 1,
"type": "string"
},
"variant": {
"anyOf": [
{
"const": "caption",
"type": "string"
},
{
"const": "comment",
"type": "string"
}
]
},
"mediaExternalId": {
"minLength": 1,
"type": "string"
},
"commentExternalId": {
"minLength": 1,
"type": "string"
},
"text": {
"description": "Caption/body text for content.",
"type": "string"
},
"author": {
"additionalProperties": false,
"description": "Provider actor reference for observed content.",
"type": "object",
"properties": {
"id": {
"minLength": 1,
"type": "string"
},
"displayName": {
"minLength": 1,
"type": "string"
},
"username": {
"minLength": 1,
"type": "string"
}
},
"required": [
"id"
]
},
"media": {
"type": "array",
"items": {
"additionalProperties": false,
"description": "A staged or remote media asset. Source constraints are enforced by operation schemas.",
"type": "object",
"properties": {
"mediaId": {
"minLength": 1,
"type": "string"
},
"sourceUrl": {
"minLength": 1,
"type": "string"
},
"contentType": {
"minLength": 1,
"type": "string"
},
"filename": {
"minLength": 1,
"type": "string"
},
"checksum": {
"pattern": "^sha256:[0-9a-fA-F]{64}$",
"type": "string"
},
"altText": {
"minLength": 1,
"type": "string"
}
}
}
},
"providerPermalink": {
"format": "uri",
"description": "Canonical provider URL for content.",
"minLength": 1,
"pattern": "^https?://",
"type": "string"
},
"engagement": {
"additionalProperties": false,
"description": "Provider-reported engagement counts.",
"type": "object",
"properties": {
"likes": {
"minimum": 0,
"description": "Likes, favourites, or reactions on the content.",
"type": "number"
},
"comments": {
"minimum": 0,
"description": "Comments or replies on the content.",
"type": "number"
},
"shares": {
"minimum": 0,
"description": "Times the content was shared or reposted.",
"type": "number"
},
"views": {
"minimum": 0,
"description": "Times the content was viewed.",
"type": "number"
}
}
},
"publishedAt": {
"format": "date-time",
"description": "Provider publish timestamp as an ISO-8601 string.",
"type": "string"
},
"providerRaw": {
"description": "Optional provider-native payload included only for transient delivery/debug use."
},
"contentType": {
"const": "tiktok.posts.mentions",
"type": "string"
}
},
"required": [
"externalId",
"variant",
"mediaExternalId",
"contentType"
]
}
},
"required": [
"id",
"topic",
"time",
"metadata",
"data"
]
}content.whatsapp.dm.messages.created
Normalized created event for whatsapp.dm.messages content.
Content type whatsapp.dm.messages. data is the content type's own schema — the same shape content reads return for it.
metadata
| Field | Type | Required | Description |
|---|---|---|---|
organizationId | string | yes | |
mode | "live" | "test" | yes | Which mode produced the event. Test-mode events come from fixture providers and never reach live infrastructure. |
connectedProfileId | string | yes | The Connected Profile that observed the content. |
providerProfileExternalId | string | yes | The observing profile's provider-namespace id. Content the profile authored has data.author.id equal to this. |
providerId | string | yes | |
contentType | string | yes | The canonical {provider}.{surface}.{resource} identifier. |
data
| Field | Type | Required | Description |
|---|---|---|---|
externalId | string | yes | Provider-owned content identifier. |
variant | "text" | "image" | "video" | "audio" | "document" | "sticker" | "location" | "contacts" | "reaction" | "interactive" | "button" | "referral" | "order" | "system" | "unsupported" | "unknown" | yes | The Cloud API message type. Media types carry media; location carries location; reaction carries reaction; unsupported is a type the Cloud API cannot deliver (e.g. a poll); unknown is a type Meta added that Koil does not model yet. |
text | string | no | Caption/body text for content. |
author | object | yes | Provider actor reference for observed content. |
thread | object | no | Parent/root identifiers for threaded contexts. |
media | object | no | |
location | object | no | Geographic place reference for content. |
reaction | object | no | |
publishedAt | string (date-time) | no | Provider publish timestamp as an ISO-8601 string. |
providerRaw | unknown | no | Optional provider-native payload included only for transient delivery/debug use. |
contentType | "whatsapp.dm.messages" | yes |
Envelope JSON Schema
{
"additionalProperties": false,
"type": "object",
"properties": {
"id": {
"description": "Stable dedupe id for this logical event (`evt_…`).",
"pattern": "^evt_[0-9a-f]{40}$",
"type": "string"
},
"topic": {
"const": "content.whatsapp.dm.messages.created",
"type": "string"
},
"time": {
"description": "When the event occurred (RFC 3339).",
"format": "date-time",
"type": "string"
},
"metadata": {
"additionalProperties": false,
"type": "object",
"properties": {
"organizationId": {
"minLength": 1,
"type": "string"
},
"mode": {
"description": "Which mode produced the event. Test-mode events come from fixture providers and never reach live infrastructure.",
"anyOf": [
{
"const": "live",
"type": "string"
},
{
"const": "test",
"type": "string"
}
]
},
"connectedProfileId": {
"minLength": 1,
"description": "The Connected Profile that observed the content.",
"type": "string"
},
"providerProfileExternalId": {
"minLength": 1,
"description": "The observing profile's provider-namespace id. Content the profile authored has `data.author.id` equal to this.",
"type": "string"
},
"providerId": {
"minLength": 1,
"type": "string"
},
"contentType": {
"minLength": 1,
"description": "The canonical `{provider}.{surface}.{resource}` identifier.",
"type": "string"
}
},
"required": [
"organizationId",
"mode",
"connectedProfileId",
"providerProfileExternalId",
"providerId",
"contentType"
]
},
"data": {
"additionalProperties": false,
"type": "object",
"properties": {
"externalId": {
"description": "Provider-owned content identifier.",
"minLength": 1,
"type": "string"
},
"variant": {
"description": "The Cloud API message `type`. Media types carry `media`; `location` carries `location`; `reaction` carries `reaction`; `unsupported` is a type the Cloud API cannot deliver (e.g. a poll); `unknown` is a type Meta added that Koil does not model yet.",
"anyOf": [
{
"const": "text",
"type": "string"
},
{
"const": "image",
"type": "string"
},
{
"const": "video",
"type": "string"
},
{
"const": "audio",
"type": "string"
},
{
"const": "document",
"type": "string"
},
{
"const": "sticker",
"type": "string"
},
{
"const": "location",
"type": "string"
},
{
"const": "contacts",
"type": "string"
},
{
"const": "reaction",
"type": "string"
},
{
"const": "interactive",
"type": "string"
},
{
"const": "button",
"type": "string"
},
{
"const": "referral",
"type": "string"
},
{
"const": "order",
"type": "string"
},
{
"const": "system",
"type": "string"
},
{
"const": "unsupported",
"type": "string"
},
{
"const": "unknown",
"type": "string"
}
]
},
"text": {
"description": "Caption/body text for content.",
"type": "string"
},
"author": {
"additionalProperties": false,
"description": "Provider actor reference for observed content.",
"type": "object",
"properties": {
"id": {
"minLength": 1,
"type": "string"
},
"displayName": {
"minLength": 1,
"type": "string"
},
"username": {
"minLength": 1,
"type": "string"
}
},
"required": [
"id"
]
},
"thread": {
"additionalProperties": false,
"description": "Parent/root identifiers for threaded contexts.",
"type": "object",
"properties": {
"parentId": {
"minLength": 1,
"type": "string"
},
"rootId": {
"minLength": 1,
"type": "string"
},
"threadId": {
"minLength": 1,
"type": "string"
}
}
},
"media": {
"additionalProperties": false,
"type": "object",
"properties": {
"id": {
"minLength": 1,
"description": "Cloud API media id.",
"type": "string"
},
"mimeType": {
"minLength": 1,
"type": "string"
},
"sha256": {
"minLength": 1,
"type": "string"
},
"filename": {
"minLength": 1,
"type": "string"
}
},
"required": [
"id"
]
},
"location": {
"additionalProperties": false,
"description": "Geographic place reference for content.",
"type": "object",
"properties": {
"locationId": {
"minLength": 1,
"type": "string"
},
"name": {
"minLength": 1,
"type": "string"
},
"lat": {
"minimum": -90,
"maximum": 90,
"type": "number"
},
"lng": {
"minimum": -180,
"maximum": 180,
"type": "number"
}
}
},
"reaction": {
"additionalProperties": false,
"type": "object",
"properties": {
"messageExternalId": {
"minLength": 1,
"description": "The message the reaction applies to.",
"type": "string"
},
"emoji": {
"minLength": 1,
"type": "string"
}
},
"required": [
"messageExternalId"
]
},
"publishedAt": {
"format": "date-time",
"description": "Provider publish timestamp as an ISO-8601 string.",
"type": "string"
},
"providerRaw": {
"description": "Optional provider-native payload included only for transient delivery/debug use."
},
"contentType": {
"const": "whatsapp.dm.messages",
"type": "string"
}
},
"required": [
"externalId",
"variant",
"author",
"contentType"
]
}
},
"required": [
"id",
"topic",
"time",
"metadata",
"data"
]
}content.whatsapp.dm.statuses.created
Normalized created event for whatsapp.dm.statuses content.
Content type whatsapp.dm.statuses. data is the content type's own schema — the same shape content reads return for it.
metadata
| Field | Type | Required | Description |
|---|---|---|---|
organizationId | string | yes | |
mode | "live" | "test" | yes | Which mode produced the event. Test-mode events come from fixture providers and never reach live infrastructure. |
connectedProfileId | string | yes | The Connected Profile that observed the content. |
providerProfileExternalId | string | yes | The observing profile's provider-namespace id. Content the profile authored has data.author.id equal to this. |
providerId | string | yes | |
contentType | string | yes | The canonical {provider}.{surface}.{resource} identifier. |
data
| Field | Type | Required | Description |
|---|---|---|---|
externalId | string | yes | Provider-owned content identifier. |
messageExternalId | string | yes | The outbound message this status is about. |
status | "sent" | "delivered" | "read" | "played" | "failed" | yes | The delivery state this status reports. |
recipientExternalId | string | yes | The recipient's WhatsApp id. |
occurredAt | string (date-time) | no | |
conversation | object | no | |
pricing | object | no | |
errors | object[] | no | |
callbackData | string | no | |
providerRaw | unknown | no | Optional provider-native payload included only for transient delivery/debug use. |
contentType | "whatsapp.dm.statuses" | yes |
Envelope JSON Schema
{
"additionalProperties": false,
"type": "object",
"properties": {
"id": {
"description": "Stable dedupe id for this logical event (`evt_…`).",
"pattern": "^evt_[0-9a-f]{40}$",
"type": "string"
},
"topic": {
"const": "content.whatsapp.dm.statuses.created",
"type": "string"
},
"time": {
"description": "When the event occurred (RFC 3339).",
"format": "date-time",
"type": "string"
},
"metadata": {
"additionalProperties": false,
"type": "object",
"properties": {
"organizationId": {
"minLength": 1,
"type": "string"
},
"mode": {
"description": "Which mode produced the event. Test-mode events come from fixture providers and never reach live infrastructure.",
"anyOf": [
{
"const": "live",
"type": "string"
},
{
"const": "test",
"type": "string"
}
]
},
"connectedProfileId": {
"minLength": 1,
"description": "The Connected Profile that observed the content.",
"type": "string"
},
"providerProfileExternalId": {
"minLength": 1,
"description": "The observing profile's provider-namespace id. Content the profile authored has `data.author.id` equal to this.",
"type": "string"
},
"providerId": {
"minLength": 1,
"type": "string"
},
"contentType": {
"minLength": 1,
"description": "The canonical `{provider}.{surface}.{resource}` identifier.",
"type": "string"
}
},
"required": [
"organizationId",
"mode",
"connectedProfileId",
"providerProfileExternalId",
"providerId",
"contentType"
]
},
"data": {
"additionalProperties": false,
"type": "object",
"properties": {
"externalId": {
"description": "Provider-owned content identifier.",
"minLength": 1,
"type": "string"
},
"messageExternalId": {
"minLength": 1,
"description": "The outbound message this status is about.",
"type": "string"
},
"status": {
"description": "The delivery state this status reports.",
"anyOf": [
{
"const": "sent",
"type": "string"
},
{
"const": "delivered",
"type": "string"
},
{
"const": "read",
"type": "string"
},
{
"const": "played",
"type": "string"
},
{
"const": "failed",
"type": "string"
}
]
},
"recipientExternalId": {
"minLength": 1,
"description": "The recipient's WhatsApp id.",
"type": "string"
},
"occurredAt": {
"format": "date-time",
"type": "string"
},
"conversation": {
"additionalProperties": false,
"type": "object",
"properties": {
"id": {
"minLength": 1,
"type": "string"
},
"originType": {
"minLength": 1,
"type": "string"
},
"expiresAt": {
"format": "date-time",
"type": "string"
}
},
"required": [
"id"
]
},
"pricing": {
"additionalProperties": false,
"type": "object",
"properties": {
"billable": {
"type": "boolean"
},
"model": {
"minLength": 1,
"type": "string"
},
"type": {
"minLength": 1,
"type": "string"
},
"category": {
"minLength": 1,
"type": "string"
}
}
},
"errors": {
"type": "array",
"items": {
"additionalProperties": false,
"type": "object",
"properties": {
"code": {
"type": "number"
},
"title": {
"minLength": 1,
"type": "string"
},
"message": {
"minLength": 1,
"type": "string"
},
"details": {
"minLength": 1,
"type": "string"
}
},
"required": [
"code"
]
}
},
"callbackData": {
"minLength": 1,
"type": "string"
},
"providerRaw": {
"description": "Optional provider-native payload included only for transient delivery/debug use."
},
"contentType": {
"const": "whatsapp.dm.statuses",
"type": "string"
}
},
"required": [
"externalId",
"messageExternalId",
"status",
"recipientExternalId",
"contentType"
]
}
},
"required": [
"id",
"topic",
"time",
"metadata",
"data"
]
}content.youtube.videos.comments.created
Normalized created event for youtube.videos.comments content.
Content type youtube.videos.comments. data is the content type's own schema — the same shape content reads return for it.
metadata
| Field | Type | Required | Description |
|---|---|---|---|
organizationId | string | yes | |
mode | "live" | "test" | yes | Which mode produced the event. Test-mode events come from fixture providers and never reach live infrastructure. |
connectedProfileId | string | yes | The Connected Profile that observed the content. |
providerProfileExternalId | string | yes | The observing profile's provider-namespace id. Content the profile authored has data.author.id equal to this. |
providerId | string | yes | |
contentType | string | yes | The canonical {provider}.{surface}.{resource} identifier. |
data
| Field | Type | Required | Description |
|---|---|---|---|
externalId | string | yes | Provider-owned content identifier. |
mediaExternalId | string | yes | |
text | string | no | Caption/body text for content. |
author | object | no | Provider actor reference for observed content. |
authorProfileImageUrl | string | no | |
thread | object | no | Parent/root identifiers for threaded contexts. |
moderationStatus | "published" | "heldForReview" | "likelySpam" | "rejected" | no | YouTube's moderation state of a comment. |
engagement | object | no | Provider-reported engagement counts. |
providerPermalink | string (uri) | no | Canonical provider URL for content. |
publishedAt | string (date-time) | no | Provider publish timestamp as an ISO-8601 string. |
updatedAt | string (date-time) | no | Provider update timestamp as an ISO-8601 string. |
providerRaw | unknown | no | Optional provider-native payload included only for transient delivery/debug use. |
contentType | "youtube.videos.comments" | yes |
Envelope JSON Schema
{
"additionalProperties": false,
"type": "object",
"properties": {
"id": {
"description": "Stable dedupe id for this logical event (`evt_…`).",
"pattern": "^evt_[0-9a-f]{40}$",
"type": "string"
},
"topic": {
"const": "content.youtube.videos.comments.created",
"type": "string"
},
"time": {
"description": "When the event occurred (RFC 3339).",
"format": "date-time",
"type": "string"
},
"metadata": {
"additionalProperties": false,
"type": "object",
"properties": {
"organizationId": {
"minLength": 1,
"type": "string"
},
"mode": {
"description": "Which mode produced the event. Test-mode events come from fixture providers and never reach live infrastructure.",
"anyOf": [
{
"const": "live",
"type": "string"
},
{
"const": "test",
"type": "string"
}
]
},
"connectedProfileId": {
"minLength": 1,
"description": "The Connected Profile that observed the content.",
"type": "string"
},
"providerProfileExternalId": {
"minLength": 1,
"description": "The observing profile's provider-namespace id. Content the profile authored has `data.author.id` equal to this.",
"type": "string"
},
"providerId": {
"minLength": 1,
"type": "string"
},
"contentType": {
"minLength": 1,
"description": "The canonical `{provider}.{surface}.{resource}` identifier.",
"type": "string"
}
},
"required": [
"organizationId",
"mode",
"connectedProfileId",
"providerProfileExternalId",
"providerId",
"contentType"
]
},
"data": {
"additionalProperties": false,
"type": "object",
"properties": {
"externalId": {
"description": "Provider-owned content identifier.",
"minLength": 1,
"type": "string"
},
"mediaExternalId": {
"minLength": 1,
"type": "string"
},
"text": {
"description": "Caption/body text for content.",
"type": "string"
},
"author": {
"additionalProperties": false,
"description": "Provider actor reference for observed content.",
"type": "object",
"properties": {
"id": {
"minLength": 1,
"type": "string"
},
"displayName": {
"minLength": 1,
"type": "string"
},
"username": {
"minLength": 1,
"type": "string"
}
},
"required": [
"id"
]
},
"authorProfileImageUrl": {
"minLength": 1,
"type": "string"
},
"thread": {
"additionalProperties": false,
"description": "Parent/root identifiers for threaded contexts.",
"type": "object",
"properties": {
"parentId": {
"minLength": 1,
"type": "string"
},
"rootId": {
"minLength": 1,
"type": "string"
},
"threadId": {
"minLength": 1,
"type": "string"
}
}
},
"moderationStatus": {
"description": "YouTube's moderation state of a comment.",
"anyOf": [
{
"const": "published",
"type": "string"
},
{
"const": "heldForReview",
"type": "string"
},
{
"const": "likelySpam",
"type": "string"
},
{
"const": "rejected",
"type": "string"
}
]
},
"engagement": {
"additionalProperties": false,
"description": "Provider-reported engagement counts.",
"type": "object",
"properties": {
"views": {
"minimum": 0,
"description": "Times the content was viewed.",
"type": "number"
},
"likes": {
"minimum": 0,
"description": "Likes, favourites, or reactions on the content.",
"type": "number"
},
"comments": {
"minimum": 0,
"description": "Comments or replies on the content.",
"type": "number"
}
}
},
"providerPermalink": {
"format": "uri",
"description": "Canonical provider URL for content.",
"minLength": 1,
"pattern": "^https?://",
"type": "string"
},
"publishedAt": {
"format": "date-time",
"description": "Provider publish timestamp as an ISO-8601 string.",
"type": "string"
},
"updatedAt": {
"format": "date-time",
"description": "Provider update timestamp as an ISO-8601 string.",
"type": "string"
},
"providerRaw": {
"description": "Optional provider-native payload included only for transient delivery/debug use."
},
"contentType": {
"const": "youtube.videos.comments",
"type": "string"
}
},
"required": [
"externalId",
"mediaExternalId",
"contentType"
]
}
},
"required": [
"id",
"topic",
"time",
"metadata",
"data"
]
}content.youtube.videos.items.created
Normalized created event for youtube.videos.items content.
Content type youtube.videos.items. data is the content type's own schema — the same shape content reads return for it.
metadata
| Field | Type | Required | Description |
|---|---|---|---|
organizationId | string | yes | |
mode | "live" | "test" | yes | Which mode produced the event. Test-mode events come from fixture providers and never reach live infrastructure. |
connectedProfileId | string | yes | The Connected Profile that observed the content. |
providerProfileExternalId | string | yes | The observing profile's provider-namespace id. Content the profile authored has data.author.id equal to this. |
providerId | string | yes | |
contentType | string | yes | The canonical {provider}.{surface}.{resource} identifier. |
data
| Field | Type | Required | Description |
|---|---|---|---|
externalId | string | yes | Provider-owned content identifier. |
title | string | yes | |
text | string | no | Caption/body text for content. |
tags | string[] | no | |
media | object[] | no | |
providerPermalink | string (uri) | no | Canonical provider URL for content. |
privacyStatus | "public" | "private" | "unlisted" | no | Who can see the video. |
aspectRatio | number | no | |
uploadStatus | string | no | |
liveBroadcast | "none" | "live" | "upcoming" | no | |
madeForKids | boolean | no | |
durationSeconds | number | no | |
engagement | object | no | Provider-reported engagement counts. |
publishedAt | string (date-time) | no | Provider publish timestamp as an ISO-8601 string. |
scheduledPublishAt | string (date-time) | no | When a private video is scheduled to go public. |
providerRaw | unknown | no | Optional provider-native payload included only for transient delivery/debug use. |
contentType | "youtube.videos.items" | yes |
Envelope JSON Schema
{
"additionalProperties": false,
"type": "object",
"properties": {
"id": {
"description": "Stable dedupe id for this logical event (`evt_…`).",
"pattern": "^evt_[0-9a-f]{40}$",
"type": "string"
},
"topic": {
"const": "content.youtube.videos.items.created",
"type": "string"
},
"time": {
"description": "When the event occurred (RFC 3339).",
"format": "date-time",
"type": "string"
},
"metadata": {
"additionalProperties": false,
"type": "object",
"properties": {
"organizationId": {
"minLength": 1,
"type": "string"
},
"mode": {
"description": "Which mode produced the event. Test-mode events come from fixture providers and never reach live infrastructure.",
"anyOf": [
{
"const": "live",
"type": "string"
},
{
"const": "test",
"type": "string"
}
]
},
"connectedProfileId": {
"minLength": 1,
"description": "The Connected Profile that observed the content.",
"type": "string"
},
"providerProfileExternalId": {
"minLength": 1,
"description": "The observing profile's provider-namespace id. Content the profile authored has `data.author.id` equal to this.",
"type": "string"
},
"providerId": {
"minLength": 1,
"type": "string"
},
"contentType": {
"minLength": 1,
"description": "The canonical `{provider}.{surface}.{resource}` identifier.",
"type": "string"
}
},
"required": [
"organizationId",
"mode",
"connectedProfileId",
"providerProfileExternalId",
"providerId",
"contentType"
]
},
"data": {
"additionalProperties": false,
"type": "object",
"properties": {
"externalId": {
"description": "Provider-owned content identifier.",
"minLength": 1,
"type": "string"
},
"title": {
"type": "string"
},
"text": {
"description": "Caption/body text for content.",
"type": "string"
},
"tags": {
"type": "array",
"items": {
"minLength": 1,
"type": "string"
}
},
"media": {
"type": "array",
"items": {
"additionalProperties": false,
"description": "A staged or remote media asset. Source constraints are enforced by operation schemas.",
"type": "object",
"properties": {
"mediaId": {
"minLength": 1,
"type": "string"
},
"sourceUrl": {
"minLength": 1,
"type": "string"
},
"contentType": {
"minLength": 1,
"type": "string"
},
"filename": {
"minLength": 1,
"type": "string"
},
"checksum": {
"pattern": "^sha256:[0-9a-fA-F]{64}$",
"type": "string"
},
"altText": {
"minLength": 1,
"type": "string"
}
}
}
},
"providerPermalink": {
"format": "uri",
"description": "Canonical provider URL for content.",
"minLength": 1,
"pattern": "^https?://",
"type": "string"
},
"privacyStatus": {
"description": "Who can see the video.",
"anyOf": [
{
"const": "public",
"type": "string"
},
{
"const": "private",
"type": "string"
},
{
"const": "unlisted",
"type": "string"
}
]
},
"aspectRatio": {
"exclusiveMinimum": 0,
"type": "number"
},
"uploadStatus": {
"minLength": 1,
"type": "string"
},
"liveBroadcast": {
"anyOf": [
{
"const": "none",
"type": "string"
},
{
"const": "live",
"type": "string"
},
{
"const": "upcoming",
"type": "string"
}
]
},
"madeForKids": {
"type": "boolean"
},
"durationSeconds": {
"minimum": 0,
"type": "number"
},
"engagement": {
"additionalProperties": false,
"description": "Provider-reported engagement counts.",
"type": "object",
"properties": {
"views": {
"minimum": 0,
"description": "Times the content was viewed.",
"type": "number"
},
"likes": {
"minimum": 0,
"description": "Likes, favourites, or reactions on the content.",
"type": "number"
},
"comments": {
"minimum": 0,
"description": "Comments or replies on the content.",
"type": "number"
}
}
},
"publishedAt": {
"format": "date-time",
"description": "Provider publish timestamp as an ISO-8601 string.",
"type": "string"
},
"scheduledPublishAt": {
"format": "date-time",
"description": "When a private video is scheduled to go public.",
"type": "string"
},
"providerRaw": {
"description": "Optional provider-native payload included only for transient delivery/debug use."
},
"contentType": {
"const": "youtube.videos.items",
"type": "string"
}
},
"required": [
"externalId",
"title",
"contentType"
]
}
},
"required": [
"id",
"topic",
"time",
"metadata",
"data"
]
}