# List all candidates. Returns a list of candidates for an authorized company, sorted by last updated date, newest first. The endpoint supports pagination. The endpoint requires the `personio:recruiting:read` scope. > 📘 Note > > Currently, the Candidates and Applications API does not return custom attributes and tags. > Please consider this limitation when using the API. > 🚧 Warning > > This endpoint is in beta, and may be subject to change. > Please report any bugs to [Help & Feedback](https://support.personio.de/hc/en-us/articles/5659436229277-Help-Feedback) section. # OpenAPI definition ```json { "openapi": "3.0.3", "info": { "title": "Recruiting (Beta)", "description": "Collection of endpoints to manage recruiting applications.", "version": "2.0.0" }, "servers": [ { "url": "https://api.personio.de" } ], "security": [ { "BearerAuth": [] } ], "paths": { "/v2/recruiting/candidates": { "get": { "summary": "List all candidates.", "description": "Returns a list of candidates for an authorized company, sorted by last updated date, newest first.\nThe endpoint supports pagination. The endpoint requires the `personio:recruiting:read` scope.\n\n> 📘 Note\n>\n> Currently, the Candidates and Applications API does not return custom attributes and tags.\n> Please consider this limitation when using the API.\n\n\n> 🚧 Warning\n>\n> This endpoint is in beta, and may be subject to change.\n> Please report any bugs to [Help & Feedback](https://support.personio.de/hc/en-us/articles/5659436229277-Help-Feedback) section.", "tags": [ "Candidates" ], "parameters": [ { "$ref": "#/paths/~1v2~1recruiting~1jobs/get/parameters/0" }, { "$ref": "#/paths/~1v2~1recruiting~1jobs/get/parameters/1" }, { "description": "Return candidates updated before given time.\nMutually exclusive with `updated_at.gt`.", "name": "updated_at.lt", "required": false, "in": "query", "schema": { "type": "string", "format": "date-time" } }, { "description": "Return candidates updated after given time.\nMutually exclusive with `updated_at.lt`.", "name": "updated_at.gt", "required": false, "in": "query", "schema": { "type": "string", "format": "date-time" } }, { "description": "Return candidates with given email.", "name": "email", "required": false, "in": "query", "schema": { "type": "string", "example": "john.doe@example.com" } }, { "description": "Beta: true header is required to opt-in.", "in": "header", "name": "Beta", "schema": { "type": "string", "example": "true" } } ], "x-path-examples": { "200 List all candidates": { "value": "/v2/recruiting/candidates" }, "200 List all candidates with non-default limit": { "value": "/v2/recruiting/candidates", "query": "limit=150" }, "200 List all candidates after given date": { "value": "/v2/recruiting/candidates", "query": "updated_at.gt=2025-02-20T13:19:40" }, "200 List all candidates before given date": { "value": "/v2/recruiting/candidates", "query": "updated_at.lt=2025-02-20T13:19:40" }, "200 List all candidates by email": { "value": "/v2/recruiting/candidates", "query": "email=test@personio.de" }, "200 List candidates by cursor": { "value": "/v2/recruiting/candidates", "query": "cursor=cur_15sdwf2eIvLilN2dKFh211Js" }, "400 List candidates using wrong pagination value": { "value": "/v2/recruiting/candidates", "query": "limit=400" } }, "responses": { "200": { "description": "Successful response.", "content": { "application/json": { "schema": { "type": "object", "properties": { "_data": { "type": "array", "items": { "$ref": "#/components/schemas/Candidate" } }, "_meta": { "$ref": "#/components/schemas/Job/properties/_meta" } } }, "examples": { "200 List all candidates": { "$ref": "#/components/examples/CandidateListResponse" }, "200 List all candidates with non-default limit": { "$ref": "#/components/examples/CandidateListResponse" }, "200 List all candidates after given date": { "$ref": "#/components/examples/CandidateListResponse" }, "200 List all candidates before given date": { "$ref": "#/components/examples/CandidateListResponse" }, "200 List all candidates by email": { "$ref": "#/components/examples/CandidateListResponse" }, "200 List candidates by cursor": { "$ref": "#/components/examples/CandidateListByCursorResponse" } } } } }, "400": { "description": "Bad request.", "content": { "application/problem+json": { "schema": { "$ref": "#/paths/~1v2~1recruiting~1jobs/get/responses/400/content/application~1problem%2Bjson/schema" }, "examples": { "400 List candidates using wrong pagination value": { "$ref": "#/components/examples/InvalidFilterValue" } } } } } } } } }, "components": { "securitySchemes": { "BearerAuth": { "type": "http", "scheme": "bearer", "bearerFormat": "JWT" } }, "schemas": { "Candidate": { "description": "Recruiting candidate object (aka 'applicant').", "type": "object", "required": [ "id", "company_id", "first_name", "last_name", "email" ], "properties": { "id": { "description": "The unique identifier of a candidate.", "type": "string", "readOnly": true, "example": "9823749" }, "company": { "description": "The company, the candidate's application is for.", "type": "object", "properties": { "id": { "description": "The unique identifier of a company.", "readOnly": true, "type": "string", "example": "324" } } }, "applications": { "type": "array", "items": { "$ref": "#/components/schemas/ApplicationRef" } }, "first_name": { "description": "The Candidate's first name.", "type": "string", "example": "John" }, "last_name": { "description": "The Candidate's last name.", "type": "string", "example": "Doe" }, "email": { "description": "The Candidate's email.", "type": "string", "format": "email" }, "gender": { "description": "The Candidate's gender.", "type": "string", "enum": [ "MALE", "FEMALE", "DIVERSE", "UNDEFINED" ], "example": "FEMALE" }, "birthday": { "description": "The Candidate's birth date.", "type": "string", "format": "date" }, "phone": { "description": "The Candidate's phone number.", "type": "string", "example": "+4915212345678" }, "location": { "description": "The Candidate's location.", "type": "string" }, "available_from": { "description": "The Candidate's availability.", "type": "string", "example": "Jan 2024" }, "linkedin_profile": { "description": "The Candidate's link to LinkedIn profile.", "type": "string", "example": "https://www.linkedin.com/in/much-candidate-very-awesome/" }, "created_at": { "description": "Creation date of a candidate.", "readOnly": true, "type": "string", "format": "date-time" }, "updated_at": { "description": "Last modification date of a candidate.", "readOnly": true, "type": "string", "format": "date-time" }, "_meta": { "$ref": "#/components/schemas/Job/properties/_meta" } } }, "ApplicationRef": { "description": "Recruiting application.", "type": "object", "required": [ "id", "application_date" ], "properties": { "id": { "description": "The unique identifier of an application.", "type": "string", "readOnly": true, "example": "9823749" }, "application_date": { "description": "Date when the application was submitted.", "readOnly": true, "type": "string", "format": "date" }, "_meta": { "$ref": "#/components/schemas/Job/properties/_meta" } } }, "Job": { "description": "Recruiting job object.", "type": "object", "required": [ "id", "name", "company" ], "properties": { "id": { "description": "The unique identifier of a Job.", "type": "string", "readOnly": true, "example": "9823749" }, "department": { "$ref": "#/components/schemas/DepartmentRef" }, "company": { "$ref": "#/components/schemas/CompanyRef" }, "name": { "description": "Job title.", "readOnly": true, "type": "string", "example": "Software Developer" }, "category": { "$ref": "#/components/schemas/CategoryRef" }, "hiring_team": { "description": "List of hiring team members assigned to the job.", "type": "array", "items": { "$ref": "#/components/schemas/HiringTeamMember" } }, "created_at": { "description": "Creation date of a job.", "readOnly": true, "type": "object", "required": [ "date-time", "timezone" ], "properties": { "date-time": { "type": "string", "description": "Timestamp with UTC offset.", "format": "date-time" }, "timezone": { "type": "string", "description": "Provide a time zone ID that conforms to the [Time Zone Database](https://www.iana.org/time-zones).", "example": "Europe/Berlin" } } }, "updated_at": { "description": "Last modification date of a job.", "readOnly": true, "type": "object", "required": [ "date-time", "timezone" ], "properties": { "date-time": { "type": "string", "description": "Timestamp with UTC offset.", "format": "date-time" }, "timezone": { "type": "string", "description": "Provide a time zone ID that conforms to the [Time Zone Database](https://www.iana.org/time-zones).", "example": "Europe/Berlin" } } }, "_meta": { "description": "This object represents the metadata information for an object. It's a set of arbitrary key/value attributes such as `links`.", "type": "object", "readOnly": true, "properties": { "links": { "type": "object", "additionalProperties": { "description": "This objects represents a hyperlink.", "type": "object", "readOnly": true, "properties": { "href": { "type": "string", "format": "uri" } }, "additionalProperties": true }, "example": { "links": { "self": { "href": "https://api.personio.de/v2/person?cursor=" } } } } } } } } }, "examples": { "InvalidFilterValue": { "value": { "personio_trace_id": "aswo3f-a202lfso-312123sld-1230ddd", "timestamp": "2021-05-28T11:17:30+00:00", "errors": [ { "title": "Bad request", "detail": "Provided request parameters are invalid.", "type": "https://developer.personio.de/v2.0/page/public-api-error-codes#common.bad_request" } ] } }, "CandidateListResponse": { "value": { "_data": [ { "id": "495039", "company": { "id": "10567" }, "first_name": "John", "last_name": "Doe", "email": "john.doe@example.com", "gender": "MALE", "birthday": "1989-10-15", "phone": "+4915212345678", "location": "Berlin", "available_from": "Jan 2024", "applications": [ { "id": "3223455", "application_date": "2023-12-11", "_meta": { "links": { "self": { "href": "https://api.personio.de/v2/recruiting/applications/3223455" } } } }, { "id": "5293879", "application_date": "2023-12-15", "_meta": { "links": { "self": { "href": "https://api.personio.de/v2/recruiting/applications/5293879" } } } } ], "linkedin_profile": "https://www.linkedin.com/in/much-candidate-very-awesome/", "created_at": "2023-12-11T14:50:17Z", "updated_at": "2023-12-11T14:50:17Z", "_meta": { "links": { "self": { "href": "https://api.personio.de/v2/recruiting/candidates/495039" } } } }, { "id": "3459829", "company": { "id": "10567" }, "first_name": "Jane", "last_name": "Doe", "email": "jane.doe@example.com", "gender": "FEMALE", "birthday": "1991-12-31", "phone": "+4915240983405", "location": "Stuttgart", "available_from": "Summer", "applications": [ { "id": "3409284", "application_date": "2023-12-11", "_meta": { "links": { "self": { "href": "https://api.personio.de/v2/recruiting/applications/3409284" } } } }, { "id": "23985792", "application_date": "2023-12-15", "_meta": { "links": { "self": { "href": "https://api.personio.de/v2/recruiting/applications/23985792" } } } } ], "linkedin_profile": "https://www.linkedin.com/in/i-am-cool/", "created_at": "2023-12-11T14:50:17Z", "updated_at": "2023-12-11T14:50:17Z", "_meta": { "links": { "self": { "href": "https://api.personio.de/v2/recruiting/candidates/3459829" } } } } ], "_meta": { "links": { "self": { "href": "https://api.personio.de/v2/recruiting/candidates" }, "next": { "href": "https://api.personio.de/v2/recruiting/candidates?cursor=cur_234ls0f02lalfdd" } } } } }, "CandidateListByCursorResponse": { "value": { "_data": [ { "id": "495039", "company": { "id": "10567" }, "first_name": "John", "last_name": "Doe", "email": "john.doe@example.com", "gender": "MALE", "birthday": "1989-10-15", "phone": "+4915212345678", "location": "Berlin", "available_from": "Jan 2024", "applications": [ { "id": "3223455", "application_date": "2023-12-11", "_meta": { "links": { "self": { "href": "https://api.personio.de/v2/recruiting/applications/3223455" } } } }, { "id": "5293879", "application_date": "2023-12-15", "_meta": { "links": { "self": { "href": "https://api.personio.de/v2/recruiting/applications/5293879" } } } } ], "linkedin_profile": "https://www.linkedin.com/in/much-candidate-very-awesome/", "created_at": "2023-12-11T14:50:17Z", "updated_at": "2023-12-11T14:50:17Z", "_meta": { "links": { "self": { "href": "https://api.personio.de/v2/recruiting/candidates/495039" } } } }, { "id": "3459829", "company": { "id": "10567" }, "first_name": "Jane", "last_name": "Doe", "email": "jane.doe@example.com", "gender": "FEMALE", "birthday": "1991-12-31", "phone": "+4915240983405", "location": "Stuttgart", "available_from": "Summer", "applications": [ { "id": "4203948", "application_date": "2023-12-11", "_meta": { "links": { "self": { "href": "https://api.personio.de/v2/recruiting/applications/4203948" } } } }, { "id": "4304980", "application_date": "2023-12-15", "_meta": { "links": { "self": { "href": "https://api.personio.de/v2/recruiting/applications/4304980" } } } } ], "linkedin_profile": "https://www.linkedin.com/in/i-am-cool/", "created_at": "2023-12-11T14:50:17Z", "updated_at": "2023-12-11T14:50:17Z", "_meta": { "links": { "self": { "href": "https://api.personio.de/v2/recruiting/candidates/3459829" } } } } ], "_meta": { "links": { "self": { "href": "https://api.personio.de/v2/recruiting/candidates?cursor=cur_15sdwf2eIvLilN2dKFh211Js" }, "next": { "href": "https://api.personio.de/v2/recruiting/candidates?cursor=cur_234ls0f02lalfddQrefvA2fe" } } } } } } } } ```