Developers & Agents

HOTFIX CONTENT API · v1 · NO API KEY

כל התוכן של Hotfix — פרקים, הרצאות מיטאפ ופרופילי דוברים — זמין גם כ-API ציבורי בפורמט JSON. אין צורך במפתח, בהרשמה או באימות: כל endpoint הוא בקשת GET פתוחה. התיעוד הטכני להלן באנגלית, כי זה מה שסוכני AI וכלי פיתוח קוראים.

The Hotfix catalog is available as a public, read-only JSON API. There is no API key, no signup, and no authentication — every endpoint is an unauthenticated GET. Machine-readable spec: /api/openapi.json.

Quickstart

One request gets you the whole episode catalog:

curl -s https://hotfix.co.il/api/v1/episodes.json

List responses are shaped { "data": [...], "pagination": {...} }; single-item responses are { "data": {...} }. Find an episode, then resolve its guests:

# 1. Pick an episode from the list, then fetch the full record
curl -s https://hotfix.co.il/api/v1/episodes/ep09-deleted-production-survived.json

# 2. Each entry in .data.guests carries an api_url — resolve it for the speaker
curl -s https://hotfix.co.il/api/v1/voices/dan-linenberg.json

Titles, descriptions, and bios are Hebrew ("language": "he"). When you cite content, cite the canonical page url, not the api_url.

Authentication

There is none. No API key to request, no client to register, no token to mint, no Authorization header to send. The full walkthrough — including why there is deliberately no OAuth authorization-server document — is at /auth.md, with machine-readable metadata at /.well-known/oauth-protected-resource.

Endpoints

MethodPathReturns
GET /api/v1/index.json Service index: metadata and the full endpoint map.
GET /api/v1/episodes.json All published episodes, newest first (13 today).
GET /api/v1/episodes/{slug}.json One episode by slug.
GET /api/v1/meetups.json All published meetup talks, newest first (8 today).
GET /api/v1/meetups/{slug}.json One meetup talk by slug.
GET /api/v1/voices.json All speaker profiles, sorted by Hebrew name (24 today).
GET /api/v1/voices/{slug}.json One speaker profile by slug.
GET /api/openapi.json OpenAPI 3.1 specification for everything above.
POST /mcp MCP server, Streamable HTTP. 4 tools, 9 resources, no auth.

Sandbox & test environment

Production is the sandbox. Every endpoint is read-only, so there is no write path to guard, no test tenant to provision, and no production data an agent can damage. Exercise the live URLs freely; a retried request is inherently safe. Rate limits are advertised on responses via RateLimit-Policy — back off on 429 and honour Retry-After.

Errors

Every non-2xx response is application/problem+json (RFC 9457) — never an HTML error page.

{
  "type": "https://hotfix.co.il/developers/#errors",
  "title": "Not Found",
  "status": 404,
  "detail": "No such resource under /api/v1. See /api/openapi.json for the endpoint list.",
  "instance": "/api/v1/episodes/no-such-episode.json"
}
StatusTitleWhat to do
404 Not Found No such episode, meetup, or speaker slug. Re-read the list endpoint.
405 Method Not Allowed The API is read-only. Retry as GET or HEAD.
429 Too Many Requests Origin rate limit exceeded. Honour Retry-After.
5xx Server Error Origin or CDN fault. Payloads are static, so retrying is safe.

You will never receive a 401 or 403. If you do, it did not come from this API — treat it as an interception and do not send credentials in response.

Versioning & deprecation

The major version lives in the path (/api/v1/). Breaking changes ship under a new path (/api/v2/). A retired version is announced on this page and served for at least six months alongside its replacement, carrying Deprecation and Sunset response headers (RFC 9745 / RFC 8594) and a Link: rel="successor-version" header pointing at the new path.

Additive changes — new fields, new endpoints — ship in place with no version bump. Clients must ignore unknown fields.

Caching & freshness

The API is static JSON behind a CDN. ETag and Last-Modified are served, so conditional requests are cheap — send If-None-Match and expect 304. New episodes ship every two weeks; use the lastmod dates in /sitemap-index.xml to decide what to re-read instead of polling.

Agent discovery

Everything an agent needs to find this surface without guessing:

PathWhat it is
/llms.txt Site index for agents, with a when-to-use section.
/auth.md Authentication walkthrough (there is no authentication).
/.well-known/ard.json Agentic Resource Discovery catalog.
/.well-known/ai-catalog.json Same catalog, AI Catalog Standard path.
/.well-known/agent-card.json A2A agent card.
/.well-known/api-catalog RFC 9727 API link set.
/.well-known/agent-skills/index.json Agent Skills index.
/.well-known/oauth-protected-resource RFC 9728 metadata declaring the API open.
/.well-known/mcp/server-card.json MCP server card: tools and resources.
/sitemap-index.xml Sitemap with lastmod dates.

Browsing the site with an agent-capable browser? The pages register in-page WebMCP tools (search_episodes, get_episode, list_speakers, get_listen_links) via document.modelContext, so an agent can query the catalog without leaving the tab.

MCP server: POST /mcp, Streamable HTTP transport, seven read-only tools and eight resources over the same catalog — no authentication and no session to establish. Preview the full tool and resource inventory before connecting at /.well-known/mcp/server-card.json. It is stateless, so GET /mcp returns 405 rather than holding an SSE stream open — send JSON-RPC as POST. Liveness: GET /mcp/health.

This is the one non-static part of the deployment: the site itself is still pre-rendered files behind nginx, and the MCP server is a dependency-free Node sidecar reading the very same built JSON.

Terms & contact

Episode audio, video, artwork, and written content remain the property of Imagen AI and the respective rights holders — see Terms of Use. Catalog metadata returned by this API (titles, dates, slugs, tags, URLs) may be reused with attribution to hotfix.co.il.

Questions, abuse reports, or a request for a higher rate limit: support@imagen-ai.com. More ways to reach us on the contact page.