# First call: the profile is built while you wait (up to `wait` seconds), or you get a 202 to poll.
curl -G "https://connect.jobo.world/api/companies/by-domain" \
-H "X-Api-Key: $JOBO_API_KEY" \
--data-urlencode "domain=stripe.com" \
--data-urlencode "wait=25"import requests
url = "https://connect.jobo.world/api/companies/by-domain"
headers = {"X-Api-Key": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'X-Api-Key': '<api-key>'}};
fetch('https://connect.jobo.world/api/companies/by-domain', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://connect.jobo.world/api/companies/by-domain",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"X-Api-Key: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://connect.jobo.world/api/companies/by-domain"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("X-Api-Key", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://connect.jobo.world/api/companies/by-domain")
.header("X-Api-Key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://connect.jobo.world/api/companies/by-domain")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["X-Api-Key"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"name": "<string>",
"legal_name": "<string>",
"summary": "<string>",
"description": "<string>",
"website": "<string>",
"listing_url": "<string>",
"logo_url": "<string>",
"linkedin_url": "<string>",
"linkedin_company_id": "<string>",
"twitter_url": "<string>",
"facebook_url": "<string>",
"instagram_url": "<string>",
"angellist_url": "<string>",
"youtube_url": "<string>",
"github_url": "<string>",
"g2_url": "<string>",
"crunchbase_url": "<string>",
"headquarters_location": "<string>",
"headquarters_region": "<string>",
"headquarters_regions": [
"<string>"
],
"country_code": "<string>",
"continent": "<string>",
"phone_number": "<string>",
"email_address": "<string>",
"founding_year": "<string>",
"company_size": "<string>",
"revenue": "<string>",
"is_agency": true,
"industries": [
"<string>"
],
"primary_industry": "<string>",
"categories": [
"<string>"
],
"naics_codes": [
"<string>"
],
"operating_status": "<string>",
"ipo_status": "<string>",
"company_type": "<string>",
"stock_symbol": "<string>",
"stock_exchange": "<string>",
"is_acquired": true,
"acquired_by_company": "<string>",
"parent_company_url": "<string>",
"funding_stage": "<string>",
"total_funding": "<string>",
"funds_total_formatted": "<string>",
"investors": [
"<string>"
],
"funding_rounds": [
{
"investment_type": "<string>",
"announced_on": "<string>",
"raised_amount": "<string>",
"post_money_valuation": "<string>",
"investor_count": 123,
"lead_investor": "<string>"
}
],
"founders": [
"<string>"
],
"leadership": [
{
"name": "<string>",
"title": "<string>",
"linkedin_url": "<string>",
"avatar_url": "<string>"
}
],
"leadership_hires": [
{
"date": "<string>"
}
],
"layoffs": [
{
"date": "<string>"
}
],
"ratings": [
{
"source": "<string>",
"rating": "<string>",
"url": "<string>",
"review_count": 123
}
],
"press_references": [
{
"url": "<string>",
"posted_on": "<string>",
"title": "<string>",
"publisher": "<string>"
}
],
"h1b_annual_job_counts": [
{
"year": "<string>",
"count": 123
}
],
"h1b_title_distribution": [
{
"title": "<string>",
"count": 123
}
],
"technology_list": [
"<string>"
],
"tech_stack": [
{
"name": "<string>",
"categories": [
"<string>"
]
}
],
"products": [
{
"name": "<string>",
"description": "<string>"
}
],
"software_used": [
{
"name": "<string>",
"description": "<string>"
}
],
"research_focus_areas": [
"<string>"
],
"acquisitions": [
{
"acquiree_name": "<string>",
"title": "<string>"
}
],
"exits": [
{
"name": "<string>",
"description": "<string>"
}
],
"subsidiary_list": [
"<string>"
],
"sub_organizations": [
{
"name": "<string>",
"ownership_type": "<string>",
"title": "<string>"
}
],
"featured_lists": [
{
"title": "<string>",
"org_num": 123,
"funding_total_formatted": "<string>",
"funding_total_usd": 123
}
],
"event_appearances": [
{
"appearance_type": "<string>",
"event": "<string>",
"event_starts_on": "<string>",
"image": "<string>"
}
],
"investor_types": [
"<string>"
],
"page_rank": 123,
"ats_provider": "<string>",
"careers_url": "<string>",
"social_links": {},
"technologies": [
"<string>"
],
"technology_mentions": [
"<string>"
]
}{
"status": "pending",
"stage": "<string>",
"retry_after_seconds": 123,
"status_url": "<string>",
"sources_done": 123,
"sources_total": 123
}{
"type": "<string>",
"title": "<string>",
"status": 123,
"detail": "<string>",
"instance": "<string>",
"code": "<string>",
"api_version": "2026-08-31"
}{
"type": "<string>",
"title": "<string>",
"status": 123,
"detail": "<string>",
"instance": "<string>",
"code": "<string>",
"api_version": "2026-08-31"
}{
"type": "<string>",
"title": "<string>",
"status": 123,
"detail": "<string>",
"instance": "<string>",
"code": "<string>",
"api_version": "2026-08-31"
}{
"type": "<string>",
"title": "<string>",
"status": 123,
"detail": "<string>",
"instance": "<string>",
"code": "<string>",
"api_version": "2026-08-31"
}{
"type": "<string>",
"title": "<string>",
"status": 123,
"detail": "<string>",
"instance": "<string>",
"code": "<string>",
"api_version": "2026-08-31"
}Resolve a domain to a company profile
Build or fetch a company profile from a website domain, in the same CompanyDto shape as GET /api/companies/{id}. Evidence comes from the company’s own site (live and from Common Crawl), our company corpus and public datasets; every published value is backed by stored evidence, and fields the evidence does not support come back null rather than guessed.
A cached profile answers 200 immediately. A first lookup starts a profiling run and waits up to wait seconds (default 25, max 60); if the run is still going you get 202 with a status_url to poll. tier=deep runs the slower, more thorough pipeline and always answers 202 unless a deep profile is already cached.
The returned id is not a Jobo company id — it is a stable identifier for the domain’s profile and will not resolve at GET /api/companies/{id}. listing_url is filled only when an ATS listing is known for the domain.
Pricing: a flat 3 credits per delivered profile, charged up-front and refunded automatically on 202 and on any error. Profiles are cached for 180 days and refreshed in the background as they age; refresh=true forces a fresh run. The X-Jobo-Profile-Cache header reports hit, stale (served while refreshing) or miss.
# First call: the profile is built while you wait (up to `wait` seconds), or you get a 202 to poll.
curl -G "https://connect.jobo.world/api/companies/by-domain" \
-H "X-Api-Key: $JOBO_API_KEY" \
--data-urlencode "domain=stripe.com" \
--data-urlencode "wait=25"import requests
url = "https://connect.jobo.world/api/companies/by-domain"
headers = {"X-Api-Key": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'X-Api-Key': '<api-key>'}};
fetch('https://connect.jobo.world/api/companies/by-domain', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://connect.jobo.world/api/companies/by-domain",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"X-Api-Key: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://connect.jobo.world/api/companies/by-domain"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("X-Api-Key", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://connect.jobo.world/api/companies/by-domain")
.header("X-Api-Key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://connect.jobo.world/api/companies/by-domain")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["X-Api-Key"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"name": "<string>",
"legal_name": "<string>",
"summary": "<string>",
"description": "<string>",
"website": "<string>",
"listing_url": "<string>",
"logo_url": "<string>",
"linkedin_url": "<string>",
"linkedin_company_id": "<string>",
"twitter_url": "<string>",
"facebook_url": "<string>",
"instagram_url": "<string>",
"angellist_url": "<string>",
"youtube_url": "<string>",
"github_url": "<string>",
"g2_url": "<string>",
"crunchbase_url": "<string>",
"headquarters_location": "<string>",
"headquarters_region": "<string>",
"headquarters_regions": [
"<string>"
],
"country_code": "<string>",
"continent": "<string>",
"phone_number": "<string>",
"email_address": "<string>",
"founding_year": "<string>",
"company_size": "<string>",
"revenue": "<string>",
"is_agency": true,
"industries": [
"<string>"
],
"primary_industry": "<string>",
"categories": [
"<string>"
],
"naics_codes": [
"<string>"
],
"operating_status": "<string>",
"ipo_status": "<string>",
"company_type": "<string>",
"stock_symbol": "<string>",
"stock_exchange": "<string>",
"is_acquired": true,
"acquired_by_company": "<string>",
"parent_company_url": "<string>",
"funding_stage": "<string>",
"total_funding": "<string>",
"funds_total_formatted": "<string>",
"investors": [
"<string>"
],
"funding_rounds": [
{
"investment_type": "<string>",
"announced_on": "<string>",
"raised_amount": "<string>",
"post_money_valuation": "<string>",
"investor_count": 123,
"lead_investor": "<string>"
}
],
"founders": [
"<string>"
],
"leadership": [
{
"name": "<string>",
"title": "<string>",
"linkedin_url": "<string>",
"avatar_url": "<string>"
}
],
"leadership_hires": [
{
"date": "<string>"
}
],
"layoffs": [
{
"date": "<string>"
}
],
"ratings": [
{
"source": "<string>",
"rating": "<string>",
"url": "<string>",
"review_count": 123
}
],
"press_references": [
{
"url": "<string>",
"posted_on": "<string>",
"title": "<string>",
"publisher": "<string>"
}
],
"h1b_annual_job_counts": [
{
"year": "<string>",
"count": 123
}
],
"h1b_title_distribution": [
{
"title": "<string>",
"count": 123
}
],
"technology_list": [
"<string>"
],
"tech_stack": [
{
"name": "<string>",
"categories": [
"<string>"
]
}
],
"products": [
{
"name": "<string>",
"description": "<string>"
}
],
"software_used": [
{
"name": "<string>",
"description": "<string>"
}
],
"research_focus_areas": [
"<string>"
],
"acquisitions": [
{
"acquiree_name": "<string>",
"title": "<string>"
}
],
"exits": [
{
"name": "<string>",
"description": "<string>"
}
],
"subsidiary_list": [
"<string>"
],
"sub_organizations": [
{
"name": "<string>",
"ownership_type": "<string>",
"title": "<string>"
}
],
"featured_lists": [
{
"title": "<string>",
"org_num": 123,
"funding_total_formatted": "<string>",
"funding_total_usd": 123
}
],
"event_appearances": [
{
"appearance_type": "<string>",
"event": "<string>",
"event_starts_on": "<string>",
"image": "<string>"
}
],
"investor_types": [
"<string>"
],
"page_rank": 123,
"ats_provider": "<string>",
"careers_url": "<string>",
"social_links": {},
"technologies": [
"<string>"
],
"technology_mentions": [
"<string>"
]
}{
"status": "pending",
"stage": "<string>",
"retry_after_seconds": 123,
"status_url": "<string>",
"sources_done": 123,
"sources_total": 123
}{
"type": "<string>",
"title": "<string>",
"status": 123,
"detail": "<string>",
"instance": "<string>",
"code": "<string>",
"api_version": "2026-08-31"
}{
"type": "<string>",
"title": "<string>",
"status": 123,
"detail": "<string>",
"instance": "<string>",
"code": "<string>",
"api_version": "2026-08-31"
}{
"type": "<string>",
"title": "<string>",
"status": 123,
"detail": "<string>",
"instance": "<string>",
"code": "<string>",
"api_version": "2026-08-31"
}{
"type": "<string>",
"title": "<string>",
"status": 123,
"detail": "<string>",
"instance": "<string>",
"code": "<string>",
"api_version": "2026-08-31"
}{
"type": "<string>",
"title": "<string>",
"status": 123,
"detail": "<string>",
"instance": "<string>",
"code": "<string>",
"api_version": "2026-08-31"
}Authorizations
API key provided by Jobo
Query Parameters
Website domain or URL, e.g. stripe.com.
Seconds to wait for a cold run before answering 202.
0 <= x <= 60Pipeline depth. deep is asynchronous and always answers 202 unless cached.
standard, deep Ignore the cached profile and stored evidence; re-acquire everything.
Response
The company profile
Fully enriched company profile.
Registered legal entity name when distinct from the trade name.
Short company blurb. AI-generated when available, otherwise the SEO meta-description / first paragraph from the enrichment source.
Canonical careers / job-listing page URL on the company's ATS (e.g. its Greenhouse / Lever / Workday board), when available.
Region/state when known.
Additional region tags when more than one applies.
ISO 3166-1 alpha-2 country code.
Headcount band (e.g. "1-10", "51-200").
Annual revenue band (e.g. "under-1m", "100m-200m", "over-1b").
Vertical industry labels (e.g. "HR & Staffing").
Single high-level industry label (e.g. "Finance").
Business-model bucket tags (b2b / b2c / saas / service-provider).
"active" | "closed".
"private" | "ipo" | "delisted".
"for_profit" | "non_profit".
URL of the parent organization when this company is a subsidiary.
Total funds raised when the company itself is a VC firm.
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Flat list of technologies the company is reported to use (catalogue names plus mentions).
Structured per-technology records.
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Flat list of subsidiary company names.
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Investor classification (only populated when the company is itself an investor).
Domain authority score (useful for ranking).
Applicant tracking system the company hires through (catalogue id, e.g. greenhouse), when detected.
The company's own careers page, when found.
Every social / review profile found for the company, keyed by platform
(linkedin, twitter, facebook, instagram, youtube, github, g2,
crunchbase, angellist, tiktok, glassdoor, xing, threads, bluesky,
pinterest, vimeo, medium, kununu, trustpilot, indeed, mastodon).
The flat *_url fields carry the same values for the platforms that have one;
this map is the complete set.
Show child attributes
Show child attributes
Technologies detected on the company's website as stable catalogue slugs
(google-tag-manager, shopify, hubspot, …). Deterministic and normalised —
this is the field to filter on.
Technologies named in prose that did not map to a catalogue slug. Display only.

