# 빠른 시작 > API 키 발급부터 첫 API 요청까지 단계별로 안내합니다. Source: https://kiln.bricksum.com/docs/ko/quickstart Kiln은 OpenAI 호환 API입니다. 계정을 만들고, API 키를 발급하고, OpenAI 클라이언트의 base_url을 Kiln 엔드포인트로 바꾸는 세 단계면 qwen3-32b의 응답을 받을 수 있습니다. ## 1. 가입 [가입 페이지](https://kiln.bricksum.com/signup)에서 이메일 주소 또는 GitHub·Google·Naver 계정으로 가입합니다. 개인 조직이 자동으로 만들어지며, 키·사용량·크레딧은 모두 이 조직에 속합니다. - 이메일 주소를 인증하세요. 체험 크레딧은 인증 후 한 번만 지급되며 30일 뒤 만료됩니다. 금액과 잔액은 콘솔의 크레딧 페이지에서 확인할 수 있습니다. - 오픈 베타 기간에는 운영팀이 계정을 승인해야 콘솔이 열릴 수 있습니다. 대기 페이지에 두 가지 확인 상태가 표시되고 자동으로 새로고침됩니다. ## 2. API 키 발급 [콘솔 → API 키](https://kiln.bricksum.com/app/keys)에서 조직 관리자가 프로젝트에 키를 발급합니다. 키는 `sk-bk-`로 시작하며, 전체 값은 발급할 때 한 번만 표시되므로 그때 복사해 두세요. 이메일 인증과 계정 승인이 끝나기 전에는 키를 발급할 수 없습니다. 팁 API 키는 비밀로 관리하세요. 소스 저장소에 커밋하거나 클라이언트 코드에 포함하지 마세요. 환경 변수(예: `KILN_API_KEY`)에서 읽고, 노출되면 즉시 교체하세요. ## 3. 첫 요청 보내기 OpenAI 호환 클라이언트라면 무엇이든 동작합니다. 공식 OpenAI SDK가 가장 빠릅니다. **Python** ```bash pip install openai ``` **JavaScript** ```bash npm install openai ``` 클라이언트의 `base_url`을 `https://api.bricksum.com/v1`으로 설정합니다. 바꿀 것은 이 한 줄뿐이며, 나머지는 OpenAI API와 동일하게 동작합니다. 일부 파라미터는 아직 지원하지 않습니다. API 레퍼런스의 '알려진 제한'을 참고하세요. **base_url** ```python base_url = "https://api.bricksum.com/v1" ``` chat/completions 요청을 보냅니다. 응답 형식은 과금에 쓰이는 usage 필드까지 OpenAI API와 동일합니다. **curl** ```bash curl https://api.bricksum.com/v1/chat/completions \ -H "Authorization: Bearer sk-bk-..." \ -H "Content-Type: application/json" \ -d '{ "model": "qwen3-32b", "messages": [ {"role": "user", "content": "Hello!"} ] }' ``` **Python** ```python from openai import OpenAI client = OpenAI( base_url="https://api.bricksum.com/v1", api_key="sk-bk-...", # your Kiln API key ) resp = client.chat.completions.create( model="qwen3-32b", messages=[{"role": "user", "content": "Hello!"}], ) print(resp.choices[0].message.content) ``` **JavaScript** ```javascript import OpenAI from "openai"; const client = new OpenAI({ baseURL: "https://api.bricksum.com/v1", apiKey: process.env.KILN_API_KEY, // sk-bk-... }); const resp = await client.chat.completions.create({ model: "qwen3-32b", messages: [{ role: "user", content: "Hello!" }], }); console.log(resp.choices[0].message.content); ``` ### 스트리밍 stream을 true로 설정하면 생성되는 토큰을 SSE(server-sent events)로 실시간 수신합니다. **curl** ```bash curl https://api.bricksum.com/v1/chat/completions \ -H "Authorization: Bearer sk-bk-..." \ -H "Content-Type: application/json" \ -d '{ "model": "qwen3-32b", "messages": [{"role": "user", "content": "Hello!"}], "stream": true }' ``` **Python** ```python from openai import OpenAI client = OpenAI( base_url="https://api.bricksum.com/v1", api_key="sk-bk-...", ) stream = client.chat.completions.create( model="qwen3-32b", messages=[{"role": "user", "content": "Hello!"}], stream=True, ) for chunk in stream: print(chunk.choices[0].delta.content or "", end="") ``` **JavaScript** ```javascript import OpenAI from "openai"; const client = new OpenAI({ baseURL: "https://api.bricksum.com/v1", apiKey: process.env.KILN_API_KEY, }); const stream = await client.chat.completions.create({ model: "qwen3-32b", messages: [{ role: "user", content: "Hello!" }], stream: true, }); for await (const chunk of stream) { process.stdout.write(chunk.choices[0].delta.content ?? ""); } ``` ## 다음 단계 - [모델 카탈로그](https://kiln.bricksum.com/models) — 모든 서빙 모델의 현재 가격, 최근 24시간 실측 처리량, 90일 가동률을 확인하고, 고른 모델 ID를 요청의 model 필드에 넣으세요 - [API 레퍼런스](https://kiln.bricksum.com/docs/ko/api-reference) — 지원 엔드포인트·요청 필드·알려진 제한 - [에러](https://kiln.bricksum.com/docs/ko/errors) — 401(키 에러)·402(크레딧 소진)·429(레이트 리밋)의 의미와 재시도 방법 - [레이트 리밋](https://kiln.bricksum.com/docs/ko/rate-limits) — 레이트 리밋(기본 60 RPM)과 재시도 가이드 - [콘솔 → 도구 연결](https://kiln.bricksum.com/app/tools) — Claude Code·Codex CLI·OpenCode·Cursor를 한 번에 연결