AgentMail inboxes > webhooks API

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

Operations 5

GET /v0/inboxes/{inbox_id}/webhooks List Webhooks #
POST /v0/inboxes/{inbox_id}/webhooks Create Webhook #
GET /v0/inboxes/{inbox_id}/webhooks/{webhook_id} Get Webhook #
PATCH /v0/inboxes/{inbox_id}/webhooks/{webhook_id} Update Webhook #
DELETE /v0/inboxes/{inbox_id}/webhooks/{webhook_id} Delete Webhook #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/agentmail-inboxes-webhooks-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no email required.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

agentmail-inboxes-webhooks-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Reference inboxes > 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: inboxes > webhooks
paths:
  /v0/inboxes/{inbox_id}/webhooks:
    get:
      operationId: list
      summary: List Webhooks
      description: '**CLI:**

        ```bash

        agentmail inboxes:webhooks list --inbox-id <inbox_id>

        ```'
      tags:
      - inboxes > webhooks
      parameters:
      - name: inbox_id
        in: path
        required: true
        schema:
          $ref: '#/components/schemas/type_inboxes_InboxId'
      - 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 inbox.


        **CLI:**

        ```bash

        agentmail inboxes:webhooks create --inbox-id <inbox_id> --url https://example.com/webhook --event-type message.received

        ```'
      tags:
      - inboxes > webhooks
      parameters:
      - name: inbox_id
        in: path
        required: true
        schema:
          $ref: '#/components/schemas/type_inboxes_InboxId'
      - 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_CreateInboxWebhookRequest'
  /v0/inboxes/{inbox_id}/webhooks/{webhook_id}:
    get:
      operationId: get
      summary: Get Webhook
      description: '**CLI:**

        ```bash

        agentmail inboxes:webhooks get --inbox-id <inbox_id> --webhook-id <webhook_id>

        ```'
      tags:
      - inboxes > webhooks
      parameters:
      - name: inbox_id
        in: path
        required: true
        schema:
          $ref: '#/components/schemas/type_inboxes_InboxId'
      - 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 inboxes:webhooks update --inbox-id <inbox_id> --webhook-id <webhook_id> --event-type message.received

        ```'
      tags:
      - inboxes > webhooks
      parameters:
      - name: inbox_id
        in: path
        required: true
        schema:
          $ref: '#/components/schemas/type_inboxes_InboxId'
      - 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_UpdateInboxWebhookRequest'
    delete:
      operationId: delete
      summary: Delete Webhook
      description: '**CLI:**

        ```bash

        agentmail inboxes:webhooks delete --inbox-id <inbox_id> --webhook-id <webhook_id>

        ```'
      tags:
      - inboxes > webhooks
      parameters:
      - name: inbox_id
        in: path
        required: true
        schema:
          $ref: '#/components/schemas/type_inboxes_InboxId'
      - 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_events_EventTypes:
      type: array
      items:
        $ref: '#/components/schemas/type_events_EventType'
      description: Event types for which to send events.
      title: EventTypes
    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_events_InboxIds:
      type: array
      items:
        type: string
      description: Inboxes for which to send events. Maximum 10 per webhook.
      title: InboxIds
    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_CreateInboxWebhookRequest:
      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'
      required:
      - url
      - event_types
      description: 'Create a webhook scoped to an inbox. The inbox comes from the path, so `inbox_ids` and `pod_ids`

        are not accepted.'
      title: CreateInboxWebhookRequest
    type__ErrorFix:
      type: string
      description: The concrete next action that resolves the error.
      title: ErrorFix
    type__Count:
      type: integer
      description: Number of items returned.
      title: Count
    type_webhooks_WebhookId:
      type: string
      description: ID of webhook.
      title: WebhookId
    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__ErrorName:
      type: string
      description: Name of error.
      title: ErrorName
    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_ClientId:
      type: string
      description: Client ID of webhook.
      title: ClientId
    type__ErrorMessage:
      type: string
      description: Error message.
      title: ErrorMessage
    type__PageToken:
      type: string
      description: Page token for pagination.
      title: PageToken
    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__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_webhooks_UpdateInboxWebhookRequest:
      type: object
      properties:
        event_types:
          $ref: '#/components/schemas/type_webhooks_UpdateWebhookEventTypes'
      description: Update an inbox-scoped webhook. It is fixed to its inbox, so only `event_types` can change.
      title: UpdateInboxWebhookRequest
    type__Limit:
      type: integer
      description: Limit of number of items returned.
      title: Limit
    type_events_PodIds:
      type: array
      items:
        type: string
      description: Pods for which to send events. Maximum 10 per webhook.
      title: PodIds
    type_webhooks_Url:
      type: string
      description: URL of webhook endpoint.
      title: Url
    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_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_inboxes_InboxId:
      type: string
      description: The ID of the inbox.
      title: InboxId
    type__Ascending:
      type: boolean
      description: Sort in ascending temporal order.
      title: Ascending
    type__ErrorDocs:
      type: string
      description: Link to the error reference entry for this code.
      title: ErrorDocs
  securitySchemes:
    Bearer:
      type: http
      scheme: bearer