Skip to main content

List Locations

NL EN

Updated June 15, 2026

GET /api/v1/locations
curl -X GET \
  "https://app.recruitsome.com/api/v1/locations" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Accept: application/json"
const response = await fetch('https://app.recruitsome.com/api/v1/locations', {
  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/locations');

$data = $response->json();

Retrieve a paginated list of your office locations — for example to show your offices on your careers site, complete with addresses and optional map coordinates.

Authentication

Requires an API key with the locations:read scope (included in the Career website preset). A key without this scope receives a 403 response.

Query parameters

ParameterTypeDefaultDescription
pageinteger1Page number for pagination
per_pageinteger20Items per page (max: 100)
languagestring-Set response locale for country names (exactly 2 characters)
country_codestring-Filter by country code (2 characters, e.g. NL)
searchstring-Search in name, city, and address
sortstringnameSort field: name, locality, created_at
sort_directionstringascSort direction: asc or desc
include_coordinatesbooleanfalseInclude latitude/longitude
include_vacancy_countbooleanfalseInclude number of vacancies at each location

Response fields

FieldTypeDescription
idintegerUnique location ID
slugstringURL-friendly identifier
namestringLocation name
addressobjectFull address details
coordinatesobjectLatitude/longitude. Key is absent unless include_coordinates=true — it is not included as null.
vacancy_countintegerNumber of vacancies linked to this location. Key is absent unless include_vacancy_count=true.

vacancy_count counts all vacancies linked to the location — including drafts, closed, and unpublished ones — not just the vacancies currently visible on GET /vacancies. Don't use it as a "open positions here" badge without checking against the vacancy list.

Address object

JSON
{
  "address_line_1": "Keizersgracht 100",
  "address_line_2": null,
  "address_line_3": null,
  "locality": "Amsterdam",
  "administrative_area": "North Holland",
  "postal_code": "1015 AA",
  "country_code": "NL",
  "country_name": "Netherlands"
}

Coordinates object

JSON
{
  "latitude": 52.3676,
  "longitude": 4.9041
}

Example

cURL
curl -X GET "https://app.recruitsome.com/api/v1/locations?country_code=NL&include_coordinates=true" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Accept: application/json"

Response 200

JSON
{
  "data": [
    {
      "id": 1,
      "slug": "amsterdam-office-amsterdam-nl",
      "name": "Amsterdam Office",
      "address": {
        "address_line_1": "Keizersgracht 100",
        "address_line_2": null,
        "address_line_3": null,
        "locality": "Amsterdam",
        "administrative_area": "North Holland",
        "postal_code": "1015 AA",
        "country_code": "NL",
        "country_name": "Netherlands"
      },
      "coordinates": {
        "latitude": 52.3676,
        "longitude": 4.9041
      }
    }
  ],
  "links": {
    "first": "https://app.recruitsome.com/api/v1/locations?page=1",
    "last": "https://app.recruitsome.com/api/v1/locations?page=1",
    "prev": null,
    "next": null
  },
  "meta": {
    "current_page": 1,
    "from": 1,
    "last_page": 1,
    "per_page": 20,
    "to": 1,
    "total": 1
  }
}

Error responses

StatusWhenFix
401Missing or invalid API keySend a valid key as Authorization: Bearer YOUR_API_KEY
403API key lacks the locations:read scopeAdd the scope to your key or regenerate it with the Career website preset
422Invalid query parameter (e.g. language or country_code not exactly 2 characters)Correct the parameter per the table above

Notes

  • Deleted locations are automatically excluded
  • Country names are localized based on the language parameter
  • The search parameter performs case-insensitive matching across name, city, and street address