company summary: id, name, website and a few other fields. The companies endpoints turn that id, or a website domain, into a full profile.
Prices and plans are on Billing, limits per group on Rate limits, and error envelopes on Errors.
Find a company ID
Company IDs come from jobs, not from a lookup:company.idon every job object.company.details_urlon the same summary is the profile endpoint’s URL, ready to link to without building it yourself.
Get a company profile
GET /api/companies/{id} returns the fully enriched CompanyDto, or 404 for an unknown, disabled or incomplete company.
What enrichment covers
The Company object reference lists every field. Unknown data comes back as
[] or null, so an empty list means “unknown,” not “none.”
List open jobs
GET /api/companies/{id}/jobs returns the jobs a company currently has posted, one page at a time. page_size defaults to 25 and maxes out at 100; see Pagination.
200 with an empty jobs array, not 404. Check the array length, not the status code.
Enrich a company from its domain (beta)
Beta, available on activation. Email support@jobo.world to switch it on for your account. Until then, calls return
403 with code: company_enrichment_not_enabled and cost nothing.GET /api/companies/by-domain, turns a website domain into a profile in the same CompanyDto shape.
id identifies the domain’s profile, not a Jobo company, so it doesn’t resolve at GET /api/companies/{id}.
Poll a pending profile
A202 carries a status_url, also sent as the Location header along with Retry-After. Cold runs usually take one to five minutes.
status_url rather than calling by-domain again. Repeat calls count against the DataSets rate limit; the poll counts toward Default. The poll returns 202 while the run goes through queued, resolving, acquiring and extracting, then 200 with the profile. It returns 404 when the domain yielded no profile or no run is in progress.
Profiles are cached for 180 days and refreshed in the background as they age. refresh=true forces a fresh run; fresh runs are limited per domain per day, and past the limit the request returns 503 with Retry-After.

