Simpro Webhooks API
Webhook subscriptions for build event notifications.
Webhook subscriptions for build event notifications.
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
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.curl "https://apis.io/api/v1/apis/simpro-webhooks-api"
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
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: 3.2.0
info:
title: Simpro REST Webhooks API
description: The Simpro (simPRO) REST API v1.0 provides a RESTful interface to view, create, and modify resources on a Simpro Premium build - the field service, trade, and project management platform.
version: '1.0'
contact:
name: Simpro Developer Center
url: https://developer.simprogroup.com/
x-access-model: Not a shared public API. Access requires an existing Simpro Premium subscription and API access enabled on that build; OAuth2 client credentials are provisioned per build by the account administrator. Base host is the customer's own build subdomain, not a single global endpoint.
servers:
- url: https://{build}.simprosuite.com/api/v1.0
description: Per-build Simpro Premium host. Replace {build} with your build subdomain.
variables:
build:
default: your-build
description: Your Simpro Premium build subdomain - the same domain you use to log in to the Simpro staff portal (e.g. mycompany in mycompany.simprosuite.com).
security:
- oauth2: []
tags:
- name: Webhooks
description: Webhook subscriptions for build event notifications.
paths:
/companies/{companyID}/setup/webhooks/:
parameters:
- $ref: '#/components/parameters/CompanyID'
get:
operationId: listWebhooks
tags:
- Webhooks
summary: List all webhook subscriptions
responses:
'200':
description: A list of webhook subscriptions.
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/WebhookListItem'
'401':
$ref: '#/components/responses/Unauthorized'
post:
operationId: createWebhook
tags:
- Webhooks
summary: Create a webhook subscription
description: Subscribes an HTTPS callback URL to build events. NOTE - request body is modeled minimally; see the Simpro API reference for the full schema.
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/WebhookInput'
responses:
'201':
description: The created webhook subscription.
content:
application/json:
schema:
$ref: '#/components/schemas/WebhookListItem'
'401':
$ref: '#/components/responses/Unauthorized'
'400':
$ref: '#/components/responses/BadRequest'
/companies/{companyID}/setup/webhooks/{webhookID}:
parameters:
- $ref: '#/components/parameters/CompanyID'
- $ref: '#/components/parameters/WebhookID'
get:
operationId: getWebhook
tags:
- Webhooks
summary: Retrieve a webhook subscription
responses:
'200':
description: The requested webhook subscription.
content:
application/json:
schema:
$ref: '#/components/schemas/WebhookListItem'
'401':
$ref: '#/components/responses/Unauthorized'
'404':
$ref: '#/components/responses/NotFound'
patch:
operationId: updateWebhook
tags:
- Webhooks
summary: Update a webhook subscription
description: NOTE - request body is modeled minimally; see the Simpro API reference.
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/WebhookInput'
responses:
'200':
description: The updated webhook subscription.
content:
application/json:
schema:
$ref: '#/components/schemas/WebhookListItem'
'401':
$ref: '#/components/responses/Unauthorized'
'404':
$ref: '#/components/responses/NotFound'
delete:
operationId: deleteWebhook
tags:
- Webhooks
summary: Delete a webhook subscription
responses:
'204':
description: The webhook subscription was deleted.
'401':
$ref: '#/components/responses/Unauthorized'
'404':
$ref: '#/components/responses/NotFound'
components:
schemas:
WebhookListItem:
type: object
description: Modeled from the webhook subscriptions resource. Verify field names against the Simpro API reference.
properties:
ID:
type: integer
Reference:
type: string
CallbackURL:
type: string
format: uri
WebhookInput:
type: object
description: Modeled minimal create/update body for a webhook subscription.
properties:
Reference:
type: string
CallbackURL:
type: string
format: uri
Events:
type: array
items:
type: string
Error:
type: object
description: Modeled error envelope. Verify the exact shape against the Simpro API reference.
properties:
errors:
type: array
items:
type: object
properties:
message:
type: string
key:
type: string
responses:
BadRequest:
description: The request payload failed validation.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
Unauthorized:
description: Missing or invalid OAuth2 Bearer token.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
NotFound:
description: The requested resource was not found.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
parameters:
CompanyID:
name: companyID
in: path
required: true
description: The company ID. A build with Multi-company setup may have companyID >= 0; other builds use 0 by default.
schema:
type: integer
default: 0
WebhookID:
name: webhookID
in: path
required: true
description: The webhook subscription's ID.
schema:
type: integer
securitySchemes:
oauth2:
type: oauth2
description: 'OAuth2 issued by the customer''s own Simpro build. Access tokens are obtained from https://{build}.simprosuite.com/oauth2/token and sent as `Authorization: Bearer ACCESS_TOKEN`. Both the client credentials and authorization code grants are supported depending on how the API application is registered on the build.'
flows:
clientCredentials:
tokenUrl: https://your-build.simprosuite.com/oauth2/token
scopes: {}
authorizationCode:
authorizationUrl: https://your-build.simprosuite.com/oauth2/authorize
tokenUrl: https://your-build.simprosuite.com/oauth2/token
scopes: {}