sparka home

API reference

All endpoints live under https://sparka.io. Requests and responses are JSON (Content-Type: application/json). Field names are snake_case, timestamps are RFC 3339 in UTC, and durations carry their unit in the name (time_limit_s).

  • Strict input. Unknown request fields are rejected with validation_failed, so a typo fails at save time, not on stage.
  • Tolerant output. Responses may gain fields at any time; ignore the ones you don't know.
  • Errors share one shape, described on the Errors page. Every response carries a Sparka-Request-Id header; quote it when you write to support.
  • Lists take limit (1–100, default 20) and cursor, and return next_cursor (null on the last page). Newest first.
  • Retries. POST /v1/presentations and POST /v1/keys accept an Idempotency-Key header, so a retried request never creates two.
  • Compatibility. Changes under /v1/ only add things. A breaking change would get a new path prefix and at least six months' notice.

Presentations

Save, read, list and delete presentations (title, settings, questions).

Sessions

Start, resume, inspect and end live sessions; read results.

Join

Participant PIN lookup and join, called by the join page.

Account & keys

Plan, limits, usage and secret-key management.

Billing

Stripe Checkout and customer-portal links.

MCP

The MCP endpoint and the OAuth discovery documents MCP clients read.