Chat = grok-4.5 only. Images = grok-imagine-image. Base URL https://grok.hyeon.space/v1.
Active accounts 16 (9–20) — need more capacity
Lights: red ≤8 · orange 9–20 · yellow 21–40 · green ≥41
Active keys 9 · requests today 49 · last 1d 49
export OPENAI_BASE_URL=https://grok.hyeon.space/v1
export OPENAI_API_KEY=gk_YOUR_KEY
curl $OPENAI_BASE_URL/chat/completions \
-H "Authorization: Bearer $OPENAI_API_KEY" \
-H "Content-Type: application/json" \
-d '{"model":"grok-4.5","messages":[{"role":"user","content":"hi"}]}'
curl $OPENAI_BASE_URL/images/generations \
-H "Authorization: Bearer $OPENAI_API_KEY" \
-H "Content-Type: application/json" \
-d '{"model":"grok-imagine-image","prompt":"a red fox in snow","size":"1024x1024"}'
| Feature | Status |
|---|---|
POST /v1/chat/completions | Yes (stream OK) |
GET /v1/models | Yes (filtered list) |
POST /v1/images/generations | Yes → xAI imagine |
POST /v1/videos/generations|edits|extensions | Yes (async poll) |
GET /v1/videos/:id | Yes |
Bearer / X-API-Key | Yes |
OpenAI model aliases (gpt-4o…) | Mapped → grok-4.5 |
dall-e-3 alias | Mapped → grok-imagine-image |
| Assistants / fine-tunes / audio / embeddings | No |
| Other Grok chat models (4.3 / 4.20…) | Rejected |
baseURL=https://grok.hyeon.space/v1.Only grok-4.5. Aliases gpt-4o, grok-4, etc. rewrite to it. Other Grok IDs → 400.
{"model":"grok-4.5","messages":[{"role":"user","content":"ping"}],"stream":false}
Async xAI Imagine video. Submit → poll /v1/videos/:id.
// generate
curl $OPENAI_BASE_URL/videos/generations \
-H "Authorization: Bearer $OPENAI_API_KEY" \
-H "Content-Type: application/json" \
-d '{"model":"grok-imagine-video","prompt":"cat walking in rain","duration":3,"aspect_ratio":"16:9"}'
// status
curl $OPENAI_BASE_URL/videos/REQUEST_ID -H "Authorization: Bearer $OPENAI_API_KEY"
// edit
curl $OPENAI_BASE_URL/videos/edits \
-H "Authorization: Bearer $OPENAI_API_KEY" \
-H "Content-Type: application/json" \
-d '{"model":"grok-imagine-video","prompt":"add neon signs","video":{"url":"https://...mp4"}}'
Models: grok-imagine-video, grok-imagine-video-1.5. Extensions: POST /v1/videos/extensions.
OpenAI-style /v1/images/generations.
{
"model": "grok-imagine-image",
"prompt": "minimal logo, black fox, white bg",
"n": 1,
"size": "1024x1024",
"response_format": "url"
}
Also: grok-imagine-image-quality, alias dall-e-3.
grok-4.5 grok-imagine-image grok-imagine-image-quality grok-imagine-video grok-imagine-video-1.5
Each key has a public alias used only for anonymous stats (never the secret key).
curl -X POST https://grok.hyeon.space/admin/keys \
-H "Authorization: Bearer $ADMIN_KEY" \
-H "Content-Type: application/json" \
-d '{"label":"laptop","alias":"laptop","dailyLimit":500,"expiresDays":30}'
# CLI
npm run keys -- issue --label laptop --alias laptop --daily 500 --days 30
Public JSON: /api/public-stats
| 401 | bad/revoked/expired key |
| 429 | daily limit |
| 400 | unsupported model / missing fields |
| 502 | upstream pool/xAI error |