Skip to content
propara
Menu

Getting started

Errors, pagination & limits

Coming soon

Error format, cursor pagination, idempotency keys and rate limits.

Planned API. This page describes the design we're building toward and may change before release. Request early access.

Errors

Errors use conventional HTTP status codes and a consistent JSON body.

StatusMeaning
400The request was malformed or failed validation
401Missing or invalid API key
403The key's scopes or the member's role don't allow this
404Not found, or not visible to this key
409Conflict, such as an overlapping stay or a second current tenancy
422Business rule failed, such as stakes not totalling 100%
429Rate limit exceeded
5xxSomething went wrong on our side; safe to retry with the same idempotency key

Pagination

List endpoints return up to limit items (default 50, max 200) and a next_cursor. Pass it as cursor to get the next page.

Idempotency

Send an Idempotency-Key header (any unique string, such as a UUID) on every POST. Retrying with the same key returns the original result instead of creating a duplicate, which matters for payments.

Rate limits

100 requests per second per workspace, with bursts. Responses include RateLimit-Remaining and RateLimit-Reset headers.

GET/properties?limit=2Coming soon

Example error

Request

curl "https://api.propvara.com/v1/properties?limit=2" \
  -H "Authorization: Bearer pv_test_…"

Response

{
  "error": {
    "type": "invalid_request",
    "code": "stakes_must_total_100",
    "message": "Owner stakes total 99.5%. They must total 100%.",
    "param": "owners",
    "request_id": "req_8f3a1c"
  }
}