Build powerful integrations for your firm. Access clients, engagements, tasks, billing, and more through our comprehensive REST API.
Everything you need to make your first API call.
Explore endpoints organized by domain area.
Manage client records, contacts, and client groups.
Create and manage client engagements and service agreements.
Create tasks, manage workflows, and track work completion.
Log time, manage timers, and track billable hours.
Generate invoices, record payments, and manage billing.
Upload, organize, and share documents with clients.
Manage firm users, roles, permissions, and office locations.
Get started quickly with these ready-to-use examples.
# List all active clients curl -X GET "https://api.practicewings.com/api/v1/clients" \ -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \ -H "Content-Type: application/json" # Create a new client curl -X POST "https://api.practicewings.com/api/v1/clients" \ -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \ -H "Content-Type: application/json" \ -d '{ "displayName": "Acme Corporation", "type": "business", "status": "active", "email": "[email protected]" }'
// List all active clients const response = await fetch('https://api.practicewings.com/api/v1/clients', { headers: { 'Authorization': `Bearer ${accessToken}`, 'Content-Type': 'application/json' } }); const { data } = await response.json(); console.log(data); // Array of client objects // Create a new client const newClient = await fetch('https://api.practicewings.com/api/v1/clients', { method: 'POST', headers: { 'Authorization': `Bearer ${accessToken}`, 'Content-Type': 'application/json' }, body: JSON.stringify({ displayName: 'Acme Corporation', type: 'business', status: 'active', email: '[email protected]' }) });
import requests # List all active clients headers = { "Authorization": f"Bearer {access_token}", "Content-Type": "application/json" } response = requests.get( "https://api.practicewings.com/api/v1/clients", headers=headers ) clients = response.json()["data"] # Create a new client new_client = requests.post( "https://api.practicewings.com/api/v1/clients", headers=headers, json={ "displayName": "Acme Corporation", "type": "business", "status": "active", "email": "[email protected]" } )
Tell us about your integration needs and we'll get you set up with API credentials.