curl "https://kliio.app/api/v1/invoices?status=Sent&limit=10" \
-H "Authorization: Bearer YOUR_API_KEY"
const params = new URLSearchParams({ status: 'Sent', limit: '10' })
const res = await fetch(`https://kliio.app/api/v1/invoices?${params}`, {
headers: { Authorization: 'Bearer YOUR_API_KEY' }
})
const { data, pagination } = await res.json()
{
"data": [
{
"id": "inv-uuid-...",
"invoice_number": "INV-0042",
"amount": 1500.00,
"currency": "USD",
"status": "Sent",
"due_date": "2025-04-30",
"tax_rate": 0,
"description": "Website redesign - Phase 1",
"line_items": null,
"client": {
"id": "c1d2e3f4-...",
"name": "Alice Johnson",
"email": "alice@example.com",
"company_name": "Acme Corp"
},
"project": {
"id": "proj-uuid-...",
"name": "Acme Rebrand"
},
"created_at": "2025-03-15T10:30:00.000Z"
}
],
"pagination": {
"total": 84,
"limit": 10,
"offset": 0
}
}
Invoices
List Invoices
Returns a paginated list of all invoices, with optional filters.
GET
/
api
/
v1
/
invoices
curl "https://kliio.app/api/v1/invoices?status=Sent&limit=10" \
-H "Authorization: Bearer YOUR_API_KEY"
const params = new URLSearchParams({ status: 'Sent', limit: '10' })
const res = await fetch(`https://kliio.app/api/v1/invoices?${params}`, {
headers: { Authorization: 'Bearer YOUR_API_KEY' }
})
const { data, pagination } = await res.json()
{
"data": [
{
"id": "inv-uuid-...",
"invoice_number": "INV-0042",
"amount": 1500.00,
"currency": "USD",
"status": "Sent",
"due_date": "2025-04-30",
"tax_rate": 0,
"description": "Website redesign - Phase 1",
"line_items": null,
"client": {
"id": "c1d2e3f4-...",
"name": "Alice Johnson",
"email": "alice@example.com",
"company_name": "Acme Corp"
},
"project": {
"id": "proj-uuid-...",
"name": "Acme Rebrand"
},
"created_at": "2025-03-15T10:30:00.000Z"
}
],
"pagination": {
"total": 84,
"limit": 10,
"offset": 0
}
}
Headers
string
required
Bearer YOUR_API_KEYQuery Parameters
string
Filter invoices by client UUID.
string
Filter by invoice status. One of:
Draft, Sent, Paid, Overdue, Cancelled.integer
Number of records to return. Default
50, max 100.integer
Number of records to skip. Default
0.Response
array
List of invoice objects.
Show Invoice object
Show Invoice object
string
Invoice UUID
string
Auto-generated invoice number (e.g.
INV-0042)number
Total invoice amount
string
3-letter currency code (e.g.
USD)string
Draft, Sent, Paid, Overdue, or Cancelledstring
ISO 8601 date string
number
Tax rate as a percentage (0–100)
string
Invoice description (nullable)
array
Array of line item objects (nullable)
object
Embedded client (
id, name, email, company_name)object
Embedded project (
id, name) — nullablestring
ISO 8601 timestamp
object
curl "https://kliio.app/api/v1/invoices?status=Sent&limit=10" \
-H "Authorization: Bearer YOUR_API_KEY"
const params = new URLSearchParams({ status: 'Sent', limit: '10' })
const res = await fetch(`https://kliio.app/api/v1/invoices?${params}`, {
headers: { Authorization: 'Bearer YOUR_API_KEY' }
})
const { data, pagination } = await res.json()
{
"data": [
{
"id": "inv-uuid-...",
"invoice_number": "INV-0042",
"amount": 1500.00,
"currency": "USD",
"status": "Sent",
"due_date": "2025-04-30",
"tax_rate": 0,
"description": "Website redesign - Phase 1",
"line_items": null,
"client": {
"id": "c1d2e3f4-...",
"name": "Alice Johnson",
"email": "alice@example.com",
"company_name": "Acme Corp"
},
"project": {
"id": "proj-uuid-...",
"name": "Acme Rebrand"
},
"created_at": "2025-03-15T10:30:00.000Z"
}
],
"pagination": {
"total": 84,
"limit": 10,
"offset": 0
}
}

