Skip to content

Article Generation

The Article Generation API allows you to trigger long-form content creation using WriteIQ’s agentic engine. Because generating comprehensive articles can take several minutes, this API is asynchronous. You first trigger a generation job, and then poll for its status.

POST /v1/articles

Triggers a new article generation workflow.

FieldTypeDescription
keywordstringRequired. The primary keyword or topic for the article.
tonestringOptional. The desired tone of voice (e.g., “Professional”, “Conversational”).
writerConfigobjectOptional. Configuration overrides for the AI Writer.
extraInstructionsstringOptional. Additional instructions to append to the system prompt.
publishTargetstringOptional. A destination to automatically publish to upon completion (e.g., a connected WordPress ID).

writerConfig Options:

  • articleType (“blog_post”, “listicle”, “amazon_roundup”, “youtube_to_blog”)
  • articleLength (“short”, “medium”, “long”)
  • pointOfView (“first_person”, “second_person”, “third_person”)
  • realTimeData (boolean, defaults to true)
Terminal window
curl -X POST https://api.writeiq.com/v1/articles \
-H "Authorization: Bearer wiq_YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"keyword": "Best mechanical keyboards 2026",
"tone": "Authoritative",
"writerConfig": {
"articleType": "amazon_roundup",
"realTimeData": true
}
}'
{
"success": true,
"jobId": "job_api_8f7d9a...",
"status": "pending"
}

GET /v1/articles/:id

Retrieves the status and final output of an article generation job.

Terminal window
curl -X GET https://api.writeiq.com/v1/articles/job_api_8f7d9a... \
-H "Authorization: Bearer wiq_YOUR_API_KEY"
{
"job": {
"id": "job_api_8f7d9a...",
"status": "pending",
"keyword": "Best mechanical keyboards 2026",
"createdAt": "2026-05-06T12:00:00Z"
}
}
{
"job": {
"id": "job_api_8f7d9a...",
"status": "completed",
"keyword": "Best mechanical keyboards 2026",
"result": "# Best Mechanical Keyboards 2026\n\nIf you are looking for...",
"casResultHash": "a1b2c3d4e5f6...",
"createdAt": "2026-05-06T12:00:00Z"
}
}