country, the exact list RegisterRequest validates the timezone field against - the two can never disagree. With country, PHP's own per-country identifier list.App\Http\Controllers\Api\V1\Public\CountryController::timezones()api.v1.public.timezones.indexthrottle:public. See docs/api/README.md §14.GET/api/v1/public/timezones| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
country | string(2) | No | none (returns every identifier) | ISO 3166-1 alpha-2 country code. Validated by TimezonesRequest |
200 OKcountry: every PHP timezone identifier, 419 at capture time (truncated to 3 below). With country=IT: exactly one entry, captured in full.{
"success": true,
"status": "success",
"message": "OK",
"data": [
{ "value": "Europe/Rome", "label": "Europe/Rome" }
]
}country (first 3 of 419 entries, alphabetical):{
"success": true,
"status": "success",
"message": "OK",
"data": [
{ "value": "Africa/Abidjan", "label": "Africa/Abidjan" },
{ "value": "Africa/Accra", "label": "Africa/Accra" },
{ "value": "Africa/Addis_Ababa", "label": "Africa/Addis_Ababa" }
]
}| Field | Type | Nullable | Always present | Description |
|---|---|---|---|---|
data[].value | string | No | Yes | The identifier to send back as timezone at registration |
data[].label | string | No | Yes | Identical to value. Kept as a separate key for the same {value, label} shape every other public lookup uses |
422 Unprocessable Entity — validation{
"success": false,
"status": "error",
"message": "Validation failed",
"errors": {
"country": ["Invalid country code"]
}
}429 Too Many Requestspublic limiter (300 requests per minute, keyed by IP). No errors key.{
"success": false,
"status": "error",
"message": "Too many requests"
}country parameter, this is the only one checked through App\Rules\CountryCode inside a FormRequest rather than an inline domain check - so its 422 always carries errors, never the bare domain-rejection shape.utility had no equivalent.curl --location 'https://test.diveraid.com/api/v1/public/timezones?country='{
"status": "success",
"message": "string",
"data": [
{
"value": "Europe/Rome",
"label": "Europe/Rome"
}
]
}