---
title: "Validate a location filter value"
method: GET
path: "/api/v1/enrichment/validate-location"
tags: ["Enrichment"]
---

# Validate a location filter value

`GET /api/v1/enrichment/validate-location`

## Request

- Base URL: `https://api.rodz.io` (the document declares no server; this is the origin it was published from)
- URL: `https://api.rodz.io/api/v1/enrichment/validate-location`
- Auth: HTTP bearer

Validate a location name before you put it in a signal's `locations` or `excludedLocations` filter — so a typo fails fast here instead of silently producing a signal that matches no one.

**Input:** `name` (query parameter) — a single country, region, or city name (e.g. `France`, `Île-de-France`, `Paris`). Optional `signalType` — set it to `job_offers`, `republished_job_offers` or `recruitment_campaign` when the name is for a job signal's `locations`: job postings are searched against their own place directory, so validate them against that one. A qualifier is understood — `Nantes (France)`, `Berlin, Germany` — and checked against the match.

**Output:** `valid` (boolean — whether the name is recognized), `id` (the matched location's geo id, or null), `name` (the geo directory's label for the match — use it to confirm your input resolved to the place you meant; null when not recognized), and `message` (why it was rejected, present only when `valid` is false).

Submit the plain name you intend (never a geo id) in a signal's `locations` / `excludedLocations`; the filter matches on the name. Use this endpoint to catch two mistakes before writing a signal: an unrecognized name (`valid: false`), and a recognized-but-wrong match — e.g. `uk` matches `Ukraine`, so if you mean the United Kingdom, submit `United Kingdom`. The create and update endpoints reject any unrecognized name with a `400 INVALID_LOCATION` listing the offending values.

## Query parameters

- `name` string, required: Location name to validate, e.g. 'France', 'Paris', 'Germany'.
- `signalType` string, nullable: Optional. The signal type the location is for. Pass `job_offers`, `republished_job_offers` or `recruitment_campaign` to validate a job signal's `locations` — job postings are searched against their own place directory, so a name can be valid for one and not the other.

## Response `200`

Validation result.

- LocationValidationResponse: Result of validating a location name for use in a signal's location filter.
  - `valid` boolean, required: True if the name is a recognized location.
  - `id` string, nullable: Geo id for the recognized location (null when not recognized).
  - `name` string, nullable: The geo directory's label for the matched location — use it to confirm your input resolved to the place you meant (e.g. `uk` matches `Ukraine`). Null when not recognized.
  - `message` string, nullable: Human-readable reason when `valid` is false; null when valid.

## Other responses

- `422`: Validation Error
- `429`: Rate limit exceeded. Retry after the number of seconds in the `Retry-After` response header.

---

[API](https://skmtc.dev/rodz/apis/rodz-api.md) · [All operations](https://skmtc.dev/rodz/apis/rodz-api/llms.txt) · [OpenAPI document](https://skmtc.dev/rodz/apis/rodz-api/revisions/3003505ff896?raw)
