API 레퍼런스
apikey.sh는 OpenAI 프로토콜을 그대로 사용합니다. OpenAI와 동작하는 SDK·프레임워크·도구라면 base_url만 바꾸면 그대로 동작합니다.빠른 시작
대시보드에서 키를 만들고 환경 변수에 넣은 뒤 base URL을 지정하세요:from openai import OpenAI
client = OpenAI(
api_key="sk-ak-...", # your key from apikey.sh
base_url="https://apikey.sh/v1", # change only this line
)
resp = client.chat.completions.create(
model="claude-sonnet-5",
messages=[{"role": "user", "content": "Hello!"}],
)
print(resp.choices[0].message.content)Base URL
아래 모든 도메인에서 동일한 API 키가 작동합니다 — 원하는 것을 사용하세요.Anthropic SDK는 /v1 없이 base URL을 사용합니다(예: https://apikey.sh).
https://apikey.sh/v1정상https://api.onie.net/v1정상인증
헤더에 키를 담아 보내세요:
Authorization: Bearer sk-ak-... # or, with the Anthropic SDK: x-api-key: sk-ak-...키는 생성 시 한 번만 표시됩니다. 분실했다면 새로 만들고 기존 키를 폐기하세요 — 폐기는 즉시 적용됩니다.
Endpoint
| POST | /v1/chat/completions | 완성 생성 (SSE streaming 및 tool calling 지원) |
| POST | /v1/embeddings | RAG와 시맨틱 검색을 위한 embedding 생성 |
| POST | /v1/images/generations | 이미지 생성 (gpt-image-* 모델) |
| GET | /v1/models | 현재 키로 사용 가능한 모델 목록 조회 |
Streaming
stream: true를 추가하면 SSE로 토큰을 실시간 수신합니다:
stream = client.chat.completions.create(
model="claude-sonnet-5",
messages=[{"role": "user", "content": "Write a short poem"}],
stream=True,
)
for chunk in stream:
print(chunk.choices[0].delta.content or "", end="")Prompt caching
지원 모델(GPT-5.x 계열)에서는 프롬프트의 반복 접두부가 자동으로 캐시되어 캐시 요금으로 청구되며, 신규 토큰보다 약 90% 저렴합니다. 코드는 바꿀 필요가 없고, 캐시된 토큰 수는 대시보드의 사용량에서 확인할 수 있습니다.응답에 usage.prompt_tokens_details.cached_tokens가 포함되어 직접 대조할 수 있습니다.
키별 한도
키마다 지출 한도와 허용 모델 목록을 지정할 수 있습니다. 프로젝트나 팀원과 키를 공유하면서도 한쪽이 예산을 다 쓰는 일을 막는 안전한 방법입니다. 대시보드 → API 키에서 설정하세요.
오류 코드
401 | 잘못된 키, 폐기된 키 또는 정지된 계정 |
402 | 크레딧 부족 — 대시보드에서 충전하세요 |
403 | 이 키의 허용 목록에 없는 모델 |
429 | 키 요청 한도 초과 |
5xx | 업스트림 제공사 오류 — 몇 초 후 다시 시도하세요 |