🔌 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:

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:

← Back to Documentation