Skip to content

List clients

GET
/v1/clients
curl --request GET \
--url https://api2.recruso.co.uk/v1/clients \
--header 'Authorization: <Authorization>'

Returns a paged list of the live clients in your own agency. Leads are excluded; use ListLeads for those.

The list is narrowed to clients under the branches the Recruso user behind your API app can access; a client under any other branch is never returned, even when branchId names that branch.

Each entry is a summary rather than the full record — enough to identify and contact a client. Call GetClientById for one client’s complete details, or ListClientsWithSites when you also need each client’s sites.

clientName matches case-insensitively on any part of the name; branchId is an exact match. clientStatusType is a status name from the client status type vocabulary, and an unrecognised value returns 400 listing the accepted names.

Results are paged: 25 per page by default, capped at 100. pageNumber below 1 is treated as 1. Sort with sortColumn (clientname, createdon, modifiedon, town or postcode) and sortOrder (asc or desc).

Access. Requires a client-credentials access token. Tokens issued through the interactive user login are rejected.

pageNumber

Page number (1-based). Defaults to 1.

integer format: int32

Page number (1-based). Defaults to 1.

pageSize

Number of records per page. Defaults to 25, capped at 100.

integer format: int32

Number of records per page. Defaults to 25, capped at 100.

clientName

Optional case-insensitive partial match on ClientName.

string
nullable

Optional case-insensitive partial match on ClientName.

branchId

Optional exact match on BranchId.

integer format: int16
nullable

Optional exact match on BranchId.

clientStatusType

Optional client status type name filter (e.g. “Current”, “Dormant”). Resolved to ID internally via tblClientStatusTypes.

string
nullable

Optional client status type name filter (e.g. “Current”, “Dormant”). Resolved to ID internally via tblClientStatusTypes.

sortColumn

Column to sort by. Accepted values: clientname, createdon, modifiedon, town, postcode. Defaults to clientname.

string
nullable

Column to sort by. Accepted values: clientname, createdon, modifiedon, town, postcode. Defaults to clientname.

sortOrder

Sort direction: “asc” (default) or “desc”.

string
nullable

Sort direction: “asc” (default) or “desc”.

OK

Media typeapplication/json
object
data
Array<object>

One client in a list of clients — a summary rather than the full record.

object
clientId

The client’s unique identifier, assigned by Recruso.

integer format: int32
clientName

The client’s registered or trading name. Required, up to 100 characters.

string
branchId

The branch the client is managed under. Must be a branch the Recruso user behind your API app can access.

integer format: int16
mediaSourceId

The recruitment source the client came from, as an id from your agency’s Recruitment sources lookup.

integer format: int16
nullable
companyRegNumber

The client’s company registration number. Required, up to 20 characters.

string
nullable
vatYn

Whether the client is VAT registered. When true, vatRegNumber is required.

boolean
nullable
vatRegNumber

The client’s VAT registration number. Required when vatYn is true.

string
nullable
terms

The payment terms agreed with the client, as free text. Required, up to 50 characters.

string
nullable
clientInvoiceType

The invoice type, given by name rather than by id. Must be one of the names published by the client invoice types vocabulary; an unrecognised name returns 400 listing the accepted values.

string
nullable
website

The client’s website.

string
nullable
address1

First line of the client’s trading address. Required, up to 100 characters.

string
nullable
address2

Second line of the client’s trading address.

string
nullable
town

Town or city of the client’s trading address. Required, up to 50 characters.

string
nullable
county

County of the client’s trading address. Required, up to 50 characters.

string
nullable
country

Country of the client’s trading address. Required, up to 50 characters.

string
nullable
postCode

Postcode of the client’s trading address. Required, up to 15 characters.

string
nullable
telephone1

The client’s main telephone number.

string
nullable
email

The client’s main email address.

string
nullable
lineOfBusiness

The client’s line of business. Required, up to 100 characters.

string
nullable
createdOn

When the client was created, in UK local time (GMT/BST) — not UTC.

string format: date-time
nullable
modifiedOn

When the client was last updated, in UK local time (GMT/BST) — not UTC. Null until the client is first updated.

string format: date-time
nullable
pageNumber
integer format: int32
pageSize
integer format: int32
totalCount
integer format: int32
pageCount
integer format: int32
nextPage
string
nullable
previousPage
string
nullable
Example
{
"data": [
{
"clientId": 137,
"clientName": "Northgate Foods Ltd",
"branchId": 4,
"mediaSourceId": 6,
"companyRegNumber": "08841972",
"vatYn": true,
"vatRegNumber": "GB 412 8853 07",
"terms": "30 days from invoice date",
"website": "https://www.example-northgate.co.uk",
"address1": "Northgate House",
"address2": "22 Ashburton Road West",
"town": "Trafford Park",
"county": "Greater Manchester",
"country": "United Kingdom",
"postCode": "M17 1RU",
"telephone1": "0161 872 4400",
"email": "operations@example-northgate.co.uk",
"lineOfBusiness": "Food manufacturing",
"createdOn": "2026-03-04T09:12:44",
"modifiedOn": "2026-06-11T14:02:09"
}
]
}

Bad Request

Media typeapplication/problem+json
object
type
string
nullable
title
string
nullable
status
integer format: int32
nullable
detail
string
nullable
instance
string
nullable
Examplegenerated
{
"type": "example",
"title": "example",
"status": 1,
"detail": "example",
"instance": "example"
}

Unauthorized

Media typeapplication/problem+json
object
type
string
nullable
title
string
nullable
status
integer format: int32
nullable
detail
string
nullable
instance
string
nullable
Examplegenerated
{
"type": "example",
"title": "example",
"status": 1,
"detail": "example",
"instance": "example"
}

Forbidden

Media typeapplication/problem+json
object
type
string
nullable
title
string
nullable
status
integer format: int32
nullable
detail
string
nullable
instance
string
nullable
Examplegenerated
{
"type": "example",
"title": "example",
"status": 1,
"detail": "example",
"instance": "example"
}