Public Holidays API
Comprehensive GCC public holiday data for 6 countries across 4 years (2024–2027). Supports listing, date checking, next-holiday queries, and filtering by type and month. Covers public, Islamic, and national holidays.
/api/v1/holidaysTry it out
/api/v1/holidaysParameters
Code
curl -X GET "https://khaleejiapi.dev/api/v1/holidays?country=AE&year=2025" \ -H "Authorization: Bearer your_api_key"Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| country | string | Optional | GCC country code (AE, SA, KW, BH, OM, QA) |
| year | number | Optional | Year to list holidays for (2024–2027) |
| type | string | Optional | Filter by type: public, islamic, national |
| month | number | Optional | Filter by month (1–12) |
| date | string | Optional | Check if a specific date (YYYY-MM-DD or 'today') is a holiday |
| mode | string | Optional | Special modes: 'next' (upcoming holiday) or 'check' (date check) |
Query Modes
Standard Listing (default)
Returns all holidays for the specified country and year. Supports filtering by type and month. Includes total counts, next upcoming holiday, and available years.
mode=next
Returns the next upcoming holiday for the country, including days until the holiday and whether it's currently ongoing.
mode=check / date=YYYY-MM-DD
Check if a specific date is a holiday, weekend, or day off. Use date=today for the current date.
Supported Countries
| Country | Code | Weekend |
|---|---|---|
| UAE | AE | Sat–Sun |
| Saudi Arabia | SA | Fri–Sat |
| Kuwait | KW | Fri–Sat |
| Bahrain | BH | Fri–Sat |
| Oman | OM | Fri–Sat |
| Qatar | QA | Fri–Sat |
Rate Limits
| Plan | Requests/Month | Rate Limit |
|---|---|---|
| Free | 1,000 | 10 req/min |
| Starter | 10,000 | 60 req/min |
| Professional | 100,000 | 300 req/min |
| Business | 500,000 | 1,000 req/min |
Debugging & Support
Include X-Request-ID when contacting support
Every response from KhaleejiAPI includes an X-Request-ID header — a unique identifier that lets our support team pull the exact log entry for your request within seconds. Always share it when reporting an unexpected error or unexpected result.
How to capture it
JavaScript / fetch
const res = await fetch("https://khaleejiapi.dev/api/v1/...", {
headers: { Authorization: "******" },
});
const requestId = res.headers.get("x-request-id");
console.log("Request ID:", requestId);
// → e.g. "req_01j9xkz4vp8..."cURL
curl -si "https://khaleejiapi.dev/api/v1/..." \ -H "Authorization: ******" | grep -i x-request-id # → x-request-id: req_01j9xkz4vp8...
Browser DevTools
Open DevTools (F12) → Network tab → click the failing request → scroll to the Response Headers section → copy the value next to x-request-id.
For a full list of error codes and guidance on common issues, see the Troubleshooting guide.