AgentMail pods > webhooks API

The pods > webhooks API from AgentMail — 2 operation(s) for pods > webhooks.

OpenAPI Specification

agentmail-pods-webhooks-api-openapi.yml Raw ↑
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