wapiworld-com Webhook subscriptions API

The Webhook subscriptions API from wapiworld-com — 2 operation(s) for webhook subscriptions.

Operations 4

GET /api/webhooksubscriptions List webhook subscriptions #
POST /api/webhooksubscriptions Create a webhook subscription #
PUT /api/webhooksubscriptions/{webhookSubscriptionId} Update a webhook subscription #
DELETE /api/webhooksubscriptions/{webhookSubscriptionId} Delete a webhook subscription #

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/wapiworld-com:wapiworld-com-webhook-subscriptions-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.

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

wapiworld-com-webhook-subscriptions-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Wapiworld Webhook subscriptions API
  version: 1.0.0
  description: 'Public REST API for Wapiworld — WhatsApp API as a service. Authenticate with an API key created in the Wapiworld dashboard: send the base64-encoded key secret with HTTP Basic auth. Each key is scoped to a single project and carries per-resource scopes like `instances:read` or `instances:write`.'
servers:
- url: https://api.wapiworld.com
tags:
- name: Webhook Subscriptions
paths:
  /api/webhooksubscriptions:
    get:
      tags:
      - Webhook Subscriptions
      summary: List webhook subscriptions
      description: 'Webhook subscriptions deliver `instance.created`, `instance.connected`, `instance.disconnected` and `instance.deleted` events to your server as signed POST requests (`X-Wapiworld-Signature: t=,v1=`). An endpoint failing 20 times in a row is disabled automatically. Subscriptions are managed with an operator access token. Responses contain only the reviewed public subscription fields; the `secret` is returned once, on create.'
      security:
      - accessToken: []
      responses:
        '200':
          description: Array of webhook subscriptions (without secrets)
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/WebhookSubscription'
        default:
          description: Request failed
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
      operationId: getApiWebhooksubscriptions
    post:
      tags:
      - Webhook Subscriptions
      summary: Create a webhook subscription
      description: The response includes the signing `secret` exactly once — store it; it cannot be retrieved again.
      security:
      - accessToken: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
              - projectId
              - url
              properties:
                projectId:
                  type: string
                url:
                  type: string
                  example: https://example.com/wapiworld-webhook
                events:
                  type: array
                  description: Empty array subscribes to all events
                  items:
                    type: string
                    enum:
                    - instance.created
                    - instance.connected
                    - instance.disconnected
                    - instance.deleted
                    - instance.qrcode.available
                    - instance.qrcode.expired
                    - instance.updated
                    - message.delivered
                    - message.failed
                    - message.read
                    - message.received
                    - message.sent
                deliveryVersion:
                  type: integer
                  enum:
                  - 1
                  - 2
                  description: Version 1 is the legacy envelope; version 2 is the canonical CloudEvent
      responses:
        '200':
          description: The created subscription, including its secret
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WebhookSubscriptionWithSecret'
        default:
          description: Request failed
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
      operationId: postApiWebhooksubscriptions
  /api/webhooksubscriptions/{webhookSubscriptionId}:
    put:
      tags:
      - Webhook Subscriptions
      summary: Update a webhook subscription
      description: '`url`, `events`, `deliveryVersion` and `active` are editable; the secret and project are immutable. Re-enabling an auto-disabled endpoint is done by setting `active` back to true.'
      security:
      - accessToken: []
      parameters:
      - in: path
        name: webhookSubscriptionId
        required: true
        schema:
          type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
      responses:
        '200':
          description: The updated subscription (without secret)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WebhookSubscription'
        default:
          description: Request failed
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
      operationId: putApiWebhooksubscriptionsWebhookSubscriptionId
    delete:
      tags:
      - Webhook Subscriptions
      summary: Delete a webhook subscription
      security:
      - accessToken: []
      parameters:
      - in: path
        name: webhookSubscriptionId
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Deleted
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DeletedResource'
        default:
          description: Request failed
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
      operationId: deleteApiWebhooksubscriptionsWebhookSubscriptionId
components:
  schemas:
    DeletedResource:
      type: object
      required:
      - _id
      properties:
        _id:
          type: string
      additionalProperties: false
    WebhookSubscriptionWithSecret:
      allOf:
      - $ref: '#/components/schemas/WebhookSubscription'
      - type: object
        required:
        - secret
        properties:
          secret:
            type: string
            readOnly: true
            description: Signing secret returned exactly once in the create response.
    WebhookSubscription:
      type: object
      required:
      - _id
      - projectId
      - url
      - active
      properties:
        _id:
          type: string
        projectId:
          type: string
        url:
          type: string
          format: uri
        events:
          type: array
          items:
            type: string
            enum:
            - instance.created
            - instance.connected
            - instance.disconnected
            - instance.deleted
        active:
          type: boolean
        consecutiveFailures:
          type: integer
          minimum: 0
        creationTime:
          type: string
          format: date-time
        lastEditTime:
          type: string
          format: date-time
      additionalProperties: true
    Error:
      type: object
      required:
      - message
      - status
      properties:
        details:
          type: object
          additionalProperties: true
          description: Optional structured values needed to render the error.
        message:
          type: string
        method:
          type: string
        name:
          type: string
        status:
          type: integer
        url:
          type: string
          format: uri
  securitySchemes:
    apiKey:
      type: http
      scheme: basic
      description: 'HTTP Basic auth carrying only the API key secret: `Authorization: Basic base64(<key secret>)`.'
    accessToken:
      type: apiKey
      in: header
      name: Authorization
      description: 'Operator session token issued by the Wapiworld dashboard: `Authorization: Token <access token>`.'