Discover/hh API
live

hh APIhh.uz

Search vacancies, employers, and geographic regions on HeadHunter Uzbekistan (hh.uz). Filter by location, salary, experience, and schedule via 6 endpoints.

This API takes change requests — .
Endpoint health
verified 7d ago
search_vacancies
get_employer_detail
get_professional_roles
get_areas
search_employers
6/6 passing latest checkself-healing
Endpoints
6
Updated
14d ago

What is the hh API?

The hh.uz API provides access to HeadHunter Uzbekistan's job market through 6 endpoints covering vacancy search, employer profiles, and geographic data. search_vacancies accepts filters like area, salary, schedule, and employment type, returning paginated results with vacancy ID, employer name, salary text, and address. Companion endpoints deliver full vacancy descriptions, key skills, employer details, and a structured tree of professional roles.

Try it
Area ID (e.g. 2759 for Tashkent, 97 for Uzbekistan)
Page number (0-based)
Keyword search query
Minimum salary filter
Sort order for results
Items per page (max 100)
Work schedule filter
Employment type filter
Experience level filter
Only show vacancies with salary specified
api.parse.bot/scraper/07bbb703-b142-467f-b860-09067fa58849/<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/07bbb703-b142-467f-b860-09067fa58849/search_vacancies?area=2759&page=0&text=Python&order_by=relevance&per_page=20&schedule=fullDay&employment=full&experience=noExperience' \
  -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 hh-uz-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.

"""HH.uz Job Search — find vacancies, employers, and browse roles in Uzbekistan."""
from parse_apis.HH_uz_Job_Search_API import HHuz, Experience, Schedule, OrderBy, ResourceNotFound

client = HHuz()

# Search remote Python vacancies for experienced developers, sorted by salary
for vacancy in client.vacancies.search(
    text="Python",
    experience=Experience.BETWEEN_3_AND_6,
    schedule=Schedule.REMOTE,
    order_by=OrderBy.SALARY_DESC,
    limit=5,
):
    print(vacancy.name, vacancy.salary_text, vacancy.address)

# Drill into the first result for full details (description, skills)
vacancy = client.vacancies.search(text="data engineer", limit=1).first()
if vacancy:
    detail = vacancy.refresh()
    print(detail.name, detail.experience, detail.location)
    for skill in detail.key_skills[:5]:
        print(f"  skill: {skill}")

# Search employers and get details via constructible Employer
employer = client.employers.search(text="bank", limit=1).first()
if employer:
    full = employer.refresh()
    print(full.name, full.site_url, full.open_vacancies)

# Typed error handling: catch ResourceNotFound for a bad employer ID
try:
    bad = client.employer(id="9999999999").refresh()
except ResourceNotFound as exc:
    print(f"Not found: {exc}")

# Browse role categories
for cat in client.role_categories.list(limit=3):
    print(cat.name, [r.name for r in cat.roles[:2]])

print("exercised: vacancies.search / vacancy.refresh / employers.search / employer.refresh / role_categories.list")
All endpoints · 6 totalmissing one? ·

Search for job vacancies on hh.uz with filters for keyword, location, experience, employment type, and more. Returns paginated results. Each result includes vacancy ID, title, employer info, salary text, and address. Use vacancy IDs from results to fetch full details via get_vacancy_detail.

Input
ParamTypeDescription
areastringArea ID (e.g. 2759 for Tashkent, 97 for Uzbekistan)
pageintegerPage number (0-based)
textstringKeyword search query
salaryintegerMinimum salary filter
order_bystringSort order for results
per_pageintegerItems per page (max 100)
schedulestringWork schedule filter
employmentstringEmployment type filter
experiencestringExperience level filter
only_with_salarybooleanOnly show vacancies with salary specified
Response
{
  "type": "object",
  "fields": {
    "page": "integer current page number",
    "found": "integer total number of matching vacancies",
    "items": "array of vacancy objects with id, name, employer, salary_text, address, url",
    "pages": "integer total number of pages",
    "per_page": "integer items per page"
  },
  "sample": {
    "data": {
      "page": 0,
      "found": 196,
      "items": [
        {
          "id": "133953871",
          "url": "https://hh.uz/vacancy/133953871",
          "name": "Senior Backend / Fullstack Developer (Python / Node.js)",
          "address": "Tashkent",
          "employer": {
            "id": "11215262",
            "name": "OOO PROSIGHT DEV"
          },
          "salary_text": null
        }
      ],
      "pages": 10,
      "per_page": 20
    },
    "status": "success"
  }
}

About the hh API

Vacancy Search and Detail

search_vacancies accepts up to eight filter parameters — including text for keyword search, area for a region ID, salary for a minimum salary floor, and order_by for sort order (relevance, publication_time, salary_desc, salary_asc). Pagination is zero-based via page and per_page (up to 100 items). Each item in the items array carries id, name, employer, salary_text, address, and url. Pass any returned id to get_vacancy_detail to retrieve the full picture: description, key_skills as an array of strings, experience level, and structured employer and location fields.

Employers and Professional Roles

search_employers takes a required text query plus an optional area filter and returns paginated employer objects with id, name, and url. To get depth on a specific company, get_employer_detail returns site_url, description, and open_vacancies count alongside the basic identifiers. The get_professional_roles endpoint requires no parameters and returns a full category tree — each category has id, name, and a roles array — useful for building filter UIs or mapping role taxonomies.

Geographic Coverage

get_areas returns the complete region hierarchy when called without arguments: a nested tree of countries and cities, each node carrying id, name, parent_id, and a child areas array. Supplying an area_id (for example 97 for Uzbekistan or 2759 for Tashkent) scopes the response to that subtree. Area IDs from this endpoint feed directly into the area parameter on search_vacancies and search_employers.

Reliability & maintenanceVerified

The hh API is a managed, monitored endpoint for hh.uz — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when hh.uz 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 hh.uz 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
7d 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 Uzbekistan job listings filtered by city and minimum salary for a local job board
  • Track the number of open vacancies per employer over time using get_employer_detail's open_vacancies field
  • Build a role taxonomy browser from get_professional_roles categories and roles
  • Populate a location picker with the full region tree from get_areas for a job-search app
  • Extract key_skills arrays from get_vacancy_detail to analyze in-demand skills by industry
  • Monitor new vacancies for a specific employer by combining search_employers and search_vacancies with the employer's area
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 hh.uz have an official developer API?+
Yes. HeadHunter maintains a public API documented at https://api.hh.ru/openapi/redoc. It primarily targets the Russian-language platform (hh.ru), so coverage and data availability for hh.uz specifically may differ.
What does `search_vacancies` return and how granular is salary data?+
search_vacancies returns a salary_text string for each vacancy — a human-readable display value rather than structured numeric fields. The same salary_text field appears in get_vacancy_detail. There are no separate salary_from, salary_to, or currency fields in the current response shape, so salary comparisons require parsing the text string yourself.
Is resume or applicant data available through this API?+
Not currently. The API covers vacancy listings, employer profiles, geographic regions, and professional roles. It does not expose resume search, applicant profiles, or application submissions. You can fork this API on Parse and revise it to add an endpoint targeting that data if hh.uz surfaces it publicly.
How does pagination work across endpoints?+
Both search_vacancies and search_employers use zero-based pagination. The page parameter sets the current page (default 0) and responses include pages (total page count), per_page, and found (total matching records). per_page maxes out at 100 for vacancies. get_areas and get_professional_roles return complete datasets in a single call with no pagination.
Does the API cover job listings outside Uzbekistan?+
The API targets hh.uz, which is the Uzbekistan-focused platform. The get_areas endpoint does include region nodes for other countries (for example, area ID 113 for Russia appears in the full tree), but vacancy and employer data reflects hh.uz listings. Coverage of non-Uzbekistan markets is incidental rather than guaranteed. You can fork this API on Parse and revise it to point at hh.ru or another regional HeadHunter domain for broader geographic scope.
Page content last updated . Spec covers 6 endpoints from hh.uz.
Related APIs in JobsSee all →
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.
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.
cv.lv API
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.
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.
hotnigerianjobs.com API
Search and browse Nigerian job listings with detailed company information and job requirements all in one place. Discover employment opportunities by filtering through available positions and accessing comprehensive details about roles and hiring companies.
jobz.pk API
Access real-time job listings from jobz.pk and filter by category, city, organization, newspaper, province, and sector to find positions that match your needs. Get detailed job information, browse government and overseas opportunities, and explore company profiles all in one place.
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.
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.