← Back to all docs

ServiceM8 API

ServiceM8 is a job management platform for trades and field service contractors—handling quoting, scheduling, dispatch, on-site invoicing, and payments, with much of the workflow centered on its iOS app. An unofficial API lets you programmatically pull jobs, clients, staff, job activities, materials, and attachments—and push updates like new jobs, quotes, job activities, and payments back into ServiceM8.

By Alex KlarfeldMay 30, 2026
ServiceM8 API

What is ServiceM8?

ServiceM8 is a job management platform for trades and field service contractors that helps businesses cut paperwork, schedule and dispatch staff, quote and invoice on site, and get paid faster. Built primarily around its iOS app and powered by AWS, ServiceM8 is used by electricians, plumbers, HVAC, cleaning, locksmith, pool, pest control, lawn care, and appliance-repair businesses to manage billions of dollars in jobs annually, and it integrates with QuickBooks Online, Xero, and MYOB.

Core product areas include:

  • Job management and staff coordination across the full job lifecycle
  • Scheduling and dispatching with a drag-and-drop calendar
  • On-site quoting and invoicing with digital signature capture
  • Media documentation—notes, photos, videos, and electronic PDF forms attached to jobs
  • Credit card payment processing and accounting sync (QuickBooks Online, Xero, MYOB)
  • Serverless developer add-ons that extend the ServiceM8 app and online platform

Common data entities:

  • Jobs, Job Activities, Job Materials, Job Contacts, Queues
  • Companies (Clients), Company Contacts
  • Staff, Schedules, Dispatch assignments
  • Quotes, Invoices, Job Payments
  • Attachments (photos, videos, signed PDF forms), Knowledge Articles

The ServiceM8 Integration Challenge

Contractors run their entire field operation on ServiceM8 every day, but turning a mobile-first, add-on-driven platform into clean API-driven automation is non-trivial:

  • Mobile-first data: ServiceM8 is built primarily around its iOS app, so much of the richest job, media, and on-site activity data is captured in the field rather than through a web console
  • OAuth and add-on gates: Public applications must implement OAuth 2.0 and request specific scopes (e.g. create_jobs) before they can read or write account data
  • Rate limits: The API caps at 180 requests per minute and 20,000 per day per account, returning HTTP 429 when exceeded—naive batch jobs hit the ceiling fast
  • Per-account throttling: A single add-on connected to many accounts is throttled separately per account, so multi-tenant integrations need careful per-tenant pacing
  • UUID-based records and linked objects: Jobs, activities, materials, contacts, and attachments are stitched together by UUID, so consistent data requires resolving relationships across multiple resources
  • Webhooks only for OAuth apps: Event subscriptions are limited to Public Applications, so simpler API-key integrations must poll for changes

How Supergood Creates ServiceM8 APIs

Supergood reverse-engineers authenticated ServiceM8 flows—across the OAuth-secured REST API and the app surfaces where field data lives—to deliver a resilient, normalized API layer for your ServiceM8 account.

  • Handles OAuth 2.0 authorization, scope grants, and token refresh securely
  • Respects the 180/minute and 20,000/day limits with adaptive throttling and per-account pacing to avoid 429s
  • Normalizes Jobs, Job Activities, Materials, Companies, Staff, and Attachments so you integrate once against consistent objects
  • Resolves UUID relationships and surfaces media and signed-form attachments alongside their parent jobs

Use ServiceM8 with AI agents: ServiceM8 MCP Server →

Getting Started

  • Schedule Integration Assessment

Book a 30-minute session to confirm the jobs, clients, staff, and payment data you need and your authentication model.

  • Supergood Generates and Validates Your API

We deliver a production-ready ServiceM8 adapter tuned to your account's scopes and data volume.

  • Deploy with Monitoring

Go live with continuous monitoring and automatic adjustments as ServiceM8 evolves.

servicem8

API Endpoints

Authentication

POST/authenticate

Authenticate to a ServiceM8 account via OAuth 2.0 and obtain an access token with the required scopes for downstream calls.

Jobs

GET/jobs

List jobs with filters for status, queue, assigned staff, client, and date range.

Jobs

POST/create_job

Create a new job against a client with description, location, and queue, returning the new record UUID.

Clients

GET/clients

Retrieve companies (clients) and their company contacts with address and billing details.

Job Activities

GET/job_activities

Pull job activities, time entries, and on-site notes linked to a job by UUID.

Billing

POST/create_payment

Record a job payment against an invoice with amount, method, and timestamp.

Use Cases

Sync jobs and scheduling into your systems

- Pull active jobs, queues, and assigned staff from ServiceM8 into a central warehouse - Stream job status and scheduling changes to downstream dispatch and reporting tools - Reconcile client and contact records for a unified customer view

Automate quoting and invoicing workflows

- Push new jobs and quotes into ServiceM8 from your CRM or intake forms - Pull invoices and job materials back for margin and revenue reporting - Trigger follow-ups when a quote is accepted or a job is completed

Reconcile payments and accounting

- Record job payments and sync them against invoices in ServiceM8 - Match payment activity to QuickBooks Online, Xero, or MYOB ledgers - Surface outstanding balances and aged receivables to retention workflows

Centralize field media and signed forms

- Pull photos, videos, and signed PDF forms attached to jobs - Archive job attachments to compliance and document-management systems - Link media back to the originating job and activity by UUID

Technical Specifications

Authentication

OAuth 2.0 authorization code flow with scoped access tokens, handled in a managed session

Connectivity

ServiceM8 REST API (api.servicem8.com/api_1.0) plus authenticated app surfaces where field data lives

Response format

Normalized JSON across Jobs, Activities, Materials, Companies, Staff, and Attachments, keyed by UUID

Rate limits

Adaptive throttling within ServiceM8's 180 requests/minute and 20,000 requests/day per-account caps

Session management

Automatic token refresh, scope handling, and credential rotation

Data freshness

Near real-time pulls for jobs, activities, and payments with optional scheduled batch syncs

Security

Encrypted credential vault, scoped OAuth tokens, SOC 2-aligned controls, and audit logging

Webhooks

Event-style callbacks for job, client, and payment changes via ServiceM8 webhook subscriptions for OAuth apps

Latency

Sub-second reads on cached entities; multi-second writes when creating jobs and posting payments

Throughput

Horizontally scaled workers paced per account to respect ServiceM8's daily request budget

Reliability

Retry, backoff, and idempotency keys for job creation and payment posting

Adaptation

Continuous monitoring of ServiceM8 API and add-on platform changes with automatic adjustment

Frequently asked questions

Yes. ServiceM8 is built primarily around its iOS app, and Supergood normalizes job activities, media, and signed-form attachments captured in the field alongside the data exposed through the REST API.

ServiceM8 caps requests at 180 per minute and 20,000 per day per account, returning HTTP 429 when exceeded. Supergood applies adaptive throttling and per-account pacing so your integration stays within budget without manual tuning.

No. Supergood handles the OAuth 2.0 authorization flow, scope grants, and token refresh for you, so you work against a clean normalized API instead of managing add-on registration and credentials.

Yes. You can create jobs, quotes, job activities, and payments, with idempotency and retry handling so writes are safe even under rate-limit pressure.

Supergood surfaces ServiceM8 invoices and payments in a normalized form so you can reconcile them against your accounting system, whether that's QuickBooks Online, Xero, or MYOB.

Ready to get a real API?