


















Let's face it, most holiday APIs are incomplete, expensive, or just plain unreliable. Whether you're building a global scheduling app, planning international content, or creating a travel platform, inaccurate holiday data can break your user experience.
Meanwhile, BMT-Holiday API gives you 150+ countries, automatic country detection, and localization—all in a single fast and efficient API.
Most APIs require you to hardcode country codes. BMT-Holiday intelligently detects the user's location automatically—perfect for mobile apps, global websites, and multi-region platforms.
// With BMT-Holiday, country is OPTIONAL!
GET https://api-bmtdaily.koyeb.app/holidays?date=2026-12-25
// Auto-detects country and returns relevant holidays
Other APIs give you a holiday name and date. BMT-Holiday provides comprehensive data:
{
"success": true,
"user": {
"is_holiday": true,
"holiday_name": "Christmas Day",
"country": "US",
"details": {
"type": "Public Holiday",
"regions": ["All"],
"observed_by": ["Federal", "State"]
}
}
}
Bonus: The Refresh Cache endpoint ensures you always have the latest data without waiting for updates.
No more manually mapping country codes to display names. BMT-Holiday localizes holiday names and descriptions automatically based on the user's region.
With intelligent caching and optimized endpoints, BMT-Holiday delivers sub-100ms responses—critical for real-time applications.
Need to know how many holidays are coming up? The stats=true parameter gives you instant analytics:
const response = await fetch('https://api-bmtdaily.koyeb.app/holidays/check?country=IN&date=2026-06-23');
const data = await response.json();
console.log(data.is_holiday ? '🎉 Holiday!' : '📅 Working day');
const response = await fetch('https://api-bmtdaily.koyeb.app/holidays/upcoming?country=US&limit=20&details=true');
const data = await response.json();
data.holidays.forEach(h => console.log(`${h.date}: ${h.name}`));
const response = await fetch('https://api-bmtdaily.koyeb.app/holidays/compare?country=IN&compare_country=US&date=2026-06-23');
const data = await response.json();
console.log(data.comparison); // Full side-by-side comparison
GET https://api-bmtdaily.koyeb.app/health
Start building with BMT-Holiday.
{
"info": {
"name": "🌍 BMT-Holiday API",
"description": "Comprehensive BMT-Holiday API with 150+ countries support. Includes automatic country detection with localization.",
"schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json"
},
"item": [
{
"name": "Get Holidays (Full Info)",
"event": [
{
"listen": "test",
"script": {
"exec": [
"pm.test(\"Status code is 200\", function() {",
" pm.response.to.have.status(200);",
"});",
"pm.test(\"Response has success flag\", function() {",
" var jsonData = pm.response.json();",
" pm.expect(jsonData).to.have.property('success');",
" pm.expect(jsonData.success).to.eql(true);",
"});",
"pm.test(\"Response has holiday data\", function() {",
" var jsonData = pm.response.json();",
" pm.expect(jsonData).to.have.property('user');",
" pm.expect(jsonData.user).to.have.property('is_holiday');",
"});"
],
"type": "text/javascript"
}
}
],
"request": {
"method": "GET",
"header": [
{
"key": "Accept",
"value": "application/json"
}
],
"url": {
"raw": "https://api-bmtdaily.koyeb.app/holidays?country={{country}}&date={{date}}&stats=true&upcoming=true&limit=20",
"protocol": "https",
"host": ["api-bmtdaily", "koyeb", "app"],
"path": ["holidays"],
"query": [
{
"key": "country",
"value": "{{country}}",
"description": "ISO country code (auto-detected if omitted)"
},
{
"key": "date",
"value": "{{date}}",
"description": "Date in YYYY-MM-DD format"
},
{
"key": "stats",
"value": "true",
"description": "Include statistics"
},
{
"key": "upcoming",
"value": "true",
"description": "Include upcoming holidays"
},
{
"key": "limit",
"value": "20",
"description": "Number of upcoming holidays"
}
]
}
},
"response": []
},
{
"name": "Quick Holiday Check",
"event": [
{
"listen": "test",
"script": {
"exec": [
"pm.test(\"Status code is 200\", function() {",
" pm.response.to.have.status(200);",
"});",
"pm.test(\"Response has holiday info\", function() {",
" var jsonData = pm.response.json();",
" pm.expect(jsonData).to.have.property('is_holiday');",
" pm.expect(jsonData).to.have.property('country');",
"});"
],
"type": "text/javascript"
}
}
],
"request": {
"method": "GET",
"header": [
{
"key": "Accept",
"value": "application/json"
}
],
"url": {
"raw": "https://api-bmtdaily.koyeb.app/holidays/check?country={{country}}&date={{date}}",
"protocol": "https",
"host": ["api-bmtdaily", "koyeb", "app"],
"path": ["holidays", "check"],
"query": [
{
"key": "country",
"value": "{{country}}",
"description": "ISO country code"
},
{
"key": "date",
"value": "{{date}}",
"description": "Date in YYYY-MM-DD format"
}
]
}
},
"response": []
},
{
"name": "Upcoming Holidays",
"event": [
{
"listen": "test",
"script": {
"exec": [
"pm.test(\"Status code is 200\", function() {",
" pm.response.to.have.status(200);",
"});",
"pm.test(\"Response has upcoming holidays\", function() {",
" var jsonData = pm.response.json();",
" pm.expect(jsonData).to.have.property('holidays');",
"});"
],
"type": "text/javascript"
}
}
],
"request": {
"method": "GET",
"header": [
{
"key": "Accept",
"value": "application/json"
}
],
"url": {
"raw": "https://api-bmtdaily.koyeb.app/holidays/upcoming?country={{country}}&limit={{limit}}&date={{date}}&details=true",
"protocol": "https",
"host": ["api-bmtdaily", "koyeb", "app"],
"path": ["holidays", "upcoming"],
"query": [
{
"key": "country",
"value": "{{country}}",
"description": "ISO country code"
},
{
"key": "limit",
"value": "{{limit}}",
"description": "Number of holidays to return"
},
{
"key": "date",
"value": "{{date}}",
"description": "Starting date"
},
{
"key": "details",
"value": "true",
"description": "Include full details"
}
]
}
},
"response": []
},
{
"name": "Worldwide Holidays",
"event": [
{
"listen": "test",
"script": {
"exec": [
"pm.test(\"Status code is 200\", function() {",
" pm.response.to.have.status(200);",
"});",
"pm.test(\"Response has worldwide data\", function() {",
" var jsonData = pm.response.json();",
" pm.expect(jsonData).to.have.property('total_holidays');",
" pm.expect(jsonData).to.have.property('countries_with_holidays');",
"});"
],
"type": "text/javascript"
}
}
],
"request": {
"method": "GET",
"header": [
{
"key": "Accept",
"value": "application/json"
}
],
"url": {
"raw": "https://api-bmtdaily.koyeb.app/holidays/worldwide?date={{date}}&limit={{worldwideLimit}}",
"protocol": "https",
"host": ["api-bmtdaily", "koyeb", "app"],
"path": ["holidays", "worldwide"],
"query": [
{
"key": "date",
"value": "{{date}}",
"description": "Date to check"
},
{
"key": "limit",
"value": "{{worldwideLimit}}",
"description": "Max countries to include"
}
]
}
},
"response": []
},
{
"name": "Get Year Holidays",
"event": [
{
"listen": "test",
"script": {
"exec": [
"pm.test(\"Status code is 200\", function() {",
" pm.response.to.have.status(200);",
"});",
"pm.test(\"Response has year data\", function() {",
" var jsonData = pm.response.json();",
" pm.expect(jsonData).to.have.property('total_holidays');",
"});"
],
"type": "text/javascript"
}
}
],
"request": {
"method": "GET",
"header": [
{
"key": "Accept",
"value": "application/json"
}
],
"url": {
"raw": "https://api-bmtdaily.koyeb.app/holidays/year/{{year}}?country={{country}}&details=true",
"protocol": "https",
"host": ["api-bmtdaily", "koyeb", "app"],
"path": ["holidays", "year", "{{year}}"],
"query": [
{
"key": "country",
"value": "{{country}}",
"description": "ISO country code"
},
{
"key": "details",
"value": "true",
"description": "Include full details"
}
]
}
},
"response": []
},
{
"name": "Get Month Holidays",
"event": [
{
"listen": "test",
"script": {
"exec": [
"pm.test(\"Status code is 200\", function() {",
" pm.response.to.have.status(200);",
"});",
"pm.test(\"Response has month data\", function() {",
" var jsonData = pm.response.json();",
" pm.expect(jsonData).to.have.property('total_holidays');",
" pm.expect(jsonData).to.have.property('month');",
"});"
],
"type": "text/javascript"
}
}
],
"request": {
"method": "GET",
"header": [
{
"key": "Accept",
"value": "application/json"
}
],
"url": {
"raw": "https://api-bmtdaily.koyeb.app/holidays/month?country={{country}}&year={{year}}&month={{month}}",
"protocol": "https",
"host": ["api-bmtdaily", "koyeb", "app"],
"path": ["holidays", "month"],
"query": [
{
"key": "country",
"value": "{{country}}",
"description": "ISO country code"
},
{
"key": "year",
"value": "{{year}}",
"description": "Year"
},
{
"key": "month",
"value": "{{month}}",
"description": "Month (1-12)"
}
]
}
},
"response": []
},
{
"name": "Get Holidays in Range",
"event": [
{
"listen": "test",
"script": {
"exec": [
"pm.test(\"Status code is 200\", function() {",
" pm.response.to.have.status(200);",
"});",
"pm.test(\"Response has range data\", function() {",
" var jsonData = pm.response.json();",
" pm.expect(jsonData).to.have.property('total_holidays');",
" pm.expect(jsonData).to.have.property('range');",
"});"
],
"type": "text/javascript"
}
}
],
"request": {
"method": "GET",
"header": [
{
"key": "Accept",
"value": "application/json"
}
],
"url": {
"raw": "https://api-bmtdaily.koyeb.app/holidays/range?country={{country}}&from={{fromDate}}&to={{toDate}}",
"protocol": "https",
"host": ["api-bmtdaily", "koyeb", "app"],
"path": ["holidays", "range"],
"query": [
{
"key": "country",
"value": "{{country}}",
"description": "ISO country code"
},
{
"key": "from",
"value": "{{fromDate}}",
"description": "Start date (YYYY-MM-DD)"
},
{
"key": "to",
"value": "{{toDate}}",
"description": "End date (YYYY-MM-DD)"
}
]
}
},
"response": []
},
{
"name": "Compare Countries",
"event": [
{
"listen": "test",
"script": {
"exec": [
"pm.test(\"Status code is 200\", function() {",
" pm.response.to.have.status(200);",
"});",
"pm.test(\"Response has comparison data\", function() {",
" var jsonData = pm.response.json();",
" pm.expect(jsonData).to.have.property('comparison');",
" pm.expect(jsonData.comparison).to.have.property('country1');",
" pm.expect(jsonData.comparison).to.have.property('country2');",
"});"
],
"type": "text/javascript"
}
}
],
"request": {
"method": "GET",
"header": [
{
"key": "Accept",
"value": "application/json"
}
],
"url": {
"raw": "https://api-bmtdaily.koyeb.app/holidays/compare?country={{country}}&compare_country={{compareCountry}}&date={{date}}",
"protocol": "https",
"host": ["api-bmtdaily", "koyeb", "app"],
"path": ["holidays", "compare"],
"query": [
{
"key": "country",
"value": "{{country}}",
"description": "First country"
},
{
"key": "compare_country",
"value": "{{compareCountry}}",
"description": "Second country"
},
{
"key": "date",
"value": "{{date}}",
"description": "Date to compare"
}
]
}
},
"response": []
},
{
"name": "Search Holidays",
"event": [
{
"listen": "test",
"script": {
"exec": [
"pm.test(\"Status code is 200\", function() {",
" pm.response.to.have.status(200);",
"});",
"pm.test(\"Response has search results\", function() {",
" var jsonData = pm.response.json();",
" pm.expect(jsonData).to.have.property('results');",
"});"
],
"type": "text/javascript"
}
}
],
"request": {
"method": "GET",
"header": [
{
"key": "Accept",
"value": "application/json"
}
],
"url": {
"raw": "https://api-bmtdaily.koyeb.app/holidays/search?q={{searchQuery}}&country={{country}}&year={{year}}&caseSensitive=false",
"protocol": "https",
"host": ["api-bmtdaily", "koyeb", "app"],
"path": ["holidays", "search"],
"query": [
{
"key": "q",
"value": "{{searchQuery}}",
"description": "Search term (min 2 chars)"
},
{
"key": "country",
"value": "{{country}}",
"description": "ISO country code"
},
{
"key": "year",
"value": "{{year}}",
"description": "Year to search"
},
{
"key": "caseSensitive",
"value": "false",
"description": "Case sensitive search"
}
]
}
},
"response": []
},
{
"name": "Get Supported Countries",
"event": [
{
"listen": "test",
"script": {
"exec": [
"pm.test(\"Status code is 200\", function() {",
" pm.response.to.have.status(200);",
"});",
"pm.test(\"Response has countries data\", function() {",
" var jsonData = pm.response.json();",
" pm.expect(jsonData).to.have.property('countries');",
" pm.expect(jsonData).to.have.property('total_countries');",
"});"
],
"type": "text/javascript"
}
}
],
"request": {
"method": "GET",
"header": [
{
"key": "Accept",
"value": "application/json"
}
],
"url": {
"raw": "https://api-bmtdaily.koyeb.app/holidays/countries",
"protocol": "https",
"host": ["api-bmtdaily", "koyeb", "app"],
"path": ["holidays", "countries"]
}
},
"response": []
},
{
"name": "Get Regions",
"event": [
{
"listen": "test",
"script": {
"exec": [
"pm.test(\"Status code is 200\", function() {",
" pm.response.to.have.status(200);",
"});",
"pm.test(\"Response has regions data\", function() {",
" var jsonData = pm.response.json();",
" pm.expect(jsonData).to.have.property('regions');",
" pm.expect(jsonData).to.have.property('total_regions');",
"});"
],
"type": "text/javascript"
}
}
],
"request": {
"method": "GET",
"header": [
{
"key": "Accept",
"value": "application/json"
}
],
"url": {
"raw": "https://api-bmtdaily.koyeb.app/holidays/regions?country={{country}}&year={{year}}",
"protocol": "https",
"host": ["api-bmtdaily", "koyeb", "app"],
"path": ["holidays", "regions"],
"query": [
{
"key": "country",
"value": "{{country}}",
"description": "ISO country code"
},
{
"key": "year",
"value": "{{year}}",
"description": "Year"
}
]
}
},
"response": []
},
{
"name": "Refresh Cache",
"event": [
{
"listen": "test",
"script": {
"exec": [
"pm.test(\"Status code is 200\", function() {",
" pm.response.to.have.status(200);",
"});",
"pm.test(\"Response confirms cache refresh\", function() {",
" var jsonData = pm.response.json();",
" pm.expect(jsonData).to.have.property('message');",
" pm.expect(jsonData.message).to.include('refreshed');",
"});"
],
"type": "text/javascript"
}
}
],
"request": {
"method": "GET",
"header": [
{
"key": "Accept",
"value": "application/json"
}
],
"url": {
"raw": "https://api-bmtdaily.koyeb.app/holidays/refresh?country={{country}}&year={{year}}",
"protocol": "https",
"host": ["api-bmtdaily", "koyeb", "app"],
"path": ["holidays", "refresh"],
"query": [
{
"key": "country",
"value": "{{country}}",
"description": "ISO country code"
},
{
"key": "year",
"value": "{{year}}",
"description": "Year"
}
]
}
},
"response": []
},
{
"name": "Health Check",
"event": [
{
"listen": "test",
"script": {
"exec": [
"pm.test(\"Status code is 200\", function() {",
" pm.response.to.have.status(200);",
"});",
"pm.test(\"Service is healthy\", function() {",
" var jsonData = pm.response.json();",
" pm.expect(jsonData).to.have.property('status');",
" pm.expect(jsonData.status).to.eql('healthy');",
"});"
],
"type": "text/javascript"
}
}
],
"request": {
"method": "GET",
"header": [
{
"key": "Accept",
"value": "application/json"
}
],
"url": {
"raw": "https://api-bmtdaily.koyeb.app/health",
"protocol": "https",
"host": ["api-bmtdaily", "koyeb", "app"],
"path": ["health"]
}
},
"response": []
}
],
"variable": [
{
"key": "country",
"value": "IN",
"type": "string"
},
{
"key": "date",
"value": "2026-06-21",
"type": "string"
},
{
"key": "year",
"value": "2026",
"type": "string"
},
{
"key": "month",
"value": "7",
"type": "string"
},
{
"key": "limit",
"value": "10",
"type": "string"
},
{
"key": "worldwideLimit",
"value": "10",
"type": "string"
},
{
"key": "compareCountry",
"value": "US",
"type": "string"
},
{
"key": "searchQuery",
"value": "Columbus",
"type": "string"
},
{
"key": "fromDate",
"value": "2026-06-01",
"type": "string"
},
{
"key": "toDate",
"value": "2026-06-30",
"type": "string"
}
]
}
BMT-Holiday API: The Most Comprehensive Holiday Data Solution | 150+ Countries | Automatic Detection | Built-in Localization
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。