API documentation
Public, read-only JSON API for approved Device Tree files. Use it to integrate the catalog with a bot, app or website.
Base URL
https://dtbvault.comAuthentication
The read endpoints work without a key (limited per IP). For higher limits and bot use, request a personal key and send it on every request as the x-api-key header (or Authorization: Bearer). An approved key also lets you download without the per-IP guest cap.
Request an API keyEndpoints
GET/api/files
Paginated list of approved files.
GET/api/files/{slug}
A single approved file by its public slug.
GET/api/downloads/{slug}
Downloads the file binary. With a valid key it ignores the per-IP guest download cap.
Query parameters
| Parameter | Type | Description |
|---|---|---|
| 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) |
Response
Each file is returned as:
{
"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 }
}Response fields
| Field | Type | Description |
|---|---|---|
| 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 |
Rate limits and errors
Without a key: 60 requests per minute per IP. With an approved key: the per-minute limit and daily quota set by the administrator. Every response includes X-RateLimit-Limit, X-RateLimit-Remaining and X-RateLimit-Reset.
- 401 Unauthorized: the key is unknown, pending, rejected or revoked.
- 429 with error rateLimited: too many requests this minute (see Retry-After).
- 429 with error quotaExceeded: the daily quota was reached.
Examples
# 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.dtbHow to get a key
- Open the API access page in your account and submit a request describing where the key will be used.
- An administrator reviews the request and, on approval, sets your rate limit and daily quota.
- Copy your key from the same page and send it in the x-api-key header.