Infostud APIposlovi.infostud.com ↗
Access job listings, employer profiles, salary benchmarks, and job categories from poslovi.infostud.com, Serbia's leading job board, via a structured REST API.
What is the Infostud API?
The poslovi.infostud.com API exposes 6 endpoints covering Serbian job listings, employer profiles, salary benchmarks, and filter metadata. The search_jobs endpoint returns paginated primary and secondary job matches along with facets for city, category, workplace type, and employment type. get_salary_data returns position-level wage statistics including median, mean, p10, and p90 values — data rarely available from Eastern European job boards through a structured API.
curl -X GET 'https://api.parse.bot/scraper/c8cde7b3-2cc3-4b8a-9dff-7d87f8691c0d/search_jobs?city=beograd&page=1&query=developer' \ -H 'X-API-Key: $PARSE_API_KEY'
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 poslovi-infostud-com-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: Infostud Jobs SDK — search, detail, employer, salary, facets."""
from parse_apis.infostud_jobs_api import Infostud, City, ResourceNotFound
infostud = Infostud()
# Search for IT jobs in Belgrade using the City enum
for job in infostud.jobs.search(query="developer", city=City.BEOGRAD, limit=5):
print(job.title, job.company_name, job.location, job.salary, job.work_from_home)
# Get full job details using slug, company_slug, and job_id from the URL
detail = infostud.jobs.get(slug="data-engineer", company_slug="createq", job_id="735763")
print(detail.title, detail.company_name, detail.location)
# Fetch employer profile
try:
employer = infostud.employers.get(slug="createq", company_id="40635")
print(employer.company_name, employer.slug, employer.website, employer.profile_type)
except ResourceNotFound as exc:
print(f"Employer not found: {exc}")
# Get salary benchmarks for Belgrade
report = infostud.salaryreports.get(city=City.BEOGRAD)
print(report.content_type)
# Get available job facets (categories, cities, tags)
facets = infostud.facetses.get()
print(facets.cities, facets.categories)
print("exercised: jobs.search / jobs.get / employers.get / salaryreports.get / facetses.get")
Search for job listings on Serbia's leading job board with optional keyword and city filters. Returns paginated results with primary job matches in the 'items' array, secondary matches, and facets for further filtering. Pagination is page-based; each page returns up to ~20 primary results.
| Param | Type | Description |
|---|---|---|
| city | string | City slug for location filtering (e.g. 'beograd', 'novi-sad', 'nis', 'subotica', 'kragujevac'). |
| page | integer | Page number for pagination (1-indexed). |
| query | string | Search keyword to filter jobs by title or description content. |
{
"type": "object",
"fields": {
"page": "integer current page number",
"items": "array of primary job listings with id, title, companyName, companyId, location, url, expirationDate, salary, itTags, workFromHome",
"facets": "object with arrays for cities, categories, workPlaceTypes, employmentTypes, languages, workingHours, tags",
"secondary": "array of secondary job matches",
"totalPrimaryItems": "integer total count of primary matching jobs",
"totalSecondaryItems": "integer total count of secondary matching jobs"
},
"sample": {
"data": {
"page": 1,
"items": [
{
"id": 735763,
"url": "https://poslovi.infostud.com/posao/data-engineer/createq/735763",
"title": "Data Engineer",
"itTags": [
"Java",
"ElasticSearch",
"Python"
],
"salary": null,
"location": "Work from home or office in Niš, Kragujevac or Belgrade",
"companyId": 40635,
"companyName": "CREATEQ",
"workFromHome": true,
"expirationDate": "01.07.2026"
}
],
"facets": {
"cities": [
{
"id": 35,
"name": "Beograd",
"count": 218
}
],
"categories": [
{
"id": 5,
"name": "IT",
"count": 80
}
]
},
"secondary": [],
"totalPrimaryItems": 218,
"totalSecondaryItems": 0
},
"status": "success"
}
}About the Infostud API
Job Search and Listing Detail
The search_jobs endpoint accepts three optional parameters: query (keyword search against title and description), city (a slug such as beograd or novi-sad), and page for pagination. The response splits results into primary and secondary job arrays, includes totalPrimaryItems and totalSecondaryItems counts, and returns a facets object with discrete filter options across cities, categories, workPlaceTypes, employmentTypes, languages, workingHours, and tags. To retrieve full listing content, pass the slug, job_id, and company_slug values from search results into get_job_detail, which returns the full textAd HTML description, salary, educationRequirement, and a companyName field.
Employer Profiles and Salary Benchmarks
get_employer_profile takes a company slug and numeric company_id and returns the companyProfile object: aboutUs text, companyContactInfo, socialNetworks, companyAddresses, active jobs, and companyBenefits. The get_salary_data endpoint accepts an optional city slug and returns searchData.companyWageSearch — an array of position-level records each containing medianWage, meanWage, p10, and p90 values — plus salaryPageData with predefined wage summaries by category.
Filter Metadata and Employer Search
get_job_categories requires no parameters and returns the full set of valid filter values: categories, cities, workPlaceTypes, employmentTypes, languages, workingHours, and tags. This is the right starting point for populating dropdowns or validating query inputs before calling search_jobs. search_employers accepts a query string and returns matching employers by name, useful for resolving company slugs and IDs needed by get_employer_profile.
The Infostud API is a managed, monitored endpoint for poslovi.infostud.com — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when poslovi.infostud.com 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 poslovi.infostud.com 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.
Will this API break when the source site changes?+
Is this an official API from the source site?+
Can I fix or extend this API myself if I need a new endpoint or field?+
What happens if I call an endpoint that has an issue?+
- Aggregate Serbian job market data by category and city using
search_jobsfacets andtotalPrimaryItemscounts. - Build a salary comparison tool for Serbian cities using median and p90 wage fields from
get_salary_data. - Populate a job alert system by polling
search_jobswith specificqueryandcityparameters. - Enrich a company intelligence database with employer descriptions, addresses, and social links from
get_employer_profile. - Validate and auto-complete job search filters using canonical city and category slugs from
get_job_categories. - Track active job counts per employer over time by combining
search_employerswith thejobsarray inget_employer_profile. - Surface education requirements and salary ranges for specific roles by passing job slugs into
get_job_detail.
| Tier | Price | Credits/month | Rate limit |
|---|---|---|---|
| Free | $0/mo | 100 | 5 req/min |
| Hobby | $30/mo | 1,000 | 20 req/min |
| Developer | $100/mo | 5,000 | 100 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.
Does poslovi.infostud.com have an official public developer API?+
What is the difference between 'primary' and 'secondary' results in search_jobs?+
search_jobs response separates results into primary and secondary arrays with corresponding totalPrimaryItems and totalSecondaryItems counts. Primary results are closer matches to the query and city parameters; secondary results are broader or related listings. Both arrays contain the same job object shape, so you can process them identically.Does the API return salary data for all cities or only major ones?+
get_salary_data endpoint accepts a city slug parameter matching the slugs returned by get_job_categories. Coverage depends on what salary data the source site publishes for that city. Major cities like beograd and novi-sad have broader coverage; smaller cities may return fewer position-level records in companyWageSearch.Can I retrieve job application history or candidate data through this API?+
Are job listings from outside Serbia included in search results?+
search_jobs facets include Serbian cities, and the content is primarily in Serbian. Remote roles may appear in results, but international or non-Serbian listings are not the scope of this source. The API reflects what the site indexes.