Login

Media events


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").
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).
created_atstring (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")
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.io/sample.mp4")
- data.subtitlesobjectSubtitles associated with the media (e.g., an empty object).
- data.optimizeAudiobooleanIndicates if audio optimization is enabled (e.g., false)
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")
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.metadataobjectMetadata associated with the media.
-- data.metadata.key1stringA key-value pair for metadata (e.g., "key1": "value1")
- 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")
created_atstring (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")
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.io/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.metadataobjectMetadata for the media (e.g., "key1": "value1")
- 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")
created_atstring (ISO 8601)Timestamp when the event was created (e.g., "2025-04-07T09:30:40.636687200Z")
updated_atstring (ISO 8601)Timestamp when the media was last updated (e.g., "2025-04-07T09:30:40.614230Z")
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.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").
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.metadataobjectMetadata associated with the media.
--data.metadata.key1stringKey-value pair for metadata.
-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 for the webhook event
idstringUnique identifier for the event
environmentobject
- environment.namestringUnique identifier for the environment (e.g., "fastpix")
- environment.idstringName for the environment (e.g., "9oa85f64-5717-4562-b3fc-2c963f66afa6")
dataobject
- data.idstringUnique identifier for the media. Max 255 characters.
- data.created_atinteger
- data.durationnumberThe duration of the media in seconds (max duration for a single media is 12 hours).
- data.maxresolutionstringThe maximum resolution tier for the media. Default is 1080p if omitted.
- data.availableresolutionstringThe maximum resolution tier for the media. Default is 1080p if omitted.
- data.encoding_tierstringThe encoding tier informs the cost, quality, and available platform features for the media. Default is smart encoding tier.
- data.aspect_ratiostringThe aspect ratio of the media in the form of width:height (e.g., 16:9).
- data.playback_idsobject
-- data.playback_ids.idstringUnique identifier for the PlaybackID (e.g., "public")
-- data.playback_ids[].accessPolicystringAccess policy for playback IDs. Possible values: "public", "private", "drm".
- data.tracksobject
-- data.tracks[].idstringUniversal unique identifier for the track. Max 255 characters.
-- data.tracks[].typestringIndividual media tracks that make up the media. Possible values: "video", "audio", "text".
-- data.tracks[].widthnumberMaximum width in pixels available for the track (only for video type).
-- data.tracks[].heightnumberMaximum height in pixels available for the track (only for video type).
-- data.tracks[].frameRatenumberMaximum frame rate available for the track (may return -1 if undetermined).
-- data.tracks[].closed_captionsstringIndicates if the track provides Subtitles for the Deaf or Hard-of-hearing (SDH). Only for text tracks with type "subtitles".
- data.testbooleanTrue if this live stream is a test media. Test media is watermarked, limited to 10 seconds, and deleted after 24 hours.
- data.statusstringThe status of the media. Possible values: "created", "waiting", "preparing", "ready", "failed".
- data.ingest_typestringPossible values: "on_demand_url", "on_demand_direct_upload", "on_demand_clip", "live_rtmp", "live_srt".
created_atintegerUnique identifier for the webhook.
attemptsarray
accessor_sourcestring
accessorstring


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").
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.