Each endpoint below also has a generated reference page, with its parameters, request body schema, and an interactive request builder, under API → Endpoint Reference. Those pages are generated from the API server, so they always match what it accepts.
Endpoint Overview
Generation
Submit jobs and poll completion status.
Content
Retrieve, save, and manage generated drafts.
Configuration
Fetch templates, styles, and vertical settings.
Usage
Review account statistics and activity.
Base URL
Core Endpoints
Streaming a Generation
GET /generate/stream/{request_id} returns text/event-stream. Each event has an id, an event name, and a JSON data payload. If the connection drops, reconnect with the last id you received in the Last-Event-ID header and the stream resumes after it.
A stream served after a restart, or by a different server than the one running the generation, has no
token previews: it sends stage events and the final complete, error, or interrupt. If it sends status with "fallback": "poll", continue with GET /generate/status/{request_id}.
GET /generate/{request_id}/history returns 501 when the deployment does not keep checkpoints.
Governance Endpoints
Approval routing, post-publication validity monitoring, and replay. See Content Governance for what these records contain and how they are produced./replay/{request_id}/request returns a payload for you to submit to /generate; it does not run the generation itself. A replay is metered and rate-limited like any other request.Artifact Endpoints
See Verified Artifacts API for response semantics and non-claims.
Corpus Endpoints
Shared ingestion and deletion routes are administrator-only. The separate Corpus MCP is read-only and curated-only.
Request Example
Error Response Example
Integration Flow
1
Authenticate requests
Add the
Authorization: Bearer YOUR_API_KEY header to every protected request.2
Fetch valid configuration
Use
/templates, /style-profiles, and /verticals to retrieve valid identifiers before submitting generation jobs.3
Submit generation
Call
POST /generate with the selected template, style profile, vertical, generation mode, and structured input.4
Poll for completion
Use
/generate/status/{request_id} to retrieve processing updates and completed content.5
Save or manage content
Use content endpoints to retrieve, save, update, or regenerate content sections.
Rate Limits
Error Codes
Safe Retries
Send your ownrequest_id with POST /generate so a retry cannot start, or charge for, a second generation. Use 8 to 128 letters, digits, hyphens or underscores; a UUID works. The ID must be unique within your account.
- Resubmitting the same
request_idreturns202with the original generation’s currentstatusand"duplicate": true. Nothing new is started or charged. - Reusing a
request_idfor a different template returns409. - Omitting
request_idstill works; the API assigns one, but a retried request then counts as a new generation.
Exponential Backoff Example
Operational Guidance
Which base URL should integrations use?
Which base URL should integrations use?
Use
https://api.writerzroom.com/api for public API integrations.Should identifiers be hardcoded?
Should identifiers be hardcoded?
Avoid hardcoding identifiers for large integrations. Fetch templates, style profiles, and verticals programmatically when possible.
How should rate limits be handled?
How should rate limits be handled?
Treat
429 as a retryable response and apply exponential backoff. Do not retry immediately in tight loops.Is it safe to retry a generation request that timed out?
Is it safe to retry a generation request that timed out?
Yes, if the original request carried a
request_id: resend it with the same ID and you get the original generation back. See Safe Retries.What information should be included in support requests?
What information should be included in support requests?
Include the endpoint, timestamp, request ID if available, response status, and sanitized error body.
API Authentication
Learn how to authenticate API requests.
Check Generation Status
Poll submitted generation jobs until completion.
Dataset analysis inputs
These endpoints require authenticated source-use permission. Inspection and validation share a limit of twelve requests per minute per user. Responses are private and are not cached.
See Dataset analysis for supported calculations and verification limits.