기본 URL
모든 API 요청은 다음 주소로 보내야 합니다:
엔드포인트
| 메서드 | 엔드포인트 | 설명 |
|---|
| POST | /api/daily-fortune | 개인화된 일일 운세 조회 |
| POST | /api/daily-fortune-stream | SSE로 운세 스트리밍 |
| POST | /api/saju | 생년월일로 사주 계산 |
요청 형식
모든 요청은 다음 조건을 충족해야 합니다:
POST 메서드 사용
Content-Type: application/json 헤더 포함
X-API-Key 헤더에 API 키 포함
- JSON 본문 전송
curl -X POST https://api.sajuapi.dev/api/daily-fortune \
-H "Content-Type: application/json" \
-H "X-API-Key: bs_live_xxx" \
-d '{"saju": {...}, "userName": "홍길동"}'
응답 형식
모든 응답은 다음 구조를 따릅니다:
성공 응답
{
"success": true,
"data": {
// 엔드포인트별 데이터
},
"meta": {
"requestId": "req_abc123",
"model": "haiku",
"cached": true,
"cost": 0.013,
"latency": 1234
}
}
에러 응답
{
"success": false,
"error": {
"code": "invalid_request",
"message": "사람이 읽을 수 있는 에러 메시지",
"hint": "에러 수정을 위한 제안",
"field": "saju.pillars.day" // 선택: 에러가 발생한 특정 필드
},
"meta": {
"requestId": "req_abc123"
}
}
공통 파라미터
사주 객체
saju 파라미터는 운세 엔드포인트에 필수이며 사주팔자를 포함해야 합니다:
interface Saju {
pillars: {
year: Pillar;
month: Pillar;
day: Pillar;
hour: Pillar; // 출생 시간을 모르면 null 가능
};
dayMaster?: {
element: 'wood' | 'fire' | 'earth' | 'metal' | 'water';
name: string; // 예: "병화"
};
}
interface Pillar {
stem: {
hangul: string; // 예: "갑", "을", "병"...
hanja?: string; // 예: "甲", "乙", "丙"...
};
branch: {
hangul: string; // 예: "자", "축", "인"...
hanja?: string;
};
}
모델 선택
운세 생성을 위한 AI 모델 선택:
| 모델 | 파라미터 | 속도 | 품질 | 비용 |
|---|
| Claude Haiku | haiku | ~2초 | 좋음 | $0.013 |
| Claude Sonnet | sonnet | ~5초 | 우수 | $0.031 |
| GPT-4o | gpt4o | ~4초 | 매우 좋음 | $0.025 |
{
"saju": {...},
"userName": "홍길동",
"model": "haiku"
}
응답 타입
운세 타입
type 파라미터로 특정 운세 타입을 요청합니다:
| 타입 | 설명 | 함수 호출 횟수 |
|---|
all (기본값) | 전체 운세 분석 | 3 (성격, 성향, 운세) |
fortune_only | 일일 운세만 | 1 |
character | 성격 분석만 | 1 |
compare | 모든 모델 비교 | 9 (3 함수 × 3 모델) |
compare 타입은 9번의 API 호출을 하며 비용이 3배입니다. 신중하게 사용하세요.
페이지네이션
목록을 반환하는 엔드포인트는 페이지네이션을 지원합니다:
{
"page": 1,
"limit": 20,
"sort": "createdAt",
"order": "desc"
}
응답에 페이지네이션 메타데이터가 포함됩니다:
{
"data": [...],
"pagination": {
"page": 1,
"limit": 20,
"total": 150,
"pages": 8
}
}
버전 관리
API는 URL 경로를 통해 버전 관리됩니다. 현재 버전: v1 (기본값)
https://api.sajuapi.dev/v1/api/daily-fortune
/v1 접두사는 선택 사항입니다. 버전 접두사가 없는 요청은 최신 안정 버전을 사용합니다.