> Reverse Contact API documentation. This is the Markdown copy of https://docs.reversecontact.com/reference/contract-types
> Every page is listed at https://docs.reversecontact.com/llms.txt, every endpoint with its credit cost and status at https://docs.reversecontact.com/catalog.json

# Contract type values

> The 8 contract types accepted by the contract type filters of People search, and how each value is matched.

- Last verified: 2026-11-10

The `currentContractType`, `excludeCurrentContractType`, `contractType` and `excludeContractType` filters of [People search](https://docs.reversecontact.com/endpoints/search-people) and [People search count](https://docs.reversecontact.com/endpoints/search-people-count) accept one or more values from the list below.

You can pass a single string or an array of strings, and an array is OR-matched.

```json
{
  "currentContractType": ["freelance", "self-employed"]
}
```

## All contract types (8)

- `full-time`
- `part-time`
- `permanent`
- `contract`
- `internship`
- `self-employed`
- `freelance`
- `apprenticeship`

## How values are matched

- Case, spaces and underscores are ignored: `"Self employed"` is read as `self-employed`.
- Any other value returns HTTP `422` with `error.code` `INVALID_FILTER_VALUE` and the closest valid values. The request costs 0 credits.
- A position with no contract type on record never matches `currentContractType` or `contractType`.
- `currentContractType` reads the current position, `contractType` any position, current or past. The two exclude filters only refine a search: see [Contract types](https://docs.reversecontact.com/endpoints/search-people#contract-types) on the People search page.
- The [available fields](https://docs.reversecontact.com/endpoints/search-people-available-fields) endpoint returns the same eight values as data, in the `allowedValues` of each contract type filter.

## FAQ

### Which contract types can I filter on in People search?

The contract type filters of People search accept eight values: `full-time`, `part-time`, `permanent`, `contract`, `internship`, `self-employed`, `freelance` and `apprenticeship`. Any other value returns HTTP 422 with the closest valid values.

### Is the contract type filter case sensitive?

No. Case, spaces and underscores are ignored by the contract type filters of People search, so `"Self employed"` is read as `self-employed`.

### How do I search freelancers with the Reverse Contact API?

Send `currentContractType` with `freelance`, `self-employed` or both in a People search request. The `currentContractType` filter reads the current position, an array is OR-matched, and a position with no contract type on record never matches.
