Документация API
Публичный JSON API только для чтения одобренных файлов Device Tree. Используйте его для интеграции каталога с ботом, приложением или сайтом.
Базовый URL
https://dtbvault.comАутентификация
Эндпоинты чтения работают без ключа (с лимитом по IP). Для повышенных лимитов и использования в ботах запросите персональный ключ и отправляйте его в каждом запросе в заголовке x-api-key (или Authorization: Bearer). Одобренный ключ также позволяет скачивать без гостевого лимита по IP.
Запросить ключ APIЭндпоинты
GET/api/files
Постраничный список одобренных файлов.
GET/api/files/{slug}
Один одобренный файл по его публичному slug.
GET/api/downloads/{slug}
Скачивает бинарный файл. С действительным ключом игнорирует гостевой лимит скачиваний по IP.
Параметры запроса
| Параметр | Тип | Описание |
|---|---|---|
| q | string | Full-text search (filename, console, etc.) |
| console | string | Filter by console name (e.g. R36S) |
| soc | string | Filter by SoC (e.g. RK3326) |
| type | dtb | dtbo | dts | Filter by file type |
| sort | recent | popular | name | Sort order (default: recent) |
| page | number | Page number (default: 1) |
| pageSize | number | Items per page (default: 50) |
Ответ
Каждый файл возвращается в виде:
{
"data": [
{
"slug": "rk3326-r35s-linux-2N2QPEt6",
"filename": "rk3326-r35s-linux.dtb",
"type": "dtb",
"console": "R36S",
"soc": "RK3326",
"boardRevision": "Y3506_V03_20241210 2509",
"sizeBytes": 89856,
"totalDownloads": 5,
"uploadedAt": "2026-06-21T10:00:00.000Z",
"url": "https://dtbvault.com/en/file/rk3326-r35s-linux-2N2QPEt6",
"downloadUrl": "https://dtbvault.com/api/downloads/rk3326-r35s-linux-2N2QPEt6"
}
],
"pagination": { "page": 1, "pageSize": 50, "total": 1, "totalPages": 1 }
}Поля ответа
| Поле | Тип | Описание |
|---|---|---|
| slug | string | Public identifier used in URLs |
| filename | string | Original file name |
| type | string | dtb, dtbo or dts |
| console | string | Console name |
| soc | string | null | System on chip |
| boardRevision | string | null | Board revision |
| sizeBytes | number | File size in bytes |
| totalDownloads | number | Total downloads |
| uploadedAt | string (ISO) | Upload timestamp |
| url | string | Web page for the file |
| downloadUrl | string | Direct download endpoint |
Лимиты и ошибки
Без ключа: 60 запросов в минуту на IP. С одобренным ключом: лимит в минуту и суточная квота, заданные администратором. Каждый ответ содержит X-RateLimit-Limit, X-RateLimit-Remaining и X-RateLimit-Reset.
- 401 Unauthorized: ключ неизвестен, ожидает решения, отклонён или отозван.
- 429 с ошибкой rateLimited: слишком много запросов за эту минуту (см. Retry-After).
- 429 с ошибкой quotaExceeded: достигнута суточная квота.
Примеры
# List files
curl "https://dtbvault.com/api/files?console=R36S&sort=popular&pageSize=10"
# A single file
curl "https://dtbvault.com/api/files/rk3326-r35s-linux-2N2QPEt6"
# With an API key (higher limits, no guest download cap)
curl -H "x-api-key: YOUR_KEY" "https://dtbvault.com/api/files"
# Download the binary
curl -H "x-api-key: YOUR_KEY" \
"https://dtbvault.com/api/downloads/rk3326-r35s-linux-2N2QPEt6" -o file.dtbКак получить ключ
- Откройте страницу доступа к API в своём аккаунте и отправьте запрос с описанием, где будет использоваться ключ.
- Администратор рассматривает запрос и при одобрении устанавливает ваш лимит в минуту и суточную квоту.
- Скопируйте ключ на той же странице и отправляйте его в заголовке x-api-key.