Updated June 15, 2026
/api/v1/team
curl -X GET \
"https://app.recruitsome.com/api/v1/team" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Accept: application/json"
const response = await fetch('https://app.recruitsome.com/api/v1/team', {
method: 'GET',
headers: {
'Authorization': 'Bearer YOUR_API_KEY',
'Accept': 'application/json',
},
});
const data = await response.json();
console.log(data);
use Illuminate\Support\Facades\Http;
$response = Http::withToken('YOUR_API_KEY')
->acceptJson()
->get('https://app.recruitsome.com/api/v1/team');
$data = $response->json();
Retrieve a paginated list of employed team members — ideal for the "meet the team" or "your recruiters" section on your website.
Authentication
Requires an API key with the team:read scope (included in the Career website and Chrome plugin presets). A key without this scope receives a 403 response.
Default filtering
This endpoint only returns currently employed internal team members. Former employees and external portal users (self-service employees and approvers) are automatically excluded.
Query parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
page | integer | 1 | Page number for pagination |
per_page | integer | 20 | Items per page (max: 100) |
search | string | - | Search in name, email, and job title |
job_title | string | - | Filter by job title (partial match) |
role | string | - | Filter by role name (e.g. administrator, hr_manager, recruiter) |
has_avatar | boolean | false | Only return members with an uploaded avatar |
sort | string | given_name | Sort field: given_name, family_name, job_title |
sort_direction | string | asc | Sort direction: asc or desc |
include_phone | boolean | false | Include phone number |
include_role | boolean | false | Include role label |
Response fields
| Field | Type | Description |
|---|---|---|
id | integer | Team member ID — use this for GET /team/{id} |
given_name | string | First name |
family_name | string | Last name |
full_name | string | Full name |
job_title | string|null | Job title |
email | string | Email address |
phone | string|null | Phone number in E.164 format (null when none is set). Key is absent unless include_phone=true — it is not included as null when the flag is off. |
avatar | object | Avatar image URLs in multiple sizes |
role | string|null | Role label (null when the member has no role). Key is absent unless include_role=true. |
Avatar object
Avatar images are provided in three sizes. Each size is null if no avatar has been uploaded.
{
"small": "https://app.recruitsome.com/media/avatars/8/small.jpg",
"medium": "https://app.recruitsome.com/media/avatars/8/medium.jpg",
"large": "https://app.recruitsome.com/media/avatars/8/large.jpg"
}| Size | Dimensions | Use case |
|---|---|---|
small | 128x128 | Lists, cards |
medium | 256x256 | Profile sections, headers |
large | 512x512 | Full profile displays |
Example
curl -X GET "https://app.recruitsome.com/api/v1/team?has_avatar=true&include_role=true&sort=family_name" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Accept: application/json"Response 200
{
"data": [
{
"id": 8,
"given_name": "Femke",
"family_name": "Bakker",
"full_name": "Femke Bakker",
"job_title": "HR Manager",
"email": "[email protected]",
"avatar": {
"small": "https://app.recruitsome.com/media/avatars/8/small.jpg",
"medium": "https://app.recruitsome.com/media/avatars/8/medium.jpg",
"large": "https://app.recruitsome.com/media/avatars/8/large.jpg"
},
"role": "HR Manager"
}
],
"links": {
"first": "https://app.recruitsome.com/api/v1/team?page=1",
"last": "https://app.recruitsome.com/api/v1/team?page=1",
"prev": null,
"next": null
},
"meta": {
"current_page": 1,
"from": 1,
"last_page": 1,
"per_page": 20,
"to": 1,
"total": 1
}
}Error responses
| Status | When | Fix |
|---|---|---|
401 | Missing or invalid API key | Send a valid key as Authorization: Bearer YOUR_API_KEY |
403 | API key lacks the team:read scope | Add the scope to your key or regenerate it with a preset that includes it |
422 | Invalid query parameter (e.g. an unknown sort field) | Correct the parameter per the table above |
Security
This endpoint is designed to safely expose team member data for public display. The response contains only the fields documented above — passwords, authentication tokens, account lockout data, login history, timezone/locale preferences, and employment status are never included. The id field is the team member's user ID in Recruitsome; it's exposed deliberately so you can call the detail endpoint.