Press API

Press API를 사용하여 AI 기반 보도자료를 생성하고 관리할 수 있습니다.


인증

모든 API 요청에는 PULITZER-API-KEY 헤더에 API 키가 필요합니다.

헤더 설정

PULITZER-API-KEY: YOUR_API_KEY

API 키 획득

API 키는 PulitzerAI 대시보드에서 발급받을 수 있습니다.

  • 대시보드 로그인 후 설정 메뉴로 이동
  • API 키 관리 섹션에서 새 키 생성
  • 생성된 키를 안전하게 보관
curl -X GET "https://api.pulitzer.ai/live/openapi/press/list" \
  -H "PULITZER-API-KEY: YOUR_API_KEY"

보도자료 생성

키워드를 기반으로 AI가 보도자료를 자동 생성합니다.

POST https://api.pulitzer.ai/live/openapi/press/create-v2

요청 본문

{
  "keyword": "퓰리처 AI 보도자료 생성 API 출시",
  "language": "ko",
  "is_public": false,
  "is_image": false,
  "is_search": false,
  "kind": "제품 출시",
  "is_lead_text": false,
  "reference_ids": [
    1,
    2
  ],
  "img_options": [
    "professional",
    "modern"
  ]
}

Request Body Parameters

파라미터타입필수기본값설명
keywordstring-보도자료 생성을 위한 핵심 키워드 (최대 1000자)
languagestringko생성할 언어 (ko, en, ja, fr, zh, id)
is_publicbooleanfalse보도자료 공개 여부
is_imagebooleanfalse이미지 자동 생성 여부
is_searchbooleanfalse웹 검색 기능 사용 여부
kindstringnull보도자료 유형 (예: "제품 출시", "인사발령" 등)
is_lead_textbooleanfalse리드문(부제목) 생성 여부
reference_idsarray[integer]null참조할 보도자료 ID 목록
img_optionsarray[string]null이미지 생성 옵션 (예: ["professional", "modern"])

응답

{
  "status": "SUCCESS",
  "success": true,
  "message": "보도자료 생성 완료",
  "data": {
    "press_id": 658,
    "title": "퓰리처 AI, 혁신적인 보도자료 생성 API 정식 출시",
    "content": "스타씨드가 개발한 퓰리처 AI가 보도자료 생성 API를...",
    "img_url": null,
    "language": "ko",
    "created_at": 1760079885
  }
}

Response Fields

필드명타입설명
statusstring응답 상태 ("SUCCESS" 또는 "FAIL")
successboolean요청 성공 여부
messagestring응답 메시지
data.press_idinteger생성된 보도자료 ID
data.titlestring생성된 보도자료 제목
data.contentstring생성된 보도자료 내용
data.img_urlstring|null생성된 이미지 URL (이미지 생성 시에만)
data.languagestring보도자료 언어 코드
data.created_atinteger생성 시간 (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": "퓰리처 AI 보도자료 생성 API 출시",
    "language": "ko",
    "is_search": true
  }'

보도자료 수정

기존 보도자료를 AI로 수정합니다.

POST https://api.pulitzer.ai/live/openapi/press/modify

요청 본문

{
  "press_id": 658,
  "modification_prompt": "더 공식적인 톤으로 수정해주세요"
}

Request Body Parameters

파라미터타입필수설명
press_idinteger수정할 보도자료 ID
modification_promptstring수정 요청사항 (최대 1000자)

응답

{
  "status": "SUCCESS",
  "success": true,
  "message": "보도자료 수정 완료",
  "data": {
    "press_id": 658,
    "title": "퓰리처 AI, 혁신적인 보도자료 생성 API 정식 출시",
    "content": "스타씨드가 개발한 퓰리처 AI가 보도자료 생성 API를..."
  }
}

Response Fields

필드명타입설명
statusstring응답 상태 ("SUCCESS" 또는 "FAIL")
successboolean요청 성공 여부
messagestring응답 메시지
data.press_idinteger수정된 보도자료 ID
data.titlestring수정된 보도자료 제목
data.contentstring수정된 보도자료 내용
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": "더 공식적인 톤으로 수정해주세요"
  }'

보도자료 목록 조회

사용자의 보도자료 목록을 조회합니다.

GET https://api.pulitzer.ai/live/openapi/press/list?page=1&page_size=10

Query Parameters

파라미터타입필수기본값설명
pageinteger1페이지 번호 (1 이상)
page_sizeinteger20페이지 크기 (1-100)
keywordstringnull검색 키워드 (제목, 내용, 키워드에서 검색)
sortingstringlatest정렬 방식 (latest: 최신순, oldest: 오래된순)

응답

{
  "status": "SUCCESS",
  "success": true,
  "message": "보도자료 목록 조회 성공",
  "data": {
    "press_list": [
      {
        "id": 658,
        "title": "퓰리처 AI, 혁신적인 보도자료 생성 API 정식 출시",
        "content": "스타씨드가 개발한 퓰리처 AI가...",
        "language": "ko",
        "is_public": false,
        "img_url": null,
        "created_at": 1760079885,
        "updated_at": 1760079885,
        "question": "퓰리처 AI 보도자료 생성 API 출시"
      }
    ],
    "page_count": 59,
    "total_count": 590
  }
}

Response Fields

필드명타입설명
statusstring응답 상태 ("SUCCESS" 또는 "FAIL")
successboolean요청 성공 여부
messagestring응답 메시지
data.press_listarray보도자료 객체 배열
data.press_list[].idinteger보도자료 ID
data.press_list[].titlestring보도자료 제목
data.press_list[].contentstring보도자료 내용
data.press_list[].languagestring언어 코드
data.press_list[].is_publicboolean공개 여부
data.press_list[].img_urlstring|null이미지 URL
data.press_list[].created_atinteger생성 시간 (Unix timestamp)
data.press_list[].updated_atinteger수정 시간 (Unix timestamp)
data.press_list[].questionstring생성 시 사용한 키워드
data.page_countinteger총 페이지 수
data.total_countinteger총 보도자료 개수
curl -X GET "https://api.pulitzer.ai/live/openapi/press/list?page=1&page_size=10" \
  -H "PULITZER-API-KEY: YOUR_API_KEY"

보도자료 상세 조회

특정 보도자료의 상세 정보를 조회합니다.

GET https://api.pulitzer.ai/live/openapi/press/{`{press_id}`}

Path Parameters

파라미터타입필수설명
press_idinteger조회할 보도자료 ID

응답

{
  "status": "SUCCESS",
  "success": true,
  "message": "보도자료 조회 성공",
  "data": {
    "id": 658,
    "title": "퓰리처 AI, 혁신적인 보도자료 생성 API 정식 출시",
    "content": "스타씨드가 개발한 퓰리처 AI가 보도자료 생성 API를...",
    "language": "ko",
    "is_public": false,
    "img_url": null,
    "created_at": 1760079885,
    "updated_at": 1760079885,
    "question": "퓰리처 AI 보도자료 생성 API 출시"
  }
}

Response Fields

필드명타입설명
statusstring응답 상태 ("SUCCESS" 또는 "FAIL")
successboolean요청 성공 여부
messagestring응답 메시지
data.idinteger보도자료 ID
data.titlestring보도자료 제목
data.contentstring보도자료 내용
data.languagestring언어 코드
data.is_publicboolean공개 여부
data.img_urlstring|null이미지 URL
data.created_atinteger생성 시간 (Unix timestamp)
data.updated_atinteger수정 시간 (Unix timestamp)
data.questionstring생성 시 사용한 키워드
curl -X GET "https://api.pulitzer.ai/live/openapi/press/658" \
  -H "PULITZER-API-KEY: YOUR_API_KEY"

보도자료 삭제

보도자료를 삭제합니다.

DELETE https://api.pulitzer.ai/live/openapi/press/{`{press_id}`}

Path Parameters

파라미터타입필수설명
press_idinteger삭제할 보도자료 ID

응답

{
  "status": "SUCCESS",
  "success": true,
  "message": "보도자료 삭제 성공"
}

Response Fields

필드명타입설명
statusstring응답 상태 ("SUCCESS" 또는 "FAIL")
successboolean요청 성공 여부
messagestring응답 메시지
curl -X DELETE "https://api.pulitzer.ai/live/openapi/press/658" \
  -H "PULITZER-API-KEY: YOUR_API_KEY"

참조 보도자료 생성

새로운 참조 보도자료를 생성합니다. 생성된 참조는 향후 보도자료 작성 시 참고 자료로 활용할 수 있습니다.

POST https://api.pulitzer.ai/live/openapi/press/reference

요청 본문

{
  "title": "테스트 참조 보도자료",
  "content": "이것은 테스트용 참조 보도자료 내용입니다.",
  "url": "https://example.com",
  "kind": "text"
}

Request Body Parameters

파라미터타입필수기본값설명
titlestring-참조 보도자료 제목 (최대 200자)
contentstring-참조 보도자료 내용 (최대 50,000자)
urlstringnull참조 URL (선택사항)
kindstringtext참조 종류 (text, url 등)

응답

{
  "status": "SUCCESS",
  "success": true,
  "message": "참조 보도자료 생성 성공",
  "data": {
    "id": 123,
    "title": "테스트 참조 보도자료",
    "content": "이것은 테스트용 참조 보도자료 내용입니다.",
    "url": "https://example.com",
    "kind": "text",
    "user_id": 1,
    "created_kst": "2024-10-10T16:00:00.000Z"
  }
}

Response Fields

필드명타입설명
statusstring응답 상태 ("SUCCESS" 또는 "FAIL")
successboolean요청 성공 여부
messagestring응답 메시지
dataPressReference생성된 참조 보도자료 객체
data.idinteger생성된 참조 보도자료 ID
data.titlestring참조 보도자료 제목
data.contentstring참조 보도자료 내용
data.urlstring|null참조 URL
data.kindstring참조 종류 (text, url 등)
data.user_idinteger소유자 사용자 ID
data.created_kstdatetime생성 시간 (ISO 8601 형식)
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": "테스트 참조 보도자료",
    "content": "이것은 테스트용 참조 보도자료 내용입니다.",
    "url": "https://example.com",
    "kind": "text"
  }'

참조 보도자료 목록 조회

사용자가 생성한 참조 보도자료의 전체 목록을 조회합니다. 반환되는 데이터는 타입 안전한 PressReference 객체 배열입니다.

GET https://api.pulitzer.ai/live/openapi/press/reference/list

응답

{
  "status": "SUCCESS",
  "success": true,
  "message": "참조 보도자료 목록 조회 성공",
  "data": [
    {
      "id": 123,
      "title": "테스트 참조 보도자료",
      "content": "이것은 테스트용 참조 보도자료 내용입니다.",
      "url": "https://example.com",
      "kind": "text",
      "user_id": 1,
      "created_kst": "2024-10-10T16:00:00.000Z"
    }
  ]
}

Response Fields

필드명타입설명
statusstring응답 상태 ("SUCCESS" 또는 "FAIL")
successboolean요청 성공 여부
messagestring응답 메시지
dataPressReference[]참조 보도자료 객체 배열
data[].idinteger참조 보도자료 ID
data[].titlestring참조 보도자료 제목
data[].contentstring참조 보도자료 내용
data[].urlstring|null참조 URL
data[].kindstring참조 종류 (text, url 등)
data[].user_idinteger소유자 사용자 ID
data[].created_kstdatetime생성 시간 (ISO 8601 형식)
curl -X GET "https://api.pulitzer.ai/live/openapi/press/reference/list" \
  -H "PULITZER-API-KEY: YOUR_API_KEY"

참조 보도자료 삭제

참조 보도자료를 삭제합니다.

DELETE https://api.pulitzer.ai/live/openapi/press/reference/{`{reference_id}`}

Path Parameters

파라미터타입필수기본값설명
reference_idinteger-삭제할 참조 보도자료 ID

응답

{
  "status": "SUCCESS",
  "success": true,
  "message": "참조 보도자료 삭제 성공"
}

Response Fields

필드명타입설명
statusstring응답 상태 ("SUCCESS" 또는 "FAIL")
successboolean요청 성공 여부
messagestring응답 메시지
curl -X DELETE "https://api.pulitzer.ai/live/openapi/press/reference/123" \
  -H "PULITZER-API-KEY: YOUR_API_KEY"

응답 구조

모든 API 응답은 다음과 같은 표준 구조를 따릅니다:

{
"status": "SUCCESS", // 응답 상태 (SUCCESS/FAIL)
"success": true, // 성공 여부 (boolean)
"message": "성공 메시지", // 응답 메시지
"data": {
  // 실제 데이터 (성공 시)
  // API별 응답 데이터
}
}

응답 필드 설명

필드타입설명
statusstring응답 상태 ("SUCCESS" 또는 "FAIL")
successboolean요청 성공 여부
messagestring응답 메시지 (성공/실패 메시지)
dataobject실제 데이터 (성공 시에만 포함)

오류 코드

API 요청 중 발생할 수 있는 주요 오류 코드입니다.

상태 코드오류 코드설명
400NOT_FOUND일부 레퍼런스 보도자료가 존재하지 않습니다
401UNAUTHORIZEDAPI 키가 유효하지 않습니다
403NOT_AUTHORIZED본인의 리소스만 접근/수정할 수 있습니다
404USER_NOT_FOUND사용자를 찾을 수 없습니다
404NOT_FOUND존재하지 않는 리소스이거나 접근 권한이 없습니다
500GENERATION_ERROR보도자료 생성 중 오류가 발생했습니다
500MODIFICATION_ERROR보도자료 수정 중 오류가 발생했습니다

사용 예시

Python 예시

import requests

# API 키 설정
headers = {
  "PULITZER-API-KEY": "YOUR_API_KEY_HERE"
}

# 보도자료 생성
response = requests.post(
  "https://api.pulitzer.ai/live/openapi/press/create-v2",
  headers=headers,
  json={
      "keyword": "퓰리처 AI 보도자료 생성 API 출시",
      "language": "ko",
      "is_search": True
  }
)

if response.status_code == 200:
  result = response.json()
  if result['success']:
      data = result['data']
      print(f"생성된 보도자료 ID: {data['press_id']}")
      print(f"제목: {data['title']}")
  else:
      print(f"오류: {result['message']}")

JavaScript 예시

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: "퓰리처 AI 보도자료 생성 API 출시",
    language: "ko",
    is_search: true,
  }),
}
);

const result = await response.json();
if (result.success) {
console.log("생성된 보도자료:", result.data);
} else {
console.error("오류:", result.message);
}

cURL 예시

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": "퓰리처 AI 보도자료 생성 API 출시",
  "language": "ko",
  "is_search": true
}'