Relay API 문서
Relay API는 OpenAI 호환 형식으로, 기존 OpenAI SDK나 라이브러리를 그대로 사용할 수 있습니다. Relay를 통해 AI 제품을 만들어 보세요.
Quick Start
curl을 사용한 가장 간단한 API 호출 예제입니다.
curl https://www.relayservice.im/api/v1/chat/completions \
-H "Content-Type: application/json" \
-H "Authorization: Bearer rlk-your-api-key" \
-d '{
"model": "gpt-4o-mini",
"messages": [
{"role": "user", "content": "Hello!"}
]
}'API 키 설정
Relay 대시보드의 액세스 키 페이지에서 API 키를 생성할 수 있습니다. 생성된 키는 rlk-로 시작합니다.
Python (OpenAI SDK)
from openai import OpenAI
client = OpenAI(
api_key="rlk-your-api-key",
base_url="https://www.relayservice.im/api/v1"
)
response = client.chat.completions.create(
model="gpt-4o-mini",
messages=[
{"role": "user", "content": "Hello!"}
]
)
print(response.choices[0].message.content)Node.js (OpenAI SDK)
import OpenAI from 'openai';
const client = new OpenAI({
apiKey: 'rlk-your-api-key',
baseURL: 'https://www.relayservice.im/api/v1'
});
const response = await client.chat.completions.create({
model: 'gpt-4o-mini',
messages: [
{ role: 'user', content: 'Hello!' }
]
});
console.log(response.choices[0].message.content);API 엔드포인트
| Base URL | https://www.relayservice.im/api/v1 |
| Chat Completions | POST /chat/completions |
| Image Generation | POST /images/generations |
| 인증 방식 | Authorization: Bearer rlk-xxx... |
요청/응답 형식
요청 본문
{
"model": "gpt-4o-mini",
"messages": [
{
"role": "system",
"content": "You are a helpful assistant."
},
{
"role": "user",
"content": "Hello!"
}
],
"temperature": 0.7,
"max_tokens": 1000,
"stream": false
}| 파라미터 | 타입 | 필수 | 설명 |
|---|---|---|---|
model | string | Yes | 사용할 모델 ID |
messages | array | Yes | 대화 메시지 배열 |
temperature | number | No | 샘플링 온도 (0-2, 기본값: 1) |
max_tokens | integer | No | 최대 생성 토큰 수 |
stream | boolean | No | 스트리밍 응답 여부 |
응답 형식
{
"id": "chatcmpl-abc123",
"object": "chat.completion",
"created": 1234567890,
"model": "gpt-4o-mini",
"choices": [
{
"index": 0,
"message": {
"role": "assistant",
"content": "Hello! How can I help you today?"
},
"finish_reason": "stop"
}
],
"usage": {
"prompt_tokens": 10,
"completion_tokens": 15,
"total_tokens": 25
}
}이미지 생성
Relay는 OpenAI 호환 이미지 생성 API를 제공합니다. Google의 Gemini 2.5 Flash Image 모델을 사용하여 이미지를 생성할 수 있습니다.
이미지 생성 API
curl https://www.relayservice.im/api/v1/images/generations \
-H "Content-Type: application/json" \
-H "Authorization: Bearer rlk-your-api-key" \
-d '{
"prompt": "A cute orange cat sitting on a couch",
"n": 1,
"size": "1024x1024"
}'요청 파라미터
| 파라미터 | 타입 | 필수 | 설명 |
|---|---|---|---|
prompt | string | Yes | 생성할 이미지에 대한 설명 |
model | string | No | 사용할 모델 (기본값: gemini-2.5-flash-image) |
n | integer | No | 생성할 이미지 수 (1-4, 기본값: 1) |
size | string | No | 이미지 크기 (예: 1024x1024, 1792x1024) |
response_format | string | No | 응답 형식: "b64_json" (기본값) 또는 "url" |
지원 이미지 크기
| 크기 | 비율 | 용도 |
|---|---|---|
1024x1024 | 1:1 | 정사각형 (기본값) |
1792x1024 | 16:9 | 와이드스크린 |
1024x1792 | 9:16 | 세로형 (모바일) |
1536x1024 | 3:2 | 사진 비율 |
응답 형식
{
"created": 1234567890,
"data": [
{
"b64_json": "iVBORw0KGgoAAAANSUhEUgAA...",
"revised_prompt": "A cute orange cat sitting on a couch"
}
],
"usage": {
"prompt_tokens": 8,
"completion_tokens": 1290,
"total_tokens": 1298
}
}Python 예제
import requests
import base64
url = "https://www.relayservice.im/api/v1/images/generations"
headers = {
"Content-Type": "application/json",
"Authorization": "Bearer rlk-your-api-key"
}
data = {
"model": "gemini-2.5-flash-image",
"prompt": "A cute orange cat sitting on a couch",
"n": 1,
"size": "1024x1024"
}
response = requests.post(url, headers=headers, json=data)
json_response = response.json()
# Base64 이미지 저장
image_data = base64.b64decode(json_response['data'][0]['b64_json'])
with open("cat.png", "wb") as f:
f.write(image_data)Chat Completions로 이미지 생성
Chat Completions API에서 gemini-2.5-flash-image 모델을 사용하면 대화형으로 이미지를 생성할 수 있습니다.
import requests
url = "https://www.relayservice.im/api/v1/chat/completions"
headers = {
"Content-Type": "application/json",
"Authorization": "Bearer rlk-your-api-key"
}
data = {
"model": "gemini-2.5-flash-image",
"messages": [
{"role": "user", "content": "Draw a cute puppy playing with a ball"}
]
}
response = requests.post(url, headers=headers, json=data)
json_response = response.json()
# 응답에 마크다운 이미지가 포함됨: 
print(json_response['choices'][0]['message']['content'])지원 모델
현재 Relay에서 지원하는 모델 목록입니다. 모든 프로바이더의 모델을 동일한 OpenAI 호환 형식으로 호출할 수 있습니다.
OpenAI
| 모델 ID | 설명 |
|---|---|
gpt-5.2 | GPT-5.2 최신 모델 |
gpt-5.2-pro | GPT-5.2 Pro (고급 추론) |
gpt-5.2-codex | GPT-5.2 Codex (코딩 특화) |
gpt-5-mini | GPT-5 Mini (경량 버전) |
gpt-4o-mini | GPT-4o Mini |
Anthropic
| 모델 ID | 설명 |
|---|---|
claude-opus-4-5-20251101 | Claude Opus 4.5 (최고 성능) |
claude-sonnet-4-5-20250929 | Claude Sonnet 4.5 (균형) |
claude-haiku-4-5-20251001 | Claude Haiku 4.5 (빠른 응답) |
| 모델 ID | 설명 |
|---|---|
gemini-3-pro-preview | Gemini 3 Pro Preview (현재 사용 불가) |
gemini-3-flash-preview | Gemini 3 Flash Preview (현재 사용 불가) |
gemini-2.5-pro | Gemini 2.5 Pro |
gemini-2.5-flash | Gemini 2.5 Flash |
gemini-2.5-flash-lite | Gemini 2.5 Flash Lite (저비용) |
gemini-2.5-flash-image | Gemini 2.5 Flash Image (이미지 생성) |
xAI
| 모델 ID | 설명 |
|---|---|
grok-3 | Grok 3 (고성능) |
grok-3-mini | Grok 3 Mini (경량 버전) |
z.ai
| 모델 ID | 설명 |
|---|---|
glm-5 | GLM-5 (최신 모델) |
glm-4.7 | GLM-4.7 (균형) |
glm-4.7-flashx | GLM-4.7 FlashX (고속) |
glm-4.7-flash | GLM-4.7 Flash (무료) |
IDE 설정
Relay API는 OpenAI 호환 형식이므로 대부분의 AI 코딩 도구에서 사용할 수 있습니다.
VS Code - Continue
Continue 확장 프로그램을 설치한 후, ~/.continue/config.yaml 파일을 수정합니다.
models:
- name: Relay GPT-4o
provider: openai
model: gpt-4o
apiKey: rlk-your-api-key
apiBase: https://www.relayservice.im/api/v1
- name: Relay Claude
provider: openai
model: claude-3-5-sonnet-latest
apiKey: rlk-your-api-key
apiBase: https://www.relayservice.im/api/v1
- name: Relay Grok
provider: openai
model: grok-3
apiKey: rlk-your-api-key
apiBase: https://www.relayservice.im/api/v1
- name: Relay GLM
provider: openai
model: glm-5
apiKey: rlk-your-api-key
apiBase: https://www.relayservice.im/api/v1Cursor
Cursor는 AI 기능이 내장된 코드 에디터입니다. Settings → Models → OpenAI API Key 섹션에서 설정합니다.
| API Key | rlk-your-api-key |
| Base URL | https://www.relayservice.im/api/v1 |
Zed
Zed는 고성능 코드 에디터입니다. ~/.config/zed/settings.json 파일을 수정합니다.
{
"language_models": {
"openai": {
"api_url": "https://www.relayservice.im/api/v1",
"available_models": [
{ "name": "gpt-4o", "max_tokens": 128000 },
{ "name": "claude-3-5-sonnet-latest", "max_tokens": 200000 }
]
}
}
}API 키는 Zed 실행 시 OPENAI_API_KEY 환경변수로 설정하거나, 설정에서 입력합니다.
Cline (VS Code)
Cline 확장 프로그램을 설치한 후, 설정에서 API Provider를 "OpenAI Compatible"로 선택합니다.
| API Provider | OpenAI Compatible |
| Base URL | https://www.relayservice.im/api/v1 |
| API Key | rlk-your-api-key |
| Model ID | gpt-4o, claude-3-5-sonnet-latest, grok-3, glm-5 |
에러 코드
API 요청 시 발생할 수 있는 에러 코드입니다.
| HTTP 코드 | 에러 타입 | 설명 |
|---|---|---|
400 | bad_request | 잘못된 요청 형식 |
401 | unauthorized | API 키가 없거나 유효하지 않음 |
402 | insufficient_credits | 크레딧 잔액 부족 |
404 | not_found | 모델을 찾을 수 없음 |
429 | rate_limit | 요청 한도 초과 |
500 | internal_error | 서버 내부 오류 |
에러 응답 형식
{
"error": {
"message": "Invalid API key provided",
"type": "unauthorized",
"code": 401
}
}