Blog API
Use the Blog API to generate and manage AI-powered blog posts.Authentication
All API requests require an API key in the PULITZER-API-KEY header.
Header Setup
PULITZER-API-KEY: YOUR_API_KEYcurl -X GET "https://api.pulitzer.ai/live/openapi/blog/list" \
-H "PULITZER-API-KEY: YOUR_API_KEY"Generate Blog
Generate an AI-powered blog post based on keywords.
POST https://api.pulitzer.ai/live/openapi/blog/generateRequest Body
{
"keyword": "AI λ§μΌν
μλν νΈλ λ",
"blog_type": "marketing",
"language": "ko",
"target_length": "medium",
"tone": "professional",
"is_image": false,
"is_search": true,
"reference_ids": [
1,
2
]
}Request Body Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
keyword | string | β | Blog generation keyword (max 2000 chars) |
blog_type | string | β | Blog type (general, tech, marketing, news) |
language | string | β | Language (ko, en, ja, zh, default: ko) |
target_length | string | β | Target length (short, medium, long) |
tone | string | β | Tone (professional, casual, friendly) |
is_image | boolean | β | Auto-generate images |
is_search | boolean | β | Use web search |
reference_ids | array[integer] | β | Reference IDs |
Response
{
"status": "SUCCESS",
"success": true,
"message": "λΈλ‘κ·Έ μμ± μλ£",
"data": {
"blog_id": 100,
"title": "2026 AI λ§μΌν
μλν μλ²½ κ°μ΄λ",
"content": "μΈκ³΅μ§λ₯ κΈ°μ μ λ°μ μΌλ‘ λ§μΌν
μλνκ°...",
"content_blocks": [
{
"type": "text",
"content": "μΈκ³΅μ§λ₯ κΈ°μ μ λ°μ μΌλ‘..."
}
],
"keyword": "AI λ§μΌν
μλν νΈλ λ",
"language": "ko"
}
}curl -X POST "https://api.pulitzer.ai/live/openapi/blog/generate" \
-H "PULITZER-API-KEY: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"keyword": "AI Marketing Automation Trends",
"blog_type": "marketing",
"language": "en",
"is_search": true
}'Modify Blog with AI
Modify an existing blog post with AI.
POST https://api.pulitzer.ai/live/openapi/blog/modify-aiRequest Body
{
"blog_id": 100,
"modification_prompt": "λ μΊμ£ΌμΌν ν€μΌλ‘ μμ ν΄μ£ΌμΈμ"
}Request Body Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
blog_id | integer | β | Blog ID to modify |
modification_prompt | string | β | Modification instructions (max 2000 chars) |
Response
{
"status": "SUCCESS",
"success": true,
"message": "λΈλ‘κ·Έ μμ μλ£",
"data": {
"blog_id": 100,
"title": "2026 AI λ§μΌν
μλν μλ²½ κ°μ΄λ",
"content": "μμ λ λΈλ‘κ·Έ λ΄μ©..."
}
}curl -X POST "https://api.pulitzer.ai/live/openapi/blog/modify-ai" \
-H "PULITZER-API-KEY: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"blog_id": 100,
"modification_prompt": "Please revise to a more casual tone"
}'List Blogs
Retrieve user's blog list.
GET https://api.pulitzer.ai/live/openapi/blog/listQuery Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
page | integer | β | Page number (default: 1) |
page_size | integer | β | Page size (1-100, default: 20) |
Response
{
"status": "SUCCESS",
"success": true,
"message": "λΈλ‘κ·Έ λͺ©λ‘ μ‘°ν μ±κ³΅",
"data": {
"blog_list": [
{
"id": 100,
"title": "2026 AI λ§μΌν
μλν μλ²½ κ°μ΄λ",
"keyword": "AI λ§μΌν
μλν νΈλ λ",
"language": "ko",
"is_public": false,
"created_at": 1760079885
}
],
"page_count": 5,
"total_count": 42
}
}curl -X GET "https://api.pulitzer.ai/live/openapi/blog/list?page=1&page_size=10" \
-H "PULITZER-API-KEY: YOUR_API_KEY"Blog Detail
Retrieve detailed information of a blog post.
GET https://api.pulitzer.ai/live/openapi/blog/{`{blog_id}`}Response
{
"status": "SUCCESS",
"success": true,
"message": "λΈλ‘κ·Έ μ‘°ν μ±κ³΅",
"data": {
"id": 100,
"title": "2026 AI λ§μΌν
μλν μλ²½ κ°μ΄λ",
"content": "μΈκ³΅μ§λ₯ κΈ°μ μ λ°μ μΌλ‘ λ§μΌν
μλνκ°...",
"content_blocks": [
{
"type": "text",
"content": "μΈκ³΅μ§λ₯ κΈ°μ μ λ°μ μΌλ‘..."
},
{
"type": "image",
"image_url": "https://...",
"caption": "AI λ§μΌν
λμ"
}
],
"keyword": "AI λ§μΌν
μλν νΈλ λ",
"language": "ko",
"is_public": false,
"created_at": 1760079885
}
}curl -X GET "https://api.pulitzer.ai/live/openapi/blog/100" \
-H "PULITZER-API-KEY: YOUR_API_KEY"Delete Blog
Delete a blog post.
DELETE https://api.pulitzer.ai/live/openapi/blog/{`{blog_id}`}Response
{
"status": "SUCCESS",
"success": true,
"message": "λΈλ‘κ·Έ μμ μ±κ³΅"
}curl -X DELETE "https://api.pulitzer.ai/live/openapi/blog/100" \
-H "PULITZER-API-KEY: YOUR_API_KEY"Blog History
Retrieve blog modification history.
GET https://api.pulitzer.ai/live/openapi/blog/{`{blog_id}`}/historyResponse
{
"status": "SUCCESS",
"success": true,
"message": "μμ νμ€ν 리 μ‘°ν μ±κ³΅",
"data": [
{
"id": 1,
"title": "μ΄μ μ λͺ©",
"content": "μ΄μ λ³Έλ¬Έ λ΄μ©...",
"created_kst": "2026-05-25T14:30:00"
}
]
}curl -X GET "https://api.pulitzer.ai/live/openapi/blog/100/history" \
-H "PULITZER-API-KEY: YOUR_API_KEY"Blog References
Manage reference materials for blog generation.
Create Reference
POST https://api.pulitzer.ai/live/openapi/blog/reference{
"title": "λ§μΌν
리μμΉ μλ£",
"content": "2026λ
λμ§νΈ λ§μΌν
νΈλ λ 리ν¬νΈ...",
"url": "https://example.com/report"
}List References
GET https://api.pulitzer.ai/live/openapi/blog/referencesDelete Reference
DELETE https://api.pulitzer.ai/live/openapi/blog/reference/{`{reference_id}`}Response (List)
{
"status": "SUCCESS",
"success": true,
"data": [
{
"id": 1,
"title": "λ§μΌν
리μμΉ μλ£",
"content": "2026λ
λμ§νΈ λ§μΌν
νΈλ λ 리ν¬νΈ...",
"url": "https://example.com/report"
}
]
}curl -X POST "https://api.pulitzer.ai/live/openapi/blog/reference" \
-H "PULITZER-API-KEY: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"title": "Marketing Research Report",
"content": "2026 Digital Marketing Trends Report...",
"url": "https://example.com/report"
}'