KoKive API 문서
KoKive API를 사용하여 AI/ML 논문 번역 데이터에 접근할 수 있습니다.
Base URL
https://kokive.com/api
응답 형식
모든 API 응답은 JSON 형식으로 반환됩니다.
{
"success": true,
"data": { ... },
"message": "성공 메시지"
}
Pro 플랜 필요
API 접근은 Pro 플랜 구독자에게만 제공됩니다. 요금제 페이지에서 자세한 내용을 확인하세요.
인증
API 요청 시 Authorization 헤더에 Bearer 토큰을 포함해야 합니다.
POST
/api/auth/login
로그인하여 액세스 토큰을 발급받습니다.
Request Body
{
"email": "user@example.com",
"password": "your_password"
}
Response
{
"success": true,
"data": {
"token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...",
"user": {
"id": 1,
"email": "user@example.com",
"nickname": "사용자",
"role": "pro"
}
}
}
인증 헤더 사용
Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...
논문 API
GET
/api/v1/papers
번역된 논문 목록을 조회합니다.
Query Parameters
| 파라미터 | 타입 | 필수 | 설명 |
|---|---|---|---|
page |
integer | 아니오 | 페이지 번호 (기본값: 1) |
limit |
integer | 아니오 | 페이지당 항목 수 (기본값: 20, 최대: 100) |
category |
string | 아니오 | 카테고리 필터 (cs.AI, cs.CL, cs.CV, cs.LG) |
sort |
string | 아니오 | 정렬 기준 (latest, popular, views) |
Response
{
"success": true,
"data": {
"papers": [
{
"id": 1,
"arxivId": "2401.12345",
"titleEn": "Attention Is All You Need",
"titleKo": "어텐션이 전부입니다",
"tldr": "Transformer 아키텍처를 제안하여...",
"primaryCategory": "cs.CL",
"publishedAt": "2024-01-15T00:00:00Z",
"viewCount": 1523,
"likeCount": 89
}
],
"pagination": {
"page": 1,
"limit": 20,
"total": 150,
"totalPages": 8
}
}
}
GET
/api/v1/papers/:id
특정 논문의 상세 정보를 조회합니다.
Response
{
"success": true,
"data": {
"id": 1,
"arxivId": "2401.12345",
"titleEn": "Attention Is All You Need",
"titleKo": "어텐션이 전부입니다",
"abstractEn": "The dominant sequence transduction models...",
"abstractKo": "주요 시퀀스 변환 모델은...",
"tldr": "Transformer 아키텍처를 제안하여...",
"summary3Lines": ["첫 번째 요약", "두 번째 요약", "세 번째 요약"],
"summaryDetailed": "상세한 요약 내용...",
"businessInsight": "비즈니스 관점의 인사이트...",
"authors": ["Ashish Vaswani", "Noam Shazeer"],
"primaryCategory": "cs.CL",
"categories": ["cs.CL", "cs.LG"],
"publishedAt": "2024-01-15T00:00:00Z",
"pdfUrl": "https://arxiv.org/pdf/2401.12345",
"githubUrl": "https://github.com/...",
"githubStars": 15000,
"translationModel": "sonnet",
"viewCount": 1523,
"likeCount": 89
}
}
검색 API
GET
/api/search
논문을 검색합니다. 시맨틱 검색을 지원합니다.
Query Parameters
| 파라미터 | 타입 | 필수 | 설명 |
|---|---|---|---|
q |
string | 예 | 검색어 |
page |
integer | 아니오 | 페이지 번호 |
limit |
integer | 아니오 | 결과 수 |
Response
{
"success": true,
"data": {
"results": [...],
"query": "transformer",
"totalResults": 45
}
}
쇼츠 API
GET
/api/shorts
쇼츠폼 콘텐츠 목록을 조회합니다.
Response
{
"success": true,
"data": {
"shorts": [
{
"id": 1,
"paperId": 1,
"title": "GPT-4가 바꿀 미래",
"hook": "충격적인 발표가 있었습니다...",
"mainContent": "핵심 내용...",
"cta": "자세한 내용은...",
"tags": ["GPT", "AI"],
"viewCount": 500
}
]
}
}
용어 API
GET
/api/terms
AI 용어 사전을 조회합니다.
Response
{
"success": true,
"data": {
"terms": [
{
"id": 1,
"termEn": "Transformer",
"termKo": "트랜스포머",
"definition": "Self-attention 메커니즘을 사용하는...",
"example": "BERT, GPT 등이 Transformer 기반입니다.",
"category": "Architecture"
}
]
}
}
Q&A API
GET
/api/qna
Q&A 목록을 조회합니다.
POST
/api/qna
새 질문을 작성합니다. (인증 필요)
Request Body
{
"title": "질문 제목",
"content": "질문 내용",
"category": "general"
}
에러 처리
API 에러 응답은 다음 형식을 따릅니다.
{
"success": false,
"error": {
"code": "UNAUTHORIZED",
"message": "인증이 필요합니다."
}
}
HTTP 상태 코드
| 코드 | 설명 |
|---|---|
200 |
성공 |
400 |
잘못된 요청 |
401 |
인증 필요 |
403 |
권한 없음 |
404 |
리소스 없음 |
429 |
요청 제한 초과 |
500 |
서버 오류 |
Rate Limiting
API 요청은 분당 60회로 제한됩니다. 제한 초과 시 429 에러가 반환됩니다.