Skip to main content

Base URL

https://api.writerzroom.com/v1

All Endpoints

MethodEndpointDescription
POST/generateSubmit a generation request
GET/generate/status/{request_id}Poll generation status and retrieve completed content
GET/contentList all saved content for the authenticated user
GET/content/{contentID}Retrieve a specific content item by ID
POST/content/saveSave or update a content item
POST/content/regenerate-sectionRegenerate a specific section of existing content
GET/templatesList all available templates
GET/templates/{slug}Retrieve a specific template by slug
GET/style-profilesList all available style profiles
GET/style-profiles/{slug}Retrieve a specific style profile by slug
GET/dashboard/statsRetrieve usage statistics and generation counts

Rate Limits

  • 10 requests per minute per account
  • 429 response when limit is exceeded — implement exponential backoff
  • Generations count against your monthly plan limit, not the per-minute rate limit

Error Codes

StatusMeaning
400Bad request — missing or invalid fields
401Unauthorized — missing or invalid API key
403Forbidden — plan does not include API access
404Not found — resource does not exist
429Rate limit exceeded — back off and retry
500Internal server error — contact support with request ID

Exponential Backoff Example

async function requestWithBackoff(fn, maxRetries = 3) {
  for (let attempt = 0; attempt < maxRetries; attempt++) {
    try {
      return await fn();
    } catch (err) {
      if (err.status !== 429 || attempt === maxRetries - 1) throw err;
      await new Promise(r => setTimeout(r, Math.pow(2, attempt) * 1000));
    }
  }
}
Last modified on March 11, 2026