Build-time feed
GET /api/businesses/{slug}/feed/jobsA lighter list than List jobs for sites that fetch at build time: no body, no structured data, no photo array, just what a card or a sitemap entry needs. Most-recently-updated first.
curl "https://app.simplifylocal.app/api/businesses/{slug}/feed/jobs?service=house-washing&limit=12" \ -H "Authorization: Bearer sl_live_…"Query parameters
Section titled “Query parameters”All optional.
| Parameter | Type | Default | Notes |
|---|---|---|---|
limit |
integer | 50 |
Page size, 1–200. Out of range → 400 invalid_limit. |
cursor |
string | — | The pagination.next_cursor from the previous page. Cursors from this endpoint are not interchangeable with /jobs cursors. |
service |
string | — | Only jobs whose service_type equals this slug, for example house-washing. |
city |
string | — | Only jobs whose service_city equals this slug, for example marietta. |
fields |
minimal |
— | Return only slug, url and updated_at. Any other value returns the full item. |
service and city combine. A page can come back shorter than limit when a filter is set; keep following next_cursor until has_more is false.
Ordering
Section titled “Ordering”updated_at descending, then id descending, so a rebuild sees the freshest edits first.
Response
Section titled “Response”200 OK
{ "items": [ { "slug": "house-washing-marietta", "headline": "…", "service_type": "house-washing", "service_city": "marietta", "meta_description": "…", "thumbnail_url": "https://…", "url": "https://example.com/work/house-washing-marietta", "updated_at": "2026-04-13T09:02:11Z" } ], "pagination": { "next_cursor": null, "has_more": false }}| Field | Type | Notes |
|---|---|---|
slug |
string | The job’s slug. |
headline |
string | Page headline. |
service_type |
string or null |
Service slug, null when the job has none. |
service_city |
string or null |
City slug, null when the job has none. |
meta_description |
string or null |
Short description. |
thumbnail_url |
string or null |
One representative photo, null when the job has none. |
url |
string | The job page’s absolute URL: the business’s connected domain plus /work/{slug}, or the SimplifyLocal-hosted address while no domain is connected. |
updated_at |
string | ISO 8601. Use it as <lastmod>. |
With fields=minimal each item is { "slug", "url", "updated_at" } only.
Headers
Section titled “Headers”| Header | Value |
|---|---|
ETag |
Honoured by If-None-Match → 304. |
Cache-Control |
public, max-age=300, s-maxage=600, stale-while-revalidate=86400. This endpoint may be cached by intermediaries; an edit shows up by your next build. |
Errors
Section titled “Errors”| Status | error |
|---|---|
400 |
invalid_cursor, invalid_limit |
401 / 403 / 404 / 410 |
See Authentication. |
500 |
lookup_failed — temporary; retry. |
See the guide: Add job URLs to a static sitemap.