Who can use the API
The API is available on the Enterprise plan and requires an API token. Every request must be authenticated by a user on an Enterprise plan who holds a token.
- Data is scoped to your company. Every endpoint returns only your own company’s data — there’s no way to see or modify another company’s records.
- Your in-app permissions apply. Some resources require the same permissions you’d need in the Spacebase UI. For example, managing users through the API requires the manage company users permission, and custom fields and webhooks require the manage company settings permission.
- Module availability applies. Invoice and payment endpoints require the payments module, and journal entry exports require the accounting module.
- Leases must be published. Draft leases aren’t accessible through the API.
Authentication
The API uses token authentication. Include your token in theAuthorization header of every request, prefixed by Token:
/api/token/ endpoint:
Requests and responses
- Base path — all endpoints live under
/api/on your Spacebase domain. - Format — JSON for all requests and responses. Send
Content-Type: application/jsonon writes. - Dates — timestamps use ISO 8601 (
2026-07-01T00:00:00Z); plain dates useYYYY-MM-DD. - Pagination — list endpoints return 10 results per page. Use
?page=2to move through pages; each response includescount,next, andpreviousalongsideresults:
Available resources
| Resource | Base path | What you can do |
|---|---|---|
| Token | /api/token/ | Retrieve your API token |
| Users | /api/users/ | List and update users in your company (looked up by email) |
| Leases | /api/leases/ | List leases and retrieve full lease data (read-only) |
| Lease custom fields | /api/leases/{uid}/custom-fields/ | Read and update custom field values on a lease |
| Custom fields | /api/custom-fields/ | Create, update, and delete your company’s custom field definitions |
| Custom field options | /api/custom-fields/{slug}/options/ | Manage the options of a dropdown custom field |
| Headcount | /api/leases/{uid}/headcount/ | Read headcount history; create and update monthly headcount by type |
| Capacity | /api/leases/{uid}/capacity/ | Read capacity history; create and update monthly capacity |
| Invoices | /api/invoices/ | List, retrieve, and update invoices; create via /api/leases/{uid}/invoices/create/ |
| Invoice expenses | /api/invoices/{uid}/expenses/ | List the expenses on an invoice |
| Invoice payments | /api/invoices/{uid}/payments/ | List and record payments (single or bulk) |
| Journal entry exports | /api/integration-exports/journal-entries/ | List and update journal entry export records |
| Webhooks | /api/webhooks/ | Create and manage webhook endpoints |
- Leases support a
?modified_after=filter with an ISO 8601 timestamp, so you can fetch only leases that changed since your last sync — for example/api/leases/?modified_after=2026-07-01T00:00:00Z. - Invoices support filtering by
?status=,?integration_status=,?lease_id=, and?payable_to=. - Headcount and capacity records are monthly: dates must fall on the first of a month within the lease’s commencement and expiration dates, and the lease’s property type must have headcount tracking enabled.
Common examples
Interactive API reference
Full request and response schemas for every endpoint live in the interactive reference built into Spacebase:- API reference —
https://spacebaseapp.com/api/documentation/documents each endpoint, its parameters, and its response format. - Browsable API — while signed in, visit
/api/in your browser to explore the live API root and click through your own data.
FAQ
I'm getting a 401 or 403 response
I'm getting a 401 or 403 response
Work through these checks:
- Your
Authorizationheader uses the exact formatToken your-token-key— the wordToken, a space, then the key. - Your company is on an Enterprise plan and your user has been issued an API token.
- The endpoint doesn’t require an extra permission you’re missing — for example, invoice endpoints require payments permissions and the payments module, and user management requires the manage company users permission.
Why doesn't a lease appear in the API?
Why doesn't a lease appear in the API?
Only published leases are available through the API. Draft leases and leases outside your user’s access (if your account is limited to a subset of leases) won’t appear.
Is there a rate limit?
Is there a rate limit?
There’s no published rate limit today. For efficient syncing, use the
?modified_after= filter on leases rather than repeatedly fetching your full portfolio, and consider webhooks to be notified of changes instead of polling.How do I get notified when data changes?
How do I get notified when data changes?
Set up webhooks. Spacebase sends a signed POST request to your endpoint whenever a subscribed resource is created, updated, or deleted — no polling required.
Can I create leases through the API?
Can I create leases through the API?
No — leases are read-only through the API. Leases are created and abstracted in the Spacebase app. You can, however, update a lease’s custom field values, headcount, and capacity through the API.