블로그로 돌아가기

시작하기가이드

Postman에서 OpenAI 호환 API로 첫 요청 보내기

변수에 보관한 Bearer 키로 Postman에서 chat/completions 요청을 보내고, 응답과 usage 필드를 읽어보세요.

작성자: CheapTokens Team 게시됨읽는 시간 4분

CheapTokens API용 모델 id와 메시지 하나가 담긴 Postman 요청 본문
이 페이지의 내용
  1. 네 단계로 설정하기
  2. Send를 누르고 응답 읽기
  3. 첫 요청의 비용
  4. 작동하지 않을 때

API 키가 있고 코드를 한 줄도 작성하기 전에 실제로 어떤 데이터가 오가는지 확인하고 싶다면, Postman이 바로 그 용도에 적합합니다. URL, 키, JSON 본문을 입력하고 Send를 누르면 응답이 바로 아래에 나타납니다. CheapTokens의 경우 요청은 POST https://api.cheaptokens.dev/v1/chat/completions이며, Authorization: Bearer 키와 모델을 지정하는 JSON 본문을 사용합니다.

아래 단계는 Postman 자체 문서(v12, 문서 사이트의 최신 버전, 2026년 10월 31일 확인)를 따릅니다. 터미널을 선호한다면 동일한 요청이 Your first API request with CheapTokens에 있습니다.

Postman의 요청 본문: 모델 id, 사용자 메시지 하나, max_tokens
첫 요청의 원시 JSON 본문

네 단계로 설정하기#

필요한 것은 몇 가지뿐입니다: base URL, 키, 모델 id, 메시지 하나. Postman은 처음 두 가지를 변수에 보관하므로 키가 요청 자체에 붙여넣어지지 않습니다.

순서대로 배열하기

Postman 설정 순서 정리

  1. base_url과 api_key 변수 정의
  2. HTTP 요청 생성: {{base_url}}/chat/completions로 POST
  3. Authorization 탭에서 Bearer Token 선택 후 {{api_key}} 입력
  4. Body 탭에서 raw > JSON 선택, 본문 붙여넣기, Send 누르기

각 단계의 세부 사항입니다.

요청 생성. 왼쪽 사이드바의 Add 아이콘을 클릭하고 HTTP를 선택합니다. 메서드 드롭다운은 기본값이 GET이므로 POST로 바꾸고 URL을 입력합니다. Postman 변수는 {{variable_name}} 형식으로 작성하며, 문서에서는 {{base_url}}을 예로 사용합니다. base_url을 https://api.cheaptokens.dev/v1로 정의하면 URL 필드는 {{base_url}}/chat/completions이 됩니다. Postman은 변수를 문자열로 저장하는데, 여기서는 문제없습니다.

키 추가. Authorization 탭을 열고 Auth Type 드롭다운에서 Bearer Token을 선택한 뒤 Token 필드에 {{api_key}}을 입력합니다. Postman은 이를 Bearer 형식의 Authorization 헤더로 전송합니다. 문서에서도 정확히 이 방식을 권장합니다: 토큰을 변수에 보관하고 이름으로 참조하세요. 이 습관이 왜 중요한지는 Store an API key safely에 있습니다.

본문 작성. Body 탭에서 raw를 선택한 다음 드롭다운에서 JSON을 선택합니다. raw 본문의 경우 Postman이 일치하는 Content-Type를 자체적으로 설정하므로 해당 헤더를 추가할 필요가 없습니다. 다음을 붙여넣으세요:

json
{
  "model": "deepseek-ai/DeepSeek-V4-Flash-0731",
  "messages": [
    { "role": "user", "content": "Explain in one sentence what a token is." }
  ],
  "max_tokens": 200
}

모델 id는 CheapTokens 문서의 전체 gateway_id입니다. deepseek-flash 같은 짧은 이름은 허용되지 않습니다. max_tokens은 응답 길이를 제한하므로 첫 테스트가 길어지지 않습니다. Postman의 세부 사항 하나 더: JSON 본문의 // 및 /* */ 주석은 전송 전에 제거되므로 동료를 위해 본문에 주석을 달 수 있습니다.

Send를 누르고 응답 읽기#

모든 것이 올바르면 응답 창에 OpenAI Chat Completions 형식의 JSON 객체가 표시됩니다. 두 곳이 중요합니다:

  • choices[0].message.content는 응답 텍스트입니다.
  • usage에는 prompt_tokens(보낸 내용)와 completion_tokens(모델이 작성한 내용)가 있습니다. 이것이 과금 대상이므로 첫 요청에서 반드시 확인하세요.

choices[0].finish_reason도 확인하세요. stop은 모델이 스스로 완료했음을 의미하고, length은 응답이 max_tokens에 도달해 잘렸음을 의미합니다. 그런 경우 제한을 높이거나 AI answer cut off? Fix finish_reason "length"를 읽어보세요.

답을 열기 전에 시도해 보세요:

직접 해보기시도: max_tokens를 5로 설정하고 Send를 누릅니다. finish_reason에 무엇이 예상되나요?정답 보기

length가 나옵니다: 5개 토큰은 완전한 문장에 충분하지 않으므로 응답이 잘립니다. 200으로 되돌리면 stop이 됩니다.

첫 요청의 비용#

위 요청이 약 30개의 입력 토큰을 사용하고 응답이 약 100개의 출력 토큰을 차지한다고 가정해 봅시다(예시일 뿐 측정값이 아닙니다. 실제 숫자는 usage 필드에 표시됩니다). DeepSeek-V4-Flash에서 현재 가격 기준 $0.00001이며, 가격은 시간대와 관계없이 동일합니다. 1M 토큰당 가격은 the pricing page의 실시간 표에 있습니다.

동일한 Postman 요청으로 다른 모델을 시도할 수 있습니다. model 줄만 바꾸면 됩니다. 예를 들어 zai-org/GLM-5.3-Flash(390K 컨텍스트, 최대 8,192 출력 토큰)로 바꾸고 다시 Send를 누르세요. 하나의 잔액으로 모든 모델을 사용할 수 있으므로 다른 것은 바뀌지 않습니다: 같은 URL, 같은 키.

작동하지 않을 때#

Postman은 응답 옆에 상태 코드를 표시합니다. 흔한 원인은 다음과 같습니다:

짝 맞추기

증상을 원인과 연결하기

  • 401 Unauthorized키가 없거나, 잘못 입력되었거나, 변수가 정의되지 않아 {{api_key}}가 비어 있음
  • 404 Not FoundURL이 잘못됨: base_url이 /v1로 끝나는지, 경로가 /chat/completions인지 확인
  • 모델을 언급하는 오류모델 id가 축약됨; deepseek-ai/DeepSeek-V4-Flash-0731 같은 전체 id 사용

Postman에 특화된 두 가지를 확인할 가치가 있습니다. 401이 발생하거나 URL이 잘못된 것 같으면 선택한 환경에 base_url과 api_key가 정의되어 있는지 확인하세요. 그리고 키가 올바른 것 같은데도 여전히 401이 발생하면 Authorization 탭을 다시 여세요: Auth Type이 No Auth가 아니라 Bearer Token이어야 합니다. 이 코드에 대한 자세한 내용: API 401 or 404 error. 어떤 id를 사용할지 모르겠다면 List models with GET /v1/models가 모든 모델을 반환합니다.

만족스러우면 Save를 누르고 요청에 이름을 지정한 뒤 컬렉션을 선택하세요. 다음에는 content 필드만 수정하거나 model 줄을 수정해 응답을 비교하면 됩니다. 전체 API 레퍼런스는 the CheapTokens docs에 있습니다.