PropKaki for Developers

Build on PropKaki. Singapore property intelligence, one API call away.

The engine behind PropKaki's app and WhatsApp assistant — stamp duty, affordability, valuations, transactions and market trends — inside your own product. One endpoint, one key, priced per call.

Get a key free — a S$5 trial credit is included. After that, you only pay per call.

POST /api/v1/ask
curl -X POST https://www.propkaki.com/api/v1/ask \
  -H "Authorization: Bearer pk_live_..." \
  -H "Idempotency-Key: $(uuidgen)" \
  -H "Content-Type: application/json" \
  -d '{"question": "ABSD on a $1.8m second property for a Singapore Citizen?"}'
200 — typed, grounded, billed once
{
  "ok": true,
  "type": "answer",
  "answer": "ABSD is 20% — $360,000 on a $1.8M second property…",
  "figures": [
    { "label": "stamp duty (SC property #2 @ $1.80M)",
      "statement": "BSD $59,600, ABSD $360,000 (20%), total $419,600" }
  ],
  "offer": { "label": "Run the full affordability check?", "accept_with": "yes" },
  "sources": [{ "title": "Stamp duty & rates", "sourceName": "IRAS rates" }],
  "tools_called": ["stamp_duty"],
  "usage": { "op": "qa", "cost_cents": 35, "currency": "SGD" },
  "conversation_id": "conv_01J8…",
  "as_of": "May 2026"
}

Not just prose. Every answer carries the figures it grounded as data, the sources behind them, and the next step it offered — send offer.accept_with back and it runs that next step.

The PropKaki Engine

Why Build on PropKaki

Grounded, Not Guessed

Every rate and figure comes from a dated store, never a model's memory — and each answer stamps its as_of. Models get Singapore's rules wrong; this doesn't.

Answers, Not Rows

You send a question, you get an answer — the same engine behind PropKaki's app and WhatsApp assistant, with 30+ property tools behind it.

Built for Machines

Idempotency keys mean a retry never double-bills. A conversation lock means concurrent turns can't corrupt state. Errors are typed, not prose.

Use Cases

What You Can Build

One question in, one grounded answer out — the same call powers very different products.

In-Product Answers

Embed a grounded Singapore property assistant in your portal, superapp or agent tool — prose verdict, figures and sources in one response.

Affordability & Stamp Duty

Run ABSD, BSD, TDSR and affordability checks inside your onboarding or mortgage flow. The numbers come back as data, not sentences to parse.

Valuations & Comps

Answer “is this price fair?” on your own project and listing pages — valuations grounded in real caveat data, with the comps behind them.

Market Research & Content

Town and district trends, HDB and private market reads, and rules lookups — every figure dated, so your content never quotes a stale rate.

CRM & Client Files

Log the figures each conversation committed straight to your CRM, and render the assistant's next-step offer as a native button in your UI.

Coming Soon

Slides, Video & Paperwork

Listing decks, 9:16 listing videos and pre-filled paperwork as API jobs — the deliverables engine, behind gated scopes.

Conversations, Not Just Calls

Pass a conversation_id and it remembers the client's brief and the figures already on the table — so a follow-up like “and the ABSD on that?” just works. Delete a conversation any time; the memory goes with it.

Get a Key
Production-Ready

Built for Production

The boring guarantees a machine caller actually needs — on every key from day one.

  • Keys are stored as SHA-256 hashes — revoke and re-mint any time from the platform
  • Scopes are per-key grants: gated capabilities are off by default, unlocked per customer
  • Idempotency keys are required — a retried request replays the stored answer, never bills twice
  • One turn per conversation at a time — a busy conversation returns a typed 409, not corrupted state
  • Typed error contract: { code, message, request_id } — internal detail never reaches the wire
  • Billing fails closed — if the credit wall can't be checked, we serve nothing rather than guess
  • Per-key rate limits (60 requests/min by default), raised deliberately per customer
  • Delete a conversation and its memory is actually erased — built for PDPA from day one
Simple Pricing

A Prepaid Wallet, Priced Per Call

Add funds by any amount, spend per call at published rates — no subscriptions, no packs, no minimum commitment. Failed calls are refunded in full.

Standard Answer
S$0.35per call

Calculators, valuations, market reads, project and agent lookups

Listings & Premium Analysis
S$1.40per call

Live listings turns and heavy multi-tool analysis

Trial Credit
S$5.00free

One-time, when you mint your first key — then top up any amount from S$10

High volume, invoicing, listings access, media jobs or white-label? Those are per-customer unlocks — get a key and reach out from the platform.

Developer FAQ

Frequently Asked Questions

The short, plain answers to what the API is, where its answers come from, and how it's priced.

Start Building Today

Create a key on the platform, make your first call from the docs, and ship grounded property answers this afternoon.

Free to Get a Key
No Card to Start
Pay Only Per Call
Chat on WhatsApp