Integrate Experi into your applications with our REST API. Create invoices, manage clients, and automate your invoicing workflow programmatically.
Production-ready REST API built for developers who need reliable invoicing automation
High-performance REST API with 99.9% uptime. Rate limits of 1000 requests/minute for read operations.
API keys with bcrypt encryption, rate limiting, and comprehensive audit logging for all operations.
Clear examples, comprehensive error handling, and detailed endpoint documentation.
Follow these steps to start using the Experi API in your application
The Developer API is available to PRO subscribers. After upgrading, contact our support team to request API access.
Upgrade to PROOnce approved, go to the Developer section in your dashboard to generate API keys. You can create keys with different permission scopes:
All API requests must include your API key in the Authorization header:
curl https://experi.co.uk/api/v1/clients \ -H "Authorization: Bearer YOUR_API_KEY"
Complete reference for all available API endpoints
All API requests require authentication using a Bearer token. Include your API key in the Authorization header:
Rate limit exceeded responses include a Retry-After header with seconds to wait.
/api/v1/clientsList all clients
/api/v1/clientsCreate a new client
{
"name": "John Doe",
"company": "Acme Corp",
"email": "john@acme.com",
"phone": "+44 20 1234 5678",
"addressLine1": "123 Business St",
"city": "London",
"postcode": "SW1A 1AA",
"country": "United Kingdom"
}/api/v1/clients/:idGet a specific client
/api/v1/clients/:idUpdate a client
/api/v1/invoicesList all invoices
/api/v1/invoicesCreate a new invoice
{
"clientId": "client_id_here",
"issueDate": "2026-02-10T00:00:00Z",
"dueDate": "2026-02-24T00:00:00Z",
"currency": "GBP",
"taxName": "VAT",
"taxRate": 20,
"lineItems": [
{
"description": "Web Development",
"quantity": 10,
"unitPrice": 75.00
}
],
"status": "DRAFT"
}/api/v1/invoices/outstandingGet all outstanding (unpaid) invoices
/api/v1/invoices/:id/sendSend an invoice via email
{
"toEmail": "client@example.com",
"subject": "Invoice #SI-001",
"body": "Please find attached..."
}/api/v1/invoices/:id/paidMark an invoice as paid
{
"paymentDate": "2026-02-10T00:00:00Z",
"amount": 900.00,
"paymentMethod": "Bank Transfer",
"reference": "TXN-123456"
}/api/v1/recurring-invoicesList recurring invoices
/api/v1/recurring-invoicesCreate a recurring invoice
{
"clientId": "client_id_here",
"frequency": "MONTHLY",
"interval": 1,
"startDate": "2026-03-01T00:00:00Z",
"currency": "GBP",
"lineItems": [...],
"autoSend": false
}All errors return a consistent format with an HTTP status code and error details:
{
"error": {
"message": "Validation failed",
"statusCode": 400,
"details": {
"name": ["Name is required"]
}
}
}Upgrade to PRO and request API access to start building integrations today.
Get API Access