API Endpoints

Find People

Use this endpoint to find people

Endpoints




Headers

Key

Value

Required

Content-Type

application/json

Yes

Authorization

Bearer <YOUR_API_KEY>

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. airscale.io

companyLinkedinUrl

Include/Exclude

Company LinkedIn URL — e.g. https://linkedin.com/company/airscale-io

school

Include/Exclude

School or university

languages

Include/Exclude

Languages spoken. Best results with alpha-2 codes: EN, FR, ES

skills

Include/Exclude

Skills

location

Include/Exclude

City, region, or country. Best results with alpha-2 country codes: FR, US

keyword

Include only

Searches across the full profile — titles, bio, skills, education

Each filter accepts include and/or exclude arrays 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_cursor is null when 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 include or exclude array

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

© 2026

Airscale · All rights reserved