Grok API Python 예제: xAI SDK·OpenAI SDK와 응답 확인
Grok API 키와 크레딧을 준비하고 xAI SDK·OpenAI SDK로 Grok 4.7을 호출한다. Python 예제 실행부터 응답 완료·빈 출력·사용량 확인, 인증·모델·한도 오류 해결까지 다룬다.
핵심 요약
- xAI 콘솔에서 API 키를 만들고 크레딧을 충전한 뒤 grok-4.7로 첫 요청을 보낸다.
- xAI SDK나 OpenAI SDK에 xAI 키·주소·모델을 지정해 쓸 수 있다.
- 인증 오류는 번호만 보지 말고 키·권한에 관한 응답 내용을 함께 확인한다.
이 글의 목차
Grok API는 xAI 콘솔에서 API 키를 만들고 크레딧을 충전한 뒤, Python에서 grok-4.7 모델로 호출한다. xAI SDK와 OpenAI SDK 모두 쓸 수 있고, OpenAI SDK에는 xAI 키, base_url="https://api.x.ai/v1", xAI 모델 ID를 지정한다. 기존 서비스의 모든 옵션이 호환되는 것은 아니다. (Quickstart)
준비
- xAI 콘솔에 가입하고 API Keys 화면에서 키를 만든다.
- 공식 Quickstart는 첫 호출 전에 계정에 크레딧을 넣어 두라고 안내한다. 보통 선불 크레딧을 쓰고, 월 청구로 계약한 팀은 Billing 조건을 따른다.
- PowerShell에서 키를 환경 변수에 넣는다. 창을 닫으면 사라지니 새 창에서는 다시 넣는다.
$env:XAI_API_KEY="YOUR_API_KEY"
- xAI SDK는 Python 3.10 이상을 요구한다.
python --version으로 버전을 확인하고 사용할 SDK를 설치한다. 둘 중 하나만 있으면 된다.
python -m pip install -U xai-sdk
python -m pip install -U openai
xAI SDK로 호출
아래 코드를 grok_first.py로 저장하고, 키를 넣은 창에서 python grok_first.py로 실행한다. (xAI SDK)
import os
from xai_sdk import Client
from xai_sdk.chat import user
client = Client(api_key=os.getenv("XAI_API_KEY"))
chat = client.chat.create(model="grok-4.7")
chat.append(user("def average(xs): return sum(xs) / len(xs)\n빈 목록에서는 None을 반환하도록 고쳐줘. [2, 4]와 [] 결과도 설명해줘."))
print(chat.sample().content)
OpenAI SDK로 호출
xAI는 OpenAI 호환 주소를 제공하고, 최신 예제는 Responses API를 쓴다. 웹 검색·X 검색·코드 실행 같은 서버 도구를 한 요청에 묶기 쉬워서, 나중에 에이전트를 만들 생각이면 처음부터 이 방식이 편하다.
import os
from openai import OpenAI
client = OpenAI(api_key=os.environ["XAI_API_KEY"], base_url="https://api.x.ai/v1")
response = client.responses.create(
model="grok-4.7",
input="def average(xs): return sum(xs) / len(xs)\n빈 목록에서는 None을 반환하도록 고쳐줘. [2, 4]와 [] 결과도 설명해줘.",
)
print("status:", response.status)
print(response.output_text)
print("usage:", response.usage)
두 예제의 정답 기준은 같다. 빈 목록에서 0으로 나누지 않고 None을 돌려줘야 하고, [2, 4]의 평균은 3이다. 이 요청은 고친 코드를 답으로 받을 뿐 내 컴퓨터의 파일을 바꾸지 않는다.
HTTP 성공만 보지 말고 응답 상태를 본다. status가 completed여야 끝난 답이다. incomplete면 미완료 이유와 출력 한도를 확인한다. 이 단순 텍스트 예제에서 output_text가 비면 응답 항목을 조사한다. 도구를 추가한 서비스에서는 빈 텍스트와 함께 함수 호출이 올 수도 있다. usage에는 입력·출력 토큰이 나온다. (응답 상태)
요금
Grok 4.7은 4.6과 가격이 같다. 100만 토큰당 입력 $2, 캐시된 입력 $0.50, 출력 $6이고, 프롬프트가 20만 토큰 이상이면 요청 전체가 두 배 요율이다. 웹 검색 같은 서버 도구는 토큰과 별도로 성공한 호출 수만큼 청구된다(웹 검색 1,000회당 $5). 자세한 계산 예는 Grok 4.6 가격·사양에 있다. (xAI 가격표)
서비스에 붙이기 전에는 요청마다 아래 값을 남겨 두면 비용과 오류를 추적하기 쉽다.
| 남길 값 | 쓰임 |
|---|---|
| 요청 ID·모델·응답 상태 | 답이 비거나 잘렸을 때 그 요청을 찾는다 |
| 입력·출력·캐시 적중 토큰 | 가격표로 계산한 비용과 실제 청구를 맞춰 본다 |
| 서버 도구 호출 종류와 횟수 | 토큰 요금과 도구 요금을 나눠 본다 |
| 재시도 횟수와 시간 초과 | 응답을 못 받은 요청이 실제로는 처리됐는지 확인한다 |
오류가 날 때
틀린 키도 400의 원인이 될 수 있다. 공식 오류 문서는 400의 원인에 잘못된 요청 인수와 잘못된 API 키를 함께 적고 있다. 상태 번호뿐 아니라 오류 내용을 보고 키·요청 형식을 구분한다.
| 코드 | 확인할 것 |
|---|---|
| 400 | 오류 내용에서 잘못된 인수인지 키 문제인지 확인한다 |
| 401·403 | 키와 계정의 모델 접근 권한, 팀 설정 |
| 404 | 모델 ID 오타와 주소(https://api.x.ai/v1) |
| 429 | 요청 빈도 초과. 속도를 줄이거나 콘솔에서 한도를 늘린다 |
| 응답이 잘림 | status와 출력 한도, 연결 오류 |
(오류 문서) 같은 요청을 즉시 무한 반복하지 말고, 재시도에는 횟수와 대기 시간 상한을 둔다. No module named 오류는 패키지 미설치나 설치·실행 환경 불일치를 확인한다.
키는 코드에 적지 말고 환경 변수에 둔다. 브라우저에서 돌아가는 코드에 넣으면 누구나 볼 수 있으니 서버를 거친다. 저장소에 커밋했다면 파일을 지워도 기록에 남으니 키를 폐기하고 새로 만든다.
다음 단계
- 웹 검색:
tools에web_search를 넣는다. 최신 정보가 필요한 요청에만 붙인다. Grok Search API 사용법에 정리했다. - X 검색:
x_search로 X 게시물과 사용자, 스레드를 찾는다. 제품 반응처럼 X 자체가 정보원인 일에 맞다. (X Search) - 파일: 문서를 올려 검색하는 법은 Grok 파일·커넥터 활용법에 있다.
- 이미지: 같은 키로
grok-imagine-image-2.0모델을 호출한다. 텍스트 호출이 되는지 먼저 확인하고 하나씩 붙인다. - 비용 줄이기: Responses 요청에
extra_body={"prompt_cache_key": "..."}를 지정하면 같은 서버로 보내 캐시 재사용을 돕는다. 공통 접두문을 유지하고 실제 적중 토큰을 확인한다. (캐시 안내)
자주 묻는 질문
Grok 4.6을 계속 써도 되나?
9월 29일 공식 가격표와 모델 목록에는 grok-4.6도 제공 모델로 올라 있다. 새로 연결한다면 grok-4.7로 시작하고, 기존 서비스는 같은 입력으로 두 모델을 비교한 뒤 바꾼다. 4.7은 4.6과 가격이 같다.
예전 Chat Completions 방식 코드도 되나?
된다. 공식 추론 문서에는 Grok 4.7의 Responses API와 Chat Completions 예제가 있다. client.chat.completions.create(model="grok-4.7", messages=[...]) 형태로 호출할 수 있다. 기존 코드의 주소·키·모델 ID를 바꾸고 지원하지 않는 요청 옵션도 확인한다. 다만 두 방식의 응답 필드 구조가 달라서 예제를 섞어 쓰면 오류가 난다.
X 검색과 웹 검색 중 무엇을 붙이나? 공식 문서나 가격처럼 정확한 사실이 필요하면 웹 검색이나 해당 페이지 주소를 직접 쓴다. 실시간 반응이나 여론처럼 X 게시물 자체가 필요한 일에만 X 검색을 쓴다.
grok.com 구독으로 API를 쓸 수 있나? 아니다. grok.com 앱 구독과 API 크레딧은 따로다. API는 콘솔에서 충전한 크레딧으로 쓴다.
Azure·AWS에서 쓰는 경우의 차이는 Grok 4.6 가격·사양에 있다.



첫 댓글을 남겨 보세요.
로그인은 계정 확인에만 사용하며 이메일 원문은 저장하거나 공개하지 않습니다.
댓글은 공개됩니다. 개인정보·광고·비방성 내용은 남기지 마세요. 운영 기준은이용 안내에서 확인할 수 있습니다.