API 레퍼런스
BazaarLink API 개요
BazaarLink는 모델과 제공업체 전반에서 통일된 OpenAI 호환 요청 및 응답 형식을 제공합니다. 한 번만 연동하면 애플리케이션을 다시 작성하지 않고 모델을 전환할 수 있습니다.
OpenAPI 사양
전체 BazaarLink API는 OpenAPI 사양으로 문서화되어 있으며 YAML 및 JSON 형식으로 제공됩니다:
Swagger UI, Postman 또는 OpenAPI 호환 코드 생성기에서 이 사양을 사용해 API를 탐색하거나 클라이언트 라이브러리를 생성할 수 있습니다.
요청
채팅 완성 요청 형식
채팅 완성 요청 본문은 다음 엔드포인트로 전송됩니다:
/api/v1/chat/completions지원되는 전체 필드 목록은 매개변수。
구조화된 출력
모델이 스키마에 맞는 유효한 JSON을 반환하도록 강제합니다. 모델 출력을 프로그래밍 방식으로 파싱하는 신뢰할 수 있는 애플리케이션 구축에 필수적입니다.
json_object— 기본 JSON 모드로, 모델이 유효한 JSON을 반환합니다.json_schema— 엄격한 스키마 모드로, 출력이 제공된 JSON Schema와 일치해야 합니다.
플러그인
BazaarLink는 plugins 배열을 선택된 업스트림 경로로 전달합니다. 사용 가능 여부는 모델과 제공업체에 따라 다르며 :online 모델 변형은 web 플러그인도 활성화합니다.
선택적 헤더
요청 헤더에서 애플리케이션을 식별하여 사용량 추적, 대시보드 가시성, 세분화된 분석을 활성화합니다.
어시스턴트 프리필
메시지 배열의 마지막에 미완성 assistant 메시지를 추가하여 호환되는 모델 경로에 이어서 생성하도록 요청합니다.
응답
BazaarLink는 모델과 제공업체의 완성 응답을 하나의 OpenAI 호환 형식으로 정규화합니다.
완성 응답 형식
choices는 항상 배열입니다. 스트리밍 응답은 delta를, 비스트리밍 응답은 message를 사용하며 가능한 경우 사용량과 비용도 반환합니다.
종료 이유
finish_reason은 stop, length, tool_calls, content_filter, error 등으로 정규화되며 native_finish_reason은 제공업체의 원래 값을 보존합니다.
비용 및 통계 조회
generation ID로 단일 완료의 상세 통계 조회 (ID는 chat/completions 응답 id 또는 스트리밍 x-bz-gen-id 헤더에서).
채팅 완성
기본 엔드포인트. OpenAI 채팅 완성 API와 호환됩니다.
/api/v1/chat/completions요청 바디
요청 스키마 (TypeScript)
예제 요청
응답
응답 스키마 (TypeScript)
BazaarLink는 정확히 두 개의 필드만 정규화합니다 — model과 provider 필드 제거 — 나머지 업스트림 응답은 그대로 전달합니다. native_finish_reason, system_fingerprint, reasoning 같은 필드는 해당 업스트림 공급자가 값을 채운 경우에만 존재합니다 — 모든 모델에서 항상 존재한다고 가정하지 마세요. usage.cost는 예외로, 업스트림에서 전달된 값이 아니라 항상 BazaarLink 자체가 정산·청구한 금액입니다.
이미지 생성
DALL·E 및 GPT-4o 같은 모델을 사용하여 텍스트 프롬프트에서 이미지를 생성합니다. `modalities` 파라미터를 사용하여 채팅 완성 엔드포인트에서 이미지 출력을 요청합니다. 이미지 편집(기존 이미지 수정)은 POST /v1/images/edits를 사용합니다 —— OpenAI images.edit 호환이며, multipart/form-data로 소스 이미지를 업로드합니다. 편집 가능한 모델은 modality가 text+image->image입니다(예: qwen/qwen-image-edit). 순수 생성 모델은 text->image입니다 —— 각 모델의 modality는 GET /v1/models에서 확인하세요.
Response format
/api/v1/images/generations는 기본적으로 OpenAI 호환 동기 JSON을 반환합니다(2026-07-25부터) — client.images.generate()가 래퍼 없이 바로 동작합니다. stream: true를 전달하면 SSE 이벤트 스트림으로 전환되어 생성 시간이 긴 모델의 진행 상황을 받을 수 있습니다.
A. /v1/chat/completions (네이티브, 권장)
/api/v1/chat/completionsThe canonical streaming path. Recommended for any new integration.
이미지-투-이미지: content 배열에 image_url 파트를 포함하세요. 데이터 URI 또는 https 이미지 URL(http:// 는 거부됨)을 지원하며, 최대 8장, 데이터 URI당 약 10MB입니다. 이미지를 포함한 메시지에는 text 파트(편집 지시)도 함께 있어야 합니다. 일부 모델은 image_config(예: {"strength": 0.7}, 0–1 — 낮을수록 원본 이미지에 가까움)를 추가로 지원하며, 그대로 업스트림에 전달됩니다.
이미지 편집 (OpenAI 호환)
/api/v1/images/editsOpenAI SDK의 client.images.edit()가 그대로 동작합니다(multipart 업로드, data: [{ url }] 을 반환하는 동기 JSON 응답). 제한은 이미지-투-이미지와 동일: 최대 8장, 각 10MB. mask와 response_format=b64_json은 아직 지원되지 않습니다.
curl https://bazaarlink.ai/api/v1/images/edits \
-H "Authorization: Bearer $BL_API_KEY" \
-F model="openai/gpt-5.4-image-2" \
-F image=@cat.png \
-F prompt="change the background to a night city"B. /v1/images/generations (DALL·E 호환)
/api/v1/images/generationsOpenAI DALL-E request shape. Sync JSON ({ created, data: [{ url }] }) is the default and works with client.images.generate() out of the box; pass stream: true to get the SSE event stream documented below instead.
# Streaming variant — progressive delivery for long generations
curl -N https://bazaarlink.ai/api/v1/images/generations \
-H "Authorization: Bearer $BL_API_KEY" \
-H "Accept: text/event-stream" \
-H "Content-Type: application/json" \
-d '{"model":"openai/gpt-5.4-image-2","prompt":"a red cat on a sofa","stream":true}'SSE event protocol
Both endpoints emit the same event types:
지원되는 이미지 모델
| Model ID | Modality | i2i (edits) |
|---|
비디오 생성
비동기 3단계 플로우(submit → poll → content)입니다. 비디오 생성은 30초~5분이 걸려 chat-completions의 동기 요청/응답 방식에 맞지 않습니다 — 그래서 BazaarLink는 비디오를 전용 /api/v1/videos 경로로 분리하고 job-id 패턴을 사용합니다: submit으로 vjob_* ID 수신 → 상태 poll → 완료 후 bytes fetch. video model을 /chat/completions 또는 /images/generations로 호출하면 400(code: wrong_endpoint_for_video)이 반환됩니다. 비용은 completed 시점에 실제 usage.cost로 정산됩니다.
동영상 작업 유형
하나의 엔드포인트가 여러 작업을 처리합니다. 실제로 어떤 작업이 실행되는지는 전송하는 필드로 결정됩니다 —— 하나의 모델로 이미지-투-비디오, 키프레임, 이어 붙이기를 모두 할 수 있습니다. 모든 모델이 모든 작업을 지원하지는 않으며, 미지원 요청은 400을 반환합니다.
1. 작업 제출 (즉시 vjob_xxx 반환)
/api/v1/videos2. 상태 폴링
/api/v1/videos/{id}curl -H "Authorization: Bearer $BL_API_KEY" \
https://bazaarlink.ai/api/v1/videos/vjob_xxx3. 비디오 콘텐츠 가져오기 (MP4)
/api/v1/videos/{id}/contentcurl -H "Authorization: Bearer $BL_API_KEY" \
-o output.mp4 \
https://bazaarlink.ai/api/v1/videos/vjob_xxx/content알아두면 좋은 점
- 허용 해상도는 모델마다 다릅니다 —— 미지원 값을 보내면 지원 값을 나열한 400을 반환합니다.
- 입력 이미지/동영상은 공개 URL에서 접근 가능해야 합니다. 핫링크 보호된 호스트(일부 wiki 등)는 실패합니다.
- 입력 미디어는 업스트림 콘텐츠 검열을 거치며 가끔 거부될 수 있습니다.
- 이어 붙이기의 경우 요청한 duration이 원본 동영상 길이를 초과해야 합니다.
- 출력 화면 비율은 입력 이미지를 따릅니다 —— 정사각형 이미지는 정사각형 동영상이 됩니다.
- 동영상 편집은 입력 동영상의 초와 생성된 출력의 초로 과금됩니다.
- 편집/이어 붙이기의 input_video는 공개 URL이어야 합니다. 여기서 생성한 동영상은 API 키 뒤에서 제공되므로 업스트림이 가져올 수 없습니다 —— 소스 동영상을 공개적으로 접근 가능한 URL에 호스팅하세요.
- 웹훅 페이로드는 서명되지 않습니다 — 조치 전에 GET /videos/{id}로 상태/금액을 확인하세요. 거기의 unsigned_urls는 절대 경로입니다(폴링 응답의 상대 경로와 다름).
지원되는 비디오 모델
| Model ID | Modality | Tasks |
|---|---|---|
| bytedance/seedance-2.0 | text+image+audio+video->video | t2v, i2v |
| bytedance/seedance-2.0-fast | text+image+audio+video->video | t2v, i2v |
| google/veo-3.1 | text+image->video | t2v, i2v |
| openai/sora-2-pro | text+image->video | t2v, i2v |
| bytedance/seedance-1-5-pro | text+image->video | t2v, i2v |
| alibaba/happyhorse-1.0 | text->video | t2v |
| alibaba/wan2.6-r2v-flash | text+image+video->video | r2v |
| alibaba/wan2.5-i2v-preview | text+image->video | i2v |
| alibaba/happyhorse-1.1 | text->video | t2v |
| alibaba/wan2.7-t2v | text->video | t2v |
| alibaba/wan2.7-i2v | text+image+video->video | i2v, kf2v, continuation |
| alibaba/wan2.6-t2v | text->video | t2v |
| alibaba/wan2.5-t2v-preview | text->video | t2v |
| alibaba/wan2.2-t2v-plus | text->video | t2v |
| alibaba/wan2.7-r2v | text+image+video->video | r2v |
| alibaba/wan2.1-t2v-plus | text->video | t2v |
| alibaba/wan2.1-t2v-turbo | text->video | t2v |
| alibaba/wan2.6-i2v-flash | text+image->video | i2v |
| alibaba/wan2.2-i2v-flash | text+image->video | i2v |
| alibaba/wan2.7-videoedit | text+image+video->video | videoedit |
| alibaba/wan2.6-i2v | text+image->video | i2v |
| alibaba/wan2.2-i2v-plus | text+image->video | i2v |
| alibaba/wan2.6-r2v | text+image+video->video | r2v |
비디오 입력
동영상 입력을 지원하는 모델에 동영상 파일을 전송하여 분석, 캡션 생성, 장면 및 이벤트에 대한 질문에 답하게 합니다. 직접 URL 또는 base64 데이터 URI를 사용할 수 있습니다 — URL은 공개적으로 접근 가능한 동영상에 효율적이며, base64는 로컬 파일이나 비공개 동영상에 사용합니다.
지원 형식
MP4(H.264)MPEGMOVWebMPDF 입력
PDF를 네이티브로 지원하는 모델(Claude, Gemini 등)에 메시지로 PDF 문서를 직접 전송할 수 있습니다. BazaarLink는 파일을 그대로 모델에 전달합니다 — 일반 input tokens로 과금, 추가 비용이나 추가 처리 없음.
지원 형식
- PDF 문서 (텍스트, 이미지, 테이블, 스캔)
- Base64 인코딩 데이터 URL (`data:application/pdf;base64,...`)
- 다중 페이지 문서
- 비밀번호 없는 PDF만
Responses API
상태 비저장 멀티턴 대화, 도구 호출, 멀티모달 입력을 위한 OpenAI Responses API 호환 엔드포인트. client.responses.create()를 사용하는 OpenAI Python SDK ≥ 1.x 에이전트 및 프레임워크에 적합합니다.
/api/v1/responses요청 바디
요청 스키마 (TypeScript)
예제 요청
응답 형식
채팅 완성에서 마이그레이션
messages를 input(문자열 또는 배열)으로 바꾸고, system-role 메시지 대신 instructions를 사용하며, choices[0].message.content 대신 output[0].content[0].text를 읽으세요.
제한 사항
- previous_response_id 또는 store: true는 400(오류 코드 invalid_prompt)으로 거부됩니다 — 수락된 후 무시되는 것이 아닙니다. 항상 상태 비저장 모드를 사용해 input 배열에 전체 대화 기록을 전달하세요.
- OpenAI 자체의 내장 호스팅 도구(web_search_preview, file_search, computer_use_preview)는 지원되지 않습니다. 웹 검색은 plugins: [{id:"web"}]로 사용할 수 있으며 — 일부 모델 라우트에서만 지원됩니다.
- background: true는 수락되지만 무시됩니다 — 모든 요청은 완료될 때까지 동기적으로 실행됩니다.
Messages (Anthropic 호환)
Anthropic Claude SDK 호환 Messages API. Anthropic 공식 API와 동일하게 사용 — base URL과 auth header만 변경하세요.
/api/v1/messages요청 바디
예제 요청
응답
오류: 400 (검증 실패), 402 (크레딧 부족), 429 (rate limit), 502 (업스트림 오류/키 누락), 503 (서버 재시작).
모델
가격 및 기능 정보와 함께 사용 가능한 모든 모델을 나열합니다. 이 엔드포인트는 인증이 필요하지 않습니다.
/api/v1/models# Text models (default)
curl https://bazaarlink.ai/api/v1/models
# Complete catalog
curl "https://bazaarlink.ai/api/v1/models?output_modalities=all"응답
입력 길이 기반 단계별 가격
일부 모델은 프롬프트가 token 임계값을 초과하면 전체 가격표가 전환됩니다(임계값을 초과한 부분만이 아닙니다). 임계값은 엄격한 부등식입니다: 입력 token 수가 정확히 N이면 N 이하 단계가 적용되고, N을 초과할 때만 상위 단계가 적용됩니다.
pricing_tiers는 pricing과 동일한 레벨의 필드로, 기본 가격을 초과하는 오버라이드 단계가 있는 모델에만 존재합니다. 항목은 above_prompt_tokens 오름차순으로 정렬되며, prompt/completion은 token당 USD 가격입니다(pricing.prompt/pricing.completion과 동일한 단위). pricing.prompt와 pricing.completion은 항상 기본(최저) 단계입니다.
대부분의 모델에는 단계가 없습니다 — 이 경우 응답에 pricing_tiers 키 자체가 없습니다.
사용 가능한 모델 (257)
다음은 BazaarLink에서 현재 사용 가능한 모델로, 데이터베이스에서 동적으로 로드됩니다:
다음에서 모든 모델을 탐색하세요 모델 페이지.
스트리밍
설정 stream: true 하여 Server-Sent Events(SSE) 스트림을 받으세요. 각 이벤트에는 응답 청크가 포함됩니다.
SSE 형식
data: {"id":"chatcmpl-abc","choices":[{"delta":{"content":"Hello"},"index":0}]}
data: {"id":"chatcmpl-abc","choices":[{"delta":{"content":" world"},"index":0}]}
data: {"id":"chatcmpl-abc","choices":[{"delta":{},"finish_reason":"stop","index":0}],"usage":{"prompt_tokens":10,"completion_tokens":4,"total_tokens":14}}
data: [DONE]Keep-alive 및 마지막 청크
스트림에는 keep-alive로 SSE 주석 줄(콜론으로 시작)이나 하트비트 이벤트가 포함될 수 있습니다 — 원시 스트림을 그대로 JSON.parse하지 말고 data: 가 아닌 줄은 건너뛰세요. 마지막 data 청크는 data: [DONE] 전에 usage(토큰 수와 비용)를 담고 있습니다. 성공한 응답에는 X-Request-Id 헤더가 포함됩니다 — 문제를 보고할 때 함께 제공하세요.
: keepalive <- SSE comment line — ignore, do NOT JSON.parse
data: {"id":"chatcmpl-abc","choices":[{"delta":{"content":"Hi"},"index":0}]}
data: {"id":"chatcmpl-abc","choices":[{"delta":{},"finish_reason":"stop","index":0}],"usage":{...}}
data: [DONE]스트림 취소
클라이언트 연결을 종료하면 스트리밍 요청을 취소할 수 있습니다 — 예: AbortController.abort() 호출 또는 stream 객체 종료. BazaarLink는 취소 신호를 받는 즉시 이후 청크 전달을 중단하고 공급자로 나가는 요청을 취소합니다.
스트림 도중 오류
data: {"id":"chatcmpl-abc","choices":[{"delta":{"content":"The capital of "},"index":0}]}
data: {"error":{"message":"Upstream connection lost.","type":"upstream_error","code":502}}
data: [DONE]임베딩
임베딩(Embeddings)은 의미를 포착하는 수치 표현으로, 텍스트를 벡터(숫자 배열)로 변환하여 다양한 머신러닝 작업에 활용할 수 있습니다. BazaarLink는 OpenAI 임베딩 API와 호환되는 통합 엔드포인트를 제공하여 하나의 인터페이스로 여러 공급자의 임베딩 모델을 호출할 수 있습니다.
임베딩이란?
임베딩은 텍스트를 고차원 벡터로 변환하며, 의미적으로 유사한 텍스트는 벡터 공간에서 더 가깝게 위치합니다——예를 들어 "고양이"와 "새끼 고양이"의 임베딩은 비슷하지만, "고양이"와 "비행기"는 멀리 떨어져 있습니다. 이러한 벡터 표현 덕분에 기계가 텍스트 간의 관계를 이해할 수 있으며, 많은 AI 애플리케이션의 기반이 됩니다.
일반적인 사용 사례
/api/v1/embeddings매개변수
기본 요청
배치 처리
문자열 배열을 보내면 한 번의 요청으로 여러 텍스트를 임베딩할 수 있습니다 — 텍스트별로 호출하는 것보다 저렴하고 빠릅니다.
멀티모달 입력 (이미지 + 텍스트)
이미지 입력을 지원하는 모델(output_modalities에 "embeddings", inputModalities에 "image" 포함)은 {content:[{type:"text",...}, {type:"image_url",...}]} 형태의 입력 항목을 받아, 이미지 단독 또는 텍스트와 함께 임베딩할 수 있습니다.
공급자 라우팅
채팅 완성과 동일한 방식으로 어느 업스트림이 임베딩 요청을 처리할지 제어할 수 있습니다 — 전체 필드 참조는 Provider Selection을 확인하세요.
임베딩 모델 찾기
임베딩 전용 모델 목록 엔드포인트는 없습니다 — GET /api/v1/models를 호출한 뒤 output_modalities에 "embeddings"가 포함된 항목을 클라이언트 측에서 필터링하거나, Models 페이지를 둘러보세요.
제한사항
- 스트리밍 미지원 — 채팅 완성과 달리 임베딩은 항상 완전한 응답으로 반환됩니다.
- 각 모델에는 최대 입력 길이가 있으며, 이를 초과하는 텍스트는 업스트림에서 잘리거나 거부됩니다.
- 동일한 입력에 대한 임베딩은 결정론적입니다 — temperature나 무작위성이 개입하지 않습니다.
모범 사례
- 속도/품질/비용 트레이드오프에 맞는 모델을 선택하세요 — 작은 모델(예: qwen/qwen3-embedding-4b)은 저렴하고 빠르며, 큰 모델(예: openai/text-embedding-3-large)은 일반적으로 더 높은 정확도로 임베딩합니다.
- 텍스트별로 호출하는 대신 여러 텍스트를 한 번의 요청에 배치로 담으세요 — 왕복 횟수와 오버헤드가 줄어듭니다.
- 결과를 캐시하세요 — 동일한 입력의 임베딩은 절대 변하지 않으므로, 다시 생성하지 말고 저장해 두세요.
- 유클리드 거리 대신 코사인 유사도로 비교하세요 — 스케일에 불변하며 고차원 벡터에 더 적합합니다.
- 각 모델의 컨텍스트 길이에 유의하세요 — 긴 문서는 임베딩 전에 청크로 나눠야 할 수 있습니다.
파라미터
샘플링 파라미터는 토큰 생성 과정을 조정합니다. BazaarLink은 지원되는 파라미터를 업스트림 공급자에 전달합니다; 지원되지 않는 파라미터는 조용히 무시됩니다.
샘플링 파라미터
BazaarLink 전용 파라미터
크레딧
현재 크레딧 잔액과 누적 API 사용량 조회.
/api/v1/credits예제 요청
curl https://bazaarlink.ai/api/v1/credits \
-H "Authorization: Bearer sk-bl-YOUR_KEY"응답
{
"data": {
"total_credits": 100.00,
"total_usage": 12.34
}
}오류: 401 (키 누락/무효), 403 (정지된 사용자).
생성 세부정보
generation ID로 단일 완료의 상세 통계 조회 (ID는 chat/completions 응답 id 또는 스트리밍 x-bz-gen-id 헤더에서).
/api/v1/generation?id=<generation-id>예제 요청
curl "https://bazaarlink.ai/api/v1/generation?id=gen_abc123" \
-H "Authorization: Bearer sk-bl-YOUR_KEY"응답
오류: 400 (id 누락), 401 (auth), 404 (generation 없음).
API 키 정보
현재 API 키의 rate limit 계층과 집계 사용량 카운터 조회 (응답 형식은 업계 표준 키 정보 API와 호환).
/api/v1/key응답
오류: 401 (auth), 404 (사용자 없음 — 드물게).
에이전트 등록
AI 에이전트(봇, 자율 시스템)를 위한 셀프서비스 등록. 트라이얼 크레딧이 포함된 API 키와 계정 업그레이드용 claim token을 반환합니다.
/api/v1/agents/register요청 바디
예제 요청
curl -X POST https://bazaarlink.ai/api/v1/agents/register \
-H "content-type: application/json" \
-d '{
"name": "My Agent",
"description": "Autonomous research bot"
}'응답
오류: 400 (body 무효/name 누락), 429 (rate limit — 1/IP/24h), 500 (내부).
오류 코드
오류 응답 형식
모델 추론 엔드포인트는 OpenAI 호환 오류 응답을 반환합니다. type 필드는 달라지거나 생략될 수 있으므로 메시지를 파싱하지 말고 HTTP 상태와 error.code를 프로그램 로직에 사용하세요.
{
"error": {
"message": "Insufficient credits. Please top up to continue.",
"type": "invalid_request_error",
"code": "insufficient_credits"
}
}HTTP 상태 및 오류.코드
Before streaming, the HTTP status identifies the broad failure class. error.code is either that number or a stable string for a specific remedy. Prefer the string code when present, otherwise use the HTTP status.
기계 판독 가능한 청구 코드
A 402 can represent different controls. Use these stable codes to choose the correct action.
Stable error.code catalog
These string codes are emitted by public inference and media paths. Branch on the string code when present; the HTTP status remains the broad failure class.
속도 제한, 예산 및 비상 브레이크
These controls can reject an otherwise valid request and require different recovery actions.
Compatibility note: rate-limit and emergency-brake paths currently emit numeric error.code values. Use HTTP status, Retry-After, and the documented response message.
비디오 및 미디어 리소스 상태
Video validation commonly returns numeric code 400. Missing jobs return 404, retired models 410, unfinished video content 409, and invalid video byte ranges 416.
재시도 정책
Retry only failures that may recover without changing the request. Honor Retry-After or use exponential backoff with jitter. Do not stack SDK and manual retries.
오류 처리
스트리밍 오류 형식
토큰 스트리밍 전에 발생한 오류는 JSON 바디와 함께 표준 HTTP 오류 응답을 반환합니다.
After a stream starts, the HTTP response is already 200. Parse each SSE data frame and treat a top-level error or choices[0].finish_reason === "error" as a failed, incomplete response.
스트림이 중간에 실패하면 BazaarLink는 최상위 error 객체를 담은 마지막 SSE 이벤트를 보내고 이어서 data: [DONE]을 보냅니다. 일부 업스트림에서 그대로 전달되는 청크는 대신 choice에 오류를 담을 수 있습니다(choices[0].finish_reason === "error") — 두 경우 모두 처리하세요.
버전 관리
BazaarLink는 단일 안정 API 경로인 /api/v1을 제공합니다 — 관리해야 할 날짜 고정 버전이나 버전 헤더가 없습니다. API는 번호가 매겨진 릴리스가 아니라 지속적으로 발전합니다.
비파괴적 변경
다음은 사전 공지 없이 배포됩니다:
- 새 엔드포인트
- 카탈로그에 새 모델 추가
- 새로운 선택적 요청 매개변수
- 새로운 응답 필드
- 선택적 속성을 가진 새 스키마
- 추가 응답 상태/오류 코드
파괴적 변경
이는 드물게 발생하며, 다음을 포함합니다:
- 엔드포인트, 매개변수, 응답 필드를 제거하거나 이름을 바꾸는 것
- 필드 타입을 변경하는 것
- 선택적 매개변수를 필수로 만드는 것
발생하더라도 파괴적 변경은 전체 /api/v1 표면이 아니라 특정 엔드포인트에만 적용됩니다 — 모든 연동을 한 번에 깨뜨릴 수 있는 단일 버전 업그레이드는 없습니다. 아직 Breaking 태그가 있는 공식 changelog는 게시하지 않습니다(아래 "최신 정보 확인" 참고) — 연동에 중요한 부분이라면, 문서화되지 않은 동작에 의존하기 전에 Support에 문의하세요.
지원 종료 정책
예상해야 할 유일한 정기적인 "파괴적" 이벤트: 업스트림 공급자가 지원을 종료함에 따라 개별 모델이 폐지됩니다. GET /api/v1/models로 모델의 현재 상태를 조회하세요.
GET https://bazaarlink.ai/api/v1/models
Authorization: Bearer sk-bl-YOUR_API_KEY
# A model within 30 days of its deprecation date shows in the catalog
# with an "EOL" badge on the Models page. After the effective date it's
# dropped from the catalog and calls return:
# 410 { "error": { "type": "model_not_available", "code": "model_retired" } }최신 정보 확인
아직 전용 API changelog나 RSS 피드는 게시하지 않습니다. 지금은 이 페이지를 직접 확인하거나, GET /api/v1/models로 모델 상태를 확인하거나, 중요한 연동에 사전 통지가 필요하면 Support에 문의하세요.