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