REST API

The same capabilities as MCP over plain HTTP — JSON REST with Bearer auth.

Basics

Base URL: https://waper.ai/api/v1 OpenAPI: https://waper.ai/api/v1/openapi.json Auth: Authorization: Bearer <API key>

Conventions

  • Lists return { items, nextCursor } — paginate with ?cursor=;
  • Create-style calls accept an Idempotency-Key header (a key runs at most once within 24 hours);
  • Errors are RFC 9457 Problem JSON: { type, title, status, detail, code };
  • Long operations (media, research) stream NDJSON events.

Common endpoints

Method Path What it does
GET /me Your account
GET /watches Your watches
POST /watches Create a watch (Idempotency-Key)
GET /watches/:id/briefs Briefs of a watch
GET /briefs/:id One issue
POST /library/links Save a link (Idempotency-Key)
POST /library/files Upload a file (X-File-Name header)
GET /library Search the library
POST /agent/turns Agent conversation (NDJSON stream)
POST /media Transcribe media (returns a quote)
GET /media/:id Transcript & summary

Examples

curl -H "Authorization: Bearer wk_xxx" \
  https://waper.ai/api/v1/watches

curl -X POST https://waper.ai/api/v1/library/links \
  -H "Authorization: Bearer wk_xxx" \
  -H "Idempotency-Key: $(uuidgen)" \
  -H "Content-Type: application/json" \
  -d '{"url":"https://example.com/article"}'

curl -X POST https://waper.ai/api/v1/agent/turns \
  -H "Authorization: Bearer wk_xxx" \
  -H "Content-Type: application/json" \
  -d '{"text":"What did this week\u0027s AI briefs cover?","lang":"en"}' \
  --no-buffer

Limits & billing

  • 60 requests per minute per account;
  • Charged by actual model cost (/agent/turns, /media, /research are the expensive ones; list endpoints are free);
  • Usage is metered daily/weekly/monthly — see Credits.

OpenAPI

The full schema lives at https://waper.ai/api/v1/openapi.json — import it into Postman, Insomnia or Swagger UI.