Overview and conventions
The Publish API returns every published job for a business as JSON. Use it to render job pages with your own front end instead of the SimplifyLocal renderer, or to pull job URLs into a static-site build.
It is read-only. Jobs are created from your scheduling tool and edited in the SimplifyLocal app; the API exposes what is live.
Base URL
Section titled “Base URL”https://app.simplifylocal.appEvery endpoint lives under /api/businesses/{slug}, where {slug} is the business’s web address name in SimplifyLocal (for example alpha-pressure-washing).
| Endpoint | Returns |
|---|---|
GET /api/businesses/{slug} |
The business and its path configuration |
GET /api/businesses/{slug}/jobs |
Published jobs, newest first, with pagination |
GET /api/businesses/{slug}/jobs/{job_slug} |
One published job in full |
GET /api/businesses/{slug}/feed/jobs |
A lightweight feed for static builds |
Field-by-field tables for every response object are in Objects.
Conventions
Section titled “Conventions”- JSON. Responses are
application/json; charset=utf-8. - snake_case field names. Convert on your side if your stack prefers otherwise.
- Timestamps are ISO 8601 in UTC with a
Zsuffix. - Server-to-server only. No CORS headers are sent, so a browser
fetchfrom another origin is not supported. Call the API from your server or your build step. - Authentication is a Bearer key on every request. See Authentication.
- Errors are a JSON body with an
errorcode. See Errors. - Caching is by
ETagandIf-None-Match. See Caching.
A first request
Section titled “A first request”curl https://app.simplifylocal.app/api/businesses/{slug}/jobs?limit=5 \ -H "Authorization: Bearer sl_live_…"Versioning and stability
Section titled “Versioning and stability”This is v1, served at the /api/businesses/... paths. Everything documented here is a commitment:
- Additive changes (new optional fields, new optional query parameters, new endpoints) are non-breaking and may land at any time. Write your client to ignore fields it does not know.
- Breaking changes (a field removed or its type changed) would ship at
/api/v2/...and never alter v1 in place.
Changes are recorded in the Changelog. Breaking changes are also emailed to every key holder before they take effect.