Developer API
Back to homepageIf you want to integrate LumiaDB into your applications, you've come to the right place. Our firmware collection is hosted on the Internet Archive, but the files are scattered across multiple Archive items. The LumiaDB API simplifies this by providing a stable endpoint that searches across all these locations for you.
This allows you to build tools, such as an app that automatically downloads and flashes firmware, without worrying about where the files are stored or if the direct links change. The API uses the exact same logic as the direct download buttons on this website.
API Endpoint
All API requests should be made to the following base URL:
https://api.lumiadb.com
The API is designed for retrieving files when you already know the filename. It does not currently support searching for devices or listing available files. All successful requests will result in an HTTP 200 OK response containing the requested file. Unsuccessful requests will return an HTTP 404 Not Found error.
Response Codes
| Status | Description |
|---|---|
| 200 OK | Success. The request was successful and the file download will begin immediately. |
| 404 Not Found | The requested file or model could not be found. Please check your filename and model parameters. |
| 500 Error | An internal server error occurred. Please try again later. |
Usage & Endpoints
1. FFU Files
To get a download link for a specific firmware (FFU) file, use the following structure:
/<model>/<filename>
<model>: The device model, e.g.,RM-1085.<filename>: The exact firmware filename.
Example:
https://api.lumiadb.com/RM-1085/RM1085_1078.0053.10586.13169.12742.034EE8_retail_prod_signed.ffu
2. Emergency Files
Emergency files for a specific model are bundled into a single .zip archive. The filename is the model name itself, with a .zip extension.
/<model>/<model>.zip
Example:
https://api.lumiadb.com/RM-1085/RM-1085.zip
3. Engineering SBL3 Files
Engineering SBL3 files are located under the /SBL3/ path. The filename specifies the compatible model(s).
/SBL3/<sbl3-filename>
Available Files:
Engineering-SBL3-Lumia-1020.binEngineering-SBL3-Lumia-520-620-625-720-1320.binEngineering-SBL3-Lumia-810.binEngineering-SBL3-Lumia-820.binEngineering-SBL3-Lumia-822.binEngineering-SBL3-Lumia-920-928.binEngineering-SBL3-Lumia-925.bin
Example:
https://api.luminadb.com/SBL3/Engineering-SBL3-Lumia-1020.bin
4. Full Database Access (JSON)
Since the API does not support searching, developers can parse our raw database file to discover available firmware. This file is a comprehensive JSON dataset containing device information, product codes, and filenames.
File URL: https://lumiadb.com/database.json
File Structure
The database is structured as a JSON array. Below is an example of a single object representing one device variant:
{
"manufacturer": "Microsoft",
"hardwareModel": "RM-1109",
"phoneModel": "Lumia 640 Dual SIM DTV",
"variant": "Brazil",
"image": "/images/lumia640.png",
"productCodes": [
"059X150",
"059X207"
],
"specs": {
"released": "March 2015",
"SoC": "Snapdragon 400",
"GPU": "Adreno 305",
"RAM": "1GB",
"storage": "8GB",
"display": "5.0\" IPS LCD (720x1280)",
"camera": "8MP rear + 1MP front",
"battery": "2500 mAh",
"dimensions": "141.3 x 72.2 x 8.8 mm"
},
"firmwares": [
{
"packageTitle": "RM-1109 VAR LTA BR CV",
"firmware": "02166.00000.15103.05001",
"os": "Windows Phone 8.1 Update 2 - 8.10.15148",
"productCode": "059X150",
"ffuFilename": "RM1109_02177.00000.15184.36002_RETAIL_prod_signed_1000_0247E9_000-BR.ffu"
},
{
"packageTitle": "RM-1109 VAR LTA BR NDB",
"firmware": "02177.00000.15184.36002",
"os": "Windows Phone 8.1 Update 2 - 8.10.15148",
"productCode": "059X207",
"ffuFilename": "RM1109_02177.00000.15184.36002_RETAIL_prod_signed_1002_02476A_000-BR.ffu"
}
]
}
Key Information Provided
You can use this file to build search functionality in your own application by filtering for the following fields:
| Field Name | Description |
|---|---|
hardwareModel |
The technical model identifier (e.g., RM-1109). Used as the first parameter in API calls. |
phoneModel |
The commercial name of the device (e.g., Lumia 640 Dual SIM DTV). |
firmwares |
An array containing all available firmware versions for this specific variant. |
firmwares[].ffuFilename |
The exact filename of the FFU. This is the value required for the API download link. |
firmwares[].productCode |
The unique 7-character product code (e.g., 059X150). Essential for matching specific variants. |
Important Note on Availability: We do not have files for every single product code. If a specific product code is missing in the database, we recommend implementing a fallback strategy in your application. For example, you can fallback to a "Global" firmware variant or select any other available firmware for the same hardwareModel to ensure the device can still be flashed.
Integration Example
The following JavaScript snippet demonstrates how to fetch the database, find the correct FFU file for a given Product Code, and construct the final download URL.
// 1. Define your target device and product code
const targetProductCode = '059X150';
// 2. Fetch the database
fetch('https://lumiadb.com/database.json')
.then(response => response.json())
.then(data => {
// 3. Find the device entry that contains this product code
const device = data.find(item =>
item.firmwares && item.firmwares.some(fw => fw.productCode === targetProductCode)
);
if (device) {
// 4. Extract the specific firmware details
const firmware = device.firmwares.find(fw => fw.productCode === targetProductCode);
// 5. Construct the download URL: https://api.lumiadb.com/{model}/{filename}
const downloadUrl = `https://api.lumiadb.com/${device.hardwareModel}/${firmware.ffuFilename}`;
console.log('Download URL found:', downloadUrl);
} else {
console.error('Product code not found. Attempting fallback...');
// Implement fallback logic here (e.g., search by hardwareModel only)
}
})
.catch(err => console.error('Error fetching database:', err));
Rate Limiting & Fair Use
Currently, there are no strict rate limits on the API. However, we ask that you use it fairly and responsibly. Please implement caching in your application where appropriate and avoid making an excessive number of requests in a short period. We reserve the right to block any IP address or application that abuses the service.
Disclaimer
This API is provided "as is" without warranty of any kind. LumiaDB is not responsible for how you use the files obtained through this service. Flashing firmware carries inherent risks, and you assume full responsibility for any potential damage to your device.