Partner API
v1 — read-only JSON for syndication partners
The same editor-curated records that power every page on this site, exposed as JSON for chamber, BMS, regional tourism brands, AI crawlers, and anyone building on top of Sullivan County heritage data. Free. CORS-open. No key. No registration.
Endpoints
- GET /api/v1/sites
All editor-curated sites (heritage, music, motorsports, outdoor, museum, dining, lodging, event-venue).
- GET /api/v1/tours
All self-guided routes, including America 250 routes.
- GET /api/v1/events
Anchor, major, regional, and local events through the calendar window.
- GET /api/v1/narratives
Long-form heritage narratives.
- GET /api/v1
Endpoint index with record counts.
- GET /api/companion?q=...&k=5
Grounded retrieval: returns the top-K Sullivan County chunks most relevant to a free-text query, each with a citation URL and snippet. When ANTHROPIC_API_KEY is configured the response also carries a grounded `answer` field synthesized from those chunks (claude-haiku-4-5, max 240 tokens, 7d cached). Per-IP rate limit: 60/min.
- GET /api/digest/preview
JSON envelope of this week's digest (subject, intro, weekend events, open-now picks). Used by the scheduled Cron worker that dispatches via Resend.
- GET /api/digest/render
HTML email body of this week's digest. Used by the dispatcher.
Conventions
- Method. GET only. OPTIONS supported for CORS preflight.
- Format. JSON. Every collection endpoint returns
{ count, <collection>: [...] }. - Caching.
Cache-Control: public, max-age=300, stale-while-revalidate=86400. Every /api/v1/* response also carries anETag+Last-Modified;If-None-Match/If-Modified-Sinceshort-circuit to304 Not Modifiedwhen nothing has changed since the last build. - Observability. Every response carries an
X-Request-Idheader for log correlation. - Rate limits. /api/companion is 60 req/min/IP; /api/push/subscribe and /api/digest/subscribe are 10 req/min/IP. Allowed responses include
RateLimit-Limit / -Remaining / -Resetheaders; 429s addRetry-After. - Versioning. Every response carries
X-Api-Version: v1(v0 on /api/companion). Breaking changes ship as/api/v2, never as mutations to v1. - Honesty. All records are editor-curated. Nothing is "live" beyond build time. Hours and prices reflect last verification.
Attribution
If you build a derivative product (map, app, AI tool, citation), please link back to the canonical detail page on wheretennesseebegan.com and email partners@wheretennesseebegan.com so we can keep your endpoint registered.