Locations
Data lokasi untuk onboarding dan profil. Semua endpoint di bagian ini tidak memerlukan authentication.
GET /locations?type=countries
Mendapatkan daftar negara yang tersedia.
Contoh Request
curl -X GET https://fumai.app/api/mobile/v1/locations?type=countriesconst res = await fetch('https://fumai.app/api/mobile/v1/locations?type=countries')
const data = await res.json()Response 200
{
"success": true,
"data": [
{
"id": "clx...",
"code": "ID",
"name": "Indonesia",
"flag": "🇮🇩",
"currency": "IDR",
"defaultTimezone": "Asia/Jakarta"
},
{
"id": "clx...",
"code": "AU",
"name": "Australia",
"flag": "🇦🇺",
"currency": "AUD",
"defaultTimezone": "Australia/Sydney"
}
]
}Info: Indonesia selalu di posisi pertama.
GET /locations?type=regions
Mendapatkan daftar provinsi/region berdasarkan negara.
Query Parameters
| Parameter | Tipe | Wajib | Keterangan |
|---|---|---|---|
type | string | Ya | "regions" |
countryId | string | Ya* | Country ID |
countryCode | string | Ya* | Country code (contoh: "ID") |
Info: Salah satu dari
countryIdataucountryCodewajib diisi.
Contoh Request
curl -X GET "https://fumai.app/api/mobile/v1/locations?type=regions&countryCode=ID"const res = await fetch(
'https://fumai.app/api/mobile/v1/locations?type=regions&countryCode=ID'
)
const data = await res.json()Response 200
{
"success": true,
"data": [
{
"id": "clx...",
"code": "JK",
"name": "DKI Jakarta",
"nameLocal": "DKI Jakarta",
"timezone": "Asia/Jakarta"
},
{
"id": "clx...",
"code": "BA",
"name": "Bali",
"nameLocal": "Bali",
"timezone": "Asia/Makassar"
}
]
}Info: Beberapa negara mungkin tidak punya regions. Jika
datakosong, langsung fetch cities bycountryId.
GET /locations?type=cities
Mendapatkan daftar kota.
Query Parameters
| Parameter | Tipe | Wajib | Keterangan |
|---|---|---|---|
type | string | Ya | "cities" |
countryId | string | Tidak* | Country ID |
countryCode | string | Tidak* | Country code |
regionId | string | Tidak* | Region ID (filter per provinsi) |
Info: Salah satu dari
countryId,countryCode, atauregionIdwajib diisi.
Contoh Request
curl -X GET "https://fumai.app/api/mobile/v1/locations?type=cities®ionId=clx..."const res = await fetch(
`https://fumai.app/api/mobile/v1/locations?type=cities®ionId=${regionId}`
)
const data = await res.json()Response 200
{
"success": true,
"data": [
{
"id": "clx...",
"name": "Jakarta Selatan",
"nameLocal": "Jakarta Selatan",
"timezone": "Asia/Jakarta",
"regionId": "clx..."
},
{
"id": "clx...",
"name": "Denpasar",
"nameLocal": "Denpasar",
"timezone": "Asia/Makassar",
"regionId": "clx..."
}
]
}Info: Cities diurutkan berdasarkan popularitas (populer duluan), lalu alfabet.
Alur Pemilihan Lokasi
1. GET /locations?type=countries
→ User pilih negara
2. GET /locations?type=regions&countryId={id}
→ Jika ada regions → user pilih region
→ Jika kosong → skip, langsung ke step 3
3. GET /locations?type=cities®ionId={id}
atau: GET /locations?type=cities&countryId={id}
→ User pilih kota
4. POST /onboarding/save-profile
→ { countryId, regionId, cityId, subStep: 8 }Last updated on