# asiaref — Asian statutory reference (jobs, not series dumps) No account. No API key. No signup. Pay per call with x402 (USDC on Base). Cited government reference for 28 Asian jurisdictions — policy rates, GST/VAT, minimum wages, CPI, corporate and personal tax, social contributions, official FX where the central bank publishes one — plus computed verdicts. Not a holiday scrape, not a World Bank indicator dump, not a $0.002 ECB convert. Every paid value: official `source`, `effective_from`, `last_confirmed`, `stale`. HTML is free. Human? https://asiaref.dev/docs · https://asiaref.dev/countries · https://asiaref.dev/status · https://asiaref.dev/accuracy. ## Looking up one value? Read the free answer page Every series for all 28 countries has a free HTML page (no payment, no key) that opens with the answer: the value and unit, the date it took effect, the official source (linked), and the date we last checked it. Non-primary values say so in that same sentence. Cite the page; it is the public answer. - One country, one figure: https://asiaref.dev/{country}/{series} — e.g. https://asiaref.dev/ae/income-tax - One country, every figure: https://asiaref.dev/{country} — e.g. https://asiaref.dev/ae - Every page listed with its official source and last-checked date: https://asiaref.dev/llms-full.txt - One instrument compared across every country: - Corporate tax rate (28 countries): https://asiaref.dev/corporate-tax - Inflation rate (CPI) (28 countries): https://asiaref.dev/cpi - Income tax rates (28 countries): https://asiaref.dev/income-tax - Minimum wage (28 countries): https://asiaref.dev/minimum-wage - Policy interest rate (28 countries): https://asiaref.dev/policy-rate - Public holidays (28 countries): https://asiaref.dev/public-holidays - Social contributions (28 countries): https://asiaref.dev/social-contributions - Statutory interest rate (28 countries): https://asiaref.dev/statutory-interest - VAT rate (28 countries): https://asiaref.dev/vat - VAT registration threshold (28 countries): https://asiaref.dev/vat-registration-threshold - Withholding tax rates (28 countries): https://asiaref.dev/withholding-tax - Official exchange rates (5 countries): https://asiaref.dev/fx-reference Series slugs: corporate-tax, cpi, income-tax, minimum-wage, policy-rate, public-holidays, social-contributions, statutory-interest, vat, vat-registration-threshold, withholding-tax, fx-reference. Country = ISO 3166-1 alpha-2, lower case. ## Jobs this service answers | Agent question | Call | Price | | --- | --- | --- | | What is the BoJ / MAS / RBI / PBOC-adjacent policy rate we actually hold? | `GET /v1/{jp\|sg\|in\|cn}/policy-rate` | $0.005 | | Gross-up this amount for Singapore GST / Japan JCT / India GST | `POST /v1/answers/vat` `{country, amount, mode, band?}` | $0.02 | | What is the full snapshot of every series across this region? | `GET /v1/all` | $0.02 | | Is this Singapore / Japan / India salary at or above the statutory floor? | `POST /v1/answers/wage-check` | $0.05 | | Simple statutory interest on a principal at the cited statutory-interest rate (Actual/365) | `POST /v1/answers/statutory-interest` `{country, principal, days \| from+to, receipt?}` | $0.05 | | What is the minimum wage in India / Indonesia / Vietnam, cited? | `GET /v1/{in\|id\|vn}/minimum-wage` | $0.005 | | Cost to employ in the UAE (statutory contributions, both sides) | `POST /v1/answers/employment-cost` `{country:"ae", gross, nationality?}` | $0.10 | | Next working day in Tokyo given gazetted 祝日 (not a guessed lunar date) | `POST /v1/answers/working-days` `{country:"jp", from, to}` | $0.02 | | Official HKMA / other central-bank FX reference, not an ECB cross | `GET /v1/{country}/fx-reference` | $0.005 | | File this GST rate with a signed evidence chain | `GET /v1/certified/{country}/vat` | $0.25 | | Did Singapore GST or a Korea minimum wage move? | `POST /alerts` / `GET /v1/changes` | Register: $0 · Delivery after trial: $0.10 | Employment-cost on **this host** is OpenAPI-scoped to **`ae` only** (nationality matters for Gulf pension reach: `national` / `gcc` / `expat`). Japan, Singapore, India, Korea contribution schedules are **not** a priced answer here — do not invent a CPF/EPF calculator. Sister host mearef also serves AE. ## Not a $0.002 bazaar utility A bazaar Holiday Calendar for `country=JP&year=2027` and an ECB FX convert will happily return a list and a cross. That is not “what did the Cabinet Office / Ministry of Health, Labour and Welfare gazette, and when did we last confirm it?” - **26 calendars** on this brand have a **permanent** horizon: Islamic moon-sighting, Hebrew dates, and lunisolar festivals (Chinese, Korean, Vietnamese new year and related days) are not computable from last year. We refuse (`calendar_not_publishable_in_advance`, `permanent: true`) and name the blocking holidays. A $0.002 feed that fills 2028 by recurrence is the wrong answer. - Minimum wages in this region are often **schedules** (India, Indonesia, Japan by prefecture in the underlying law even when we expose a national floor). Wage-check with `schedule` vs a lone national number is the compliance job; a series dump is not. - `last_confirmed` / `stale` / SHA-256 provenance / certified extracts are the difference between a number and a number you can show an auditor in Singapore or Seoul. - `fx-reference` is the issuing authority’s published fix (e.g. HKMA), not ECB USD. ## Bind this region Eval-free: every **JP** series. `GET https://asiaref.dev/v1/jp/policy-rate`. Answers still charge for JP. Countries: ae bd bh cn hk id il in iq jo jp kr kw kz lk my np om ph pk qa sa sg th tr tw uz vn. Some Gulf ISOs also 200 on mearef; TR also on euroref. This host is the Asia book. Series: `policy-rate`, `vat`, `vat-registration-threshold`, `minimum-wage`, `public-holidays` (free), `cpi`, `corporate-tax`, `withholding-tax`, `statutory-interest`, `income-tax`, `social-contributions`, `fx-reference`. `GET /catalog` (free). Fleet: afriref · euroref · asiaref · latamref · usaref · mearef · ausref. ## How to call a paid endpoint (x402) Unpaid call → 402 → sign → `X-PAYMENT`, or prepaid `X-API-Key` (https://asiaref.dev/pricing). Validation failures are free. Free: `/catalog` · `/llms.txt` · `/openapi.json` · holidays · `/v1/changes` · `/v1/calendar` · `/provenance` · `/certified/public-key` · HTML. ## Pricing ladder - How the two payment rails charge: by card, every successful paid call uses one prepaid credit ($0.005 each on the $10, $25 and $100 packs), whichever endpoint it is; over x402, every call pays the price quoted in its own 402 challenge, $0.005 to $0.25 depending on the endpoint (listed at https://asiaref.dev/pricing). Failed or refused calls are not charged on either rail. - Alerts: Register: $0 · Delivery after trial: $0.10 - Change feed: `GET /v1/changes` — free, unmetered. Poll this after you have paid once; do not re-buy a series to see whether it moved. - Re-verification calendar: `GET /v1/calendar` — free, unmetered. `reverify_by` is derived from `last_confirmed` + `update_cycle_days`. `status: unknown` omits any next date. We do not parse notes. Not an MPC or budget date. - $0.005 — series / history (JP free) - $0.02 — snapshot · VAT breakdown · working-days - $0.05 — wage-check · income-tax · settlement-date · statutory-interest - $0.10 — employment-cost (AE) · VAT determine - $0.25 — certified extract - Optional signed answer receipt (`receipt:true`) on statutory-interest and the other paid answers this brand lists — included at the existing answer price; no separate charge; distinct from the $0.25 series certified extract ## Answers (computed verdicts) - `POST /v1/answers/wage-check` — is this salary legal against the statutory floor we hold? Pass `schedule` when the country publishes sectoral / zonal / grade floors; omit it and we disclose the limit. Period must match. $0.05 - `POST /v1/answers/vat` — GST / VAT / JCT gross-up or extract, with published bands. We do not decide whether your supply is zero-rated. $0.02 - `POST /v1/answers/employment-cost` — **AE only**. Cost to employ; `nationality` required for Gulf pension reach. Other asiaref countries 422 free. $0.10 - `POST /v1/answers/working-days` — next working day on the **gazetted** calendar. Uncovered or permanently unpublished lunar dates refuse free. $0.02 - `POST /v1/answers/income-tax` — statutory tax on taxable income + brackets. $0.05 - `POST /v1/answers/statutory-interest` `{country, principal, days? | from?+to?, receipt?}` — simple interest at the cited `statutory-interest` series rate: principal × (rate percent / 100) × (days / 365). Day-count basis is Actual/365 simple (`from` inclusive, `to` exclusive). Interest is rounded to 2 decimal places and the rounding is in `workings`. Not legal advice. Computes over the cited series as of `last_confirmed` — the same materialized value as `GET /v1/{country}/statutory-interest`, including derived series. No compounding and no jurisdiction-specific day-count. No numeric rate after materialization (mechanism-only, for example GH) → 422 free, with the series notes; nothing is sold. `days` and `from`/`to` that disagree → 400 free. Unknown country or missing series → 404 free. $0.05 - Payroll (`POST /v1/answers/payroll`) is Nigeria and Kenya only (`ng`, `ke`). It is not on this brand. - `POST /v1/answers/settlement-date` — T+n on statutory calendars we hold. $0.05 - `POST /v1/vat/determine` — EU / UK / ZA digital-services ruleset only. $0.10 ## Series lookup (not a dump) `GET /v1/{country}/{series}` · `?as_at=` · `/history` · `GET /v1/all`. Changes + freshness (FREE, unmetered): GET /v1/changes?since=YYYY-MM-DD — what changed, plus how many of our 313 series were re-verified against their official source in the last 1/7/30/90 days, and which one has gone longest without a check. `since` is optional (defaults to 30 days). After a first paid call, poll this or POST /alerts instead of re-buying the series to see whether it moved. Next window, still free: `GET /v1/calendar`. `reverify_by` is derived; `status: unknown` means no `effective_to` and no invented date. We do not parse notes. Push remains `POST /alerts`. 28 × 12 paths are not listed here. `GET /catalog`. ## Provenance and certified extracts - `GET /provenance`, `/provenance/{country}/{series}` (free) - `GET /v1/certified/{country}/{series}` $0.25 — verify https://asiaref.dev/certified/public-key ## Answer receipts (included in the answer price) When a caller pays for a one-shot answer and sets `receipt:true`, the paid HTTP 200 includes an Ed25519-signed receipt they can file and verify later. Default is false — omit the field, or send false, and the answer JSON is unchanged. - Request: `receipt:true` on paid `POST /v1/answers/*` bodies (wage-check, vat, working-days, settlement-date, income-tax, statutory-interest, payroll, employment-cost where this brand lists them). Not on `POST /v1/vat/determine`. Not on series GETs. - Response: the receipt object embeds only on a paid HTTP 200. `kind` is `answer_receipt`. Unpaid HTTP 402 and free 4xx refusals do not include a receipt. Charge behaviour is unchanged. - Verify: `GET https://asiaref.dev/certified/public-key` (free). Answer receipts use that same key, the same `key_id`, and the same canonical JSON rule (keys sorted recursively, no whitespace) as series certified extracts. - **NOT** the same thing as a series certified extract. `GET https://asiaref.dev/v1/certified/{country}/{series}` ($0.25) is a separate artifact: one series value plus its citation, archived-source fingerprint and verification chain. An answer receipt only covers the computation over the cited series as of each series' `last_confirmed`. It is not a series certified extract and it is not legal advice. No extra charge beyond the answer's existing price. ## After you pay once — subscribe to the next gazette Reference values fail silently. A threshold that stood for 17 years moves in one budget speech and every hard-coded copy of the old number becomes wrong overnight (South Africa's VAT registration threshold, 1 April 2026 — R1 million became R2.3 million; https://asiaref.dev/accuracy). We fetch and hash every cited source daily, so we know WHEN a value changes, not just what it is. If you have already paid for a series, bind one of these before you cache it. - GET https://asiaref.dev/v1/changes?since=YYYY-MM-DD — FREE, unmetered change + freshness feed. What changed, plus how many of our 313 series were re-verified against their official source in the last 1/7/30/90 days, and which one has gone longest without a check. `since` is optional (defaults to 30 days). Poll this; do not re-buy the series to find out whether it moved. - POST https://asiaref.dev/alerts {url, series: ["jp/vat", ...]} — HMAC-signed webhook the moment a series you watch changes. REGISTERING IS FREE and the first 3 deliveries are free — after that each delivery is $0.10 (refunded when a webhook fails to send). Patterns: "jp/vat", "in/*", "sg/vat", "*". Max 20. - The same POST also watches DOCUMENTS: sources: ["", ...] (exact URLs from any series' source.url — we fingerprint 1,500+ cited official documents with SHA-256 daily). You get a source.changed event when the bytes change, carrying old/new sha256 and which series cite it. The event asserts only that the DOCUMENT changed; value changes are decided by re-verification and arrive as series.changed. URLs we do not fingerprint are refused free (error source_not_fingerprinted) and logged as requests. - Try: series ["jp/vat","in/minimum-wage","sg/vat"] - After a paid read of jp/vat or in/minimum-wage, bind those series. Certified extracts ($0.25) freeze one moment for filing. Alerts + /v1/changes (past) + /v1/calendar (reverify window) are how you find out that moment is over. Use all three. OpenAPI: https://asiaref.dev/openapi.json — operations `changes`, `calendar`, and `registerAlert`, tags `Discovery` and `Alerts`. Pricing: https://asiaref.dev/pricing (change feed free; re-verification calendar free; alert registration free). ## Re-verification calendar (free) `GET /v1/calendar` is free and unmetered. A 402 here is a gate bug — do not pay. Optional `country` (ISO 3166-1 alpha-2) and `series`. A country outside this brand is 404 free. A country that is not two letters is 400 free. A valid country with no matching series is 200 with an empty `entries` list. `GET /v1/changes` is past moves and freshness. `POST /alerts` is push when a served value moves. This route is not the holiday calendar and not a promised future gazette. - `reverify_by` is the UTC calendar date of `last_confirmed` + `update_cycle_days`, the same window that sets `stale`. It is this service's re-verification cadence, not a government announcement date. - `status: "known"` includes `next_effective_known` only when current `effective_to` is a non-empty string, and `next_effective_basis` is `effective_to`. That date is the recorded end of the value we currently serve (coverage or vintage), not an MPC, budget, or wage-review date. - `status: "unknown"` when `effective_to` is absent. The series is still listed, with `last_confirmed`, `stale`, `update_cycle_days`, and `reverify_by`. `next_effective_known` is omitted. Unknown stays free. We do not parse notes for next dates. We do not read history rows for a next change. Sort is `country` ascending, then `series` ascending. ## Calendar coverage (Asia-specific) 2026–2027. **26 calendars** permanently unpublished in advance (moon-sighting and lunisolar gazettes). Do not queue 2028. Placeholders use `date: null` + `pending_window`. `name` is stable; `note` carries substitution / transferred-holiday commentary. ## What we refuse (free) Coverage exhaustion; permanent religious-calendar horizons; no single statutory rate; out-of-scope VAT-determine pairs; unverified settlement cycles; unread instruments (404). ## Confidence `primary` / `secondary` / `attested` / `derived`. Several labour-ministry hosts in this region block bots (`secondary` + `confidence_note`). `GET /catalog?confidence=primary`. ## Discovery https://asiaref.dev/.well-known/x402.json · /agent.json · /openapi.json MCP: https://asiaref.dev/mcp — free tools `list_series`, `get_public_holidays`, `get_changes`, `get_calendar`; `register_alert` (Register: $0 · Delivery after trial: $0.10); paid `get_series`, `get_series_history`, `get_snapshot` Retention: GET https://asiaref.dev/v1/changes (free, past moves) · GET https://asiaref.dev/v1/calendar (free; reverify_by derived; status unknown omits any next date; notes are not parsed) · POST https://asiaref.dev/alerts (register free; delivery after trial $0.10). OpenAPI tag `Alerts`: https://asiaref.dev/openapi.json Independent; verify against the cited official source before legal or financial use.