Indo NewsAPI
Indonesian news data · Jakarta Wednesday, 4 November 2026 8 beats · Google News ID USDC on Base

When Indonesia can actually work.

An Indonesian deadline does not move on the dates a generic holiday feed knows about. It moves on Idul Fitri and the joint-leave days bolted around it, on Isakawu, on the day a ministry decides to bridge a weekend. This is that calendar as four endpoints: the year list, a working-day count between two dates, a yes/no on one date, and the next date work resumes. No account, no key, priced per call.

Coverage 2021-2027 — the range the government calendar publishes. Requests outside it are refused, not answered with an empty list.

3dates loaded, 2026
60working days in the next 91
5of them public or joint leave
26ordinary weekends

Next on the calendar

Computed by the same code the paid routes run, on the government calendar, at page-request time. Source string returned by the API: Kalender libur nasional Pemerintah Indonesia (SKB tiga menteri).

What one call answers

Question a contract or a payroll asksRouteShape of the answer
How many working days do we have between two dates?GET /workdays?from=&to=working_days, weekend_days, holiday_days, the dated list, and the calendar days so the arithmetic is checkable
Is this specific date off?GET /holiday-check?date=is_public_holiday, is_weekend, is_working_day, the name, and the next holiday after it
When can work resume?GET /next-working-day?from=the date plus every weekend and leave day it skipped and why
What does the year look like?GET /holidays?year=2026dated list with Indonesian and English names, joint-leave flagged, days-away included

Every route also answers as an MCP tool (indonesia_workdays, indonesia_holiday_check, indonesia_next_working_day, indonesia_holidays) on the same price, so an agent that speaks MCP never has to parse HTTP.

Try it

curl -i "https://indo-news-api.vercel.app/workdays?from=2026-12-01&to=2027-01-31"

First response is HTTP 402 with PAYMENT-REQUIRED: price, asset, network, and the address to pay. Repeat the identical URL with the PAYMENT-SIGNATURE header and the JSON arrives. No key is ever stored on our side because there is nothing to store.

{"mcpServers":{"indo-news":{"url":"https://indo-news-api.vercel.app/mcp"}}}

Seven MCP tools are free, including the coverage preview; the calendar tools are paid on the same rails as HTTP.

Before you pay

Questions agents ask

Does it include cuti bersama, the joint leave days around religious holidays?
Yes. The primary source is the Indonesian government's published holiday calendar (the SKB three-minister decree), which lists national holidays and joint-leave days together. A global calendar API that only knows fixed public dates will miss the joint-leave block around Idul Fitri, which is exactly when an Indonesian contract or payroll deadline moves.
Which years are covered?
Only 2021-2027. That is what the government calendar we read publishes, verified by re-reading the source. Ask for 2028 and the route refuses with a machine-readable reason instead of answering "no holidays" — an empty table is not a fact.
How does an agent pay for it?
There is no account and no API key. The first request is answered HTTP 402 with the price and the address; the agent pays USDC on Base, Polygon, Arbitrum or Avalanche (or MPP on Tempo), then repeats the same URL with the payment signature. A permissive licence is also offered at $19 for 30 days of unmetered calls, delivered inside the paid response.
What happens if the upstream calendar is unreachable?
A request whose parameters cannot be satisfied is answered 400, and a route whose single upstream is unreachable and has no cached copy on that instance is answered 503 with charged:false. Both are sent before any payment challenge exists, so nothing is billed. On x402 an error response also cancels settlement; on MPP the authorisation is already in flight, which is why refusing early matters.
Can I check the data before paying?
Yes. The free pages /libur and /libur/2026 render the same calendar, and the MCP server at /mcp answers a coverage question for free at /data/preview. The paid routes are the JSON contract with stable fields, day counts and the arithmetic already done.

Elsewhere

Rate card · What has actually settled · Team licences · Terms · Hari libur 2026 (Bahasa Indonesia) · Earthquake endpoint