← Docs

API reference

Drive the pipeline from your own code.

Base URL: https://letsaskit-worker.nrupalakolkar.workers.dev

Authentication

REST access needs an API key on the Pro or Team tier (Free is Studio-only; there are no free-tier keys). Send it as a bearer token:

Authorization: Bearer <your-api-key>

Keys are provisioned by the operator. Only key hashes are stored; the plaintext key is shown once at creation.

Endpoints

POST /api/create

Start a creation job. Returns 202 with a job id.

{
  "input_type": "brief",
  "content": "Why small teams should write decisions down...",
  "voice_profile_id": "vp_123",
  "formats": ["seo_article", "linkedin_post", "x_post", "newsletter_section"]
}

input_type is one of brief, bullets, draft, transcript, url. voice_profile_id and formats are optional.

GET /api/jobs/:id

Poll a job. Returns the job with its state and, when finished, the content pack and gate scores. Unknown ids return 404.

GET /api/voice-profiles

List your voice profiles.

POST /api/voice-profiles

Create a voice profile from 1–3 writing samples. Returns 201 with the profile id, name, and voice card.

{
  "name": "Personal",
  "samples": ["First sample text...", "Second sample text..."]
}

Quotas

Monthly job quotas and daily neuron budgets apply per key, from your tier (see billing).

Errors

StatusMeaning
400Bad request — the body didn't validate. Details in the response.
401Missing, invalid, or revoked API key.
402quota_exceeded — monthly job quota used up. Includes an upgrade link.
403Key tier doesn't allow this (e.g. a Pro key on the MCP endpoint).
404Not found (unknown job id, unknown voice profile).
429daily_budget_exceeded — daily neuron budget used up; resets 00:00 UTC (resets_at in the body).

Machine-readable contract: /.well-known/letsaskit.json