Skip to main content
POST
/
expansions
/
companies
/
lookup
Company expansion detail
curl --request POST \
  --url https://api.pubrio.com/expansions/companies/lookup \
  --header 'Content-Type: application/json' \
  --header 'pubrio-api-key: <api-key>' \
  --data '
{
  "domain_search_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
  "country_code": "US",
  "is_all_markets": false,
  "signal_type": "EXEC",
  "query": "We sell Employer-of-Record and local payroll; best-fit buyers hire in a new market before setting up a legal entity.",
  "is_explain_match": true,
  "window_days": 90,
  "transitioned_dates": [
    "2026-04-01",
    "2026-06-29"
  ],
  "domain": "pubrio.com",
  "linkedin_url": "https://www.linkedin.com/company/pubrio",
  "is_include_established": false,
  "page": 1,
  "per_page": 25,
  "profile_id": 123
}
'
import requests

url = "https://api.pubrio.com/expansions/companies/lookup"

payload = {
"domain_search_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"country_code": "US",
"is_all_markets": False,
"signal_type": "EXEC",
"query": "We sell Employer-of-Record and local payroll; best-fit buyers hire in a new market before setting up a legal entity.",
"is_explain_match": True,
"window_days": 90,
"transitioned_dates": ["2026-04-01", "2026-06-29"],
"domain": "pubrio.com",
"linkedin_url": "https://www.linkedin.com/company/pubrio",
"is_include_established": False,
"page": 1,
"per_page": 25,
"profile_id": 123
}
headers = {
"pubrio-api-key": "<api-key>",
"Content-Type": "application/json"
}

response = requests.post(url, json=payload, headers=headers)

print(response.text)
const options = {
method: 'POST',
headers: {'pubrio-api-key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
domain_search_id: '3c90c3cc-0d44-4b50-8888-8dd25736052a',
country_code: 'US',
is_all_markets: false,
signal_type: 'EXEC',
query: 'We sell Employer-of-Record and local payroll; best-fit buyers hire in a new market before setting up a legal entity.',
is_explain_match: true,
window_days: 90,
transitioned_dates: ['2026-04-01', '2026-06-29'],
domain: 'pubrio.com',
linkedin_url: 'https://www.linkedin.com/company/pubrio',
is_include_established: false,
page: 1,
per_page: 25,
profile_id: 123
})
};

fetch('https://api.pubrio.com/expansions/companies/lookup', 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.pubrio.com/expansions/companies/lookup",
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([
'domain_search_id' => '3c90c3cc-0d44-4b50-8888-8dd25736052a',
'country_code' => 'US',
'is_all_markets' => false,
'signal_type' => 'EXEC',
'query' => 'We sell Employer-of-Record and local payroll; best-fit buyers hire in a new market before setting up a legal entity.',
'is_explain_match' => true,
'window_days' => 90,
'transitioned_dates' => [
'2026-04-01',
'2026-06-29'
],
'domain' => 'pubrio.com',
'linkedin_url' => 'https://www.linkedin.com/company/pubrio',
'is_include_established' => false,
'page' => 1,
'per_page' => 25,
'profile_id' => 123
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"pubrio-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://api.pubrio.com/expansions/companies/lookup"

payload := strings.NewReader("{\n \"domain_search_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"country_code\": \"US\",\n \"is_all_markets\": false,\n \"signal_type\": \"EXEC\",\n \"query\": \"We sell Employer-of-Record and local payroll; best-fit buyers hire in a new market before setting up a legal entity.\",\n \"is_explain_match\": true,\n \"window_days\": 90,\n \"transitioned_dates\": [\n \"2026-04-01\",\n \"2026-06-29\"\n ],\n \"domain\": \"pubrio.com\",\n \"linkedin_url\": \"https://www.linkedin.com/company/pubrio\",\n \"is_include_established\": false,\n \"page\": 1,\n \"per_page\": 25,\n \"profile_id\": 123\n}")

req, _ := http.NewRequest("POST", url, payload)

req.Header.Add("pubrio-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://api.pubrio.com/expansions/companies/lookup")
.header("pubrio-api-key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"domain_search_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"country_code\": \"US\",\n \"is_all_markets\": false,\n \"signal_type\": \"EXEC\",\n \"query\": \"We sell Employer-of-Record and local payroll; best-fit buyers hire in a new market before setting up a legal entity.\",\n \"is_explain_match\": true,\n \"window_days\": 90,\n \"transitioned_dates\": [\n \"2026-04-01\",\n \"2026-06-29\"\n ],\n \"domain\": \"pubrio.com\",\n \"linkedin_url\": \"https://www.linkedin.com/company/pubrio\",\n \"is_include_established\": false,\n \"page\": 1,\n \"per_page\": 25,\n \"profile_id\": 123\n}")
.asString();
require 'uri'
require 'net/http'

url = URI("https://api.pubrio.com/expansions/companies/lookup")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Post.new(url)
request["pubrio-api-key"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"domain_search_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"country_code\": \"US\",\n \"is_all_markets\": false,\n \"signal_type\": \"EXEC\",\n \"query\": \"We sell Employer-of-Record and local payroll; best-fit buyers hire in a new market before setting up a legal entity.\",\n \"is_explain_match\": true,\n \"window_days\": 90,\n \"transitioned_dates\": [\n \"2026-04-01\",\n \"2026-06-29\"\n ],\n \"domain\": \"pubrio.com\",\n \"linkedin_url\": \"https://www.linkedin.com/company/pubrio\",\n \"is_include_established\": false,\n \"page\": 1,\n \"per_page\": 25,\n \"profile_id\": 123\n}"

response = http.request(request)
puts response.read_body
{
  "metadata": {
    "filters": {
      "domain_search_id": "550e8400-e29b-41d4-a716-446655440002",
      "country_code": "US"
    },
    "country_code_auto_picked": false,
    "pagination": {
      "page": 1,
      "per_page": 25,
      "total_entries": 12,
      "total_pages": 1,
      "total_display_pages": 1,
      "is_timeout": false
    }
  },
  "data": {
    "domain_search_id": "550e8400-e29b-41d4-a716-446655440002",
    "country_code": "US",
    "country_name": "United States",
    "stage_rank": 3,
    "stage_name": "Expanding",
    "stage": {
      "slug": "expanding",
      "expansion_score": 0.721,
      "scope": "entering_new_market",
      "direction": "advancing",
      "freshness": "fresh",
      "signal_count": 5,
      "first_signal_at": "2026-05-30T09:00:00.000Z",
      "latest_signal_at": "2026-06-20T14:00:00.000Z",
      "last_transition_at": "2026-06-15T09:30:00.000Z"
    }
  },
  "signals": [
    {
      "signal_type_slug": "EXEC",
      "signal_subtype_slug": "country_manager",
      "signal_strength_slug": "high",
      "polarity": "expansion",
      "event_date": "2026-06-20T14:00:00.000Z",
      "source_type": "linkedin",
      "display_label": "Hired Regional VP for North America",
      "evidence_url": "https://linkedin.com/company/example-corp",
      "source_published_at": "2026-06-20T14:00:00.000Z",
      "lead_time_days": 0
    }
  ],
  "presence": [
    {
      "presence_type": "office",
      "presence_strength": "high",
      "address": "123 Market St, San Francisco, CA",
      "known_since": "2026-03-15T00:00:00.000Z"
    }
  ],
  "timeline": [
    {
      "stage_slug": "expanding",
      "transitioned_at": "2026-06-15T09:30:00.000Z",
      "transition_kind": "advance"
    }
  ],
  "other_markets": [
    {
      "country_code": "CA",
      "stage_slug": "committing",
      "signal_count": 8,
      "first_signal_at": "2026-04-10T00:00:00.000Z",
      "latest_signal_at": "2026-06-22T16:45:00.000Z",
      "last_transition_at": "2026-06-18T00:00:00.000Z"
    }
  ]
}

Authorizations

pubrio-api-key
string
header
required

A unique API token that represents the actions you perform through the API and the corresponding permissions and operations. You can create it through the Settings section.

Body

application/json
domain_search_id
string<uuid>
required

A unique identifier for the company search operation.

country_code
string

Target market as an ISO 3166-1 alpha-2 (cca2) country code. Omit to auto-pick the company's single most active market; set is_all_markets for a cross-market view of every market.

Example:

"US"

is_all_markets
boolean

Return the company's entire expansion footprint across ALL markets in one call, rather than a single market. When true, country_code is ignored, the home market is excluded from the signal aggregates when it can be identified, data becomes a company-level rollup (dominant stage, total signals, date span, top expansion score), and markets_summary lists every market. Defaults to false.

Example:

false

signal_type
enum<string>

Filter the returned signals to a single type.

Available options:
AD,
NEWS,
INFRA,
PARTNER,
EXEC,
OFFICE,
HIRE,
SCALE,
PRODUCT
Example:

"EXEC"

query
string

Plain-language description of what you sell, or the buyer profile you're evaluating this company against. Used only to ground the AI summary (see is_explain_match); unlike the company search, it is NOT interpreted into filters here.

Example:

"We sell Employer-of-Record and local payroll; best-fit buyers hire in a new market before setting up a legal entity."

is_explain_match
boolean

When true and a query is supplied, summary returns a single AI summary of this company's expansion activity in the current scope (the selected market, or all foreign markets when is_all_markets is true), read against your query and grounded in the company's real signals with [n] citations.

Example:

true

window_days
integer
default:90

Optional. Rolling window (in days) that bounds the AI summary feed. Defaults to 90 when neither this nor transitioned_dates is supplied. Does not affect the paginated signals list (full history).

Example:

90

transitioned_dates
string<date>[]

ISO [from, to] date range for the signal/transition window. Takes precedence over window_days when both are supplied.

Example:
["2026-04-01", "2026-06-29"]
domain
string

A company domain used for company search operations. If we receive a URL such as www.pubrio.com or https://docs.pubrio.com/, the system will convert it to pubrio.com for processing.

Example:

"pubrio.com"

linkedin_url
string

The fully formed URL of the LinkedIn company profile. URL begin with http and contain linkedin.com/company/

Example:

"https://www.linkedin.com/company/pubrio"

is_include_established
boolean

Include the established stage (long-standing operators with no active expansion signals). Defaults to false.

Example:

false

page
integer

The page number of the Pubrio data that you want to retrieve.

Example:

1

per_page
integer

The number of search results that should be returned for each page. Limited the number of results per page improves the endpoint's performance.

Example:

25

profile_id
integer

Optional. An identifier for the user profile (workspace) making the request. This is no longer required as the API key already includes your workspace information. If provided, it helps in associating the lookup with a specific user, allowing for data retrieval and credit tracking.

Check out user details endpoints under the Profile tab for more information.

Response

200 - application/json

Company-in-market detail.

metadata
object
data
any