How it works
- Your integration sends one or more suggested changes to
POST /api/v1/proposals. - BrikSync records them as a batch, in the state
awaiting_human_approval. Nothing has changed yet. - Someone at your organisation — a Property Manager, Landlord, Broker, or Admin, depending on the record — opens API & Automation in BrikSync, reviews the suggestion, and approves or dismisses it.
- Only on approval is the change actually written, under that person’s own account.
GET /api/v1/proposals — this can tell you whether it’s still waiting, was applied, was dismissed, or expired unreviewed. It cannot approve anything.
Making a suggestion
:propose scope for whatever you’re suggesting a change to (for example, leases:propose to suggest a lease change). See Authentication for the full scope list.
Every request needs an Idempotency-Key header — more on that below.
Request body
Each item in
changes:
Response
201 response means the suggestion was recorded, not applied — always read the message field back to your users or your logs, and never report a proposal as a completed change.
Send related changes together
If several changes belong to the same decision — for example, updating three units’ rent as part of one review — send them in a singlechanges array rather than as separate requests. A reviewer sees the whole batch as one thing to approve or dismiss, instead of individual items they’d have to piece back together themselves. Up to 200 changes are allowed per batch.
The Idempotency-Key header
POST /api/v1/proposals is the one endpoint in this API that creates something, so it’s the one place a network retry could otherwise create a duplicate. Every request must include:
- A new key → the changes are recorded as normal.
- The same key, sent again with the exact same request body → you get back the original response. Nothing is recorded twice. This is what makes retries after a timeout safe.
- The same key, sent again with a different request body → the request is rejected with
idempotency_conflict(HTTP 409). This usually means a bug on the calling side — generate a fresh key for a genuinely new request.
Checking on suggestions
proposals:read. Supports status (proposed, applied, dismissed, or expired), batchId, and the same cursor/limit pagination as every other list endpoint (see Reading Data).
expired on its own — check back with GET /api/v1/proposals rather than assuming a suggestion is still pending indefinitely.
Reviewing and approving suggestions
Approval happens inside BrikSync, not through the API. Go to API & Automation in the sidebar to see every suggestion awaiting a decision, who or what proposed it, and what specifically would change — then approve or dismiss it. Property Managers and above can review the queue; only Admins manage the API keys themselves.Next steps
Connect an AI Assistant
The same read-and-suggest model, available to Claude, ChatGPT, and other assistants.
Errors & Limits
What
idempotency_conflict and every other error code means.