Subscribe to media events

Learn about FastPix media lifecycle events such as upload, creation, update, deletion, and live streaming to simplify monitoring and automation.

FastPix emits a variety of media-related events that provide insights into the lifecycle of your media assets. These events cover key stages such as when a media upload is initiated, when a media asset is created, when it becomes ready for playback, and when it fails or is deleted. By subscribing to these events, you can monitor the status of your media assets in real time and automate workflows based on changes in media status. Whether you’re tracking direct uploads, push media, or live stream creation, these events help you stay informed and responsive to the state of your media library. Below is a detailed overview of the main media events emitted by FastPix and their significance in the media lifecycle.

video.media.upload

This event is triggered when a new media asset has been successfully created in the system. It indicates that the media metadata has been registered and the media object is now part of your library. You can use this to confirm that an upload, ingest, or other input operation has led to a new media entry on the platform.


NameTypeDescription
typestringType for the webhook event (e.g., "video.media.upload").
objectobjectObject information.
object.typestringType of the object (e.g., "media").
object.idstringUnique identifier for the object (e.g., "72c706ba-7c8f-458b-bfa5-3d283418ebdc").
idstringUnique identifier for the event (e.g., "134b9d7b-5ed4-4193-8cfb-9ffae9cc296c").
workspaceobjectWorkspace information.
workspace.namestringName for the workspace.
workspace.idstringUnique identifier for the workspace.
dataobjectMedia data details.
-data.uploadIdstringUnique identifier for the media. Max 255 characters.
-data.trialbooleanWhether the URL is for a trial (e.g., false).
-data.statusstringURL name or _ for allowing all (e.g., "waiting").
-data.urlstringURL for the media.
-data.timeoutintegerTime in seconds the signed upload URL is valid (e.g., 14400).
-data.corsOriginstringAllowed CORS origin (e.g., "*").
-data.pushMediaSettingsobjectPush media settings.
—data.pushMediaSettings.playbackIdsarrayPlayback settings for media.
---data.pushMediaSettings.playbackIds[].accessPolicystringAccess policy for playback IDs (e.g., "public").
----data.pushMediaSettings.playbackIds[].accessRestrictionsobjectAccess restrictions for playback IDs.
----data.pushMediaSettings.playbackIds[].accessRestrictions.domainsobjectDomain-based access control.
----data.pushMediaSettings.playbackIds[].accessRestrictions.domains.defaultPolicystringDefault access policy for domains (e.g., "allow").
----data.pushMediaSettings.playbackIds[].accessRestrictions.domains.allowarrayDomains allowed for playback.
----data.pushMediaSettings.playbackIds[].accessRestrictions.domains.denyarrayDomains denied for playback.
----data.pushMediaSettings.playbackIds[].accessRestrictions.userAgentsobjectUser-agent-based access control.
----data.pushMediaSettings.playbackIds[].accessRestrictions.userAgents.defaultPolicystringDefault access policy for user agents (e.g., "allow").
----data.pushMediaSettings.playbackIds[].accessRestrictions.userAgents.allowarrayUser agents allowed for playback.
----data.pushMediaSettings.playbackIds[].accessRestrictions.userAgents.denyarrayUser agents denied for playback.
-data.pushMediaSettings.metadataobjectMetadata for the media (e.g., "key1": "value1").
-data.pushMediaSettings.sourceAccessbooleanWhether source access is allowed (e.g., false).
-data.pushMediaSettings.optimizeAudiobooleanWhether audio optimization is enabled (e.g., false).
-data.pushMediaSettings.mediaQualitystringMedia quality tier for the upload (e.g., "pro").
-data.pushMediaSettings.titlestringTitle of the uploaded media (e.g., "videoplayback").
createdAtstring (ISO 8601)Timestamp when the event was created (e.g., "2025-04-07T09:30:10.239778258Z").
attemptsarrayList of attempts made to deliver the webhook.
-attempts[].webhookIdstringUnique identifier for the webhook attempt.
-attempts[].responseStatusCodeintegerHTTP response status code (e.g., 404).
-attempts[].responseHeadersobjectResponse headers for the webhook attempt.
—attempts[].responseHeaders.contentTypestringContent type of the response (e.g., "application/json").
—attempts[].responseHeaders.transferstringTransfer encoding (if any).
—attempts[].responseHeaders.serverstringServer used for the response (e.g., "nginx").
—attempts[].responseHeaders.datestringDate of the response (e.g., "Mon, 07 Apr 2025 09:30:10 GMT").
-attempts[].cacheControlstringCache control settings.
-attempts[].responseBodystringBody of the response (e.g., {"success":false,...}).
-attempts[].maxAttemptsintegerMaximum number of retry attempts (e.g., 30).
-attempts[].idstringUnique identifier for the attempt.
-attempts[].createdAtstring (ISO 8601)Timestamp when the attempt was created.
-attempts[].addressstringURL address of the webhook.

video.media.created

This event is fired when a direct upload has been initiated. It marks the start of the upload flow — typically when a user or system requests an upload URL and begins the process of sending a file. You can use this to track when users start uploading media to your app or service.


NameTypeDescription
typestringType of event (e.g., "video.media.created")
objectobject
- object.typestringType of the object (e.g., "media")
- object.idstringUnique identifier for the object (e.g., "3047ad1d-e241-4978-8c98-f08e57347847")
idstringUnique identifier for the event (e.g., "4d22d706-ea36-496b-ab8a-023a59f0ac3f")
workspaceobjectWorkspace information.
- workspace.namestringName of the workspace (e.g., "Development")
- workspace.idstringUnique identifier for the workspace (e.g., "6dc2b4e0-0615-42fd-a580-1f4aad932dfe")
statusstringStatus of the media (e.g., "media_created")
dataobject
- data.idstringUnique identifier for the media (e.g., "bb2f5c26-afe4-4ff1-b6d2-906b761adb15")
- data.trialbooleanIndicates whether the media is a trial (e.g., false)
- data.statusstringStatus of the media (e.g., "Created")
- data.createdAtstring (ISO 8601)Timestamp when the media was created (e.g., "2025-04-04T09:50:29.920507Z")
- data.updatedAtstring (ISO 8601)Timestamp when the media was last updated (e.g., "2025-04-04T09:50:29.920526Z")
- data.playbackIdsarrayList of playback IDs.
— data.playbackIds[].idstringUnique identifier for the playback ID (e.g., "39cff93a-c141-4f5e-816e-3c969f277a60")
— data.playbackIds[].accessPolicystringAccess policy for playback IDs (e.g., "public")
— data.playbackIds[].accessRestrictionsobjectAccess restrictions for domains and user agents.
--- data.playbackIds[].accessRestrictions.domainsobjectDomain-based access restrictions.
---- data.playbackIds[].accessRestrictions.domains.defaultPolicystringDefault policy for domains (e.g., "allow")
---- data.playbackIds[].accessRestrictions.domains.allowarrayList of allowed domains.
---- data.playbackIds[].accessRestrictions.domains.denyarrayList of denied domains.
--- data.playbackIds[].accessRestrictions.userAgentsobjectUser agent-based access restrictions.
---- data.playbackIds[].accessRestrictions.userAgents.defaultPolicystringDefault policy for user agents (e.g., "allow")
---- data.playbackIds[].accessRestrictions.userAgents.allowarrayList of allowed user agents.
---- data.playbackIds[].accessRestrictions.userAgents.denyarrayList of denied user agents.
- data.metadataobjectMetadata associated with the media.
— data.metadata.key1stringKey-value pair for metadata (e.g., "key1": "value1")
- data.sourceAccessbooleanIndicates if source access is enabled (e.g., true)
- data.maxResolutionstringMaximum resolution for encoding, storing, and streaming media (e.g., "1080p")
- data.inputsarrayList of media inputs.
— data.inputs[].typestringType of the media input (e.g., "video")
— data.inputs[].urlstringURL of the media input (e.g., "https://static.fastpix.com/sample.mp4")
- data.optimizeAudiobooleanIndicates if audio optimization is enabled (e.g., false)
- data.mediaQualitystringMedia quality tier for the media (e.g., "pro")
- data.titlestringTitle of the media (e.g., "fp-sample-video")
createdAtstring (ISO 8601)Timestamp when the event was created (e.g., "2025-04-04T09:50:30.946240483Z")
attemptsarrayList of attempts made to deliver the webhook.
- attempts[].webhookIdstringUnique identifier for the webhook attempt (e.g., "3b0ab5b1-6523-4c13-8012-1d096c150b8e")
- attempts[].responseStatusCodeintegerHTTP status code of the response (e.g., 404)
- attempts[].responseHeadersobjectResponse headers for the webhook attempt.
— attempts[].responseHeaders.contentTypestringContent type of the response (e.g., "application/json")
— attempts[].responseHeaders.transfer
— attempts[].responseHeaders.serverstringServer used for the response (e.g., "nginx")
— attempts[].responseHeaders.datestringDate of the response (e.g., "Fri, 04 Apr 2025 09:50:31 GMT")
— attempts[].responseHeaders.cacheControl
- attempts[].responseBodystringBody of the response (e.g., {"success":false,...})
- attempts[].maxAttemptsintegerMaximum number of retry attempts (e.g., 30)
- attempts[].idstringUnique identifier for the attempt (e.g., "cfa372da-e468-4ec4-bc50-ba6e0a84c03c")
- attempts[].createdAtstring (ISO 8601)Timestamp when the attempt was created (e.g., "2025-04-04T09:50:30.946240483Z")
- attempts[].addressstringURL address of the webhook (e.g., "https://webhook.site/24618f1c-c82c-4588-b9c6-1d86aac2a9b3")

video.upload.media_created

Once a user completes uploading a file through a direct upload URL, the system creates a corresponding media object, triggering this event. It signals that the uploaded file has been accepted and a media asset has been registered, though it may still be processing.


NameTypeDescription
typestringType for the webhook event (e.g., "video.upload.media_created")
objectobject
- object.typestringType of the object (e.g., "media")
- object.idstringUnique identifier for the object (e.g., "72c706ba-7c8f-458b-bfa5-3d283418ebdc")
idstringUnique identifier for the event (e.g., "09da05f0-051a-4e0a-97f5-14677fa4f072")
workspaceobject
- workspace.namestringName of the workspace (e.g., "Development")
- workspace.idstringUnique identifier for the workspace (e.g., "6dc2b4e0-0615-42fd-a580-1f4aad932dfe")
statusstringStatus of the media (e.g., "media_created")
dataobject
- data.idstringUnique identifier for the media (e.g., "d49e44c7-df42-4ffa-9764-8dea1543b63e")
- data.workspaceIdstringUnique identifier for the workspace (e.g., "6dc2b4e0-0615-42fd-a580-1f4aad932dfe")
- data.mediaQualitystringMedia quality tier for the media (e.g., "pro")
- data.maxResolutionstringMaximum resolution for encoding, storing, and streaming media (e.g., "1080p")
- data.playbackIdsarrayList of playback IDs.
— data.playbackIds[].idstringUnique identifier for the playback ID (e.g., "c123022c-32fb-4c53-acc6-2c09098ba0b5")
— data.playbackIds[].accessPolicystringAccess policy for playback IDs (e.g., "public")
— data.playbackIds[].accessRestrictionsobjectAccess restrictions for domains and user agents.
--- data.playbackIds[].accessRestrictions.domainsobjectDomain-based access restrictions.
---- data.playbackIds[].accessRestrictions.domains.defaultPolicystringDefault policy for domains (e.g., "allow")
---- data.playbackIds[].accessRestrictions.domains.allowarrayList of allowed domains.
---- data.playbackIds[].accessRestrictions.domains.denyarrayList of denied domains.
--- data.playbackIds[].accessRestrictions.userAgentsobjectUser agent-based access restrictions.
---- data.playbackIds[].accessRestrictions.userAgents.defaultPolicystringDefault policy for user agents (e.g., "allow")
---- data.playbackIds[].accessRestrictions.userAgents.allowarrayList of allowed user agents.
---- data.playbackIds[].accessRestrictions.userAgents.denyarrayList of denied user agents.
- data.sourceAccessbooleanIndicates if source access is enabled (e.g., false)
- data.mp4SupportstringMP4 support status (e.g., "none")
- data.optimizeAudiobooleanIndicates if audio optimization is enabled (e.g., false)
- data.durationstringDuration of the media (e.g., "00:00:00")
- data.createdAtstring (ISO 8601)Timestamp when the media was created (e.g., "2025-04-07T09:30:31.728664Z")
- data.updatedAtstring (ISO 8601)Timestamp when the media was last updated (e.g., "2025-04-07T09:30:31.728666Z")
createdAtstring (ISO 8601)Timestamp when the event was created (e.g., "2025-04-07T09:30:31.850369075Z")
attemptsarrayList of attempts made to deliver the webhook.
- attempts[].webhookIdstringUnique identifier for the webhook attempt (e.g., "3b0ab5b1-6523-4c13-8012-1d096c150b8e")
- attempts[].responseStatusCodeintegerHTTP status code of the response (e.g., 404)
- attempts[].responseHeadersobjectResponse headers for the webhook attempt.
— attempts[].responseHeaders.contentTypestringContent type of the response (e.g., "application/json")
— attempts[].responseHeaders.transfer
— attempts[].responseHeaders.serverstringServer used for the response (e.g., "nginx")
— attempts[].responseHeaders.datestringDate of the response (e.g., "Mon, 07 Apr 2025 09:30:32 GMT")
— attempts[].responseHeaders.cacheControl
- attempts[].responseBodystringBody of the response (e.g., {"success":false,...})
- attempts[].maxAttemptsintegerMaximum number of retry attempts (e.g., 30)
- attempts[].idstringUnique identifier for the attempt (e.g., "0390b11e-ebf5-410a-b8e4-80cbd23ab749")
- attempts[].createdAtstring (ISO 8601)Timestamp when the attempt was created (e.g., "2025-04-07T09:30:31.850369075Z")
- attempts[].addressstringURL address of the webhook (e.g., "https://webhook.site/24618f1c-c82c-4588-b9c6-1d86aac2a9b3")

video.media.ready

Once the media (either video or audio) has been fully processed and is ready for playback, this event is fired. At this stage, the playbackId becomes available, which means the media can be streamed or embedded within your application. This is one of the most critical signals for transitioning from ingest to playback.


NameTypeDescription
typestringType for the webhook event (e.g., "video.media.ready")
objectobject
- object.typestringType of the object (e.g., "media")
- object.idstringUnique identifier for the object (e.g., "72c706ba-7c8f-458b-bfa5-3d283418ebdc")
idstringUnique identifier for the event (e.g., "66320fbc-21df-406c-9b71-5c7260710d67")
workspaceobject
- workspace.namestringUnique identifier for the environment (e.g., "Development")
- workspace.idstringName for the environment (e.g., "6dc2b4e0-0615-42fd-a580-1f4aad932dfe")
statusstringStatus of the media (e.g., "ready")
dataobject
- data.thumbnailstringURL to the media thumbnail (e.g., "https://images.fastpix.com/c123022c-32fb-4c53-acc6-2c09098ba0b5/thumbnail.png")
- data.idstringUnique identifier for the media (e.g., "d49e44c7-df42-4ffa-9764-8dea1543b63e")
- data.workspaceIdstringWorkspace ID for the media (e.g., "6dc2b4e0-0615-42fd-a580-1f4aad932dfe")
- data.maxResolutionstringMaximum resolution for encoding (e.g., "1080p")
- data.sourceResolutionstringSource resolution for the media (e.g., "1080p")
- data.playbackIdsarrayPlayback settings for the media.
— data.playbackIds[].idstringUnique identifier for the playback ID (e.g., "c123022c-32fb-4c53-acc6-2c09098ba0b5")
— data.playbackIds[].accessPolicystringAccess policy for playback IDs (e.g., "public")
— data.playbackIds[].accessRestrictionsobjectAccess restrictions for playback IDs.
--- data.playbackIds[].accessRestrictions.domainsobjectDomain-based access control.
---- data.playbackIds[].accessRestrictions.domains.defaultPolicystringDefault access policy for domains (e.g., "allow")
---- data.playbackIds[].accessRestrictions.domains.allowarrayDomains allowed for playback (empty array means unrestricted)
---- data.playbackIds[].accessRestrictions.domains.denyarrayDomains denied for playback
--- data.playbackIds[].accessRestrictions.userAgentsobjectUser-agent-based access control
---- data.playbackIds[].accessRestrictions.userAgents.defaultPolicystringDefault access policy for user agents (e.g., "allow")
---- data.playbackIds[].accessRestrictions.userAgents.allowarrayUser agents allowed for playback
---- data.playbackIds[].accessRestrictions.userAgents.denyarrayUser agents denied for playback
- data.tracksarrayMedia tracks for the media
— data.tracks[].idstringUnique identifier for the track (e.g., "ed8b563c-7c3e-4bad-a74c-3e4ce0afa919")
— data.tracks[].typestringType of track (e.g., "audio", "video")
— data.tracks[].statusstringStatus of the track (e.g., "available")
— data.tracks[].languageCodestringLanguage code for the track (e.g., "und")
— data.tracks[].languageNamestringLanguage name for the track (e.g., "default")
— data.tracks[].widthWidth of the video (optional)
— data.tracks[].heightHeight of the video (optional)
— data.tracks[].frameRateFrame rate of the video (optional)
- data.sourceAccessbooleanWhether source access is allowed (e.g., false)
- data.mp4SupportstringMP4 support for the media (e.g., "none")
- data.optimizeAudiobooleanWhether audio optimization is enabled (e.g., false)
- data.durationstringDuration of the media (e.g., "00:00:22")
- data.aspectRatiostringAspect ratio for the media (e.g., "16:9")
- data.createdAtstring (ISO 8601)Timestamp when the media was created (e.g., "2025-04-07T08:42:46.158789Z")
- data.updatedAtstring (ISO 8601)Timestamp when the media was last updated (e.g., "2025-04-07T08:42:55.921248Z")
- data.mediaQualitystringMedia quality tier for the media (e.g., "pro")
createdAtstring (ISO 8601)Timestamp when the event was created (e.g., "2025-04-07T09:30:40.636687200Z")
attemptsarrayList of attempts made to deliver the webhook.
- attempts[].webhookIdstringUnique identifier for the webhook attempt (e.g., "3b0ab5b1-6523-4c13-8012-1d096c150b8e")
- attempts[].responseStatusCodeintegerHTTP status code of the response (e.g., 404)
- attempts[].responseHeadersobjectResponse headers for the webhook attempt.
— attempts[].responseHeaders.contentTypestringContent type of the response (e.g., "application/json")
— attempts[].responseHeaders.transferTransfer encoding (if any)
— attempts[].responseHeaders.serverstringServer used for the response (e.g., "nginx")
— attempts[].responseHeaders.datestringDate of the response (e.g., "Mon, 07 Apr 2025 09:30:40 GMT")
— attempts[].responseHeaders.cacheControlCache control settings (if any)
- attempts[].responseBodystringBody of the response (e.g., {"success":false,...})
- attempts[].maxAttemptsintegerMaximum number of retry attempts (e.g., 30)
- attempts[].idstringUnique identifier for the attempt (e.g., "d3380d25-564d-48c7-9baf-82aabef9c191")
- attempts[].createdAtstring (ISO 8601)Timestamp when the attempt was created (e.g., "2025-04-07T09:30:40.636687200Z")
- attempts[].addressstringURL address of the webhook (e.g., "https://webhook.site/24618f1c-c82c-4588-b9c6-1d86aac2a9b3")

video.media.non_standard_format.detected

This event is triggered when the platform detects that an uploaded media asset uses a non-standard format (for example, an unusually high bitrate) that may affect processing or playback. Use this to flag or re-encode media that falls outside recommended encoding parameters.


NameTypeDescription
typestringType for the webhook event (e.g., "video.media.non_standard_format.detected")
objectobject
- object.typestringType of the object (e.g., "media")
- object.idstringUnique identifier for the object (e.g., "3047ad1d-e241-4978-8c98-f08e57347847")
idstringUnique identifier for the event (e.g., "986d0f91-e1a9-4ac1-a4b9-2c14cf6be138")
workspaceobject
- workspace.namestringName of the workspace (e.g., "Development")
- workspace.idstringUnique identifier for the workspace (e.g., "338acdeb-29d4-438b-a40c-1d4105134462")
statusstringStatus of the media (e.g., "media_created")
dataobject
- data.idstringUnique identifier for the media (e.g., "3047ad1d-e241-4978-8c98-f08e57347847")
- data.workspaceIdstringUnique identifier for the workspace (e.g., "338acdeb-29d4-438b-a40c-1d4105134462")
- data.mediaQualitystringMedia quality tier for the media (e.g., "pro")
- data.maxResolutionstringMaximum resolution for encoding, storing, and streaming media (e.g., "1080p")
- data.sourceAccessbooleanIndicates if source access is enabled (e.g., false)
- data.mp4SupportstringMP4 support status (e.g., "none")
- data.optimizeAudiobooleanIndicates if audio optimization is enabled (e.g., false)
- data.durationstringDuration of the media (e.g., "00:00:00")
- data.createdAtstring (ISO 8601)Timestamp when the media was created (e.g., "2026-07-01T08:55:44.982516Z")
- data.updatedAtstring (ISO 8601)Timestamp when the media was last updated (e.g., "2026-07-01T08:55:49.588318Z")
- data.nonStandardFormatReasonobjectDetails of the non-standard format that was detected.
— data.nonStandardFormatReason.bitratestringReason describing the non-standard bitrate (e.g., "very_high - 40.09Mbps")
createdAtstring (ISO 8601)Timestamp when the event was created (e.g., "2026-07-01T08:55:49.860910401Z")
attemptsarrayList of attempts made to deliver the webhook.

video.media.failed

If a media asset encounters an error during processing, this event is triggered. Common causes include invalid input files, corrupted data, or inaccessible URLs. This is a key signal to notify your system or end users that something went wrong, enabling better error reporting and handling workflows.


NameTypeDescription
typestringType of event (e.g., "video.media.failed").
objectobjectObject information.
object.typestringType of the object (e.g., "media").
object.idstringUnique identifier for the object (e.g., "0535af74-0f63-4703-a2d8-f37a595a1794").
idstringUnique identifier for the event.
workspaceobjectWorkspace information.
workspace.namestringName of the workspace (e.g., "Development").
workspace.idstringUnique identifier for the workspace.
statusstringStatus of the media (e.g., "failed").
dataobjectMedia data object.
-data.idstringUnique identifier for the media.
-data.workspaceIdstringUnique identifier for the workspace.
-data.mediaQualitystringMedia quality tier for the media (e.g., "pro").
-data.maxResolutionstringMaximum resolution for encoding, storing, and streaming media.
-data.playbackIdsarrayList of playback IDs.
—data.playbackIds[].idstringUnique identifier for the playback ID.
—data.playbackIds[].accessPolicystringAccess policy for playback IDs.
—data.playbackIds[].accessRestrictionsobjectAccess restrictions for domains and user agents.
---data.playbackIds[].accessRestrictions.domainsobjectDomain-based access restrictions.
----data.playbackIds[].accessRestrictions.domains.defaultPolicystringDefault policy for domains.
----data.playbackIds[].accessRestrictions.domains.allowarrayList of allowed domains.
----data.playbackIds[].accessRestrictions.domains.denyarrayList of denied domains.
----data.playbackIds[].accessRestrictions.userAgentsobjectUser agent-based access restrictions.
----data.playbackIds[].accessRestrictions.userAgents.defaultPolicystringDefault policy for user agents.
----data.playbackIds[].accessRestrictions.userAgents.allowarrayList of allowed user agents.
----data.playbackIds[].accessRestrictions.userAgents.denyarrayList of denied user agents.
-data.sourceAccessbooleanIndicates if source access is enabled.
-data.mp4SupportstringIndicates MP4 support (e.g., "none").
-data.optimizeAudiobooleanIndicates if audio optimization is enabled.
-data.durationstringDuration of the media (e.g., "00:00:00").
-data.createdAtstring (ISO 8601)Timestamp when the media was created.
-data.updatedAtstring (ISO 8601)Timestamp when the media was last updated.
createdAtstring (ISO 8601)Timestamp when the event was created.
attemptsarrayList of attempts made to deliver the webhook.
-attempts[].webhookIdstringUnique identifier for the webhook attempt.
-attempts[].responseStatusCodeintegerHTTP status code of the response.
-attempts[].responseHeadersobjectResponse headers for the webhook attempt.
—attempts[].responseHeaders.contentTypestringContent type of the response.
—attempts[].responseHeaders.transferstringTransfer encoding (if any).
—attempts[].responseHeaders.serverstringServer used for the response.
—attempts[].responseHeaders.datestringDate of the response.
—attempts[].responseHeaders.cacheControlstringCache control headers (if any).
-attempts[].responseBodystringBody of the response (e.g., {"success":false,...}).
-attempts[].maxAttemptsintegerMaximum number of retry attempts.
-attempts[].idstringUnique identifier for the attempt.
-attempts[].createdAtstring (ISO 8601)Timestamp when the attempt was created.
-attempts[].addressstringURL address of the webhook.

video.media.updated

This event occurs when any updates are made to an existing media asset. Changes might include modifications to metadata, privacy settings, thumbnail updates, or other attributes related to the media. Use this webhook to keep your system in sync with any adjustments made on the platform.


NameTypeDescription
typestringType of event (e.g., “video.media.updated”).
objectobject
- object.typestringType of the object (e.g., "media").
- object.idstringUnique identifier for the object (e.g., "3047ad1d-e241-4978-8c98-f08e57347847").
idstringUnique identifier for the event (e.g., “35f0f881-2b84-47b5-b592-559269fb62eb”).
workspaceobjectWorkspace information.
- workspace.namestringName of the workspace (e.g., “Development”).
- workspace.idstringUnique identifier for the workspace (e.g., “6dc2b4e0-0615-42fd-a580-1f4aad932dfe”).
statusstringStatus of the media (e.g., “media_created”).
dataobjectAdditional data related to the event.
- data.mediaQualitystringMedia quality tier for the media (e.g., "pro").
- data.thumbnailstringURL to the media thumbnail.
- data.metadataobjectUser-supplied metadata associated with the media.
- data.sourceResolutionstringSource resolution of the media (e.g., "1080").
- data.creatorIdstringIdentifier of the media creator (e.g., "5463425").
- data.sourceAccessbooleanIndicates if source access is enabled (e.g., false).
- data.isAudioOnlybooleanIndicates if the media contains only audio (e.g., false).
- data.aspectRatiostringAspect ratio for the media (e.g., "16:9").
- data.titlestringTitle of the media (e.g., "update-media").
- data.subtitleAvailablebooleanIndicates if subtitles are available (e.g., false).
- data.playbackIdsarrayList of playback IDs.
— data.playbackIds[].idstringUnique identifier for the playback ID.
— data.playbackIds[].accessPolicystringAccess policy for playback IDs (e.g., "public").
— data.playbackIds[].accessRestrictionsobjectAccess restrictions for domains and user agents.
--- data.playbackIds[].accessRestrictions.domainsobjectDomain-based access restrictions.
---- data.playbackIds[].accessRestrictions.domains.defaultPolicystringDefault policy for domains (e.g., "allow").
---- data.playbackIds[].accessRestrictions.domains.allowarrayList of allowed domains.
---- data.playbackIds[].accessRestrictions.domains.denyarrayList of denied domains.
--- data.playbackIds[].accessRestrictions.userAgentsobjectUser agent-based access restrictions.
---- data.playbackIds[].accessRestrictions.userAgents.defaultPolicystringDefault policy for user agents (e.g., "allow").
---- data.playbackIds[].accessRestrictions.userAgents.allowarrayList of allowed user agents.
---- data.playbackIds[].accessRestrictions.userAgents.denyarrayList of denied user agents.
- data.tracksarrayMedia tracks for the media.
— data.tracks[].idstringUnique identifier for the track.
— data.tracks[].typestringType of track (e.g., "audio", "video").
— data.tracks[].statusstringStatus of the track (e.g., "available").
— data.tracks[].widthintegerWidth of the video track (optional).
— data.tracks[].heightintegerHeight of the video track (optional).
— data.tracks[].frameRatestringFrame rate of the video track (optional).
— data.tracks[].languageCodestringLanguage code for the track (e.g., "und").
— data.tracks[].languageNamestringLanguage name for the track (e.g., "default").
- data.maxResolutionstringMaximum resolution for the media (e.g., "1080p").
- data.durationstringDuration of the media (e.g., "00:00:10").
- data.thirdPartyIdstringThird-party identifier for the media.
- data.createdAtstring (ISO 8601)Timestamp when the media was created (e.g., "2026-07-01T08:55:44.982516Z").
- data.generatedSubtitlesarrayList of generated subtitles for the media.
- data.idstringUnique identifier for the media (e.g., "3047ad1d-e241-4978-8c98-f08e57347847").
- data.workspaceIdstringUnique identifier for the workspace (e.g., "338acdeb-29d4-438b-a40c-1d4105134462").
- data.statusstringStatus of the media (e.g., "Ready").
- data.updatedAtstring (ISO 8601)Timestamp when the media was last updated (e.g., "2026-07-01T09:01:09.224330Z").
createdAtstringDate and time when the event was created (e.g., “2025-04-09T05:27:47.373470087Z”).
attemptsarrayList of attempts made to handle the webhook.
- attempts.webhookIdstringUnique identifier for the webhook attempt (e.g., “3b0ab5b1-6523-4c13-8012-1d096c150b8e”).
- attempts.responseStatusCodeintResponse status code from the webhook (e.g., 404).
- attempts.responseHeadersobjectResponse headers returned from the webhook.
- attempts.responseHeaders.contentTypestringContent type in the response header (e.g., “application/json”).
- attempts.responseHeaders.transferstringTransfer encoding in the response header (e.g., “chunked”).
- attempts.responseHeaders.serverstringServer used in the response (e.g., “nginx”).
- attempts.responseHeaders.datestringDate of the response (e.g., “Wed, 09 Apr 2025 05:27:47 GMT”).
- attempts.responseHeaders.cacheControlstringCache control directives (e.g., “no-cache, private”).
- attempts.responseBodystringResponse body returned from the webhook (e.g., {"success":false,"error":{"message":"Token \"24618f1c-c82c-4588-b9c6-1d86aac2a9b3\" not found","id":""}})
- attempts.maxAttemptsintMaximum number of allowed attempts (e.g., 30).
- attempts.idstringUnique identifier for the attempt (e.g., “9a7b39a9-7c1e-4937-8427-33929c4676e9”).
- attempts.createdAtstringDate and time when the attempt was created (e.g., “2025-04-09T05:27:47.373470087Z”).
- attempts.addressstringWebhook address


video.media.deleted

This event is triggered when a media asset has been permanently deleted from the system. It serves as a signal to remove any references to the media from your database or UI, as the content is no longer accessible or playable.


NameTypeDescription
typestringType for the webhook event (e.g., "video.media.deleted").
objectobjectObject information.
object.typestringType of the object (e.g., "media").
object.idstringUnique identifier for the object (e.g., "3047ad1d-e241-4978-8c98-f08e57347847").
idstringUnique identifier for the event.
workspaceobjectWorkspace information.
workspace.namestringUnique identifier for the environment (e.g., null).
workspace.idstringName for the environment (e.g., "6dc2b4e0-0615-42fd-a580-1f4aad932dfe").
statusstringStatus of the media (e.g., "media_created").
dataobjectEvent-specific data.
data.successbooleanIndicates if the media deletion was successful (e.g., true).
createdAtstring (ISO 8601)Timestamp when the event was created.
attemptsarrayList of attempts made to deliver the webhook.
attempts[].webhookIdstringUnique identifier for the webhook attempt.
attempts[].responseStatusCodeintegerHTTP status code of the response.
attempts[].responseHeadersobjectResponse headers for the webhook attempt.
attempts[].responseHeaders.contentTypestringContent type of the response (e.g., "application/json").
attempts[].responseHeaders.transferstringTransfer encoding (if applicable).
attempts[].responseHeaders.serverstringServer used for the response (e.g., "nginx").
attempts[].responseHeaders.datestringDate of the response.
attempts[].responseHeaders.cacheControlstringCache control headers (if any).
attempts[].responseBodystringBody of the response (e.g., {"success":false,...}).
attempts[].maxAttemptsintegerMaximum number of retry attempts (e.g., 30).
attempts[].idstringUnique identifier for the attempt.
attempts[].createdAtstring (ISO 8601)Timestamp when the attempt was created.
attempts[].addressstringURL address of the webhook.

video.media.live_stream.created

Triggered when a live stream has ended and the recorded session is successfully saved as an on-demand media asset. This event indicates that a manifest file has been generated and a playbackId is now available for streaming. It’s typically used to initiate downstream workflows like publishing the recorded content, updating the media library, or notifying users that the replay is ready. This event is critical for platforms that offer live-to-VOD workflows, such as sports replays, webinars, or events with post-stream availability.


NameTypeDescription
typestringType of event (e.g., video.media.live_stream.created).
idstringUnique identifier for the event (e.g., a1d42951-0343-4092-a50f-a172fe6a734d).
objectobjectInformation about the media object.
─ object.typestringType of object (e.g., media).
─ object.idstringUnique identifier for the media object (e.g., 03233fc7-4fef-4b4e-b9b8-a320dbdfe00c).
workspaceobjectWorkspace information.
─ workspace.namestringName of the workspace (e.g., FastPix website and docs videos).
─ workspace.idstringUnique identifier for the workspace (e.g., 89391808-c367-41b2-8561-c6e05ea22dfc).
statusstringStatus of the media (e.g., media_created).
dataobjectAdditional data related to the event.
─ data.idstringUnique identifier for the media (same as object.id).
─ data.workspaceIdstringID of the workspace the media belongs to.
─ data.mediaQualitystringMedia quality tier for the media (e.g., pro).
─ data.maxResolutionstringMaximum resolution available (e.g., 1080p).
─ data.playbackIdsarrayArray of playback ID objects.
─── idstringPlayback ID (e.g., f59844b5-0775-43f6-b170-8c871d6dee57).
─── accessPolicystringPlayback access policy (e.g., public).
─── accessRestrictionsobjectDomain and user agent-based access rules.
──── domainsobjectDomain restriction settings.
───── defaultPolicystringDefault domain policy (e.g., allow).
───── allowarrayList of allowed domains.
───── denyarrayList of denied domains.
──── userAgentsobjectUser-agent restriction settings.
───── defaultPolicystringDefault user-agent policy (e.g., allow).
───── allowarrayList of allowed user agents.
───── denyarrayList of denied user agents.
─ data.sourceAccessbooleanWhether source access is enabled (e.g., false).
─ data.mp4SupportstringMP4 support status (e.g., none).
─ data.optimizeAudiobooleanWhether audio optimization is enabled (e.g., false).
─ data.durationstringDuration of the video (e.g., 00:02:38).
─ data.createdAtstringTimestamp when the media was created (e.g., 2025-02-25T10:44:30.466315Z).
─ data.updatedAtstringTimestamp when the media was last updated (e.g., 2025-02-25T10:44:30.466323Z).
createdAtstringTimestamp when the event was created (e.g., 2025-02-25T10:44:30.488707977Z).
attemptsarrayList of processing attempts (empty array if none).

video.media.live_clip.created

Triggered when a clip is created from a live stream and saved as an on-demand media asset. This event indicates that a new media object has been generated for the clip and a playbackId is now available for streaming. Use it to publish live clips, update the media library, or notify users that the clip is ready.


NameTypeDescription
typestringType of event (e.g., video.media.live_clip.created).
idstringUnique identifier for the event (e.g., db3a5953-1f3a-4eca-9520-42152a369f99).
objectobjectInformation about the media object.
─ object.typestringType of object (e.g., media).
─ object.idstringUnique identifier for the media object (e.g., ebb227a2-5d05-438d-8161-5b159bbeb5c2).
workspaceobjectWorkspace information.
─ workspace.namestringName of the workspace (e.g., Development).
─ workspace.idstringUnique identifier for the workspace (e.g., 338acdeb-29d4-438b-a40c-1d4105134462).
statusstringStatus of the media (e.g., media_created).
dataobjectAdditional data related to the event.
─ data.idstringUnique identifier for the media (same as object.id).
─ data.workspaceIdstringID of the workspace the media belongs to.
─ data.mediaQualitystringMedia quality tier for the media (e.g., pro).
─ data.maxResolutionstringMaximum resolution available (e.g., 1080p).
─ data.sourceAccessbooleanWhether source access is enabled (e.g., false).
─ data.mp4SupportstringMP4 support status (e.g., none).
─ data.optimizeAudiobooleanWhether audio optimization is enabled (e.g., false).
─ data.durationstringDuration of the video (e.g., 00:00:00).
─ data.createdAtstringTimestamp when the media was created (e.g., 2026-07-01T09:27:59.992006Z).
─ data.updatedAtstringTimestamp when the media was last updated (e.g., 2026-07-01T09:27:59.992006Z).
─ data.playbackIdsarrayArray of playback ID objects.
─── idstringPlayback ID (e.g., a1f24878-2fef-4c18-b17c-9c2557866a24).
─── accessPolicystringPlayback access policy (e.g., public).
─── accessRestrictionsobjectDomain and user agent-based access rules.
──── domainsobjectDomain restriction settings.
───── defaultPolicystringDefault domain policy (e.g., allow).
───── allowarrayList of allowed domains.
───── denyarrayList of denied domains.
──── userAgentsobjectUser-agent restriction settings.
───── defaultPolicystringDefault user-agent policy (e.g., allow).
───── allowarrayList of allowed user agents.
───── denyarrayList of denied user agents.
createdAtstringTimestamp when the event was created (e.g., 2026-07-01T09:28:00.070107683Z).
attemptsarrayList of processing attempts (empty array if none).

video.media.upload.cancelled

FieldTypeExampleDescription
typestring”video.media.upload.cancelled”The event type.
object.typestring”media”The type of the object related to the event.
object.idstring”9a9038fa-e79d-4a6e-8f73-200a8b7a28fa”The unique identifier of the media object.
idstring”5e4271c2-d2cd-4d2f-8343-cead89aba166”The unique identifier for this event.
workspace.namestring”Development”The name of the workspace where the event occurred.
workspace.idstring”ba52f106-1f3f-4a2a-84dd-1b7f96b35604”The unique identifier of the workspace.
data.uploadIdstring”9a9038fa-e79d-4a6e-8f73-200a8b7a28fa”The unique identifier of the upload.
data.trialbooleanfalseIndicates if the upload was a trial.
data.statusstring”waiting”The status of the upload at the time of cancellation.
data.urlstringhttps://example.com/upload?signature=…”The signed URL for the upload.
data.timeoutinteger14400The timeout value for the upload (in seconds).
data.corsOriginstring”*“The CORS origin allowed for the upload.
data.pushMediaSettings.playbackIdsarray (objects)[{“accessPolicy”:“public”,“accessRestrictions”:{}}]Playback IDs and their access policies/restrictions.
data.pushMediaSettings.metadataobject{“name”:“fastpix”}Metadata associated with the upload.
data.pushMediaSettings.sourceAccessbooleanfalseWhether the original media file is accessible.
data.pushMediaSettings.optimizeAudiobooleanfalseWhether audio optimization was enabled.
data.pushMediaSettings.mediaQualitystring”pro”The media quality tier for the upload.
data.pushMediaSettings.thirdPartyIdstring”13456783”A third-party identifier associated with the upload.
createdAtstring”2025-04-07T09:30:40.636Z”The creation time of the event (ISO 8601).
attemptsarray[]List of attempts (if any) for this event.

video.playbackId.created

Triggered when a new playback ID is created for a media asset. The event includes the playback ID’s access policy and any access restrictions applied to domains and user agents.


NameTypeDescription
typestringType of event (e.g., “video.playbackId.created”).
objectobjectObject information.
- object.typestringType of the object (e.g., “media”).
- object.idstringUnique identifier for the media object (e.g., “b9856f45-e166-4e11-b05c-c0e13dafd656”).
idstringUnique identifier for the event (e.g., “cb31abc0-7f39-4176-995b-02b18be725e1”).
workspaceobjectWorkspace information.
- workspace.namestringName of the workspace (e.g., “Development”).
- workspace.idstringUnique identifier for the workspace (e.g., “338acdeb-29d4-438b-a40c-1d4105134462”).
statusstringStatus of the media (e.g., “media_created”).
dataobject
- data.idstringUnique identifier for the playback ID (e.g., “8991e06b-8fdc-49a4-8a72-bde51bd3f556”).
- data.accessPolicystringAccess policy for the playback ID (e.g., “public”).
- data.accessRestrictionsobjectAccess restrictions for domains and user agents.
— data.accessRestrictions.userAgentsobjectUser agent-based access restrictions.
--- data.accessRestrictions.userAgents.allowarrayList of allowed user agents.
--- data.accessRestrictions.userAgents.defaultPolicystringDefault policy for user agents (e.g., “allow”).
--- data.accessRestrictions.userAgents.denyarrayList of denied user agents.
— data.accessRestrictions.domainsobjectDomain-based access restrictions.
--- data.accessRestrictions.domains.allowarrayList of allowed domains.
--- data.accessRestrictions.domains.defaultPolicystringDefault policy for domains (e.g., “allow”).
--- data.accessRestrictions.domains.denyarrayList of denied domains.
- data.resolutionstringResolution associated with the playback ID (e.g., null).
createdAtstring (ISO 8601)Timestamp when the event was created.
attemptsarrayList of attempts made to deliver the webhook.

video.playbackId.deleted

Triggered when a playback ID is deleted from a media asset. The event includes the playback ID, its access policy, and any access restrictions that were applied.


NameTypeDescription
typestringType of event (e.g., “video.playbackId.deleted”).
objectobjectObject information.
- object.typestringType of the object (e.g., “media”).
- object.idstringUnique identifier for the media object (e.g., “b9856f45-e166-4e11-b05c-c0e13dafd656”).
idstringUnique identifier for the event (e.g., “cb31abc0-7f39-4176-995b-02b18be725e1”).
workspaceobjectWorkspace information.
- workspace.namestringName of the workspace (e.g., “Development”).
- workspace.idstringUnique identifier for the workspace (e.g., “338acdeb-29d4-438b-a40c-1d4105134462”).
statusstringStatus of the media (e.g., “media_created”).
dataobject
- data.idstringUnique identifier for the playback ID (e.g., “8991e06b-8fdc-49a4-8a72-bde51bd3f556”).
- data.accessPolicystringAccess policy for the playback ID (e.g., “public”).
- data.accessRestrictionsobjectAccess restrictions for domains and user agents.
— data.accessRestrictions.userAgentsobjectUser agent-based access restrictions.
--- data.accessRestrictions.userAgents.allowarrayList of allowed user agents.
--- data.accessRestrictions.userAgents.defaultPolicystringDefault policy for user agents (e.g., “allow”).
--- data.accessRestrictions.userAgents.denyarrayList of denied user agents.
— data.accessRestrictions.domainsobjectDomain-based access restrictions.
--- data.accessRestrictions.domains.allowarrayList of allowed domains.
--- data.accessRestrictions.domains.defaultPolicystringDefault policy for domains (e.g., “allow”).
--- data.accessRestrictions.domains.denyarrayList of denied domains.
- data.resolutionstringResolution associated with the playback ID (e.g., null).
createdAtstring (ISO 8601)Timestamp when the event was created.
attemptsarrayList of attempts made to deliver the webhook.

video.playbackId.domains.updated

Triggered when the domain-based access restrictions for a playback ID are updated. The event includes the updated allow list, deny list, and default policy for domains.


NameTypeDescription
typestringType of event (e.g., “video.playbackId.domains.updated”).
objectobjectObject information.
- object.typestringType of the object (e.g., “media”).
- object.idstringUnique identifier for the media object (e.g., “b9856f45-e166-4e11-b05c-c0e13dafd656”).
idstringUnique identifier for the event (e.g., “ae3e424e-7c9a-45c8-a9d0-9f8624535a68”).
workspaceobjectWorkspace information.
- workspace.namestringName of the workspace (e.g., “Development”).
- workspace.idstringUnique identifier for the workspace (e.g., “338acdeb-29d4-438b-a40c-1d4105134462”).
statusstringStatus of the media (e.g., “media_created”).
dataobject
- data.allowarrayList of allowed domains (e.g., [“livepush.io”]).
- data.defaultPolicystringDefault policy for domains (e.g., “deny”).
- data.denyarrayList of denied domains.
createdAtstring (ISO 8601)Timestamp when the event was created.
attemptsarrayList of attempts made to deliver the webhook.

video.playbackId.user-agents.updated

Triggered when the user-agent-based access restrictions for a playback ID are updated. The event includes the updated allow list, deny list, and default policy for user agents.


NameTypeDescription
typestringType of event (e.g., “video.playbackId.user-agents.updated”).
objectobjectObject information.
- object.typestringType of the object (e.g., “media”).
- object.idstringUnique identifier for the media object (e.g., “b9856f45-e166-4e11-b05c-c0e13dafd656”).
idstringUnique identifier for the event (e.g., “ce09f91b-1c24-4314-897e-9551a5666eff”).
workspaceobjectWorkspace information.
- workspace.namestringName of the workspace (e.g., “Development”).
- workspace.idstringUnique identifier for the workspace (e.g., “338acdeb-29d4-438b-a40c-1d4105134462”).
statusstringStatus of the media (e.g., “media_created”).
dataobject
- data.allowarrayList of allowed user agents (e.g., a browser user-agent string).
- data.defaultPolicystringDefault policy for user agents (e.g., “deny”).
- data.denyarrayList of denied user agents.
createdAtstring (ISO 8601)Timestamp when the event was created.
attemptsarrayList of attempts made to deliver the webhook.