Skip to main content
The PropOps REST API gives you programmatic access to every resource on the platform — jobs, contractors, tenants, users, finances, and more. All endpoints are under /api/ on your PropOps instance URL.
https://propops.yourcompany.com/api/
State-changing requests (POST, PUT, DELETE) require a valid CSRF token in addition to authentication. See Authentication for how to obtain and send one.

Response format

Every response — success or error — is JSON. Successful responses use this envelope:
Success
{
  "success": true,
  "data": { ... },
  "count": 42,
  "message": "Operation completed successfully"
}
Error
{
  "success": false,
  "error": "Human-readable error message"
}
count is included on list endpoints and reflects the number of records in data. See Error handling for the full list of error codes.

Pagination

List endpoints accept two query parameters:
limit
number
default:"50"
Maximum number of records to return. Accepted range: 1–200.
offset
number
default:"0"
Number of records to skip before returning results. Use with limit to page through large result sets.
Example — second page of 25 jobs
GET /api/jobs/manage?limit=25&offset=25

Rate limiting

Requests are rate-limited per IP address and per authenticated account. When you exceed your limit the API returns 429 Too Many Requests. Check the Retry-After header to know how long to wait before retrying. Every response includes these rate-limit headers:
HeaderDescription
X-RateLimit-LimitTotal requests allowed in the current window
X-RateLimit-RemainingRequests remaining before the limit is hit
X-RateLimit-ResetUnix timestamp when the window resets
Retry-AfterSeconds to wait (only present on 429 responses)
Administrators can view and adjust per-endpoint rate-limit rules in Admin → Rate Limiting.

Performance headers

Every API response includes timing headers so you can monitor integration performance:
HeaderDescription
X-Response-Time-msTotal time (ms) to process the request server-side
X-DB-Query-Time-msTime (ms) spent on database queries within that request

Resource groups

Jobs

Create, update, and manage the full job lifecycle — including case notes, photos, documents, approvals, amendments, recalls, and calendar scheduling.

Users

Manage user profiles, permissions, notification preferences, avatars, and active sessions.

Contractors

List contractors, browse trade categories, and manage certifications.

Tenants

Create and manage tenant records, assign addresses, and export GDPR data reports.

Agents & Branches

Retrieve agents, branch assignments, SLA profiles, and sharing rules.

Dashboard

Aggregate stats, charts, job feeds, pinned jobs, and batch data loading for the dashboard.

Analytics & Reports

Activity feeds, AI-powered job analysis, branch performance, financial reports, and user contribution reports.

Financial

Create and manage invoices, record payments, track payment status, and service pricing.

Notifications

Retrieve, mark as read, and delete in-app notifications and system notices.

Email

Send transactional emails, manage templates, and verify email addresses.

WhatsApp

Send WhatsApp messages to tenants, landlords, and contractors using pre-approved templates.

Search

Full-text search across jobs, users, branches, and settings.

Security

Manage sessions, CSRF tokens, file integrity alerts, password breach checks, and password resets.

GDPR & Privacy

Consent management and data subject access requests.

System

Health checks, maintenance mode, application settings, logs, and push subscriptions.

Administration

Manage branches, roles, permissions, activity logs, email logs, and API usage stats.

Automation

List, trigger, and monitor n8n workflow automations and subscribe to platform events.

Attachments

Download and serve file attachments for jobs, case notes, and documents.

Feedback

Submit and manage user feedback with file attachments.