Skip to content
Get started

Webhook Endpoints

Create
POST/projects/{projectId}/webhook-endpoints
Delete
DELETE/projects/{projectId}/webhook-endpoints/{webhookEndpointId}
List
GET/projects/{projectId}/webhook-endpoints
Update
PUT/projects/{projectId}/webhook-endpoints/{webhookEndpointId}
ModelsExpand Collapse
WebhookEndpointCreateResponse object { webhookEndpoint }
webhookEndpoint: object { id, createdAt, enabled, 9 more }

The creation response, and the only one that carries the secret: it is generated once and never returned again, so a client that loses it has to recreate the endpoint.

id: string

The ID of the webhook endpoint

createdAt: string

The date and time the webhook endpoint was created

enabled: boolean

Whether the webhook is enabled

enabledEvents: array of "*" or "asset.download.completed" or "asset.download.created" or 16 more

The events that trigger the webhook. [’*’] indicates that all events are enabled

One of the following:
"*"
"asset.download.completed"
"asset.download.created"
"asset.download.failed"
"generation.completed"
"generation.created"
"generation.failed"
"inference.cancelled"
"inference.completed"
"inference.created"
"inference.failed"
"model.download.completed"
"model.download.created"
"model.download.failed"
"model.training.cancelled"
"model.training.completed"
"model.training.failed"
"model.training.started"
"team.credit.threshold.crossed"
nbFailedCalls: number

The number of calls to the webhook endpoint that have failed

nbTotalCalls: number

The number of calls to the webhook endpoint

ownerId: string

The ID of the owner of the webhook endpoint: a project id for job lifecycle events, a team id for alert events

ownerType: "project" or "team"

Whether the owner is a project or a team. Required to tell them apart: a project created before the team/project split shares its team’s id

One of the following:
"project"
"team"
secret: string

The endpoint’s secret, used to generate webhook signatures

updatedAt: string

The date and time the webhook endpoint was updated

url: string

The URL of the webhook endpoint

description: optional string

A description of the webhook endpoint

WebhookEndpointDeleteResponse = unknown
WebhookEndpointListResponse object { webhookEndpoints }
webhookEndpoints: array of object { id, createdAt, enabled, 8 more }

A list of the project webhooks

id: string

The ID of the webhook endpoint

createdAt: string

The date and time the webhook endpoint was created

enabled: boolean

Whether the webhook is enabled

enabledEvents: array of "*" or "asset.download.completed" or "asset.download.created" or 16 more

The events that trigger the webhook. [’*’] indicates that all events are enabled

One of the following:
"*"
"asset.download.completed"
"asset.download.created"
"asset.download.failed"
"generation.completed"
"generation.created"
"generation.failed"
"inference.cancelled"
"inference.completed"
"inference.created"
"inference.failed"
"model.download.completed"
"model.download.created"
"model.download.failed"
"model.training.cancelled"
"model.training.completed"
"model.training.failed"
"model.training.started"
"team.credit.threshold.crossed"
nbFailedCalls: number

The number of calls to the webhook endpoint that have failed

nbTotalCalls: number

The number of calls to the webhook endpoint

ownerId: string

The ID of the owner of the webhook endpoint: a project id for job lifecycle events, a team id for alert events

ownerType: "project" or "team"

Whether the owner is a project or a team. Required to tell them apart: a project created before the team/project split shares its team’s id

One of the following:
"project"
"team"
updatedAt: string

The date and time the webhook endpoint was updated

url: string

The URL of the webhook endpoint

description: optional string

A description of the webhook endpoint

WebhookEndpointUpdateResponse object { webhookEndpoint }
webhookEndpoint: object { id, createdAt, enabled, 8 more }
id: string

The ID of the webhook endpoint

createdAt: string

The date and time the webhook endpoint was created

enabled: boolean

Whether the webhook is enabled

enabledEvents: array of "*" or "asset.download.completed" or "asset.download.created" or 16 more

The events that trigger the webhook. [’*’] indicates that all events are enabled

One of the following:
"*"
"asset.download.completed"
"asset.download.created"
"asset.download.failed"
"generation.completed"
"generation.created"
"generation.failed"
"inference.cancelled"
"inference.completed"
"inference.created"
"inference.failed"
"model.download.completed"
"model.download.created"
"model.download.failed"
"model.training.cancelled"
"model.training.completed"
"model.training.failed"
"model.training.started"
"team.credit.threshold.crossed"
nbFailedCalls: number

The number of calls to the webhook endpoint that have failed

nbTotalCalls: number

The number of calls to the webhook endpoint

ownerId: string

The ID of the owner of the webhook endpoint: a project id for job lifecycle events, a team id for alert events

ownerType: "project" or "team"

Whether the owner is a project or a team. Required to tell them apart: a project created before the team/project split shares its team’s id

One of the following:
"project"
"team"
updatedAt: string

The date and time the webhook endpoint was updated

url: string

The URL of the webhook endpoint

description: optional string

A description of the webhook endpoint

Webhook EndpointsEvents

List
GET/projects/{projectId}/webhook-endpoints/{webhookEndpointId}/events
Retrieve
GET/projects/{projectId}/webhook-endpoints/{webhookEndpointId}/events/{eventId}
ModelsExpand Collapse
EventListResponse object { items, nextPaginationToken }
items: array of object { id, endpointId, status, 2 more }

A list of the project webhook events

id: string
endpointId: string
status: "created" or "failed" or "retrying" or "success"
One of the following:
"created"
"failed"
"retrying"
"success"
type: "*" or "asset.download.completed" or "asset.download.created" or 16 more

Every event a webhook endpoint can subscribe to: a project endpoint takes the job lifecycle events, a team endpoint takes the alert events.

One of the following:
"*"
"asset.download.completed"
"asset.download.created"
"asset.download.failed"
"generation.completed"
"generation.created"
"generation.failed"
"inference.cancelled"
"inference.completed"
"inference.created"
"inference.failed"
"model.download.completed"
"model.download.created"
"model.download.failed"
"model.training.cancelled"
"model.training.completed"
"model.training.failed"
"model.training.started"
"team.credit.threshold.crossed"
updatedAt: string
nextPaginationToken: optional string

A token to query the next page of events

EventRetrieveResponse object { webhookEvent }
webhookEvent: object { id, attempts, createdAt, 6 more }
id: string
attempts: array of object { responseStatusCode, sentAt }
responseStatusCode: number
sentAt: string
createdAt: string
endpointId: string
payload: unknown
sentAt: string
status: "created" or "failed" or "retrying" or "success"
One of the following:
"created"
"failed"
"retrying"
"success"
type: "*" or "asset.download.completed" or "asset.download.created" or 16 more

Every event a webhook endpoint can subscribe to: a project endpoint takes the job lifecycle events, a team endpoint takes the alert events.

One of the following:
"*"
"asset.download.completed"
"asset.download.created"
"asset.download.failed"
"generation.completed"
"generation.created"
"generation.failed"
"inference.cancelled"
"inference.completed"
"inference.created"
"inference.failed"
"model.download.completed"
"model.download.created"
"model.download.failed"
"model.training.cancelled"
"model.training.completed"
"model.training.failed"
"model.training.started"
"team.credit.threshold.crossed"
updatedAt: string