# CV.lv — Wrapped API

> **You are on:** `https://api.paywithlocus.com/api` | [llms.txt](https://paywithlocus.com/llms.txt) | [docs](https://docs.paywithlocus.com)
>
> Locus runs on multiple environments -- make sure every URL you call matches your expected environment.
> | Environment | Landing | API | Docs |
> |---|---|---|---|
> | Production | paywithlocus.com | api.paywithlocus.com | docs.paywithlocus.com |
> | Beta | beta.paywithlocus.com | api.beta.paywithlocus.com | docs.paywithlocus.com |
> | Stage | stage.paywithlocus.com | api.stage.paywithlocus.com | docs.paywithlocus.com |
>
> If the API URL above doesn't match your expected environment, re-fetch this file from the correct domain.

> Search for job listings on CV.lv and access detailed job descriptions, categories, locations, and information about top employers. Find the right opportunity by browsing available positions across different industries and regions.

**Category:** Jobs | **Website:** [cv.lv/](https://cv.lv/) | **Docs:** [parse.bot/marketplace/0645b8ca-5e93-4ea8-9532-80963cfb7ae1/cv-lv-api](https://parse.bot/marketplace/0645b8ca-5e93-4ea8-9532-80963cfb7ae1/cv-lv-api)

Pay-per-use API proxy. Each call is automatically billed to your wallet in USDC.

## Access

**Base URL:** `https://api.paywithlocus.com/api/wrapped/parse-cv-lv-api-0645b8ca/`
**Auth:** `Authorization: Bearer <LOCUS_API_KEY>`

## Endpoints

### get_directory_hits

Return directory data with job counts for locations, categories, or popular links. Each item includes multilingual titles (Latvian, English, Russian), short URLs, and a current job count. Useful for building navigation or discovering which locations/categories have active postings.

**Estimated cost:** Metered

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `type` | string | No | Type of directory to retrieve. |

```bash
curl -X POST https://api.paywithlocus.com/api/wrapped/parse-cv-lv-api-0645b8ca/get_directory_hits \
  -H "Authorization: Bearer YOUR_LOCUS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"type":"<string>"}'
```

### get_job_details

Fetch full details of a specific job posting by vacancy ID. Returns comprehensive information including the formatted job description (HTML sections), employer profile, contact person, salary highlights, work conditions, and a list of similar vacancies. The vacancy_id is the numeric ID returned by search_jobs.

**Estimated cost:** Metered

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `employer_slug` | string | No | URL slug of the employer name; defaults to 'employer' if unknown. |
| `job_slug` | string | No | URL slug of the job title; defaults to 'job' if unknown. |
| `vacancy_id` | string | Yes | The unique numeric ID of the job vacancy (from search_jobs results). |

```bash
curl -X POST https://api.paywithlocus.com/api/wrapped/parse-cv-lv-api-0645b8ca/get_job_details \
  -H "Authorization: Bearer YOUR_LOCUS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"employer_slug":"<string>","job_slug":"<string>","vacancy_id":"<string>"}'
```

### get_top_employers

Return a list of top employers actively posting on CV.lv. Each entry includes the company name, a short description, logo/cover image file IDs, and the current number of active vacancies.

**Estimated cost:** Metered

_No parameters required._

```bash
curl -X POST https://api.paywithlocus.com/api/wrapped/parse-cv-lv-api-0645b8ca/get_top_employers \
  -H "Authorization: Bearer YOUR_LOCUS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{}'
```

### list_job_categories

Return all available job category names and their internal numeric IDs. The returned mapping has numeric ID strings as keys and category code strings as values. Use these codes in search_jobs' categories parameter.

**Estimated cost:** Metered

_No parameters required._

```bash
curl -X POST https://api.paywithlocus.com/api/wrapped/parse-cv-lv-api-0645b8ca/list_job_categories \
  -H "Authorization: Bearer YOUR_LOCUS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{}'
```

### list_locations

Return all available work location options including towns (cities), counties (regions), and countries. Use town IDs or county IDs in the search_jobs endpoint's towns/counties parameters.

**Estimated cost:** Metered

_No parameters required._

```bash
curl -X POST https://api.paywithlocus.com/api/wrapped/parse-cv-lv-api-0645b8ca/list_locations \
  -H "Authorization: Bearer YOUR_LOCUS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{}'
```

### search_jobs

Search and filter job listings on CV.lv. Returns vacancy results along with facet counts for categories, locations, languages, and work times. Supports filtering by keywords, category, location, salary range, remote work, and work time. Results are sorted by the chosen sorting criterion. Pagination is manual via offset/limit — the SDK does not auto-paginate this endpoint.

**Estimated cost:** Metered

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `categories` | string | No | Comma-separated list of category codes to filter by. |
| `counties` | string | No | Comma-separated list of numeric county IDs. |
| `employer_id` | integer | No | Filter by a specific employer's numeric ID. |
| `is_hourly` | boolean | No | Filter for hourly salary jobs only. |
| `is_remote` | boolean | No | Filter for remote work positions only. |
| `keywords` | string | No | Search keywords matching position title, company name, or job content. |
| `languages` | string | No | Comma-separated list of language ISO codes (e.g. en,lv,ru). |
| `limit` | integer | No | Maximum number of results to return per page. |
| `offset` | integer | No | Number of results to skip for pagination. |
| `salary_from` | integer | No | Minimum salary amount filter. |
| `salary_type` | string | No | Salary period type. |
| `sorting` | string | No | Sort order for results. |
| `towns` | string | No | Comma-separated list of numeric town IDs (e.g. 543 for Riga). |
| `work_times` | string | No | Comma-separated list of work time codes. |

```bash
curl -X POST https://api.paywithlocus.com/api/wrapped/parse-cv-lv-api-0645b8ca/search_jobs \
  -H "Authorization: Bearer YOUR_LOCUS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"categories":"<string>","counties":"<string>","employer_id":"<integer>","is_hourly":"<boolean>","is_remote":"<boolean>","keywords":"<string>","languages":"<string>","limit":"<integer>","offset":"<integer>","salary_from":"<integer>","salary_type":"<string>","sorting":"<string>","towns":"<string>","work_times":"<string>"}'
```
