ðïļ āļāđāļāļĄāļđāļĨāļ§āļąāļāļŦāļĒāļļ āļāđāļāļĒ
āļĒāļīāļāļāļĩāļāđāļāļāļĢāļąāļāļŠāļđāđ Thai Holiday Data API āđāļ§āļāļĢāđāļāļąāļ 1.0 āļāļķāđāļāđāļāđāļāļāļĢāļīāļāļēāļĢāļāđāļāļĄāļđāļĨāļāļĩāđāļāļąāļāļāļēāđāļāļĒ āļāļĢāļīāļĐāļąāļ āđāļāđāļāļāļāđāđāļāļāđāļāđāļĨāļĒāļĩ āļāļģāļāļąāļ API āļāļāļāđāļĢāļēāđāļŦāđāļāđāļāļĄāļđāļĨāļ§āļąāļāļŦāļĒāļļāļāļāļāļāđāļāļĒāļāļĩāđāļāļĢāļāļāļāļĨāļļāļĄāđāļĨāļ°āđāļāđāļāļāļąāļāļāļļāļāļąāļāļāļēāļāđāļŦāļĨāđāļāļāđāļāļĄāļđāļĨāļāļĩāđāļāđāļēāđāļāļ·āđāļāļāļ·āļāļŦāļĨāļēāļĒāđāļŦāđāļ āļĢāļąāļāļāđāļāļĄāļđāļĨāļ§āļąāļāļŦāļĒāļļāļāļāļĩāđāļāļđāļāļāđāļāļāļŠāļģāļŦāļĢāļąāļāļŠāļāļēāļāļąāļāļāļēāļĢāđāļāļīāļāđāļĨāļ°āļ§āļąāļāļŦāļĒāļļāļāļāļąāļāļāļąāļāļĪāļāļĐāđāđāļāļāļĢāļ°āđāļāļĻāđāļāļĒ āļāđāļ§āļĒāđāļ§āļĨāļēāļāļāļāļŠāļāļāļāļāļĩāđāļĢāļ§āļāđāļĢāđāļ§āđāļĨāļ°āļāļĢāļīāļāļēāļĢāļāļĩāđāđāļāļ·āđāļāļāļ·āļāđāļāđ
Try Demoâ
Example Queries (Click to try)
Add query parameters (e.g., ?holiday_type=public&days_after=30)
Getting Startedâ
-
Prerequisites
- API key āļāļēāļ āđāļāđāļāļāļāđāđāļāļāđāļāđāļĨāļĒāļĩ
- HTTP client āļŦāļĢāļ·āļāļ āļēāļĐāļēāđāļāļĢāđāļāļĢāļĄāļāļĩ āđāļāļļāļāđāļĨāļ·āļāļ
- āļāļ§āļēāļĄāđāļāđāļēāđāļāđāļāļĩāđāļĒāļ§āļāļąāļāļŦāļĨāļąāļāļāļēāļĢ REST API
-
Quick Start
- āđāļ§āļĨāļēāļāļāļāļŠāļāļāļāļāļĩāđāļĢāļ§āļāđāļĢāđāļ§ (āđāļāļĒāļāļąāđāļ§āđāļāļāđāļģāļāļ§āđāļē 500ms)
- āļāļēāļĢāļāļąāļāđāļāļāļāđāļāļĄāļđāļĨāļ§āļąāļāļŦāļĒāļļāļāđāļāļāđāļĢāļĩāļĒāļĨāđāļāļĄāđ
- āļĢāļāļāļĢāļąāļāļāļĢāļ°āđāļ āļāļ§āļąāļāļŦāļĒāļļāļāļŦāļĨāļēāļĒāļāļĢāļ°āđāļ āļ
- āļāļēāļĢāļāđāļāļŦāļēāļāđāļ§āļāļ§āļąāļāļāļĩāđāļāļĩāđāļĒāļ·āļāļŦāļĒāļļāđāļ
-
Key Features
- āļ§āļąāļāļŦāļĒāļļāļāļŠāļāļēāļāļąāļāļāļēāļĢāđāļāļīāļ: āļ§āļąāļāļŦāļĒāļļāļāļāļāļāļŠāļāļēāļāļąāļāļāļēāļĢāđāļāļīāļāđāļāļāļĢāļ°āđāļāļĻāđāļāļĒāļāļēāļāļāļāļēāļāļēāļĢāđāļŦāđāļāļāļĢāļ°āđāļāļĻāđāļāļĒ
- āļ§āļąāļāļŦāļĒāļļāļāļāļąāļāļāļąāļāļĪāļāļĐāđ: āļ§āļąāļāļŦāļĒāļļāļāļāļąāļāļāļąāļāļĪāļāļĐāđāļāļāļāļāļĢāļ°āđāļāļĻāđāļāļĒāļāļēāļāļŠāļģāļāļąāļāđāļĨāļāļēāļāļīāļāļēāļĢāļāļāļ°āļĢāļąāļāļĄāļāļāļĢāļĩ
- āļāđāļāļĄāļđāļĨāļĢāļ§āļĄ: āđāļāđāļēāļāļķāļāļāļąāđāļāļŠāļāļāļāļĢāļ°āđāļ āļāđāļāļāļēāļĢāđāļĢāļĩāļĒāļāđāļāđāļāļĢāļąāđāļāđāļāļĩāļĒāļ§
- āļāļēāļĢāļāđāļāļŦāļēāļāđāļ§āļāļ§āļąāļāļāļĩāđāļāļĩāđāļĒāļ·āļāļŦāļĒāļļāđāļ (āļ§āļąāļāļāđāļāļ/āļŦāļĨāļąāļ, āļāļĩāļāļĩāđāļĢāļ°āļāļļ, āļāđāļ§āļāļāļĩāđāļāļģāļŦāļāļāđāļāļ)
- āļāļ·āđāļāļ§āļąāļāļŦāļĒāļļāļāļ āļēāļĐāļēāđāļāļĒāđāļĨāļ°āļ āļēāļĐāļēāļāļąāļāļāļĪāļĐ
- āļāđāļāļĄāļđāļĨāļ§āļąāļāđāļāļŠāļąāļāļāļēāļŦāđāļāļąāđāļāļŠāļāļāļ āļēāļĐāļē
-
Data Freshness
- āļāļĩāļĄāļāļēāļāļāļāļāđāļĢāļēāđāļāļāļĢāļ°āđāļāļĻāđāļāļĒāļāļ°āļāļāļĒāļāļĢāļ§āļāļŠāļāļāđāļĨāļ°āļāļąāļāđāļāļāļāđāļāļĄāļđāļĨāļ§āļąāļāļŦāļĒāļļāļāļāļĒāđāļēāļāļŠāļĄāđ āļģāđāļŠāļĄāļāļāļąāļāļāļĩāļāļĩāđāļĄāļĩāļāļēāļĢāļāļĢāļ°āļāļēāļĻāļ§āļąāļāļŦāļĒāļļāļāđāļŦāļĄāđāđāļāļāļĢāļ°āđāļāļĻāđāļāļĒ
- āļāđāļāļĄāļđāļĨāļāļ°āļāļđāļāđāļāļāđāļāļ·āđāļāļāļĢāļ°āļŠāļīāļāļāļīāļ āļēāļāļŠāļđāļāļŠāļļāļ āļāļĢāđāļāļĄāļāļąāđāļāļĢāļąāļāļāļĢāļ°āļāļąāļāļāļ§āļēāļĄāļāļđāļāļāđāļāļ
āļāļĢāļļāļāļēāđāļāļāļĩāđāļŦāļāđāļē API Key Management āđāļāļ·āđāļāļāļđ API key āļāļĩāđāļĄāļĩāļāļĒāļđāđāļāļāļāļāļļāļ āļŦāļĢāļ·āļāļāļāđāļŦāļĄāđ
API Endpointsâ
| Endpoint | Method | Description | Cost |
|---|---|---|---|
/v3/store/data/thai-holidayLegacy: /data/thai-holidays/holidays | GET | āļāļķāļāļāđāļāļĄāļđāļĨāļ§āļąāļāļŦāļĒāļļāļāļāļąāļāļāļąāļāļĪāļāļĐāđāđāļĨāļ°āļ§āļąāļāļŦāļĒāļļāļāļŠāļāļēāļāļąāļāļāļēāļĢāđāļāļīāļāļāļāļāđāļāļĒ | 0.1 IC āļāđāļāļāļēāļĢāđāļĢāļĩāļĒāļāđāļāđ |
Exampleâ
Get Current Year Public Holidaysâ
Request:â
curl -X GET "https://api.iapp.co.th/v3/store/data/thai-holiday?holiday_type=public&days_after=365" \
-H "apikey: YOUR_API_KEY"
Response:â
{
"holidays": [
{
"date": "2025-07-10",
"date_thai": null,
"weekday": "Thursday",
"weekday_thai": null,
"name": "āļ§āļąāļāļāļēāļŠāļēāļŽāļŦāļāļđāļāļē",
"name_thai": null,
"type": "public"
},
{
"date": "2025-07-28",
"date_thai": null,
"weekday": "Monday",
"weekday_thai": null,
"name": "āļ§āļąāļāđāļāļĨāļīāļĄāļāļĢāļ°āļāļāļĄāļāļĢāļĢāļĐāļē āļŠāļĄāđāļāđāļāļāļĢāļ°āđāļāđāļēāļāļĒāļđāđāļŦāļąāļ§āļĄāļŦāļēāļ§āļāļīāļĢāļēāļĨāļāļāļĢāļ āļāļāļīāļāļāļĢāđāļāļāļĒ āļ§āļĢāļēāļāļāļđāļĢ",
"name_thai": null,
"type": "public"
}
],
"total_count": 25,
"date_range": {
"start_date": "2025-06-08",
"end_date": "2026-06-08",
"query_type": "range",
"reference_date": "2025-06-08"
},
"holiday_types": ["public"],
"cached_at": "2025-06-08T10:29:33.740056"
}
Get Holidays for Specific Yearâ
Request:â
curl -X GET "https://api.iapp.co.th/v3/store/data/thai-holiday/year/2025?holiday_type=both" \
-H "apikey: YOUR_API_KEY"
Get Holidays in Date Rangeâ
Request:â
curl -X GET "https://api.iapp.co.th/v3/store/data/thai-holiday/range?start_date=2025-01-01&end_date=2025-12-31&holiday_type=financial" \
-H "apikey: YOUR_API_KEY"
Features & Capabilitiesâ
Holiday Typesâ
API āļāļāļāđāļĢāļēāļŠāļāļąāļāļŠāļāļļāļāļāđāļāļĄāļđāļĨāļ§āļąāļāļŦāļĒāļļāļ 3 āļāļĢāļ°āđāļ āļ:
Public Holidaysâ
- Source: The Secretariat of Cabinet (āļāļđāđāļĨāđāļāļĒāļāļĩāļĄ āđāļāđāļāļāļāđāđāļāļāđāļāđāļĨāļĒāļĩ)
- Description: āļ§āļąāļāļŦāļĒāļļāļāļāļąāļāļāļąāļāļĪāļāļĐāđ
- Includes: āļ§āļąāļāļŦāļĒāļļāļāļāļĢāļ°āļāļģāļāļēāļāļī, āļāļĢāļ°āļĢāļēāļāļāļīāļāļĩ, āļ§āļąāļāļŠāļģāļāļąāļāļāļēāļāļĻāļēāļŠāļāļē
Financial Holidaysâ
- Source: Bank of Thailand (āļāļđāđāļĨāđāļāļĒāļāļĩāļĄ āđāļāđāļāļāļāđāđāļāļāđāļāđāļĨāļĒāļĩ)
- Description: āļ§āļąāļāļŦāļĒāļļāļāļāļēāļĄāļāļĢāļ°āđāļāļāļĩāļāļāļāļŠāļāļēāļāļąāļāļāļēāļĢāđāļāļīāļ
- Includes: āļ§āļąāļāļŦāļĒāļļāļāļāļāļēāļāļēāļĢ, āļ§āļąāļāļāļīāļāļāļģāļāļēāļĢāļāļāļāļ āļēāļāļāļēāļĢāđāļāļīāļ
Both Typesâ
- Source: āļĢāļ§āļĄāļāļēāļāļāļąāđāļāļŠāļāļāđāļŦāļĨāđāļ
- Description: āļ§āļąāļāļŦāļĒāļļāļāļāļļāļāļāļĢāļ°āđāļ āļāđāļāļāļēāļĢāļāļāļāļŠāļāļāļāļāļĢāļąāđāļāđāļāļĩāļĒāļ§
- Use Case: āļāļēāļĢāļ§āļēāļāđāļāļāļ§āļąāļāļŦāļĒāļļāļāļāļĩāđāļāļĢāļāļāļāļĨāļļāļĄ
Query Optionsâ
- Date Ranges: āļāđāļāļŦāļēāļāļēāļĄāļ§āļąāļāļāđāļāļ/āļŦāļĨāļąāļāļ§āļąāļāļāļĩāđ, āļāļĩāļāļĩāđāļĢāļ°āļāļļ, āļŦāļĢāļ·āļāļāđāļ§āļāļ§āļąāļāļāļĩāđāļāļģāļŦāļāļāđāļāļ
- Flexible Parameters: āļ§āļīāļāļĩāļāļēāļĢāļĢāļ°āļāļļāļāđāļ§āļāđāļ§āļĨāļēāļāļĩāđāļāļļāļāļāđāļāļāļāļēāļĢāļŦāļĨāļēāļĒāļ§āļīāļāļĩ
- Type Filtering: āļĢāļąāļāđāļāļāļēāļ°āļāļĢāļ°āđāļ āļāļ§āļąāļāļŦāļĒāļļāļāļāļĩāđāđāļāļĩāđāļĒāļ§āļāđāļāļāļāļąāļāļāļĢāļāļĩāļāļēāļĢāđāļāđāļāļēāļāļāļāļāļāļļāļ
Data Qualityâ
- Real-time Updates: āļāđāļāļĄāļđāļĨāļ§āļąāļāļŦāļĒāļļāļāļāļ°āđāļāđāļĢāļąāļāļāļēāļĢāļāļąāļāđāļāļāļāļąāļāļāļĩāđāļĄāļ·āđāļāļĄāļĩāļāļēāļĢāļāļĢāļ°āļāļēāļĻ
- Authoritative Sources: āļāđāļāļĄāļđāļĨāđāļāđāļĄāļēāļāļēāļ API āļāļāļāļĢāļąāļāļāļēāļĨāđāļāļĒāļāļĒāđāļēāļāđāļāđāļāļāļēāļāļāļēāļĢāđāļĨāļ°āļāļāļīāļāļīāļāļāļĩāđāđāļāđāļĢāļąāļāļāļēāļĢāļāļĢāļ§āļāļŠāļāļ
- Bilingual Support: āļāļ·āđāļāļ§āļąāļāļŦāļĒāļļāļāđāļĨāļ°āļ§āļąāļāđāļāļŠāļąāļāļāļēāļŦāđāļĄāļĩāļāļąāđāļāļ āļēāļĐāļēāđāļāļĒāđāļĨāļ°āļ āļēāļĐāļēāļāļąāļāļāļĪāļĐāđāļĄāļ·āđāļāđāļāđāđāļāđ
API Referenceâ
Base URLâ
https://api.iapp.co.th/v3/store/data/thai-holiday
Authenticationâ
āļāļēāļĢāđāļĢāļĩāļĒāļāđāļāđāļāļąāđāļāļŦāļĄāļāļāđāļāļāđāļāđ API key āđāļāļŠāđāļ§āļāļŦāļąāļ§:
apikey: YOUR_API_KEY
Endpointsâ
Get Thai Holidaysâ
GET /holidays
āļŠāđāļāļāļ·āļāļ§āļąāļāļŦāļĒāļļāļāļāļāļāđāļāļĒāđāļāļāđāļ§āļāđāļ§āļĨāļēāļāļĩāđāļĢāļ°āļāļļ
Query Parametersâ
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| days_before | integer | No | 0 | āļāļģāļāļ§āļāļ§āļąāļāļāđāļāļāļ§āļąāļāļāļĩāđ (āļŠāļđāļāļŠāļļāļ: 1825) |
| days_after | integer | No | 365 | āļāļģāļāļ§āļāļ§āļąāļāļŦāļĨāļąāļāļāļēāļāļ§āļąāļāļāļĩāđ (āļŠāļđāļāļŠāļļāļ: 1825) |
| holiday_type | string | No | "public" | āļāļĢāļ°āđāļ āļ: "financial", "public", āļŦāļĢāļ·āļ "both" |
| year | integer | No | null | āļāļĩāļāļĩāđāļĢāļ°āļāļļ (2020-2030, āļāļ°āđāļāļāļāļĩāđ days_before/after) |
Get Holidays by Yearâ
GET /holidays/year/\{year\}
āļŠāđāļāļāļ·āļāļ§āļąāļāļŦāļĒāļļāļāļāļąāđāļāļŦāļĄāļāļŠāļģāļŦāļĢāļąāļāļāļĩāļāļĩāđāļĢāļ°āļāļļ
Path Parametersâ
| Parameter | Type | Required | Description |
|---|---|---|---|
| year | integer | Yes | āļāļĩāļāļĩāđāļāđāļāļāļāļēāļĢāļāđāļāļŦāļē (2020-2030) |
Query Parametersâ
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| holiday_type | string | No | "public" | āļāļĢāļ°āđāļ āļ: "financial", "public", āļŦāļĢāļ·āļ "both" |
Get Holidays by Date Rangeâ
GET /holidays/range
āļŠāđāļāļāļ·āļāļ§āļąāļāļŦāļĒāļļāļāđāļāļāđāļ§āļāļ§āļąāļāļāļĩāđāļāļĩāđāļĢāļ°āļāļļ
Query Parametersâ
| Parameter | Type | Required | Description |
|---|---|---|---|
| start_date | string (date) | Yes | āļ§āļąāļāļāļĩāđāđāļĢāļīāđāļĄāļāđāļ (āļĢāļđāļāđāļāļ YYYY-MM-DD) |
| end_date | string (date) | Yes | āļ§āļąāļāļāļĩāđāļŠāļīāđāļāļŠāļļāļ (āļĢāļđāļāđāļāļ YYYY-MM-DD) |
| holiday_type | string | No | āļāļĢāļ°āđāļ āļ: "financial", "public", āļŦāļĢāļ·āļ "both" |
Get Holiday Typesâ
GET /holidays/types
āļŠāđāļāļāļ·āļāļāđāļāļĄāļđāļĨāđāļāļĩāđāļĒāļ§āļāļąāļāļāļĢāļ°āđāļ āļāļ§āļąāļāļŦāļĒāļļāļāļāļĩāđāļĄāļĩāđāļŦāđ
Response Formatâ
Holiday Objectâ
{
"date": "2025-07-10",
"date_thai": null,
"weekday": "Thursday",
"weekday_thai": null,
"name": "āļ§āļąāļāļāļēāļŠāļēāļŽāļŦāļāļđāļāļē",
"name_thai": null,
"type": "public"
}
Response Fieldsâ
| Field | Type | Description |
|---|---|---|
| date | string (date) | āļ§āļąāļāļāļĩāđāđāļāļĢāļđāļāđāļāļ YYYY-MM-DD |
| date_thai | string/null | āļ§āļąāļāļāļĩāđāđāļāļĢāļđāļāđāļāļāđāļāļĒ |
| weekday | string | āļ§āļąāļāđāļāļŠāļąāļāļāļēāļŦāđāļ āļēāļĐāļēāļāļąāļāļāļĪāļĐ |
| weekday_thai | string/null | āļ§āļąāļāđāļāļŠāļąāļāļāļēāļŦāđāļ āļēāļĐāļēāđāļāļĒ |
| name | string | āļāļ·āđāļāļ§āļąāļāļŦāļĒāļļāļ |
| name_thai | string/null | āļāļ·āđāļāļ§āļąāļāļŦāļĒāļļāļāļ āļēāļĐāļēāđāļāļĒ |
| type | string | āļāļĢāļ°āđāļ āļāļ§āļąāļāļŦāļĒāļļāļ ("public" āļŦāļĢāļ·āļ "financial") |
List Responseâ
{
"holidays": [/* Holiday objects */],
"total_count": 25,
"date_range": {
"start_date": "2025-06-08",
"end_date": "2026-06-08",
"query_type": "range",
"reference_date": "2025-06-08"
},
"holiday_types": ["public"],
"cached_at": "2025-06-08T10:29:33.740056"
}
Error Codesâ
HTTP Status Codesâ
| Status Code | Description |
|---|---|
| 200 | Success |
| 400 | Bad Request - Invalid parameters |
| 401 | Unauthorized - Invalid or missing API key |
| 404 | Not Found - Invalid endpoint |
| 422 | Validation Error - Parameter validation failed |
| 429 | Too Many Requests - Rate limit exceeded |
| 500 | Internal Server Error |
Validation Errorsâ
Invalid Date Rangeâ
{
"detail": [
{
"loc": ["query", "start_date"],
"msg": "Invalid date format. Use YYYY-MM-DD",
"type": "value_error"
}
]
}
Invalid Holiday Typeâ
{
"detail": [
{
"loc": ["query", "holiday_type"],
"msg": "Holiday type must be 'financial', 'public', or 'both'",
"type": "value_error"
}
]
}
Code Examplesâ
Curlâ
curl -X GET "https://api.iapp.co.th/v3/store/data/thai-holiday?year=2025" \
-H "apikey: YOUR_API_KEY"
Pythonâ
import requests
url = "https://api.iapp.co.th/v3/store/data/thai-holiday"
params = {
'holiday_type': 'public',
'days_after': 90
}
headers = {
'apikey': 'YOUR_API_KEY'
}
response = requests.get(url, headers=headers, params=params)
data = response.json()
print(f"Found {data['total_count']} holidays")
for holiday in data['holidays']:
print(f"{holiday['date']}: {holiday['name']}")
JavaScriptâ
const axios = require('axios');
const config = {
method: 'get',
url: 'https://api.iapp.co.th/v3/store/data/thai-holiday',
headers: {
'apikey': 'YOUR_API_KEY'
},
params: {
holiday_type: 'both',
year: 2025
}
};
axios(config)
.then((response) => {
console.log(`Found ${response.data.total_count} holidays`);
response.data.holidays.forEach(holiday => {
console.log(`${holiday.date}: ${holiday.name}`);
});
})
.catch((error) => console.log(error));
PHPâ
<?php
$curl = curl_init();
$url = 'https://api.iapp.co.th/v3/store/data/thai-holiday?' .
http_build_query([
'holiday_type' => 'public',
'days_after' => 180
]);
curl_setopt_array($curl, array(
CURLOPT_URL => $url,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => array(
'apikey: YOUR_API_KEY'
),
));
$response = curl_exec($curl);
curl_close($curl);
$data = json_decode($response, true);
echo "Found " . $data['total_count'] . " holidays\n";
foreach ($data['holidays'] as $holiday) {
echo $holiday['date'] . ": " . $holiday['name'] . "\n";
}
?>
Swiftâ
import Foundation
let headers = [
"apikey": "YOUR_API_KEY"
]
var components = URLComponents(string: "https://api.iapp.co.th/v3/store/data/thai-holiday")!
components.queryItems = [
URLQueryItem(name: "holiday_type", value: "financial"),
URLQueryItem(name: "year", value: "2025")
]
var request = URLRequest(url: components.url!, timeoutInterval: Double.infinity)
request.addValue("YOUR_API_KEY", forHTTPHeaderField: "apikey")
request.httpMethod = "GET"
let task = URLSession.shared.dataTask(with: request) { data, response, error in
guard let data = data else {
print(String(describing: error))
return
}
do {
let json = try JSONSerialization.jsonObject(with: data, options: [])
print(json)
} catch {
print(error)
}
}
task.resume()
Kotlinâ
import okhttp3.*
import java.io.IOException
val client = OkHttpClient()
val url = HttpUrl.Builder()
.scheme("https")
.host("api.iapp.co.th")
.addPathSegments("data/thai-holidays/holidays")
.addQueryParameter("holiday_type", "both")
.addQueryParameter("days_after", "365")
.build()
val request = Request.Builder()
.url(url)
.addHeader("apikey", "YOUR_API_KEY")
.build()
client.newCall(request).execute().use { response ->
if (!response.isSuccessful) throw IOException("Unexpected code $response")
println(response.body()?.string())
}
Javaâ
import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
public class ThaiHolidayAPI {
public static void main(String[] args) throws Exception {
HttpClient client = HttpClient.newHttpClient();
String url = "https://api.iapp.co.th/v3/store/data/thai-holiday" +
"?holiday_type=public&days_after=90";
HttpRequest request = HttpRequest.newBuilder()
.uri(URI.create(url))
.header("apikey", "YOUR_API_KEY")
.GET()
.build();
HttpResponse<String> response = client.send(request,
HttpResponse.BodyHandlers.ofString());
System.out.println(response.body());
}
}
Dartâ
import 'package:http/http.dart' as http;
import 'dart:convert';
void main() async {
final uri = Uri.parse('https://api.iapp.co.th/v3/store/data/thai-holiday')
.replace(queryParameters: {
'holiday_type': 'public',
'year': '2025'
});
final response = await http.get(
uri,
headers: {
'apikey': 'YOUR_API_KEY'
}
);
if (response.statusCode == 200) {
final data = json.decode(response.body);
print('Found ${data['total_count']} holidays');
for (var holiday in data['holidays']) {
print('${holiday['date']}: ${holiday['name']}');
}
} else {
print('Error: ${response.statusCode}');
}
}
Best Practicesâ
Error Handlingâ
- Check HTTP Status Codes: āļāļĢāļ§āļāļŠāļāļāļŠāļāļēāļāļ°āļāļēāļĢāļāļāļāļŠāļāļāļāđāļŠāļĄāļ
- Parse Error Messages: āđāļāđāļāđāļāļĄāļđāļĨāļāđāļāļāļīāļāļāļĨāļēāļāđāļāļĒāļĨāļ°āđāļāļĩāļĒāļāđāļāļ·āđāļāļāļēāļĢāļāļĩāļāļąāļ
- Implement Fallbacks: āļĄāļĩāđāļāļāļŠāļģāļĢāļāļāđāļĄāļ·āđāļ API āđāļĄāđāļāļĢāđāļāļĄāđāļāđāļāļēāļ
- Log API Calls: āļāļĢāļ§āļāļŠāļāļāļĢāļđāļāđāļāļāļāļēāļĢāđāļāđāļāļēāļāđāļĨāļ°āļāđāļāļāļīāļāļāļĨāļēāļāļāļāļāļāļļāļ
Performance Tipsâ
- Batch Requests: āļāļāļāđāļāļĄāļđāļĨāļŠāļģāļŦāļĢāļąāļāļāđāļ§āļāđāļ§āļĨāļēāļāļĩāđāļĒāļēāļ§āļāļķāđāļāđāļāļāļāļēāļĢāđāļĢāļĩāļĒāļāđāļāđāļŦāļĨāļēāļĒāļāļĢāļąāđāļ
- Use Year Endpoint: āļŠāļģāļŦāļĢāļąāļāļāđāļāļĄāļđāļĨāļāļąāđāļāļāļĩ āđāļŦāđāđāļāđ endpoint āļāļĩāđāļāļĒāđāļāļāļēāļ°
- Monitor Response Times: āļāļīāļāļāļēāļĄāļāļĢāļ°āļŠāļīāļāļāļīāļ āļēāļāļāļāļ API āđāļāđāļāļāļāļĨāļīāđāļāļāļąāļāļāļāļāļāļļāļ
Use Casesâ
Business Applicationsâ
- Payroll Systems: āļāļģāļāļ§āļāļ§āļąāļāļāļģāļāļēāļāđāļĨāļ°āļāđāļēāļāļāļāđāļāļāļ§āļąāļāļŦāļĒāļļāļ
- Financial Services: āļāļģāļŦāļāļāļ§āļąāļāļāļ·āđāļāļāļēāļĒāđāļĨāļ°āļ§āļąāļāļāļģāļĢāļ°āļāļąāļāļāļĩ
- E-commerce: āļ§āļēāļāđāļāļāđāļāļĢāđāļĄāļāļąāđāļāđāļāļāđāļ§āļāļ§āļąāļāļŦāļĒāļļāļ
- Scheduling Systems: āļŦāļĨāļĩāļāđāļĨāļĩāđāļĒāļāļāļēāļĢāļāļāļāļāļēāļĢāļāļĢāļ°āļāļļāļĄāđāļāļ§āļąāļāļŦāļĒāļļāļ
Development Integrationâ
- Calendar Applications: āđāļŠāļāļāļ§āļąāļāļŦāļĒāļļāļāļāļāļāđāļāļĒāđāļāļĄāļļāļĄāļĄāļāļāļāļāļīāļāļīāļ
- Business Intelligence: āļĢāļ§āļĄāļāđāļāļĄāļđāļĨāļ§āļąāļāļŦāļĒāļļāļāđāļāļāļēāļĢāļ§āļīāđāļāļĢāļēāļ°āļŦāđ
- Notification Systems: āļŠāđāļāļāļģāļāļ§āļĒāļāļĢāđāļĨāļ°āđāļāļ·āļāļāļ§āļąāļāļŦāļĒāļļāļ
- Mobile Apps: āđāļŠāļāļāļāđāļāļĄāļđāļĨāļ§āļąāļāļŦāļĒāļļāļāļāļĩāđāđāļāļĩāđāļĒāļ§āļāđāļāļ
Data Sources and Accuracyâ
Primary Sourcesâ
- Bank of Thailand: āļ§āļąāļāļŦāļĒāļļāļ āļŠāļāļēāļāļąāļāļāļēāļĢāđāļāļīāļāļāļĒāđāļēāļāđāļāđāļāļāļēāļāļāļēāļĢ
- Government Announcements: āļāļēāļĢāļāļąāļāđāļāļāđāļāļāđāļĢāļĩāļĒāļĨāđāļāļĄāđāļāļēāļāļŦāļāđāļ§āļĒāļāļēāļāļāļēāļāļāļēāļĢāđāļāļĒ
Update Processâ
āļāļĩāļĄāļāļēāļāļāļđāđāđāļāļĩāđāļĒāļ§āļāļēāļāļāļāļāđāļĢāļēāđāļāļāļĢāļ°āđāļāļĻāđāļāļĒāļāļ°āļāļāļĒāļāļīāļāļāļēāļĄāļāđāļāļāļāļēāļāļāļĒāđāļēāļāđāļāđāļāļāļēāļāļāļēāļĢāđāļĨāļ°āļāļąāļāđāļāļāļāđāļāļĄāļđāļĨāļ§āļąāļāļŦāļĒāļļāļāļāļąāļāļāļĩāđāļĄāļ·āđāļ:
- āļĄāļĩāļāļēāļĢāļāļĢāļ°āļāļēāļĻāļ§āļąāļāļŦāļĒāļļāļāđāļŦāļĄāđāđāļāļĒāļĢāļąāļāļāļēāļĨ
- āļĄāļĩāļāļēāļĢāđāļāļĨāļĩāđāļĒāļāđāļāļĨāļāļŦāļĢāļ·āļāļĒāļāđāļĨāļīāļāļ§āļąāļāļŦāļĒāļļāļāļāļĩāđāļĄāļĩāļāļĒāļđāđ
- āļĄāļĩāļāļēāļĢāļāļĢāļ°āļāļēāļĻāļ§āļąāļāļŦāļĒāļļāļāļāļīāđāļĻāļĐāļāļĢāļąāđāļāđāļāļĩāļĒāļ§
Data Validationâ
āļāđāļāļĄāļđāļĨāļ§āļąāļāļŦāļĒāļļāļāļāļąāđāļāļŦāļĄāļāļāļ°āļāđāļēāļāļāļēāļĢāļāļĢāļ§āļāļŠāļāļāđāļāļ·āđāļāđāļŦāđāđāļāđāđāļāļ§āđāļē:
- āļāļ§āļēāļĄāļāļđāļāļāđāļāļāđāļĨāļ°āļĢāļđāļāđāļāļāļāļāļāļ§āļąāļāļāļĩāđ
- āļāļēāļĢāļāļąāļāļŦāļĄāļ§āļāļŦāļĄāļđāđāļāļĩāđāļāļđāļāļāđāļāļ (āļ§āļąāļāļŦāļĒāļļāļāļāļąāļāļāļąāļāļĪāļāļĐāđ vs āļŠāļāļēāļāļąāļāļāļēāļĢāđāļāļīāļ)
- āļāļ§āļēāļĄāļŠāļāļāļāļĨāđāļāļāļāļāļāļāļ·āđāļ
- āļāļ§āļēāļĄāļāļĢāļāļāđāļ§āļāļāļāļāļāļīāļĨāļāđāļāļĩāđāļāļģāđāļāđāļ
Pricingâ
| API Service Name | Endpoint | IC Per Request |
|---|---|---|
| Thai Holiday Data API (v1.0) | /holidays | 0.1 IC/Request |
| /holidays/year/{year} | 0.1 IC/Request | |
| /holidays/range | 0.1 IC/Request | |
| /holidays/types | 0.1 IC/Request |
Rate Limitsâ
- Default: 1000 requests āļāđāļāļāļąāđāļ§āđāļĄāļ āļāđāļ API key
- Burst: āļŠāļđāļāļŠāļļāļ 100 requests āļāđāļāļāļēāļāļĩ
- Enterprise: āļĄāļĩāļāļģāļŦāļāļāļāļĩāđāļāļģāļŦāļāļāđāļāļ
āļāļīāļāļāđāļāļāļĩāļĄāļāļēāļāļāļāļāđāļĢāļēāļŠāļģāļŦāļĢāļąāļāļāļąāļāļĢāļēāļāļēāļĢāļāļģāļāļąāļāļāļĩāđāļŠāļđāļāļāļķāđāļāļŦāļēāļāļāļģāđāļāđāļāļŠāļģāļŦāļĢāļąāļāđāļāļāļāļĨāļīāđāļāļāļąāļāļāļāļāļāļļāļ
Support and Maintenanceâ
Data Updatesâ
āļāļĩāļĄāļāļēāļāļāļāļāđāļĢāļēāđāļāļāļĢāļ°āđāļāļĻāđāļāļĒāļĢāļąāļāļāļĢāļ°āļāļąāļāļ§āđāļēāļāđāļāļĄāļđāļĨāļ§āļąāļāļŦāļĒāļļāļāļāļ°āļāļąāļāļŠāļĄāļąāļĒāļāļĒāļđāđāđāļŠāļĄāļāđāļāļĒ:
- āļāļēāļĢāļāļĢāļ§āļāļŠāļāļāļāļĢāļ°āļāļēāļĻāļāļāļāļĢāļąāļāļāļēāļĨāļāļĨāļāļ 24 āļāļąāđāļ§āđāļĄāļāļāļļāļāļ§āļąāļ
- āļāļēāļĢāļāļąāļāđāļāļ API āļ āļēāļĒāđāļāđāļĄāđāļāļĩāđāļāļąāđāļ§āđāļĄāļāļŦāļĨāļąāļāļāļēāļāļāļēāļĢāļāļĢāļ°āļāļēāļĻāļāļĒāđāļēāļāđāļāđāļāļāļēāļāļāļēāļĢ
- āļāļēāļĢāļāļĢāļ§āļāļŠāļāļāļāļ§āļēāļĄāļāļđāļāļāđāļāļāļāļāļāļāđāļāļĄāļđāļĨāļāļēāļāļŦāļĨāļēāļĒāđāļŦāļĨāđāļ
API Reliabilityâ
- Uptime: 99.9% SLA
- Response Time: < 50ms āđāļāļĒāđāļāļĨāļĩāđāļĒ
- Geographic: āđāļŦāđāļāļĢāļīāļāļēāļĢāļāļēāļāļŦāļĨāļēāļĒāļ āļđāļĄāļīāļ āļēāļāđāļāļ·āđāļāļāļĢāļ°āļŠāļīāļāļāļīāļ āļēāļāļŠāļđāļāļŠāļļāļ
Getting Helpâ
- Documentation: āļāļđāđāļĄāļ·āļāļāļāļąāļāļŠāļĄāļāļđāļĢāļāđāļāļĩāđ
- API Portal: https://iapp.co.th āļŠāļģāļŦāļĢāļąāļāļāļēāļĢāļāļąāļāļāļēāļĢāļāļąāļāļāļĩ
- Support: āļāļīāļāļāđāļāļāļĩāļĄāļāļēāļāļāļāļāđāļĢāļēāļāđāļēāļ API portal
- Status Page: āļāļĢāļ§āļāļŠāļāļāļŠāļāļēāļāļ° API āđāļĨāļ°āļāļĢāļ°āļāļēāļĻ