REST API v1 Stable

SyndiFlow API Documentation

Integrate SyndiFlow data with your applications. Access buildings, owners, units, distributions, invoices and more via our RESTful JSON API.

BASE URL

https://syndiflow.eu/api/v1

🔐 Authentication

All API requests require a Bearer token in the Authorization header. Generate tokens in your SyndiFlow dashboard under Settings → API Tokens.

curl -H "Authorization: Bearer YOUR_API_TOKEN" \
  https://syndiflow.eu/api/v1/buildings

⚠️ Enterprise plan required. API access is only available for buildings with an active Enterprise subscription.

⏱️ Rate Limiting

PlanRequests/minute
Basis60
Pro120
Enterprise300

Rate limit headers: X-RateLimit-Limit, X-RateLimit-Remaining

📄 Pagination

All list endpoints return paginated results. Use page and per_page query parameters.

GET /api/v1/buildings?page=2&per_page=25

Default: 15 per page. Maximum: 100 per page.

❌ Error Handling

CodeDescription
401Unauthenticated — invalid or missing token
403Forbidden — no access to this building or feature
404Not found — resource does not exist
429Rate limited — too many requests

🏢 Buildings

GET /api/v1/buildings

List all buildings you have access to.

Parameters

search Filter by name or address
sort Sort field (name, slug, created_at). Prefix with - for desc
per_page Results per page (max 100)

Response

{"data":[{"id":1,"name":"VME STL Ter Lokeren","slug":"ter-lokeren","address":"Zelebaan 97, 9160 Lokeren","unit_count":78,"owner_count":49,"created_at":"2026-03-24T15:37:06Z"}],"links":{...},"meta":{...}}
GET /api/v1/buildings/{slug}

Get details of a specific building.

Response

{"data":{"id":1,"name":"VME STL Ter Lokeren","slug":"ter-lokeren","address":"Zelebaan 97, 9160 Lokeren","vat_number":"BE0684.945.704","unit_count":78,"owner_count":49,"active_contract":{"tenant_name":"Fedasil","monthly_rent_cents":6256300},"created_at":"2026-03-24T15:37:06Z"}}

👥 Owners

GET /api/v1/buildings/{slug}/owners

List all owners of a building with their units and shares.

Parameters

search Filter by name or email
filter[is_active] Filter by active status (true/false)

Response

{"data":[{"id":1,"name":"Dimitry Smagghe","email":"ds@openview.be","is_active":true,"units":[{"id":1,"unit_number":"102","share":125}],"total_share":375}]}
GET /api/v1/buildings/{slug}/owners/{id}

Get details of a specific owner.

Response

{"data":{"id":1,"name":"Dimitry Smagghe","email":"ds@openview.be","phone":"+32475530430","address":"...","iban":"BE...","is_active":true,"is_rvme":false,"units":[...],"total_share":375}}

🏠 Units

GET /api/v1/buildings/{slug}/units

List all units (kavels) of a building.

Parameters

filter[type] Filter by type (single, double)

Response

{"data":[{"id":1,"unit_number":"102","type":"single","share_per_ten_thousand":125,"floor":1,"current_owner":{"id":1,"name":"Dimitry Smagghe"}}]}

💰 Distributions

GET /api/v1/buildings/{slug}/distributions

List all rent distributions.

Parameters

filter[status] Filter by status (draft, approved, completed)
filter[year] Filter by year

Response

{"data":[{"id":1,"period_month":7,"period_year":2026,"total_rent_amount_cents":6256300,"total_maintenance_amount_cents":408300,"status":"completed","lines_count":78}]}
GET /api/v1/buildings/{slug}/distributions/{id}

Get distribution with all lines (per-owner breakdown).

Response

{"data":{"id":1,"period":"juli 2026","status":"completed","lines":[{"owner":"Dimitry Smagghe","unit":"102","share":125,"gross_amount_cents":83433,"cost_deduction_cents":3505,"net_amount_cents":79928,"payment_status":"confirmed"}]}}

🔧 Maintenance Invoices

GET /api/v1/buildings/{slug}/maintenance-invoices

List maintenance invoices with cost allocation details.

Parameters

filter[category] Filter by category (electricity, hvac, etc.)
filter[status] Filter by status

Response

{"data":[{"id":1,"supplier":"Kone NV","description":"Kwartaalonderhoud lift","amount_cents":87500,"category":"elevators","status":"paid","cost_center":"Gemeenschappelijke kosten","is_accrued":false}]}

🏦 Bank Transactions

GET /api/v1/buildings/{slug}/bank-transactions

List bank transactions.

Parameters

filter[type] Filter by type (credit, debit)
filter[is_matched] Filter matched status

Response

{"data":[{"id":1,"date":"2026-07-05","amount_cents":6664600,"counterparty_name":"Fedasil","type":"credit","is_matched":true}]}

📊 Cost Centers

GET /api/v1/buildings/{slug}/cost-centers

List cost centers with allocation methods.

Response

{"data":[{"id":1,"name":"Gemeenschappelijke kosten","code":"GEM","allocation_method":"by_share","is_default":true,"invoice_count":16}]}