The WriterzRoom API gives you programmatic access to the same generation pipeline that powers the UI. Submit a generation request, poll for status, retrieve the result, and manage content β all via REST.
Base URL
https://api.writerzroom.com/v1
Authentication
All API requests require a Bearer token in the Authorization header. Generate API keys from Settings β API Access.
Authorization: Bearer YOUR_API_KEY
API access requires the Professional plan or above. Starter plan users cannot generate API keys.
Core Endpoints
| Method | Endpoint | Description |
|---|
| POST | /generate | Submit a generation request. Returns a request_id. |
| GET | /generate/status/{request_id} | Poll generation status. Returns state and content when complete. |
| GET | /content | List all saved content for the authenticated user. |
| GET | /content/{contentID} | Retrieve a specific content item. |
| POST | /content/save | Save or update a content item. |
| POST | /content/regenerate-section | Regenerate a specific section of existing content. |
| GET | /templates | List all available templates. |
| GET | /style-profiles | List all available style profiles. |
| GET | /dashboard/stats | Retrieve usage stats and generation counts. |
Generation Flow
Generation is asynchronous. The pattern is always:
POST /generate with template_id, style_profile_id, and inputs. Receive request_id in response.
- Poll
GET /generate/status/{request_id} until status is completed or failed.
- Retrieve the content from the response body when status is
completed.
Common mistake: Treating generation as synchronous. Itβs not β always poll status. A generation that takes 3 minutes will not respond immediately to the initial POST.
Request Body β POST /generate
| Field | Type | Required | Description |
|---|
template_id | string | Yes | Template slug (e.g., blog_article_generator) |
style_profile_id | string | Yes | Style profile slug (e.g., general_blog) |
inputs | object | Yes | Key-value map of template-required input fields |
vertical | string | No | Vertical slug (e.g., healthcare, fintech, legal) |
brand_voice_id | string | No | ID of a saved brand voice profile to apply |