Discover/CV API
live

CV APIcv.lv

Access CV.lv job listings, detailed vacancy descriptions, employer profiles, categories, and location data via 6 structured API endpoints.

Endpoint health
verified 3d ago
get_directory_hits
search_jobs
list_job_categories
get_job_details
list_locations
6/6 passing latest checkself-healing
Endpoints
6
Updated
17d ago

What is the CV API?

The CV.lv API provides access to Latvia's leading job board through 6 endpoints, covering vacancy search, full job descriptions, employer profiles, and reference data. The search_jobs endpoint returns vacancy arrays with salary ranges, work time codes, and facet counts for categories, towns, and languages. The get_job_details endpoint delivers HTML-formatted job content, contact details, and similar listings for any vacancy ID.

Try it
Maximum number of results to return per page.
Comma-separated list of numeric town IDs (e.g. 543 for Riga).
Number of results to skip for pagination.
Sort order for results.
Comma-separated list of numeric county IDs.
Search keywords matching position title, company name, or job content.
Filter for hourly salary jobs only.
Filter for remote work positions only.
Comma-separated list of language ISO codes (e.g. en,lv,ru).
Comma-separated list of category codes to filter by.
Comma-separated list of work time codes.
Filter by a specific employer's numeric ID.
Minimum salary amount filter.
Salary period type.
api.parse.bot/scraper/b83ed2d4-356d-497c-a5ab-501d3b188023/<endpoint>
Ready to send
Fill in the parameters and hit sign in to send to see live response data here.
Call it over HTTPgrab a free API key at signup
curl -X GET 'https://api.parse.bot/scraper/b83ed2d4-356d-497c-a5ab-501d3b188023/search_jobs?limit=5&towns=543&offset=0&sorting=RELEVANCE&is_hourly=false&is_remote=false&categories=ADMINISTRATION&work_times=FULL_TIME&salary_type=MONTHLY' \
  -H 'X-API-Key: $PARSE_API_KEY'
Python SDK · recommended

Typed, relational, agent-ready

A generated client with real types, enums, and the links between objects — the structure a flat JSON response can't carry. Autocompletes in your editor and reads cleanly to coding agents.

  • Fully typed · autocompletes
  • Objects link to objects
  • Typed errors & pagination

Typed Python client. Set up the SDK in your uv project, then pull this API’s typed client:

uv add parse-sdk
uv run parse init
uv run parse add --marketplace cv-lv-api

uv run parse add --marketplace pulls a pinned snapshot of this canonical API — it won’t change underneath you. To customize it, subscribe and swap to your own copy.

"""Walkthrough: CV.lv Job Board SDK — search vacancies, drill into details, browse reference data."""
from parse_apis.CV_lv_Job_Board_API import CVlv, Category, Sorting, DirectoryType, VacancyNotFound

client = CVlv()

# Search for IT jobs sorted by salary, capped at 5 results
for vacancy in client.vacancies.search(categories=Category.INFORMATION_TECHNOLOGY, sorting=Sorting.SALARY, limit=5):
    print(vacancy.position_title, vacancy.employer_name, vacancy.salary_from, vacancy.publish_date)

# Drill into the first vacancy's full details
vacancy = client.vacancies.search(categories=Category.SALES, limit=1).first()
if vacancy:
    detail = vacancy.details()
    print(detail.position, detail.highlights.salary_from, detail.highlights.rate_per)
    print(detail.contacts.first_name, detail.contacts.email)
    for section in detail.details.standard_details[:2]:
        print(section.id, section.title)

# Browse directory items by location type
for item in client.directory_items.list(type=DirectoryType.LOCATION, limit=3):
    print(item.id, item.type, item.target_type, item.count, item.display_on_main_page)

# Get top employers
for emp in client.employers.top(limit=5):
    print(emp.employer_name, emp.vacancy_count, emp.about[:60])

# Get category reference data
cat_map = client.category_maps.get()
print(cat_map.categories)

# Handle a missing vacancy gracefully
try:
    v = client.vacancies.search(limit=1).first()
    if v:
        v.details()
except VacancyNotFound as exc:
    print(f"Vacancy gone: {exc.vacancy_id}")

# Get all locations reference data — towns, counties, and countries
loc = client.locations.get()
for town in loc.towns[:3]:
    print(town.id, town.name, town.country_id)
for cid, country in list(loc.countries.items())[:2]:
    print(country.id, country.iso, country.name)

print("exercised: vacancies.search / vacancy.details / directory_items.list / employers.top / category_maps.get / locations.get")
All endpoints · 6 totalmissing one? ·

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.

Input
ParamTypeDescription
limitintegerMaximum number of results to return per page.
townsstringComma-separated list of numeric town IDs (e.g. 543 for Riga).
offsetintegerNumber of results to skip for pagination.
sortingstringSort order for results.
countiesstringComma-separated list of numeric county IDs.
keywordsstringSearch keywords matching position title, company name, or job content.
is_hourlybooleanFilter for hourly salary jobs only.
is_remotebooleanFilter for remote work positions only.
languagesstringComma-separated list of language ISO codes (e.g. en,lv,ru).
categoriesstringComma-separated list of category codes to filter by.
work_timesstringComma-separated list of work time codes.
employer_idintegerFilter by a specific employer's numeric ID.
salary_fromintegerMinimum salary amount filter.
salary_typestringSalary period type.
Response
{
  "type": "object",
  "fields": {
    "towns": "object with town ID keys and job count values",
    "languages": "object with language ISO keys and job count values",
    "vacancies": "array of vacancy objects with id, positionTitle, employerName, salaryFrom, salaryTo, townId, remoteWork, publishDate, workTimes, categories",
    "workTimes": "object with work time code keys and job count values",
    "categories": "object with category code keys and job count values",
    "totalResultsCount": "integer total number of matching results"
  },
  "sample": {
    "data": {
      "towns": {
        "543": 1878
      },
      "languages": {
        "en": 879,
        "lv": 1217
      },
      "vacancies": [
        {
          "id": 1595778,
          "townId": 556,
          "salaryTo": null,
          "workTimes": [
            2
          ],
          "categories": [
            2,
            9
          ],
          "employerId": 19188,
          "remoteWork": false,
          "salaryFrom": 4500,
          "publishDate": "2026-06-10T08:02:19.983+00:00",
          "employerName": "CV-Online Recruitment",
          "positionTitle": "Plant Manager (Liepaja)",
          "remoteWorkType": "ON_SITE"
        }
      ],
      "workTimes": {
        "FULL_TIME": 2275,
        "PART_TIME": 83
      },
      "categories": {
        "SALES": 480,
        "INFORMATION_TECHNOLOGY": 410
      },
      "totalResultsCount": 2480
    },
    "status": "success"
  }
}

About the CV API

Searching and Filtering Vacancies

The search_jobs endpoint accepts keyword queries, numeric towns and counties IDs, and boolean flags like is_remote and is_hourly. Results include a vacancies array where each object carries positionTitle, employerName, salaryFrom, salaryTo, townId, remoteWork, publishDate, and workTimes. Alongside the vacancy list, the response returns facet counts in categories, towns, languages, and workTimes objects — useful for building filter UIs without a separate aggregation call. Pagination is controlled via limit and offset.

Vacancy Details and Employer Data

get_job_details takes a vacancy_id (the numeric ID from search results) plus optional job_slug and employer_slug URL parameters. The response includes a details object with a standardDetails array of HTML content sections, a highlights object with salaryFrom, salaryTo, ratePer, remoteWork, and address, a contacts object with firstName, lastName, email, and phone, and an employer object containing about, webpageUrl, and logoFileId. A similar array provides related vacancies.

Reference and Directory Data

list_job_categories returns a flat mapping of numeric IDs to category code strings such as INFORMATION_TECHNOLOGY, which can be fed directly into search_jobs. list_locations provides towns, counties, and countries objects with IDs and names needed for geographic filtering. get_directory_hits returns items with multilingual titles in Latvian, English, and Russian alongside live job counts — useful for building category or location navigation. get_top_employers lists active hiring companies with vacancyCount, about, and image file IDs for logos and cover images.

Reliability & maintenanceVerified

The CV API is a managed, monitored endpoint for cv.lv — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when cv.lv changes and a check fails, the API is automatically queued for repair and re-verified. It is built to keep working as the site underneath it changes.

This isn't an official cv.lv API — it's an independent, maintained REST wrapper over public data. Where the source has no official API (or only a limited one), Parse gives you a stable contract over a source that never promised one, and keeps it current. Need a new endpoint or field? You can revise it yourself in plain English and the agent rebuilds it against the live site in minutes — contributing the change back to the shared API is free.

Last verified
3d ago
Latest check
6/6 endpoints passing
Maintenance
Monitored & self-healing
Will this API break when the source site changes?+
It's built not to. Every endpoint is health-checked on a schedule with automated test probes. When the source site changes and a check fails, the API is automatically queued for repair and re-verified — that's the self-healing layer. Each API page shows when its endpoints were last verified. And because marketplace APIs are shared, any fix reaches everyone using it.
Is this an official API from the source site?+
No — Parse APIs are independent, managed REST wrappers over publicly available data. That is the point: where a site has no official API (or only a limited one), Parse gives you a maintained, monitored endpoint for that data and keeps it working as the site changes — so you get a stable contract over a source that never promised one.
Can I fix or extend this API myself if I need a new endpoint or field?+
Yes — and you don't have to wait on us. This API was generated by the Parse agent, which stays attached. Describe the change in plain English ("add an endpoint that returns reviews", "fix the price field") in the revise box on the API page or via the revise_api MCP tool, and the agent rebuilds it against the live site in minutes. Contributing the change back to the public API is free.
What happens if I call an endpoint that has an issue?+
Errors are machine-readable: a bad call returns a clean status with the list of available endpoints and a repair hint, so an agent (or you) can recover or trigger a fix instead of failing silently. Confirmed failures feed the automatic repair queue.
Common use cases
  • Aggregate and display Latvian job listings filtered by town ID and remote work flag in a job aggregator app.
  • Monitor salary ranges (salaryFrom, salaryTo) across categories like IT or finance on CV.lv over time.
  • Build a company research tool using get_top_employers to list active hiring companies with vacancy counts.
  • Power a multilingual job navigation widget using get_directory_hits locale data in Latvian, English, and Russian.
  • Extract recruiter contact details (email, phone) from get_job_details for recruiting workflow automation.
  • Sync CV.lv category and location reference data into an internal database using list_job_categories and list_locations.
  • Identify related roles using the similar array returned by get_job_details to surface adjacent opportunities.
Pricing & limitsSee full pricing →
TierPriceCredits/monthRate limit
Free$0/mo1005 req/min
Hobby$30/mo1,00020 req/min
Developer$100/mo5,000100 req/min

One credit = one API call regardless of which marketplace API you call. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.

Frequently asked questions
Does CV.lv have an official developer API?+
CV.lv does not publish a documented public developer API. This Parse API provides structured access to the data available on the CV.lv platform.
How do I filter `search_jobs` results by location?+
Use the towns parameter with comma-separated numeric town IDs — for example, 543 for Riga. Town and county IDs are available from the list_locations endpoint, which returns towns, counties, and countries objects with names and parent relationships.
What does `get_directory_hits` return that `list_locations` does not?+
get_directory_hits returns live job counts alongside each location or category item, plus multilingual titles in Latvian, English, and Russian, short URL parameters, and a displayOnMainPage flag. list_locations only returns the geographic hierarchy without job counts or locale strings.
Does the API expose CV.lv candidate profiles or resume data?+
No. The API covers vacancy listings, employer profiles, and reference data. Candidate profiles and resumes are not exposed by any current endpoint. You can fork this API on Parse and revise it to add an endpoint targeting candidate-side data if that surface becomes accessible.
Is job description content returned as plain text or HTML?+
The details.standardDetails array from get_job_details contains HTML content sections, not plain text. If your application requires plain text, you will need to strip the HTML tags client-side after receiving the response.
Page content last updated . Spec covers 6 endpoints from cv.lv.
Related APIs in JobsSee all →
boss.az API
Search and browse job listings from boss.az with detailed vacancy information, and instantly access company contact details including emails and phone numbers directly from job postings. Filter opportunities by job categories and regions to find positions that match your needs.
m.ss.com API
Browse Latvia's largest classifieds marketplace by category or search for specific listings, view detailed ad information including pricing and descriptions, and retrieve seller contact numbers. Access everything from real estate and vehicles to electronics and services across SS.com's comprehensive catalog.
cvshealth.com API
Search and apply for CVS Health job openings across multiple categories, locations, and roles. Filter positions by keyword, category, or location to find relevant opportunities and get direct links to submit your application.
job.at API
Search and browse jobs on Austria's job.at platform, view detailed job listings with salary info and company details, and use autocomplete features to refine your search by location and keywords. Discover featured positions, explore job categories, and find related job titles to expand your career opportunities.
hh.ru API
Search and filter job vacancies across hh.ru by salary, experience level, employment type, schedule, work format, region, and industry to find positions that match your criteria. Retrieve detailed information about specific job openings to compare opportunities and make informed career decisions.
emploi.ma API
Search and browse job listings from Emploi.ma with detailed information about positions, companies, and available categories across the Moroccan job market. Access company profiles, featured job opportunities, and full job details including requirements, salary, and employment type.
monster.com API
Search and retrieve job listings from Monster.com. Supports keyword and location-based search with structured results including job descriptions, salary ranges, company info, and employment details. Also provides access to popular job categories.
poslovi.infostud.com API
Search and browse job listings from Serbia's top job board, view detailed job information with employer profiles and salary benchmarks. Filter opportunities by job categories and discover insights about employers hiring on Infostud.