JustCall Webhooks API

The Webhooks API from JustCall — 10 operation(s) for webhooks.

Operations 12

POST /v2/webhooks Add URL to webhook #
GET /v2/webhooks List subscribed webhooks #
POST /v2.1/webhooks Add URL to webhook #
GET /v2.1/webhooks List subscribed webhooks #
DELETE /v2/webhooks/url/{url_id} Remove URL from webhook #
DELETE /v2.1/webhooks/url/{url_id} Remove URL from webhook #
POST /v2/webhooks/v1/test/api Webhooks V1Controller test call webhook api #
POST /v2.1/webhooks/v1/test/api Webhooks V1Controller test call webhook api v21 #
POST /v2/webhooks/v1/test/pubsub Webhooks V1Controller test V1Webhook pub sub #
POST /v2.1/webhooks/v1/test/pubsub Webhooks V1Controller test V1Webhook pub sub v21 #
DELETE /v2/webhooks/v1/url/{url_id} Webhook v1 delete url by id #
DELETE /v2.1/webhooks/v1/url/{url_id} Webhook v1 delete url by id v21 #

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/justcall:justcall-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

justcall-webhooks-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: JustCall Webhooks API
  description: 'REST APIs

    The REST APIs provide programmatic access to read and write JustCall data. Create a new contact, read them, add notes, and more'
  version: '2'
  contact: {}
servers:
- url: https://api.justcall.io
tags:
- name: Webhooks
paths:
  /v2/webhooks:
    post:
      operationId: webhook_create
      summary: Add URL to webhook
      description: Use this endpoint to add a new URL to a webhook event.
      parameters: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/WebhookCreateDTO'
      responses:
        '200':
          description: Updated webhook object after URL is added.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WebhookResponseDTO'
        '400':
          description: Failed due to bad request params.
        '401':
          description: Failed due to unauthorized access.
        '403':
          description: This error occurred when there is some validation error or you don't have access to that resource.
        '404':
          description: Requested resource may not exist.
        '500':
          description: This is due to internal server error reason, in this case please contact our support team with attached uuid.
      tags:
      - Webhooks
      security:
      - AccessToken: []
    get:
      operationId: webhook_list
      summary: List subscribed webhooks
      description: Retrieve all subscribed events for an account or refine the search by specific event type.
      parameters:
      - name: type
        required: false
        in: query
        description: Select a type to search for subscribed events of a specific type.
        schema:
          enum:
          - call.completed
          - call.answered
          - call.initiated
          - call.incoming
          - call.updated
          - call.enters_queue
          - call.exits_queue
          - jc.call_ai_generated
          - call.voicemail
          - call.missed
          - call.ai_voice_agent
          - sms.sent_received
          - sms.sent
          - sms.received
          - sms.status_updated
          - sd.call_completed
          - sd.call_updated
          - sd.call_ai_generated
          - whatsapp.message_sent
          - whatsapp.message_received
          - whatsapp.message_status_updated
          - appointment.scheduled
          - jc.contact_status_updated
          type: string
      responses:
        '200':
          description: Array of webhook objects.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WebhookListResponseDTO'
        '400':
          description: Failed due to bad request params.
        '401':
          description: Failed due to unauthorized access.
        '403':
          description: This error occurred when there is some validation error or you don't have access to that resource.
        '404':
          description: Requested resource may not exist.
        '500':
          description: This is due to internal server error reason, in this case please contact our support team with attached uuid.
      tags:
      - Webhooks
      security:
      - AccessToken: []
  /v2.1/webhooks:
    post:
      operationId: webhook_create_v21
      summary: Add URL to webhook
      description: Use this endpoint to add a new URL to a webhook event.
      parameters: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/WebhookCreateDTO'
      responses:
        '200':
          description: Updated webhook object after URL is added.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WebhookResponseDTO'
        '400':
          description: Failed due to bad request params.
        '401':
          description: Failed due to unauthorized access.
        '403':
          description: This error occurred when there is some validation error or you don't have access to that resource.
        '404':
          description: Requested resource may not exist.
        '500':
          description: This is due to internal server error reason, in this case please contact our support team with attached uuid.
      tags:
      - Webhooks
      security:
      - AccessToken: []
    get:
      operationId: webhook_list_v21
      summary: List subscribed webhooks
      description: Retrieve all subscribed events for an account or refine the search by specific event type.
      parameters:
      - name: type
        required: false
        in: query
        description: Select a type to search for subscribed events of a specific type.
        schema:
          enum:
          - call.completed
          - call.answered
          - call.initiated
          - call.incoming
          - call.updated
          - call.enters_queue
          - call.exits_queue
          - jc.call_ai_generated
          - call.voicemail
          - call.missed
          - call.ai_voice_agent
          - sms.sent_received
          - sms.sent
          - sms.received
          - sms.status_updated
          - sd.call_completed
          - sd.call_updated
          - sd.call_ai_generated
          - whatsapp.message_sent
          - whatsapp.message_received
          - whatsapp.message_status_updated
          - appointment.scheduled
          - jc.contact_status_updated
          type: string
      responses:
        '200':
          description: Array of webhook objects.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WebhookListResponseDTO'
        '400':
          description: Failed due to bad request params.
        '401':
          description: Failed due to unauthorized access.
        '403':
          description: This error occurred when there is some validation error or you don't have access to that resource.
        '404':
          description: Requested resource may not exist.
        '500':
          description: This is due to internal server error reason, in this case please contact our support team with attached uuid.
      tags:
      - Webhooks
      security:
      - AccessToken: []
  /v2/webhooks/url/{url_id}:
    delete:
      operationId: webhook_delete_url
      summary: Remove URL from webhook
      description: Use this endpoint to remove a URL from a webhook event.
      parameters:
      - name: url_id
        required: true
        in: path
        description: Enter the id of the URL which needs to be deleted. If required, please lookup the ‘url_id’ using the ‘List subscribed webhooks’ endpoint.
        schema:
          example: 65b17425xxxxx
          type: string
      responses:
        '200':
          description: Updated webhook object after URL is deleted.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WebhookResponseDTO'
        '400':
          description: Failed due to bad request params.
        '401':
          description: Failed due to unauthorized access.
        '403':
          description: This error occurred when there is some validation error or you don't have access to that resource.
        '404':
          description: Requested resource may not exist.
        '500':
          description: This is due to internal server error reason, in this case please contact our support team with attached uuid.
      tags:
      - Webhooks
      security:
      - AccessToken: []
  /v2.1/webhooks/url/{url_id}:
    delete:
      operationId: webhook_delete_url_v21
      summary: Remove URL from webhook
      description: Use this endpoint to remove a URL from a webhook event.
      parameters:
      - name: url_id
        required: true
        in: path
        description: Enter the id of the URL which needs to be deleted. If required, please lookup the ‘url_id’ using the ‘List subscribed webhooks’ endpoint.
        schema:
          example: 65b17425xxxxx
          type: string
      responses:
        '200':
          description: Updated webhook object after URL is deleted.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WebhookResponseDTO'
        '400':
          description: Failed due to bad request params.
        '401':
          description: Failed due to unauthorized access.
        '403':
          description: This error occurred when there is some validation error or you don't have access to that resource.
        '404':
          description: Requested resource may not exist.
        '500':
          description: This is due to internal server error reason, in this case please contact our support team with attached uuid.
      tags:
      - Webhooks
      security:
      - AccessToken: []
  /v2/webhooks/v1/test/api:
    post:
      operationId: WebhooksV1Controller_testCallWebhookApi
      parameters: []
      responses:
        '201':
          description: ''
      security:
      - AccessToken: []
      tags:
      - Webhooks
      summary: Webhooks V1Controller test call webhook api
      x-summary-source: derived
  /v2.1/webhooks/v1/test/api:
    post:
      operationId: WebhooksV1Controller_testCallWebhookApi_v21
      parameters: []
      responses:
        '201':
          description: ''
      security:
      - AccessToken: []
      tags:
      - Webhooks
      summary: Webhooks V1Controller test call webhook api v21
      x-summary-source: derived
  /v2/webhooks/v1/test/pubsub:
    post:
      operationId: WebhooksV1Controller_testV1WebhookPubSub
      parameters: []
      responses:
        '201':
          description: ''
      security:
      - AccessToken: []
      tags:
      - Webhooks
      summary: Webhooks V1Controller test V1Webhook pub sub
      x-summary-source: derived
  /v2.1/webhooks/v1/test/pubsub:
    post:
      operationId: WebhooksV1Controller_testV1WebhookPubSub_v21
      parameters: []
      responses:
        '201':
          description: ''
      security:
      - AccessToken: []
      tags:
      - Webhooks
      summary: Webhooks V1Controller test V1Webhook pub sub v21
      x-summary-source: derived
  /v2/webhooks/v1/url/{url_id}:
    delete:
      operationId: webhook_v1_delete_url_by_id
      summary: Webhook v1 delete url by id
      parameters:
      - name: url_id
        required: true
        in: path
        schema:
          type: string
      responses:
        '200':
          description: ''
      security:
      - AccessToken: []
      tags:
      - Webhooks
      x-summary-source: derived
  /v2.1/webhooks/v1/url/{url_id}:
    delete:
      operationId: webhook_v1_delete_url_by_id_v21
      summary: Webhook v1 delete url by id v21
      parameters:
      - name: url_id
        required: true
        in: path
        schema:
          type: string
      responses:
        '200':
          description: ''
      security:
      - AccessToken: []
      tags:
      - Webhooks
      x-summary-source: derived
components:
  schemas:
    WebhookCreateDTO:
      type: object
      properties:
        webhook_url:
          type: string
          example: https://webhook.site/3afbb926-39a2-4f18-a95e-69e20b2d9aa0
          description: Configure the URL on which you want to receive the response.
        type:
          type: string
          example: call.completed
          description: Select an event type to add URL.
          enum:
          - call.completed
          - call.answered
          - call.initiated
          - call.incoming
          - call.updated
          - call.enters_queue
          - call.exits_queue
          - jc.call_ai_generated
          - call.voicemail
          - call.missed
          - call.ai_voice_agent
          - sms.sent_received
          - sms.sent
          - sms.received
          - sms.status_updated
          - sd.call_completed
          - sd.call_updated
          - sd.call_ai_generated
          - whatsapp.message_sent
          - whatsapp.message_received
          - whatsapp.message_status_updated
          - appointment.scheduled
          - jc.contact_status_updated
      required:
      - webhook_url
      - type
    WebhookListResponseDTO:
      type: object
      properties:
        count:
          type: number
          default: 0
          description: Number of events on the current page.
        total_count:
          type: number
          default: 0
          description: Total number of events fetched.
        current_page:
          type: number
          default: 0
          description: Number of the current page.
        per_page:
          type: number
          default: 0
          description: Maximum number of events appearing per page.
        next_page_link:
          type: string
          default: ''
          description: Link to the next page containing events.
        prev_page_link:
          type: string
          default: ''
          description: Link to the previous page of events.
        data:
          default:
          - type: call.completed
            latest_api_version: '2.1'
            url_count: 1
            warning_url_count: 0
            blacklisted_url_count: 0
            webhook_urls:
            - webhook_url: https://webhook.site/2912255e-7fe1-43f5
              url_id: 65b17425xxxxx
              api_version: '2.1'
              datetime: '2024-02-06 15:36:38'
              status: Active
          description: Array of webhook objects
          type: array
          items:
            $ref: '#/components/schemas/WebhookResponseDTO'
    WebhookUrlsResponseDTO:
      type: object
      properties:
        webhook_url:
          type: string
          default: https://webhook.site/2912255e-7fe1-43f5xxx
          description: Configured URL on which you will receive the event response.
        url_id:
          type: string
          default: 65b17425xxxx
          description: Unique id of the URL
        api_version:
          type: string
          default: '2.1'
          description: API version
        datetime:
          type: string
          default: '2017-12-17 15:36:38'
          description: Date time of webhook creation.
        status:
          type: string
          default: Active
          description: URL status
    WebhookResponseDTO:
      type: object
      properties:
        type:
          type: string
          default: call.completed
          description: Name of the event.
        latest_api_version:
          type: string
          default: '2.1'
          description: The latest available API version. When you add a new URL to any webhook event, you will receive data compatible with this API version.
        url_count:
          type: number
          default: 0
          description: Total number of URLs added to the event.
        warning_url_count:
          type: number
          default: 0
          description: Total number of URLs with Warning status.
        blacklisted_url_count:
          type: number
          default: 0
          description: Total number of URLs with Blacklisted status.
        webhook_urls:
          default:
          - webhook_url: https://webhook.site/2912255e-7fe1-43f5
            url_id: 65b17425xxxxx
            api_version: '2.1'
            datetime: '2024-02-06 15:36:38'
            status: Active
          description: Array of objects with each object consisting of webhook_url, url_id, datetime, api_version and status
          type: array
          items:
            $ref: '#/components/schemas/WebhookUrlsResponseDTO'
  securitySchemes:
    AccessToken:
      type: apiKey
      in: header
      name: Authorization
      description: 'The API key can be put in the Authorization header. i.e Authorization: api_key:api_secret. If you use cURL, specify -u “api_key:api_secret”'
x-provenance:
  method: harvested
  publisher: JustCall
  source: https://api.justcall.io/v2/api-docs
  note: split by refine-openapis from the provider's own published document, verified by fetch (openapi/_original/*.fetch.json);
    stamped by stamp-openapi-provenance.py (roadmap#793)