문서
인증
Kunavo의 인증 방식은 OpenAI와 동일합니다. Authorization 헤더에 단일 Bearer 토큰을 넣으면 됩니다. 일반적인 OpenAI 통합과 다른 점은 기본 URL뿐입니다.
모든 API 호출은 Authorization: Bearer sk-kn-XXX 헤더를 포함해 https://api.kunavo.com/v1로 전송됩니다. 그게 전부입니다.
기본 URL
모든 모델과 모든 모달리티를 제공하는 단일 엔드포인트입니다.
| 필드 | 값 |
|---|---|
| 기본 URL | https://api. |
| 리전 | 미국 애시번(Ashburn)이 기본 리전이며 다중 리전 엣지가 요청을 처리합니다. |
| TLS | TLS 1.2 이상을 강제합니다. HTTPS만 허용합니다. |
경로 구조는 OpenAI 규칙을 따릅니다:
| 모달리티 | 경로 |
|---|---|
| 채팅 | POST /v1/ |
| 모델 목록 | GET /v1/models |
| 이미지 생성 | POST /v1/ |
| 이미지 편집 / i2i | POST /v1/ |
| 동영상 생성 | POST /v1/ |
| TTS | POST /v1/ |
| 음악 | POST /v1/ |
API 키
대시보드의 /app/keys에서 API 키를 발급합니다. 각 키는 다음과 같습니다.
sk-kn-로 시작하며 뒤에 30자 이상의 무작위 문자가 붙습니다.- 생성 시 한 번만 표시됩니다. 이후 Kunavo에는 해시만 저장됩니다.
- 대시보드에서 알아보기 쉬운 이름이 있습니다(예:
prod-web). - 언제든지 폐기할 수 있으며, 폐기 즉시 해당 키에 401 오류가 반환됩니다.
- 키마다 월별 지출 한도와 IP 허용 목록을 설정할 수 있습니다. 둘 다
/app/keys에서 설정하며 모든 호출에 적용됩니다.
키별 지출 한도(선택 사항)
각 키에 월별 지출 한도를 달러로 설정할 수 있습니다. 해당 키의 현재 달력 기준 월의 정산된 사용량이 한도를 초과하게 되면 월초에 한도가 초기화될 때까지 해당 키로 보낸 호출은 402 insufficient_quota를 반환하며 요금이 청구되지 않습니다. 다른 키에는 영향이 없습니다. 계정 전체가 아니라 특정 인증 정보 하나에 적용되는 상한입니다.
이 설정은 무인 에이전트에 필요한 통제 수단입니다. 지갑 잔액은 모든 키가 공유하므로 그 자체로는 폭주하는 루프 하나가 잔액을 전부 쓰는 것을 막을 수 없습니다. 에이전트 전용 키를 만들고 작업 규모에 맞는 한도를 설정하면 최악의 경우에도 지출은 해당 금액으로 제한됩니다. 한도를 $0로 설정하면 키를 폐기하지 않고도 사용을 일시 중지할 수 있습니다.
키별 IP 허용 목록(선택 사항)
키를 특정 주소 집합에서만 사용할 수 있도록 제한할 수도 있습니다. IPv4/IPv6 주소 또는 CIDR 블록을 한 줄에 하나씩 입력하세요(203.0.113.7, 198.51.100.0/24, 2001:db8::/32). 다른 곳에서 해당 키로 호출하면 403 permission_error가 반환되며, /v1/models를 포함한 모든 엔드포인트에 적용됩니다. 비워 두면 모든 주소를 허용합니다.
X-Forwarded-For를 위조해 허용 목록을 우회할 수 없습니다. 반대로 호출자가 새 호스트, NAT 게이트웨이 또는 네트워크로 이동하면 허용 목록이 설정된 키는 즉시 작동을 멈춥니다. 허용 목록은 송신 주소가 안정적인 서버에 설정하고 노트북에는 설정하지 마세요.요청 헤더
최소 요청에는 다음 두 헤더가 포함됩니다.
Authorization: Bearer sk-kn-...
Content-Type: application/json모든 엔드포인트는 Authorization 대신 x-api-key 헤더에서도 키를 읽습니다. Anthropic SDK가 보내는 헤더이므로 Anthropic API용 클라이언트도 사용자 지정 헤더 없이 /v1/models를 포함한 모든 경로에 연결할 수 있습니다. 요청에 두 헤더가 모두 있으면 Authorization를 사용합니다. 키의 지출 한도와 IP 허용 목록은 어떤 헤더로 키를 전달하든 적용됩니다.
선택 사항이지만 권장합니다. 앱을 식별하는 User-Agent입니다. 요청 출처를 디버깅할 수 있도록 /app/usage 대시보드에 사용자 에이전트를 기록합니다.
OpenAI SDK 사용하기
대부분의 팀은 공식 OpenAI SDK를 그대로 사용하고 base_url만 바꿉니다. Python(v1.x+)과 Node(v4.x+) 모두 이 방식으로 사용할 수 있습니다.
Python
import os
from openai import OpenAI
client = OpenAI(
api_key=os.environ["KUNAVO_API_KEY"],
base_url="https://api.kunavo.com/v1",
)Node.js
import OpenAI from "openai";
const client = new OpenAI({
apiKey: process.env.KUNAVO_API_KEY,
baseURL: "https://api.kunavo.com/v1",
});baseURL, Python에서 base_url를 사용합니다. 둘 다 같은 엔드포인트를 가리킵니다.키 교체
권장 사항: API 키를 분기별로 또는 키 유출 가능성이 있을 때마다 교체하세요. Kunavo에서는 계정당 여러 키를 동시에 사용할 수 있으므로 기존 키와 새 키를 겹쳐 운영하며 원활하게 교체할 수 있습니다.
# 1. Create a new key in /app/keys, set its name to e.g. "prod-2026-Q2"
# 2. Deploy new key to your servers
# 3. Verify traffic is flowing on the new key (dashboard shows usage)
# 4. Revoke the old key from /app/keys → it 401s immediately
# In code, swap one env var:
export KUNAVO_API_KEY="sk-kn-new-..."보안 참고 사항
- 키를 클라이언트 측에 노출하지 마세요. 브라우저 코드와 모바일 번들은 공개됩니다. 항상 서버를 통해 프록시하세요.
- 키의 권한 범위를 좁게 설정하세요. 프로젝트마다 서로 다른 키를 사용하면 다른 워크로드에 영향을 주지 않고 키를 폐기할 수 있습니다. 키마다 자체 지출 한도와 IP 허용 목록도 설정할 수 있으므로 유출된 키의 비용과 사용 출처를 제한할 수 있습니다.
- 대시보드를 확인하세요.
/app/usage페이지에서 키별로 분류된 트래픽을 볼 수 있어 예상치 못한 활동을 쉽게 발견할 수 있습니다. - 유출이 의심되면 신고하세요. support@kunavo.com으로 이메일을 보내 주시면 키 무효화와 사고 검토를 도와드립니다.