API Endpoints
Find People
Use this endpoint to find people
Endpoints
Headers
Key | Value | Required |
|---|---|---|
Content-Type | application/json | Yes |
Authorization | Bearer | Yes |
Request Body
{ "query": { "firstname": { "include": ["John"], "exclude": ["Johnny"] }, "lastname": { "include": ["Doe"] }, "currentJobTitle": { "include": ["CEO", "Founder"], "exclude": ["Intern"] }, "companyDomain": { "include": ["airscale.io"] }, "companyLinkedinUrl": { "include": ["https://linkedin.com/company/airscale-io"] }, "school": { "include": ["Stanford"] }, "languages": { "include": ["EN", "FR"] }, "skills": { "include": ["Python"] }, "location": { "include": ["FR", "US"], "exclude": ["DE"] }, "keyword": { "include": ["B2B"] } }, "size": 50, "cursor": "<next_cursor_from_previous_response>" }
{ "query": { "firstname": { "include": ["John"], "exclude": ["Johnny"] }, "lastname": { "include": ["Doe"] }, "currentJobTitle": { "include": ["CEO", "Founder"], "exclude": ["Intern"] }, "companyDomain": { "include": ["airscale.io"] }, "companyLinkedinUrl": { "include": ["https://linkedin.com/company/airscale-io"] }, "school": { "include": ["Stanford"] }, "languages": { "include": ["EN", "FR"] }, "skills": { "include": ["Python"] }, "location": { "include": ["FR", "US"], "exclude": ["DE"] }, "keyword": { "include": ["B2B"] } }, "size": 50, "cursor": "<next_cursor_from_previous_response>" }
{ "query": { "firstname": { "include": ["John"], "exclude": ["Johnny"] }, "lastname": { "include": ["Doe"] }, "currentJobTitle": { "include": ["CEO", "Founder"], "exclude": ["Intern"] }, "companyDomain": { "include": ["airscale.io"] }, "companyLinkedinUrl": { "include": ["https://linkedin.com/company/airscale-io"] }, "school": { "include": ["Stanford"] }, "languages": { "include": ["EN", "FR"] }, "skills": { "include": ["Python"] }, "location": { "include": ["FR", "US"], "exclude": ["DE"] }, "keyword": { "include": ["B2B"] } }, "size": 50, "cursor": "<next_cursor_from_previous_response>" }
Top-level fields
Field | Type | Required | Description |
|---|---|---|---|
query | object | Yes | At least one filter required |
size | integer | No | Results per page. Min 1, max 200. Default 100 |
cursor | string | No | Pagination token from the previous response |
Query filters
Filter | Type | Description |
|---|---|---|
firstname | Include/Exclude | First name |
lastname | Include/Exclude | Last name |
currentJobTitle | Include/Exclude | Current job title |
companyDomain | Include/Exclude | Company domain — e.g. |
companyLinkedinUrl | Include/Exclude | Company LinkedIn URL — e.g. |
school | Include/Exclude | School or university |
languages | Include/Exclude | Languages spoken. Best results with alpha-2 codes: |
skills | Include/Exclude | Skills |
location | Include/Exclude | City, region, or country. Best results with alpha-2 country codes: |
keyword | Include only | Searches across the full profile — titles, bio, skills, education |
Each filter accepts
includeand/orexcludearrays of strings. Maximum 200 values per array.
Response
POST /v1/find-people — 200
{ "total": 101, "leads": [ { "firstname": "Victor", "lastname": "Detraz", "headline": "Founder @Airscale", "description": "...", "profileUrl": "https://www.linkedin.com/in/vdetraz", "lastJobTitle": "Founder", "lastJobStartDate": "03-2024", "address": "Paris, Île-de-France, France", "lastCompanyName": "Airscale", "lastCompanyUrl": "https://www.linkedin.com/company/airscale-io/", "lastCompanyWebsite": "https://airscale.io", "lastCompanySize": 4, "lastCompanyIndustry": "Technology, Information and Internet", "lastCompanyAddress": "75009, Paris, France" } ], "next_cursor": "eyJzYSI6W1syXV..." }
{ "total": 101, "leads": [ { "firstname": "Victor", "lastname": "Detraz", "headline": "Founder @Airscale", "description": "...", "profileUrl": "https://www.linkedin.com/in/vdetraz", "lastJobTitle": "Founder", "lastJobStartDate": "03-2024", "address": "Paris, Île-de-France, France", "lastCompanyName": "Airscale", "lastCompanyUrl": "https://www.linkedin.com/company/airscale-io/", "lastCompanyWebsite": "https://airscale.io", "lastCompanySize": 4, "lastCompanyIndustry": "Technology, Information and Internet", "lastCompanyAddress": "75009, Paris, France" } ], "next_cursor": "eyJzYSI6W1syXV..." }
{ "total": 101, "leads": [ { "firstname": "Victor", "lastname": "Detraz", "headline": "Founder @Airscale", "description": "...", "profileUrl": "https://www.linkedin.com/in/vdetraz", "lastJobTitle": "Founder", "lastJobStartDate": "03-2024", "address": "Paris, Île-de-France, France", "lastCompanyName": "Airscale", "lastCompanyUrl": "https://www.linkedin.com/company/airscale-io/", "lastCompanyWebsite": "https://airscale.io", "lastCompanySize": 4, "lastCompanyIndustry": "Technology, Information and Internet", "lastCompanyAddress": "75009, Paris, France" } ], "next_cursor": "eyJzYSI6W1syXV..." }
next_cursorisnullwhen there are no more pages.
POST /v1/find-people/count — 200
{ "total": 101 }
{ "total": 101 }
{ "total": 101 }
Pagination
Pass next_cursor from the previous response as cursor in your next request. Keep the same query and size throughout — changing the query between pages produces undefined behavior. Cursors expire and cannot be reused indefinitely.
Credits
Endpoint | Cost |
|---|---|
POST /v1/find-people | 0.1 credit per lead returned |
POST /v1/find-people/count | Free |
Limits
⚡ Maximum 6 requests / second per workspace
📋 Maximum 200 values per
includeorexcludearray
Example Usage
cURL — Search
curl -X POST "https://api.airscale.io/v1/find-people" \ -H "Authorization: Bearer YOUR_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "query": { "currentJobTitle": { "include": ["CEO", "Founder"] }, "companyDomain": { "include": ["airscale.io"] }, "location": { "include": ["FR"] } }, "size": 50 }'
curl -X POST "https://api.airscale.io/v1/find-people" \ -H "Authorization: Bearer YOUR_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "query": { "currentJobTitle": { "include": ["CEO", "Founder"] }, "companyDomain": { "include": ["airscale.io"] }, "location": { "include": ["FR"] } }, "size": 50 }'
curl -X POST "https://api.airscale.io/v1/find-people" \ -H "Authorization: Bearer YOUR_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "query": { "currentJobTitle": { "include": ["CEO", "Founder"] }, "companyDomain": { "include": ["airscale.io"] }, "location": { "include": ["FR"] } }, "size": 50 }'
cURL — Count
curl -X POST "https://api.airscale.io/v1/find-people/count" \ -H "Authorization: Bearer YOUR_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "query": { "currentJobTitle": { "include": ["CEO", "Founder"] }, "location": { "include": ["FR"] } } }'
curl -X POST "https://api.airscale.io/v1/find-people/count" \ -H "Authorization: Bearer YOUR_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "query": { "currentJobTitle": { "include": ["CEO", "Founder"] }, "location": { "include": ["FR"] } } }'
curl -X POST "https://api.airscale.io/v1/find-people/count" \ -H "Authorization: Bearer YOUR_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "query": { "currentJobTitle": { "include": ["CEO", "Founder"] }, "location": { "include": ["FR"] } } }'
Python
import requests response = requests.post( "https://api.airscale.io/v1/find-people", headers={ "Authorization": "Bearer YOUR_API_KEY", "Content-Type": "application/json" }, json={ "query": { "currentJobTitle": { "include": ["CEO", "Founder"] }, "companyDomain": { "include": ["airscale.io"] }, "location": { "include": ["FR"] } }, "size": 50 } ) print(response.status_code, response.json())
import requests response = requests.post( "https://api.airscale.io/v1/find-people", headers={ "Authorization": "Bearer YOUR_API_KEY", "Content-Type": "application/json" }, json={ "query": { "currentJobTitle": { "include": ["CEO", "Founder"] }, "companyDomain": { "include": ["airscale.io"] }, "location": { "include": ["FR"] } }, "size": 50 } ) print(response.status_code, response.json())
import requests response = requests.post( "https://api.airscale.io/v1/find-people", headers={ "Authorization": "Bearer YOUR_API_KEY", "Content-Type": "application/json" }, json={ "query": { "currentJobTitle": { "include": ["CEO", "Founder"] }, "companyDomain": { "include": ["airscale.io"] }, "location": { "include": ["FR"] } }, "size": 50 } ) print(response.status_code, response.json())
JavaScript (Fetch)
fetch("https://api.airscale.io/v1/find-people", { method: "POST", headers: { "Authorization": "Bearer YOUR_API_KEY", "Content-Type": "application/json" }, body: JSON.stringify({ query: { currentJobTitle: { include: ["CEO", "Founder"] }, companyDomain: { include: ["airscale.io"] }, location: { include: ["FR"] } }, size: 50 }) }) .then(res => res.json()) .then(data => console.log(data)) .catch(err => console.error("Error:", err));
fetch("https://api.airscale.io/v1/find-people", { method: "POST", headers: { "Authorization": "Bearer YOUR_API_KEY", "Content-Type": "application/json" }, body: JSON.stringify({ query: { currentJobTitle: { include: ["CEO", "Founder"] }, companyDomain: { include: ["airscale.io"] }, location: { include: ["FR"] } }, size: 50 }) }) .then(res => res.json()) .then(data => console.log(data)) .catch(err => console.error("Error:", err));
fetch("https://api.airscale.io/v1/find-people", { method: "POST", headers: { "Authorization": "Bearer YOUR_API_KEY", "Content-Type": "application/json" }, body: JSON.stringify({ query: { currentJobTitle: { include: ["CEO", "Founder"] }, companyDomain: { include: ["airscale.io"] }, location: { include: ["FR"] } }, size: 50 }) }) .then(res => res.json()) .then(data => console.log(data)) .catch(err => console.error("Error:", err));
PHP
<?php $ch = curl_init("https://api.airscale.io/v1/find-people"); curl_setopt_array($ch, [ CURLOPT_RETURNTRANSFER => true, CURLOPT_POST => true, CURLOPT_HTTPHEADER => [ "Authorization: Bearer YOUR_API_KEY", "Content-Type: application/json" ], CURLOPT_POSTFIELDS => json_encode([ "query" => [ "currentJobTitle" => ["include" => ["CEO", "Founder"]], "companyDomain" => ["include" => ["airscale.io"]], "location" => ["include" => ["FR"]] ], "size" => 50 ]) ]); echo curl_exec($ch); curl_close($ch);
<?php $ch = curl_init("https://api.airscale.io/v1/find-people"); curl_setopt_array($ch, [ CURLOPT_RETURNTRANSFER => true, CURLOPT_POST => true, CURLOPT_HTTPHEADER => [ "Authorization: Bearer YOUR_API_KEY", "Content-Type: application/json" ], CURLOPT_POSTFIELDS => json_encode([ "query" => [ "currentJobTitle" => ["include" => ["CEO", "Founder"]], "companyDomain" => ["include" => ["airscale.io"]], "location" => ["include" => ["FR"]] ], "size" => 50 ]) ]); echo curl_exec($ch); curl_close($ch);
<?php $ch = curl_init("https://api.airscale.io/v1/find-people"); curl_setopt_array($ch, [ CURLOPT_RETURNTRANSFER => true, CURLOPT_POST => true, CURLOPT_HTTPHEADER => [ "Authorization: Bearer YOUR_API_KEY", "Content-Type: application/json" ], CURLOPT_POSTFIELDS => json_encode([ "query" => [ "currentJobTitle" => ["include" => ["CEO", "Founder"]], "companyDomain" => ["include" => ["airscale.io"]], "location" => ["include" => ["FR"]] ], "size" => 50 ]) ]); echo curl_exec($ch); curl_close($ch);
Go
package main import ( "bytes" "encoding/json" "fmt" "io/ioutil" "net/http" ) func main() { payload, _ := json.Marshal(map[string]interface{}{ "query": map[string]interface{}{ "currentJobTitle": map[string]interface{}{"include": []string{"CEO", "Founder"}}, "companyDomain": map[string]interface{}{"include": []string{"airscale.io"}}, "location": map[string]interface{}{"include": []string{"FR"}}, }, "size": 50, }) req, _ := http.NewRequest("POST", "https://api.airscale.io/v1/find-people", bytes.NewBuffer(payload)) req.Header.Set("Authorization", "Bearer YOUR_API_KEY") req.Header.Set("Content-Type", "application/json") resp, err := (&http.Client{}).Do(req) if err != nil { panic(err) } defer resp.Body.Close() body, _ := ioutil.ReadAll(resp.Body) fmt.Println(string(body
package main import ( "bytes" "encoding/json" "fmt" "io/ioutil" "net/http" ) func main() { payload, _ := json.Marshal(map[string]interface{}{ "query": map[string]interface{}{ "currentJobTitle": map[string]interface{}{"include": []string{"CEO", "Founder"}}, "companyDomain": map[string]interface{}{"include": []string{"airscale.io"}}, "location": map[string]interface{}{"include": []string{"FR"}}, }, "size": 50, }) req, _ := http.NewRequest("POST", "https://api.airscale.io/v1/find-people", bytes.NewBuffer(payload)) req.Header.Set("Authorization", "Bearer YOUR_API_KEY") req.Header.Set("Content-Type", "application/json") resp, err := (&http.Client{}).Do(req) if err != nil { panic(err) } defer resp.Body.Close() body, _ := ioutil.ReadAll(resp.Body) fmt.Println(string(body
package main import ( "bytes" "encoding/json" "fmt" "io/ioutil" "net/http" ) func main() { payload, _ := json.Marshal(map[string]interface{}{ "query": map[string]interface{}{ "currentJobTitle": map[string]interface{}{"include": []string{"CEO", "Founder"}}, "companyDomain": map[string]interface{}{"include": []string{"airscale.io"}}, "location": map[string]interface{}{"include": []string{"FR"}}, }, "size": 50, }) req, _ := http.NewRequest("POST", "https://api.airscale.io/v1/find-people", bytes.NewBuffer(payload)) req.Header.Set("Authorization", "Bearer YOUR_API_KEY") req.Header.Set("Content-Type", "application/json") resp, err := (&http.Client{}).Do(req) if err != nil { panic(err) } defer resp.Body.Close() body, _ := ioutil.ReadAll(resp.Body) fmt.Println(string(body
On this page
