소개
xAI의 Grok 4.6을 OpenAI 호환 채팅으로 부르는 엔드포인트입니다. 스크린샷과 그에 대한 질문이 같은 사용자 턴에 함께 실립니다.
Grok 4.6은 xAI의 모델이고, POST https://api.spicyapi.ai/v1/chat/completions에 모델 이름 xai/grok-4.6으로 보냅니다. 요청 구성은 익숙한 형태입니다. 최대 256턴짜리 messages 배열, 출력 상한, 샘플링 조절값 두 개, 도구 목록, 응답 형식, 그리고 쓰기 전에 얼마나 공을 들일지 정하는 reasoning_effort가 있습니다. 컨텍스트 윈도우는 500,000 토큰이고 한 번의 응답이 450,000 토큰까지 갈 수 있어서 예산의 큰 쪽을 프롬프트가 아니라 답변에 둘 수 있습니다. content는 text 파트와 image_url 파트를 받습니다. 이 엔드포인트에는 file이나 PDF 파트가 없으며, 모달리티는 텍스트와 이미지를 넣어 텍스트를 받는 형태입니다.
핵심 기능 및 하이라이트
그림과 그에 대한 문장을 한 턴에
content는 평범한 문자열이어도 되고 파트 배열이어도 됩니다. 이미지 파트는 url과 auto, low, high 중 하나인 detail 힌트를 가집니다. 캡처와 그에 대한 질문이 함께 도착하므로 모델은 설명이 아니라 픽셀을 직접 읽습니다. 라벨이 잘못 붙은 축, 가장자리에서 잘린 스택 트레이스, 특정 너비에서만 깨지는 레이아웃처럼 답이 거기에 달려 있을 때 그 차이가 곧 결과의 차이가 됩니다. 이미지 내용은 500,000 토큰 컨텍스트 윈도우 바깥이 아니라 그 안에서 계산되므로, 큰 캡처 여러 장과 긴 대화 기록이 같은 예산을 두고 경쟁합니다.
예산의 거의 전부를 답변에 쓸 수 있습니다
한 번의 응답이 450,000 토큰까지 닿습니다. 채팅 모델치고는 드문 구조여서 윈도우의 대부분을 읽는 데가 아니라 쓰는 데 쓸 수 있습니다. max_tokens의 기본값은 여전히 4,096이므로 긴 생성은 직접 요청해야 나오는 것이지 어쩌다 나오는 것이 아니며, 기본값에서 잘릴 때 경고는 없습니다. reasoning_effort는 low, medium, high, xhigh 중에서 고르며 기본값은 high입니다. 추론에 쓴 만큼 출력 토큰으로 나가므로 상한과 청구 금액에 동시에 반영됩니다.
경로에 저희 쪽 장치는 없습니다
저희는 사용자와 이 모델 사이에 자체 콘텐츠 분류기를 두지 않습니다. 모델이 쓰지 않겠다고 판단한 것은 모델 자신의 행동이지 여기서 끼워 넣은 층이 아니며, 보낸 내용이 지나가는 길에 검사되거나 점수 매겨지거나 고쳐 쓰이지 않습니다. 보내는 자료의 권리는 사용자에게 있고, 돌아온 답을 어떻게 쓰는지에 대한 책임도 사용자에게 있습니다.
요청 파라미터
| 파라미터 | 필수 | 설명 |
|---|---|---|
messages | 예 | 최대 256개 턴입니다. content는 user 메시지 하나 안에서 text 파트와 |
reasoning_effort | 아니요 | low, medium, high, xhigh 중 하나입니다. 기본값은 high이며, 추론에 쓴 만큼 출력 토큰으로 소비됩니다. |
max_tokens | 아니요 | 눈에 보이는 응답 길이의 상한을 정하며, 최댓값은 450,000 토큰입니다. 기본값 4,096은 긴 답변을 경고 없이 잘라냅니다. |
temperature | 아니요 | 0에서 2까지, 기본값은 0.7입니다. 시안 두 개나 실행 두 번을 비교할 때는 0으로 두세요. |
top_p | 아니요 | 0.01에서 1까지입니다. 이 값과 temperature 중 하나만 조정하고, 둘을 함께 바꾸지 마세요. |
tools | 아니요 | 요청당 함수 정의 최대 128개입니다. 128개 이하 |
parallel_tool_calls | 아니요 | true 또는 false이며 기본값은 true입니다. true이면 모델이 한 턴에 여러 도구 호출을 요청할 수 있습니다. 기본값: |
tool_choice | 아니요 | auto, none, required, 또는 호출할 함수를 지정한 객체입니다. |
response_format | 아니요 | 응답을 사람이 아니라 코드가 읽는다면 JSON 객체를 요청하세요. |
요금
입력 $2 / 출력 $6 100만 토큰당; 200K 토큰 이상 프롬프트: 입력 $4 / 출력 $12
총 입력에는 캐시된 토큰이 포함됩니다. 입력이 200,000 토큰 이상이면 해당 요청의 입력, 캐시 입력, 출력 전체에 장문 컨텍스트 요금이 적용되고, 그 미만은 표준 요금이 적용됩니다. 출력에는 추론 토큰이 포함됩니다. 제출 전에 예산을 확인하세요. 최초 보류 금액은 캐시 절감을 가정하지 않고 산정하며, 정산 시 실측 사용량과의 차액을 돌려드립니다.
활용 사례
설명하는 대신 캡처를 건넵니다
detail을 high로 둔 스크린샷을 질문과 같은 사용자 메시지에 넣어 보냅니다. 모델은 픽셀에서 읽습니다. 잘못 붙은 축 라벨, 사라진 행, 가장자리에서 잘린 프레임을 봅니다. 한 시간 차이로 찍은 두 장을 같은 턴에 두면, 손으로 옮겨 적은 요약이 아니라 어떤 수치가 움직였는지를 바로 물을 수 있습니다.
책 한 권 분량을 한 번의 호출로 씁니다
max_tokens를 450,000 가까이 올리면 마이그레이션 안내서든 긴 보고서든 테스트 묶음 전체든 이어 붙인 사슬이 아니라 하나의 응답으로 돌아옵니다. 이음매마다 맥락이 조금씩 빠져나가지도 않습니다. stream: true를 켜면 글이 쓰이는 동안 텍스트가 도착합니다.
도구 루프를 읽을 수 있게 유지합니다
함수 정의를 최대 128개까지 선언하고 tool_choice와 짝지은 다음, 결과는 다음 턴에 tool 역할 메시지로 돌려줍니다. 루프 전체에서 reasoning_effort를 고정하면 반복마다 달라지는 것은 대화뿐이고, 루프가 어긋났을 때 추적 기록을 읽을 가치가 생깁니다.
읽는 쪽이 사람이 아니라 코드일 때
response_format으로 JSON 객체를 요청하고 temperature를 0으로 낮추면 파서가 그대로 받을 수 있는 구조로 답이 옵니다. 여기에 이미지 파트를 붙이면 영수증이나 도표, 양식 캡처에서 옮겨 적는 단계 없이 바로 값을 뽑아낼 수 있습니다.
프롬프트 가이드 및 실전 팁
이미지를 질문이 있는 자리에 둡니다
사진을 먼저 보내고 질문을 나중에 보내는 대신, text 파트와 image_url 파트를 같은 사용자 메시지 안에 넣으세요. 거기서 무엇을 읽어 주기를 바라는지, 숫자인지 차이인지 판정인지 적고, 패널이 여러 개라면 어느 것인지 지목하세요. detail의 high가 사는 것은 해상도이지 주의의 방향이 아닙니다.
POST https://api.spicyapi.ai/v1/chat/completions
{
"model": "xai/grok-4.6",
"messages": [
{
"role": "user",
"content": [
{"type": "text", "text": "These two captures are an hour apart on the same dashboard. Which metric regressed, and what in the second image explains it?"},
{"type": "image_url", "image_url": {"url": "https://cdn.spicyapi.ai/models/examples/inputs/c681580c3c6a0b63.jpeg", "detail": "high"}},
{"type": "image_url", "image_url": {"url": "https://cdn.spicyapi.ai/models/examples/inputs/59f0bc6291069978.jpeg", "detail": "high"}}
]
}
],
"reasoning_effort": "high",
"max_tokens": 4000
}
추론은 답이 달라지는 곳에 씁니다
reasoning_effort의 기본값은 high이므로, 필드를 빼는 순간 이미 더 신중한 쪽의 설정과 그에 딸린 출력 토큰을 사게 됩니다. 한 번에 맞아야 하는 작업에는 xhigh를 남겨 두고, 보통의 검토에는 medium을, 짧고 기계적인 턴에는 low를 쓰세요. 추론은 출력으로 과금되므로 답변 자체와 상한을 나눠 씁니다. xhigh에 넉넉한 상한을 붙이면 두 가지 의미 모두에서 큰 요청이 됩니다.
요청이 어느 구간에 떨어지는지 봅니다
입력과 캐시된 입력은 합쳐서 계산하고, 200,000 토큰부터는 경계를 넘은 부분만이 아니라 요청 전체가 장문 컨텍스트 구간으로 과금됩니다. 대화 기록을 210,000 토큰에서 190,000으로 줄이면 지운 토큰 값보다 더 많은 것이 바뀐다는 뜻입니다. 호출 전에 잡아 두는 보류 금액은 캐시 절감을 전혀 가정하지 않고 산정하며, 정산 시 실측과의 차액을 돌려드립니다. 앞에 보이는 숫자는 가격이 아니라 상한입니다.
API 빠른 시작
curl --fail-with-body -sN https://api.spicyapi.ai/v1/chat/completions \
-H "Authorization: Bearer $SPICY_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: $(uuidgen)" \
-d '{
"model": "xai/grok-4.6/chat",
"messages": [
{
"role": "user",
"content": "Summarise the following release notes into three bullet points."
}
],
"stream": true
}' \
| jq --unbuffered -Rrj 'select(startswith("data: ")) | .[6:] | select(. != "[DONE]") | fromjson | if .error then "\n[error] \(.error.message)\n" else (.choices[0].delta.content? // empty) end'
인증, 전체 스키마, 폴링과 오류 처리는 API 레퍼런스에서 확인하세요.










