LVT

LVT Webhooks API

Operations on webhooks

Business capability
Webhook & Event Subscription Management BC-4270.80

Operations 6

POST /webhooks Create a Webhook
GET /webhooks Get Webhooks
GET /webhooks/{webhookId} Get a Webhook
PATCH /webhooks/{webhookId} Update a Webhook
DELETE /webhooks/{webhookId} Delete a Webhook
POST /webhooks:test Test a 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/lvt-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

lvt-webhooks-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: LVT Webhooks API
  description: Public REST API
  version: 1.0.1
servers:
- url: https://api.lvt.com/v1
  description: Production beta version
security:
- OAuth2: []
tags:
- name: Webhooks
  description: Operations on webhooks
paths:
  /webhooks:
    post:
      summary: Create a Webhook
      description: "Create a Webhook.\n\nUpon creation, a webhook is first verified by sending a test message. The message must be responded to with a 2xx response code to be considered successful. This success is \nprerequisite to the Webhook creation. This process can be tested using the `/webhooks:test` endpoint before committing to creating a Webhook."
      tags:
      - Webhooks
      requestBody:
        $ref: '#/components/requestBodies/createWebhook'
      responses:
        201:
          description: Created
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/webhook'
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '404':
          $ref: '#/components/responses/404'
        '500':
          $ref: '#/components/responses/500'
        default:
          $ref: '#/components/responses/defaultError'
    get:
      summary: Get Webhooks
      description: Get a list of Webhooks. By default it returns all owned Webhooks, but can be filtered using the query parameters.
      tags:
      - Webhooks
      parameters:
      - $ref: '#/components/parameters/count'
      - $ref: '#/components/parameters/cursor'
      - name: enabled
        in: query
        description: Filter results to return Webhooks where enabled equals the provided state. If omitted it returns all results.
        schema:
          type: boolean
        example: true
      - name: namespace
        in: query
        description: Comma delimited list of namespaces that should be included in the response.
        schema:
          type: string
        example: alerts,other
      responses:
        200:
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/webhooks'
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '404':
          $ref: '#/components/responses/404'
        '500':
          $ref: '#/components/responses/500'
        default:
          $ref: '#/components/responses/defaultError'
  /webhooks/{webhookId}:
    get:
      summary: Get a Webhook
      description: Get a Webhook with the provided ID.
      tags:
      - Webhooks
      parameters:
      - name: webhookId
        in: path
        required: true
        description: The UUID of the specific webhook to fetch.
        schema:
          type: string
          format: uuid
        example: a0b0e212-8d3b-4e48-90a5-e32b67b3388d
      responses:
        200:
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/webhook'
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '404':
          $ref: '#/components/responses/404'
        '500':
          $ref: '#/components/responses/500'
        default:
          $ref: '#/components/responses/defaultError'
    patch:
      summary: Update a Webhook
      description: Update specific properties of a Webhook. If the property is not listed as acceptable in the request body and needs to be changed, you can delete the existing Webhook and recreate it instead.
      tags:
      - Webhooks
      parameters:
      - name: webhookId
        in: path
        required: true
        description: The UUID of the specific webhook to fetch.
        schema:
          type: string
          format: uuid
        example: a0b0e212-8d3b-4e48-90a5-e32b67b3388d
      requestBody:
        $ref: '#/components/requestBodies/updateWebhook'
      responses:
        200:
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/webhook'
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '404':
          $ref: '#/components/responses/404'
        '500':
          $ref: '#/components/responses/500'
        default:
          $ref: '#/components/responses/defaultError'
    delete:
      summary: Delete a Webhook
      tags:
      - Webhooks
      parameters:
      - name: webhookId
        in: path
        required: true
        description: The UUID of the specific webhook to fetch.
        schema:
          type: string
          format: uuid
        example: a0b0e212-8d3b-4e48-90a5-e32b67b3388d
      responses:
        204:
          description: Deleted
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '404':
          $ref: '#/components/responses/404'
        '500':
          $ref: '#/components/responses/500'
        default:
          $ref: '#/components/responses/defaultError'
  /webhooks:test:
    post:
      summary: Test a Webhook
      description: "Send a test message to a specified URL.\n\nThis message contains the following payload with a signature in the `X-LVT-HMAC-SHA256` header so developers can test the validation process used in Webhook creation.\n```json\n{\n  \"attempt\": 1,\n  \"currentAttemptTimestamp\": \"<CURRENT_DATE_AS_ISO_8601_STRING>\",\n  \"action\": \"test\",\n  \"data\": {\n    \"message\": \"Hello, world!\"\n  }\n}\n```"
      tags:
      - Webhooks
      requestBody:
        $ref: '#/components/requestBodies/updateWebhook'
      responses:
        204:
          description: OK
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '404':
          $ref: '#/components/responses/404'
        '500':
          $ref: '#/components/responses/500'
        default:
          $ref: '#/components/responses/defaultError'
components:
  requestBodies:
    updateWebhook:
      content:
        application/json:
          schema:
            type: object
            properties:
              url:
                type: string
                format: uri
                description: HTTPS URL of the resource to receive Webhook messages.
                example: https://www.example.com/webhooks
              namespace:
                type: string
                description: The namespace for the event types to receive.
                example: alerts
              enabled:
                type: boolean
                description: Whether the Webhook is actively receiving messages.
                example: true
    createWebhook:
      content:
        application/json:
          schema:
            type: object
            properties:
              url:
                type: string
                format: uri
                description: HTTPS URL of the resource to receive Webhook messages.
                example: https://www.example.com/webhooks
              namespace:
                type: string
                description: The namespace for the event types to receive.
                example: alerts
              enabled:
                type: boolean
                description: Whether the Webhook is actively receiving messages.
                example: true
  parameters:
    cursor:
      name: cursor
      in: query
      description: Used to populate a paged response. Do not provide on initial request. Reserved for use by backend to paginate.
      schema:
        type: string
    count:
      name: limit
      in: query
      description: Limit reply list page size.
      schema:
        type: integer
        format: int32
        minimum: 1
        maximum: 100
  responses:
    '400':
      description: Is returned when the request is formatted improperly.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/error'
    defaultError:
      description: Unexpected error.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/error'
    '500':
      description: Is returned when processing encounters an error.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/error'
    '401':
      description: Is returned when the authorization token provided is invalid or expired.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/error'
    '403':
      description: Is returned when the requested resource is not currently accessible with the provided authorization token.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/error'
    '404':
      description: Is returned when the specified resource can not be located.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/error'
  schemas:
    error:
      type: object
      required:
      - errorCode
      - errorSummary
      - errorId
      - errorCause
      properties:
        errorCode:
          type: string
          description: A code that is associated with this error type
          example: E0000001
        errorSummary:
          type: string
          description: A natural language explanation of the error
          example: Api validation failed
        errorId:
          type: string
          description: 'An ID that identifies this request.  These IDs are mapped to the internal error on the server side to assist in troubleshooting.

            '
          example: oaeHfmOAx1iRLa0H10DeMz5fQ
        errorCauses:
          type: array
          description: Further information about what caused this error. Should be empty array if no causes given.
          items:
            type: string
            example: 'login: An object with this field already exists in the current organization'
    webhooks:
      allOf:
      - $ref: '#/components/schemas/paginated'
      - type: object
        required:
        - items
        properties:
          items:
            type: array
            maxItems: 100
            items:
              $ref: '#/components/schemas/webhook'
    webhook:
      type: object
      properties:
        id:
          type: string
          format: uuid
          description: The UUID of the Webhook.
        url:
          type: string
          format: uri
          description: HTTPS URL of the resource to receive webhook messages.
          example: https://api.example.com/receiveWebhook
        namespace:
          type: string
          description: The namespace for the event types to receive.
          example: securityAlerts
        enabled:
          type: boolean
          description: Whether the Webhooks is actively receiving messages.
          example: true
        created:
          type: string
          format: date-time
          description: ISO 8601 formatted string. Represents the `timestamp` at which the webhook was created.
          example: 2023-01-01 12:00:00+00:00
    paginated:
      type: object
      required:
      - itemsPerPage
      - nextCursorUri
      - totalResults
      properties:
        itemsCount:
          type: integer
          format: int32
          minimum: 0
          description: Number of items returned in the response
          example: 24
        nextCursorUri:
          type:
          - string
          - 'null'
          format: uri
          description: Full URL to fetch the values of the next page
          example: https://api.lvt.com/v1/liveUnits?cursor=eyJhZnRlciI6IjQyIn0=
        totalResults:
          type: integer
          description: Total number of items in the collection being iterated
          example: 1234
  securitySchemes:
    OAuth2:
      type: oauth2
      flows:
        clientCredentials:
          tokenUrl: https://api.lvt.com/oauth2/v1/token
          scopes:
            account.liveUnits.manage: Edit a live units data
            account.cameras.manage: Edit a cameras data
            account.locations.manage: Edit a locations data