🔌 Praxis API Overview
The Praxis API allows you to integrate your applications with Praxis. Build custom workflows, sync data with other systems, or create your own client applications.
Base URL
https://cloud.praxislegal.be/api
Authentication
All API requests require authentication using a Bearer token. Obtain a token by logging in:
POST /api/auth/login
Content-Type: application/json
{
"email": "your@email.com",
"password": "your-password"
}
Response:
{
"token": "eyJhbGciOiJIUzI1NiIs...",
"user": { ... },
"firm": { ... }
}
Include the token in all subsequent requests:
Authorization: Bearer eyJhbGciOiJIUzI1NiIs...
Response Format
All successful responses follow this format:
{
"success": true,
"data": { ... }
}
Error responses:
{
"error": "Error message here"
}
Available Endpoints
Authentication
POST
/api/auth/register
Create a new account
POST
/api/auth/login
Authenticate and get token
GET
/api/auth/me
Get current user info
POST
/api/auth/change-password
Change password
Cases
GET
/api/cases
List all cases
GET
/api/cases/{id}
Get case by ID
POST
/api/cases
Create new case
PUT
/api/cases/{id}
Update case
DELETE
/api/cases/{id}
Delete case
GET
/api/cases/stats
Get case statistics
Contacts
GET
/api/contacts
List all contacts
GET
/api/contacts/{id}
Get contact by ID
POST
/api/contacts
Create new contact
PUT
/api/contacts/{id}
Update contact
DELETE
/api/contacts/{id}
Delete contact
Time Entries
GET
/api/time
List time entries
GET
/api/time/{id}
Get time entry by ID
POST
/api/time
Create time entry
PUT
/api/time/{id}
Update time entry
POST
/api/time/{id}/bill
Mark as billed
DELETE
/api/time/{id}
Delete time entry
GET
/api/time/stats
Get time statistics
Deadlines
GET
/api/deadlines
List all deadlines
GET
/api/deadlines/{id}
Get deadline by ID
POST
/api/deadlines
Create deadline
PUT
/api/deadlines/{id}
Update deadline
POST
/api/deadlines/{id}/complete
Mark as completed
DELETE
/api/deadlines/{id}
Delete deadline
GET
/api/deadlines/overdue
Get overdue deadlines
Invoices
GET
/api/invoices
List all invoices
GET
/api/invoices/{id}
Get invoice by ID
POST
/api/invoices
Create invoice
PUT
/api/invoices/{id}
Update invoice
POST
/api/invoices/{id}/send
Mark as sent
POST
/api/invoices/{id}/pay
Mark as paid
DELETE
/api/invoices/{id}
Delete invoice
Rate Limits
API requests are limited to:
- 1000 requests/hour for standard accounts
- 10000 requests/hour for Enterprise accounts
Real-time Updates
Praxis supports real-time updates via SignalR. Connect to receive instant notifications when data changes:
const connection = new signalR.HubConnectionBuilder()
.withUrl("https://cloud.praxislegal.be/hubs/sync", {
accessTokenFactory: () => yourToken
})
.build();
connection.on("DataChanged", (type, id, action) => {
console.log(`${type} ${id} was ${action}`);
});
await connection.start();
SDKs & Libraries
Official SDKs coming soon:
- JavaScript/TypeScript
- Python
- C#/.NET
← Back to Documentation