Integrate NexWall Wallpapers in Your App
Use these RESTful endpoints to fetch category-wise 4K wallpaper data for Android, Flutter, iOS, React Native, or Web apps. All developer API requests require your Bearer API key.
Authentication & Headers
Accept: application/json in your requests, otherwise Laravel might return HTML errors instead of JSON data.
Copy your API key from the developer dashboard and send it in the Authorization header.
Authorization: Bearer YOUR_API_KEY
Accept: application/json
Endpoints
| Method | Path | Use |
|---|---|---|
| GET | https://nexwall.kodnextech.com/api/developer/v1/categories | List active categories available for your plan. |
| GET | https://nexwall.kodnextech.com/api/developer/v1/wallpapers | Paginated wallpapers. Supports page, per_page, category_id, search, sort, and type. |
| GET | https://nexwall.kodnextech.com/api/developer/v1/categories/1/wallpapers | Fetch wallpapers from one category. |
| GET | https://nexwall.kodnextech.com/api/developer/v1/wallpapers/1 | Fetch one wallpaper by ID. |
Get All Categories
Fetch all active wallpaper categories. The response format provides the id which you can use to filter wallpapers.
GET https://nexwall.kodnextech.com/api/developer/v1/categories
{
"data": [
{
"id": 21,
"name": "Devotional & Spiritual",
"slug": "devotional-spiritual",
"cover_image_url": "https://cdn.nexwall.../cover.webp",
"wallpaper_count": 431,
"is_premium": false
}
]
}
Filter Wallpapers by Category
You can pass category_id as a query parameter to get wallpapers for a specific category.
GET https://nexwall.kodnextech.com/api/developer/v1/wallpapers?category_id=32&per_page=50
Search Wallpapers
You can use the search query parameter to find wallpapers by their tags or keywords. The search requires a minimum of 2 characters.
GET https://nexwall.kodnextech.com/api/developer/v1/wallpapers?search=dark&per_page=50
Sorting
By default, wallpapers are sorted by newest. You can change this using the sort parameter. Accepted values are: newest, popular (most downloaded), oldest, or random.
GET https://nexwall.kodnextech.com/api/developer/v1/wallpapers?sort=popular&per_page=50
Pagination
To load the next set of wallpapers (e.g. for Infinite Scroll or "Load More" buttons), pass the page parameter. The default per_page limit is 50, but you can request up to 100 at a time.
GET https://nexwall.kodnextech.com/api/developer/v1/wallpapers?per_page=50&page=2
The API response includes current_page and last_page fields to help you build pagination flows.
Integration Examples
cURL
curl -X GET "https://nexwall.kodnextech.com/api/developer/v1/wallpapers?per_page=20" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Accept: application/json"
Flutter / Dart
import 'package:http/http.dart' as http;
import 'dart:convert';
Future<Map<String, dynamic>> fetchWallpapers() async {
final response = await http.get(
Uri.parse('https://nexwall.kodnextech.com/api/developer/v1/wallpapers?per_page=20'),
headers: {
'Authorization': 'Bearer YOUR_API_KEY',
'Accept': 'application/json',
},
);
if (response.statusCode == 200) {
return jsonDecode(response.body);
} else {
throw Exception('API request failed with status: ${response.statusCode}');
}
}
Android Kotlin (OkHttp / Retrofit)
val request = Request.Builder()
.url("https://nexwall.kodnextech.com/api/developer/v1/wallpapers?per_page=20")
.addHeader("Authorization", "Bearer YOUR_API_KEY")
.addHeader("Accept", "application/json")
.build()
OkHttpClient().newCall(request).enqueue(object : Callback {
override fun onFailure(call: Call, e: IOException) {
e.printStackTrace()
}
override fun onResponse(call: Call, response: Response) {
val json = response.body?.string()
println("NexWall Wallpapers: $json")
}
})
JavaScript / React Native / Node.js
async function fetchWallpapers() {
const res = await fetch('https://nexwall.kodnextech.com/api/developer/v1/wallpapers?per_page=20', {
method: 'GET',
headers: {
'Authorization': 'Bearer YOUR_API_KEY',
'Accept': 'application/json'
}
});
if (!res.ok) throw new Error(`NexWall API Error: ${res.status}`);
const data = await res.json();
return data;
}
Python (requests)
import requests
headers = {
"Authorization": "Bearer YOUR_API_KEY",
"Accept": "application/json"
}
response = requests.get("https://nexwall.kodnextech.com/api/developer/v1/wallpapers?per_page=20", headers=headers)
if response.status_code == 200:
wallpapers = response.json()
print("Fetched", len(wallpapers["data"]), "wallpapers")
else:
print("Error:", response.status_code, response.text)
PHP / Laravel (Http Client)
use Illuminate\Support\Facades\Http;
$response = Http::withToken('YOUR_API_KEY')
->acceptJson()
->get('https://nexwall.kodnextech.com/api/developer/v1/wallpapers', [
'per_page' => 20,
'category_id' => 12,
]);
if ($response->successful()) {
$wallpapers = $response->json('data');
}
Plan Limits & Response Headers
- Free: 100 requests/day, free categories only, no premium, no live wallpapers.
- Pro: 10,000 requests/day, all categories & 4K wallpapers, no live wallpapers.
- Ultra: 50,000 requests/day, all categories + exclusive live video wallpapers.
HTTP Rate Limiting Headers
| Header | Description |
|---|---|
| X-RateLimit-Limit | The total daily request limit for your current plan (e.g. 100, 10000, 50000). |
| X-RateLimit-Remaining | Remaining requests allowed today before rate limiting kicks in. |
| X-Developer-Api-Plan | Your active subscription plan (free, premium, ultra). |
HTTP Status Codes & Error Handling
| Status | Reason | How to Resolve |
|---|---|---|
| 200 OK | Success | Request processed successfully. |
| 401 Unauthorized | Invalid or missing API key | Ensure Authorization: Bearer YOUR_API_KEY header is present. |
| 403 Forbidden | Feature not allowed on plan | Live wallpapers require Ultra plan. Upgrade on your dashboard. |
| 429 Too Many Requests | Daily rate limit exceeded | Quota resets at midnight UTC, or upgrade to Pro/Ultra for immediate limit increase. |
| 422 Unprocessable | Validation error | Check query parameters (e.g. search query must be at least 2 chars). |
Postman Collection
Import our ready-to-use Postman Collection to test all endpoints (/categories, /wallpapers, filters, search, and details) in seconds.
- Click Download Postman Collection above.
- Open Postman → Click Import (top left) → Drag and drop the downloaded JSON file.
- In Postman Collection variables, set
API_KEYto your developer token.