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 Companies 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. The API is hosted on each customer''s own build, so the host is per-build (for example https://your-build.simprosuite.com) and requests are authenticated with an OAuth2 Bearer access token issued by that same build''s /oauth2/token endpoint. Most resources are nested under a company: /api/v1.0/companies/{companyID}/... where companyID is 0 on single-company builds. This document models a representative, commonly used subset of the API - companies, customers, sites, jobs, quotes, invoices, schedules, vendor orders, cost centers, stock, and webhook subscriptions. The full published API covers 300+ resource types. Endpoint paths, HTTP methods, the common list/search query parameters, and the confirmed list/read response fields are grounded in Simpro''s published API reference; request bodies for create/update are modeled minimally and marked as such, because the real payloads are large and build-configuration dependent.'
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:
responses:
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'
BadRequest:
description: The request payload failed validation.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
schemas:
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
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
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
parameters:
WebhookID:
name: webhookID
in: path
required: true
description: The webhook subscription's ID.
schema:
type: integer
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
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: {}