WiHub
REST API v1

Dokumentasi API WiHub

API publik WiHub memberi akses baca (read-only) ke data tempat, WiFi, artikel, mitra ISP, dan direktori pengguna yang sudah publik. Semua endpoint memakai path bersih tanpa akhiran .php dan mengembalikan JSON.

Autentikasi

Setiap permintaan wajib menyertakan API key lewat header X-API-Key atau parameter query ?api_key=.

curl -H "X-API-Key: demo_wifinder_api_key_12345" \
  "https://wihub.site/api/v1/places"

Gunakan API key demo di atas untuk mencoba. Hubungi admin melalui halaman Tentang Kami untuk mendapatkan key produksi.

Rate Limit

Setiap API key punya batas permintaan per menit dan per hari (default 60/menit, 2000/hari, dapat disesuaikan admin). Jika terlampaui, API mengembalikan status 429 Too Many Requests.

Places

Data tempat ber-WiFi yang sudah disetujui.

GET/api/v1/places

Daftar tempat.

ParameterKeterangan
qPencarian nama/kota (opsional)
categorySlug kategori (opsional)
cityNama kota (opsional)
page, limitPagination (limit maks. 50)

Contoh Permintaan

curl -H "X-API-Key: demo_wifinder_api_key_12345" \
  "https://wihub.site/api/v1/places?limit=1"

Contoh Respons

{
  "data": [
    {
      "id": 1,
      "name": "Le Cafe",
      "slug": "le-cafe",
      "city": "Kota Cirebon",
      "lat": -6.7242918,
      "lng": 108.5520605,
      "avgRating": 5,
      "ratingCount": 1,
      "isVerified": true,
      "category": { "name": "Coffee Shop", "slug": "coffee-shop" },
      "url": "https://wihub.site/places/le-cafe"
    }
  ],
  "meta": { "total": 151, "page": 1, "limit": 1 }
}
GET/api/v1/places/{slug}

Detail satu tempat, termasuk fasilitas & data WiFi aktif.

Contoh Permintaan

curl -H "X-API-Key: demo_wifinder_api_key_12345" \
  "https://wihub.site/api/v1/places/le-cafe"

Contoh Respons

{
  "data": {
    "id": 1,
    "name": "Le Cafe",
    "slug": "le-cafe",
    "facilities": ["WiFi Gratis", "Colokan Listrik"],
    "wifi": { "ssid": "LeCafe_Guest", "type": "WPA2", "downloadMbps": 45.2 },
    "url": "https://wihub.site/places/le-cafe"
  }
}

Categories

GET/api/v1/categories

Daftar semua kategori tempat.

Contoh Permintaan

curl -H "X-API-Key: demo_wifinder_api_key_12345" \
  "https://wihub.site/api/v1/categories"

Contoh Respons

{
  "data": [
    { "id": 1, "name": "Coffee Shop", "slug": "coffee-shop" }
  ]
}

Facilities

GET/api/v1/facilities

Daftar semua fasilitas yang tersedia sebagai filter.

Contoh Permintaan

curl -H "X-API-Key: demo_wifinder_api_key_12345" \
  "https://wihub.site/api/v1/facilities"

Contoh Respons

{
  "data": [
    { "id": 1, "name": "WiFi Gratis" }
  ]
}

Articles

Artikel & tips seputar WiFi yang sudah terbit.

GET/api/v1/articles

Daftar artikel terbit.

ParameterKeterangan
qPencarian judul (opsional)
categorySlug kategori artikel (opsional)
page, limitPagination (limit maks. 50)

Contoh Permintaan

curl -H "X-API-Key: demo_wifinder_api_key_12345" \
  "https://wihub.site/api/v1/articles?limit=1"

Contoh Respons

{
  "data": [
    {
      "id": 1,
      "title": "5 Tips Memilih Coffee Shop dengan WiFi Kencang",
      "slug": "5-tips-memilih-coffee-shop-dengan-wifi-kencang",
      "excerpt": "Jangan sampai salah pilih tempat kerja...",
      "publishAt": "2026-07-21 08:01:57",
      "authorName": "Super Admin",
      "category": { "name": "Tips WiFi", "slug": "tips-wifi" },
      "url": "https://wihub.site/article/5-tips-memilih-coffee-shop-dengan-wifi-kencang"
    }
  ],
  "meta": { "total": 3, "page": 1, "limit": 1 }
}
GET/api/v1/articles/{slug}

Detail satu artikel, termasuk konten HTML lengkap.

Contoh Permintaan

curl -H "X-API-Key: demo_wifinder_api_key_12345" \
  "https://wihub.site/api/v1/articles/5-tips-memilih-coffee-shop-dengan-wifi-kencang"

Contoh Respons

{
  "data": {
    "id": 1,
    "title": "5 Tips Memilih Coffee Shop dengan WiFi Kencang",
    "slug": "5-tips-memilih-coffee-shop-dengan-wifi-kencang",
    "contentHtml": "<p>...</p>",
    "url": "https://wihub.site/article/5-tips-memilih-coffee-shop-dengan-wifi-kencang"
  }
}

ISP

Direktori mitra penyedia layanan internet beserta paket yang ditawarkan.

GET/api/v1/isps

Daftar ISP yang disetujui.

ParameterKeterangan
qPencarian nama ISP/perusahaan (opsional)
page, limitPagination (limit maks. 50)

Contoh Permintaan

curl -H "X-API-Key: demo_wifinder_api_key_12345" \
  "https://wihub.site/api/v1/isps?limit=1"

Contoh Respons

{
  "data": [
    {
      "id": 1,
      "name": "Biznet",
      "slug": "biznet",
      "companyName": "PT Supra Primatama Nusantara",
      "isVerified": true,
      "url": "https://wihub.site/isp/biznet"
    }
  ],
  "meta": { "total": 3, "page": 1, "limit": 1 }
}
GET/api/v1/isps/{slug}

Detail satu ISP beserta daftar paket aktifnya.

Contoh Permintaan

curl -H "X-API-Key: demo_wifinder_api_key_12345" \
  "https://wihub.site/api/v1/isps/biznet"

Contoh Respons

{
  "data": {
    "id": 1,
    "name": "Biznet",
    "slug": "biznet",
    "packages": [
      { "id": 1, "name": "Biznet Home 50", "speedMbps": 50, "price": 340000, "promoPrice": null }
    ],
    "url": "https://wihub.site/isp/biznet"
  }
}

People

Direktori kontributor publik WiHub beserta tingkat kontribusi ("kasta") mereka. Hanya profil dengan visibilitas publik yang tampil.

GET/api/v1/people

Daftar pengguna publik, diurutkan dari skor kontribusi tertinggi.

ParameterKeterangan
qPencarian nama/username (opsional)
page, limitPagination (limit maks. 50)

Contoh Permintaan

curl -H "X-API-Key: demo_wifinder_api_key_12345" \
  "https://wihub.site/api/v1/people?limit=1"

Contoh Respons

{
  "data": [
    {
      "id": 3,
      "name": "Muhaferdian",
      "username": "muhaferdian",
      "tier": { "key": "active", "label": "Kontributor Aktif", "score": 31 },
      "contributions": { "places": 6, "wifi": 5, "reviews": 0, "forumPosts": 3 },
      "url": "https://wihub.site/people/muhaferdian"
    }
  ],
  "meta": { "total": 4, "page": 1, "limit": 1 }
}
GET/api/v1/people/{username}

Detail profil publik satu pengguna, termasuk sosial media & skor kontribusi.

Contoh Permintaan

curl -H "X-API-Key: demo_wifinder_api_key_12345" \
  "https://wihub.site/api/v1/people/muhaferdian"

Contoh Respons

{
  "data": {
    "id": 3,
    "name": "Muhaferdian",
    "username": "muhaferdian",
    "socials": { "website": null, "instagram": null },
    "tier": { "key": "active", "label": "Kontributor Aktif", "score": 31 },
    "url": "https://wihub.site/people/muhaferdian"
  }
}

Kode Error

KodeArti
400Parameter wajib tidak disertakan
401API key tidak disertakan atau tidak valid
404Data tidak ditemukan
429Batas permintaan (rate limit) tercapai