AgentMail pods > webhooks API
The pods > webhooks API from AgentMail — 2 operation(s) for pods > webhooks.
The pods > webhooks API from AgentMail — 2 operation(s) for pods > webhooks.
openapi: 3.1.0
info:
title: API Reference agent pods > webhooks API
version: 1.0.0
servers:
- url: https://api.agentmail.to
description: prod
- url: https://x402.api.agentmail.to
description: prod-x402
- url: https://mpp.api.agentmail.to
description: prod-mpp
- url: https://api.agentmail.eu
description: eu-prod
tags:
- name: pods > webhooks
paths:
/v0/pods/{pod_id}/webhooks:
get:
operationId: list
summary: List Webhooks
description: '**CLI:**
```bash
agentmail pods:webhooks list --pod-id <pod_id>
```'
tags:
- pods > webhooks
parameters:
- name: pod_id
in: path
required: true
schema:
$ref: '#/components/schemas/type_pods:PodId'
- name: limit
in: query
required: false
schema:
$ref: '#/components/schemas/type_:Limit'
- name: page_token
in: query
required: false
schema:
$ref: '#/components/schemas/type_:PageToken'
- name: ascending
in: query
required: false
schema:
$ref: '#/components/schemas/type_:Ascending'
- name: Authorization
in: header
description: Bearer authentication
required: true
schema:
type: string
responses:
'200':
description: Response with status 200
content:
application/json:
schema:
$ref: '#/components/schemas/type_webhooks:ListWebhooksResponse'
post:
operationId: create
summary: Create Webhook
description: 'Create a webhook scoped to this pod.
**CLI:**
```bash
agentmail pods:webhooks create --pod-id <pod_id> --url https://example.com/webhook --event-type message.received
```'
tags:
- pods > webhooks
parameters:
- name: pod_id
in: path
required: true
schema:
$ref: '#/components/schemas/type_pods:PodId'
- name: Authorization
in: header
description: Bearer authentication
required: true
schema:
type: string
responses:
'200':
description: Response with status 200
content:
application/json:
schema:
$ref: '#/components/schemas/type_webhooks:Webhook'
'400':
description: Error response with status 400
content:
application/json:
schema:
$ref: '#/components/schemas/type_:ValidationErrorResponse'
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/type_webhooks:CreatePodWebhookRequest'
/v0/pods/{pod_id}/webhooks/{webhook_id}:
get:
operationId: get
summary: Get Webhook
description: '**CLI:**
```bash
agentmail pods:webhooks get --pod-id <pod_id> --webhook-id <webhook_id>
```'
tags:
- pods > webhooks
parameters:
- name: pod_id
in: path
required: true
schema:
$ref: '#/components/schemas/type_pods:PodId'
- name: webhook_id
in: path
required: true
schema:
$ref: '#/components/schemas/type_webhooks:WebhookId'
- name: Authorization
in: header
description: Bearer authentication
required: true
schema:
type: string
responses:
'200':
description: Response with status 200
content:
application/json:
schema:
$ref: '#/components/schemas/type_webhooks:Webhook'
'404':
description: Error response with status 404
content:
application/json:
schema:
$ref: '#/components/schemas/type_:ErrorResponse'
patch:
operationId: update
summary: Update Webhook
description: '**CLI:**
```bash
agentmail pods:webhooks update --pod-id <pod_id> --webhook-id <webhook_id> --add-inbox-id <inbox_id>
```'
tags:
- pods > webhooks
parameters:
- name: pod_id
in: path
required: true
schema:
$ref: '#/components/schemas/type_pods:PodId'
- name: webhook_id
in: path
required: true
schema:
$ref: '#/components/schemas/type_webhooks:WebhookId'
- name: Authorization
in: header
description: Bearer authentication
required: true
schema:
type: string
responses:
'200':
description: Response with status 200
content:
application/json:
schema:
$ref: '#/components/schemas/type_webhooks:Webhook'
'400':
description: Error response with status 400
content:
application/json:
schema:
$ref: '#/components/schemas/type_:ValidationErrorResponse'
'404':
description: Error response with status 404
content:
application/json:
schema:
$ref: '#/components/schemas/type_:ErrorResponse'
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/type_webhooks:UpdatePodWebhookRequest'
delete:
operationId: delete
summary: Delete Webhook
description: '**CLI:**
```bash
agentmail pods:webhooks delete --pod-id <pod_id> --webhook-id <webhook_id>
```'
tags:
- pods > webhooks
parameters:
- name: pod_id
in: path
required: true
schema:
$ref: '#/components/schemas/type_pods:PodId'
- name: webhook_id
in: path
required: true
schema:
$ref: '#/components/schemas/type_webhooks:WebhookId'
- name: Authorization
in: header
description: Bearer authentication
required: true
schema:
type: string
responses:
'200':
description: Successful response
'404':
description: Error response with status 404
content:
application/json:
schema:
$ref: '#/components/schemas/type_:ErrorResponse'
components:
schemas:
type_webhooks:ListWebhooksResponse:
type: object
properties:
count:
$ref: '#/components/schemas/type_:Count'
limit:
$ref: '#/components/schemas/type_:Limit'
next_page_token:
$ref: '#/components/schemas/type_:PageToken'
webhooks:
type: array
items:
$ref: '#/components/schemas/type_webhooks:Webhook'
description: Ordered by `created_at` descending.
required:
- count
- webhooks
title: ListWebhooksResponse
type_pods:PodId:
type: string
description: ID of pod.
title: PodId
type_webhooks:UpdatePodWebhookRequest:
type: object
properties:
event_types:
$ref: '#/components/schemas/type_webhooks:UpdateWebhookEventTypes'
add_inbox_ids:
$ref: '#/components/schemas/type_events:InboxIds'
description: Inbox IDs to subscribe to the webhook.
remove_inbox_ids:
$ref: '#/components/schemas/type_events:InboxIds'
description: Inbox IDs to unsubscribe from the webhook.
description: 'Update a pod-scoped webhook. You can adjust which inboxes within the pod it listens to and replace
its `event_types`, but not the pod scope itself.'
title: UpdatePodWebhookRequest
type_:Count:
type: integer
description: Number of items returned.
title: Count
type_webhooks:CreateWebhookEventTypes:
$ref: '#/components/schemas/type_events:EventTypes'
description: 'Full list of event types this webhook should receive. At least one type is required. Send every type you
want in this array (not incremental). See [Webhooks overview](https://docs.agentmail.to/webhooks-overview)
for spam, blocked, and unauthenticated events and required permissions.'
title: CreateWebhookEventTypes
type_webhooks:UpdateWebhookEventTypes:
$ref: '#/components/schemas/type_events:EventTypes'
description: 'When you send a non-empty list, it replaces the webhook''s subscribed event types in full (the same
"set the list" behavior as create). It is not a merge or diff: include every event type you want after
the update. Sending a one-element array means the webhook will only receive that one type afterward.
Omit this field or send an empty array to leave event types unchanged. Clearing all types with an empty
list is not supported. Subscribing to `message.received.spam`, `message.received.blocked`, or
`message.received.unauthenticated` requires the matching label permission on the API key.'
title: UpdateWebhookEventTypes
type_:ErrorCode:
type: string
description: Stable, machine-readable error code in snake_case (for example, not_found or missing_permission). Branch on this rather than the message text.
title: ErrorCode
type_events:EventType:
type: string
enum:
- message.received
- message.received.spam
- message.received.blocked
- message.received.unauthenticated
- message.sent
- message.delivered
- message.bounced
- message.complained
- message.rejected
- domain.verified
title: EventType
type_webhooks:Url:
type: string
description: URL of webhook endpoint.
title: Url
type_events:InboxIds:
type: array
items:
type: string
description: Inboxes for which to send events. Maximum 10 per webhook.
title: InboxIds
type_:ValidationErrorResponse:
type: object
properties:
name:
$ref: '#/components/schemas/type_:ErrorName'
code:
$ref: '#/components/schemas/type_:ErrorCode'
message:
$ref: '#/components/schemas/type_:ErrorMessage'
errors:
description: Validation errors. Each entry has a path and a message identifying the invalid field.
fix:
$ref: '#/components/schemas/type_:ErrorFix'
docs:
$ref: '#/components/schemas/type_:ErrorDocs'
required:
- name
- errors
title: ValidationErrorResponse
type_events:PodIds:
type: array
items:
type: string
description: Pods for which to send events. Maximum 10 per webhook.
title: PodIds
type_:ErrorFix:
type: string
description: The concrete next action that resolves the error.
title: ErrorFix
type_:ErrorMessage:
type: string
description: Error message.
title: ErrorMessage
type_webhooks:CreatePodWebhookRequest:
type: object
properties:
url:
$ref: '#/components/schemas/type_webhooks:Url'
event_types:
$ref: '#/components/schemas/type_webhooks:CreateWebhookEventTypes'
client_id:
$ref: '#/components/schemas/type_webhooks:ClientId'
inbox_ids:
$ref: '#/components/schemas/type_events:InboxIds'
required:
- url
- event_types
description: 'Create a webhook scoped to a pod. The pod comes from the path, so `pod_ids` is not accepted.
Optionally pass `inbox_ids` to narrow the webhook to specific inboxes within the pod; omit to
receive events for the whole pod.'
title: CreatePodWebhookRequest
type_:Limit:
type: integer
description: Limit of number of items returned.
title: Limit
type_events:EventTypes:
type: array
items:
$ref: '#/components/schemas/type_events:EventType'
description: Event types for which to send events.
title: EventTypes
type_:PageToken:
type: string
description: Page token for pagination.
title: PageToken
type_:ErrorName:
type: string
description: Name of error.
title: ErrorName
type_:ErrorDocs:
type: string
description: Link to the error reference entry for this code.
title: ErrorDocs
type_:ErrorResponse:
type: object
properties:
name:
$ref: '#/components/schemas/type_:ErrorName'
code:
$ref: '#/components/schemas/type_:ErrorCode'
message:
$ref: '#/components/schemas/type_:ErrorMessage'
fix:
$ref: '#/components/schemas/type_:ErrorFix'
docs:
$ref: '#/components/schemas/type_:ErrorDocs'
required:
- name
- message
title: ErrorResponse
type_webhooks:WebhookId:
type: string
description: ID of webhook.
title: WebhookId
type_webhooks:Webhook:
type: object
properties:
webhook_id:
$ref: '#/components/schemas/type_webhooks:WebhookId'
url:
$ref: '#/components/schemas/type_webhooks:Url'
event_types:
$ref: '#/components/schemas/type_events:EventTypes'
pod_ids:
$ref: '#/components/schemas/type_events:PodIds'
inbox_ids:
$ref: '#/components/schemas/type_events:InboxIds'
secret:
type: string
description: Secret for webhook signature verification.
enabled:
type: boolean
description: Webhook is enabled.
updated_at:
type: string
format: date-time
description: Time at which webhook was last updated.
created_at:
type: string
format: date-time
description: Time at which webhook was created.
client_id:
$ref: '#/components/schemas/type_webhooks:ClientId'
required:
- webhook_id
- url
- secret
- enabled
- updated_at
- created_at
title: Webhook
type_:Ascending:
type: boolean
description: Sort in ascending temporal order.
title: Ascending
type_webhooks:ClientId:
type: string
description: Client ID of webhook.
title: ClientId
securitySchemes:
Bearer:
type: http
scheme: bearer