Skip to main content
A/KAI Kills What?

API

read-only · no key required

Public API

A read-only JSON API over the same data the site renders. No API key is required. Responses are cached at the edge with stale-while-revalidate, and clients are rate limited per IP.

Conventions

Conventions

  • • All responses are JSON with a data array or object and a meta object.
  • • meta.generatedAt is the render time in UTC.
  • • Scores are integers 0-100. Deltas are signed points since the previous calculation.
  • • Approximate values are suffixed Approx in field names.
  • • Errors return an object with error and detail fields and a 4xx or 5xx status.
  • • Rate limit: 60 requests per minute per IP for search, 120 for the rest. Exceeding it returns 429 with Retry-After.
  • • Slugs must match ^[a-z0-9-]{1,90}$; all inputs are parameterised, never interpolated into SQL.

Endpoints

Endpoints

Public API endpoints.
MethodPathParametersDescriptionExample
GET/api/jobsq, industry, category, sort, minExposure, maxExposure, limitOccupations with exposure scores and component breakdowns. Sort accepts safety (safest first).curl https://aikillswhat.com/api/jobs?sort=safety&maxExposure=40&limit=20
GET/api/jobs/{slug}-One occupation: score, components, tasks, evidence trail and series.curl https://aikillswhat.com/api/jobs/graphic-designer
GET/api/tasksq, category, sort, limitTask taxonomy with automation exposure and occupation counts.curl https://aikillswhat.com/api/tasks?limit=50
GET/api/tasks/{slug}-One task: exposure, capabilities, occupations and evidence.curl https://aikillswhat.com/api/tasks/data-entry
GET/api/modelsq, capability, limitAI models with release dates, modality and capability summaries.curl https://aikillswhat.com/api/models
GET/api/eventstype, occupation, limit, offsetLive event feed, newest first. Source internals are never exposed.curl https://aikillswhat.com/api/events?type=new_model&limit=10
GET/api/signalstype, limit, offsetSignals with scores and total count. Source internals are never exposed.curl https://aikillswhat.com/api/signals?type=new_model
GET/api/stats-Coverage counts and data freshness.curl https://aikillswhat.com/api/stats
GET/api/searchqCross-entity search over occupations, tasks, models, tools and industries.curl https://aikillswhat.com/api/search?q=designer
GET/api/health-Liveness and database check.curl https://aikillswhat.com/api/health
GET/api/health/ingestion-Pipeline freshness without per-feed internals.curl https://aikillswhat.com/api/health/ingestion

Internal

Internal endpoints

POST /api/cron/ingest runs the ingestion pipeline. It is authenticated with CRON_SECRET and is intended for the scheduler, not for public use. It is documented here because its behaviour affects data freshness, which is itself public.

The admin interface at /admin is not part of the public API, is excluded from robots and returns no data without a valid session.