Skip to content

Get a job

GET /api/businesses/{slug}/jobs/{job_slug}

Returns one published job with everything needed to render its page: the body in Markdown and sanitized HTML, the photo set, related jobs, matched reviews, and ready-to-embed JSON-LD.

Terminal window
curl https://app.simplifylocal.app/api/businesses/{slug}/jobs/house-washing-marietta \
-H "Authorization: Bearer sl_live_…"

{job_slug} is the job’s slug as returned by List jobs or carried in a webhook. There are no query parameters.

200 OK

{
"business": { "slug": "…", "name": "…", "canonical_domain": "https://…", "jobs_base_path": "/work", "…": "…" },
"job": {
"slug": "house-washing-marietta",
"headline": "…",
"meta_description": "…",
"body_markdown": "…",
"body_html": "<p>…</p>",
"service_type": "house-washing",
"service_type_display": "House Washing",
"service_city": "marietta",
"service_city_display": "Marietta",
"service_state": "GA",
"completed_at": "2026-04-12T14:30:00Z",
"published_at": "2026-04-13T09:02:11Z",
"updated_at": "2026-04-13T09:02:11Z",
"media": [ { "url": "https://…", "width": 1600, "height": 1200, "alt": "…", "kind": "before", "pair_id": "…", "…": "…" } ],
"og_image_url": "https://…",
"related_jobs": [ { "slug": "…", "headline": "…", "…": "…" } ],
"reviews": [],
"noindex": false,
"canonical_slug": null,
"schema_org": { "@context": "https://schema.org", "@graph": [ "…" ] },
"project_facts": { "…": "…" },
"money_page_service_url": "https://…/services/house-washing",
"money_page_area_url": "https://…/service-areas/marietta",
"…": "…"
},
"aggregates": { "total_jobs": 42, "…": "…" }
}
Field Type Notes
business Business The business and its path configuration.
job Job The full job. Every field is populated on this endpoint.
aggregates JobsAggregates or null Counts across all published jobs for the business. null when the counts could not be computed; the job is still served.
  • body_html is sanitized and ready to insert. Internal links are already resolved against the business’s path configuration, and <img> tags carry srcset. body_markdown is the same content in GitHub-flavoured Markdown if you render your own.
  • schema_org is a complete JSON-LD object. Place it verbatim in <script type="application/ld+json">; do not modify it.
  • noindex: true means the page should carry <meta name="robots" content="noindex">. The business can set this per job, and some pages ship it automatically. Respect it.
  • canonical_slug, when set, names the earlier page this one repeats. It is informational; do not emit it as rel="canonical".
  • media[0] is the main photo. Items with kind: "before" or "after" that share a pair_id are a before/after pair; a before or after without a partner never appears, so a pair is always renderable as a pair. og_image_url is media[0].url, or null when the job has no photos.
  • related_jobs holds up to six other published jobs. Each has a tier you can use as a heading.
  • money_page_service_url and money_page_area_url are null when the business has no domain connected or when that service or town has no page of its own yet. Link them only when non-null.

Same as List jobs: an ETag, honoured by If-None-Match → 304. No Cache-Control on a normal response.

Status error When
404 job_not_found No published job with that slug. A draft, an archived job, and a slug that never existed all return this. A slug the business changed also returns 404 for its old value.
401 / 403 / 404 / 410 See Authentication.
500 lookup_failed Temporary; retry.