Every API here is available over the APIs.io API and to AI agents over MCP.
openapi: 3.2.0
info:
title: vergesense-api Webhooks API
version: '2021-03-29'
servers:
- url: https://api.vergesense.com
security:
- sec0: []
tags:
- name: Webhooks
paths:
/webhooks:
post:
summary: /webhooks
description: Create a webhook.
operationId: webhooks-1
requestBody:
content:
application/json:
schema:
type: object
required:
- name
- parameters
properties:
name:
type: string
description: Name of the webhook
action_id:
type: integer
description: The webhook type to setup (3 - Space Report, 4 - Sensor Report, 5 - Space Availability, 6 - PIR Triggered)
format: int32
enabled:
type: string
description: Whether or not the webhook is enabled
default: 'false'
enum:
- 'true'
- 'false'
parameters:
type: object
description: Parameters to configure the webhook
required:
- EVENT_ENDPOINT
properties:
EVENT_ENDPOINT:
type: string
description: HTTPS endpoint to send the webhook to
AUTHORIZATION:
type: object
description: Optional authorization configuration
properties:
BASIC:
type: object
required:
- BASIC_AUTH_USERNAME
- BASIC_AUTH_PASSWORD
properties:
BASIC_AUTH_USERNAME:
type: string
description: Username used in Basic authentication
BASIC_AUTH_PASSWORD:
type: string
description: Password used in Basic authentication
CUSTOM_HEADERS:
type: object
description: Object of key value pairs to send as part of the webhook request
properties:
customkey:
type: string
SEND_FREQUENCY:
type: string
description: 'Always: Webhook will be sent every time the event occurs. On Change: Webhook will only be sent when the person count or signs of life value has changed or if the event is the first event in a new hour.'
default: '"always"'
enum:
- '"always"'
- '"on_change"'
filters:
type: object
description: Filters to restrict the webhook to. If absent will attach the webhook to all buildings.
properties: {}
examples:
Space Report Event Webhook with Custom Header:
value:
parameters:
CUSTOM_HEADERS:
x-api-key: test
EVENT_ENDPOINT: https://example.com
action_id: 3
name: Webhook with custom header
Space Report Event Webhook with Basic Authorization:
value:
parameters:
AUTHORIZATION:
BASIC:
BASIC_AUTH_USERNAME: user
BASIC_AUTH_PASSWORD: pass
EVENT_ENDPOINT: https://example.com
action_id: 3
name: Webhook with Basic Authorization
Space Report Event Webhook Filtered to Single Building:
value:
parameters:
AUTHORIZATION:
BASIC:
BASIC_AUTH_USERNAME: ''
BASIC_AUTH_PASSWORD: ''
EVENT_ENDPOINT: https://example.com
filters:
building_ids:
- 1
action_id: 3
name: Webhook to specific building
responses:
'200':
description: '200'
content:
application/json:
examples:
Space Report Event Webhook Filtered to Single Building:
value: "{\n \"data\": {\n \"id\": \"24\",\n \"type\": \"company_action\",\n \"attributes\": {\n \"name\": \"Webhook to specific building\",\n \"enabled\": false,\n \"parameters\": {\n \"AUTHORIZATION\": {\n \"BASIC\": {\n \"BASIC_AUTH_PASSWORD\": \"\",\n \"BASIC_AUTH_USERNAME\": \"\"\n }\n },\n \"EVENT_ENDPOINT\": \"https://example.com\"\n },\n \"filters\": {\n \"building_ids\": [\n 1\n ]\n }\n },\n \"relationships\": {\n \"action\": {\n \"data\": {\n \"id\": \"3\",\n \"type\": \"action\"\n }\n },\n \"created_by_user\": {\n \"data\": null\n }\n }\n }\n}"
Webhook with Basic Authorization:
value: "{\n \"data\": {\n \"id\": \"25\",\n \"type\": \"company_action\",\n \"attributes\": {\n \"name\": \"Webhook with basic AUTHORIZATION\",\n \"enabled\": false,\n \"parameters\": {\n \"AUTHORIZATION\": {\n \"BASIC\": {\n \"BASIC_AUTH_PASSWORD\": \"pass\",\n \"BASIC_AUTH_USERNAME\": \"user\"\n }\n },\n \"EVENT_ENDPOINT\": \"https://example.com\"\n }\n },\n \"relationships\": {\n \"action\": {\n \"data\": {\n \"id\": \"3\",\n \"type\": \"action\"\n }\n },\n \"created_by_user\": {\n \"data\": null\n }\n }\n }\n}"
schema:
oneOf:
- title: Space Report Event Webhook Filtered to Single Building
type: object
properties:
data:
type: object
properties:
id:
type: string
example: '24'
type:
type: string
example: company_action
attributes:
type: object
properties:
name:
type: string
example: Webhook to specific building
enabled:
type: boolean
example: false
default: true
parameters:
type: object
properties:
AUTHORIZATION:
type: object
properties:
BASIC:
type: object
properties:
BASIC_AUTH_PASSWORD:
type: string
example: ''
BASIC_AUTH_USERNAME:
type: string
example: ''
EVENT_ENDPOINT:
type: string
example: https://example.com
filters:
type: object
properties:
building_ids:
type: array
items:
type: integer
example: 1
default: 0
relationships:
type: object
properties:
action:
type: object
properties:
data:
type: object
properties:
id:
type: string
example: '3'
type:
type: string
example: action
created_by_user:
type: object
properties:
data: {}
- title: Webhook with Basic Authorization
type: object
properties:
data:
type: object
properties:
id:
type: string
example: '25'
type:
type: string
example: company_action
attributes:
type: object
properties:
name:
type: string
example: Webhook with basic AUTHORIZATION
enabled:
type: boolean
example: false
default: true
parameters:
type: object
properties:
AUTHORIZATION:
type: object
properties:
BASIC:
type: object
properties:
BASIC_AUTH_PASSWORD:
type: string
example: pass
BASIC_AUTH_USERNAME:
type: string
example: user
EVENT_ENDPOINT:
type: string
example: https://example.com
relationships:
type: object
properties:
action:
type: object
properties:
data:
type: object
properties:
id:
type: string
example: '3'
type:
type: string
example: action
created_by_user:
type: object
properties:
data: {}
text/plain:
examples:
Space Report Event Webhook with Custom Header:
value: "{\n \"data\": {\n \"id\": \"28\",\n \"type\": \"company_action\",\n \"attributes\": {\n \"name\": \"Webhook with custom header\",\n \"enabled\": false,\n \"parameters\": {\n \"CUSTOM_HEADERS\": {\n \"x-header\": \"test\"\n },\n \"EVENT_ENDPOINT\": \"https://example.com\"\n }\n },\n \"relationships\": {\n \"action\": {\n \"data\": {\n \"id\": \"3\",\n \"type\": \"action\"\n }\n },\n \"created_by_user\": {\n \"data\": null\n }\n }\n }\n}"
schema:
type: object
properties:
data:
type: object
properties:
id:
type: string
example: '28'
type:
type: string
example: company_action
attributes:
type: object
properties:
name:
type: string
example: Webhook with custom header
enabled:
type: boolean
example: false
default: true
parameters:
type: object
properties:
CUSTOM_HEADERS:
type: object
properties:
x-header:
type: string
example: test
EVENT_ENDPOINT:
type: string
example: https://example.com
relationships:
type: object
properties:
action:
type: object
properties:
data:
type: object
properties:
id:
type: string
example: '3'
type:
type: string
example: action
created_by_user:
type: object
properties:
data: {}
'400':
description: '400'
content:
application/json:
examples:
Result:
value: '{}'
schema:
type: object
properties: {}
deprecated: false
tags:
- Webhooks
get:
summary: /webhooks
description: Retrieve all webhooks.
operationId: webhooks
responses:
'200':
description: '200'
content:
application/json:
examples:
Result:
value: "{\n \"data\": [\n {\n \"id\": \"1\",\n \"type\": \"company_action\",\n \"attributes\": {\n \"name\": \"All\",\n \"enabled\": true,\n \"parameters\": {\n \"AUTHORIZATION\": {\n \"BASIC\": {\n \"BASIC_AUTH_PASSWORD\": \"example_user\",\n \"BASIC_AUTH_USERNAME\": \"example_pw\"\n }\n },\n \"EVENT_ENDPOINT\": \"https://example.com\"\n },\n \"filters\": {\n \"building_ids\": [\n 1\n ]\n }\n },\n \"relationships\": {\n \"action\": {\n \"data\": {\n \"id\": \"3\",\n \"type\": \"action\"\n }\n },\n \"created_by_user\": {\n \"data\": null\n }\n }\n },\n ],\n \"included\": [\n {\n \"id\": \"3\",\n \"type\": \"action\",\n \"attributes\": {\n \"name\": \"Space Report Event\",\n \"slug\": \"space_report_event\"\n }\n }\n ]\n}"
'400':
description: '400'
content:
application/json:
examples:
Result:
value: '{}'
schema:
type: object
properties: {}
deprecated: false
tags:
- Webhooks
/webhooks/{id}/enable:
post:
summary: /webhooks/:id/enable
description: Enable a webhook.
operationId: webhooksidenable
parameters:
- name: id
in: path
description: Webhook ID
schema:
type: string
required: true
responses:
'200':
description: '200'
content:
application/json:
examples:
Result:
value: '{}'
schema:
type: object
properties: {}
'400':
description: '400'
content:
application/json:
examples:
Result:
value: '{}'
schema:
type: object
properties: {}
deprecated: false
tags:
- Webhooks
/webhooks/{id}/disable:
post:
summary: /webhooks/:id/disable
description: Disable a webhook.
operationId: webhooksiddisable
parameters:
- name: id
in: path
description: Webhook ID
schema:
type: string
required: true
responses:
'200':
description: '200'
content:
application/json:
examples:
Result:
value: '{}'
schema:
type: object
properties: {}
'400':
description: '400'
content:
application/json:
examples:
Result:
value: '{}'
schema:
type: object
properties: {}
deprecated: false
tags:
- Webhooks
/webhooks/setup:
get:
summary: /webhooks/setup
description: Retrieve the webooks that are available to be setup, including their names, descriptions, and other basic information about them.
operationId: webhookssetup
responses:
'200':
description: '200'
content:
application/json:
examples:
Result:
value: "{\n \"data\": [\n {\n \"id\": \"3\",\n \"type\": \"action\",\n \"attributes\": {\n \"name\": \"Space Report Event\",\n \"slug\": \"space_report_event\"\n }\n },\n {\n \"id\": \"4\",\n \"type\": \"action\",\n \"attributes\": {\n \"name\": \"Sensor Report Event\",\n \"slug\": \"sensor_report_event\"\n }\n },\n {\n \"id\": \"5\",\n \"type\": \"action\",\n \"attributes\": {\n \"name\": \"Space Availability Event\",\n \"slug\": \"space_availability_event\"\n }\n },\n {\n \"id\": \"6\",\n \"type\": \"action\",\n \"attributes\": {\n \"name\": \"PIR Triggered Event\",\n \"slug\": \"pir_triggered_event\"\n }\n }\n ]\n}"
schema:
type: object
properties:
data:
type: array
items:
type: object
properties:
id:
type: string
example: '3'
type:
type: string
example: action
attributes:
type: object
properties:
name:
type: string
example: Space Report Event
slug:
type: string
example: space_report_event
'400':
description: '400'
content:
application/json:
examples:
Result:
value: '{}'
schema:
type: object
properties: {}
deprecated: false
tags:
- Webhooks
/webhooks/{id}:
patch:
summary: /webhooks/:id
description: Update a webhook.
operationId: webhooksid
parameters:
- name: id
in: path
description: Webhook ID
schema:
type: string
required: true
responses:
'200':
description: '200'
content:
application/json:
examples:
Result:
value: "{\n \"data\": {\n \"id\": \"21\",\n \"type\": \"company_action\",\n \"attributes\": {\n \"name\": \"Updated webhook\",\n \"enabled\": false,\n \"parameters\": {\n \"AUTHORIZATION\": {\n \"BASIC\": {\n \"BASIC_AUTH_PASSWORD\": \"\",\n \"BASIC_AUTH_USERNAME\": \"\"\n }\n },\n \"EVENT_ENDPOINT\": \"https://example.com\"\n }\n },\n \"relationships\": {\n \"action\": {\n \"data\": {\n \"id\": \"6\",\n \"type\": \"action\"\n }\n },\n \"created_by_user\": {\n \"data\": null\n }\n }\n }\n}"
schema:
type: object
properties:
data:
type: object
properties:
id:
type: string
example: '21'
type:
type: string
example: company_action
attributes:
type: object
properties:
name:
type: string
example: Updated webhook
enabled:
type: boolean
example: false
default: true
parameters:
type: object
properties:
AUTHORIZATION:
type: object
properties:
BASIC:
type: object
properties:
BASIC_AUTH_PASSWORD:
type: string
example: ''
BASIC_AUTH_USERNAME:
type: string
example: ''
EVENT_ENDPOINT:
type: string
example: https://example.com
relationships:
type: object
properties:
action:
type: object
properties:
data:
type: object
properties:
id:
type: string
example: '6'
type:
type: string
example: action
created_by_user:
type: object
properties:
data: {}
'400':
description: '400'
content:
application/json:
examples:
Result:
value: '{}'
schema:
type: object
properties: {}
deprecated: false
tags:
- Webhooks
delete:
summary: /webhooks/:id
description: Delete a webhook.
operationId: webhooksid-1
parameters:
- name: id
in: path
description: Webhook ID
schema:
type: string
required: true
responses:
'200':
description: '200'
content:
application/json:
examples:
Result:
value: '{}'
schema:
type: object
properties: {}
'400':
description: '400'
content:
application/json:
examples:
Result:
value: '{}'
schema:
type: object
properties: {}
deprecated: false
tags:
- Webhooks
/webhooks/{id}/logs:
get:
summary: /webhooks/:id/logs
description: Retrieve a webhook's logs. This endpoint only contains the last 7 days of logs.
operationId: webhooksidlogs
parameters:
- name: id
in: path
description: ID of webhook
schema:
type: integer
format: int32
required: true
- name: page
in: query
description: Page number for pagination
schema:
type: integer
format: int32
default: 1
- name: limit
in: query
description: Total number of logs per response, max is 1000
schema:
type: integer
format: int32
default: 20
- name: start_at
in: query
schema:
type: string
format: date
- name: end_at
in: query
schema:
type: string
format: date
responses:
'200':
description: '200'
content:
application/json:
examples:
Result:
value: "{\n \"meta\": {\n \"page\": 1,\n \"limit\": 20\n },\n \"links\": {\n \"next\": \"/webhooks/304/logs?page=2&limit=20\",\n \"prev\": null\n },\n \"data\": [\n {\n \"company_action_id\": \"1\",\n \"request\": {\n \"data\": {\n \"building_ref_id\": \"example\",\n \"event_type\": \"space_report\",\n \"floor_ref_id\": \"1\",\n \"motion_detected\": null,\n \"people\": {\n \"coordinates\": [],\n \"count\": 0,\n \"distances\": {\n \"units\": \"meters\",\n \"values\": []\n }\n },\n \"person_count\": 0,\n \"sensor_ids\": [\n \"400-E9U\"\n ],\n \"signs_of_life\": null,\n \"space_ref_id\": \"1\",\n \"timestamp\": \"2021-09-1T00:00:00.000Z\"\n },\n \"headers\": {\n \"Content-Type\": \"application/json\",\n \"x-application-code\": \"xxxxxxxxxxxxxxxx\",\n \"x-token\": \"xxxxxxxxxxxxxxxxxxxxxxxxxxxx\"\n },\n \"json\": true,\n \"method\": \"post\",\n \"resolveWithFullResponse\": true,\n \"timeout\": 5000,\n \"url\": \"https://myendpoint.example.com\"\n },\n \"response_message\": \"ok\",\n \"response_status_code\": \"200\",\n \"response_time_seconds\": 0.200,\n \"request_timestamp\": \"2021-09-1T00:00:00.000Z\",\n \"inserted_at\": \"2021-09-1T00:00:00.000Z\",\n \"success\": null\n }, ...\n ]\n}"
'400':
description: '400'
content:
application/json:
examples:
Result:
value: "{\n \"errors\": [\n {\n \"status\": \"400\",\n \"source\": {\n \"parameter\": \"start_at\"\n },\n \"title\": \"Invalid Parameter\",\n \"detail\": \"Invalid Date\"\n }\n ]\n}"
schema:
type: object
properties:
errors:
type: array
items:
type: object
properties:
status:
type: string
example: '400'
source:
type: object
properties:
parameter:
type: string
example: start_at
title:
type: string
example: Invalid Parameter
detail:
type: string
example: Invalid Date
deprecated: false
tags:
- Webhooks
components:
securitySchemes:
sec0:
type: apiKey
in: header
name: vs-api-key
x-default: ''
x-readme:
headers: []
explorer-enabled: true
proxy-enabled: true
x-readme-fauxas: true