인증
모든 요청에X-API-Key 헤더가 필요합니다:
Copy
-H "X-API-Key: bs_live_xxxxxxxxxxxxxxxxxxxxxxxx"
일일 운세
전체 운세 조회
Copy
curl -X POST https://api.sajuapi.dev/api/daily-fortune \
-H "Content-Type: application/json" \
-H "X-API-Key: bs_live_xxx" \
-d '{
"saju": {
"pillars": {
"year": {
"stem": { "hangul": "경", "hanja": "庚" },
"branch": { "hangul": "오", "hanja": "午" }
},
"month": {
"stem": { "hangul": "신", "hanja": "辛" },
"branch": { "hangul": "사", "hanja": "巳" }
},
"day": {
"stem": { "hangul": "병", "hanja": "丙" },
"branch": { "hangul": "인", "hanja": "寅" }
},
"hour": {
"stem": { "hangul": "을", "hanja": "乙" },
"branch": { "hangul": "미", "hanja": "未" }
}
},
"dayMaster": {
"element": "fire",
"name": "병화"
}
},
"userName": "홍길동",
"model": "haiku"
}'
운세만 조회 (비용 절감)
Copy
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": "홍길동",
"type": "fortune_only"
}'
특정 날짜
Copy
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": "홍길동",
"date": "2024-01-20"
}'
다양한 모델
Copy
# Claude Haiku (가장 빠름, 가장 저렴)
curl ... -d '{"model": "haiku", ...}'
# Claude Sonnet (최고 품질)
curl ... -d '{"model": "sonnet", ...}'
# GPT-4o (균형잡힘)
curl ... -d '{"model": "gpt4o", ...}'
사주 계산
Copy
curl -X POST https://api.sajuapi.dev/api/saju \
-H "Content-Type: application/json" \
-H "X-API-Key: bs_live_xxx" \
-d '{
"year": 1990,
"month": 5,
"day": 15,
"hour": 14,
"gender": "male",
"calendarType": "solar"
}'
출생 시간 모를 때
Copy
curl -X POST https://api.sajuapi.dev/api/saju \
-H "Content-Type: application/json" \
-H "X-API-Key: bs_live_xxx" \
-d '{
"year": 1990,
"month": 5,
"day": 15,
"gender": "female"
}'
스트리밍 (SSE)
Copy
curl -X POST https://api.sajuapi.dev/api/daily-fortune-stream \
-H "Content-Type: application/json" \
-H "Accept: text/event-stream" \
-H "X-API-Key: bs_live_xxx" \
-N \
-d '{
"saju": {...},
"userName": "홍길동"
}'
-N 플래그는 버퍼링을 비활성화하여 이벤트가 도착하는 즉시 표시합니다.
사용량 확인
Copy
curl https://api.sajuapi.dev/api/usage \
-H "X-API-Key: bs_live_xxx"
자주 쓰는 옵션
응답을 파일로 저장
Copy
curl ... -o fortune.json
JSON 예쁘게 출력
Copy
curl ... | jq .
응답 헤더 표시
Copy
curl -i ...
# 응답 헤더에 포함되는 정보:
# X-RateLimit-Limit: 60
# X-RateLimit-Remaining: 45
# X-Request-Id: req_abc123
상세 모드 (디버그)
Copy
curl -v ...
타임아웃 설정
Copy
curl --max-time 30 ...
에러 예제
API 키 누락
Copy
curl -X POST https://api.sajuapi.dev/api/daily-fortune \
-H "Content-Type: application/json" \
-d '{...}'
# 응답: 401
# {"success":false,"error":{"code":"missing_api_key","message":"API 키가 필요합니다"}}
잘못된 JSON
Copy
curl -X POST https://api.sajuapi.dev/api/daily-fortune \
-H "Content-Type: application/json" \
-H "X-API-Key: bs_live_xxx" \
-d 'not json'
# 응답: 400
# {"success":false,"error":{"code":"invalid_json","message":"요청 본문이 유효한 JSON이 아닙니다"}}
요청 제한 초과
Copy
# 응답: 429
# {"success":false,"error":{"code":"rate_limited","message":"요청 제한 초과","retryAfter":42}}
쉘 스크립트 예제
Copy
#!/bin/bash
API_KEY="bs_live_xxx"
BASE_URL="https://api.sajuapi.dev"
# 사주 계산
SAJU=$(curl -s -X POST "$BASE_URL/api/saju" \
-H "Content-Type: application/json" \
-H "X-API-Key: $API_KEY" \
-d '{
"year": 1990,
"month": 5,
"day": 15,
"hour": 14,
"gender": "male"
}')
echo "사주 계산 완료"
# 운세 조회
FORTUNE=$(curl -s -X POST "$BASE_URL/api/daily-fortune" \
-H "Content-Type: application/json" \
-H "X-API-Key: $API_KEY" \
-d "{
\"saju\": $(echo $SAJU | jq .data),
\"userName\": \"홍길동\"
}")
# 점수 추출
SCORE=$(echo $FORTUNE | jq -r '.data.todayFortune.score')
echo "오늘의 운세 점수: $SCORE"
# 조언 항목 추출
echo "해야 할 것과 피해야 할 것:"
echo $FORTUNE | jq -r '.data.todayFortune.actionItems[] | "\(.type): \(.text)"'