Dokumentasi/API/API provider

Pahami endpoint kategori dan provider publik.

Halaman ini merangkum endpoint publik yang paling sering dipakai untuk membaca kategori aktif, daftar provider, dan detail satu provider yang sudah tayang.

Cakupan halaman

Semua endpoint di halaman ini bersifat publik. Tidak ada API key atau session yang dibutuhkan untuk membaca kategori aktif, daftar provider, maupun detail satu provider yang sudah tayang.

  • Semua response memakai bentuk JSON.
  • Listing dan detail provider hanya mengambil provider yang `approved` dan sudah punya `publishedAt`.
  • Field ringkas provider mengikuti bentuk hasil `toBusinessSummary` di backend.

GET /api/v1/categories

Endpoint ini dipakai untuk membaca kategori aktif beserta child category yang boleh dipakai oleh direktori, filter, dan halaman discovery programatik.

  • Autentikasi: tidak perlu.
  • Parameter wajib: tidak ada.
  • Respons memisahkan kategori induk dan `children` di dalam objek yang sama.
{
  "data": [
    {
      "id": "cat-parent",
      "slug": "digital-infrastructure",
      "name": "Digital Infrastructure",
      "children": [
        {
          "id": "cat-child",
          "slug": "nextjs-development",
          "name": "Next.js Development"
        }
      ]
    }
  ],
  "meta": {
    "total": 12,
    "rootCount": 4
  }
}

GET /api/v1/providers

Endpoint ini dipakai untuk membaca daftar provider publik dengan pagination, sorting, dan filter dasar.

  • Autentikasi: tidak perlu.
  • Query opsional: page, limit, sort, city, country, minTrustLevel.
  • limit maksimal 50. Nilai default saat ini 20.
  • sort saat ini mendukung rating atau trust.
GET /api/v1/providers?page=1&limit=20&sort=trust&city=Jakarta&minTrustLevel=2
{
  "data": [
    {
      "id": "provider-1",
      "slug": "acme-studio",
      "companyName": "Acme Studio",
      "city": "Jakarta",
      "country": "ID",
      "trustLevel": 3,
      "confidenceScore": "0.800",
      "overallRating": "4.80",
      "totalReviews": 12
    }
  ],
  "meta": {
    "page": 1,
    "limit": 20,
    "total": 120,
    "totalPages": 6,
    "sort": "trust"
  }
}

GET /api/v1/providers/{slug}

Endpoint ini dipakai untuk membaca ringkasan satu provider yang sudah tayang.

  • Autentikasi: tidak perlu.
  • Path wajib: slug.
  • Jika slug tidak ditemukan atau provider belum tayang, endpoint mengembalikan error BUSINESS_NOT_FOUND dengan status 404.
  • Field yang dikembalikan tetap ringkas dan tidak sama dengan data di dashboard internal.
GET /api/v1/providers/acme-studio
{
  "data": {
    "id": "provider-1",
    "slug": "acme-studio",
    "companyName": "Acme Studio",
    "tagline": "Build web apps",
    "trustLevel": 3,
    "confidenceScore": "0.800",
    "overallRating": "4.80",
    "totalReviews": 12,
    "capabilityTags": ["website", "seo"]
  }
}