# Other data: Al-Quran, Alkitab, KBBI, plates, astronomy, food prices

> Documentation index for AI agents: [/llms.txt](https://docs.apiindonesia.id/llms.txt). Every page is also available as markdown: add `.md` to the URL.

Al-Quran, Alkitab, KBBI dictionary, vehicle plate codes, astronomy, food prices and dataset metadata.

Reference datasets and smaller utilities that do not fit the other groups.

All endpoints need the `x-api-key` header (see [Authentication](https://docs.apiindonesia.id/authentication.md)) and return the standard [envelope](https://docs.apiindonesia.id/errors.md). A successful request costs 2 credits.

## Endpoints on this page

- [`GET /api/v1/meta/datasets`](#get-api-v1-meta-datasets): List dataset metadata
- [`GET /api/v1/meta/datasets/{dataset}`](#get-api-v1-meta-datasets-dataset): Retrieve dataset metadata
- [`GET /api/v1/quran/list-surah`](#get-api-v1-quran-list-surah): List surah
- [`GET /api/v1/quran/surah/{id}`](#get-api-v1-quran-surah-id): Retrieve a surah
- [`GET /api/v1/alkitab/books`](#get-api-v1-alkitab-books): List books
- [`GET /api/v1/alkitab/books/{testament}`](#get-api-v1-alkitab-books-testament): List books by testament
- [`GET /api/v1/alkitab/passage/{bookAbbr}/{chapter}`](#get-api-v1-alkitab-passage-bookabbr-chapter): Read a chapter
- [`GET /api/v1/alkitab/verse/{bookAbbr}/{chapter}/{verse}`](#get-api-v1-alkitab-verse-bookabbr-chapter-verse): Read a single verse
- [`GET /api/v1/alkitab/search`](#get-api-v1-alkitab-search): Search verses
- [`GET /api/v1/kbbi/search`](#get-api-v1-kbbi-search): Search words
- [`GET /api/v1/kbbi/word/{word}`](#get-api-v1-kbbi-word-word): Look up a word
- [`GET /api/v1/kbbi/random`](#get-api-v1-kbbi-random): Random words
- [`GET /api/v1/plates`](#get-api-v1-plates): List vehicle plates
- [`GET /api/v1/plates/{code}`](#get-api-v1-plates-code): Retrieve a plate code
- [`GET /api/v1/astronomi/sun`](#get-api-v1-astronomi-sun): Sunrise & sunset
- [`GET /api/v1/astronomi/twilight`](#get-api-v1-astronomi-twilight): Twilight times
- [`GET /api/v1/astronomi/moon`](#get-api-v1-astronomi-moon): Moon phase
- [`GET /api/v1/astronomi/moon/next`](#get-api-v1-astronomi-moon-next): Upcoming moon phases
- [`GET /api/v1/astronomi/gerhana`](#get-api-v1-astronomi-gerhana): Eclipse predictions
- [`GET /api/v1/harga-pangan`](#get-api-v1-harga-pangan): Food-price series overview
- [`GET /api/v1/harga-pangan/harga`](#get-api-v1-harga-pangan-harga): Monthly food prices
- [`GET /api/v1/harga-pangan/anomali`](#get-api-v1-harga-pangan-anomali): Food-price anomaly index

## Al-Quran

Complete list of 114 Al-Quran surahs with Arabic name, Latin transliteration, translation, number of verses, and revelation place. Static data sourced from quran.gading.dev.

### GET /api/v1/quran/list-surah

**List surah.** Returns the complete list of 114 Al-Quran surahs, ordered by number.

```bash
curl "https://use.apiindonesia.id/api/v1/quran/list-surah" \
  -H "x-api-key: YOUR_API_KEY"
```

Example response (shortened):

```json
{
  "data": [
    {
      "id": 1,
      "name": "الفاتحة",
      "name_latin": "Al-Fatihah",
      "name_arabic": "الفاتحة",
      "name_translation": "Pembukaan",
      "number_of_ayahs": 7,
      "revelation_place": "mecca",
      "revelation_order": 5,
      "audio_url": "https://cdn.islamic.network/quran/audio/128/ar.alafasy/1.mp3"
    }
  ]
}
```

### GET /api/v1/quran/surah/{id}

**Retrieve a surah.** Returns the metadata of a single surah by number (1–114).

| Parameter | In | Required | Type | Description |
| --- | --- | --- | --- | --- |
| `id` | path | yes | integer | Surah number, 1–114. |

```bash
curl "https://use.apiindonesia.id/api/v1/quran/surah/1" \
  -H "x-api-key: YOUR_API_KEY"
```

Example response (shortened):

```json
{
  "data": {
    "id": 1,
    "name": "الفاتحة",
    "name_latin": "Al-Fatihah",
    "name_arabic": "الفاتحة",
    "name_translation": "Pembukaan",
    "number_of_ayahs": 7,
    "revelation_place": "mecca",
    "revelation_order": 5,
    "audio_url": "https://cdn.islamic.network/quran/audio/128/ar.alafasy/1.mp3",
    "is_active": 1
  }
}
```

## Alkitab (Bible)

Indonesian Bible (TB translation) — 66 books (39 Old Testament + 27 New Testament) with 31,104 verses. Data sourced from alkitab.sabda.org.

### GET /api/v1/alkitab/books

**List books.** Returns all 66 Bible books with chapter counts and testament classification (OT/NT).

```bash
curl "https://use.apiindonesia.id/api/v1/alkitab/books" \
  -H "x-api-key: YOUR_API_KEY"
```

Example response (shortened):

```json
{
  "data": [
    {
      "id": 1,
      "abbr": "Kej",
      "name": "Kejadian",
      "chapter_count": 50,
      "testament": "PL"
    },
    {
      "id": 40,
      "abbr": "Mat",
      "name": "Matius",
      "chapter_count": 28,
      "testament": "PB"
    }
  ]
}
```

### GET /api/v1/alkitab/books/{testament}

**List books by testament.** Filter books by testament: PL (Old Testament) or PB (New Testament).

| Parameter | In | Required | Type | Description |
| --- | --- | --- | --- | --- |
| `testament` | path | yes | string | PL or PB. |

```bash
curl "https://use.apiindonesia.id/api/v1/alkitab/books/PB" \
  -H "x-api-key: YOUR_API_KEY"
```

Example response (shortened):

```json
{
  "data": [
    {
      "id": 40,
      "abbr": "Mat",
      "name": "Matius",
      "chapter_count": 28,
      "testament": "PB"
    },
    {
      "id": 41,
      "abbr": "Mrk",
      "name": "Markus",
      "chapter_count": 16,
      "testament": "PB"
    }
  ]
}
```

### GET /api/v1/alkitab/passage/{bookAbbr}/{chapter}

**Read a chapter.** Returns all verses in a chapter. Use book abbreviation (e.g. Gen, John, Ps) or full name.

| Parameter | In | Required | Type | Description |
| --- | --- | --- | --- | --- |
| `bookAbbr` | path | yes | string | Book abbreviation or name, e.g. Kej, Yoh, Mzm. |
| `chapter` | path | yes | integer | Chapter number. |

```bash
curl "https://use.apiindonesia.id/api/v1/alkitab/passage/Kej/1" \
  -H "x-api-key: YOUR_API_KEY"
```

Example response (shortened):

```json
{
  "data": {
    "book": {
      "id": 1,
      "abbr": "Kej",
      "name": "Kejadian"
    },
    "chapter": 1,
    "total_verses": 31,
    "verses": [
      {
        "verse_number": 1,
        "title": null,
        "text": "Pada mulanya Allah menciptakan langit dan bumi."
      },
      {
        "verse_number": 2,
        "title": null,
        "text": "Bumi itu batal dan kosong, gelap gulita menutupi samudera raya..."
      }
    ]
  }
}
```

### GET /api/v1/alkitab/verse/{bookAbbr}/{chapter}/{verse}

**Read a single verse.** Returns a single verse by book, chapter, and verse number.

| Parameter | In | Required | Type | Description |
| --- | --- | --- | --- | --- |
| `bookAbbr` | path | yes | string | Book abbreviation or name. |
| `chapter` | path | yes | integer | Chapter number. |
| `verse` | path | yes | integer | Verse number. |

```bash
curl "https://use.apiindonesia.id/api/v1/alkitab/verse/Yoh/3/16" \
  -H "x-api-key: YOUR_API_KEY"
```

Example response (shortened):

```json
{
  "data": {
    "book": {
      "id": 43,
      "abbr": "Yoh",
      "name": "Yohanes"
    },
    "chapter": 3,
    "verse_number": 16,
    "title": null,
    "text": "Karena begitu besar kasih Allah akan dunia ini, sehingga Ia telah mengaruniakan Anak-Nya yang tunggal, supaya setiap orang yang percaya kepada-Nya tidak bina..."
  }
}
```

### GET /api/v1/alkitab/search

**Search verses.** Search for a word or phrase across all 31,104 Bible verses. Supports pagination via limit and offset.

| Parameter | In | Required | Type | Description |
| --- | --- | --- | --- | --- |
| `q` | query | yes | string | Search keyword, minimum 3 characters. |
| `limit` | query | no | integer | Results per page. Defaults to 20, maximum 100. |
| `offset` | query | no | integer | Pagination offset. Defaults to 0. |

```bash
curl "https://use.apiindonesia.id/api/v1/alkitab/search?q=Imanuel" \
  -H "x-api-key: YOUR_API_KEY"
```

Example response (shortened):

```json
{
  "data": [
    {
      "verse_number": 14,
      "title": null,
      "text": "Sebab itu Tuhan sendirilah yang akan memberikan kepadamu suatu pertanda: Sesungguhnya, seorang perawan akan mengandung dan melahirkan seorang anak laki-laki,...",
      "abbr": "Yes",
      "name": "Yesaya",
      "chapter": 7
    }
  ],
  "meta": {
    "total": 3,
    "page": 1,
    "per_page": 20,
    "total_pages": 1
  }
}
```

## KBBI (Indonesian Dictionary)

Indonesian Great Dictionary (KBBI) with 62,850+ word entries. Supports word search, exact word lookup, and random words. Data sourced from github.com/dyazincahya/KBBI-SQL-database (MIT License).

### GET /api/v1/kbbi/search

**Search words.** Search KBBI dictionary by keyword. Supports pagination.

| Parameter | In | Required | Type | Description |
| --- | --- | --- | --- | --- |
| `q` | query | yes | string | Search keyword. |
| `page` | query | no | integer | Page number (default 1). |
| `per_page` | query | no | integer | Items per page (default 20, max 100). |

```bash
curl "https://use.apiindonesia.id/api/v1/kbbi/search?q=rumah" \
  -H "x-api-key: YOUR_API_KEY"
```

Example response (shortened):

```json
{
  "data": [
    {
      "id": 50001,
      "word": "rumah",
      "arti": "Nomina (kata benda)\n(1) bangunan untuk tempat tinggal manusia",
      "type": 2
    }
  ],
  "meta": {
    "total": 15,
    "page": 1,
    "per_page": 5,
    "total_pages": 3
  }
}
```

### GET /api/v1/kbbi/word/{word}

**Look up a word.** Returns all KBBI entries for a specific word (some words have multiple entries).

| Parameter | In | Required | Type | Description |
| --- | --- | --- | --- | --- |
| `word` | path | yes | string | Word to look up, e.g. rumah. |

```bash
curl "https://use.apiindonesia.id/api/v1/kbbi/word/rumah" \
  -H "x-api-key: YOUR_API_KEY"
```

Example response (shortened):

```json
{
  "data": [
    {
      "id": 50001,
      "word": "rumah",
      "arti": "Nomina (kata benda)\n(1) bangunan untuk tempat tinggal manusia",
      "type": 2
    }
  ]
}
```

### GET /api/v1/kbbi/random

**Random words.** Returns random words from KBBI. Useful for games or learning apps.

| Parameter | In | Required | Type | Description |
| --- | --- | --- | --- | --- |
| `count` | query | no | integer | Number of words (default 1, max 20). |

```bash
curl "https://use.apiindonesia.id/api/v1/kbbi/random" \
  -H "x-api-key: YOUR_API_KEY"
```

Example response (shortened):

```json
{
  "data": [
    {
      "id": 12345,
      "word": "budaya",
      "arti": "Nomina (kata benda)\n(1) pikiran; akal budi",
      "type": 2
    },
    {
      "id": 67890,
      "word": "karya",
      "arti": "Nomina (kata benda)\n(1) hasil perbuatan; cipta",
      "type": 2
    }
  ]
}
```

## Vehicle Plates

Complete list of 61 Indonesian vehicle plate codes with region and province names. Static data sourced from an open dataset.

### GET /api/v1/plates

**List vehicle plates.** Returns all 61 vehicle plate codes, sorted by code.

```bash
curl "https://use.apiindonesia.id/api/v1/plates" \
  -H "x-api-key: YOUR_API_KEY"
```

Example response (shortened):

```json
{
  "data": [
    {
      "id": "plate_B",
      "plate_code": "B",
      "region": "Jakarta",
      "province": "DKI Jakarta",
      "cities": "Jakarta Pusat, Jakarta Utara, Jakarta Barat, Jakarta Selatan, Jakarta Timur, Kepulauan Seribu",
      "is_active": 1
    }
  ]
}
```

### GET /api/v1/plates/{code}

**Retrieve a plate code.** Returns details for a single plate code.

| Parameter | In | Required | Type | Description |
| --- | --- | --- | --- | --- |
| `code` | path | yes | string | Plate code, e.g. B, DK, L. |

```bash
curl "https://use.apiindonesia.id/api/v1/plates/B" \
  -H "x-api-key: YOUR_API_KEY"
```

Example response (shortened):

```json
{
  "data": {
    "id": "plate_B",
    "plate_code": "B",
    "region": "Jakarta",
    "province": "DKI Jakarta",
    "cities": "Jakarta Pusat, Jakarta Utara, Jakarta Barat, Jakarta Selatan, Jakarta Timur, Kepulauan Seribu",
    "is_active": 1
  }
}
```

## Astronomy

Astronomy data computed from public NOAA/USNO formulas.

- Sunrise and sunset, plus day length
- Twilight
- Moon phase and the upcoming moon phases
- Eclipse predictions
- Pure local computation, no external data source
- Commercially safe to use

### GET /api/v1/astronomi/sun

**Sunrise & sunset.** Returns sunrise, sunset, solar noon, and day length for a given lat/lon and date. Handles polar night / midnight sun.

| Parameter | In | Required | Type | Description |
| --- | --- | --- | --- | --- |
| `lat` | query | yes | number | Decimal latitude (-90..90), e.g. -6.2. |
| `lon` | query | yes | number | Decimal longitude (-180..180), e.g. 106.8. |
| `tanggal` | query | no | string | Date in YYYY-MM-DD. Defaults to today. |
| `tz` | query | no | string | ISO timezone offset, e.g. +07:00. Defaults to +00:00. |

```bash
curl "https://use.apiindonesia.id/api/v1/astronomi/sun?lat=-6.2&lon=106.8" \
  -H "x-api-key: YOUR_API_KEY"
```

Example response (shortened):

```json
{
  "data": {
    "date": "2025-06-21",
    "latitude": -6.2,
    "longitude": 106.8,
    "timezone": "+07:00",
    "sunrise": "06:00",
    "sunset": "17:46",
    "solarNoon": "11:53",
    "dayLength": 42343,
    "declination": 23.44,
    "equationOfTime": -0.76,
    "polarPhase": "normal"
  },
  "meta": {
    "disclaimer": "Hasil dihitung dari rumus astronomi publik (NOAA/USNO). Aksen ±2 menit adalah normal untuk terbit/terbenam.",
    "source": "Computed (NOAA/USNO)"
  }
}
```

### GET /api/v1/astronomi/twilight

**Twilight times.** Returns civil, nautical, and astronomical twilight boundaries for photography/observation.

| Parameter | In | Required | Type | Description |
| --- | --- | --- | --- | --- |
| `lat` | query | yes | number | Decimal latitude. |
| `lon` | query | yes | number | Decimal longitude. |
| `tanggal` | query | no | string | Date in YYYY-MM-DD. Defaults to today. |
| `tz` | query | no | string | ISO timezone offset, e.g. +07:00. |

```bash
curl "https://use.apiindonesia.id/api/v1/astronomi/twilight?lat=-6.2&lon=106.8" \
  -H "x-api-key: YOUR_API_KEY"
```

Example response (shortened):

```json
{
  "data": {
    "civilDawn": "05:35",
    "civilDusk": "18:11",
    "nauticalDawn": "05:06",
    "nauticalDusk": "18:40",
    "astronomicalDawn": "04:37",
    "astronomicalDusk": "19:09"
  },
  "meta": {
    "disclaimer": "Hasil dihitung dari rumus astronomi publik (NOAA/USNO)...",
    "source": "Computed (NOAA/USNO)"
  }
}
```

### GET /api/v1/astronomi/moon

**Moon phase.** Returns the moon phase (illumination, phase name, age, distance) for a given date.

| Parameter | In | Required | Type | Description |
| --- | --- | --- | --- | --- |
| `tanggal` | query | no | string | Date in YYYY-MM-DD. Defaults to today. |

```bash
curl "https://use.apiindonesia.id/api/v1/astronomi/moon" \
  -H "x-api-key: YOUR_API_KEY"
```

Example response (shortened):

```json
{
  "data": {
    "date": "2025-02-12",
    "illumination": 0.98,
    "phaseAngle": 178.2,
    "phaseName": "Bulan Purnama",
    "phaseNameEn": "Full Moon",
    "age": 14.7,
    "visiblePercent": 98,
    "trend": "waxing",
    "distanceEarthRadii": 60.3,
    "julianDay": 2460713.5
  },
  "meta": {
    "source": "Computed (NOAA/USNO)"
  }
}
```

### GET /api/v1/astronomi/moon/next

**Upcoming moon phases.** Returns the next major moon phases (new/first quarter/full/last quarter), up to 12 ahead.

| Parameter | In | Required | Type | Description |
| --- | --- | --- | --- | --- |
| `tanggal` | query | no | string | Start date in YYYY-MM-DD. Defaults to today. |
| `count` | query | no | integer | Number of phases (1–12). Defaults to 4. |

```bash
curl "https://use.apiindonesia.id/api/v1/astronomi/moon/next" \
  -H "x-api-key: YOUR_API_KEY"
```

Example response (shortened):

```json
{
  "data": [
    {
      "phase": "first_quarter",
      "name": "Kuartil Awal",
      "nameEn": "First Quarter",
      "date": "2025-01-05",
      "daysUntil": 4,
      "phaseAngle": 90
    },
    {
      "phase": "full",
      "name": "Bulan Purnama",
      "nameEn": "Full Moon",
      "date": "2025-01-13",
      "daysUntil": 12,
      "phaseAngle": 180
    }
  ],
  "meta": {
    "source": "Computed (NOAA/USNO)"
  }
}
```

### GET /api/v1/astronomi/gerhana

**Eclipse predictions.** Returns upcoming solar & lunar eclipses (approximation based on saros/draconic cycles). Dates & kinds are indicative.

| Parameter | In | Required | Type | Description |
| --- | --- | --- | --- | --- |
| `tanggal` | query | no | string | Start date in YYYY-MM-DD. Defaults to today. |
| `days` | query | no | integer | Horizon in days (1–1825). Defaults to 365. |

```bash
curl "https://use.apiindonesia.id/api/v1/astronomi/gerhana" \
  -H "x-api-key: YOUR_API_KEY"
```

Example response (shortened):

```json
{
  "data": [
    {
      "type": "lunar",
      "date": "2025-03-14",
      "kind": "Total",
      "kindEn": "Total",
      "magnitude": 0.93
    },
    {
      "type": "solar",
      "date": "2025-03-29",
      "kind": "Sebagian",
      "kindEn": "Partial",
      "magnitude": 0.71
    }
  ],
  "meta": {
    "source": "Computed (NOAA/USNO)",
    "note": "Prediksi aproximasi berbasis siklus saros/draconic. Tanggal & jenis bersifat indikatif."
  }
}
```

## Food Prices & Anomaly Index (National Food Agency)

Official National Food Agency (Bapanas) food-price data.

- Monthly average consumer prices since 2021 and producer prices since 2019
- National and per-province coverage
- The latest available open price edition ends in January 2026, not real-time prices
- Price Anomaly Index (QIPA/AIPA/IFPA) to flag abnormal spikes and drops
- Source: BPN Open Data

### GET /api/v1/harga-pangan

**Food-price series overview.** Returns a summary of every series (consumer/producer level x national/province region): commodity count, row count, and the available month range.

```bash
curl "https://use.apiindonesia.id/api/v1/harga-pangan" \
  -H "x-api-key: YOUR_API_KEY"
```

Example response (shortened):

```json
{
  "success": true,
  "data": [
    {
      "tingkat": "konsumen",
      "wilayah": "nasional",
      "komoditas": 46,
      "rows": 1146,
      "dari": "2021-01",
      "sampai": "2026-01"
    },
    {
      "tingkat": "konsumen",
      "wilayah": "provinsi",
      "komoditas": 27,
      "rows": 36348,
      "dari": "2021-01",
      "sampai": "2026-01"
    }
  ]
}
```

### GET /api/v1/harga-pangan/harga

**Monthly food prices.** Returns monthly average food prices, filterable by level, region, commodity, province, and month range. Prices are integers in rupiah; "-" in the source becomes null.

| Parameter | In | Required | Type | Description |
| --- | --- | --- | --- | --- |
| `tingkat` | query | no | string | Set tingkat=konsumen or tingkat=produsen. |
| `wilayah` | query | no | string | Set wilayah=nasional or wilayah=provinsi. |
| `komoditas` | query | no | string | Filter by commodity name, e.g. beras premium (partial match). |
| `provinsi` | query | no | string | Filter by province name or code, e.g. aceh or 11. |
| `dari` | query | no | string | Start month, format yyyy-mm, e.g. 2025-01. |
| `sampai` | query | no | string | End month, format yyyy-mm, e.g. 2026-01. |
| `page` | query | no | integer | Page to retrieve. Defaults to 1. |
| `limit` | query | no | integer | Items per page. Default 20, max 100. |

```bash
curl "https://use.apiindonesia.id/api/v1/harga-pangan/harga" \
  -H "x-api-key: YOUR_API_KEY"
```

Example response (shortened):

```json
{
  "success": true,
  "data": [
    {
      "tingkat": "konsumen",
      "wilayah": "nasional",
      "kode_provinsi": null,
      "provinsi": null,
      "komoditas": "Beras Premium",
      "tanggal": "2026-01",
      "harga": 16080,
      "harga_raw": "Rp16,080"
    },
    {
      "tingkat": "konsumen",
      "wilayah": "nasional",
      "kode_provinsi": null,
      "provinsi": null,
      "komoditas": "Beras Medium",
      "tanggal": "2026-01",
      "harga": 15100,
      "harga_raw": "Rp15,100"
    }
  ],
  "meta": {
    "total": 36,
    "page": 1,
    "per_page": 3,
    "total_pages": 12
  }
}
```

### GET /api/v1/harga-pangan/anomali

**Food-price anomaly index.** Strategic commodity price-anomaly indices (QIPA, AIPA, IFPA) with status Alert (Low/High Price) or Normal. From National Food Agency monthly releases (check the latest date in the response); useful to flag abnormal price spikes or drops.

| Parameter | In | Required | Type | Description |
| --- | --- | --- | --- | --- |
| `komoditas` | query | no | string | Filter by commodity name, e.g. beras premium. |
| `dari` | query | no | string | Start month, format yyyy-mm. |
| `sampai` | query | no | string | End month, format yyyy-mm. |
| `page` | query | no | integer | Page to retrieve. Defaults to 1. |
| `limit` | query | no | integer | Items per page. Default 20. |

```bash
curl "https://use.apiindonesia.id/api/v1/harga-pangan/anomali" \
  -H "x-api-key: YOUR_API_KEY"
```

Example response (shortened):

```json
{
  "success": true,
  "data": [
    {
      "tanggal": "2026-08",
      "komoditas": "Beras Premium",
      "qipa": -1.97,
      "aipa": -0.86,
      "ifpa": -1.3,
      "status": "Alert (Low Price)"
    }
  ],
  "meta": {
    "total": 105,
    "page": 1,
    "per_page": 20,
    "total_pages": 6
  }
}
```

## Dataset Metadata

Snapshot and provenance metadata for datasets, including source, version, item count, synchronization time, checksum, status, and warnings.

### GET /api/v1/meta/datasets

**List dataset metadata.** Returns metadata for every registered dataset. This endpoint does not require an API key.

```bash
curl "https://use.apiindonesia.id/api/v1/meta/datasets"
```

Example response (shortened):

```json
{
  "success": true,
  "data": [
    {
      "dataset": "sekolah",
      "source_url": "https://example.go.id/sekolah.csv",
      "source_kind": "snapshot",
      "source_version": "2026-09-18",
      "source_year": 2026,
      "total_items": 200123,
      "synced_at": "2026-09-18T01:02:03.000Z",
      "schema_version": "1",
      "payload_sha256": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
      "status": "ready",
      "warnings": []
    }
  ]
}
```

### GET /api/v1/meta/datasets/{dataset}

**Retrieve dataset metadata.** Returns snapshot and provenance metadata for one dataset.

| Parameter | In | Required | Type | Description |
| --- | --- | --- | --- | --- |
| `dataset` | path | yes | string | Dataset ID, e.g. sekolah. |

```bash
curl "https://use.apiindonesia.id/api/v1/meta/datasets/sekolah"
```

Example response (shortened):

```json
{
  "success": true,
  "data": {
    "dataset": "sekolah",
    "source_url": null,
    "source_kind": "unknown",
    "source_version": null,
    "source_year": null,
    "total_items": 200123,
    "synced_at": null,
    "schema_version": null,
    "payload_sha256": null,
    "status": "unknown",
    "warnings": [
      "Backfilled from an existing table; original sync provenance is unavailable."
    ]
  }
}
```
