베이스 URL 및 인증
당사의 API는 OpenAI와 완전히 호환되므로 최소한의 변경으로 표준 SDK를 사용할 수 있습니다. 모든 요청의 베이스 URL은 https://api.openrouterapi.top/v1입니다. 인증은 Authorization 헤더에 전달되는 Bearer 토큰으로 처리됩니다. 대시보드에서 Google 또는 이메일 주소로 가입하면 키를 즉시 생성할 수 있습니다. 선불 크레딧에 직접 접근할 수 있으므로 키를 안전하게 보관하세요.
첫 번째 요청
간단한 curl 명령어로 엔드포인트를 테스트합니다. YOUR_API_KEY을 실제 키로 바꿉니다. 모델 ID는 uncensored로 설정되어 표준 콘텐츠 거부를 우회합니다. 이 요청은 프롬프트를 보내고 전체 응답을 기다립니다.
curl https://api.openrouterapi.top/v1/chat/completions \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "uncensored",
"messages": [{"role": "user", "content": "Write a blunt product review of a cheap VPN."}]
}'
키가 유효하지 않으면 401 오류가 발생합니다. 선불 잔액이 고갈되면 402 오류가 발생합니다. 이러한 오류는 토큰 잔액을 소모하지 않지만 속도 제한 할당량에 포함됩니다.
Python SDK 통합
공식 openai Python 패키지를 사용하는 것은 간단합니다. 베이스 URL과 키로 클라이언트를 초기화합니다. SDK는 JSON 직렬화를 자동으로 처리합니다. 이 예제는 기본 채팅 완료 요청을 보여줍니다.
from openai import OpenAI
client = OpenAI(base_url="https://api.openrouterapi.top/v1", api_key="YOUR_KEY")
resp = client.chat.completions.create(
model="uncensored",
messages=[{"role": "user", "content": "Summarise this thread without softening it."}],
)
print(resp.choices[0].message.content)
최신 버전의 SDK가 설치되어 있는지 확인하세요. 클라이언트 객체는 연결 풀을 관리하므로 재초기화하지 않고도 여러 요청에 재사용할 수 있습니다.
Node SDK 통합
JavaScript 환경에서는 Node SDK도 동일하게 작동합니다. 초기화 중 사용자 지정 베이스 URL을 전달합니다. 이 접근 방식은 기존 웹 앱이나 백엔드 서비스에 무검열 생성을 원활하게 통합할 수 있게 합니다.
import OpenAI from "openai";
const client = new OpenAI({ baseURL: "https://api.openrouterapi.top/v1", apiKey: process.env.API_KEY });
const resp = await client.chat.completions.create({
model: "uncensored",
messages: [{ role: "user", content: "Draft a villain monologue for my game." }],
});
console.log(resp.choices[0].message.content);
Node SDK는 프라미스 기반 및 async/await 패턴을 모두 지원합니다. 오류 처리는 다른 OpenAI 호환 서비스와 일관됩니다.
스트리밍 응답
요청에 stream: true을 설정하여 스트리밍을 활성화합니다. API는 Server-Sent Events (SSE)를 반환합니다. 각 청크에는 부분 텍스트가 포함됩니다. 마지막 청크에는 과금을 위한 토큰 사용 통계가 포함됩니다.
stream = client.chat.completions.create(
model="uncensored",
messages=[{"role": "user", "content": "Tell the story in second person."}],
stream=True,
)
for chunk in stream:
if chunk.choices and chunk.choices[0].delta.content:
print(chunk.choices[0].delta.content, end="", flush=True)
선불 크레딧은 최종 출력에서 생성된 실제 토큰을 기준으로 과금됩니다. 스트리밍은 가격 책정 모델을 변경하지 않습니다. 성공적으로 전달된 토큰에 대해 지불합니다.
속도 제한 및 컨텍스트 창
각 API 키는 분당 300개 요청 및 8개의 동시 요청으로 제한됩니다. 최대 요청 본문 크기는 8 MB입니다. 컨텍스트 창은 총 100,000 토큰(입력 및 출력 합계)을 지원합니다. 요청당 최대 출력은 32,000 토큰이며, max_tokens이 설정되지 않은 경우 2,048입니다. 401 또는 402와 같은 오류는 크레딧을 소모하지 않지만 속도 제한에 포함됩니다. 특정 콘텐츠 유형에 대한 거부도 무료입니다.