curl --request POST \
--url https://api.app.hrizn.io/v1/public/content/batch \
--header 'Content-Type: application/json' \
--header 'X-API-Key: <api-key>' \
--data '
{
"items": [
{
"ideacloud_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"selected_question_ids": [
"<string>"
],
"brand_voice_id": "<string>",
"title": "<string>",
"language": "English",
"content_intent": "general",
"auto_compliance": false,
"auto_content_tools": false,
"content_length": 2600
}
]
}
'import requests
url = "https://api.app.hrizn.io/v1/public/content/batch"
payload = { "items": [
{
"ideacloud_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"selected_question_ids": ["<string>"],
"brand_voice_id": "<string>",
"title": "<string>",
"language": "English",
"content_intent": "general",
"auto_compliance": False,
"auto_content_tools": False,
"content_length": 2600
}
] }
headers = {
"X-API-Key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'X-API-Key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
items: [
{
ideacloud_id: '3c90c3cc-0d44-4b50-8888-8dd25736052a',
selected_question_ids: ['<string>'],
brand_voice_id: '<string>',
title: '<string>',
language: 'English',
content_intent: 'general',
auto_compliance: false,
auto_content_tools: false,
content_length: 2600
}
]
})
};
fetch('https://api.app.hrizn.io/v1/public/content/batch', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));const options = {
method: 'POST',
headers: {'X-API-Key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
items: [
{
ideacloud_id: '3c90c3cc-0d44-4b50-8888-8dd25736052a',
selected_question_ids: ['<string>'],
brand_voice_id: '<string>',
title: '<string>',
language: 'English',
content_intent: 'general',
auto_compliance: false,
auto_content_tools: false,
content_length: 2600
}
]
})
};
fetch('https://api.app.hrizn.io/v1/public/content/batch', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.app.hrizn.io/v1/public/content/batch",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'items' => [
[
'ideacloud_id' => '3c90c3cc-0d44-4b50-8888-8dd25736052a',
'selected_question_ids' => [
'<string>'
],
'brand_voice_id' => '<string>',
'title' => '<string>',
'language' => 'English',
'content_intent' => 'general',
'auto_compliance' => false,
'auto_content_tools' => false,
'content_length' => 2600
]
]
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"X-API-Key: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}{
"data": {
"items": [
{
"id": "407d63a9-74b7-41a4-9468-09dfdb71b0da",
"status": "generating",
"article_type": "qa",
"title": "2026 Chevy Silverado 3500 DRW: Deep Dive",
"created_at": "2026-02-28T11:41:46.114731+00:00",
"message": "Generation typically completes within a few minutes. Configure webhooks to receive real-time status notifications: https://api-docs.hrizn.io/webhooks"
},
{
"id": "2e06e64c-03a2-4ec5-854e-c0f385f1fecc",
"status": "generating",
"article_type": "expert",
"title": "2026 Chevy Silverado 3500 DRW: The Definitive Guide",
"created_at": "2026-02-28T11:41:46.073345+00:00",
"message": "Generation typically completes within a few minutes. Configure webhooks to receive real-time status notifications: https://api-docs.hrizn.io/webhooks"
}
],
"message": "Generation typically completes within a few minutes. Configure webhooks to receive real-time status notifications: https://api-docs.hrizn.io/webhooks"
}
}
Create content (batch)
Create up to 10 content items in a single request
curl --request POST \
--url https://api.app.hrizn.io/v1/public/content/batch \
--header 'Content-Type: application/json' \
--header 'X-API-Key: <api-key>' \
--data '
{
"items": [
{
"ideacloud_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"selected_question_ids": [
"<string>"
],
"brand_voice_id": "<string>",
"title": "<string>",
"language": "English",
"content_intent": "general",
"auto_compliance": false,
"auto_content_tools": false,
"content_length": 2600
}
]
}
'import requests
url = "https://api.app.hrizn.io/v1/public/content/batch"
payload = { "items": [
{
"ideacloud_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"selected_question_ids": ["<string>"],
"brand_voice_id": "<string>",
"title": "<string>",
"language": "English",
"content_intent": "general",
"auto_compliance": False,
"auto_content_tools": False,
"content_length": 2600
}
] }
headers = {
"X-API-Key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'X-API-Key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
items: [
{
ideacloud_id: '3c90c3cc-0d44-4b50-8888-8dd25736052a',
selected_question_ids: ['<string>'],
brand_voice_id: '<string>',
title: '<string>',
language: 'English',
content_intent: 'general',
auto_compliance: false,
auto_content_tools: false,
content_length: 2600
}
]
})
};
fetch('https://api.app.hrizn.io/v1/public/content/batch', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));const options = {
method: 'POST',
headers: {'X-API-Key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
items: [
{
ideacloud_id: '3c90c3cc-0d44-4b50-8888-8dd25736052a',
selected_question_ids: ['<string>'],
brand_voice_id: '<string>',
title: '<string>',
language: 'English',
content_intent: 'general',
auto_compliance: false,
auto_content_tools: false,
content_length: 2600
}
]
})
};
fetch('https://api.app.hrizn.io/v1/public/content/batch', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.app.hrizn.io/v1/public/content/batch",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'items' => [
[
'ideacloud_id' => '3c90c3cc-0d44-4b50-8888-8dd25736052a',
'selected_question_ids' => [
'<string>'
],
'brand_voice_id' => '<string>',
'title' => '<string>',
'language' => 'English',
'content_intent' => 'general',
'auto_compliance' => false,
'auto_content_tools' => false,
'content_length' => 2600
]
]
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"X-API-Key: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}{
"data": {
"items": [
{
"id": "407d63a9-74b7-41a4-9468-09dfdb71b0da",
"status": "generating",
"article_type": "qa",
"title": "2026 Chevy Silverado 3500 DRW: Deep Dive",
"created_at": "2026-02-28T11:41:46.114731+00:00",
"message": "Generation typically completes within a few minutes. Configure webhooks to receive real-time status notifications: https://api-docs.hrizn.io/webhooks"
},
{
"id": "2e06e64c-03a2-4ec5-854e-c0f385f1fecc",
"status": "generating",
"article_type": "expert",
"title": "2026 Chevy Silverado 3500 DRW: The Definitive Guide",
"created_at": "2026-02-28T11:41:46.073345+00:00",
"message": "Generation typically completes within a few minutes. Configure webhooks to receive real-time status notifications: https://api-docs.hrizn.io/webhooks"
}
],
"message": "Generation typically completes within a few minutes. Configure webhooks to receive real-time status notifications: https://api-docs.hrizn.io/webhooks"
}
}
content:write
Request body
Show Item properties
Show Item properties
basic, qa, expert, modellanding, comparison, salesevent.q-{timestamp}-{index}). Retrieve available IDs from Get IdeaCloud questions.English, Spanish, Mandarin Chinese, Japanese, Korean, Arabic, Farsi, Hebrew, French, Tagalog, Vietnamese, Portuguese, Russian.fixed_ops, variable, general.concise, steady, balanced, substantial, or in-depth. Replaces content_length.content_depth; this field is accepted for backward compatibility but has no effect.Example Request
curl -X POST https://api.app.hrizn.io/v1/public/content/batch \
-H "X-API-Key: hzk_your_key_here" \
-H "Content-Type: application/json" \
-d '{
"items": [
{
"ideacloud_id": "cec6a411-7632-498e-b2e8-afb1ea1857d7",
"article_type": "basic",
"language": "French",
"auto_compliance": true,
"auto_content_tools": true
},
{
"ideacloud_id": "1d1cf94d-803e-4459-89ca-6c246aa8a4a7",
"article_type": "qa",
"auto_compliance": true
},
{
"ideacloud_id": "30993ec0-907b-47a4-b5f1-9c1f6bd33194",
"article_type": "basic",
"title": "Custom Article Title"
}
]
}'
Response
Returns202 Accepted with status for each item.
{
"data": {
"items": [
{
"id": "407d63a9-74b7-41a4-9468-09dfdb71b0da",
"status": "generating",
"article_type": "qa",
"title": "2026 Chevy Silverado 3500 DRW: Deep Dive",
"created_at": "2026-02-28T11:41:46.114731+00:00",
"message": "Generation typically completes within a few minutes. Configure webhooks to receive real-time status notifications: https://api-docs.hrizn.io/webhooks"
},
{
"id": "2e06e64c-03a2-4ec5-854e-c0f385f1fecc",
"status": "generating",
"article_type": "expert",
"title": "2026 Chevy Silverado 3500 DRW: The Definitive Guide",
"created_at": "2026-02-28T11:41:46.073345+00:00",
"message": "Generation typically completes within a few minutes. Configure webhooks to receive real-time status notifications: https://api-docs.hrizn.io/webhooks"
}
],
"message": "Generation typically completes within a few minutes. Configure webhooks to receive real-time status notifications: https://api-docs.hrizn.io/webhooks"
}
}
content.completed and content.failed notifications instead of polling.Partial Failures
Each item in the batch is validated and processed independently. A single request may contain a mix of successful and failed items. Check thestatus field on each item in the response:
| Status | Meaning |
|---|---|
generating | Content creation started successfully |
failed | Validation or processing failed — see error field |
202 Accepted even if some items fail. Always check each item’s status in the response.When to Use Batch vs. Single
| Scenario | Recommended |
|---|---|
| Creating a single article with custom question selection | Create content |
| Generating 3+ articles programmatically | Create content (batch) |
| Generating 50+ articles | Batch endpoint + throttling (see Bulk Content Generation) |
Authorizations
Your Hrizn API key (prefix hzk_)
Body
1 - 10 elementsHide child attributes
Hide child attributes
basic, qa, expert, modellanding, comparison, salesevent Question IDs from the IdeaCloud (UUIDs from GET /ideaclouds/{id}/questions, or legacy q-{timestamp}-{index} format). Defaults to recommended questions.
1500Language for generated content
English, Spanish, Mandarin Chinese, Japanese, Korean, Arabic, Farsi, Hebrew, French, Tagalog, Vietnamese, Portuguese, Russian Controls which dealer links are injected inline vs. appended as a cross-department CTA. fixed_ops prioritizes service/parts links, variable prioritizes sales/financing links, general distributes all links evenly.
fixed_ops, variable, general Deprecated. Article length is now driven by content_depth; this field is accepted for backward compatibility but has no effect on the generated output. Remove from your integration when convenient.
200 <= x <= 5000Content depth preset that drives the article body. Five ordered positions: concise (tight, direct prose), steady (efficient and on-point), balanced (default; lets the topic and outline drive depth), substantial (substantively developed with concrete examples), and in-depth (thorough exploration with vivid local color). Replaces the legacy content_length field.
concise, steady, balanced, substantial, in-depth Response
Batch accepted
Hide child attributes
Hide child attributes
Informational message about async processing and webhook configuration
