ServiceM8 API Updates - May 2026

May adds new REST API resources for service templates and job communication history, plus webhook diagnostics improvements for API integrations.

New: ServiceTemplate API

A new ServiceTemplate REST resource is available for accounts using Services:

  • GET /api_1.0/ServiceTemplate.json
  • GET /api_1.0/ServiceTemplate/{uuid}.json
  • POST /api_1.0/ServiceTemplate/{uuid}.json
  • DELETE /api_1.0/ServiceTemplate/{uuid}.json

The API returns a curated service template shape including questions, choices, variations, and staff capabilities. Reads require read_service_templates; create/update/delete requires manage_service_templates.

POST performs sparse updates on editable service rows only. Publishing via the API is not supported in this version. DELETE soft-deletes the service.

New: Job SMS And Email History

Two new read-only resources expose job-related communication history:

  • GET /api_1.0/sms.json
  • GET /api_1.0/sms/{uuid}.json
  • GET /api_1.0/email.json
  • GET /api_1.0/email/{uuid}.json

The SMS API requires read_sms; the Email API requires read_email.

Both resources return merged inbound and outbound job history, support cursor pagination via x-next-cursor, and support $filter for direction, related_object, and related_object_uuid.

Use $filter, for example:

/api_1.0/sms.json?$filter=direction eq inbound and related_object_uuid eq {job_uuid}

Direct query filters such as ?direction=inbound are not supported for these endpoints.

Webhook Subscription Diagnostics

GET /webhook_subscriptions now supports:

status=active
status=inactive
status=all

Responses include last_failure_reason and last_failure_at, making it easier to diagnose subscriptions that were automatically deactivated after repeated delivery failures.

Webhook documentation now also clarifies that callback URLs must return a successful 2xx response within 10 seconds. Repeated failures or timeouts can cause automatic deactivation.

2 Likes

Hello.
Thanks for the update.

When I call the SMS path, I get this error:
{
“errorCode”: 400,
“message”: “sms is not an authorised object type”,
“documentation”: “Please refer to ``https://developer.servicem8.com/llms.txt`` for developer documentation.”
}

This happens to all of the new paths in this update.

I have set the correct scope for all of them.

Hi Chris,

That “sms is not an authorised object type” error means the May 2026 API update hasn’t rolled out to your account yet.

If you log a Support ticket via the Help menu in the Online Dashboard, our team can prioritise the rollout to your account.

Also, don’t post any API keys/tokens/app secrets publicly.

Thanks,
Cody