Skip to Content
API ReferenceLocations

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=countries
const 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

ParameterTipeWajibKeterangan
typestringYa"regions"
countryIdstringYa*Country ID
countryCodestringYa*Country code (contoh: "ID")

Info: Salah satu dari countryId atau countryCode wajib 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 data kosong, langsung fetch cities by countryId.


GET /locations?type=cities

Mendapatkan daftar kota.

Query Parameters

ParameterTipeWajibKeterangan
typestringYa"cities"
countryIdstringTidak*Country ID
countryCodestringTidak*Country code
regionIdstringTidak*Region ID (filter per provinsi)

Info: Salah satu dari countryId, countryCode, atau regionId wajib diisi.

Contoh Request

curl -X GET "https://fumai.app/api/mobile/v1/locations?type=cities&regionId=clx..."
const res = await fetch( `https://fumai.app/api/mobile/v1/locations?type=cities&regionId=${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&regionId={id} atau: GET /locations?type=cities&countryId={id} → User pilih kota 4. POST /onboarding/save-profile → { countryId, regionId, cityId, subStep: 8 }
Last updated on