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/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 에러가 반환됩니다.