API v4 · stable

REST API для разработчиков

Автоматизируй загрузку изображений, управляй альбомами и токенами через простой REST. Бесплатно до 1000 запросов в час.

120 мс avg response 99.9% uptime 47 CDN PoP 1000 req/час free

Начни за 3 шага

От регистрации до первой загрузки, пара минут без бюрократии.

STEP 01

Получи токен

Зарегистрируйся и создай API-ключ в /dashboard/tokens. Каждый ключ можно ограничить по scope.

Authorization: Bearer rcl_live_abc123xyz
STEP 02

Сделай первый запрос

Загрузи картинку через multipart/form-data. Поддерживается JPG, PNG, WebP, GIF, AVIF.

curl -X POST https://radikal.cloud/api/v4/upload \
  -H "Authorization: Bearer YOUR_TOKEN" \
  -F "source=@photo.jpg"
STEP 03

Получи прямую ссылку

В JSON-ответе будут все варианты ссылок: оригинал, превью, thumbnail и ссылка на удаление.

{
  "url": "https://radikal.cloud/i/aB3xY7.jpg",
  "delete_url": "..."
}

Endpoints

Все ресурсы доступны по корню https://radikal.cloud/api/v4

POST /api/v4/auth/token Создать новый access-токен

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

curl -X POST https://radikal.cloud/api/v4/auth/token \
  -H "Content-Type: application/json" \
  -d '{"email":"you@mail.ru","password":"***","scope":"upload"}'

Ответ

{
  "token": "rcl_live_abc123xyz",
  "expires_at": "2027-05-15T12:00:00Z",
  "scope": ["upload"]
}
GET /api/v4/auth/me Информация о текущем аккаунте

Пример

curl https://radikal.cloud/api/v4/auth/me \
  -H "Authorization: Bearer YOUR_TOKEN"

Ответ

{
  "id": 8142,
  "username": "developer",
  "plan": "pro",
  "requests_left": 9821
}
POST /api/v4/auth/refresh Обновить токен по refresh-key

Пример

curl -X POST https://radikal.cloud/api/v4/auth/refresh \
  -H "Authorization: Bearer REFRESH_KEY"
POST /api/v4/upload Загрузить изображение (multipart)

Пример

curl -X POST https://radikal.cloud/api/v4/upload \
  -H "Authorization: Bearer YOUR_TOKEN" \
  -F "source=@photo.jpg" \
  -F "album_id=42" \
  -F "expiration=PT24H"

Ответ

{
  "id": "aB3xY7",
  "url": "https://radikal.cloud/i/aB3xY7.jpg",
  "thumb": "https://radikal.cloud/i/aB3xY7.th.jpg",
  "delete_url": "https://radikal.cloud/del/abc123",
  "size": 428192,
  "width": 1920,
  "height": 1080
}
POST /api/v4/upload/url Загрузить по URL

Пример

curl -X POST https://radikal.cloud/api/v4/upload/url \
  -H "Authorization: Bearer YOUR_TOKEN" \
  -d '{"source":"https://example.com/cat.jpg"}'
GET /api/v4/images/{id} Получить инфо об изображении

Пример

curl https://radikal.cloud/api/v4/images/aB3xY7 \
  -H "Authorization: Bearer YOUR_TOKEN"
DELETE /api/v4/images/{id} Удалить изображение

Пример

curl -X DELETE https://radikal.cloud/api/v4/images/aB3xY7 \
  -H "Authorization: Bearer YOUR_TOKEN"
GET /api/v4/images Список своих изображений (paginated)

Пример

curl "https://radikal.cloud/api/v4/images?page=1&limit=50" \
  -H "Authorization: Bearer YOUR_TOKEN"
GET /api/v4/albums Список альбомов пользователя

Пример

curl https://radikal.cloud/api/v4/albums \
  -H "Authorization: Bearer YOUR_TOKEN"
POST /api/v4/albums Создать альбом

Пример

curl -X POST https://radikal.cloud/api/v4/albums \
  -H "Authorization: Bearer YOUR_TOKEN" \
  -d '{"name":"Trip 2026","privacy":"public"}'
PUT /api/v4/albums/{id}/images Добавить изображения в альбом

Пример

curl -X PUT https://radikal.cloud/api/v4/albums/42/images \
  -H "Authorization: Bearer YOUR_TOKEN" \
  -d '{"image_ids":["aB3xY7","cD4zW8"]}'
DELETE /api/v4/albums/{id} Удалить альбом

Пример

curl -X DELETE https://radikal.cloud/api/v4/albums/42 \
  -H "Authorization: Bearer YOUR_TOKEN"
GET /api/v4/tokens Список активных токенов

Пример

curl https://radikal.cloud/api/v4/tokens \
  -H "Authorization: Bearer YOUR_TOKEN"
POST /api/v4/tokens Создать новый токен со scope

Пример

curl -X POST https://radikal.cloud/api/v4/tokens \
  -H "Authorization: Bearer YOUR_TOKEN" \
  -d '{"name":"CI bot","scope":["upload","read"]}'
DELETE /api/v4/tokens/{id} Отозвать токен

Пример

curl -X DELETE https://radikal.cloud/api/v4/tokens/17 \
  -H "Authorization: Bearer YOUR_TOKEN"
GET /api/v4/stats Статистика использования API

Пример

curl https://radikal.cloud/api/v4/stats \
  -H "Authorization: Bearer YOUR_TOKEN"
POST /api/v4/webhooks Зарегистрировать webhook

Пример

curl -X POST https://radikal.cloud/api/v4/webhooks \
  -H "Authorization: Bearer YOUR_TOKEN" \
  -d '{"url":"https://your.app/hook","events":["image.uploaded","image.deleted"]}'
GET /api/v4/webhooks Список webhook'ов

Пример

curl https://radikal.cloud/api/v4/webhooks \
  -H "Authorization: Bearer YOUR_TOKEN"
DELETE /api/v4/webhooks/{id} Удалить webhook

Пример

curl -X DELETE https://radikal.cloud/api/v4/webhooks/3 \
  -H "Authorization: Bearer YOUR_TOKEN"

Готовые библиотеки

Официальные SDK с типизацией, авто-ретраями и потоковой загрузкой.

cURL
Универсально, без зависимостей

Лимиты по тарифам

Бесплатного достаточно для большинства pet-проектов. Pro даёт батчи и приоритет.

Параметр Free Pro Business
Запросов в час 1 000 10 000 безлимит
Размер файла 50 MB 200 MB 1 GB
Конкурентные загрузки 5 25 безлимит
Batch upload нет 50 файлов 500 файлов
Webhooks 0 5 50
Приоритет CDN нет +20% приоритет
Retention навсегда навсегда навсегда
SLA best effort 99.9% 99.99%

Коды ошибок

Все ответы возвращают JSON с полями error.code и error.message.

200
OK
Запрос успешно обработан, тело содержит результат.
201
Created
Ресурс успешно создан (после upload, create album).
400
Bad Request
Невалидные параметры или испорченное тело запроса.
401
Unauthorized
Отсутствует или невалидный токен в Authorization-заголовке.
403
Forbidden
У токена нет нужного scope или доступа к ресурсу.
404
Not Found
Изображение, альбом или токен не существуют.
409
Conflict
Дубликат: такой ресурс уже создан или конфликт состояния.
413
Payload Too Large
Файл превышает лимит тарифа (50/200/1024 MB).
429
Too Many Requests
Превышен rate-limit. Заголовок Retry-After подскажет паузу.
500
Internal Server Error
Что-то сломалось у нас. Попробуй повторить запрос.
503
Service Unavailable
Кратковременное обслуживание или перегрузка ноды.

Готов автоматизировать?

Создай API-ключ за 30 секунд и подключи Radikal.cloud к своему боту, парсеру, CMS или мобильному приложению.