Mindlogic Logo
Docs
/
사용자관리자
API Gateway

데이터 조회 API

관리자 화면 데이터 메뉴가 보여주는 지표를 API 키 인증으로 그대로 가져오는 읽기 전용 API입니다. 고객사 포털이나 사내 대시보드가 서버에서 직접 호출해 원하는 형태로 다시 그리는 용도입니다.
관리자 화면과 이 API는 같은 집계 함수를 부릅니다. 화면에 보이는 숫자와 API가 돌려주는 숫자가 갈라지지 않습니다.
  • Base Path: /v1/data
  • Host: https://factchat-cloud.mindlogic.ai (API Gateway와 같은 호스트입니다. 조직 서비스 도메인 *.factchat.bot이 아닙니다)
  • 인증: API 키 (Authorization: Bearer YOUR_API_KEY)
  • 메서드: 전부 GET. 쓰기 동작은 없습니다
  • 사용 전 기능 활성화 요청이 필요합니다 (아래 사전 준비 참고)

사전 준비

1. 기능 활성화 요청

이 API는 조직 단위로 꺼진 상태가 기본입니다. 관리자 화면에는 켜는 설정이 없으므로 마인드로직 담당자에게 활성화를 요청해주세요. 활성화 전에 호출하면 모든 요청이 403입니다.

2. API 키 준비

이미 쓰고 있는 FactChat API 키를 그대로 씁니다. 모델 호출용 키와 같은 키이고, 따로 발급받을 필요가 없습니다. 발급 절차는 API Gateway 인증API 키 관리를 참고하세요.
키 소유자는 활성 상태의 전체 관리자여야 합니다. 일반 구성원, 그룹 관리자, 사용이 중지된 계정의 키로 호출하면 403입니다. 그룹 관리자 키는 사용할 수 없습니다.

인증

Authorization 헤더가 권장이고, x-api-key 헤더도 같은 값을 받습니다.
어느 조직의 데이터가 나가는지는 API 키가 결정합니다. 서버가 키에 묶인 소유자의 조직을 직접 찾으므로 호스트는 위 하나뿐이고, 조직별 주소를 쓰지 않습니다. 다른 조직의 키로는 그 조직의 데이터만 나옵니다.
브라우저 관리자 화면(/v1/admin/*, 세션 쿠키 인증)과는 경로가 분리돼 있습니다. 관리자 화면 주소에 API 키를 넣어도 통하지 않고, 반대도 마찬가지입니다.
경로 끝의 슬래시(/)는 생략할 수 없습니다. /v1/data/usage처럼 보내면 404입니다.

엔드포인트 한눈에 보기

엔드포인트돌려주는 것관리자 화면
GET /v1/data/usage/조직 전체의 모델별·기능별 크레딧 사용량크레딧 사용량
GET /v1/data/usage/group/같은 값을 멤버 그룹 단위로크레딧 사용량
GET /v1/data/credits/크레딧 구매 내역크레딧 구매 내역
GET /v1/data/user-activity/DAU·방문자 수 시계열사용자 활동
GET /v1/data/model-analytics/모델 통계 요약과 시계열모델별 통계
GET /v1/data/model-analytics/models/필터에 넣을 모델 목록모델별 통계
GET /v1/data/conversation-keywords/대화 분석 키워드와 대화 수대화 분석
GET /v1/data/conversation-analysis/status/대화 분석 기능 상태와 비용 프리뷰대화 분석
마지막 두 개는 조직에 대화 분석 기능이 켜져 있어야 합니다. 꺼져 있으면 그 두 개만 403이고 나머지 여섯 개는 그대로 동작합니다.

크레딧 사용량

GET/v1/data/usage/
조직 전체의 크레딧 사용량을 모델별·기능별로 합산해 돌려줍니다.

파라미터

이름타입필수기본값설명
start_date / end_dateYYYY-MM-DDN이번 달 1일 ~ 오늘둘 다 주면 이 구간을 씁니다
start_month / end_monthYYYY-MMNstart_date·end_date가 없을 때만 적용되는 월 단위 구간
usage_sourceall | apikey | consoleNall사용 경로 필터
credit_sourceall | organization | personalNall크레딧 출처 필터

응답 예시

total_credit과금된 사용분만 더합니다. 무료 사용분은 크레딧에 잡히지 않지만 토큰 수에는 들어갑니다. 정산 기준과 활동 지표의 의도된 차이입니다.

크레딧 사용량 (그룹별)

GET/v1/data/usage/group/
같은 집계를 멤버 그룹 단위로 좁혀 돌려줍니다. 응답 모양은 위와 같습니다.

파라미터

크레딧 사용량의 파라미터를 모두 그대로 쓰고, 아래가 더해집니다.
이름타입필수기본값설명
member_group_idint조건부조회할 그룹. 0이면 해당 타입의 미분류 멤버
intersection_group_idint조건부교차 그룹으로 조회
member_group_type_idintNmember_group_id=0일 때 대상 그룹 유형 지정
filter_typequota_source | group_membersNquota_source크레딧 귀속 기준으로 셀지, 그룹 소속 멤버 기준으로 셀지
member_group_idintersection_group_id하나는 반드시 있어야 합니다. 둘 다 없으면 400입니다.
여기서 쓰는 그룹 id는 정수입니다. 관리자 화면의 그룹 관리에서 사이드바의 그룹을 선택하면 주소창이 /admin/group-management?type=group&id=42&groupTypeId=1 처럼 바뀌는데, 이 값이 그대로 파라미터가 됩니다.
주소창파라미터
type=group 일 때의 idmember_group_id
type=intersection 일 때의 idintersection_group_id
groupTypeIdmember_group_type_id
멤버 그룹 관리 API의 스키마 조회가 돌려주는 id는 "a91c..." 같은 문자열이라 이 API에는 쓸 수 없습니다. 그대로 넣으면 그룹이 선택되는 대신 검증에서 걸립니다. 두 API는 서로 다른 식별자 체계를 씁니다.

크레딧 구매 내역

GET/v1/data/credits/
조직에 지급·충전된 크레딧을 건별로 돌려줍니다.

파라미터

이름타입필수기본값설명
pageintN1페이지 번호
sizeintN10한 페이지 건수. 최대 1000
order_bystringNcreated_at.desccreated_at·usage_start_date·usage_end_date 뒤에 .asc 또는 .desc
is_depletedboolN소진 여부 필터
is_expiredboolN만료 여부 필터

응답 예시

order_by가 허용 목록 밖이면 400입니다. 기본 정렬로 조용히 돌아가지 않으니 오타를 응답으로 확인할 수 있습니다.

사용자 활동

GET/v1/data/user-activity/
DAU와 방문자 수를 시계열로 돌려줍니다. 하루 단위 배치 결과라 당일 데이터는 아직 없을 수 있습니다.

파라미터

이름타입필수기본값설명
start_date / end_dateYYYY-MM-DDN오늘 포함 최근 30일
intervalday | week | monthNday데이터포인트 간격
member_group_idintN그룹 필터

응답 예시

개인 식별 정보가 나가지 않습니다. 사람 수만 돌려주며 멤버 목록이나 이메일은 포함하지 않습니다.

모델별 통계

GET/v1/data/model-analytics/
모델 카테고리별 요청 수·토큰·크레딧·응답 속도를 요약과 시계열로 돌려줍니다. 하루 단위 배치 결과이고, 응답의 last_aggregated_at이 집계 기준 시각입니다.

파라미터

이름타입필수설명
start_date / end_dateYYYY-MM-DDYstart_date는 집계 시작일인 2025-03-01 이후여야 합니다
intervalday | week | monthY
model_category아래 목록 중 하나N없으면 전체 카테고리
model_ids1,2,3N지정하면 모델별 breakdown이 붙습니다. model_category함께 보내야 합니다
model_category에 넣을 수 있는 값: llm, image, video, voice, korea_in_data, univ_in_data, law_in_data, deep_research, ppt, hwp, super_agent.

응답 예시

집계 결과가 없는 구간은 배열에서 빠지지 않고 지표 필드가 null인 상태로 들어옵니다. 그래프를 그릴 때 0으로 바꿔 넣을지 선을 끊을지는 받는 쪽에서 정하시면 됩니다.

모델 목록

GET/v1/data/model-analytics/models/
모델별 통계의 model_ids에 넣을 값을 조회합니다.

파라미터

이름타입필수설명
model_category모델별 통계와 같은 목록Y빠지면 422

응답 예시


대화 분석 — 키워드

GET/v1/data/conversation-keywords/
대화에서 뽑아낸 키워드와 그 키워드가 나온 대화 수를 돌려줍니다. 조직에 대화 분석 기능이 켜져 있어야 하고, 꺼져 있으면 403입니다.

파라미터

이름타입필수기본값설명
start_date / end_dateYYYY-MM-DDN최근 30일대화 첫 메시지 시각 기준, 양끝 포함
chatbot_idintN챗봇 필터
pageintN1페이지 번호
sizeintN50한 페이지 건수. 최대 100

응답 예시

대화 본문은 나가지 않습니다. 정규화된 키워드 라벨과 대화 수만 돌려줍니다.

대화 분석 — 상태

GET/v1/data/conversation-analysis/status/
대화 분석 기능이 켜져 있는지, 최근 실행이 언제였는지, 크레딧이 얼마나 드는지를 돌려줍니다. 파라미터는 없습니다. 키워드 조회와 같은 활성화 조건이 걸립니다.

응답 예시

관리자 화면에는 이 기능을 켜고 끄는 토글이 있지만, API로는 상태를 읽기만 합니다. 토글은 관리자 화면에서 조작해주세요.

에러 코드

코드언제본문 형태
400파라미터 값의 의미가 어긋남 — start_dateend_date보다 늦음, 날짜 형식 오류, 허용 목록 밖의 order_by, 그룹 id 누락, 모델 통계의 start_date2025-03-01 이전, model_category 없이 보낸 model_ids객체
401키 누락, 잘못된 키, 사용이 중지된 키객체
403조직에 이 API가 활성화돼 있지 않음, 키 소유자가 관리자가 아니거나 비활성 계정, 대화 분석이 꺼진 상태에서 대화 분석 2종 호출객체
404존재하지 않는 경로 — 끝 슬래시 누락, 지원하지 않는 경로객체
405허용되지 않는 메서드. 이 API는 GET만 받습니다객체
422파라미터 자체가 규격을 어김 — 열거형에 없는 값(usage_source·credit_source·interval·model_category), 상한을 넘는 size, 필수 파라미터 누락배열
503조직이 점검 중객체

본문이 두 가지인 이유

의미 검증에서 걸린 요청과 형식 검증에서 걸린 요청은 detail의 모양이 다릅니다. 파싱하는 쪽에서 둘 다 처리해주세요.
400·401·403·503detail문자열입니다.
422 — FastAPI의 요청 검증 응답이라 detail배열입니다.
간단히 구분하려면 detail이 배열인지 먼저 보고, 배열이면 각 항목의 loc에서 문제가 된 파라미터 이름을 꺼내면 됩니다.

다음 단계

마지막 수정 날짜: Aug 31, 2026

이전

교육 이수 관리

다음

챗봇 공개 관리

목차