curl 'https://api.airscale.io/v1/business-intent-topics' \
--header "Authorization: Bearer $AIRSCALE_API_KEY" \
--header 'Content-Type: application/json' \
--data '{"linkedin_company_url":"https://www.linkedin.com/company/example-company/","topics":["crm: customer relationship management (crm)"]}'const url = 'https://api.airscale.io/v1/business-intent-topics';
const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
linkedin_company_url: 'https://www.linkedin.com/company/example-company/',
topics: ['crm: customer relationship management (crm)']
})
};
fetch(url, options)
.then(res => res.json())
.then(json => console.log(json))
.catch(err => console.error(err));import requests
url = "https://api.airscale.io/v1/business-intent-topics"
payload = {
"linkedin_company_url": "https://www.linkedin.com/company/example-company/",
"topics": ["crm: customer relationship management (crm)"]
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)Business intent topics
Check a LinkedIn company for selected business intent topics. A matched result costs 3 credits. Rate limit: 6 requests per second per workspace.
curl 'https://api.airscale.io/v1/business-intent-topics' \
--header "Authorization: Bearer $AIRSCALE_API_KEY" \
--header 'Content-Type: application/json' \
--data '{"linkedin_company_url":"https://www.linkedin.com/company/example-company/","topics":["crm: customer relationship management (crm)"]}'const url = 'https://api.airscale.io/v1/business-intent-topics';
const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
linkedin_company_url: 'https://www.linkedin.com/company/example-company/',
topics: ['crm: customer relationship management (crm)']
})
};
fetch(url, options)
.then(res => res.json())
.then(json => console.log(json))
.catch(err => console.error(err));import requests
url = "https://api.airscale.io/v1/business-intent-topics"
payload = {
"linkedin_company_url": "https://www.linkedin.com/company/example-company/",
"topics": ["crm: customer relationship management (crm)"]
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)Find topic values
Call Company filter values withfilter=topics and a search term of at least two characters. This lookup uses the same API key and is free.
curl --get 'https://api.airscale.io/v1/find-companies/filter-values' \
-H "Authorization: Bearer $AIRSCALE_API_KEY" \
--data-urlencode 'filter=topics' \
--data-urlencode 'q=customer relationship'
values with a display label and a request value. For example, a result can be {"label":"crm: customer relationship management (crm)","value":"crm: customer relationship management (crm)"}. Copy the complete value string into the topics array. Search again with another term to find more topics; send 1–20 values per intent request.
Check a company
curl 'https://api.airscale.io/v1/business-intent-topics' \
-H "Authorization: Bearer $AIRSCALE_API_KEY" \
-H 'Content-Type: application/json' \
--data '{"linkedin_company_url":"https://www.linkedin.com/company/example-company/","topics":["crm: customer relationship management (crm)"]}'
linkedin.com/company/<slug>/ URL without a query or fragment. The request body accepts only linkedin_company_url and topics and is limited to 16 KiB. Topic strings are trimmed, must be nonempty, and can be at most 150 characters each.
When matched is true, the response includes intent_topics, level_of_intent, date_stamp, company details when available, and credits_consumed: 3. When the company is not matched, matched is false, intent_topics is empty, and credits_consumed is 0. A result with no usable intent topics is treated as an error rather than a paid match. Keep at least 3 credits available before calling this endpoint, including for a possible no-match result.
The limit is 6 requests per second per workspace, shared with Find companies and Company filter values. For 429, wait and retry with bounded backoff. A repeated POST is a new lookup and can cost another 3 credits. If a 503 response includes operation_id, credit settlement is uncertain; contact Airscale support with that ID before retrying.
Next step
Use the returnedintent_topics and level_of_intent in your workflow, or search for more topic values to run another check.Authorizations
Use an Airscale workspace API key. Never expose the key in client-side code.
Body
Provide one LinkedIn company URL and 1–20 complete topic value strings from the free filter-values lookup.
HTTPS LinkedIn company URL. Domains, person profiles, query strings, and fragments are not accepted.
^https://(?:www\.)?linkedin\.com/company/[A-Za-z0-9_-]+/?$Copy complete topic value strings from GET /v1/find-companies/filter-values?filter=topics&q=... .
1 - 20 elements1 - 150Response
Matched intent data (3 credits) or a no-match result (0 credits).
Normalized LinkedIn company URL.
Whether the company was matched and usable intent topics were found.
Intent data date, when provided.
Business intent topics returned for the company; empty on no match.
x >= 03 for a usable matched result; 0 for no match.
0, 3