외부 연동 실무 가이드 · v1.0.1
← 웹앱으로이 문서 하나로 다른 사이트·앱·프로그램에서 인생그래프 계산 결과를 받아갈 수 있도록 등록 → 연결 → 결제 → 검증 순서로 설명합니다.
X-API-Key: 발급받은키 를 넣어 호출합니다.401이 반환됩니다.기본 주소: https://insengflow.com ·
모든 계산 요청은 POST + JSON 입니다.
시각은 시간대 표기가 없는 현지 표준시(예: 1990-03-15T08:20:00)로 보냅니다.
| 엔드포인트 | 용도 | 필수 입력 |
|---|---|---|
POST /point | 한 시점 계산 | t, location |
POST /timeseries/seventy-years | 년간(0~70세) 시계열 | location, person_a |
POST /timeseries/one-year | 1년(월 단위) 시계열 | location, year |
POST /timeseries/one-month | 1개월(일 단위) | location, year, month |
POST /timeseries/one-day | 1일(시 단위) | location, year, month, day |
GET /locations | 등록 위치 목록 | - |
GET /relations | 궁합 관계 이름 목록 | - |
GET /palette | 그래프 표시용 색상 | - |
| 필드 | 설명 |
|---|---|
location | 분석 위치. 등록 이름 {"name":"서울"}
또는 임의 좌표 {"country":"...","tz_ref_longitude":135,"latitude":37.5,"longitude":127} |
person_a, person_b | 사주정보.
{"name":"홍길동","sex":"남","birth":"1990-03-15T08:20","location":{"name":"부산"}}.
둘 다 없으면 현재분석, A만 있으면 개인분석, A+B면 궁합분석. |
relation | 궁합 관계. GET /relations가
주는 이름 중 하나를 그대로 보냅니다. |
curl -X POST https://insengflow.com/point \
-H "Content-Type: application/json" \
-H "X-API-Key: sjk_발급받은키" \
-d '{
"t": "2026-07-05T14:30:00",
"location": {"name": "서울"},
"person_a": {"name": "홍길동", "sex": "남",
"birth": "1990-03-15T08:20", "location": {"name": "부산"}}
}'
const res = await fetch('https://insengflow.com/timeseries/one-year', {
method: 'POST',
headers: { 'Content-Type': 'application/json',
'X-API-Key': 'sjk_발급받은키' },
body: JSON.stringify({
location: { name: '서울' }, year: 2026,
person_a: { name: '홍길동', sex: '남',
birth: '1990-03-15T08:20', location: { name: '부산' } },
}),
});
const data = await res.json();
// data.subjects[0].points → 그래프 포인트 배열
import requests
r = requests.post(
"https://insengflow.com/timeseries/one-day",
headers={"X-API-Key": "sjk_발급받은키"},
json={
"location": {"name": "서울"},
"year": 2026, "month": 7, "day": 5,
"person_a": {"name": "A", "sex": "남",
"birth": "1990-03-15T08:20", "location": {"name": "부산"}},
"person_b": {"name": "B", "sex": "여",
"birth": "1992-11-02T23:10", "location": {"name": "서울"}},
"relation": "연인",
})
data = r.json() # subjects 2개 (A, B)
시계열 응답의 뼈대:
{
"뷰": "1년", "x단위": "월",
"subjects": [
{ "대상": "홍길동",
"points": [ { ...한 시점의 표시값... }, ... ] }
]
}
포인트 하나의 표시값 (§11 결과 구조):
| 키 | 내용 |
|---|---|
시계시각 | 이 포인트의 시계시간 (표시용은 반드시 이 값 사용) |
본원 | {"표기":"갑∞","무한":true,"경로":[...]} — 십성 기준 천간 |
충전_십간 / 충후_십간 | 충 적용 전/후 십간 10개의 수치 |
충전_십성 / 충후_십성 | 충 적용 전/후 십성 10개의 수치 (비견~정인) |
단일곡선 | 종합 평가 곡선 값 1개 |
변운 | 소스별 변운 [{"소스":"현운년","간지":"병오","변운":"병기"}, ...] |
| 메타 | 뷰에 따라 년도/나이/월/일/시/절기/시기 |
그래프를 그린다면: x축 = 시계시각, y축 = 원하는 시리즈
(충전_십성.비견 등), 색상은 GET /palette를 그대로 쓰면
웹앱과 동일한 표준 색이 됩니다.
| 코드 | 의미 |
|---|---|
| 401 | API 키가 잘못됨 (키 재확인) |
| 404 | 등록되지 않은 위치 이름 |
| 422 | 입력값 오류 — 응답의 detail에 원인 (예: 존재하지 않는 날짜, 알 수 없는 관계) |
| 500 | 서버 내부 오류 — 상세는 노출되지 않으며 재시도 후 문의 |
포인트 기반 과금(§15)을 준비 중입니다. 예정 구조:
모든 엔드포인트를 브라우저에서 직접 실험할 수 있는 검증용 문서:
각 엔드포인트의 Try it out으로 요청을 보내 실제 응답을 확인할 수 있습니다. 스키마(입력 형식)도 여기서 확인하세요.