Company enrichment (credits)
Bulk Company Enrichment Job Results
Retrieve the results of a bulk company enrichment job. Paginated, one row per submitted row, in the order you submitted them.
GET
/
v1
/
company-enrichment
/
bulk
/
{job_id}
/
results
Get Company Enrichment Bulk Results
curl --request GET \
--url https://api.orbisearch.com/v1/company-enrichment/bulk/{job_id}/results \
--header 'X-API-Key: <api-key>'import requests
url = "https://api.orbisearch.com/v1/company-enrichment/bulk/{job_id}/results"
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://api.orbisearch.com/v1/company-enrichment/bulk/{job_id}/results', 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://api.orbisearch.com/v1/company-enrichment/bulk/{job_id}/results",
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://api.orbisearch.com/v1/company-enrichment/bulk/{job_id}/results"
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://api.orbisearch.com/v1/company-enrichment/bulk/{job_id}/results")
.header("X-API-Key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.orbisearch.com/v1/company-enrichment/bulk/{job_id}/results")
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{
"job_id": "123e4567-e89b-12d3-a456-426614174000",
"total_rows": 500,
"total_processed": 500,
"limit": 50,
"offset": 0,
"results": []
}{
"detail": "API key required in X-API-Key header"
}{
"detail": "Job not found"
}{
"detail": "Missing required query parameter: email.",
"errors": [
{
"loc": "query.email",
"msg": "Missing required query parameter: email.",
"type": "missing"
}
]
}{
"detail": "Rate limit exceeded. Maximum 20 requests per second per API key. Contact us to discuss higher limits.",
"code": "rate_limited"
}Use this endpoint to retrieve the results of a bulk company enrichment job. The response contains a
To page through a complete job, increment
A duplicate row carries the same
results array alongside paging metadata (limit, offset, total_rows, total_processed).
Results hold one row for every row you submitted, in the order you submitted them, duplicates and invalid rows included. Each row echoes the LinkedIn URL or domain you sent in input, so you can join results back to your own list by position or by input.
You can call this endpoint while the job is still running. Rows that haven’t been answered yet come back in their place as result: pending, so pages never shift while the job runs. Fetch them again once the job is completed.
Pagination
Results are paginated withlimit and offset query parameters:
| Parameter | Default | Maximum | Notes |
|---|---|---|---|
limit | 50 | 500 | Number of rows to return in this page. |
offset | 0 | None | Position in your submitted list, starting at 0. |
offset by limit until offset >= total_rows.
Per-row shape
Each entry inresults has the same data fields as the GET /v1/company-enrichment response, plus input, input_url and reason.
result | Meaning | Data fields | credits_consumed |
|---|---|---|---|
found | A company record was returned. | populated | 1 |
not_found | No company matches the LinkedIn URL, or no company matches the domain. | null | 1 |
error | OrbiSearch couldn’t answer this row. | null | 1 |
invalid_url | Skipped at submission: not a usable LinkedIn URL or website domain. reason says why. | null, and linkedin_url is null | 0 |
pending | Not answered yet. Poll again. | null | 1, or 0 on a duplicate |
result and data as the first row for that input, with credits_consumed: 0. The first row for each input carries its 1 credit, so the sum of credits_consumed across all rows equals the job’s charge. A LinkedIn URL and a domain for the same company are two inputs, so each is charged.
linkedin_url is the company’s canonical URL, which may differ from what you sent. input is always exactly what you sent. input_url holds the same value on a LinkedIn URL row and is null on a domain row.
On a domain row, is_redirect is true when the website redirects to another domain, and redirected_to names that domain. A company whose website is on either domain counts as a match. Both fields are always false and null on LinkedIn URL rows.
Example response
A job submitted with five rows: a company by LinkedIn URL, the same company written differently, the same company by its website, a URL with no matching page, and a numeric company URL. The website row is a different input from the LinkedIn URL rows, so it is charged on its own.{
"job_id": "123e4567-e89b-12d3-a456-426614174000",
"total_rows": 5,
"total_processed": 5,
"limit": 50,
"offset": 0,
"results": [
{
"result": "found",
"input": "linkedin.com/company/kearney",
"input_url": "linkedin.com/company/kearney",
"is_redirect": false,
"redirected_to": null,
"credits_consumed": 1,
"reason": null,
"linkedin_url": "https://www.linkedin.com/company/kearney",
"linkedin_id": 2196,
"name": "Kearney",
"description": "As one of the original firms, we've never lost sight…",
"website": "https://www.kearney.com/",
"domain": "kearney.com",
"email_domain": "kearney.com",
"industry": "Business Consulting and Services",
"company_size": { "label": "5,001-10,000 employees", "min": 5001, "max": 10000 },
"employee_count": 7548,
"company_type": "Partnership",
"headquarters": { "text": "Chicago, Illinois", "city": "Chicago", "region": "Illinois", "country": "US" },
"founded_year": 1926,
"specialties": ["Management Consulting"],
"follower_count": 694285,
"similar_companies": [
{
"name": "Oliver Wyman",
"linkedin_url": "https://www.linkedin.com/company/oliver-wyman",
"industry": "Business Consulting and Services",
"location": "New York, NY"
}
]
},
{
"result": "found",
"input": "https://uk.linkedin.com/company/kearney/about/",
"input_url": "https://uk.linkedin.com/company/kearney/about/",
"is_redirect": false,
"redirected_to": null,
"credits_consumed": 0,
"reason": null,
"linkedin_url": "https://www.linkedin.com/company/kearney",
"linkedin_id": 2196,
"name": "Kearney",
"description": "As one of the original firms, we've never lost sight…",
"website": "https://www.kearney.com/",
"domain": "kearney.com",
"email_domain": "kearney.com",
"industry": "Business Consulting and Services",
"company_size": { "label": "5,001-10,000 employees", "min": 5001, "max": 10000 },
"employee_count": 7548,
"company_type": "Partnership",
"headquarters": { "text": "Chicago, Illinois", "city": "Chicago", "region": "Illinois", "country": "US" },
"founded_year": 1926,
"specialties": ["Management Consulting"],
"follower_count": 694285,
"similar_companies": [
{
"name": "Oliver Wyman",
"linkedin_url": "https://www.linkedin.com/company/oliver-wyman",
"industry": "Business Consulting and Services",
"location": "New York, NY"
}
]
},
{
"result": "found",
"input": "https://www.kearney.com/about",
"input_url": null,
"is_redirect": false,
"redirected_to": null,
"credits_consumed": 1,
"reason": null,
"linkedin_url": "https://www.linkedin.com/company/kearney",
"linkedin_id": 2196,
"name": "Kearney",
"description": "As one of the original firms, we've never lost sight…",
"website": "https://www.kearney.com/",
"domain": "kearney.com",
"email_domain": "kearney.com",
"industry": "Business Consulting and Services",
"company_size": { "label": "5,001-10,000 employees", "min": 5001, "max": 10000 },
"employee_count": 7548,
"company_type": "Partnership",
"headquarters": { "text": "Chicago, Illinois", "city": "Chicago", "region": "Illinois", "country": "US" },
"founded_year": 1926,
"specialties": ["Management Consulting"],
"follower_count": 694285,
"similar_companies": [
{
"name": "Oliver Wyman",
"linkedin_url": "https://www.linkedin.com/company/oliver-wyman",
"industry": "Business Consulting and Services",
"location": "New York, NY"
}
]
},
{
"result": "not_found",
"input": "linkedin.com/company/acme-widgets-intl",
"input_url": "linkedin.com/company/acme-widgets-intl",
"is_redirect": false,
"redirected_to": null,
"credits_consumed": 1,
"reason": null,
"linkedin_url": "https://www.linkedin.com/company/acme-widgets-intl",
"linkedin_id": null,
"name": null,
"description": null,
"website": null,
"domain": null,
"email_domain": null,
"industry": null,
"company_size": null,
"employee_count": null,
"company_type": null,
"headquarters": null,
"founded_year": null,
"specialties": [],
"follower_count": null,
"similar_companies": []
},
{
"result": "invalid_url",
"input": "https://www.linkedin.com/company/1035",
"input_url": "https://www.linkedin.com/company/1035",
"is_redirect": false,
"redirected_to": null,
"credits_consumed": 0,
"reason": "Numeric company URLs are not supported. Use the company's name URL, e.g. linkedin.com/company/kearney.",
"linkedin_url": null,
"linkedin_id": null,
"name": null,
"description": null,
"website": null,
"domain": null,
"email_domain": null,
"industry": null,
"company_size": null,
"employee_count": null,
"company_type": null,
"headquarters": null,
"founded_year": null,
"specialties": [],
"follower_count": null,
"similar_companies": []
}
]
}
Authorizations
API key for authentication
Path Parameters
Query Parameters
Rows per page (1-500).
Required range:
1 <= x <= 500Row offset into the ordered result set.
Required range:
x >= 0Response
Successful Response
Paginated results for a bulk company-enrichment job.
Unique job identifier.
Total input rows submitted (repeats included).
Example:
500
Input rows answered so far.
Example:
500
Page size used for this response.
Example:
50
Row offset into the ordered result set.
Example:
0
Per-row results in submit order: every input row, repeats included, with the URL as sent echoed in input_url.
Show child attributes
Show child attributes
⌘I
Get Company Enrichment Bulk Results
curl --request GET \
--url https://api.orbisearch.com/v1/company-enrichment/bulk/{job_id}/results \
--header 'X-API-Key: <api-key>'import requests
url = "https://api.orbisearch.com/v1/company-enrichment/bulk/{job_id}/results"
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://api.orbisearch.com/v1/company-enrichment/bulk/{job_id}/results', 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://api.orbisearch.com/v1/company-enrichment/bulk/{job_id}/results",
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://api.orbisearch.com/v1/company-enrichment/bulk/{job_id}/results"
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://api.orbisearch.com/v1/company-enrichment/bulk/{job_id}/results")
.header("X-API-Key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.orbisearch.com/v1/company-enrichment/bulk/{job_id}/results")
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{
"job_id": "123e4567-e89b-12d3-a456-426614174000",
"total_rows": 500,
"total_processed": 500,
"limit": 50,
"offset": 0,
"results": []
}{
"detail": "API key required in X-API-Key header"
}{
"detail": "Job not found"
}{
"detail": "Missing required query parameter: email.",
"errors": [
{
"loc": "query.email",
"msg": "Missing required query parameter: email.",
"type": "missing"
}
]
}{
"detail": "Rate limit exceeded. Maximum 20 requests per second per API key. Contact us to discuss higher limits.",
"code": "rate_limited"
}