Webhooks allow the Gemini API to push real-time notifications to your server when asynchronous or Long-Running Operations (LROs) complete. This replaces the need to poll the API for status updates, reducing latency and overhead.
CreateWebhook
Creates a new Webhook.
Path / Query Parameters
The webhook_id to use for the webhook. If not specified, the server will generate a unique ID.
Request body
The request body contains data with the following structure:
Required. The webhook to create.
Response
If successful, the response body contains data with the following structure:
Required. The URI to which webhook events will be sent.
Required. The events that the webhook is subscribed to. Available events: - batch.succeeded - batch.expired - batch.failed - interaction.requires_action - interaction.completed - interaction.failed - video.generated
Optional. The user-provided name of the webhook.
Output only. The timestamp when the webhook was created.
Output only. The timestamp when the webhook was last updated.
signing_secrets array (SigningSecret) (optional)
Output only. The signing secrets associated with this webhook.
Fields
Output only. The truncated version of the signing secret.
Output only. The expiration date of the signing secret.
Output only. The state of the webhook.
Possible values:
-
enabledThe webhook is enabled.
-
disabledThe webhook is disabled by the user.
-
disabled_due_to_failed_deliveriesThe webhook is disabled due to failed deliveries.
Output only. The new signing secret for the webhook. Only populated on create.
Output only. The ID of the webhook.
Example
Example Response
{ "uri": "string", "subscribed_events": [ "string" ], "name": "string", "create_time": "string", "update_time": "string", "signing_secrets": [ { "truncated_secret": "string", "expire_time": "string" } ], "state": "enabled", "new_signing_secret": "string", "id": "string" }
PingWebhook
Sends a ping event to a Webhook.
Path / Query Parameters
Required. The ID of the webhook to ping.
Response
If successful, the response is empty.
Example
RotateSigningSecret
Generates a new signing secret for a Webhook.
Path / Query Parameters
Required. The ID of the webhook for which to generate a signing secret.
Response
If successful, the response body contains data with the following structure:
Output only. The newly generated signing secret.
Example
Example Response
{ "secret": "string" }
ListWebhooks
Lists all Webhooks.
Path / Query Parameters
Optional. The maximum number of webhooks to return. The service may return fewer than this value. If unspecified, at most 50 webhooks will be returned. The maximum value is 1000.
Optional. A page token, received from a previous `ListWebhooks` call. Provide this to retrieve the subsequent page.
Response
If successful, the response body contains data with the following structure:
The webhooks.
A token, which can be sent as `page_token` to retrieve the next page. If this field is omitted, there are no subsequent pages.
Example
Example Response
{ "webhooks": [ { "uri": "string", "subscribed_events": [ "string" ], "name": "string", "create_time": "string", "update_time": "string", "signing_secrets": [ { "truncated_secret": "string", "expire_time": "string" } ], "state": "enabled", "new_signing_secret": "string", "id": "string" } ], "next_page_token": "string" }
GetWebhook
Gets a specific Webhook.
Path / Query Parameters
Required. The ID of the webhook to retrieve.
Response
If successful, the response body contains data with the following structure:
Required. The URI to which webhook events will be sent.
Required. The events that the webhook is subscribed to. Available events: - batch.succeeded - batch.expired - batch.failed - interaction.requires_action - interaction.completed - interaction.failed - video.generated
Optional. The user-provided name of the webhook.
Output only. The timestamp when the webhook was created.
Output only. The timestamp when the webhook was last updated.
signing_secrets array (SigningSecret) (optional)
Output only. The signing secrets associated with this webhook.
Fields
Output only. The truncated version of the signing secret.
Output only. The expiration date of the signing secret.
Output only. The state of the webhook.
Possible values:
-
enabledThe webhook is enabled.
-
disabledThe webhook is disabled by the user.
-
disabled_due_to_failed_deliveriesThe webhook is disabled due to failed deliveries.
Output only. The new signing secret for the webhook. Only populated on create.
Output only. The ID of the webhook.
Example
Example Response
{ "uri": "string", "subscribed_events": [ "string" ], "name": "string", "create_time": "string", "update_time": "string", "signing_secrets": [ { "truncated_secret": "string", "expire_time": "string" } ], "state": "enabled", "new_signing_secret": "string", "id": "string" }
UpdateWebhook
Updates an existing Webhook.
Path / Query Parameters
Required. The ID of the webhook to update.
Request body
The request body contains data with the following structure:
webhook WebhookUpdate (required)
Required. The webhook to update.
Fields
Optional. The user-provided name of the webhook.
Optional. The URI to which webhook events will be sent.
Optional. The events that the webhook is subscribed to. Available events: - batch.succeeded - batch.expired - batch.failed - interaction.requires_action - interaction.completed - interaction.failed - video.generated
Optional. The state of the webhook.
Possible values:
-
enabledThe webhook is enabled.
-
disabledThe webhook is disabled by the user.
-
disabled_due_to_failed_deliveriesThe webhook is disabled due to failed deliveries.
Required. The ID of the webhook to update.
Optional. The list of fields to update.
Response
If successful, the response body contains data with the following structure:
Required. The URI to which webhook events will be sent.
Required. The events that the webhook is subscribed to. Available events: - batch.succeeded - batch.expired - batch.failed - interaction.requires_action - interaction.completed - interaction.failed - video.generated
Optional. The user-provided name of the webhook.
Output only. The timestamp when the webhook was created.
Output only. The timestamp when the webhook was last updated.
signing_secrets array (SigningSecret) (optional)
Output only. The signing secrets associated with this webhook.
Fields
Output only. The truncated version of the signing secret.
Output only. The expiration date of the signing secret.
Output only. The state of the webhook.
Possible values:
-
enabledThe webhook is enabled.
-
disabledThe webhook is disabled by the user.
-
disabled_due_to_failed_deliveriesThe webhook is disabled due to failed deliveries.
Output only. The new signing secret for the webhook. Only populated on create.
Output only. The ID of the webhook.
Example
Example Response
{ "uri": "string", "subscribed_events": [ "string" ], "name": "string", "create_time": "string", "update_time": "string", "signing_secrets": [ { "truncated_secret": "string", "expire_time": "string" } ], "state": "enabled", "new_signing_secret": "string", "id": "string" }
DeleteWebhook
Deletes a Webhook.
Path / Query Parameters
Required. The ID of the webhook to delete.
Response
If successful, the response is empty.
Example
Resources
Webhook
A Webhook resource.
Fields
Required. The URI to which webhook events will be sent.
Required. The events that the webhook is subscribed to. Available events: - batch.succeeded - batch.expired - batch.failed - interaction.requires_action - interaction.completed - interaction.failed - video.generated
Optional. The user-provided name of the webhook.
Output only. The timestamp when the webhook was created.
Output only. The timestamp when the webhook was last updated.
signing_secrets array (SigningSecret) (optional)
Output only. The signing secrets associated with this webhook.
Fields
Output only. The truncated version of the signing secret.
Output only. The expiration date of the signing secret.
Output only. The state of the webhook.
Possible values:
-
enabledThe webhook is enabled.
-
disabledThe webhook is disabled by the user.
-
disabled_due_to_failed_deliveriesThe webhook is disabled due to failed deliveries.
Output only. The new signing secret for the webhook. Only populated on create.
Output only. The ID of the webhook.