Press API
Use the Press API to generate and manage AI-powered press releases.Authentication
All API requests require an API key in the PULITZER-API-KEY header.
Header Setup
PULITZER-API-KEY: YOUR_API_KEYGetting API Key
You can obtain an API key from the PulitzerAI dashboard.
- Navigate to Settings after logging into the dashboard
- Create a new key in the API Key Management section
- Store the generated key securely
curl -X GET "https://api.pulitzer.ai/live/openapi/press/list" \
-H "PULITZER-API-KEY: YOUR_API_KEY"Create Press Release
AI automatically generates press releases based on keywords.
POST https://api.pulitzer.ai/live/openapi/press/create-v2Request Body
{
"keyword": "Pulitzer AI Press Release Generation API Launch",
"language": "en",
"is_public": false,
"is_image": false,
"is_search": false,
"kind": "Product Launch",
"is_lead_text": false,
"reference_ids": [
1,
2
],
"img_options": [
"professional",
"modern"
]
}Request Body Parameters
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
keyword | string | β | - | Core keyword for press release generation (max 1000 chars) |
language | string | β | ko | Output language (ko, en, ja, fr, zh, id) |
is_public | boolean | β | false | Whether to make the press release public |
is_image | boolean | β | false | Whether to auto-generate images |
is_search | boolean | β | false | Whether to use web search |
kind | string | β | null | Press release type (e.g. "Product Launch", "Personnel") |
is_lead_text | boolean | β | false | Whether to generate a lead text (subtitle) |
reference_ids | array[integer] | β | null | List of reference press release IDs |
img_options | array[string] | β | null | Image generation options (e.g. ["professional", "modern"]) |
Response
{
"status": "SUCCESS",
"success": true,
"message": "Press release created successfully",
"data": {
"press_id": 658,
"title": "Pulitzer AI Officially Launches Innovative Press Release Generation API",
"content": "Pulitzer AI, developed by StarSeed, has launched a press release generation API...",
"img_url": null,
"language": "en",
"created_at": 1760079885
}
}Response Fields
| Field | Type | Description |
|---|---|---|
status | string | Response status ("SUCCESS" or "FAIL") |
success | boolean | Whether the request was successful |
message | string | Response message |
data.press_id | integer | Generated press release ID |
data.title | string | Generated press release title |
data.content | string | Generated press release content |
data.img_url | string|null | Generated image URL (only when image generation is enabled) |
data.language | string | Press release language code |
data.created_at | integer | Creation time (Unix timestamp) |
curl -X POST "https://api.pulitzer.ai/live/openapi/press/create-v2" \
-H "PULITZER-API-KEY: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"keyword": "Pulitzer AI Press Release Generation API Launch",
"language": "en",
"is_search": true
}'Modify Press Release
Modify an existing press release with AI.
POST https://api.pulitzer.ai/live/openapi/press/modifyRequest Body
{
"press_id": 658,
"modification_prompt": "Please revise to a more formal tone"
}Request Body Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
press_id | integer | β | Press release ID to modify |
modification_prompt | string | β | Modification instructions (max 1000 chars) |
Response
{
"status": "SUCCESS",
"success": true,
"message": "Press release modified successfully",
"data": {
"press_id": 658,
"title": "Pulitzer AI Officially Launches Innovative Press Release Generation API",
"content": "Pulitzer AI, developed by StarSeed, has launched a press release generation API..."
}
}Response Fields
| Field | Type | Description |
|---|---|---|
status | string | Response status ("SUCCESS" or "FAIL") |
success | boolean | Whether the request was successful |
message | string | Response message |
data.press_id | integer | Modified press release ID |
data.title | string | Modified press release title |
data.content | string | Modified press release content |
curl -X POST "https://api.pulitzer.ai/live/openapi/press/modify" \
-H "PULITZER-API-KEY: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"press_id": 658,
"modification_prompt": "Please revise to a more formal tone"
}'List Press Releases
Retrieve a list of user's press releases.
GET https://api.pulitzer.ai/live/openapi/press/list?page=1&page_size=10Query Parameters
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
page | integer | β | 1 | Page number (1 or above) |
page_size | integer | β | 20 | Page size (1-100) |
keyword | string | β | null | Search keyword (searches title, content, keyword) |
sorting | string | β | latest | Sort order (latest: newest first, oldest: oldest first) |
Response
{
"status": "SUCCESS",
"success": true,
"message": "Press release list retrieved successfully",
"data": {
"press_list": [
{
"id": 658,
"title": "Pulitzer AI Officially Launches Innovative Press Release Generation API",
"content": "Pulitzer AI developed by StarSeed...",
"language": "en",
"is_public": false,
"img_url": null,
"created_at": 1760079885,
"updated_at": 1760079885,
"question": "Pulitzer AI Press Release Generation API Launch"
}
],
"page_count": 59,
"total_count": 590
}
}Response Fields
| Field | Type | Description |
|---|---|---|
status | string | Response status ("SUCCESS" or "FAIL") |
success | boolean | Whether the request was successful |
message | string | Response message |
data.press_list | array | Array of press release objects |
data.press_list[].id | integer | Press release ID |
data.press_list[].title | string | Press release title |
data.press_list[].content | string | Press release content |
data.press_list[].language | string | Language code |
data.press_list[].is_public | boolean | Public status |
data.press_list[].img_url | string|null | Image URL |
data.press_list[].created_at | integer | Creation time (Unix timestamp) |
data.press_list[].updated_at | integer | Updated time (Unix timestamp) |
data.press_list[].question | string | Keyword used for generation |
data.page_count | integer | Total page count |
data.total_count | integer | Total press release count |
curl -X GET "https://api.pulitzer.ai/live/openapi/press/list?page=1&page_size=10" \
-H "PULITZER-API-KEY: YOUR_API_KEY"Press Release Detail
Retrieve detailed information of a specific press release.
GET https://api.pulitzer.ai/live/openapi/press/{`{press_id}`}Path Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
press_id | integer | β | Press release ID to retrieve |
Response
{
"status": "SUCCESS",
"success": true,
"message": "Press release retrieved successfully",
"data": {
"id": 658,
"title": "Pulitzer AI Officially Launches Innovative Press Release Generation API",
"content": "Pulitzer AI, developed by StarSeed, has launched a press release generation API...",
"language": "en",
"is_public": false,
"img_url": null,
"created_at": 1760079885,
"updated_at": 1760079885,
"question": "Pulitzer AI Press Release Generation API Launch"
}
}Response Fields
| Field | Type | Description |
|---|---|---|
status | string | Response status ("SUCCESS" or "FAIL") |
success | boolean | Whether the request was successful |
message | string | Response message |
data.id | integer | Press release ID |
data.title | string | Press release title |
data.content | string | Press release content |
data.language | string | Language code |
data.is_public | boolean | Public status |
data.img_url | string|null | Image URL |
data.created_at | integer | Creation time (Unix timestamp) |
data.updated_at | integer | Updated time (Unix timestamp) |
data.question | string | Keyword used for generation |
curl -X GET "https://api.pulitzer.ai/live/openapi/press/658" \
-H "PULITZER-API-KEY: YOUR_API_KEY"Delete Press Release
Delete a press release.
DELETE https://api.pulitzer.ai/live/openapi/press/{`{press_id}`}Path Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
press_id | integer | β | Press release ID to delete |
Response
{
"status": "SUCCESS",
"success": true,
"message": "Press release deleted successfully"
}Response Fields
| Field | Type | Description |
|---|---|---|
status | string | Response status ("SUCCESS" or "FAIL") |
success | boolean | Whether the request was successful |
message | string | Response message |
curl -X DELETE "https://api.pulitzer.ai/live/openapi/press/658" \
-H "PULITZER-API-KEY: YOUR_API_KEY"Create Reference
Create a new reference press release. Created references can be used as reference material for future press release creation.
POST https://api.pulitzer.ai/live/openapi/press/referenceRequest Body
{
"title": "Test Reference Press Release",
"content": "This is test reference press release content.",
"url": "https://example.com",
"kind": "text"
}Request Body Parameters
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
title | string | β | - | Reference title (max 200 chars) |
content | string | β | - | Reference content (max 50,000 chars) |
url | string | β | null | Reference URL (optional) |
kind | string | β | text | Reference type (text, url, etc.) |
Response
{
"status": "SUCCESS",
"success": true,
"message": "Reference press release created successfully",
"data": {
"id": 123,
"title": "Test Reference Press Release",
"content": "This is test reference press release content.",
"url": "https://example.com",
"kind": "text",
"user_id": 1,
"created_kst": "2024-10-10T16:00:00.000Z"
}
}Response Fields
| Field | Type | Description |
|---|---|---|
status | string | Response status ("SUCCESS" or "FAIL") |
success | boolean | Whether the request was successful |
message | string | Response message |
data | PressReference | Created reference press release object |
data.id | integer | Created reference ID |
data.title | string | Reference title |
data.content | string | Reference content |
data.url | string|null | Reference URL |
data.kind | string | Reference type (text, url, etc.) |
data.user_id | integer | Owner user ID |
data.created_kst | datetime | Creation time (ISO 8601 format) |
curl -X POST "https://api.pulitzer.ai/live/openapi/press/reference" \
-H "PULITZER-API-KEY: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"title": "Test Reference Press Release",
"content": "This is test reference press release content.",
"url": "https://example.com",
"kind": "text"
}'List References
Retrieve the full list of user-created reference press releases. Returns a type-safe <code>PressReference</code> object array.
GET https://api.pulitzer.ai/live/openapi/press/reference/listResponse
{
"status": "SUCCESS",
"success": true,
"message": "Reference press release list retrieved successfully",
"data": [
{
"id": 123,
"title": "Test Reference Press Release",
"content": "This is test reference press release content.",
"url": "https://example.com",
"kind": "text",
"user_id": 1,
"created_kst": "2024-10-10T16:00:00.000Z"
}
]
}Response Fields
| Field | Type | Description |
|---|---|---|
status | string | Response status ("SUCCESS" or "FAIL") |
success | boolean | Whether the request was successful |
message | string | Response message |
data | PressReference[] | Array of reference press release objects |
data[].id | integer | Reference press release ID |
data[].title | string | Reference title |
data[].content | string | Reference content |
data[].url | string|null | Reference URL |
data[].kind | string | Reference type (text, url, etc.) |
data[].user_id | integer | Owner user ID |
data[].created_kst | datetime | Creation time (ISO 8601 format) |
curl -X GET "https://api.pulitzer.ai/live/openapi/press/reference/list" \
-H "PULITZER-API-KEY: YOUR_API_KEY"Delete Reference
Delete a reference press release.
DELETE https://api.pulitzer.ai/live/openapi/press/reference/{`{reference_id}`}Path Parameters
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
reference_id | integer | β | - | Reference ID to delete |
Response
{
"status": "SUCCESS",
"success": true,
"message": "Reference press release deleted successfully"
}Response Fields
| Field | Type | Description |
|---|---|---|
status | string | Response status ("SUCCESS" or "FAIL") |
success | boolean | Whether the request was successful |
message | string | Response message |
curl -X DELETE "https://api.pulitzer.ai/live/openapi/press/reference/123" \
-H "PULITZER-API-KEY: YOUR_API_KEY"Download PDF
Download a press release as a PDF file.
GET https://api.pulitzer.ai/live/openapi/press/{`{press_id}`}/pdfResponse
On success, returns application/pdf binary data. The filename is included in the Content-Disposition header.
| Status Code | Description |
|---|---|
| 200 | PDF file binary |
| 404 | Press release not found |
curl -X GET "https://api.pulitzer.ai/live/openapi/press/658/pdf" \
-H "PULITZER-API-KEY: YOUR_API_KEY" \
-o press_658.pdfDownload DOCX
Download a press release as a DOCX (Word) file.
GET https://api.pulitzer.ai/live/openapi/press/{`{press_id}`}/docxResponse
On success, returns DOCX binary data.
| Status Code | Description |
|---|---|
| 200 | DOCX file binary |
| 404 | Press release not found |
curl -X GET "https://api.pulitzer.ai/live/openapi/press/658/docx" \
-H "PULITZER-API-KEY: YOUR_API_KEY" \
-o press_658.docxGenerate AI Image
Generate an AI image based on a press release. Credits will be deducted.
POST https://api.pulitzer.ai/live/openapi/press/{`{press_id}`}/image-aiResponse
{
"status": "SUCCESS",
"success": true,
"message": "AI μ΄λ―Έμ§ μμ± μλ£",
"data": {
"image_url": "https://cdn.pulitzer.ai/images/press/658/ai-generated.png"
}
}Error Response
| Status Code | Error Code | Description |
|---|---|---|
| 400 | IMAGE_POLICY_VIOLATION | Image policy violation |
| 402 | INSUFFICIENT_CREDIT | Insufficient credits |
| 404 | NOT_FOUND | Press release not found |
curl -X POST "https://api.pulitzer.ai/live/openapi/press/658/image-ai" \
-H "PULITZER-API-KEY: YOUR_API_KEY"Response Structure
All API responses follow this standard structure:{
"status": "SUCCESS", // Response status (SUCCESS/FAIL)
"success": true, // Success flag (boolean)
"message": "Success message", // Response message
"data": {
// Actual data (on success)
// API-specific response data
}
}Response Field Description
| Field | Type | Description |
|---|---|---|
status | string | Response status ("SUCCESS" or "FAIL") |
success | boolean | Whether the request was successful |
message | string | Response message (success/failure) |
data | object | Actual data (included only on success) |
Error Codes
Common error codes that may occur during API requests.
| Status Code | Error Code | Description |
|---|---|---|
| 400 | NOT_FOUND | Some reference press releases do not exist |
| 401 | UNAUTHORIZED | API key is invalid |
| 403 | NOT_AUTHORIZED | Can only access/modify own resources |
| 404 | USER_NOT_FOUND | User not found |
| 404 | NOT_FOUND | Resource does not exist or no access permission |
| 500 | GENERATION_ERROR | Error occurred during press release generation |
| 500 | MODIFICATION_ERROR | Error occurred during press release modification |
Usage Examples
Python Example
import requests
# API key setup
headers = {
"PULITZER-API-KEY": "YOUR_API_KEY_HERE"
}
# Create press release
response = requests.post(
"https://api.pulitzer.ai/live/openapi/press/create-v2",
headers=headers,
json={
"keyword": "Pulitzer AI Press Release Generation API Launch",
"language": "en",
"is_search": True
}
)
if response.status_code == 200:
result = response.json()
if result['success']:
data = result['data']
print(f"Press release ID: {data['press_id']}")
print(f"Title: {data['title']}")
else:
print(f"Error: {result['message']}")JavaScript Example
const response = await fetch(
"https://api.pulitzer.ai/live/openapi/press/create-v2",
{
method: "POST",
headers: {
"PULITZER-API-KEY": "YOUR_API_KEY_HERE",
"Content-Type": "application/json",
},
body: JSON.stringify({
keyword: "Pulitzer AI Press Release Generation API Launch",
language: "en",
is_search: true,
}),
}
);
const result = await response.json();
if (result.success) {
console.log("Created press release:", result.data);
} else {
console.error("Error:", result.message);
}cURL Example
curl -X POST "https://api.pulitzer.ai/live/openapi/press/create-v2" \
-H "PULITZER-API-KEY: YOUR_API_KEY_HERE" \
-H "Content-Type: application/json" \
-d '{
"keyword": "Pulitzer AI Press Release Generation API Launch",
"language": "en",
"is_search": true
}'