Ventura Content API
The Ventura Content API allows partner websites to fetch and display Ventura stories from KindJoe. This integration is read-only.
Endpoint status
Public read access. No write endpoints are exposed for partners.
Endpoint: list Ventura stories
GET /api/ventura/articlesReturns published Ventura-tagged stories, ordered newest first by publish timestamp.
Example request
curl "https://kindjoe.com/api/ventura/articles"Example response
[
{
"id": "9c32b8e6-24e7-4f88-9b0f-8d3901f4e881",
"slug": "ventura-housing-update",
"title": "Ventura Housing Update",
"excerpt": "What changed this week in Ventura County housing.",
"category": "local-news",
"coverImageUrl": "https://cdn.example.com/ventura.jpg",
"publishedAt": "2026-04-20T15:40:00.000Z",
"publishAt": null,
"createdAt": "2026-04-20T14:55:00.000Z",
"readingMinutes": 4,
"authorAlias": "Joe Ventura",
"authorName": "Joseph Smith",
"authorAvatarUrl": "https://cdn.example.com/avatar.png"
}
]Endpoint: Ventura article detail by slug
GET /api/ventura/articles/:slugReturns full article payload for rendering editorial pages.
Example request
curl "https://kindjoe.com/api/ventura/articles/ventura-housing-update"Example response
{
"id": "9c32b8e6-24e7-4f88-9b0f-8d3901f4e881",
"slug": "ventura-housing-update",
"title": "Ventura Housing Update",
"excerpt": "What changed this week in Ventura County housing.",
"coverImageUrl": "https://cdn.example.com/ventura.jpg",
"category": "local-news",
"authorId": "staff_123",
"authorAlias": "Joe Ventura",
"authorName": "Joseph Smith",
"authorAvatar": "https://cdn.example.com/avatar.png",
"contentMarkdown": "### LEDE\n\nFull editorial body in markdown...\n\n### THE OTHER SIDE\n\nOpposing view...",
"contentHtml": "<p>...</p>",
"content": {},
"publishedAt": "2026-04-20T15:40:00.000Z",
"publishAt": null,
"createdAt": "2026-04-20T14:55:00.000Z",
"updatedAt": "2026-04-20T15:41:00.000Z",
"readingMinutes": 4,
"categories": [{ "id": 1, "name": "Local News", "slug": "local-news" }],
"tags": [{ "id": 12, "name": "Ventura County", "slug": "ventura-county" }],
"linkedPrediction": null
}Endpoint: related stories by slug
GET /api/articles/:slug/relatedReturns related published stories for a specific source slug.
Example request
curl "https://kindjoe.com/api/articles/ventura-housing-update/related"Example response
{
"items": [
{
"id": "5724d7cc-24ce-4a5a-9ac5-ee9f9fe5a83d",
"slug": "ventura-interest-rates",
"title": "How Interest Rates Are Affecting Ventura",
"excerpt": "A quick breakdown of this week's changes.",
"coverImageUrl": "https://cdn.example.com/rates.jpg",
"publishedAt": "2026-04-18T12:00:00.000Z",
"publishAt": null,
"readingMinutes": 3
}
]
}Availability and filtering
- Only non-draft, non-deleted, published articles are returned.
- Ventura list endpoint filters to posts tagged with `ventura-county`.
- `GET /api/articles/ventura-county` remains available as a compatibility alias.
- Author fields come from the current writer profile (`authorName` + `authorAlias`).
- Related endpoint returns HTTP 404 if the source slug is not published.
Read-only policy
Partner integrations can only read and display content. No public create, update, or delete API methods are available for Ventura stories.
Integration checklist
- Fetch from `GET /api/ventura/articles` for Ventura lists.
- Fetch full editorial body from `GET /api/ventura/articles/:slug` using `contentMarkdown` (resolved from stored markdown with legacy jsonb/html fallback).
- Link users to canonical story URLs using each article slug.
- Cache API responses and avoid aggressive request polling.