Developers
API + webhook reference (planned).
The public REST API and outbound webhooks are planned and not available to accounts yet; API keys cannot be created today. This page describes the planned interface so developers can see what is coming.
Base URL
app.aptoria.ai
Auth
Bearer apt_ key
Rate limit
60 / min · 1000 / hr
Webhook events
13 signed kinds
Start here
Introduction
The Aptoria REST API uses JSON over HTTPS. Base URL: https://app.aptoria.ai. All authenticated endpoints live under /api/* and accept JSON bodies on POST/PATCH.
Planned: once the public API is available, endpoints will be scoped by the permissions on each API key.
Policy boundary
Canonical BLOCKED floor
Registry version 2026-09-06.1. API keys, approvals and customer thresholds cannot enable prohibited actions. Human review requirements do not activate a workflow. Unreviewed applicability remains unavailable.
Keys & scopes
Authentication
Issue a key from Settings → Developer. Keys start with apt_ and are shown exactly once — store them securely.
Send the key as a Bearer token in the Authorization header on every request:
Each key is scoped (e.g., read:tenants, write:work_orders). A request that hits an endpoint your scopes don't cover returns 403.
Reliability
Errors & rate limits
Errors return JSON with an error field and a 4xx/5xx status:
Defaults: 60 requests/minute per key, 1000/hour. Heavy AI endpoints have tighter per-key quotas (e.g., 10/h for delinquency prioritizer). The Retry-After response header tells you when to retry.
REST
Endpoints
List delinquent rent
Post an expense
List work orders for a unit
Trigger an AI helper
Real-time
Webhooks
Register endpoints under Settings → Developer. Each delivery is a POST with the event payload and a signature header. Thirteen event kinds today:
Example payload
We retry failed deliveries with exponential backoff for ~48 hours. After 10 consecutive failures the endpoint is auto-disabled and the owner gets an email.
Security
Verifying signatures
Every webhook POST includes X-Aptoria-Signature:
t is the unix-second timestamp; v1 is an HMAC-SHA256 of t.body using your endpoint's signing secret. Reject deliveries where the timestamp is more than 5 minutes old (replay protection) or where the HMAC doesn't match.
Copy-paste
SDKs & examples
No official SDK yet — the API is small enough that a thin fetch wrapper handles most use cases. Drop-in helper:
Stuck?
Support
Hit a wall? Email developers@aptoria.ai with the request ID from the response (header X-Request-Id) and we'll dig in.