Аутентификация
Все запросы к UnoAPI требуют аутентификации через API-ключ в заголовке Authorization.
Получение API-ключа
Заголовок раздела «Получение API-ключа»- Зарегистрируйтесь в личном кабинете
- Перейдите в раздел API Keys
- Нажмите Create New Key
- Скопируйте ключ — он будет показан только один раз
Использование ключа
Заголовок раздела «Использование ключа»Передавайте API-ключ в заголовке Authorization с префиксом Bearer:
Authorization: Bearer YOUR_API_KEYПримеры
Заголовок раздела «Примеры»# В командной строкеcurl https://proxy.unoapi.ru/v1/ipinfo/8.8.8.8 \ -H "Authorization: Bearer uno_live_abc123..."
# Или через переменную окруженияexport UNOAPI_KEY="uno_live_abc123..."curl https://proxy.unoapi.ru/v1/ipinfo/8.8.8.8 \ -H "Authorization: Bearer $UNOAPI_KEY"// Через переменную окружения (рекомендуется)const UNOAPI_KEY = process.env.UNOAPI_KEY;
const response = await fetch('https://proxy.unoapi.ru/v1/ipinfo/8.8.8.8', { headers: { 'Authorization': `Bearer ${UNOAPI_KEY}` }});
// Создание переиспользуемого клиентаclass UnoAPIClient { private apiKey: string; private baseUrl = 'https://proxy.unoapi.ru';
constructor(apiKey: string) { this.apiKey = apiKey; }
async request(path: string, options?: RequestInit) { return fetch(`${this.baseUrl}${path}`, { ...options, headers: { 'Authorization': `Bearer ${this.apiKey}`, ...options?.headers, }, }); }}
const client = new UnoAPIClient(process.env.UNOAPI_KEY!);import osimport requests
# Через переменную окружения (рекомендуется)UNOAPI_KEY = os.environ['UNOAPI_KEY']
response = requests.get( 'https://proxy.unoapi.ru/v1/ipinfo/8.8.8.8', headers={'Authorization': f'Bearer {UNOAPI_KEY}'})
# Создание сессии для переиспользованияclass UnoAPIClient: def __init__(self, api_key: str): self.session = requests.Session() self.session.headers['Authorization'] = f'Bearer {api_key}' self.base_url = 'https://proxy.unoapi.ru'
def get(self, path: str, **kwargs): return self.session.get(f'{self.base_url}{path}', **kwargs)
def post(self, path: str, **kwargs): return self.session.post(f'{self.base_url}{path}', **kwargs)
client = UnoAPIClient(os.environ['UNOAPI_KEY'])package main
import ( "net/http" "os")
// Через переменную окружения (рекомендуется)var apiKey = os.Getenv("UNOAPI_KEY")
// Создание клиента с автоматической аутентификациейtype UnoAPIClient struct { apiKey string baseURL string client *http.Client}
func NewClient(apiKey string) *UnoAPIClient { return &UnoAPIClient{ apiKey: apiKey, baseURL: "https://proxy.unoapi.ru", client: &http.Client{}, }}
func (c *UnoAPIClient) Do(req *http.Request) (*http.Response, error) { req.Header.Set("Authorization", "Bearer "+c.apiKey) return c.client.Do(req)}Формат ключа
Заголовок раздела «Формат ключа»API-ключи имеют следующий формат:
| Префикс | Среда | Описание |
|---|---|---|
uno_live_ | Production | Боевой ключ с тарификацией |
uno_test_ | Sandbox | Тестовый ключ (ограниченные данные) |
Безопасность
Заголовок раздела «Безопасность»Рекомендации
Заголовок раздела «Рекомендации»- Переменные окружения — храните ключ в
UNOAPI_KEY - Серверная сторона — используйте ключ только на бэкенде
- Ротация — периодически создавайте новый ключ
- .gitignore — добавьте
.envв игнорируемые файлы
Что НЕ делать
Заголовок раздела «Что НЕ делать»- ❌ Не передавайте ключ в URL (query параметры)
- ❌ Не включайте в клиентский JavaScript
- ❌ Не коммитьте в git-репозиторий
- ❌ Не отправляйте в чатах и email
Ошибки аутентификации
Заголовок раздела «Ошибки аутентификации»401 Unauthorized
Заголовок раздела «401 Unauthorized»Возвращается если:
- Заголовок
Authorizationотсутствует - Формат заголовка неверный (нет
Bearer) - API-ключ недействителен или отозван
{ "error": "unauthorized", "message": "Invalid or missing API key"}403 Forbidden
Заголовок раздела «403 Forbidden»Возвращается если:
- Ключ не имеет доступа к запрошенному эндпоинту
- Аккаунт заблокирован
- Тарифный план не позволяет использовать сервис
{ "error": "forbidden", "message": "Your plan does not include access to this endpoint"}Отзыв ключа
Заголовок раздела «Отзыв ключа»Если ключ скомпрометирован, немедленно отзовите его в личном кабинете:
- Перейдите в API Keys
- Найдите скомпрометированный ключ
- Нажмите Revoke
- Создайте новый ключ
- Обновите ключ во всех приложениях