Find company ID
curl --request POST \
--url https://app.tryspecter.com/api/v1/companies/resolve \
--header 'Content-Type: application/json' \
--header 'X-API-Key: <api-key>' \
--data '
{
"to_resolve": [
{
"domain": "stripe.com"
},
{
"crunchbase_url": "https://www.crunchbase.com/organization/stripe"
},
{
"name": "Stripe"
}
]
}
'import requests
url = "https://app.tryspecter.com/api/v1/companies/resolve"
payload = { "to_resolve": [{ "domain": "stripe.com" }, { "crunchbase_url": "https://www.crunchbase.com/organization/stripe" }, { "name": "Stripe" }] }
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({
to_resolve: [
{domain: 'stripe.com'},
{crunchbase_url: 'https://www.crunchbase.com/organization/stripe'},
{name: 'Stripe'}
]
})
};
fetch('https://app.tryspecter.com/api/v1/companies/resolve', 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.tryspecter.com/api/v1/companies/resolve",
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([
'to_resolve' => [
[
'domain' => 'stripe.com'
],
[
'crunchbase_url' => 'https://www.crunchbase.com/organization/stripe'
],
[
'name' => 'Stripe'
]
]
]),
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.tryspecter.com/api/v1/companies/resolve"
payload := strings.NewReader("{\n \"to_resolve\": [\n {\n \"domain\": \"stripe.com\"\n },\n {\n \"crunchbase_url\": \"https://www.crunchbase.com/organization/stripe\"\n },\n {\n \"name\": \"Stripe\"\n }\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.tryspecter.com/api/v1/companies/resolve")
.header("X-API-Key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"to_resolve\": [\n {\n \"domain\": \"stripe.com\"\n },\n {\n \"crunchbase_url\": \"https://www.crunchbase.com/organization/stripe\"\n },\n {\n \"name\": \"Stripe\"\n }\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://app.tryspecter.com/api/v1/companies/resolve")
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 \"to_resolve\": [\n {\n \"domain\": \"stripe.com\"\n },\n {\n \"crunchbase_url\": \"https://www.crunchbase.com/organization/stripe\"\n },\n {\n \"name\": \"Stripe\"\n }\n ]\n}"
response = http.request(request)
puts response.read_body[
{
"query": {
"website_url": "<string>",
"domain": "stripe.com",
"linkedin_url": "<string>",
"crunchbase_url": "https://www.crunchbase.com/organization/stripe",
"pitchbook_url": "https://pitchbook.com/profiles/company/52332-70",
"name": "Stripe"
},
"matches": [
{
"id": "5e3bc2b700c8f4c966ad2bbd",
"name": "Stripe",
"hq": {
"city": "South San Francisco",
"state": "California",
"country": "United States",
"continent": "North America"
},
"match_confidence": 1,
"domain": "stripe.com",
"tagline": "Stripe provides financial infrastructure for businesses to accept payments and grow revenue.",
"founded_year": 2010
}
]
}
]{
"errorCode": "API_KEY_MISSING",
"message": "No API Key was presented on the header X-API-KEY"
}{
"errorCode": "NOT_PERMITTED",
"message": "You do not have permission to access this resource."
}{
"errorCode": "<string>",
"message": "<string>"
}Companies
Find company ID
Resolve a batch of alternate identifiers (domain, website, LinkedIn, Crunchbase or Pitchbook URL, or company name) into the Specter company id. Re-use that id with the id-only company endpoints such as Get company by ID.
Free. This call does not consume credits. The id-only endpoints you call next are charged as usual.
What you need
One or more identifiers to resolve: a domain, website, LinkedIn URL, Crunchbase URL, Pitchbook URL, or company name (1–50 per request). No Specter ID is required; that is what this returns.
Behaviour
- Pass identifiers under
to_resolve(1-50 per request). Each entry must carry exactly one identifier; none, or more than one, returns a validation error. - The response has one result group per input, in the same order, so you can attribute each set of matches back to what you sent.
queryechoes the normalized identifier. domainmatches the primary domain and any domain aliases;website_urlis reduced to its domain before matching.- Exact identifiers (
domain,website_url,linkedin_url,crunchbase_url,pitchbook_url) return at most one company, withmatch_confidence1. crunchbase_urlmust point at an organization profile;pitchbook_urlat a Pitchbook profile. Both accepthttp/https,www, query strings and anchors, and are normalized before matching.nameis fuzzy-matched and can return several ranked candidates (at most 10). Each carries amatch_confidencefrom 0 to 1, relative to the other results for that query; use the extra fields (domain, HQ, founded year) to pick the right one.- An identifier that matches nothing keeps its place with an empty
matcheslist.
What you do next
- Get the full profile. Pass the returned
company_idto Get company by ID. - See who it competes with. Feed the
company_idto Get company competitors. - Track its news. Pull Get company news for the resolved company.
POST
/
companies
/
resolve
Find company ID
curl --request POST \
--url https://app.tryspecter.com/api/v1/companies/resolve \
--header 'Content-Type: application/json' \
--header 'X-API-Key: <api-key>' \
--data '
{
"to_resolve": [
{
"domain": "stripe.com"
},
{
"crunchbase_url": "https://www.crunchbase.com/organization/stripe"
},
{
"name": "Stripe"
}
]
}
'import requests
url = "https://app.tryspecter.com/api/v1/companies/resolve"
payload = { "to_resolve": [{ "domain": "stripe.com" }, { "crunchbase_url": "https://www.crunchbase.com/organization/stripe" }, { "name": "Stripe" }] }
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({
to_resolve: [
{domain: 'stripe.com'},
{crunchbase_url: 'https://www.crunchbase.com/organization/stripe'},
{name: 'Stripe'}
]
})
};
fetch('https://app.tryspecter.com/api/v1/companies/resolve', 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.tryspecter.com/api/v1/companies/resolve",
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([
'to_resolve' => [
[
'domain' => 'stripe.com'
],
[
'crunchbase_url' => 'https://www.crunchbase.com/organization/stripe'
],
[
'name' => 'Stripe'
]
]
]),
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.tryspecter.com/api/v1/companies/resolve"
payload := strings.NewReader("{\n \"to_resolve\": [\n {\n \"domain\": \"stripe.com\"\n },\n {\n \"crunchbase_url\": \"https://www.crunchbase.com/organization/stripe\"\n },\n {\n \"name\": \"Stripe\"\n }\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.tryspecter.com/api/v1/companies/resolve")
.header("X-API-Key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"to_resolve\": [\n {\n \"domain\": \"stripe.com\"\n },\n {\n \"crunchbase_url\": \"https://www.crunchbase.com/organization/stripe\"\n },\n {\n \"name\": \"Stripe\"\n }\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://app.tryspecter.com/api/v1/companies/resolve")
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 \"to_resolve\": [\n {\n \"domain\": \"stripe.com\"\n },\n {\n \"crunchbase_url\": \"https://www.crunchbase.com/organization/stripe\"\n },\n {\n \"name\": \"Stripe\"\n }\n ]\n}"
response = http.request(request)
puts response.read_body[
{
"query": {
"website_url": "<string>",
"domain": "stripe.com",
"linkedin_url": "<string>",
"crunchbase_url": "https://www.crunchbase.com/organization/stripe",
"pitchbook_url": "https://pitchbook.com/profiles/company/52332-70",
"name": "Stripe"
},
"matches": [
{
"id": "5e3bc2b700c8f4c966ad2bbd",
"name": "Stripe",
"hq": {
"city": "South San Francisco",
"state": "California",
"country": "United States",
"continent": "North America"
},
"match_confidence": 1,
"domain": "stripe.com",
"tagline": "Stripe provides financial infrastructure for businesses to accept payments and grow revenue.",
"founded_year": 2010
}
]
}
]{
"errorCode": "API_KEY_MISSING",
"message": "No API Key was presented on the header X-API-KEY"
}{
"errorCode": "NOT_PERMITTED",
"message": "You do not have permission to access this resource."
}{
"errorCode": "<string>",
"message": "<string>"
}Authorizations
Body
application/json
The identifiers to resolve.
Required array length:
1 - 50 elementsShow child attributes
Show child attributes
Response
One result group per input identifier, in the same order as to_resolve.
Was this page helpful?