Contents
List Leads - Plugixa CRM
GET /plugixa-crm/v1/leads
List leads, one page at a time.
Any user with access to Plugixa CRM. With Plugixa CRM Pro roles, the list only holds the leads the user’s role lets them read.
Request
GET https://your-site.example/wp-json/plugixa-crm/v1/leads?status=new&orderby=score
Query parameters
| Name | Type | Default | Description |
|---|---|---|---|
status |
string |
Leads with this status only: new, assigned, in_process, converted, recycled or dead. |
Plus the list parameters every paged list accepts. search matches the full name, the e-mail address and the company. orderby accepts id, full_name, email, status, score, source, created_at, modified_at. Field filters (field__operator=value, see Filters) work on assigned_user_id, created_at, modified_at, status, source, score, email, plus Pro custom fields marked filterable.
Responses
200 OK. data is one page of leads.
{
"success": true,
"data": [
{
"id": 22,
"salutation": "",
"first_name": "Ada",
"last_name": "Lovelace",
"full_name": "Ada Lovelace",
"account_name": "Analytical Engines Ltd",
"title": "CTO",
"email": "ada@analytical.example",
"phone": "",
"website": "https://analytical.example",
"status": "new",
"source": "web_site",
"industry": "Software",
"score": 40,
"opportunity_amount": 12000,
"opportunity_currency": "EUR",
"address_city": "London",
"address_country": "United Kingdom",
"description": "",
"converted_at": null,
"converted_account_id": null,
"converted_contact_id": null,
"converted_opportunity_id": null,
"assigned_user_id": 3,
"created_by": "1",
"modified_by": "1",
"created_at": "2026-11-12 09:30:00",
"modified_at": "2026-11-12 09:30:00",
"deleted_at": null,
"do_not_call": "0",
"address_street": "",
"address_state": "",
"address_postal_code": ""
}
],
"meta": {
"total": 19,
"pages": 1
}
}
| Field | Type | Meaning |
|---|---|---|
data[].id |
integer |
The lead’s id |
data[].full_name |
string |
First and last name |
data[].account_name |
string |
The company, as free text |
data[].status |
string |
new, assigned, in_process, converted, recycled or dead |
data[].source |
string |
Where the lead came from, free text such as web_site |
data[].score |
integer |
0 to 100 |
data[].opportunity_amount |
number |
The expected deal value |
meta.total |
integer |
Leads matching, before paging |
meta.pages |
integer |
Number of pages at this per_page |
Errors
| Status | Code | When |
|---|---|---|
400 |
plugixa_crm_unknown_filter |
A field__operator parameter names a field this list cannot filter on. |
400 |
plugixa_crm_unknown_operator |
The operator does not work on that field’s type. |
400 |
plugixa_crm_missing_value |
The filter needs a value, or two for between. |
Plus the errors every endpoint can return.
Examples
curl -s "https://your-site.example/wp-json/plugixa-crm/v1/leads?status=new&orderby=score" \
-u "admin:$WP_APP_PASSWORD"
<?php
$query = http_build_query([
'status' => 'new',
'orderby' => 'score',
]);
$ch = curl_init('https://your-site.example/wp-json/plugixa-crm/v1/leads?' . $query);
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_USERPWD => 'admin:' . getenv('WP_APP_PASSWORD'),
]);
$response = json_decode(curl_exec($ch), true);
curl_close($ch);
const auth = 'Basic ' + btoa(`admin:${process.env.WP_APP_PASSWORD}`);
const query = new URLSearchParams({ status: 'new', orderby: 'score' });
const response = await fetch(`https://your-site.example/wp-json/plugixa-crm/v1/leads?${query}`, {
headers: {
'Authorization': auth,
},
});
const { data, meta } = await response.json();
Quick Links
Share