DOOLAE API
The DOOLAE API lets your software work with a landlord's DOOLAE account: properties, rooms, tenants, meter readings, monthly bills, PromptPay QR payments and LINE messages to tenants. Landlords decide which applications may access their account, and can disconnect them at any time.
- Base URL:
https://api.doolae.online/v1 - Format: JSON over HTTPS, UTF-8
- Authentication:
Authorization: Bearer <API key> - Reference: developers.doolae.online/docs (interactive), openapi.json, openapi.yaml
- Status:
GET https://api.doolae.online/health(no key) answers200 {"status":"ok"}while the API can serve requests,503otherwise — for uptime monitors
How it fits together
You (developer account)
└── Application asks for scopes, e.g. bills:read, meters:write
├── API keys dl_test_… (sandbox) and dl_live_… (real accounts)
├── Webhook endpoints signed event deliveries
└── Connected accounts landlords who approved the application
- Create an application in the developer portal. It gets a sandbox: a sample landlord account with properties, rooms, tenants, readings, bills and payments.
- Build with a test key (
dl_test_…). Test keys only ever reach your sandbox. Payments and LINE messages there are simulated. - Ask landlords to connect. Send them your application's connect link. They sign in to DOOLAE, see exactly what your application may do, and approve. You receive their account ID (
acct_…). - Go live with a live key (
dl_live_…). It reaches only the accounts that connected your application.
Conventions
| Topic | Rule |
|---|---|
| IDs | Prefixed strings: prop_, room_, ten_, rdg_, bill_, pay_, ntf_, evt_, acct_, whep_. Treat them as opaque. |
| Money | Integer satang (1 THB = 100 satang) plus "currency": "THB". 617000 means ฿6,170.00. |
| Meter values | Decimal numbers with at most two decimal places. |
| Months | YYYY-MM (billing months are Thai calendar months). |
| Times | ISO 8601 in UTC, e.g. 2026-10-07T03:15:00.000Z. |
| Lists | Cursor pagination: see pagination. |
| Errors | {"error": {"code", "message", "request_id", "doc_url"}}: see errors. |
Guides
- Getting started: your first request in cURL, JavaScript, Python and PHP
- Authentication and keys: keys, test and live mode, scopes and accounts
- Rate limits and quotas
- Pagination and filters
- Errors
- Idempotency
- Webhooks
- Security
- Pricing and billing
- Changelog
Versioning
This is v1. DOOLAE may add things to v1 at any time without notice:
- new endpoints;
- new optional parameters;
- new fields in responses;
- new event types;
- new error codes.
Write your client so these don't break it. Anything that would break existing clients goes into /v2. Deprecated parts of v1 keep working for at least 12 months. They are announced in the changelog and with Deprecation and Sunset response headers.
SDKs
The OpenAPI 3.1 document is generated from the same definitions the API server runs on, so it always matches the server. Use it with OpenAPI Generator, openapi-typescript, Kiota or any OpenAPI 3.1 tool to generate a client in TypeScript, Python, PHP, Go, Java or C#.