Showcase

Built with Apizie.

Six things you can ship this week with one Apizie key. Each one is a working example from our team with the real endpoints and the code to copy.

Example builds

Made by the Apizie team to show what the API and the MCP server can do. Swap in your key and run them.

01Telegram bot

Earthquake alert bot

Checks BMKG every minute and posts any new earthquake of magnitude 5 or more to a Telegram channel, with location, depth and the tsunami note.

For Newsrooms, community groups, local government

See the code Node.js
Node.js
const API = "https://apizie.tech/v1";
const headers = { "x-api-key": process.env.APIZIE_KEY };
let lastSeen = null;

setInterval(async () => {
  const res = await fetch(`${API}/indonesia:bmkg/gempa-terkini`, { headers });
  const { data } = await res.json();
  const quake = data.gempa; // magnitude, wilayah, kedalaman, potensi, datetime, shakemap
  if (!quake || quake.datetime === lastSeen || quake.magnitude < 5) return;
  lastSeen = quake.datetime;
  await sendTelegram(`M${quake.magnitude} · ${quake.wilayah}\nDepth ${quake.kedalaman} · ${quake.potensi}`);
}, 60_000);
02Web widget

Crypto prices in rupiah

A price board for Bitcoin, Ethereum and Solana in IDR with 24-hour change, refreshed every 30 seconds. One request covers every coin.

For Finance blogs, trading communities, portfolio apps

See the code JavaScript
JavaScript
const url = "https://apizie.tech/v1/finance:coingecko/simple-price"
  + "?ids=bitcoin,ethereum,solana&vsCurrencies=idr&include24hChange=true";

async function refresh() {
  const res = await fetch("/api/prices"); // your backend fetches `url` with x-api-key
  const { data } = await res.json();
  for (const [coin, p] of Object.entries(data.prices)) {
    document.querySelector(`[data-coin=${coin}]`).textContent =
      `Rp${p.idr.toLocaleString("id-ID")} (${p.idr_24h_change.toFixed(1)}%)`;
  }
}
setInterval(refresh, 30_000);

// Need second-by-second ticks for one pair? Your backend can add:
// GET /v1/finance:binance/ticker?symbol=BTCUSDT
03AI agent (MCP)

Research assistant for Claude

Connect Apizie as an MCP server and Claude can search PubMed and arXiv, read Wikipedia summaries and cite what it found, with no glue code.

For Students, analysts, anyone writing with an AI agent

See the code Terminal + prompt
Terminal + prompt
# 1. Give your agent the key (Claude Code shown; Claude.ai and ChatGPT use OAuth)
claude mcp add --transport http apizie https://apizie.tech/mcp \
  --header "x-api-key: $APIZIE_KEY"

# 2. Ask in plain language
> Find the 5 most recent arXiv papers on retrieval-augmented generation,
  check PubMed for any clinical use, and give me a one-paragraph summary
  of each with links.
04Mobile app feature

Prayer times and holidays

Shows today's prayer times for the user's city from Kemenag data and flags national holidays, so the app can adjust reminders and opening hours.

For Muslim lifestyle apps, mosques, HR and shift tools

See the code Python
Python
import os, requests

API = "https://apizie.tech/v1"
H = {"x-api-key": os.environ["APIZIE_KEY"]}

today = requests.get(f"{API}/indonesia:sholat-kemenag/jadwal-today",
                     params={"city": "jakarta"}, headers=H).json()["data"]
day = requests.get(f"{API}/indonesia:hari-libur/cek", headers=H).json()["data"]

print(today["city"], today["jadwal"])   # subuh, dzuhur, ashar, maghrib, isya
if day["isDayOff"]:
    print("Day off:", [h["name"] for h in day["holidays"]] or day["day"])
05Scheduled job

Morning news digest

Every morning at 07:00 it collects headlines on your topics from Google News, CNN Indonesia and The Guardian and sends one tidy email or Slack message.

For Founders, PR and comms teams, investors

See the code Node.js (cron)
Node.js (cron)
const API = "https://apizie.tech/v1";
const get = (path) => fetch(API + path, { headers: { "x-api-key": process.env.APIZIE_KEY } })
  .then((r) => r.json()).then((r) => r.data);

const [google, cnn, guardian] = await Promise.all([
  get("/news:google-news/feed?query=startup%20indonesia&limit=5"),
  get("/news:cnn-indonesia/latest?category=ekonomi&limit=5"),
  get("/news:guardian/feed?section=technology&limit=5"),
]);
await postToSlack(formatDigest({ google, cnn, guardian }));
06E-commerce

Checkout address picker

Province, regency, district and village dropdowns that fill in as the buyer types, using official Indonesian region codes, so deliveries stop bouncing.

For Online shops, logistics and delivery apps

See the code JavaScript
JavaScript
// Your backend proxies these calls and adds x-api-key.
// 1. Type-ahead for city or province: "bandung" -> Kota Bandung (3273), Kab. Bandung (3204)
const { data } = await api("/v1/indonesia:wilayah/search?level=regency&q=" + encodeURIComponent(q));
citySelect.innerHTML = data.items.map((r) => `<option value="${r.code}">${r.name}</option>`).join("");

// 2. Then fill the next dropdowns from the picked code
const districts = await api("/v1/indonesia:wilayah/districts?regencyCode=" + citySelect.value);
const villages = await api("/v1/indonesia:wilayah/villages?districtCode=" + districtSelect.value);

Want to build one of these?

Free plan: 1,000 requests a month, no card. Your first key takes a few seconds.

From the community

Projects people have shipped on Apizie, reviewed by our team before they appear here.

No community projects yet. Ship one of the ideas above, or your own, and it could be the first one here.

Submit your project

Sign in to submit your project. Ultra and Max plans get their logo on the “Built with Apizie” strip.