Returns a Laravel-paginated list of contacts belonging to your workspace.
Endpoint
GET /api/v1/{subdomain}/contacts
Required ability: contacts.read.
| Header | Value |
|---|
Authorization | Bearer apitk_... |
Accept | application/json |
Path parameters
Your workspace subdomain.
Query parameters
1-indexed page number. Defaults to 1.
Items per page. Defaults to 15, maximum 100.
Example request
curl "https://dash.xobito.com/api/v1/acme/contacts?page=1&per_page=15" \
-H "Authorization: Bearer apitk_your_token_here" \
-H "Accept: application/json"
Example response
{
"status": "success",
"data": {
"current_page": 1,
"data": [
{
"id": 25,
"tenant_id": 13,
"firstname": "John",
"lastname": "Doe",
"company": "Demo Co",
"type": "lead",
"email": "john@example.com",
"phone": "+1234567890",
"source_id": 2,
"status_id": 1,
"country_id": 101,
"group_id": [1, 2],
"is_enabled": 1,
"is_opted_out": 0,
"created_at": "2026-04-08T14:30:25.000000Z",
"updated_at": "2026-04-08T14:30:25.000000Z"
}
],
"per_page": 15,
"total": 100,
"last_page": 7,
"first_page_url": "https://dash.xobito.com/api/v1/acme/contacts?page=1",
"next_page_url": "https://dash.xobito.com/api/v1/acme/contacts?page=2",
"prev_page_url": null,
"from": 1,
"to": 15,
"path": "https://dash.xobito.com/api/v1/acme/contacts",
"links": []
}
}
See Data Types → Contact for every field.
Error responses
| Status | When | Body |
|---|
400 | Invalid subdomain | {"status":"error","message":"Validation failed","errors":"Invalid tenant subdomain"} |
401 | Missing or invalid token | {"status":"error","message":"API token is required"} |
403 | Token missing contacts.read ability | {"status":"error","message":"Token does not have the required ability: contacts.read"} |
429 | Rate limit exceeded | {"message":"Too many requests","retry_after":45} |
500 | Server error | {"status":"error","message":"Failed to list contacts"} |