Smokeball Webhooks API

The Webhooks API from Smokeball — 4 operation(s) for webhooks.

Operations 7

GET /webhooks/types Get event types #
GET /webhooks Get webhook subscriptions #
POST /webhooks Create new webhook subscription #
GET /webhooks/{id} Get a webhook subscription #
PUT /webhooks/{id} Update a webhook subscription #
DELETE /webhooks/{id} Deletes a webhook subscription #
POST /webhooks/{id}/notify Notify 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/smokeball-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

smokeball-webhooks-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Smokeball Webhooks API
  version: '1.0'
  description: REST API for integrating with Smokeball legal practice management software. Supports matters, contacts, documents, time entries, billing, trust accounting, staff, webhooks, and law firm workflows across US, AU, and UK regions. Uses OAuth 2.0 (client credentials) authentication.
  contact:
    name: Smokeball Developer Support
    url: https://docs.smokeball.com/docs/api-docs/1e13a13124aee-introduction
  x-api-id: smokeball
  x-audience: external-public
servers:
- url: https://api.smokeball.com
- url: https://api.smokeball.com.au
- url: https://api.smokeball.co.uk
- url: https://stagingapi.smokeball.com
- url: https://stagingapi.smokeball.com.au
- url: https://stagingapi.smokeball.co.uk
security:
- api-key: []
  token: []
tags:
- name: Webhooks
paths:
  /webhooks/types:
    get:
      tags:
      - Webhooks
      summary: Get event types
      description: Returns the available webhook event types.
      operationId: GetEventTypes
      responses:
        '200':
          description: When request is successful. Returns the available event types.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/StringCollection'
        '400':
          description: When an unsupported request is made.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
  /webhooks:
    get:
      tags:
      - Webhooks
      summary: Get webhook subscriptions
      description: Returns existing webhook subscriptions.
      operationId: GetSubscriptions
      parameters:
      - name: Offset
        in: query
        schema:
          maximum: 2147483647
          minimum: 0
          type: integer
          format: int32
      - name: Limit
        in: query
        schema:
          maximum: 500
          minimum: 1
          type: integer
          format: int32
      responses:
        '200':
          description: When request is successful. Returns existing webhook subscriptions.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WebhookSubscriptionPagedCollection'
        '400':
          description: When an unsupported request is made.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
    post:
      tags:
      - Webhooks
      summary: Create new webhook subscription
      description: Creates a new webhook subscription with the specified subscription details.
      operationId: CreateSubscription
      requestBody:
        content:
          application/json-patch+json:
            schema:
              allOf:
              - $ref: '#/components/schemas/WebhookSubscriptionDto'
          application/json:
            schema:
              allOf:
              - $ref: '#/components/schemas/WebhookSubscriptionDto'
          application/*+json:
            schema:
              allOf:
              - $ref: '#/components/schemas/WebhookSubscriptionDto'
      responses:
        '200':
          description: When request is successful. Returns the new webhook subscriptions.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WebhookSubscription'
        '400':
          description: When an unsupported request is made.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
  /webhooks/{id}:
    get:
      tags:
      - Webhooks
      summary: Get a webhook subscription
      description: Returns the webhook subscription.
      operationId: GetSubscription
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: When request is successful. Returns the webhook subscriptions.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WebhookSubscription'
        '400':
          description: When an unsupported request is made.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
    put:
      tags:
      - Webhooks
      summary: Update a webhook subscription
      description: Updates a webhook subscription with the specified subscription details.
      operationId: UpdateSubscription
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json-patch+json:
            schema:
              allOf:
              - $ref: '#/components/schemas/WebhookSubscriptionDto'
          application/json:
            schema:
              allOf:
              - $ref: '#/components/schemas/WebhookSubscriptionDto'
          application/*+json:
            schema:
              allOf:
              - $ref: '#/components/schemas/WebhookSubscriptionDto'
      responses:
        '200':
          description: When request is successful. Returns updated webhook subscriptions.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WebhookSubscription'
        '400':
          description: When an unsupported request is made.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: When webhook subscription with specified id is not associated with authenticated client.
        '404':
          description: When the webhook subscription is not found.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
    delete:
      tags:
      - Webhooks
      summary: Deletes a webhook subscription
      description: Deletes and unsubscribes from the specified webhook subscription.
      operationId: DeleteSubscription
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: When request is successful. Deletes the webhook subscription.
        '400':
          description: When an unsupported request is made.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
  /webhooks/{id}/notify:
    post:
      tags:
      - Webhooks
      summary: Notify a webhook subscription
      description: 'Notifies a webhook subscription with a ''noop'' event type.


        Used for testing purposes.'
      operationId: Notify
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: When request is successful. Notifies the webhook subscription.
        '400':
          description: When an unsupported request is made.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
components:
  schemas:
    Link:
      type: object
      properties:
        id:
          type:
          - string
          - 'null'
        href:
          type:
          - string
          - 'null'
        relation:
          type:
          - string
          - 'null'
        method:
          type:
          - string
          - 'null'
          default: GET
      additionalProperties: false
    WebhookSubscription:
      type: object
      properties:
        id:
          type:
          - string
          - 'null'
        href:
          type:
          - string
          - 'null'
        relation:
          type:
          - string
          - 'null'
        method:
          type:
          - string
          - 'null'
          default: GET
        self:
          allOf:
          - $ref: '#/components/schemas/Link'
        accountId:
          type:
          - string
          - 'null'
          description: Unique identifier of the associated account.
          example: da4e7fd1-5394-4ca9-b1c6-e18c4e2bf262
        name:
          type:
          - string
          - 'null'
          description: Name or description of the subscription.
          example: Listen to matter and contact changes
        eventTypes:
          type:
          - array
          - 'null'
          items:
            type: string
          description: The event types that the webhook subscription is subscribed to.
          example:
          - matter.updated
          - contact.created
        eventNotificationUrl:
          type:
          - string
          - 'null'
          description: The uri to notify when an event has occurred.
          example: http://yourdomain.com/notify
        createdDateUtc:
          type: string
          description: The webhook subscription creation date.
          format: date-time
          example: '2022-04-23T14:00:00Z'
        updatedDateUtc:
          type: string
          description: The webhook subscription last updated date.
          format: date-time
          example: '2022-04-23T14:00:00Z'
        lastUpdated:
          type: integer
          description: Last updated timestamp
          format: int64
          example: 637847425252027400
      additionalProperties: false
    StringCollection:
      type: object
      properties:
        id:
          type:
          - string
          - 'null'
        href:
          type:
          - string
          - 'null'
        relation:
          type:
          - string
          - 'null'
        method:
          type:
          - string
          - 'null'
          default: GET
        self:
          allOf:
          - $ref: '#/components/schemas/Link'
        value:
          type:
          - array
          - 'null'
          items:
            type: string
      additionalProperties: false
    WebhookSubscriptionDto:
      type: object
      properties:
        key:
          type:
          - string
          - 'null'
          description: Unique key used for creating signature header in webhook notification requests.
          example: da4e7fd1-5394-4ca9-b1c6-e18c4e2bf262
        name:
          type:
          - string
          - 'null'
          description: Name or description of the webhook subscription.
          example: Listen to matter and contact changes
        eventTypes:
          type:
          - array
          - 'null'
          items:
            type: string
          description: The event types that the webhook subscription should be subscribed to.
          example:
          - matter.updated
          - contact.created
        eventNotificationUrl:
          type:
          - string
          - 'null'
          description: The uri to notify when an event has occurred.
          example: http://yourdomain.com/notify
      additionalProperties: false
    WebhookSubscriptionPagedCollection:
      type: object
      properties:
        id:
          type:
          - string
          - 'null'
        href:
          type:
          - string
          - 'null'
        relation:
          type:
          - string
          - 'null'
        method:
          type:
          - string
          - 'null'
          default: GET
        self:
          allOf:
          - $ref: '#/components/schemas/Link'
        value:
          type:
          - array
          - 'null'
          items:
            $ref: '#/components/schemas/WebhookSubscription'
        offset:
          type:
          - integer
          - 'null'
          format: int32
        limit:
          type:
          - integer
          - 'null'
          format: int32
        size:
          type: integer
          format: int64
        first:
          allOf:
          - $ref: '#/components/schemas/Link'
        previous:
          allOf:
          - $ref: '#/components/schemas/Link'
        next:
          allOf:
          - $ref: '#/components/schemas/Link'
        last:
          allOf:
          - $ref: '#/components/schemas/Link'
      additionalProperties: false
    ProblemDetails:
      type: object
      properties:
        type:
          type:
          - string
          - 'null'
        title:
          type:
          - string
          - 'null'
        status:
          type:
          - integer
          - 'null'
          format: int32
        detail:
          type:
          - string
          - 'null'
        instance:
          type:
          - string
          - 'null'
      additionalProperties: {}
  securitySchemes:
    api-key:
      type: apiKey
      name: x-api-key
      in: header
    token:
      type: apiKey
      name: Authorization
      in: header
      x-amazon-apigateway-authtype: cognito_user_pools