Warning
🚧 Work in Progress: This page is currently under construction. Content may be incomplete or subject to change. To contribute, see the contribution guide.
REST Standards
Versioning
All internal APIs must be versioned in the URL:
https://api.patria.internal/v1/funds
https://api.patria.internal/v2/funds
- v1, v2… — major versions with breaking changes
- Keep the previous version active for at least 6 months after launching the new one
Endpoint naming
- Plural nouns, kebab-case:
/v1/capital-calls,/v1/portfolio-companies - No verbs in the URL — the HTTP method is the verb
- Hierarchy reflects relationship:
/v1/funds/{id}/investors
HTTP methods
| Method | Use | Idempotent? |
|---|---|---|
| GET | Read | Yes |
| POST | Create | No |
| PUT | Full update | Yes |
| PATCH | Partial update | No |
| DELETE | Remove | Yes |
Required status codes
| Code | Use |
|---|---|
| 200 OK | Generic success (GET, PUT, PATCH) |
| 201 Created | Resource created (POST) |
| 204 No Content | Success with no body (DELETE) |
| 400 Bad Request | Client validation error |
| 401 Unauthorized | Not authenticated |
| 403 Forbidden | Authenticated but no permission |
| 404 Not Found | Resource not found |
| 422 Unprocessable Entity | Valid data but semantically incorrect |
| 500 Internal Server Error | Server error |
Standard error format
{
"error": {
"code": "VALIDATION_ERROR",
"message": "The reference_date field is required",
"details": [
{ "field": "reference_date", "message": "required field" }
]
}
}Authentication
All internal APIs must use Entra ID Bearer token:
Authorization: Bearer <token>