문서로 돌아가기

엔드포인트와 프로토콜

모델 기능에 맞는 엔드포인트를 선택합니다.

필요한 엔드포인트, 도구, 입력 형식을 지원하는 모델을 선택하세요. Chat Completions, Responses, Messages는 구조가 달라 경로 변경만으로 전환할 수 없습니다.

API 엔드포인트

방식경로설명
POST/v1/messagesAnthropic Messages API (권장)
POST/v1/chat/completionsOpenAI Chat Completions (호환)
POST/v1/images/generationsOpenAI Images Generations (req/gpt-image-2)
POST/v1/images/editsOpenAI 이미지 편집 / 참조 이미지(req/gpt-image-2)
POST/v1/audio/speechOpenAI Audio Speech / TTS (req/gpt-4o-mini-tts)
POST/v1/videosOpenAI Videos — 비디오 생성
GET/v1/videos/{id}비디오 진행 상태 조회 (추가 요금 없음)
GET/v1/videos/{id}/contentMP4 파일 다운로드 (추가 요금 없음)
DELETE/v1/videos/{id}대기 중인 작업 취소 (추가 요금 없음)
POST/v1/responsesOpenAI Responses API (호환)
GET/v1/models모델 및 가격 목록
POST/v1/messages/count_tokens토큰 추정 (무료)

전체 가이드 보기

/v1/messages/count_tokens

이 엔드포인트는 무료 로컬 추정치를 제공하며 모델의 공식 토크나이저를 사용하지 않습니다. input_tokens는 최대 200,000으로 제한되므로 큰 프롬프트가 문맥 창에 맞는지 확인하거나 최종 비용을 확정하는 데 쓰지 마세요. 실제 생성 usage와 대조하세요. 아래 JSON은 예시이며 실제 응답이 아닙니다.

curl --fail-with-body "https://apivn.dev/v1/messages/count_tokens" \
  -H "x-api-key: ${STALI_API_KEY:?STALI_API_KEY}" \
  -H "Content-Type: application/json" \
  -d '{"model":"claude-fable-5","messages":[{"role":"user","content":"Hello"}]}'

Responses 및 도구 호출

Responses 예제는 POST /v1/responses를 사용하고 input에 문맥을 포함합니다. 이 문서는 공개되지 않은 응답 저장·조회·목록 작업의 지원을 보장하지 않습니다.

import os
from getpass import getpass
from openai import OpenAI

client = OpenAI(api_key=os.getenv("STALI_API_KEY") or getpass("STALI_API_KEY: "), base_url="https://apivn.dev/v1", max_retries=0)
stream = client.responses.create(model="gpt-5.6-sol", input="Hello", stream=True, store=False)
completed = False
for event in stream:
    if event.type == "response.output_text.delta":
        print(event.delta, end="", flush=True)
    elif event.type == "response.completed":
        completed = event.response.status == "completed"
    elif event.type in ("error", "response.failed", "response.incomplete"):
        raise RuntimeError(str(event))
if not completed:
    raise RuntimeError("Stream ended without response.completed; preserve the request ID and check usage before retrying.")

JSON 예제는 각각 Chat Completions와 Messages용입니다. Python 예제는 로컬 덧셈으로 전체 도구 호출 과정을 보여 줍니다. 이름과 인수를 검증하고 함수를 실행한 뒤 일치하는 call ID로 결과를 보내세요. 게이트웨이는 함수를 실행하지 않습니다. 모델 호출은 라운드마다 별도로 과금될 수 있으며 예제는 최대 4라운드로 제한하고 SDK 자동 재시도를 끕니다.

예제는 소스 검토와 로컬 점검 대상이며 모든 앱 버전의 실제 검증을 의미하지 않습니다. 운영 전에 설정, 작은 요청, 사용량을 확인하세요.

Support