콘텐츠로 이동

API 빠른 시작

앙크 Public API는 단일 API 키(spk_...)로 브랜드 자산과 6대 SNS 채널을 통합 제어할 수 있는 RESTful API입니다.


  • Base URL: https://api.ankk.app
  • Swagger / API Docs: https://api.ankk.app/v1/docs
  • OpenAPI JSON Spec: https://api.ankk.app/v1/openapi.json

상태 확인 경로는 별도의 인증 헤더 없이 누구나 호출할 수 있습니다.

Terminal window
curl https://api.ankk.app/v1/health
{
"service": "api-public",
"status": "ok"
}

웹 앱(https://app.ankk.app)의 브랜드 설정 → API 키 탭에서 Public API 키를 발급받아 환경 변수로 설정합니다:

Terminal window
export ANKK_API_KEY='spk_live_xxxxxxxxxxxxxxxx'

발급된 API 키가 바인딩된 브랜드 정보와 발행 대상이 될 SNS 연결 계정 목록을 조회합니다.

Terminal window
# 1. 브랜드 정보 확인
curl https://api.ankk.app/v1/brand \
-H "Authorization: Bearer $ANKK_API_KEY"
# 2. 연동된 SNS 연결 목록 조회
curl https://api.ankk.app/v1/brand/connections \
-H "Authorization: Bearer $ANKK_API_KEY"
const API_KEY = process.env.ANKK_API_KEY!;
const BASE_URL = 'https://api.ankk.app/v1';
// SNS 연결 목록 조회
const res = await fetch(`${BASE_URL}/brand/connections`, {
headers: {
'Authorization': `Bearer ${API_KEY}`,
},
});
const { items: connections } = await res.json();
console.log('연결된 SNS 목록:', connections);
const targetConnectionId = connections[0]?.id;
import os
import requests
API_KEY = os.environ['ANKK_API_KEY']
BASE_URL = 'https://api.ankk.app/v1'
headers = {'Authorization': f'Bearer {API_KEY}'}
# SNS 연결 목록 조회
response = requests.get(f'{BASE_URL}/brand/connections', headers=headers)
connections = response.json().get('items', [])
print(f'연결된 SNS: {connections}')
target_connection_id = connections[0]['id']

조회한 connection_id를 지정하여 첫 콘텐츠를 발행합니다. 중복 실행을 방지하기 위해 클라이언트 고유의 idempotency_key를 반드시 지정하세요.

Terminal window
curl -X POST "https://api.ankk.app/v1/brand/contents" \
-H "Authorization: Bearer $ANKK_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"connection_id": "conn_01jm8x9k2example",
"idempotency_key": "my-first-post-001",
"text": "Hello World from ANKK Public API! 🚀"
}'
const publishRes = await fetch(`${BASE_URL}/brand/contents`, {
method: 'POST',
headers: {
'Authorization': `Bearer ${API_KEY}`,
'Content-Type': 'application/json',
},
body: JSON.stringify({
connection_id: targetConnectionId,
idempotency_key: `post-${Date.now()}`,
text: 'Hello World from ANKK TypeScript SDK! 🚀',
}),
});
const result = await publishRes.json();
console.log('발행 접수 완료 (HTTP 202):', result);
import time
publish_payload = {
'connection_id': target_connection_id,
'idempotency_key': f'post-{int(time.time())}',
'text': 'Hello World from ANKK Python Client! 🚀',
}
publish_res = requests.post(
f'{BASE_URL}/brand/contents',
headers={**headers, 'Content-Type': 'application/json'},
json=publish_payload,
)
print('발행 접수 결과:', publish_res.json())

발행 요청이 성공하면 HTTP 202 Accepted와 함께 content_id가 반환됩니다. 실제 SNS 등록 여부는 콘텐츠 상세 조회로 확인합니다:

Terminal window
curl https://api.ankk.app/v1/brand/contents/<content_id> \
-H "Authorization: Bearer $ANKK_API_KEY"