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

# LinkedIn Profile Search

> Search LinkedIn profiles by keyword with optional location and job-title filters. Each match returns a full profile record: name, headline, location, current position, work experience, education, and skills, plus the profile URL, handle, and id. For a cheaper name/headline/URL-only search use linkedin.search_profiles_thin; add emails with linkedin.search_profiles_email.

**Price:** billed per result - \$80.00 per 1,000 requests base + \$4.00 per 1,000 results, capped at \$180.00 per 1,000 requests.

**Routing:** one lane serves this API today, so a failed attempt has nowhere to fail over to. Failed attempts are never billed.



## OpenAPI

````yaml /openapi.json post /v1/run/linkedin.search_profiles
openapi: 3.1.0
info:
  contact:
    email: support@getanyapi.com
  description: >-
    Any API, one wallet, USD, no subscriptions. Each API is a single discovered
    operation: send the normalized input, get a normalized result. You are
    charged the winning provider's price in real dollars only on success; failed
    calls are never charged.
  title: AnyAPI
  version: 1.0.0
  x-guidance: >-
    Use each operation's published method and path with its normalized JSON
    input (see the operation requestBody). To pay: send your AnyAPI key
    (Authorization: Bearer, billed from your USD wallet); or pay per call inline
    with no account - x402 (call with no key, get HTTP 402 with a
    PAYMENT-REQUIRED header, retry with the PAYMENT-SIGNATURE header, USDC on
    base), or MPP (retry with Authorization: Payment, tempo). You are charged
    only on success.
servers:
  - url: https://api.getanyapi.com
security:
  - bearerAuth: []
  - apiKeyAuth: []
tags:
  - name: ahrefs
    x-group: Ahrefs
  - name: airbnb
    x-group: Airbnb
  - name: alibaba
    x-group: Alibaba
  - name: amazon
    x-group: Amazon
  - name: apollo
    x-group: Apollo
  - name: appstore
    x-group: Appstore
  - name: bluesky
    x-group: Bluesky
  - name: booking
    x-group: Booking
  - name: coinmarketcap
    x-group: Coinmarketcap
  - name: congress
    x-group: Congress
  - name: dexscreener
    x-group: Dexscreener
  - name: douyin
    x-group: Douyin
  - name: ebay
    x-group: Ebay
  - name: email
    x-group: Email
  - name: facebook
    x-group: Facebook
  - name: fiverr
    x-group: Fiverr
  - name: github
    x-group: Github
  - name: glassdoor
    x-group: Glassdoor
  - name: google
    x-group: Google
  - name: google-ads
    x-group: Google Ads
  - name: google-finance
    x-group: Google Finance
  - name: google-shopping
    x-group: Google Shopping
  - name: hackernews
    x-group: Hackernews
  - name: indeed
    x-group: Indeed
  - name: instagram
    x-group: Instagram
  - name: linkedin
    x-group: Linkedin
  - name: maps
    x-group: Maps
  - name: pandaexpress
    x-group: Pandaexpress
  - name: person
    x-group: Person
  - name: pinterest
    x-group: Pinterest
  - name: playstore
    x-group: Playstore
  - name: polymarket
    x-group: Polymarket
  - name: realtor
    x-group: Realtor
  - name: reddit
    x-group: Reddit
  - name: redfin
    x-group: Redfin
  - name: rednote
    x-group: Rednote
  - name: sec
    x-group: Sec
  - name: semrush
    x-group: Semrush
  - name: seo
    x-group: Seo
  - name: snapchat
    x-group: Snapchat
  - name: social
    x-group: Social
  - name: spotify
    x-group: Spotify
  - name: substack
    x-group: Substack
  - name: threads
    x-group: Threads
  - name: tiktok
    x-group: TikTok
  - name: tiktok-shop
    x-group: TikTok Shop
  - name: tripadvisor
    x-group: Tripadvisor
  - name: trustpilot
    x-group: Trustpilot
  - name: truthsocial
    x-group: Truthsocial
  - name: twitter
    x-group: X (Twitter)
  - name: upwork
    x-group: Upwork
  - name: walmart
    x-group: Walmart
  - name: web
    x-group: Web
  - name: weibo
    x-group: Weibo
  - name: yahoo-finance
    x-group: Yahoo Finance
  - name: yelp
    x-group: Yelp
  - name: youtube
    x-group: YouTube
  - name: zhihu
    x-group: Zhihu
  - name: zillow
    x-group: Zillow
paths:
  /v1/run/linkedin.search_profiles:
    post:
      tags:
        - linkedin
      summary: LinkedIn Profile Search
      description: >-
        Search LinkedIn profiles by keyword with optional location and job-title
        filters. Each match returns a full profile record: name, headline,
        location, current position, work experience, education, and skills, plus
        the profile URL, handle, and id. For a cheaper name/headline/URL-only
        search use linkedin.search_profiles_thin; add emails with
        linkedin.search_profiles_email.


        **Price:** billed per result - \$80.00 per 1,000 requests base + \$4.00
        per 1,000 results, capped at \$180.00 per 1,000 requests.


        **Routing:** one lane serves this API today, so a failed attempt has
        nowhere to fail over to. Failed attempts are never billed.
      operationId: linkedin_search_profiles
      parameters:
        - description: >-
            Optional. Comma-separated keys (dotted paths like `author.name`
            descend into nested objects) to keep on each result item. Keys are
            matched relative to each result item after the `data`/`items`
            envelope is unwrapped, not against the top-level response envelope,
            so use `jq` to reshape the whole envelope. Shrinks the response
            without changing cost.
          in: query
          name: fields
          required: false
          schema:
            type: string
        - description: >-
            Optional. Cap the number of result rows returned; a `_truncated`
            note reports how many were withheld so you can page via the API's
            own `limit`. Does not change cost.
          in: query
          name: max_items
          required: false
          schema:
            minimum: 0
            type: integer
        - description: >-
            Optional. Return only a structural outline (top-level keys, item
            counts, and per-field byte sizes) instead of the full data. Does not
            change cost.
          in: query
          name: summary
          required: false
          schema:
            type: boolean
        - description: >-
            Optional. A jq expression applied to the result envelope; its output
            replaces `output` (multiple outputs collect into an array). Reshape
            freely, e.g. `jq=.data | {title, description, md:
            .markdown[:3500]}`. Runs sandboxed with a 250ms / 2MB budget; on
            failure the full result is returned with a `jqError`. Does not
            change cost.
          in: query
          name: jq
          required: false
          schema:
            type: string
        - description: >-
            Optional wallet idempotency key, scoped to this customer for 24
            hours. When the gateway honors the key, this synchronous in-process
            execution can continue after the caller disconnects, bounded by its
            execution deadline. A completed replayable result charges normally
            exactly once and can be replayed without another provider run or
            charge. A pending duplicate returns 409 idempotency_in_progress;
            reuse with different request semantics returns 409
            idempotency_conflict.
          in: header
          name: Idempotency-Key
          required: false
          schema:
            maxLength: 255
            minLength: 1
            type: string
      requestBody:
        content:
          application/json:
            example:
              currentCompanies:
                - Google
              limit: 3
              query: engineer
            schema:
              additionalProperties: false
              example:
                currentCompanies:
                  - Google
                limit: 3
                query: engineer
              properties:
                companyHeadcount:
                  description: >-
                    Filter by current company size (employee count). Codes:
                    A=Self-Employed, B=1-10, C=11-50, D=51-200, E=201-500,
                    F=501-1,000, G=1,001-5,000, H=5,001-10,000, I=10,001+.
                  items:
                    enum:
                      - A
                      - B
                      - C
                      - D
                      - E
                      - F
                      - G
                      - H
                      - I
                    type: string
                  type: array
                companyHeadquarterLocations:
                  description: >-
                    Filter by the location of the person's current company
                    headquarters, by place name (e.g. ['United States']).
                  items:
                    type: string
                  type: array
                currentCompanies:
                  description: >-
                    Filter to people who currently work at any of these
                    companies, by name (e.g. ['Google','Meta']). Multiple names
                    widen the match (OR).
                  items:
                    type: string
                  type: array
                excludeCompanyHeadquarterLocations:
                  description: >-
                    Exclude people whose current company is headquartered in any
                    of these locations.
                  items:
                    type: string
                  type: array
                excludeCurrentCompanies:
                  description: >-
                    Exclude people who currently work at any of these companies,
                    by name.
                  items:
                    type: string
                  type: array
                excludeCurrentJobTitles:
                  description: Exclude people whose current job title matches any of these.
                  items:
                    type: string
                  type: array
                excludeFunctionIds:
                  description: Exclude these job functions (same codes as functionIds).
                  items:
                    enum:
                      - '1'
                      - '2'
                      - '3'
                      - '4'
                      - '5'
                      - '6'
                      - '7'
                      - '8'
                      - '9'
                      - '10'
                      - '11'
                      - '12'
                      - '13'
                      - '14'
                      - '15'
                      - '16'
                      - '17'
                      - '18'
                      - '19'
                      - '20'
                      - '21'
                      - '22'
                      - '23'
                      - '24'
                      - '25'
                      - '26'
                    type: string
                  type: array
                excludeLocations:
                  description: Exclude people in any of these locations, by place name.
                  items:
                    type: string
                  type: array
                excludePastCompanies:
                  description: >-
                    Exclude people who previously worked at any of these
                    companies, by name.
                  items:
                    type: string
                  type: array
                excludePastJobTitles:
                  description: Exclude people who held any of these past job titles.
                  items:
                    type: string
                  type: array
                excludeSchools:
                  description: Exclude people who attended any of these schools, by name.
                  items:
                    type: string
                  type: array
                excludeSeniorityLevelIds:
                  description: >-
                    Exclude these seniority levels (same codes as
                    seniorityLevelIds).
                  items:
                    enum:
                      - '100'
                      - '110'
                      - '120'
                      - '130'
                      - '200'
                      - '210'
                      - '220'
                      - '300'
                      - '310'
                      - '320'
                    type: string
                  type: array
                firstNames:
                  description: Filter to people whose first name matches any of these.
                  items:
                    type: string
                  type: array
                functionIds:
                  description: >-
                    Filter by job function. Codes: 1=Accounting,
                    2=Administrative, 3=Arts and Design, 4=Business Development,
                    5=Community and Social Services, 6=Consulting, 7=Education,
                    8=Engineering, 9=Entrepreneurship, 10=Finance, 11=Healthcare
                    Services, 12=Human Resources, 13=Information Technology,
                    14=Legal, 15=Marketing, 16=Media and Communication,
                    17=Military and Protective Services, 18=Operations,
                    19=Product Management, 20=Program and Project Management,
                    21=Purchasing, 22=Quality Assurance, 23=Real Estate,
                    24=Research, 25=Sales, 26=Customer Success and Support.
                  items:
                    enum:
                      - '1'
                      - '2'
                      - '3'
                      - '4'
                      - '5'
                      - '6'
                      - '7'
                      - '8'
                      - '9'
                      - '10'
                      - '11'
                      - '12'
                      - '13'
                      - '14'
                      - '15'
                      - '16'
                      - '17'
                      - '18'
                      - '19'
                      - '20'
                      - '21'
                      - '22'
                      - '23'
                      - '24'
                      - '25'
                      - '26'
                    type: string
                  type: array
                jobTitle:
                  description: >-
                    Optional current job title filter (e.g. 'Software
                    Engineer').
                  type: string
                lastNames:
                  description: Filter to people whose last name matches any of these.
                  items:
                    type: string
                  type: array
                limit:
                  description: >-
                    Maximum number of full profiles to return (1-25, default
                    10). You are billed per profile returned, so a lower limit
                    costs less.
                  maximum: 25
                  minimum: 1
                  type: integer
                location:
                  description: Optional location filter (e.g. 'San Francisco').
                  type: string
                pastCompanies:
                  description: >-
                    Filter to people who previously worked at any of these
                    companies, by name.
                  items:
                    type: string
                  type: array
                pastJobTitles:
                  description: >-
                    Filter by a past job title the person held (e.g. ['Product
                    Manager']).
                  items:
                    type: string
                  type: array
                profileLanguages:
                  description: Filter by the profile's primary language.
                  items:
                    enum:
                      - Arabic
                      - English
                      - Spanish
                      - Portuguese
                      - Chinese
                      - French
                      - Italian
                      - Russian
                      - German
                      - Dutch
                      - Turkish
                      - Tagalog
                      - Polish
                      - Korean
                      - Japanese
                      - Malay
                      - Norwegian
                      - Danish
                      - Romanian
                      - Swedish
                      - Bahasa Indonesia
                      - Czech
                    type: string
                  type: array
                query:
                  description: >-
                    Search query for LinkedIn profiles: a role, name, or
                    keywords (e.g. 'Marketing Manager').
                  type: string
                recentlyChangedJobs:
                  description: >-
                    When true, only return people who recently changed jobs (a
                    strong sales/recruiting signal).
                  type: boolean
                recentlyPostedOnLinkedIn:
                  description: >-
                    When true, only return people who recently posted on
                    LinkedIn (an activity signal).
                  type: boolean
                schools:
                  description: Filter to people who attended any of these schools, by name.
                  items:
                    type: string
                  type: array
                seniorityLevelIds:
                  description: >-
                    Filter by seniority level. Codes: 100=In Training, 110=Entry
                    Level, 120=Senior, 130=Strategic, 200=Entry Level Manager,
                    210=Experienced Manager, 220=Director, 300=Vice President,
                    310=CXO, 320=Owner/Partner.
                  items:
                    enum:
                      - '100'
                      - '110'
                      - '120'
                      - '130'
                      - '200'
                      - '210'
                      - '220'
                      - '300'
                      - '310'
                      - '320'
                    type: string
                  type: array
                yearsAtCurrentCompanyIds:
                  description: >-
                    Filter by tenure at the current company. Codes: 1=Less than
                    1 year, 2=1 to 2 years, 3=3 to 5 years, 4=6 to 10 years,
                    5=More than 10 years.
                  items:
                    enum:
                      - '1'
                      - '2'
                      - '3'
                      - '4'
                      - '5'
                    type: string
                  type: array
                yearsOfExperienceIds:
                  description: >-
                    Filter by total years of experience. Codes: 1=Less than 1
                    year, 2=1 to 2 years, 3=3 to 5 years, 4=6 to 10 years,
                    5=More than 10 years.
                  items:
                    enum:
                      - '1'
                      - '2'
                      - '3'
                      - '4'
                      - '5'
                    type: string
                  type: array
              required:
                - query
              title: LinkedIn profile search input
              type: object
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  costUsd:
                    description: >-
                      USD charged on the original run. On a replay this value is
                      echoed for parity; the replay itself is free.
                    type: number
                  items:
                    description: >-
                      Number of result rows returned. For per-result SKUs the
                      per-item cost is charged against this count; for
                      input-priced SKUs the charge is per submitted input,
                      independent of this count.
                    type: integer
                  jqError:
                    description: >-
                      Present only when a `jq` expression failed; `output` then
                      carries the full unshaped result and this explains why the
                      reshape did not apply.
                    type: string
                  output:
                    anyOf:
                      - additionalProperties: false
                        properties:
                          data:
                            description: >-
                              The results wrapper, or null when nothing was
                              found.
                            oneOf:
                              - type: 'null'
                              - additionalProperties: false
                                properties:
                                  items:
                                    description: >-
                                      Matched profile records. Populated
                                      whenever the provider has data for the
                                      entity.
                                    items:
                                      description: >-
                                        A full LinkedIn profile: name, headline,
                                        location, about, current position, work
                                        experience, education, and skills, plus
                                        the profile URL, handle, and id.
                                      properties:
                                        about:
                                          description: Profile about / summary text.
                                          type: string
                                        currentPosition:
                                          description: >-
                                            Current role(s). Each entry is an open
                                            object with the position title, company,
                                            dates, and location; shape can vary by
                                            profile.
                                          items:
                                            type: object
                                          type: array
                                        education:
                                          description: >-
                                            Education history. Each entry is an open
                                            object with school, degree, and field of
                                            study; shape can vary by profile.
                                          items:
                                            type: object
                                          type: array
                                        experience:
                                          description: >-
                                            Full work history. Each entry is an open
                                            object with the position title, company,
                                            dates, and location; shape can vary by
                                            profile. Populated whenever the provider
                                            has data for the entity.
                                          items:
                                            type: object
                                          type: array
                                          x-anyapi-must-populate: true
                                        firstName:
                                          description: Member's first name.
                                          type: string
                                        handle:
                                          description: >-
                                            Public profile identifier (the vanity
                                            slug in the URL). Populated whenever the
                                            provider has data for the entity.
                                          type: string
                                          x-anyapi-must-populate: true
                                        headline:
                                          description: >-
                                            Profile headline (the tagline under the
                                            name). Populated whenever the provider
                                            has data for the entity.
                                          type: string
                                          x-anyapi-must-populate: true
                                        id:
                                          description: LinkedIn member URN id for the profile.
                                          type: string
                                        image:
                                          description: Profile picture URL.
                                          type: string
                                        lastName:
                                          description: Member's last name.
                                          type: string
                                        location:
                                          description: >-
                                            Member's location as a single string
                                            (city, region, country).
                                          type: string
                                        openToWork:
                                          description: >-
                                            Whether the member has the Open to Work
                                            flag set.
                                          type: boolean
                                        premium:
                                          description: >-
                                            Whether the member has a LinkedIn
                                            Premium subscription.
                                          type: boolean
                                        skills:
                                          description: >-
                                            Listed skills. Each entry is an open
                                            object with the skill name and
                                            endorsement summary.
                                          items:
                                            type: object
                                          type: array
                                        url:
                                          description: >-
                                            Canonical LinkedIn profile URL.
                                            Populated whenever the provider has data
                                            for the entity.
                                          type: string
                                          x-anyapi-must-populate: true
                                      required:
                                        - id
                                        - url
                                      type: object
                                    type: array
                                    x-anyapi-must-populate: true
                                required:
                                  - items
                                type: object
                          found:
                            description: True when at least one profile was returned.
                            type: boolean
                        required:
                          - found
                          - data
                        title: LinkedIn profile search output
                        type: object
                      - type: 'null'
                    description: >-
                      Normalized output, or null when the replay payload was not
                      retained.
                  provider:
                    description: Always "AnyAPI".
                    type: string
                  replayed:
                    description: >-
                      True when this response replays the durable result of an
                      earlier run without billing or upstream execution.
                    type: boolean
                  resultId:
                    description: >-
                      Opaque handle to the full unshaped result, cached ~15 min.
                      Re-shape it for free (fields/max_items/summary/jq) via GET
                      /v1/results/{id}, no re-billing. Absent when the result
                      was too large to cache.
                    type: string
                required:
                  - output
                  - provider
                  - costUsd
                  - replayed
                type: object
          description: Normalized result.
          headers:
            Idempotency-Replayed:
              description: >-
                Present only when the request carried an Idempotency-Key this
                gateway honored. "false" means the key was claimed and the run
                executed freshly; "true" means it replayed a prior identical run
                and was NOT charged again. Absent means either no key was sent
                or this gateway does not honor keys, so a retry could be charged
                twice.
              schema:
                enum:
                  - 'false'
                  - 'true'
                type: string
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
          description: >-
            Input did not match the schema, or the upstream rejected the request
            (no charge).
        '401':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
          description: Missing or invalid API key.
        '402':
          content:
            application/json:
              schema:
                oneOf:
                  - $ref: '#/components/schemas/PaymentRequiredError'
                  - $ref: '#/components/schemas/TrialCapReached'
          description: >-
            Insufficient wallet balance or spend cap (no charge). Agent trials
            receive a trial_cap_reached continuation with a live RFC 8628 device
            authorization.
        '404':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
          description: Unknown SKU, or the upstream had no matching resource (no charge).
        '409':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
          description: >-
            Idempotency collision. Codes: idempotency_in_progress means retry
            after the Retry-After delay; idempotency_conflict means use a new
            key for different request semantics; idempotency_needs_review means
            stop retrying and contact AnyAPI support with X-Anyapi-Request-Id.
        '422':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
          description: >-
            The request was well formed but this API cannot serve the requested
            target site; the body's `alternatives` array lists the AnyAPI APIs
            that can (no charge).
        '429':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
          description: The upstream was rate limited, retry shortly (no charge).
        '502':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
          description: >-
            Every provider failed with a server/transport error (charge
            released).
components:
  schemas:
    Error:
      properties:
        code:
          description: Stable machine-readable error code when the endpoint defines one.
          type: string
        error:
          description: Customer-safe error message.
          type: string
      required:
        - error
      type: object
    PaymentRequiredError:
      allOf:
        - $ref: '#/components/schemas/Error'
        - properties:
            error:
              not:
                const: trial_cap_reached
          type: object
    TrialCapReached:
      properties:
        error:
          const: trial_cap_reached
          type: string
        message:
          description: >-
            Human-relayable continuation instructions, including an executable
            token poll.
          type: string
        upgrade:
          $ref: '#/components/schemas/AgentUpgrade'
      required:
        - error
        - message
        - upgrade
      type: object
    AgentUpgrade:
      properties:
        authorizationServer:
          format: uri
          type: string
        clientId:
          type: string
        device:
          $ref: '#/components/schemas/DeviceUpgrade'
        scope:
          type: string
      required:
        - authorizationServer
        - scope
      type: object
    DeviceUpgrade:
      properties:
        deviceCode:
          type: string
        expiresIn:
          minimum: 0
          type: integer
        grantType:
          type: string
        interval:
          minimum: 1
          type: integer
        tokenEndpoint:
          format: uri
          type: string
        userCode:
          type: string
        verificationUri:
          format: uri
          type: string
        verificationUriComplete:
          format: uri
          type: string
      required:
        - verificationUriComplete
        - verificationUri
        - userCode
        - deviceCode
        - tokenEndpoint
        - grantType
        - interval
        - expiresIn
      type: object
  securitySchemes:
    bearerAuth:
      description: Your AnyAPI key as a Bearer token.
      scheme: bearer
      type: http
      x-default: YOUR_ANYAPI_KEY
    apiKeyAuth:
      description: Your AnyAPI key.
      in: header
      name: X-API-Key
      type: apiKey
      x-default: YOUR_ANYAPI_KEY

````