New Company Finder search
curl --request POST \
--url https://app.bettercontact.rocks/api/v2/company_finder/async \
--header 'Content-Type: application/json' \
--header 'X-API-Key: <api-key>' \
--data '
{
"limit": 25,
"offset": 0,
"filters": {
"company_industry": {
"include": [
"Software Development"
]
},
"company_hq_location": {
"include": [
"United States"
]
},
"company_headcount_min": 51,
"company_headcount_max": 500,
"is_b2b": true
}
}
'import requests
url = "https://app.bettercontact.rocks/api/v2/company_finder/async"
payload = {
"limit": 25,
"offset": 0,
"filters": {
"company_industry": { "include": ["Software Development"] },
"company_hq_location": { "include": ["United States"] },
"company_headcount_min": 51,
"company_headcount_max": 500,
"is_b2b": True
}
}
headers = {
"X-API-Key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'X-API-Key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
limit: 25,
offset: 0,
filters: {
company_industry: {include: ['Software Development']},
company_hq_location: {include: ['United States']},
company_headcount_min: 51,
company_headcount_max: 500,
is_b2b: true
}
})
};
fetch('https://app.bettercontact.rocks/api/v2/company_finder/async', 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://app.bettercontact.rocks/api/v2/company_finder/async",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'limit' => 25,
'offset' => 0,
'filters' => [
'company_industry' => [
'include' => [
'Software Development'
]
],
'company_hq_location' => [
'include' => [
'United States'
]
],
'company_headcount_min' => 51,
'company_headcount_max' => 500,
'is_b2b' => true
]
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"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"
"strings"
"net/http"
"io"
)
func main() {
url := "https://app.bettercontact.rocks/api/v2/company_finder/async"
payload := strings.NewReader("{\n \"limit\": 25,\n \"offset\": 0,\n \"filters\": {\n \"company_industry\": {\n \"include\": [\n \"Software Development\"\n ]\n },\n \"company_hq_location\": {\n \"include\": [\n \"United States\"\n ]\n },\n \"company_headcount_min\": 51,\n \"company_headcount_max\": 500,\n \"is_b2b\": true\n }\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("X-API-Key", "<api-key>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://app.bettercontact.rocks/api/v2/company_finder/async")
.header("X-API-Key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"limit\": 25,\n \"offset\": 0,\n \"filters\": {\n \"company_industry\": {\n \"include\": [\n \"Software Development\"\n ]\n },\n \"company_hq_location\": {\n \"include\": [\n \"United States\"\n ]\n },\n \"company_headcount_min\": 51,\n \"company_headcount_max\": 500,\n \"is_b2b\": true\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://app.bettercontact.rocks/api/v2/company_finder/async")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["X-API-Key"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"limit\": 25,\n \"offset\": 0,\n \"filters\": {\n \"company_industry\": {\n \"include\": [\n \"Software Development\"\n ]\n },\n \"company_hq_location\": {\n \"include\": [\n \"United States\"\n ]\n },\n \"company_headcount_min\": 51,\n \"company_headcount_max\": 500,\n \"is_b2b\": true\n }\n}"
response = http.request(request)
puts response.read_body{
"success": true,
"message": "Company finder request accepted.",
"request_id": "bc39ffbfc24cf043b748"
}{
"success": false,
"error": "Filters parameter is invalid. Include values can not be blank",
"message": "Filters parameter is invalid. Include values can not be blank"
}{
"success": false,
"error": "Your are not authorized. Please check your api_key."
}{
"success": false,
"error": "You do not have enough tokens to use Company Finder API.",
"message": "You do not have enough tokens to use Company Finder API."
}{
"success": false,
"error": "You are out of free company finder requests. Please upgrade your plan to continue using this feature.",
"message": "You are out of free company finder requests. Please upgrade your plan to continue using this feature."
}{
"success": false,
"message": "Company finder request failed."
}Company Finder - Get new companies
New Company Finder Search
Find companies that match firmographic, funding and hiring criteria.
POST
/
company_finder
/
async
New Company Finder search
curl --request POST \
--url https://app.bettercontact.rocks/api/v2/company_finder/async \
--header 'Content-Type: application/json' \
--header 'X-API-Key: <api-key>' \
--data '
{
"limit": 25,
"offset": 0,
"filters": {
"company_industry": {
"include": [
"Software Development"
]
},
"company_hq_location": {
"include": [
"United States"
]
},
"company_headcount_min": 51,
"company_headcount_max": 500,
"is_b2b": true
}
}
'import requests
url = "https://app.bettercontact.rocks/api/v2/company_finder/async"
payload = {
"limit": 25,
"offset": 0,
"filters": {
"company_industry": { "include": ["Software Development"] },
"company_hq_location": { "include": ["United States"] },
"company_headcount_min": 51,
"company_headcount_max": 500,
"is_b2b": True
}
}
headers = {
"X-API-Key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'X-API-Key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
limit: 25,
offset: 0,
filters: {
company_industry: {include: ['Software Development']},
company_hq_location: {include: ['United States']},
company_headcount_min: 51,
company_headcount_max: 500,
is_b2b: true
}
})
};
fetch('https://app.bettercontact.rocks/api/v2/company_finder/async', 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://app.bettercontact.rocks/api/v2/company_finder/async",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'limit' => 25,
'offset' => 0,
'filters' => [
'company_industry' => [
'include' => [
'Software Development'
]
],
'company_hq_location' => [
'include' => [
'United States'
]
],
'company_headcount_min' => 51,
'company_headcount_max' => 500,
'is_b2b' => true
]
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"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"
"strings"
"net/http"
"io"
)
func main() {
url := "https://app.bettercontact.rocks/api/v2/company_finder/async"
payload := strings.NewReader("{\n \"limit\": 25,\n \"offset\": 0,\n \"filters\": {\n \"company_industry\": {\n \"include\": [\n \"Software Development\"\n ]\n },\n \"company_hq_location\": {\n \"include\": [\n \"United States\"\n ]\n },\n \"company_headcount_min\": 51,\n \"company_headcount_max\": 500,\n \"is_b2b\": true\n }\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("X-API-Key", "<api-key>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://app.bettercontact.rocks/api/v2/company_finder/async")
.header("X-API-Key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"limit\": 25,\n \"offset\": 0,\n \"filters\": {\n \"company_industry\": {\n \"include\": [\n \"Software Development\"\n ]\n },\n \"company_hq_location\": {\n \"include\": [\n \"United States\"\n ]\n },\n \"company_headcount_min\": 51,\n \"company_headcount_max\": 500,\n \"is_b2b\": true\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://app.bettercontact.rocks/api/v2/company_finder/async")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["X-API-Key"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"limit\": 25,\n \"offset\": 0,\n \"filters\": {\n \"company_industry\": {\n \"include\": [\n \"Software Development\"\n ]\n },\n \"company_hq_location\": {\n \"include\": [\n \"United States\"\n ]\n },\n \"company_headcount_min\": 51,\n \"company_headcount_max\": 500,\n \"is_b2b\": true\n }\n}"
response = http.request(request)
puts response.read_body{
"success": true,
"message": "Company finder request accepted.",
"request_id": "bc39ffbfc24cf043b748"
}{
"success": false,
"error": "Filters parameter is invalid. Include values can not be blank",
"message": "Filters parameter is invalid. Include values can not be blank"
}{
"success": false,
"error": "Your are not authorized. Please check your api_key."
}{
"success": false,
"error": "You do not have enough tokens to use Company Finder API.",
"message": "You do not have enough tokens to use Company Finder API."
}{
"success": false,
"error": "You are out of free company finder requests. Please upgrade your plan to continue using this feature.",
"message": "You are out of free company finder requests. Please upgrade your plan to continue using this feature."
}{
"success": false,
"message": "Company finder request failed."
}Several filters only accept exact values from a fixed list: industries, technologies, revenue
ranges and funding round names. Look them up in Taxonomies. A value
that is not in the list silently matches nothing.
Company Finder has no webhook. Retrieve the results by polling
GET /company_finder/async/{request_id}.Filters
- List filters only take
include. Unlike Lead Finder, there is noexclude: it is silently ignored. - Unknown keys are silently ignored too, so check the spelling against the reference below. Lead
Finder keys such as
job_titledo not exist here. - At least one filter must hold a real value, otherwise the request is refused with
400. companyis case-sensitive: send domains in lowercase.
Pagination
limit and offset paginate a single search. offset is zero-based: keep limit constant and
step offset by limit on each call.
| Call | limit | offset | Companies |
|---|---|---|---|
| 1st | 100 | 0 (or omitted) | 1 to 100 |
| 2nd | 100 | 100 | 101 to 200 |
| 3rd | 100 | 200 | 201 to 300 |
summary.companies_found, so you know how many
pages to walk. Each page is a new search and is charged on its own, see Credits.Authorizations
Body
application/json
Filters and pagination for the company search
Company criteria. At least one filter must hold a real value. Unknown keys are ignored, and so is exclude: a request made only of those is refused with 400.
Show child attributes
Show child attributes
Number of companies to return for this page, between 1 and 200. Defaults to 100. A value above 200 is refused with 422; 0, a negative number or a non-numeric value falls back to the default.
Required range:
1 <= x <= 200Example:
100
Zero-based number of matches to skip. A negative value is treated as 0.
To walk through results, keep limit constant and increase offset by limit on each call. The total number of matching companies is returned as summary.companies_found.
Required range:
x >= 0Example:
0
Was this page helpful?