curl --request POST \
--url https://api.aisa.one/apis/v1/people-data-labs/search-company-elastic \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"size": 50,
"query": "{\"bool\": {\"must\": [{\"term\": {\"industry\": \"computer software\"}}]}}"
}
'import requests
url = "https://api.aisa.one/apis/v1/people-data-labs/search-company-elastic"
payload = {
"size": 50,
"query": "{\"bool\": {\"must\": [{\"term\": {\"industry\": \"computer software\"}}]}}"
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
size: 50,
query: '{"bool": {"must": [{"term": {"industry": "computer software"}}]}}'
})
};
fetch('https://api.aisa.one/apis/v1/people-data-labs/search-company-elastic', 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.aisa.one/apis/v1/people-data-labs/search-company-elastic",
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([
'size' => 50,
'query' => '{"bool": {"must": [{"term": {"industry": "computer software"}}]}}'
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$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.aisa.one/apis/v1/people-data-labs/search-company-elastic"
payload := strings.NewReader("{\n \"size\": 50,\n \"query\": \"{\\\"bool\\\": {\\\"must\\\": [{\\\"term\\\": {\\\"industry\\\": \\\"computer software\\\"}}]}}\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
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.aisa.one/apis/v1/people-data-labs/search-company-elastic")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"size\": 50,\n \"query\": \"{\\\"bool\\\": {\\\"must\\\": [{\\\"term\\\": {\\\"industry\\\": \\\"computer software\\\"}}]}}\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.aisa.one/apis/v1/people-data-labs/search-company-elastic")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"size\": 50,\n \"query\": \"{\\\"bool\\\": {\\\"must\\\": [{\\\"term\\\": {\\\"industry\\\": \\\"computer software\\\"}}]}}\"\n}"
response = http.request(request)
puts response.read_body{
"query": "<string>",
"total": 123,
"records": [
{
"id": "<string>",
"sic": [
{
"sic_code": "<string>",
"major_group": "<string>",
"industry_group": "<string>",
"industry_sector": "<string>"
}
],
"name": "<string>",
"size": "1-10",
"tags": [
"<string>"
],
"type": "public",
"naics": [
{
"sector": "<string>",
"naics_code": "<string>",
"sub_sector": "<string>",
"industry_group": "<string>",
"naics_industry": "<string>",
"national_industry": "<string>"
}
],
"ticker": "<string>",
"founded": 123,
"summary": "<string>",
"website": "<string>",
"headline": "<string>",
"industry": "<string>",
"location": {
"geo": "<string>",
"name": "<string>",
"metro": "<string>",
"region": "<string>",
"country": "<string>",
"locality": "<string>",
"continent": "<string>",
"postal_code": "<string>",
"address_line_2": "<string>",
"street_address": "<string>"
},
"profiles": [
"<string>"
],
"industry_v2": "<string>",
"linkedin_id": "<string>",
"twitter_url": "<string>",
"display_name": "<string>",
"facebook_url": "<string>",
"linkedin_url": "<string>",
"mic_exchange": "<string>",
"linkedin_slug": "<string>",
"employee_count": 123,
"funding_stages": [
"seed"
],
"dataset_version": "<string>",
"inferred_revenue": "<string>",
"alternative_names": [
"<string>"
],
"last_funding_date": "<string>",
"recent_exec_hires": [
{
"roles": [
"<string>"
],
"levels": [
"<string>"
],
"pdl_id": "<string>",
"job_title": "<string>",
"joined_date": "<string>",
"previous_company": {}
}
],
"top_next_employers": {},
"affiliated_profiles": [
"<string>"
],
"alternative_domains": [
"<string>"
],
"employee_churn_rate": {},
"employee_growth_rate": {},
"latest_funding_stage": "seed",
"total_funding_raised": 123,
"number_funding_rounds": 123,
"average_tenure_by_role": {},
"employee_count_by_role": {},
"recent_exec_departures": [
{
"roles": [
"<string>"
],
"levels": [
"<string>"
],
"pdl_id": "<string>",
"job_title": "<string>",
"new_company": {},
"departed_date": "<string>"
}
],
"top_previous_employers": {},
"average_employee_tenure": 123,
"average_tenure_by_level": {},
"employee_count_by_class": {},
"employee_count_by_month": {},
"gross_additions_by_month": {},
"employee_count_by_country": {},
"gross_departures_by_month": {},
"employee_count_by_sub_role": {},
"top_next_employers_by_role": {},
"top_next_employers_12_month": {},
"top_previous_employers_by_role": {},
"employee_count_by_month_by_role": {},
"top_previous_employers_12_month": {},
"employee_count_by_month_by_level": {},
"employee_growth_rate_12_month_by_role": {},
"employee_growth_rate_12_month_by_class": {},
"employee_growth_rate_12_month_by_sub_role": {}
}
],
"scroll_token": "<string>"
}Company Search with Elasticsearch
curl --request POST \
--url https://api.aisa.one/apis/v1/people-data-labs/search-company-elastic \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"size": 50,
"query": "{\"bool\": {\"must\": [{\"term\": {\"industry\": \"computer software\"}}]}}"
}
'import requests
url = "https://api.aisa.one/apis/v1/people-data-labs/search-company-elastic"
payload = {
"size": 50,
"query": "{\"bool\": {\"must\": [{\"term\": {\"industry\": \"computer software\"}}]}}"
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
size: 50,
query: '{"bool": {"must": [{"term": {"industry": "computer software"}}]}}'
})
};
fetch('https://api.aisa.one/apis/v1/people-data-labs/search-company-elastic', 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.aisa.one/apis/v1/people-data-labs/search-company-elastic",
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([
'size' => 50,
'query' => '{"bool": {"must": [{"term": {"industry": "computer software"}}]}}'
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$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.aisa.one/apis/v1/people-data-labs/search-company-elastic"
payload := strings.NewReader("{\n \"size\": 50,\n \"query\": \"{\\\"bool\\\": {\\\"must\\\": [{\\\"term\\\": {\\\"industry\\\": \\\"computer software\\\"}}]}}\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
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.aisa.one/apis/v1/people-data-labs/search-company-elastic")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"size\": 50,\n \"query\": \"{\\\"bool\\\": {\\\"must\\\": [{\\\"term\\\": {\\\"industry\\\": \\\"computer software\\\"}}]}}\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.aisa.one/apis/v1/people-data-labs/search-company-elastic")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"size\": 50,\n \"query\": \"{\\\"bool\\\": {\\\"must\\\": [{\\\"term\\\": {\\\"industry\\\": \\\"computer software\\\"}}]}}\"\n}"
response = http.request(request)
puts response.read_body{
"query": "<string>",
"total": 123,
"records": [
{
"id": "<string>",
"sic": [
{
"sic_code": "<string>",
"major_group": "<string>",
"industry_group": "<string>",
"industry_sector": "<string>"
}
],
"name": "<string>",
"size": "1-10",
"tags": [
"<string>"
],
"type": "public",
"naics": [
{
"sector": "<string>",
"naics_code": "<string>",
"sub_sector": "<string>",
"industry_group": "<string>",
"naics_industry": "<string>",
"national_industry": "<string>"
}
],
"ticker": "<string>",
"founded": 123,
"summary": "<string>",
"website": "<string>",
"headline": "<string>",
"industry": "<string>",
"location": {
"geo": "<string>",
"name": "<string>",
"metro": "<string>",
"region": "<string>",
"country": "<string>",
"locality": "<string>",
"continent": "<string>",
"postal_code": "<string>",
"address_line_2": "<string>",
"street_address": "<string>"
},
"profiles": [
"<string>"
],
"industry_v2": "<string>",
"linkedin_id": "<string>",
"twitter_url": "<string>",
"display_name": "<string>",
"facebook_url": "<string>",
"linkedin_url": "<string>",
"mic_exchange": "<string>",
"linkedin_slug": "<string>",
"employee_count": 123,
"funding_stages": [
"seed"
],
"dataset_version": "<string>",
"inferred_revenue": "<string>",
"alternative_names": [
"<string>"
],
"last_funding_date": "<string>",
"recent_exec_hires": [
{
"roles": [
"<string>"
],
"levels": [
"<string>"
],
"pdl_id": "<string>",
"job_title": "<string>",
"joined_date": "<string>",
"previous_company": {}
}
],
"top_next_employers": {},
"affiliated_profiles": [
"<string>"
],
"alternative_domains": [
"<string>"
],
"employee_churn_rate": {},
"employee_growth_rate": {},
"latest_funding_stage": "seed",
"total_funding_raised": 123,
"number_funding_rounds": 123,
"average_tenure_by_role": {},
"employee_count_by_role": {},
"recent_exec_departures": [
{
"roles": [
"<string>"
],
"levels": [
"<string>"
],
"pdl_id": "<string>",
"job_title": "<string>",
"new_company": {},
"departed_date": "<string>"
}
],
"top_previous_employers": {},
"average_employee_tenure": 123,
"average_tenure_by_level": {},
"employee_count_by_class": {},
"employee_count_by_month": {},
"gross_additions_by_month": {},
"employee_count_by_country": {},
"gross_departures_by_month": {},
"employee_count_by_sub_role": {},
"top_next_employers_by_role": {},
"top_next_employers_12_month": {},
"top_previous_employers_by_role": {},
"employee_count_by_month_by_role": {},
"top_previous_employers_12_month": {},
"employee_count_by_month_by_level": {},
"employee_growth_rate_12_month_by_role": {},
"employee_growth_rate_12_month_by_class": {},
"employee_growth_rate_12_month_by_sub_role": {}
}
],
"scroll_token": "<string>"
}请求规范
- 方法与路径: POST /apis/v1/people-data-labs/search-company-elastic
- 可用状态: enabled
- 请求 URL 模板:
https://api.aisa.one/apis/v1/people-data-labs/search-company-elastic - Runtime 事实版本: d9aafd76ae02b9bcd98e168c52eb69aba6e12890a1eed8da421910f394e8200a
{
"operationId": "people-data-labs.search-company-elastic",
"method": "POST",
"path": "/apis/v1/people-data-labs/search-company-elastic",
"servers": [
{
"url": "https://api.aisa.one"
}
],
"parameters": [],
"security": [
{
"bearerAuth": []
}
],
"requestBody": {
"required": true,
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"size": {
"maximum": 100,
"minimum": 1,
"type": "integer",
"description": "The number of matched company records to return. Must be an integer between 1 and 100, inclusive."
},
"query": {
"type": "string",
"description": "Elasticsearch DSL query string (JSON object) for searching People Data Labs company profiles.\n\n**Supported query types:** term, terms, match, match_phrase, range, exists, bool (must/should/filter/must_not), wildcard, prefix.\n\n**Common Company Fields:** name, display_name, website, industry, employee_count, founded, size, location.country, location.region, location.locality, location.name, tags, linkedin_url, type, summary.\n\n**Location Searches:** Use nested fields: `location.country`, `location.region`, `location.locality`, `location.name`. Example: `{\"term\": {\"location.country\": \"united states\"}}`.\n\n**Important Restrictions:**\n- Do NOT include `size` or `scroll_token` in this query; use the dedicated request fields.\n- Do NOT use `minimum_should_match` in bool queries.\n\nFor complete field mappings, see https://docs.peopledatalabs.com/docs/company-search-api.",
"examples": [
"{\"bool\": {\"must\": [{\"term\": {\"industry\": \"computer software\"}}]}}",
"{\"range\": {\"employee_count\": {\"gte\": 5000}}}",
"{\"bool\": {\"filter\": [{\"range\": {\"founded\": {\"gte\": 2010}}}, {\"term\": {\"location.country\": \"united states\"}}]}}",
"{\"match\": {\"name\": \"google\"}}"
]
},
"pretty": {
"type": "boolean",
"default": false,
"examples": [
"true",
"false"
],
"description": "If true, the JSON response will be pretty-printed with human-readable indentation. Defaults to false."
},
"titlecase": {
"type": "boolean",
"default": false,
"examples": [
"true",
"false"
],
"description": "If true, an attempt will be made to title-case relevant text fields in the returned company records. Defaults to false."
},
"scroll_token": {
"type": "string",
"default": "",
"examples": [
"627275426f6b656e3432363935383437303232353438373930323030343934383635343734313337",
""
],
"description": "A token returned from a previous search response, used for paginating through large result sets. Provide this token to retrieve the next batch of `size` records. Leave empty or omit for the first request."
}
},
"required": [
"query",
"size"
]
}
}
}
},
"x-aisa-status": "enabled",
"x-aisa-pricing": {
"cost_contract": "response_units",
"customer_multiplier": 1.0,
"customer_pricing": "provider_cost_multiplier",
"default_request_estimate_usd": 0.1003,
"estimate_source": "profile_seed",
"evidence_source": "response_body",
"maximum_units": 10000000,
"unit": "provider_credit",
"unit_rate_usd": 1e-06
},
"components": {
"securitySchemes": {
"bearerAuth": {
"scheme": "bearer",
"type": "http"
}
}
}
}
费用与请求规则
按用量计费;默认请求预估费用:$0.1003 USD(不是固定价格)。 声明的单位费率:每 provider_credit $0.000001 USD。 最终费用以账户适用价格及实际结算为准。 公开参考值不是你的账户报价或最终扣费。对于支持 X-AISA-Cost-Mode: quote 的接口,执行前请针对完整请求获取免费报价;执行后通过响应费用元数据和 Usage Logs 核对结算费用。1 USD 等于 1,000,000 个整数 micro-USD。- 默认请求参考估价(USD): 0.1003
- 声明的单位费率(USD): 1e-06
- 计费单位: provider_credit
- 计费依据: response_units
- 公开参考倍率: 1.0
- 声明的最大计数或单位数: 10000000
- 结算证据来源: response_body
授权
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
请求体
The number of matched company records to return. Must be an integer between 1 and 100, inclusive.
1 <= x <= 100Elasticsearch DSL query string (JSON object) for searching People Data Labs company profiles.
Supported query types: term, terms, match, match_phrase, range, exists, bool (must/should/filter/must_not), wildcard, prefix.
Common Company Fields: name, display_name, website, industry, employee_count, founded, size, location.country, location.region, location.locality, location.name, tags, linkedin_url, type, summary.
Location Searches: Use nested fields: location.country, location.region, location.locality, location.name. Example: {"term": {"location.country": "united states"}}.
Important Restrictions:
- Do NOT include
sizeorscroll_tokenin this query; use the dedicated request fields. - Do NOT use
minimum_should_matchin bool queries.
For complete field mappings, see https://docs.peopledatalabs.com/docs/company-search-api.
"{\"bool\": {\"must\": [{\"term\": {\"industry\": \"computer software\"}}]}}"
"{\"range\": {\"employee_count\": {\"gte\": 5000}}}"
"{\"bool\": {\"filter\": [{\"range\": {\"founded\": {\"gte\": 2010}}}, {\"term\": {\"location.country\": \"united states\"}}]}}"
"{\"match\": {\"name\": \"google\"}}"
If true, the JSON response will be pretty-printed with human-readable indentation. Defaults to false.
"true"
"false"
If true, an attempt will be made to title-case relevant text fields in the returned company records. Defaults to false.
"true"
"false"
A token returned from a previous search response, used for paginating through large result sets. Provide this token to retrieve the next batch of size records. Leave empty or omit for the first request.
"627275426f6b656e3432363935383437303232353438373930323030343934383635343734313337"
""