How to Get ServiceM8 API Access (and What You Can Build)
How ServiceM8 API access works, the difference between a private connection and a published add-on, and what a ServiceM8 integration involves.
Best for: Trade and field service business owners, operations managersPractical guide for business decision-makers
Who this is for
Trade and field service operators who want ServiceM8 connected to accounting, payroll or an in-house system.
Question this answers
How do I get ServiceM8 API access and what can I connect it to?
What you'll leave with
The difference between a private connection and a published add-on
How to register for developer access
What the ServiceM8 API exposes
How add-ons and webhooks extend the job card
When a ServiceM8 integration needs a developer
Two routes into the ServiceM8 API
Before anything else, decide which of these you are actually doing, because the access path differs:
A private connection for your own account. You want your ServiceM8 talking to your accounting system, your reporting, or an internal tool. This is the simpler route and the one most businesses need.
A published add-on for other businesses. You are building something other ServiceM8 users will install. That goes through OAuth and a ServiceM8 review process before it can be listed.
People searching for a ServiceM8 API key are almost always in the first group, and are often told about the second, which is why the answers online feel more complicated than the situation warrants.
Getting access, step by step
Register for developer access through the ServiceM8 developer area, using an account the business controls.
Choose your integration type, private connection or distributed add-on, based on the section above.
Collect your credentials. For a distributed add-on this is an OAuth client id and secret. For a private connection the setup is lighter.
Select the scopes the integration needs. Grant read access where you only read, rather than granting everything by default.
Test against a non-production account if you can. Job and invoice data is not something you want to experiment on live.
Check the current process with ServiceM8 before you plan around it. ServiceM8 has changed its authentication approach over time, moving toward OAuth for distributed add-ons. Confirm the detail on their developer documentation rather than relying on this page or on older forum posts.
What the ServiceM8 API lets you do
The API is organised around the job, which mirrors how the product works:
Jobs, create, read and update, including status and scheduling
Clients and contacts, keep customer records in step with another system
Job materials and labour, the lines that make up what gets invoiced
Staff and job allocations, who is assigned to what
Job activity and timing, useful for payroll and productivity reporting
Attachments, photos, signatures and documents captured on site
Queues and categories, the workflow structure the office actually runs on
That combination is why ServiceM8 integrations tend to be about more than invoicing. Photo and signature capture flowing into a compliance record, or job timing feeding payroll, are common requests.
Add-ons, webhooks and the job card
Two capabilities are worth knowing about because they change what is possible.
Webhooks. ServiceM8 can notify your system when something changes rather than making you ask repeatedly. This matters more than it sounds. Polling a busy account for changed jobs is slow, wasteful and hits limits. Event driven updates are the difference between an integration that feels instant and one that lags.
Add-ons that extend the job card. A ServiceM8 add-on can put your own content and actions directly into the job screen the field team already uses. That is a genuinely useful pattern, because it means staff do not have to open a second app to do the extra step.
When to bring in a developer
You probably do not need outside help if you are
✓
Using the built-in ServiceM8 connection to Xero or MYOB as it comes
✓
Pulling job data into a spreadsheet or dashboard, read only
✓
Sending a simple notification when a job changes status
✓
Running a one-off export for reporting
You likely need specialist help if you are
⚠
Going beyond what the built-in accounting connector handles
Purchase orders, job costing and part invoicing are common reasons the standard connection is not enough.
⚠
Pushing job timing into payroll
Award rates, travel time and overtime need to be handled exactly.
⚠
Building a customer portal on top of ServiceM8 job data
Live job status for clients means dealing with permissions and what they should not see.
⚠
Moving photos, forms or signatures into a compliance system
Attachment handling and retention rules add work beyond the basic API calls.
⚠
Migrating between ServiceM8 and another job platform
A data migration with history to preserve is a project in its own right.
ServiceM8 is a well built product with a sensible API. Most of the projects that come to us are not there because the API is difficult, but because the standard connector stops short of what the business needs and nobody wants to keep bridging the gap by hand.
Key takeaways
How you get access depends on whether the integration is only for your own account or for other businesses
A private connection for your own account is the simpler path
A published add-on uses OAuth and goes through ServiceM8 review
The API covers jobs, clients, staff, materials, attachments and job activity
Webhooks matter, because polling a busy ServiceM8 account for changes does not scale