# 🔧 GonzoProxy API Documentation

Клиентская документация

Версия: 1.2\
Статус: Production\
Базовый URL:\
`https://api.gonzoproxy.app/functions/v1/proxy-api`

***

## 1. Авторизация

Все запросы к API требуют заголовок `x-api-key`.

Как получить API-ключ:

1. Откройте личный кабинет GonzoProxy.
2. Перейдите в раздел **Settings → API Keys**.
3. Создайте новый ключ.
4. Используйте его во всех API-запросах.

Обязательный заголовок:

```
x-api-key: <ваш_ключ>
```

Пример запроса:

```bash
curl -sS \
  -H "x-api-key: sk_123456789" \
  "https://api.gonzoproxy.app/functions/v1/proxy-api/countries"
```

***

## 2. Генерация прокси

### Endpoint

Метод: `POST`\
Путь: `/generate`

Полный URL:

```
https://api.gonzoproxy.app/functions/v1/proxy-api/generate
```

***

## 2.1 Параметры запроса

Передаются в JSON-теле запроса.

### Обязательный параметр

country\
Тип: string

ISO-код страны (`US`) или полное название (`United States`)

***

### Необязательные параметры

state\
Тип: string\
Штат или регион

Пример:

```
California
New York
```

city\
Тип: string\
Город

Пример:

```
Los Angeles
Miami
```

zip\
Тип: string\
Почтовый индекс

Пример:

```
90001
10001
```

isp\
Тип: string\
Название интернет-провайдера

Пример:

```
Comcast
Verizon
AT&T
```

sd\_code\
Тип: number\
Код региона (subdivision code)

***

count\
Тип: number

Количество генерируемых прокси.

Диапазон:

```
1 — 1000
```

По умолчанию:

```
1
```

***

rotation\
Тип: boolean

Тип ротации IP.

```
true  → новый IP при каждом подключении
false → липкая сессия (sticky session)
```

По умолчанию:

```
false
```

***

ttl\
Тип: number

Время жизни сессии.

Пример:

```
12
24
48
```

***

ttl\_unit\
Тип: string

Единица измерения TTL.

Возможные значения:

```
hours / h
minutes / m
seconds / s
```

По умолчанию:

```
hours
```

***

format\
Тип: string

Формат строки прокси в ответе.

По умолчанию:

```
user:pass@ip:port
```

Поддерживаемые форматы:

```
user:pass@ip:port
ip:port:user:pass        или 1
user:pass:ip:port        или 2
ip:port@user:pass        или 3
```

***

login\
Тип: string

Позволяет задать собственный логин.

***

password\
Тип: string

Позволяет задать собственный пароль.

***

rg\_id\
Тип: string

Дополнительный параметр sticky-сессии.

***

session\_rand\
Тип: string

Random seed для sticky-сессии.

***

## 2.2 Пример запроса

```bash
curl -sS -X POST \
  -H "x-api-key: sk_123456789" \
  -H "Content-Type: application/json" \
  "https://api.gonzoproxy.app/functions/v1/proxy-api/generate" \
  -d '{
    "country": "US",
    "state": "California",
    "zip": "90001",
    "count": 2,
    "rotation": false,
    "ttl": 12,
    "ttl_unit": "hours",
    "format": "1"
  }'
```

***

## 2.3 Пример ответа

```json
{
  "success": true,
  "proxies": [
    "209.145.63.244:10000:username_c_US_sd_123_zip_90001_s_123456ABC_ttl_12h:password",
    "209.145.63.244:10000:username_c_US_sd_123_zip_90001_s_654321XYZ_ttl_12h:password"
  ]
}
```

***

## 3. Справочники для фильтров

API позволяет получать доступные страны, регионы, города, ZIP-коды и интернет-провайдеров.

***

## 3.1 Получение списка стран

Метод:

```
GET
```

Endpoint:

```
/countries
```

Параметры:

```
не требуются
```

Пример запроса:

```bash
curl -sS \
  -H "x-api-key: sk_123456789" \
  "https://api.gonzoproxy.app/functions/v1/proxy-api/countries"
```

Пример ответа:

```json
{
  "countries": [
    {
      "country_code": "US",
      "country_name": "United States",
      "isps": [1783, 1902, 2553]
    }
  ]
}
```

***

## 3.2 Получение штатов или регионов

Метод:

```
GET
```

Endpoint:

```
/states
```

Обязательный параметр:

```
country
```

Пример запроса:

```
/states?country=US
```

Ответ:

```json
{
  "states": ["California", "New York"],
  "states_detailed": [
    { "state_name": "California", "subdivision_code": 123 },
    { "state_name": "New York", "subdivision_code": 456 }
  ]
}
```

***

## 3.3 Получение списка городов

Метод:

```
GET
```

Endpoint:

```
/cities
```

Обязательный параметр:

```
country
```

Необязательный:

```
state
```

Примеры:

```
/cities?country=US
/cities?country=US&state=New York
```

Ответ:

```json
{
  "cities": ["Los Angeles", "San Diego"]
}
```

***

## 3.4 Получение ZIP-кодов

Метод:

```
GET
```

Endpoint:

```
/zips
```

Обязательный параметр:

```
country
```

Необязательные:

```
state
city
```

Примеры:

```
/zips?country=US
/zips?country=US&state=New York&city=New York
```

Ответ:

```json
{
  "zips": ["10001", "10002"]
}
```

***

## 3.5 Получение интернет-провайдеров (ISP)

Метод:

```
GET
```

Endpoint:

```
/isps
```

Обязательный параметр:

```
country
```

Необязательные параметры:

```
state
city
```

Примеры:

```
/isps?country=US
/isps?country=US&state=New York&city=New York
```

Ответ:

```json
{
  "isps": ["Comcast", "Verizon"],
  "isps_detailed": [
    { "isp_name": "Comcast", "isp_code": 1783 },
    { "isp_name": "Verizon", "isp_code": 1902 }
  ]
}
```

***

## 4. Коды ответов API

```
200  — успешный запрос
400  — ошибка параметров запроса
401  — отсутствует или пустой x-api-key
403  — неверный или отключенный API-ключ
404  — неверный адрес запроса
429  — превышен лимит запросов
500  — внутренняя ошибка сервиса
```

Формат ошибки:

```json
{
  "error": "Описание ошибки"
}
```

***

## 5. Ограничение запросов

Rate limit применяется к:

```
POST /generate
```

Текущий лимит:

```
100 запросов в минуту на один API-ключ
```

***

## 6. Совместимость

Документация соответствует текущей версии API:

```
1.2
```

API может получать обновления без изменения основной структуры.

<br>


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://help.gonzoproxy.com/ru/api/gonzoproxy-api-documentation.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
