> ## Documentation Index
> Fetch the complete documentation index at: https://docs.airscale.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Count people

> Count people matching person, role, and company filters. Rate limit: 6 requests per second per workspace.

Estimate an audience before retrieving any lead records. Count accepts the same person, role, current-company, and past-experience filters as [Find people](/api-reference/find-people).

<Note>
  Count is free. It neither reserves nor debits Airscale credits, and its response contains only the matching total.
</Note>

## Reuse a search audience

Send the same `query` object you plan to use for Find people. Count has no pagination fields because it returns no lead page; keep `size` and `cursor` on the search request instead.

The Count and Find people operations share a limit of 6 requests per second per workspace. After a `429 Too Many Requests` response, wait for the next second and retry with bounded exponential backoff.

<Info>
  This page renders non-executing examples. It does not send a request or ask for an API key.
</Info>

## Combining past-experience filters

All past-experience filters must match the same prior role, including combinations of `pastJobTitle` and `pastCompany*`. Count uses the same matching rules as [Find people](/api-reference/find-people#combining-past-experience-filters).

## Next step

Use [Find people](/api-reference/find-people) with the same `query` when you are ready to retrieve the matching records.


## OpenAPI

````yaml openapi.json POST /v1/find-people/count
openapi: 3.1.0
info:
  title: Airscale Public API
  version: '2026-09-11'
  description: Search, enrich, and resolve public business data with Airscale.
  x-airscale-source-repository: ViceScale/airscale-code
  x-airscale-source-sha: 1de19e1b70a052a4b8d9c2075021a7e5e7a94d51
servers:
  - url: https://api.airscale.io
    description: Production
security:
  - bearerAuth: []
tags:
  - name: Search and discovery
    description: Search people, companies, and the web.
  - name: Contact data
    description: Find professional and personal contact data.
  - name: Profiles and reverse lookup
    description: Extract profiles or resolve a person from known contact data.
  - name: Post engagement
    description: Retrieve and enrich people who liked or commented on LinkedIn posts.
  - name: LinkedIn content
    description: >-
      Search LinkedIn posts, read profile and company feeds, and retrieve
      profile comments and comment reactions.
  - name: Account
    description: Inspect workspace account state.
  - name: Miscellaneous
    description: Check WhatsApp availability, Meta ads, and email deliverability.
paths:
  /v1/find-people/count:
    post:
      tags:
        - Search and discovery
      summary: Count people
      description: >-
        Counts people using the exact same structured query contract as Find
        People, without retrieving or paginating lead records.
      operationId: countPeople
      requestBody:
        required: true
        description: >-
          Provide at least one supported query filter. Count has no size or
          cursor fields.
        content:
          application/json:
            schema:
              type: object
              required:
                - query
              additionalProperties: false
              properties:
                query:
                  type: object
                  minProperties: 1
                  additionalProperties: false
                  properties:
                    firstname:
                      description: Matches a person's first name.
                      allOf:
                        - $ref: '#/components/schemas/IncludeExcludeFilter'
                    lastname:
                      description: Matches a person's last name.
                      allOf:
                        - $ref: '#/components/schemas/IncludeExcludeFilter'
                    jobTitle:
                      description: Matches the person's current role or job title.
                      allOf:
                        - $ref: '#/components/schemas/IncludeExcludeFilter'
                    school:
                      description: Matches a school name on the person's profile.
                      allOf:
                        - $ref: '#/components/schemas/IncludeExcludeFilter'
                    languages:
                      description: Matches a language name or code on the person's profile.
                      allOf:
                        - $ref: '#/components/schemas/IncludeExcludeFilter'
                    skills:
                      description: Matches a skill name on the person's profile.
                      allOf:
                        - $ref: '#/components/schemas/IncludeExcludeFilter'
                    location:
                      description: >-
                        Matches the person or current-role location. Country
                        names and ISO alpha-2 codes are accepted.
                      allOf:
                        - $ref: '#/components/schemas/IncludeExcludeFilter'
                    keyword:
                      description: Matches text on the person's profile.
                      allOf:
                        - $ref: '#/components/schemas/IncludeExcludeFilter'
                    currentCompanyName:
                      description: Matches the person's current company name.
                      allOf:
                        - $ref: '#/components/schemas/IncludeExcludeFilter'
                    companyDomain:
                      description: >-
                        Matches a current company domain; URL input is
                        normalized to its hostname. Values from companyDomain
                        and companyLinkedinUrl are combined as OR alternatives
                        into one current-company identifier filter.
                      allOf:
                        - $ref: '#/components/schemas/IncludeExcludeFilter'
                    companyLinkedinUrl:
                      description: >-
                        Matches a current company profile URL or identifier.
                        Values from companyDomain and companyLinkedinUrl are
                        combined as OR alternatives into one current-company
                        identifier filter.
                      allOf:
                        - $ref: '#/components/schemas/IncludeExcludeFilter'
                    currentCompany.type:
                      description: Matches the current company type.
                      allOf:
                        - $ref: '#/components/schemas/IncludeExcludeFilter'
                    currentCompany.industry:
                      description: Matches the current company industry.
                      allOf:
                        - $ref: '#/components/schemas/IncludeExcludeFilter'
                    currentCompany.location:
                      description: Matches the current company headquarters location.
                      allOf:
                        - $ref: '#/components/schemas/IncludeExcludeFilter'
                    currentCompany.keyword:
                      description: Matches text on the current company profile.
                      allOf:
                        - $ref: '#/components/schemas/IncludeExcludeFilter'
                    pastJobTitle:
                      description: >-
                        Matches a title in a previous position. All
                        past-experience filters must match the same prior role.
                      allOf:
                        - $ref: '#/components/schemas/IncludeExcludeFilter'
                    pastCompanyName:
                      description: >-
                        Matches a previous company name. All past-experience
                        filters must match the same prior role.
                      allOf:
                        - $ref: '#/components/schemas/IncludeExcludeFilter'
                    pastCompanyId:
                      description: Matches a previous company identifier.
                      allOf:
                        - $ref: '#/components/schemas/IncludeExcludeFilter'
                    pastCompanyWebsite:
                      description: Matches a previous company website or domain.
                      allOf:
                        - $ref: '#/components/schemas/IncludeExcludeFilter'
                    pastCompanyUrn:
                      description: Matches a previous company URN.
                      allOf:
                        - $ref: '#/components/schemas/IncludeExcludeFilter'
                    pastCompany.type:
                      description: Matches a previous company type.
                      allOf:
                        - $ref: '#/components/schemas/IncludeExcludeFilter'
                    pastCompany.industry:
                      description: Matches a previous company industry.
                      allOf:
                        - $ref: '#/components/schemas/IncludeExcludeFilter'
                    pastCompany.location:
                      description: Matches a previous company headquarters location.
                      allOf:
                        - $ref: '#/components/schemas/IncludeExcludeFilter'
                    pastCompany.keyword:
                      description: Matches text on a previous company profile.
                      allOf:
                        - $ref: '#/components/schemas/IncludeExcludeFilter'
                    totalYearsOfExperience:
                      description: Matches the person's total years of experience.
                      allOf:
                        - $ref: '#/components/schemas/IntegerRangeFilter'
                    timeInCurrentCompany:
                      description: Matches years spent at the current company.
                      allOf:
                        - $ref: '#/components/schemas/IntegerRangeFilter'
                    currentCompany.headcount:
                      description: Matches current company employee count.
                      allOf:
                        - $ref: '#/components/schemas/IntegerRangeFilter'
                    currentCompany.revenue:
                      description: Matches current company revenue.
                      allOf:
                        - $ref: '#/components/schemas/IntegerRangeFilter'
                    pastCompany.headcount:
                      description: Matches previous company employee count.
                      allOf:
                        - $ref: '#/components/schemas/IntegerRangeFilter'
                    pastCompany.revenue:
                      description: Matches previous company revenue.
                      allOf:
                        - $ref: '#/components/schemas/IntegerRangeFilter'
                    currentCompany.headcountGrowth:
                      description: >-
                        Matches current company headcount growth for a supported
                        timespan.
                      allOf:
                        - $ref: '#/components/schemas/GrowthFilter'
                    pastCompany.headcountGrowth:
                      description: >-
                        Matches previous company headcount growth for a
                        supported timespan.
                      allOf:
                        - $ref: '#/components/schemas/GrowthFilter'
            examples:
              audience:
                summary: Synthetic audience count
                value:
                  query:
                    jobTitle:
                      include:
                        - Revenue Operations Manager
                    location:
                      include:
                        - Example Country
      responses:
        '200':
          description: The number of people matching the query.
          content:
            application/json:
              schema:
                type: object
                required:
                  - total
                additionalProperties: false
                properties:
                  total:
                    type: number
              examples:
                count:
                  summary: Synthetic audience count
                  value:
                    total: 124
        '400':
          description: The request is invalid or contains an unsupported field or value.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          description: >-
            The workspace cannot complete this request because access or
            available credits are insufficient.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '404':
          description: The HTTP method or path does not match this public endpoint.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '413':
          description: The JSON request body exceeds the 256 KiB limit.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '429':
          description: >-
            The workspace rate limit has been exceeded. Try again after the
            current window resets.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '502':
          description: >-
            The request could not be completed because a required service
            returned an unsuccessful response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '503':
          description: The request is temporarily unavailable. Try again later.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
components:
  schemas:
    IncludeExcludeFilter:
      type: object
      description: >-
        Use include, exclude, or both. Empty arrays and empty string values are
        accepted by the runtime, but meaningful non-empty values are
        recommended.
      additionalProperties: false
      properties:
        include:
          type: array
          maxItems: 200
          items:
            type: string
        exclude:
          type: array
          maxItems: 200
          items:
            type: string
      anyOf:
        - required:
            - include
        - required:
            - exclude
    IntegerRangeFilter:
      type: object
      minProperties: 1
      additionalProperties: false
      properties:
        '>':
          type: integer
        '>=':
          type: integer
        <:
          type: integer
        <=:
          type: integer
    GrowthFilter:
      type: object
      description: >-
        Headcount growth bounds for one supported timespan. When both bounds are
        present, min must be less than or equal to max.
      x-airscale-runtime-constraint: When both are present, min must be less than or equal to max.
      additionalProperties: false
      required:
        - timespan
      properties:
        min:
          type: number
          minimum: -100
          maximum: 10000
        max:
          type: number
          minimum: -100
          maximum: 10000
        timespan:
          type: string
          enum:
            - 6months
            - 12months
            - 24months
      anyOf:
        - required:
            - min
        - required:
            - max
    Error:
      type: object
      additionalProperties: true
      properties:
        error:
          type: string
        message:
          type: string
  responses:
    Unauthorized:
      description: The Bearer token is missing or invalid.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: API key
      description: >-
        Use an Airscale workspace API key. Never expose the key in client-side
        code.

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.