Ando Webhooks API

Outbound webhook endpoint and delivery routes.

Operations 8

POST /webhook-endpoints Create a webhook endpoint #
GET /webhook-endpoints List webhook endpoints #
GET /webhook-endpoints/{endpointId} Get a webhook endpoint #
PATCH /webhook-endpoints/{endpointId} Update a webhook endpoint #
POST /webhook-endpoints/{endpointId}/rotate-secret Rotate webhook endpoint secret #
POST /webhook-endpoints/{endpointId}/test Send a webhook test event #
GET /webhook-deliveries List webhook deliveries #
POST /webhook-deliveries/{deliveryId}/replay Replay a webhook delivery #

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/ando-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 form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

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

OpenAPI Specification

ando-webhooks-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  description: Generated from Ando's accepted public API v1 contract metadata. Current routes preserve legacy /api/v1 response envelopes while converging on the public https://api.ando.so/v1 shape.
  title: Ando Public Webhooks API
  version: v1
servers:
- description: Canonical public API host.
  url: https://api.ando.so/v1
tags:
- description: Outbound webhook endpoint and delivery routes.
  name: Webhooks
paths:
  /webhook-endpoints:
    post:
      description: Creates a workspace webhook endpoint and returns its signing secret exactly once.
      operationId: createWebhookEndpoint
      requestBody:
        content:
          application/json:
            examples:
              endpoint:
                summary: Create a webhook endpoint.
                value:
                  name: Production receiver
                  url: https://example.com/ando/webhooks
                  enabled_events:
                  - webhook.test
                  - message.created
                  - message.updated
                  - conversation.membership.created
                  - conversation.archived
                  - conversation.unarchived
                  - call.started
                  - call.ended
                  - call.updated
                  - call.transcript.updated
            schema:
              $ref: '#/components/schemas/CreateWebhookEndpointBody'
        required: true
      responses:
        '201':
          content:
            application/json:
              examples:
                created:
                  summary: Created endpoint with one-time signing secret.
                  value:
                    data:
                      object: webhook_endpoint
                      id: wep_01jzn7e61x3a7v9h2r7t2m3q4p
                      workspace_id: workspace_01jzn7e61x3a7v9h2r7t2m3q4p
                      name: Production receiver
                      url: https://example.com/ando/webhooks
                      enabled_events:
                      - webhook.test
                      - message.created
                      - message.updated
                      - conversation.membership.created
                      - conversation.archived
                      - conversation.unarchived
                      - call.started
                      - call.ended
                      - call.updated
                      - call.transcript.updated
                      delivery_scope:
                        type: workspace_member
                        actor_workspace_membership_id: wsm_01jzn7e61x3a7v9h2r7t2m3q4p
                        direct_message_delivery_enabled: false
                      status: active
                      signing_secret_prefix: example
                      previous_signing_secret_expires_at: null
                      disabled_at: null
                      created_at: '2026-05-27T08:00:00.000Z'
                      updated_at: '2026-05-27T08:00:00.000Z'
                      signing_secret: example
              schema:
                $ref: '#/components/schemas/WebhookEndpointSecretResponse'
          description: Created webhook endpoint.
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '409':
          $ref: '#/components/responses/Conflict'
        '429':
          $ref: '#/components/responses/RateLimited'
        '500':
          $ref: '#/components/responses/InternalError'
      security:
      - AndoApiKey: []
      - BearerApiKey: []
      summary: Create a webhook endpoint
      tags:
      - Webhooks
      x-ando-compatibility-mode: standard_public
      x-ando-migration-target: standard_public
      x-ando-rate-limit-policy: declared
      x-ando-route-id: api.api_v1_webhook_endpoints.post
      x-ando-required: true
      x-ando-canonical-host: api.ando.so
      x-ando-documentation-owner: api_platform
      x-ando-principal-kind: workspace_api_key
      x-ando-public-api-route-class: durable_ingress
      x-ando-public-path: /v1/webhook-endpoints
      x-ando-runtime-owner: convex_product
      x-ando-status-probe-owner: none
      x-ando-rollback-runtime: convex_http
      x-ando-selected-runtime: convex_http
      x-ando-target-runtime: convex_http
    get:
      description: Lists workspace webhook endpoint metadata.
      operationId: listWebhookEndpoints
      responses:
        '200':
          content:
            application/json:
              examples:
                endpoints:
                  summary: Webhook endpoints.
                  value:
                    data:
                      items:
                      - object: webhook_endpoint
                        id: wep_01jzn7e61x3a7v9h2r7t2m3q4p
                        workspace_id: workspace_01jzn7e61x3a7v9h2r7t2m3q4p
                        name: Production receiver
                        url: https://example.com/ando/webhooks
                        enabled_events:
                        - webhook.test
                        - message.created
                        - message.updated
                        - conversation.membership.created
                        - conversation.archived
                        - conversation.unarchived
                        - call.started
                        - call.ended
                        - call.updated
                        - call.transcript.updated
                        delivery_scope:
                          type: workspace_member
                          actor_workspace_membership_id: wsm_01jzn7e61x3a7v9h2r7t2m3q4p
                          direct_message_delivery_enabled: false
                        status: active
                        signing_secret_prefix: example
                        previous_signing_secret_expires_at: null
                        disabled_at: null
                        created_at: '2026-05-27T08:00:00.000Z'
                        updated_at: '2026-05-27T08:00:00.000Z'
                    items:
                    - object: webhook_endpoint
                      id: wep_01jzn7e61x3a7v9h2r7t2m3q4p
                      workspace_id: workspace_01jzn7e61x3a7v9h2r7t2m3q4p
                      name: Production receiver
                      url: https://example.com/ando/webhooks
                      enabled_events:
                      - webhook.test
                      - message.created
                      - message.updated
                      - conversation.membership.created
                      - conversation.archived
                      - conversation.unarchived
                      - call.started
                      - call.ended
                      - call.updated
                      - call.transcript.updated
                      delivery_scope:
                        type: workspace_member
                        actor_workspace_membership_id: wsm_01jzn7e61x3a7v9h2r7t2m3q4p
                        direct_message_delivery_enabled: false
                      status: active
                      signing_secret_prefix: example
                      previous_signing_secret_expires_at: null
                      disabled_at: null
                      created_at: '2026-05-27T08:00:00.000Z'
                      updated_at: '2026-05-27T08:00:00.000Z'
              schema:
                $ref: '#/components/schemas/WebhookEndpointListResponse'
          description: Webhook endpoints.
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '409':
          $ref: '#/components/responses/Conflict'
        '429':
          $ref: '#/components/responses/RateLimited'
        '500':
          $ref: '#/components/responses/InternalError'
      security:
      - AndoApiKey: []
      - BearerApiKey: []
      summary: List webhook endpoints
      tags:
      - Webhooks
      x-ando-compatibility-mode: standard_public
      x-ando-migration-target: standard_public
      x-ando-rate-limit-policy: declared
      x-ando-route-id: api.api_v1_webhook_endpoints.get
      x-ando-required: true
      x-ando-canonical-host: api.ando.so
      x-ando-documentation-owner: api_platform
      x-ando-principal-kind: workspace_api_key
      x-ando-public-api-route-class: public_data
      x-ando-public-path: /v1/webhook-endpoints
      x-ando-runtime-owner: convex_product
      x-ando-status-probe-owner: none
      x-ando-rollback-runtime: convex_http
      x-ando-selected-runtime: convex_http
      x-ando-target-runtime: convex_http
  /webhook-endpoints/{endpointId}:
    get:
      description: Returns webhook endpoint metadata and a recent delivery summary.
      operationId: getWebhookEndpoint
      parameters:
      - description: Webhook endpoint identifier.
        in: path
        name: endpointId
        required: true
        schema:
          description: Webhook endpoint identifier.
          type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WebhookEndpointDetailResponse'
          description: Webhook endpoint details.
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '409':
          $ref: '#/components/responses/Conflict'
        '429':
          $ref: '#/components/responses/RateLimited'
        '500':
          $ref: '#/components/responses/InternalError'
      security:
      - AndoApiKey: []
      - BearerApiKey: []
      summary: Get a webhook endpoint
      tags:
      - Webhooks
      x-ando-compatibility-mode: standard_public
      x-ando-migration-target: standard_public
      x-ando-rate-limit-policy: declared
      x-ando-route-id: api.api_v1_webhook_endpoints_by_endpointid.get
      x-ando-required: true
      x-ando-canonical-host: api.ando.so
      x-ando-documentation-owner: api_platform
      x-ando-principal-kind: workspace_api_key
      x-ando-public-api-route-class: public_data
      x-ando-public-path: /v1/webhook-endpoints/:endpointId
      x-ando-runtime-owner: convex_product
      x-ando-status-probe-owner: none
      x-ando-rollback-runtime: convex_http
      x-ando-selected-runtime: convex_http
      x-ando-target-runtime: convex_http
    patch:
      description: Updates webhook endpoint metadata and delivery settings.
      operationId: updateWebhookEndpoint
      parameters:
      - description: Webhook endpoint identifier.
        in: path
        name: endpointId
        required: true
        schema:
          description: Webhook endpoint identifier.
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdateWebhookEndpointBody'
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WebhookEndpointResponse'
          description: Updated webhook endpoint.
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '409':
          $ref: '#/components/responses/Conflict'
        '429':
          $ref: '#/components/responses/RateLimited'
        '500':
          $ref: '#/components/responses/InternalError'
      security:
      - AndoApiKey: []
      - BearerApiKey: []
      summary: Update a webhook endpoint
      tags:
      - Webhooks
      x-ando-compatibility-mode: standard_public
      x-ando-migration-target: standard_public
      x-ando-rate-limit-policy: declared
      x-ando-route-id: api.api_v1_webhook_endpoints_by_endpointid.patch
      x-ando-required: true
      x-ando-canonical-host: api.ando.so
      x-ando-documentation-owner: api_platform
      x-ando-principal-kind: workspace_api_key
      x-ando-public-api-route-class: durable_ingress
      x-ando-public-path: /v1/webhook-endpoints/:endpointId
      x-ando-runtime-owner: convex_product
      x-ando-status-probe-owner: none
      x-ando-rollback-runtime: convex_http
      x-ando-selected-runtime: convex_http
      x-ando-target-runtime: convex_http
  /webhook-endpoints/{endpointId}/rotate-secret:
    post:
      description: Rotates a webhook endpoint signing secret and returns the new secret exactly once.
      operationId: rotateWebhookEndpointSecret
      parameters:
      - description: Webhook endpoint identifier.
        in: path
        name: endpointId
        required: true
        schema:
          description: Webhook endpoint identifier.
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/RotateWebhookEndpointSecretBody'
        required: false
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WebhookEndpointSecretResponse'
          description: Rotated webhook endpoint secret.
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '409':
          $ref: '#/components/responses/Conflict'
        '429':
          $ref: '#/components/responses/RateLimited'
        '500':
          $ref: '#/components/responses/InternalError'
      security:
      - AndoApiKey: []
      - BearerApiKey: []
      summary: Rotate webhook endpoint secret
      tags:
      - Webhooks
      x-ando-compatibility-mode: standard_public
      x-ando-migration-target: standard_public
      x-ando-rate-limit-policy: declared
      x-ando-route-id: api.api_v1_webhook_endpoints_by_endpointid_rotate_secret.post
      x-ando-required: true
      x-ando-canonical-host: api.ando.so
      x-ando-documentation-owner: api_platform
      x-ando-principal-kind: workspace_api_key
      x-ando-public-api-route-class: durable_ingress
      x-ando-public-path: /v1/webhook-endpoints/:endpointId/rotate-secret
      x-ando-runtime-owner: convex_product
      x-ando-status-probe-owner: none
      x-ando-rollback-runtime: convex_http
      x-ando-selected-runtime: convex_http
      x-ando-target-runtime: convex_http
  /webhook-endpoints/{endpointId}/test:
    post:
      description: Creates a webhook.test event and schedules delivery to one endpoint.
      operationId: sendWebhookEndpointTestEvent
      parameters:
      - description: Webhook endpoint identifier.
        in: path
        name: endpointId
        required: true
        schema:
          description: Webhook endpoint identifier.
          type: string
      responses:
        '202':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WebhookTestEventResponse'
          description: Scheduled webhook test event.
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '409':
          $ref: '#/components/responses/Conflict'
        '429':
          $ref: '#/components/responses/RateLimited'
        '500':
          $ref: '#/components/responses/InternalError'
      security:
      - AndoApiKey: []
      - BearerApiKey: []
      summary: Send a webhook test event
      tags:
      - Webhooks
      x-ando-compatibility-mode: standard_public
      x-ando-migration-target: standard_public
      x-ando-rate-limit-policy: declared
      x-ando-route-id: api.api_v1_webhook_endpoints_by_endpointid_test.post
      x-ando-required: true
      x-ando-canonical-host: api.ando.so
      x-ando-documentation-owner: api_platform
      x-ando-principal-kind: workspace_api_key
      x-ando-public-api-route-class: durable_ingress
      x-ando-public-path: /v1/webhook-endpoints/:endpointId/test
      x-ando-runtime-owner: convex_product
      x-ando-status-probe-owner: none
      x-ando-rollback-runtime: convex_http
      x-ando-selected-runtime: convex_http
      x-ando-target-runtime: convex_http
  /webhook-deliveries:
    get:
      description: Lists webhook deliveries with optional endpoint, event, status, and creation-time filters.
      operationId: listWebhookDeliveries
      parameters:
      - description: Filter by webhook endpoint identifier.
        in: query
        name: endpoint_id
        schema:
          description: Filter by webhook endpoint identifier.
          type: string
      - description: Filter by webhook event identifier.
        in: query
        name: event_id
        schema:
          description: Filter by webhook event identifier.
          type: string
      - description: Filter by delivery status.
        in: query
        name: status
        schema:
          description: Filter by delivery status.
          type: string
      - description: Return deliveries created after this timestamp.
        in: query
        name: created_after
        schema:
          description: Return deliveries created after this timestamp.
          type: string
      - description: Return deliveries created before this timestamp.
        in: query
        name: created_before
        schema:
          description: Return deliveries created before this timestamp.
          type: string
      - description: Maximum number of deliveries to return.
        in: query
        name: limit
        schema:
          description: Maximum number of deliveries to return.
          type: integer
          minimum: 1
      responses:
        '200':
          content:
            application/json:
              examples:
                deliveries:
                  summary: Webhook deliveries.
                  value:
                    data:
                      items:
                      - object: webhook_delivery
                        id: whd_01jzn7e61x3a7v9h2r7t2m3q4p
                        workspace_id: workspace_01jzn7e61x3a7v9h2r7t2m3q4p
                        endpoint_id: wep_01jzn7e61x3a7v9h2r7t2m3q4p
                        endpoint_url: https://example.com/ando/webhooks
                        endpoint_status: active
                        endpoint_enabled_events:
                        - webhook.test
                        - message.created
                        - message.updated
                        - conversation.membership.created
                        - conversation.archived
                        - conversation.unarchived
                        - call.started
                        - call.ended
                        - call.updated
                        - call.transcript.updated
                        endpoint_signing_secret_prefix: example
                        event_id: whe_01jzn7e61x3a7v9h2r7t2m3q4p
                        event_type: webhook.test
                        api_version: '2026-05-27'
                        status: scheduled
                        attempt_count: 0
                        max_attempts: 8
                        next_attempt_at: '2026-05-27T08:00:00.000Z'
                        first_attempted_at: null
                        last_attempted_at: null
                        succeeded_at: null
                        failed_at: null
                        last_http_status: null
                        last_error_code: null
                        last_error_message: null
                        replayable: false
                        created_at: '2026-05-27T08:00:00.000Z'
                        updated_at: '2026-05-27T08:00:00.000Z'
                    items:
                    - object: webhook_delivery
                      id: whd_01jzn7e61x3a7v9h2r7t2m3q4p
                      workspace_id: workspace_01jzn7e61x3a7v9h2r7t2m3q4p
                      endpoint_id: wep_01jzn7e61x3a7v9h2r7t2m3q4p
                      endpoint_url: https://example.com/ando/webhooks
                      endpoint_status: active
                      endpoint_enabled_events:
                      - webhook.test
                      - message.created
                      - message.updated
                      - conversation.membership.created
                      - conversation.archived
                      - conversation.unarchived
                      - call.started
                      - call.ended
                      - call.updated
                      - call.transcript.updated
                      endpoint_signing_secret_prefix: example
                      event_id: whe_01jzn7e61x3a7v9h2r7t2m3q4p
                      event_type: webhook.test
                      api_version: '2026-05-27'
                      status: scheduled
                      attempt_count: 0
                      max_attempts: 8
                      next_attempt_at: '2026-05-27T08:00:00.000Z'
                      first_attempted_at: null
                      last_attempted_at: null
                      succeeded_at: null
                      failed_at: null
                      last_http_status: null
                      last_error_code: null
                      last_error_message: null
                      replayable: false
                      created_at: '2026-05-27T08:00:00.000Z'
                      updated_at: '2026-05-27T08:00:00.000Z'
              schema:
                $ref: '#/components/schemas/WebhookDeliveryListResponse'
          description: Webhook deliveries.
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '409':
          $ref: '#/components/responses/Conflict'
        '429':
          $ref: '#/components/responses/RateLimited'
        '500':
          $ref: '#/components/responses/InternalError'
      security:
      - AndoApiKey: []
      - BearerApiKey: []
      summary: List webhook deliveries
      tags:
      - Webhooks
      x-ando-compatibility-mode: standard_public
      x-ando-migration-target: standard_public
      x-ando-rate-limit-policy: declared
      x-ando-route-id: api.api_v1_webhook_deliveries.get
      x-ando-required: true
      x-ando-canonical-host: api.ando.so
      x-ando-documentation-owner: api_platform
      x-ando-principal-kind: workspace_api_key
      x-ando-public-api-route-class: public_data
      x-ando-public-path: /v1/webhook-deliveries
      x-ando-runtime-owner: convex_product
      x-ando-status-probe-owner: none
      x-ando-rollback-runtime: convex_http
      x-ando-selected-runtime: convex_http
      x-ando-target-runtime: convex_http
  /webhook-deliveries/{deliveryId}/replay:
    post:
      description: Creates a fresh scheduled delivery for the same endpoint and event.
      operationId: replayWebhookDelivery
      parameters:
      - description: Webhook delivery identifier.
        in: path
        name: deliveryId
        required: true
        schema:
          description: Webhook delivery identifier.
          type: string
      responses:
        '202':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WebhookReplayResponse'
          description: Scheduled webhook delivery replay.
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '409':
          $ref: '#/components/responses/Conflict'
        '429':
          $ref: '#/components/responses/RateLimited'
        '500':
          $ref: '#/components/responses/InternalError'
      security:
      - AndoApiKey: []
      - BearerApiKey: []
      summary: Replay a webhook delivery
      tags:
      - Webhooks
      x-ando-compatibility-mode: standard_public
      x-ando-migration-target: standard_public
      x-ando-rate-limit-policy: declared
      x-ando-route-id: api.api_v1_webhook_deliveries_by_deliveryid_replay.post
      x-ando-required: true
      x-ando-canonical-host: api.ando.so
      x-ando-documentation-owner: api_platform
      x-ando-principal-kind: workspace_api_key
      x-ando-public-api-route-class: durable_ingress
      x-ando-public-path: /v1/webhook-deliveries/:deliveryId/replay
      x-ando-runtime-owner: convex_product
      x-ando-status-probe-owner: none
      x-ando-rollback-runtime: convex_http
      x-ando-selected-runtime: convex_http
      x-ando-target-runtime: convex_http
components:
  responses:
    Conflict:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/LegacyErrorResponse'
      description: Conflict.
    InternalError:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/LegacyErrorResponse'
      description: Internal server error.
    BadRequest:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/LegacyErrorResponse'
      description: Bad request.
    Unauthorized:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/LegacyErrorResponse'
      description: Missing or invalid API key.
    RateLimited:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/PublicApiErrorResponse'
      description: Rate limit or quota exceeded.
    Forbidden:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/LegacyErrorResponse'
      description: Forbidden.
    NotFound:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/LegacyErrorResponse'
      description: Not found.
  schemas:
    WebhookReplayResponse:
      additionalProperties: false
      description: Webhook delivery replay response.
      properties:
        data:
          additionalProperties: false
          description: Replay delivery data.
          properties:
            delivery_id:
              description: New webhook delivery identifier.
              type: string
              example: 01jzn7e61x3a7v9h2r7t2m3q4p
          required:
          - delivery_id
          type: object
      required:
      - data
      type: object
    WebhookEndpointResponse:
      additionalProperties: false
      description: Webhook endpoint response.
      properties:
        data:
          $ref: '#/components/schemas/WebhookEndpoint'
      required:
      - data
      type: object
    WebhookEndpointDeliverySummary:
      additionalProperties: false
      description: Delivery summary over the endpoint's most recent 100 deliveries.
      properties:
        failed_count:
          description: Failed delivery count within the most recent 100 deliveries.
          type: integer
        in_flight_count:
          description: In-flight delivery count within the most recent 100 deliveries.
          type: integer
        latest_attempted_at:
          description: Latest attempt timestamp.
          type:
          - string
          - 'null'
          format: date-time
        latest_delivery_id:
          description: Latest delivery identifier.
          type:
          - string
          - 'null'
        latest_delivery_status:
          description: Latest delivery status.
          enum:
          - pending
          - scheduled
          - in_flight
          - succeeded
          - retrying
          - failed
          - skipped
          type:
          - string
          - 'null'
        latest_failed_at:
          description: Latest failure timestamp.
          type:
          - string
          - 'null'
          format: date-time
        latest_succeeded_at:
          description: Latest success timestamp.
          type:
          - string
          - 'null'
          format: date-time
        pending_count:
          description: Pending delivery count within the most recent 100 deliveries.
          type: integer
        recent_count:
          description: Number of deliveries summarized, capped at the most recent 100 deliveries.
          type: integer
        retrying_count:
          description: Retrying delivery count within the most recent 100 deliveries.
          type: integer
        scheduled_count:
          description: Scheduled delivery count within the most recent 100 deliveries.
          type: integer
        skipped_count:
          description: Skipped delivery count within the most recent 100 deliveries.
          type: integer
        succeeded_count:
          description: Succeeded delivery count within the most recent 100 deliveries.
          type: integer
      required:
      - recent_count
      - pending_count
      - scheduled_count
      - in_flight_count
      - retrying_count
      - succeeded_count
      - failed_count
      - skipped_count
      - latest_delivery_id
      - latest_delivery_status
      - latest_attempted_at
      - latest_succeeded_at
      - latest_failed_at
      type: object
    WebhookEndpoint:
      additionalProperties: false
      description: Webhook endpoint metadata. Signing secret plaintext is never returned here.
      properties:
        created_at:
          description: Endpoint creation timestamp.
          type: string
          example: '2026-05-14T08:00:00.000Z'
          format: date-time
        delivery_scope:
          $ref: '#/components/schemas/WebhookEndpointDeliveryScope'
        disabled_at:
          description: Endpoint disabled timestamp.
          type:
          - string
          - 'null'
          format: date-time
        enabled_events:
          description: Product event types delivered to this endpoint.
          items:
            description: Webhook event type.
            enum:
            - message.created
            - message.updated
            - conversation.membership.created
            - conversation.archived
            - conversation.unarchived
            - call.started
            - call.ended
            - call.updated
            - call.transcript.updated
            - webhook.test
            type: string
          type: array
        id:
          description: Webhook endpoint identifier.
          type: string
          example: 01jzn7e61x3a7v9h2r7t2m3q4p
        name:
          description: Endpoint label.
          type:
          - string
          - 'null'
        object:
          description: Object type.
          enum:
          - webhook_endpoint
          type: string
        previous_signing_secret_expires_at:
          description: Previous secret expiration timestamp.
          type:
          - string
          - 'null'
          format: date-time
        signing_secret_prefix:
          description: Display-safe prefix of the active signing secret.
          type: string
        status:
          description: Endpoint status.
          enum:
          - active
          - disabled
          type: string
        updated_at:
          description: Last update timestamp.
          type: string
          example: '2026-05-14T08:00:00.000Z'
          format: date-time
        url:
          description: Receiver URL.
          type: string
        workspace_id:
          description: Workspace identifier.
          type: string
          example: 01jzn7e61x3a7v9h2r7t2m3q4p
      required:
      - object
      - id
      - workspace_id
      - name
      - url
      - enabled_events
      - delivery_scope
      - status
      - signing_secret_prefix
      - previous_signing_secret_expires_at
      - disabled_at
      - created_at
      - updated_at
      type: object
    WebhookDelivery:
      additionalProperties: false
      description: Webhook delivery state visib

# --- truncated at 32 KB (50 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/ando/refs/heads/main/openapi/ando-webhooks-api-openapi.yml