# Grok API через cURL

Минимальная рабочая интеграция Grok API Dev через cURL: обычный запрос, JSON-ответ, streaming и диагностика HTTP-ошибок.

## Подготовка API-ключа

```bash
curl --version
```

```bash
export GROK_API_DEV_KEY="sk-lg-YOUR_API_KEY"
```

## Первый запрос к Grok API Dev

```bash
curl --fail-with-body https://api.llm-gate.tech/v1/responses \
  -H "Authorization: Bearer $GROK_API_DEV_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "grok-4.5",
    "input": "Explain HTTP in two sentences"
  }'
```

## Формат ответа

```json
{
  "id": "resp_01abc",
  "status": "completed",
  "output": [
    {
      "type": "message",
      "role": "assistant",
      "content": [
        { "type": "output_text", "text": "HTTP is..." }
      ]
    }
  ],
  "usage": {
    "input_tokens": 12,
    "output_tokens": 34,
    "total_tokens": 46
  }
}
```

## Streaming

```bash
curl -N --fail-with-body https://api.llm-gate.tech/v1/responses \
  -H "Authorization: Bearer $GROK_API_DEV_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "grok-4.5",
    "input": "Write a short example",
    "stream": true
  }'
```

## Обработка ошибок

Флаги --fail-with-body и -i помогут увидеть HTTP-статус, заголовки и JSON-тело ошибки.

```bash
curl -i --fail-with-body https://api.llm-gate.tech/v1/responses \
  -H "Authorization: Bearer $GROK_API_DEV_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "grok-4.5",
    "input": "Test request"
  }'
```

- 401: проверьте GROK_API_DEV_KEY и заголовок Authorization.
- 404: проверьте ID модели и путь /v1/responses.
- 429: дождитесь Retry-After и уменьшите частоту запросов.
- 500, 504 или 529: ограниченно повторите запрос с backoff и jitter.

[Полный справочник ошибок API](https://grok-api.dev/ru/docs/errors)

## Связанные страницы

- [Messages API](https://grok-api.dev/ru/docs/messages)
- [Streaming API](https://grok-api.dev/ru/docs/streaming)
- [Python](https://grok-api.dev/ru/docs/python)
- [TypeScript](https://grok-api.dev/ru/docs/typescript)
