7eyes Docs
Admin CMS Notice
사이트로
Product

7eyes 서비스 개요

7eyes(SevenEyes)는 AI 기반 비서·창작 서비스입니다. 스타일·아바타·스티커·라이브 아바타·AI 통화를 하나의 계정·크레딧 체계로 제공합니다. 서비스명은 변경될 수 있으며, 본 문서의 API 경로·연동 규약은 동일하게 유지됩니다.

대상 독자 — Product 탭: 기획·운영·파트너. Android & API 탭: 안드로이드·백엔드 연동 개발자.

제품 구성

제품설명과금 service (V2)
Style헤어·안경·의상 등 AI 스타일링style.htmlstyle_general / style_premium
Avatar대화용 AI 아바타 이미지avata.htmlavatar_general / avatar_premium
Sticker아바타 기반 AI 스티커sticker.htmlsticker_general / sticker_premium
Live실시간 라이브 아바타 상담live.htmllive_avatar (세션)
CallAI 전화·메모·예약 보조call.html별도 과금 가이드 범위 외

시스템 아키텍처

Android / Web (7eyes Client) Bearer Firebase ID Token HTTPS {API_BASE}/api/... BTK Backend (Express) credits user catalog generate live-avatar livekit oauth (kakao-auth) API Routes Firestore users, credits/{uid} Models External Gen API LiveKit / LiveAvatar Realtime Media (On-demand)
  • 인증 — 카카오/구글 로그인 후 Firebase ID Token을 API 호출 시 Authorization: Bearer 사용(설정 예외 제외).
  • 크레딧 — Firestore credits/{uid} 단일 문서. 웹(토스)·안드로이드(구글 인앱) 동일 잔액.
  • 라이브POST /api/live-avatar/ensure-server로 미디어 서버 기동 후 LiveKit 세션 연결.
Android & API baseline 2026-05

연동 환경

환경Base URL
운영배포 환경에 설정된 공개 API Base URL (빌드·CI에서 주입, 끝에 /api 붙이지 않음)

모든 경로는 {API_BASE}/api/... 형태입니다. 예: GET {API_BASE}/api/credits/config

사전 점검

curl -s "{API_BASE}/health"

Quickstart (Android)

  1. Base URL 확정 (스테이징/운영 빌드 flavor별).
  2. 카카오 로그인POST /api/kakao-auth → Firebase 커스텀 토큰으로 로그인 → ID Token 확보.
  3. 가입·프로필POST /api/user/check, 필요 시 POST /api/user/save-profile.
  4. 단가·상품GET /api/credits/config (인증 없음).
  5. 기능 1회checkquoteId → 생성 API 호출 → deduct → 실패 시 deduct/rollback.

인증

카카오 → Firebase

POST {API_BASE}/api/kakao-auth
Content-Type: application/json

{ "accessToken": "<카카오 액세스 토큰>" }

// 성공 시 customToken 등 — 앱에서 FirebaseAuth.signInWithCustomToken

크레딧·사용자 API 공통

Authorization: Bearer <Firebase ID Token>
보안 — ID Token·카카오 accessToken·purchaseToken 등은 로그·스크린샷·공개 문서에 남기지 마세요. 예제의 userId는 형식 설명용 placeholder입니다.
카카오 userId 규격 — Firebase uidkakao_{숫자} 형태입니다. 구 앱이 경로·바디에 숫자만 넣어도 서버가 동일 사용자로 인정합니다. Firestore credits 문서 id는 항상 토큰의 uid(kakao_…) 기준입니다.

사용자 프로필

메서드경로용도
POST/api/user/check가입 존재·추가정보 완료(isComplete)
POST/api/user/save-profile프로필·관심사 저장(암호화)

크레딧 API (V4.0)

상세 스펙은 팀 내부 크레딧 API 정본 문서(V4.0)를 참고하세요. 아래는 안드로이드 연동용 공개 요약입니다.

표준 흐름

1. POST /api/credits/check     → sufficient, quoteId (TTL 기본 30초)
2. POST /api/credits/deduct      → quoteId 소비, 잔액 차감
3. (비즈니스 실패 시)
   POST /api/credits/deduct/rollback  → refId 또는 quoteId로 원복

주요 엔드포인트

메서드경로인증
GET/api/credits/config없음
GET/api/credits/balance/:userIdBearer
GET/api/credits/history/:userId?type=all|deduct|purchaseBearer
POST/api/credits/checkBearer
POST/api/credits/deductBearer
POST/api/credits/deduct/rollbackBearer
POST/api/credits/purchase/google-completeBearer

check 요청 예

POST /api/credits/check
Authorization: Bearer <token>
Content-Type: application/json

{
  "userId": "kakao_<카카오숫자ID>",
  "service": "style_premium"
}

deduct 요청 예

POST /api/credits/deduct
{
  "userId": "kakao_<카카오숫자ID>",
  "service": "style_premium",
  "quoteId": "",
  "refId": "<클라이언트 멱등 키, 권장>"
}

rollback 요청 예

POST /api/credits/deduct/rollback
{
  "userId": "kakao_<카카오숫자ID>",
  "quoteId": "<차감에 사용한 quoteId>"
  // 또는 "refId": "<차감 시 사용한 refId>"
}

서비스 코드 (V2 기본값)

service크레딧비고
style_general5
style_premium20
avatar_general5
avatar_premium20
sticker_general5
sticker_premium20
motion_video_per_sec28×초meta.durationSeconds, 1~10초 클램프
avatar_video100
live_avatar220세션 1회
Gotchas
  • checkdeductservice·durationSeconds(모션)를 반드시 동일하게.
  • quoteId는 약 30초 TTL — 만료 시 check 재호출.
  • 동일 계정 1초 내 중복 deduct → 429.
  • 롤백은 refId 또는 quoteId 중 하나면 됨(둘 다 권장).
  • 구글 인앱: purchase/google-complete, 멱등 키는 purchaseToken.

카탈로그 & 생성

메서드경로용도
GET/api/catalog/style스타일 모델·옵션 목록
GET/api/catalog/avatar아바타 모델·옵션 목록
POST/api/generate/style스타일 이미지 생성
POST/api/generate/avatar아바타 이미지 생성

생성 API 호출 전후 크레딧 순서: check → (생성) → deduct 성공 또는 팀 정책에 맞는 시점. 실패 시 rollback.

모션 비디오

메서드경로
POST/api/motion-video/generate
POST/api/motion-video/status

차감: motion_video_per_sec + meta.durationSeconds (루트에만 넣어도 서버가 meta로 병합).

라이브 아바타

  1. GET /api/live-avatar/public-avatars — 스톡 아바타 목록(인증 없음).
  2. POST /api/live-avatar/ensure-server — 미디어 서버 준비(status: ready, endpoint).
  3. 응답 endpoint로 클라이언트 실시간 세션 연결 · LiveAvatar 연동.

외부 SDK·세션 프로토콜: LiveAvatar 공식 문서

POST /api/live-avatar/ensure-server
// 200
{ "status": "ready", "endpoint": "wss://...", "message": "..." }

크레딧: live_avatar (기본 220C). check/deduct에 동일 service 사용.

공지

GET /api/notices
GET /api/notices/:id

API 색인

영역Prefix
OAuth/api/kakao-auth
사용자/api/user/*
크레딧/api/credits/*
카탈로그·생성/api/catalog/*, /api/generate/*
모션/api/motion-video/*
라이브/api/live-avatar/* (앱 연동), LiveKit 토큰·룸 API는 팀 내부 스펙
공지/api/notices
헬스/health

오류 코드 (크레딧)

HTTP의미앱 처리
400필수 필드·잘못된 service요청 수정
402잔액 부족충전 UI
403토큰·userId 불일치재로그인
409quote 만료·service/cost 불일치check 재호출
4291초 내 중복 deduct재시도 지연

Changelog

  • 2026-05 — Docs 허브 공개. rollback quoteId 지원. check durationSeconds 병합.
  • V4.0POST /api/credits/deduct/rollback, history type 필터.
  • V3.x — Google Play purchase/google-complete.