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

# Check a LinkedIn watch before starting it

> Check a LinkedIn watch's filters and price it, without starting anything. Free. Every place it names is checked, and the answer lists the columns its table would have, what one person costs and what a full day at `people_per_day` costs before enrichment. A place that is not recognised answers 502 with the complaint pinned to `locations`.



## OpenAPI

````yaml /openapi.json post /find-leads/watches/check/
openapi: 3.1.0
info:
  contact:
    email: support@getoneprofile.ai
    name: Oneprofile Support
  description: >-
    REST API reference for Oneprofile, the GTM data layer for your CRM. Manage
    tables, enrichments, and integrations. Authenticate with an API key to get
    started.
  termsOfService: https://www.getoneprofile.ai/terms
  title: API Reference | Oneprofile
  version: '0.0'
servers:
  - url: https://api.getoneprofile.ai
security: []
tags:
  - description: >-
      The docked AI Assistant: its general chat about the workspace and the
      product, streamed as Server-Sent Events, and the one list of a person's
      threads across every assistant, with pin, rename, delete and the
      search-to-table link.
    name: assistant
  - description: >-
      The messages a person keeps to send the assistant again: the ones the
      workspace saved and the ones that ship with the product, with save,
      rename, edit and delete.
    name: assistant-prompt
  - description: >-
      Granted workspace actions: what the AI Assistant proposed or applied in a
      conversation, the approve and dismiss decisions on each card, the
      workspace's approval threshold and default grants, and the eight verbs.
    name: workspace-actions
  - description: >-
      The Getting started checklist: a workspace's progress through the six
      steps from its first people search to its first launched sequence.
    name: onboarding
  - description: Senders, connected mailboxes, tags, and the Google connect flow.
    name: senders
  - description: The workspace do-not-contact list, enforced before every send.
    name: suppression
  - description: >-
      The workspace's recontact rule: how long before anyone hears from us
      again.
    name: contact_cooldown
  - description: 'Sequence authoring: the graph, the table-backed audience, previews.'
    name: sequences
  - description: >-
      The outbound agent behind a sequence: the voice it writes in, its
      per-message prompts, what it wrote and what people told it.
    name: outbound-agents
  - description: >-
      The LinkedIn channel: connecting an account to a sender, its safety limits
      and history, and the protocol the browser extension speaks.
    name: linkedin
  - description: >-
      The approval queue: everything waiting on a person across every sender and
      channel, and the workspace's manual or automatic modes per channel.
    name: outreach
  - description: 'The unified outreach inbox: threads, replies, labels, events.'
    name: inbox
  - description: 'The AI reply layer: workspace settings, drafts, and approval.'
    name: inbox-ai
  - description: Notification rules, per-user preferences, and the Slack connection.
    name: notifications
  - description: Endpoints for seeing all available integration types.
    name: integration-types
  - description: Endpoints for creating and managing integrations.
    name: integrations
  - description: Endpoints for the generic OAuth install/claim app-listings engine.
    name: app-listings
  - description: Endpoints for creating and managing API keys.
    name: apikey
  - description: >-
      The Model Context Protocol endpoint: use Oneprofile from Claude Code,
      Claude Desktop, Cursor or any other MCP client, with an API key as the
      bearer token.
    name: mcp
  - description: Endpoints for managing billing and subscription information.
    name: billing
  - description: Endpoints for creating and managing tables.
    name: tables
  - description: Endpoints for table columns, formula previews, and on-demand column runs.
    name: table-columns
  - description: Endpoints for table rows and manual cell edits.
    name: table-rows
  - description: Endpoints for observing and cancelling table recompute runs.
    name: table-runs
  - description: >-
      Endpoints for org-shared per-column display preferences: hidden, pinned,
      width, and colour tint.
    name: table-ui-prefs
  - description: >-
      Endpoints for the org-shared names given to the column tint palette: what
      this organisation calls each colour. Org-level, not per-table.
    name: table-column-color-labels
  - description: >-
      Endpoints for the enrichment action catalog, model list, presets, draft
      generation, and saved agents.
    name: table-enrichments
  - description: >-
      Endpoints for teaching a saved agent from example rows: training sessions,
      per-row feedback, and the proposed prompt to approve.
    name: agent-training
  - description: >-
      The durable audit trail of a table's enrichment actions: configured,
      edited, run, cancelled, and settled cost.
    name: table-enrichment-audit-logs
  - description: Endpoints for saving and applying column templates.
    name: table-templates
  - description: Server-sent change feed for a table's grid.
    name: table-events
  - description: 'Endpoints for org-shared saved table views: sort, filters, hidden columns.'
    name: table-views
  - description: >-
      Endpoints for PER-USER table preferences: favourites and recently opened.
      Unlike the rest of the table surface these are personal, so two members of
      one organisation legitimately see different answers.
    name: table-user-prefs
  - description: >-
      Endpoints for building a table from an uploaded CSV: upload and preview
      the inferred columns, commit the reviewed mapping, then poll the row load.
    name: table-imports
  - description: Endpoint for downloading a table's rows as CSV.
    name: table-export
  - description: >-
      Endpoints for the integration a table imports from: attach and preview it,
      promote imported fields into columns, and run the import on demand.
    name: table-sources
  - description: >-
      Endpoints for a table's recurring import cadence: set it, pause it, and
      read the next fire times.
    name: table-schedules
  - description: >-
      Endpoints for pushing a table's rows out to a connected integration: list
      writable destinations, derive their write capabilities, and map export
      columns.
    name: table-writeback
  - description: >-
      Endpoints backing a lookup column's setup: the connections whose records a
      column could read, and the identity fields one record type can be looked
      up by.
    name: table-integration-lookup
  - description: >-
      Endpoints for sourcing leads from the lead database: count and preview
      matches, land them in a table, and keep saved searches. Alongside people
      and company searches, leads can be sourced from buying signals (what a
      company or person just did), with a catalogue endpoint behind the picker
      that builds them.
    name: find-leads
  - description: >-
      Endpoints for discovering a domain's subdomains from public certificate
      logs and landing the results in a table.
    name: find-subdomains
  - description: Endpoints for the credit balance meter and usage reporting.
    name: credits
  - description: >-
      Endpoints for the workspace referral program: the shareable link, the
      friends who joined through it, and claiming a code after signup.
    name: referral
  - description: >-
      Endpoints for the affiliate program's own dashboard: enrolling and
      claiming a code, the summary, stats and activity feed, the commission
      ledger, and identity verification and payouts.
    name: affiliate
  - description: >-
      Endpoints for the design partner program's customer surface: whether this
      workspace is a design partner, the badges its feedback has earned, and
      sending and reading that feedback.
    name: design-partner
  - description: >-
      Endpoints for the org-level AI business context (company description,
      ideal customer profile, buyer personas, interest signals and social
      proof), plus domain-based generation and the reference documents whose
      summaries ride alongside those fields.
    name: ai-context
  - description: >-
      Endpoints for the signed-in user's Google Drive connection: starting and
      finishing the OAuth grant, checking or dropping it, and minting the
      short-lived token the Google Picker needs.
    name: google-drive
paths:
  /find-leads/watches/check/:
    post:
      tags:
        - find-leads
      summary: Check a LinkedIn watch before starting it
      description: >-
        Check a LinkedIn watch's filters and price it, without starting
        anything. Free. Every place it names is checked, and the answer lists
        the columns its table would have, what one person costs and what a full
        day at `people_per_day` costs before enrichment. A place that is not
        recognised answers 502 with the complaint pinned to `locations`.
      operationId: check_lead_watch
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CheckLeadWatchRequestSchema'
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/LeadWatchCheckResponseSchema'
          description: Successful Response
        '401':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedResponse'
          description: Unauthorized
        '403':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenResponse'
          description: Forbidden
        '422':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnprocessableEntityResponse'
          description: Invalid request made to the API.
        '500':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ServerErrorResponse'
          description: Internal server error.
        '502':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProviderFailureResponseSchema'
          description: A place was not recognised, or the check could not run.
        '503':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ServerErrorResponse'
          description: Service unavailable.
      security:
        - APIKeyHeader: []
        - HTTPBearer: []
components:
  schemas:
    CheckLeadWatchRequestSchema:
      description: A LinkedIn watch to check and price, without starting it.
      properties:
        backlinks:
          anyOf:
            - $ref: '#/components/schemas/BacklinksQuerySchema'
            - type: 'null'
        companies:
          anyOf:
            - $ref: '#/components/schemas/CompanyQuerySchema'
            - type: 'null'
        event_attendees:
          anyOf:
            - $ref: '#/components/schemas/EventAttendeesQuerySchema'
            - type: 'null'
        hiring_companies:
          anyOf:
            - $ref: '#/components/schemas/HiringCompaniesQuerySchema'
            - type: 'null'
        local_businesses:
          anyOf:
            - $ref: '#/components/schemas/LocalBusinessQuerySchema'
            - type: 'null'
        lookalikes:
          anyOf:
            - $ref: '#/components/schemas/LookalikeQuerySchema'
            - type: 'null'
        page_engagers:
          anyOf:
            - $ref: '#/components/schemas/PageEngagersQuerySchema'
            - type: 'null'
        people:
          anyOf:
            - $ref: '#/components/schemas/PeopleQuerySchema'
            - type: 'null'
        people_per_day:
          default: 25
          description: The daily ceiling to price.
          maximum: 1000
          minimum: 1
          title: People Per Day
          type: integer
        post_engagers:
          anyOf:
            - $ref: '#/components/schemas/PostEngagersQuerySchema'
            - type: 'null'
        profile_engagers:
          anyOf:
            - $ref: '#/components/schemas/ProfileEngagersQuerySchema'
            - type: 'null'
        record_type:
          $ref: '#/components/schemas/LeadRecordType'
        search_results:
          anyOf:
            - $ref: '#/components/schemas/SearchResultsQuerySchema'
            - type: 'null'
        signal_companies:
          anyOf:
            - $ref: '#/components/schemas/SignalCompaniesQuerySchema'
            - type: 'null'
        signal_people:
          anyOf:
            - $ref: '#/components/schemas/SignalPeopleQuerySchema'
            - type: 'null'
        topic_mentions:
          anyOf:
            - $ref: '#/components/schemas/TopicMentionsQuerySchema'
            - type: 'null'
      required:
        - record_type
      title: CheckLeadWatchRequestSchema
      type: object
    LeadWatchCheckResponseSchema:
      description: What a LinkedIn watch would add and cost, checked without starting it.
      properties:
        ceiling_credits_per_day:
          description: >-
            The most one day of people costs, before any enrichment column,
            which is billed per answer on top.
          title: Ceiling Credits Per Day
          type: number
        columns:
          description: Every column the watch's table will have, in order.
          items:
            $ref: '#/components/schemas/LeadColumnSchema'
          title: Columns
          type: array
        credits_per_person:
          description: What one person the watch adds costs.
          title: Credits Per Person
          type: number
        people_per_day:
          title: People Per Day
          type: integer
        record_type:
          $ref: '#/components/schemas/LeadRecordType'
      required:
        - record_type
        - columns
        - credits_per_person
        - people_per_day
        - ceiling_credits_per_day
      title: LeadWatchCheckResponseSchema
      type: object
    UnauthorizedResponse:
      properties:
        detail:
          description: The detail of why the request is unauthorized.
          title: Detail
          type: string
      required:
        - detail
      title: UnauthorizedResponse
      type: object
    ForbiddenResponse:
      properties:
        detail:
          description: The detail of why the request is forbidden.
          title: Detail
          type: string
      required:
        - detail
      title: ForbiddenResponse
      type: object
    UnprocessableEntityResponse:
      properties:
        detail:
          description: >-
            The detail of the error. This is the error message to show to the
            user. You should also use the issues field to show more detailed
            error messages per field. Use this field for a single liner error
            message.
          title: Detail
          type: string
        issues:
          description: >-
            The issues that caused the error. There can be multiple issues. Each
            issue is a user-facing error message.
          items:
            $ref: '#/components/schemas/UnprocessableEntityIssue'
          title: Issues
          type: array
      required:
        - detail
        - issues
      title: UnprocessableEntityResponse
      type: object
    ServerErrorResponse:
      properties:
        detail:
          description: The detail of why the server returned an error.
          title: Detail
          type: string
      required:
        - detail
      title: ServerErrorResponse
      type: object
    ProviderFailureResponseSchema:
      description: >-
        A customer-safe refusal from the lead-search provider itself, not the
        request.


        Every field here is written to be read on its own: the request was well

        formed and the filters were not the problem (see
        ``_as_provider_failure``,

        which builds this shape). Documented on the routes that raise it, so a

        generic 5xx handler can tell this apart from an unexpected server
        failure

        and relay it rather than hiding it.
      properties:
        error_code:
          description: Our own classification of the failure.
          title: Error Code
          type: string
        filter_errors:
          description: >-
            Every filter the provider complained about, in the order it named
            them.
          items:
            $ref: '#/components/schemas/ProviderFilterErrorSchema'
          title: Filter Errors
          type: array
        message:
          description: What went wrong, safe to show as-is.
          title: Message
          type: string
        retryable:
          description: Whether trying the same query again might succeed.
          title: Retryable
          type: boolean
      required:
        - message
        - error_code
        - retryable
        - filter_errors
      title: ProviderFailureResponseSchema
      type: object
    BacklinksQuerySchema:
      description: >-
        The sites linking to a domain or a page.


        Name the target and get one row per referring site by default, sorted by

        the rank the link passes. Every attribute of a backlink the index can

        filter on is here, in four groups: the referring site, the referring

        page, the link itself, and the page it points at. The index takes at
        most

        eight filter conditions in one search, counting every value of every
        list

        as one; a ninth is refused rather than dropped.
      properties:
        alt_texts:
          anyOf:
            - $ref: '#/components/schemas/BacklinkValuesFilterSchema'
            - type: 'null'
          description: Words an image link's alt text contains.
        anchors:
          anyOf:
            - $ref: '#/components/schemas/BacklinkValuesFilterSchema'
            - type: 'null'
          description: Words the anchor text contains.
        backlink_rank:
          anyOf:
            - $ref: '#/components/schemas/RangeFilterSchema'
            - type: 'null'
          description: The rank the link passes to the target, on the scale chosen.
        dofollow:
          anyOf:
            - $ref: '#/components/schemas/FlagFilterSchema'
            - type: 'null'
          description: Only links that pass (or do not pass) rank.
        domain_rank:
          anyOf:
            - $ref: '#/components/schemas/RangeFilterSchema'
            - type: 'null'
          description: The referring site's rank, on the scale chosen.
        exclude_internal:
          default: true
          description: Whether links from the target's own subdomains are left out.
          title: Exclude Internal
          type: boolean
        first_seen_after:
          anyOf:
            - pattern: ^\d{4}-\d{2}-\d{2}$
              type: string
            - type: 'null'
          description: Only links first found on or after this day, as YYYY-MM-DD.
          title: First Seen After
        first_seen_before:
          anyOf:
            - pattern: ^\d{4}-\d{2}-\d{2}$
              type: string
            - type: 'null'
          description: Only links first found on or before this day, as YYYY-MM-DD.
          title: First Seen Before
        group_count:
          anyOf:
            - $ref: '#/components/schemas/RangeFilterSchema'
            - type: 'null'
          description: >-
            How many links the referring site carries in all, when rows are one
            per site.
        image_urls:
          anyOf:
            - $ref: '#/components/schemas/BacklinkValuesFilterSchema'
            - type: 'null'
          description: Words an image link's image URL contains.
        include_subdomains:
          default: true
          description: Whether links to the target's subdomains count.
          title: Include Subdomains
          type: boolean
        indirect_path_types:
          description: >-
            How an indirect link reaches the target: redirect or canonical. Any
            of them.
          items:
            enum:
              - redirect
              - canonical
            type: string
          maxItems: 8
          title: Indirect Path Types
          type: array
        is_broken:
          anyOf:
            - $ref: '#/components/schemas/FlagFilterSchema'
            - type: 'null'
          description: Only links pointing at a page that answers an error (or not).
        is_indirect:
          anyOf:
            - $ref: '#/components/schemas/FlagFilterSchema'
            - type: 'null'
          description: >-
            Only links reaching the target through a redirect or canonical (or
            not).
        is_lost:
          anyOf:
            - $ref: '#/components/schemas/FlagFilterSchema'
            - type: 'null'
          description: Only links that have been removed (or not).
        is_new:
          anyOf:
            - $ref: '#/components/schemas/FlagFilterSchema'
            - type: 'null'
          description: Only links first found on the last visit (or not).
        last_seen_after:
          anyOf:
            - pattern: ^\d{4}-\d{2}-\d{2}$
              type: string
            - type: 'null'
          description: Only links last seen on or after this day, as YYYY-MM-DD.
          title: Last Seen After
        last_seen_before:
          anyOf:
            - pattern: ^\d{4}-\d{2}-\d{2}$
              type: string
            - type: 'null'
          description: Only links last seen on or before this day, as YYYY-MM-DD.
          title: Last Seen Before
        link_types:
          anyOf:
            - $ref: '#/components/schemas/BacklinkLinkTypesFilterSchema'
            - type: 'null'
          description: >-
            How the link is made: anchor, image, meta, canonical, alternate or
            redirect.
        linked_domains:
          anyOf:
            - $ref: '#/components/schemas/BacklinkValuesFilterSchema'
            - type: 'null'
          description: Domains the links point at, matched exactly.
        linked_spam_score:
          anyOf:
            - $ref: '#/components/schemas/RangeFilterSchema'
            - type: 'null'
          description: The linked page's spam score, 0 to 100.
        linked_status_code:
          anyOf:
            - $ref: '#/components/schemas/RangeFilterSchema'
            - type: 'null'
          description: The HTTP status the linked page answered.
        linked_url_https:
          anyOf:
            - $ref: '#/components/schemas/FlagFilterSchema'
            - type: 'null'
          description: Only links pointing at an HTTPS page (or not).
        linked_urls:
          anyOf:
            - $ref: '#/components/schemas/BacklinkValuesFilterSchema'
            - type: 'null'
          description: Words the linked page's URL contains.
        links_count:
          anyOf:
            - $ref: '#/components/schemas/RangeFilterSchema'
            - type: 'null'
          description: How many identical links the referring page carries.
        mode:
          $ref: '#/components/schemas/BacklinkMode'
          default: one_per_domain
          description: >-
            What one row is: one_per_domain keeps one link per referring site
            (the default, and the one that makes a table of leads); as_is keeps
            every link; one_per_anchor keeps one per anchor text.
        original:
          anyOf:
            - $ref: '#/components/schemas/FlagFilterSchema'
            - type: 'null'
          description: Only links present on the page's first visit (or not).
        page_encodings:
          anyOf:
            - $ref: '#/components/schemas/BacklinkValuesFilterSchema'
            - type: 'null'
          description: Character encodings of the referring page, like utf-8.
        page_external_links:
          anyOf:
            - $ref: '#/components/schemas/RangeFilterSchema'
            - type: 'null'
          description: How many external links the referring page carries.
        page_internal_links:
          anyOf:
            - $ref: '#/components/schemas/RangeFilterSchema'
            - type: 'null'
          description: How many internal links the referring page carries.
        page_keywords_top_10:
          anyOf:
            - $ref: '#/components/schemas/RangeFilterSchema'
            - type: 'null'
          description: How many keywords the referring page ranks in the top 10 for.
        page_keywords_top_100:
          anyOf:
            - $ref: '#/components/schemas/RangeFilterSchema'
            - type: 'null'
          description: How many keywords the referring page ranks in the top 100 for.
        page_keywords_top_3:
          anyOf:
            - $ref: '#/components/schemas/RangeFilterSchema'
            - type: 'null'
          description: How many keywords the referring page ranks in the top 3 for.
        page_languages:
          anyOf:
            - $ref: '#/components/schemas/BacklinkValuesFilterSchema'
            - type: 'null'
          description: Languages of the referring page, as ISO 639-1 codes.
        page_rank:
          anyOf:
            - $ref: '#/components/schemas/RangeFilterSchema'
            - type: 'null'
          description: The referring page's rank, on the scale chosen.
        page_size_bytes:
          anyOf:
            - $ref: '#/components/schemas/RangeFilterSchema'
            - type: 'null'
          description: The referring page's size, in bytes.
        page_status_code:
          anyOf:
            - $ref: '#/components/schemas/RangeFilterSchema'
            - type: 'null'
          description: The HTTP status the referring page answered.
        page_titles:
          anyOf:
            - $ref: '#/components/schemas/BacklinkValuesFilterSchema'
            - type: 'null'
          description: Words the referring page's title contains.
        per_field:
          anyOf:
            - $ref: '#/components/schemas/BacklinkGroupField'
            - type: 'null'
          description: >-
            Keep a fixed number of links per value of this attribute instead of
            using mode: domain_from for a few links per referring site, anchor
            for a few per anchor text. Needs per_field_limit.
        per_field_limit:
          anyOf:
            - maximum: 1000
              minimum: 1
              type: integer
            - type: 'null'
          description: How many links to keep per value of per_field.
          title: Per Field Limit
        prev_seen_after:
          anyOf:
            - pattern: ^\d{4}-\d{2}-\d{2}$
              type: string
            - type: 'null'
          description: >-
            Only links whose visit before last was on or after this day, as
            YYYY-MM-DD.
          title: Prev Seen After
        prev_seen_before:
          anyOf:
            - pattern: ^\d{4}-\d{2}-\d{2}$
              type: string
            - type: 'null'
          description: >-
            Only links whose visit before last was on or before this day, as
            YYYY-MM-DD.
          title: Prev Seen Before
        rank_scale:
          $ref: '#/components/schemas/RankScale'
          default: one_hundred
          description: >-
            The scale the three ranks are reported and filtered on: 0 to 100
            (the default) or 0 to 1000.
        redirect_targets:
          anyOf:
            - $ref: '#/components/schemas/BacklinkValuesFilterSchema'
            - type: 'null'
          description: Words the redirect's final URL contains.
        referring_countries:
          anyOf:
            - $ref: '#/components/schemas/BacklinkValuesFilterSchema'
            - type: 'null'
          description: >-
            Countries of the referring site, as ISO alpha-2 codes or picker
            names.
        referring_domain_is_ip:
          anyOf:
            - $ref: '#/components/schemas/FlagFilterSchema'
            - type: 'null'
          description: Only referring sites that are (or are not) a bare IP address.
        referring_domains:
          anyOf:
            - $ref: '#/components/schemas/BacklinkValuesFilterSchema'
            - type: 'null'
          description: Referring sites, by host, matched exactly.
        referring_ips:
          anyOf:
            - $ref: '#/components/schemas/BacklinkValuesFilterSchema'
            - type: 'null'
          description: IP addresses of the referring site.
        referring_platform_types:
          description: >-
            Kinds of referring site to keep, any of them: cms, blogs, ecommerce,
            message-boards, wikis, news, organization or unknown. There is no
            exclude.
          items:
            enum:
              - cms
              - blogs
              - ecommerce
              - message-boards
              - wikis
              - news
              - organization
              - unknown
            type: string
          maxItems: 8
          title: Referring Platform Types
          type: array
        referring_tlds:
          anyOf:
            - $ref: '#/components/schemas/BacklinkValuesFilterSchema'
            - type: 'null'
          description: Top-level domains of the referring site, like com or edu.
        referring_url_https:
          anyOf:
            - $ref: '#/components/schemas/FlagFilterSchema'
            - type: 'null'
          description: Only referring pages served over HTTPS (or not).
        referring_urls:
          anyOf:
            - $ref: '#/components/schemas/BacklinkValuesFilterSchema'
            - type: 'null'
          description: Words the referring page's URL contains.
        semantic_locations:
          anyOf:
            - $ref: '#/components/schemas/BacklinkValuesFilterSchema'
            - type: 'null'
          description: >-
            The HTML element the link sits in: article, section, footer, nav and
            so on.
        sort_by:
          $ref: '#/components/schemas/BacklinkSortKey'
          default: backlink_rank
          description: >-
            Which attribute orders the rows, and so which rows an import keeps
            when more match than it adds. Backlink rank by default.
        sort_descending:
          default: true
          description: Highest or latest first.
          title: Sort Descending
          type: boolean
        spam_score:
          anyOf:
            - $ref: '#/components/schemas/RangeFilterSchema'
            - type: 'null'
          description: The link's spam score, 0 to 100.
        status:
          $ref: '#/components/schemas/BacklinkStatus'
          default: live
          description: >-
            Which links are returned and counted: live (still found on the last
            visit, the default), lost, or all.
        target:
          anyOf:
            - maxLength: 2048
              type: string
            - type: 'null'
          description: >-
            The site whose backlinks to find: a domain or subdomain written bare
            (acme.com, blog.acme.com), or a page as its whole URL. Required;
            nothing else can anchor a backlink search.
          title: Target
        text_after:
          anyOf:
            - $ref: '#/components/schemas/BacklinkValuesFilterSchema'
            - type: 'null'
          description: Words the text just after the link contains.
        text_before:
          anyOf:
            - $ref: '#/components/schemas/BacklinkValuesFilterSchema'
            - type: 'null'
          description: Words the text just before the link contains.
      title: BacklinksQuerySchema
      type: object
    CompanyQuerySchema:
      description: Filters for a company search.
      properties:
        category:
          anyOf:
            - $ref: '#/components/schemas/TextFilterSchema'
            - type: 'null'
          description: >-
            What the site says the company does, read by the search rather than
            declared.
        cities:
          anyOf:
            - $ref: '#/components/schemas/TextFilterSchema'
            - type: 'null'
          description: Headquarters cities.
        company_type:
          anyOf:
            - $ref: '#/components/schemas/TextFilterSchema'
            - type: 'null'
          description: >-
            The company's type, one of: Privately Held, Public Company,
            Self-Employed, Self-Owned, Partnership, Nonprofit, Educational or
            Government Agency. Matched case-insensitively; any other value is
            refused rather than quietly matching nothing.
        countries:
          anyOf:
            - $ref: '#/components/schemas/TextFilterSchema'
            - type: 'null'
          description: Headquarters countries, written out in full.
        department_headcount:
          anyOf:
            - $ref: '#/components/schemas/TeamHeadcountFilterSchema'
            - type: 'null'
          description: >-
            How many employees work in one department, for example at least 10
            in Engineering and Technical. Reaches about half the companies. The
            team to count is one of: Administrative, Consulting, Customer
            Service, Design, Education, Engineering and Technical, Finance &
            Accounting, General Management, Human Resources, Legal, Marketing,
            Medical, Operations, Other, Product, Project Management, Real
            Estate, Research, Sales or Trades.
        domain:
          anyOf:
            - $ref: '#/components/schemas/TextFilterSchema'
            - type: 'null'
          description: The company's website domain, as stripe.com.
        enriched_keywords:
          anyOf:
            - $ref: '#/components/schemas/TextFilterSchema'
            - type: 'null'
          description: >-
            What the company offers, products and services, as read off its
            site.
        exclude_expired_domains:
          anyOf:
            - $ref: '#/components/schemas/FlagFilterSchema'
            - type: 'null'
          description: Excludes companies whose website domain has expired.
        executive_joined_within:
          anyOf:
            - $ref: '#/components/schemas/ExecutiveChangeWindow'
            - type: 'null'
          description: >-
            Companies where an executive joined inside this window: past_month,
            past_quarter or past_year.
        executive_left_within:
          anyOf:
            - $ref: '#/components/schemas/ExecutiveChangeWindow'
            - type: 'null'
          description: >-
            Companies where an executive left inside this window: past_month,
            past_quarter or past_year.
        executive_titles:
          anyOf:
            - $ref: '#/components/schemas/TextFilterSchema'
            - type: 'null'
          description: >-
            Narrows the executive changes above to these roles, for example
            Chief Revenue Officer. On its own, matches a company where someone
            joined in one of these roles.
        followers:
          anyOf:
            - $ref: '#/components/schemas/RangeFilterSchema'
            - type: 'null'
          description: How many followers the company's professional profile has.
        founded:
          anyOf:
            - $ref: '#/components/schemas/RangeFilterSchema'
            - type: 'null'
          description: The year the company was founded.
        funding_round_types:
          anyOf:
            - $ref: '#/components/schemas/TextFilterSchema'
            - type: 'null'
          description: >-
            The type of the last round raised, for example Seed or Series A.
            Funding coverage is thin, so this narrows hard.
        funding_rounds_count:
          anyOf:
            - $ref: '#/components/schemas/RangeFilterSchema'
            - type: 'null'
          description: How many funding rounds the company has raised in all.
        has_api_docs:
          anyOf:
            - $ref: '#/components/schemas/FlagFilterSchema'
            - type: 'null'
          description: Whether the company publishes API documentation.
        has_demo:
          anyOf:
            - $ref: '#/components/schemas/FlagFilterSchema'
            - type: 'null'
          description: Whether the company offers a demo.
        has_free_trial:
          anyOf:
            - $ref: '#/components/schemas/FlagFilterSchema'
            - type: 'null'
          description: Whether the company offers a free trial.
        has_mobile_apps:
          anyOf:
            - $ref: '#/components/schemas/FlagFilterSchema'
            - type: 'null'
          description: Whether the company has mobile apps.
        has_online_reviews:
          anyOf:
            - $ref: '#/components/schemas/FlagFilterSchema'
            - type: 'null'
          description: Whether the company has reviews on review sites.
        has_pricing_page:
          anyOf:
            - $ref: '#/components/schemas/FlagFilterSchema'
            - type: 'null'
          description: Whether the company's website has a pricing page.
        has_website:
          anyOf:
            - $ref: '#/components/schemas/FlagFilterSchema'
            - type: 'null'
          description: Whether the company has a website.
        headcount:
          anyOf:
            - $ref: '#/components/schemas/RangeFilterSchema'
            - type: 'null'
          description: The company's employee count.
        headcount_growth:
          anyOf:
            - $ref: '#/components/schemas/GrowthFilterSchema'
            - type: 'null'
          description: >-
            Headcount change as a percentage band, over the past month (1month),
            3 months (3months) or 12 months (12months). The 6- and 24-month
            windows are refused.
        identifier:
          anyOf:
            - $ref: '#/components/schemas/TextFilterSchema'
            - type: 'null'
          description: >-
            Specific companies, as domains, LinkedIn company URLs, LinkedIn
            vanity names or numeric LinkedIn ids, mixed freely.
        industry:
          anyOf:
            - $ref: '#/components/schemas/TextFilterSchema'
            - type: 'null'
          description: >-
            The company's industry, from the lead database's fixed industry
            list. Matched case-insensitively; a value outside the list is
            refused and the nearest entry is named.
        is_b2b:
          anyOf:
            - $ref: '#/components/schemas/FlagFilterSchema'
            - type: 'null'
          description: Whether the company sells to businesses, by the index's own reading.
        is_downloadable:
          anyOf:
            - $ref: '#/components/schemas/FlagFilterSchema'
            - type: 'null'
          description: Whether the company offers software to download and install.
        is_saas:
          anyOf:
            - $ref: '#/components/schemas/FlagFilterSchema'
            - type: 'null'
          description: Whether the company sells software as a service.
        keyword:
          anyOf:
            - $ref: '#/components/schemas/TextFilterSchema'
            - type: 'null'
          description: Words in the company's description.
        last_funding_after:
          anyOf:
            - pattern: ^\d{4}-\d{2}-\d{2}$
              type: string
            - type: 'null'
          description: >-
            Only companies whose last round closed on or after this day, as
            YYYY-MM-DD.
          title: Last Funding After
        last_funding_amount:
          anyOf:
            - $ref: '#/components/schemas/RangeFilterSchema'
            - type: 'null'
          description: >-
            The size of the last round raised, in US dollars. Rounds reported in
            another currency are left out.
        last_funding_before:
          anyOf:
            - pattern: ^\d{4}-\d{2}-\d{2}$
              type: string
            - type: 'null'
          description: >-
            Only companies whose last round closed on or before this day, as
            YYYY-MM-DD.
          title: Last Funding Before
        linkedin_id:
          anyOf:
            - $ref: '#/components/schemas/TextFilterSchema'
            - type: 'null'
          description: The company's numeric LinkedIn id.
        linkedin_slug:
          anyOf:
            - $ref: '#/components/schemas/TextFilterSchema'
            - type: 'null'
          description: The company's LinkedIn vanity name, as in acme-inc.
        location:
          anyOf:
            - $ref: '#/components/schemas/TextFilterSchema'
            - type: 'null'
          description: >-
            Where the company's headquarters are. A country may be written as
            its name or its alpha-2 code; both are sent as the code. A comma
            narrows a city to its country, as in Paris, France; several values
            are alternatives.
        name:
          anyOf:
            - $ref: '#/components/schemas/TextFilterSchema'
            - type: 'null'
          description: The company's name, the brand it goes by.
        office_cities:
          anyOf:
            - $ref: '#/components/schemas/TextFilterSchema'
            - type: 'null'
          description: Cities the company has any office in, not just its headquarters.
        office_countries:
          anyOf:
            - $ref: '#/components/schemas/TextFilterSchema'
            - type: 'null'
          description: Countries the company has any office in, not just its headquarters.
        office_states:
          anyOf:
            - $ref: '#/components/schemas/TextFilterSchema'
            - type: 'null'
          description: >-
            States or provinces the company has any office in, not just its
            headquarters.
        post_keyword:
          anyOf:
            - $ref: '#/components/schemas/TextFilterSchema'
            - type: 'null'
          description: >-
            Words in the company's posts on the professional network, within
            posted_within.
        post_reactions:
          anyOf:
            - $ref: '#/components/schemas/RangeFilterSchema'
            - type: 'null'
          description: How many reactions one of the company's posts drew.
        posted_within:
          anyOf:
            - $ref: '#/components/schemas/CompanyPostWindow'
            - type: 'null'
          description: >-
            Companies that posted on the professional network inside this
            window: past_week, past_month, past_quarter or past_year.
        revenue:
          anyOf:
            - $ref: '#/components/schemas/RangeFilterSchema'
            - type: 'null'
          description: >-
            Annual revenue in US dollars. A company matches when any of its
            revenue estimates falls inside the range. Only about one company in
            thirteen carries an estimate, so this narrows hard.
        seniority_headcount:
          anyOf:
            - $ref: '#/components/schemas/TeamHeadcountFilterSchema'
            - type: 'null'
          description: >-
            How many employees sit at one seniority, for example at least 3
            Directors. Reaches about half the companies. The team to count is
            one of: C-Level, Director, Founder, Head, Intern, Manager, Owner,
            Partner, President/Vice President, Senior, Specialist or Vice
            President.
        size_bands:
          anyOf:
            - $ref: '#/components/schemas/TextFilterSchema'
            - type: 'null'
          description: >-
            Headcount as a band, one of: Myself Only, 1-10 employees, 11-50
            employees, 51-200 employees, 201-500 employees, 501-1000 employees,
            1001-5000 employees, 5001-10,000 employees or 10,001+ employees.
            Offered beside the numeric headcount, not instead of it.
        social_networks:
          anyOf:
            - $ref: '#/components/schemas/TextFilterSchema'
            - type: 'null'
          description: >-
            Companies with a profile on any of these networks: facebook,
            instagram, youtube, x, twitter, tiktok, reddit, pinterest, github or
            discord. Matched case-insensitively; any other value is refused.
        specialities:
          anyOf:
            - $ref: '#/components/schemas/TextFilterSchema'
            - type: 'null'
          description: Categories and keywords filed on the company's profile.
        states:
          anyOf:
            - $ref: '#/components/schemas/TextFilterSchema'
            - type: 'null'
          description: Headquarters states or provinces, written out in full.
        technologies:
          anyOf:
            - $ref: '#/components/schemas/TextFilterSchema'
            - type: 'null'
          description: >-
            Technologies the company's website runs. Reaches only the companies
            whose site has been read, about one in six, so expect a smaller
            result than other filters give.
        technology_first_seen_after:
          anyOf:
            - pattern: ^\d{4}-\d{2}-\d{2}$
              type: string
            - type: 'null'
          description: >-
            Only count a technology FIRST seen on or after this day, as
            YYYY-MM-DD.
          title: Technology First Seen After
        technology_verified_after:
          anyOf:
            - pattern: ^\d{4}-\d{2}-\d{2}$
              type: string
            - type: 'null'
          description: >-
            Only count a technology still seen on or after this day, as
            YYYY-MM-DD.
          title: Technology Verified After
        unique_domain_only:
          anyOf:
            - $ref: '#/components/schemas/FlagFilterSchema'
            - type: 'null'
          description: Excludes companies sharing a domain, which collapse into one row.
      title: CompanyQuerySchema
      type: object
    EventAttendeesQuerySchema:
      description: 'A LinkedIn watch on events: who says they are attending.'
      properties:
        company_size:
          anyOf:
            - $ref: '#/components/schemas/TextFilterSchema'
            - type: 'null'
          description: >-
            The employer's size bands to include or exclude, from:
            Self-employed, 1-10, 11-50, 51-200, 201-500, 501-1000, 1001-5000,
            5001-10000 or 10001+.
        company_types:
          description: >-
            The employer's types to include, from: Educational Institution,
            Government Agency, Nonprofit, Partnership, Privately Held, Public
            Company, Self-Employed or Sole Proprietorship. An employer whose
            type is unknown is kept.
          items:
            type: string
          maxItems: 8
          title: Company Types
          type: array
        event_urls:
          description: >-
            Links to the LinkedIn events to watch, up to 100. At least one is
            required. A row does not say which event a person attends, so watch
            one event per table to tell them apart.
          items:
            maxLength: 2048
            type: string
          maxItems: 100
          title: Event Urls
          type: array
        exclude_company_pages:
          description: >-
            LinkedIn company pages whose people are never added, for example
            your own company and your customers.
          items:
            type: string
          maxItems: 100
          title: Exclude Company Pages
          type: array
        industries:
          anyOf:
            - $ref: '#/components/schemas/TextFilterSchema'
            - type: 'null'
          description: >-
            The employer's industries to include or exclude, from the watch
            industry list (an industry such as Software Development, or a broad
            category such as Technology and Media). Matched exactly; any other
            value is refused with the closest one.
        job_titles:
          anyOf:
            - $ref: '#/components/schemas/TextFilterSchema'
            - type: 'null'
          description: >-
            Free-text job titles: include adds people holding these titles
            beside the roles, exclude leaves out people holding them.
        locations:
          anyOf:
            - $ref: '#/components/schemas/TextFilterSchema'
            - type: 'null'
          description: >-
            Where the person is: countries, regions or cities to include or
            exclude, one place each, for example France, Île-de-France or Paris.
            Each place is checked before the watch starts.
        roles:
          description: >-
            Roles to add people in, from the watch role list (read it with GET
            /find-leads/watch-vocabulary/, grouped by department), for example
            CEO, Sales Director or Marketing Manager. A role matches the titles
            people in it hold. Any other value is refused; use job_titles for a
            title the list does not have. Empty adds every role.
          items:
            type: string
          maxItems: 100
          title: Roles
          type: array
      title: EventAttendeesQuerySchema
      type: object
    HiringCompaniesQuerySchema:
      description: |-
        Filters for a search for companies with open roles matching a job title.

        The rows are companies, one per employer, each carrying every open
        posting the search read for it. The count is of open postings, since the
        companies are folded from them once they are read.
      properties:
        cities:
          description: Cities the roles are based in. Up to 20.
          items:
            type: string
          maxItems: 20
          title: Cities
          type: array
        company_domains:
          description: Only roles at these employers, by website domain. Up to 100.
          items:
            type: string
          maxItems: 100
          title: Company Domains
          type: array
        company_funded_after:
          anyOf:
            - pattern: ^\d{4}-\d{2}-\d{2}$
              type: string
            - type: 'null'
          description: >-
            Only employers whose last round closed on or after this day, as
            YYYY-MM-DD.
          title: Company Funded After
        company_funding_amount:
          anyOf:
            - $ref: '#/components/schemas/RangeFilterSchema'
            - type: 'null'
          description: The size of the employer's last round, in US dollars.
        company_funding_round_types:
          description: >-
            The type of the employer's last funding round, for example Seed or
            Series A.
          items:
            type: string
          maxItems: 20
          title: Company Funding Round Types
          type: array
        company_technologies:
          description: >-
            Only employers whose website runs one of these technologies, for
            example HubSpot. Up to 20.
          items:
            type: string
          maxItems: 20
          title: Company Technologies
          type: array
        countries:
          description: >-
            Countries the roles are based in, by full name the way a posting
            spells it: United States, not US. Up to 20.
          items:
            type: string
          maxItems: 20
          title: Countries
          type: array
        departments:
          description: >-
            The role's department, from the same list the people search uses,
            for example Sales or Engineering and Technical. Any other value is
            refused.
          items:
            type: string
          maxItems: 20
          title: Departments
          type: array
        employee_count:
          anyOf:
            - $ref: '#/components/schemas/RangeFilterSchema'
            - type: 'null'
          description: The employer's headcount.
        industries:
          description: >-
            Only employers in these industries, each matched as a phrase in the
            employer's industry name. Up to 25.
          items:
            type: string
          maxItems: 25
          title: Industries
          type: array
        job_functions:
          description: >-
            The role's job functions, for example Sales, Information Technology
            or Software Development, each matched as a phrase. Up to 20.
          items:
            type: string
          maxItems: 20
          title: Job Functions
          type: array
        job_title:
          anyOf:
            - $ref: '#/components/schemas/JobTitleFilterSchema'
            - type: 'null'
          description: >-
            Phrases an open posting's title must carry, any of them, up to 10
            each way. A phrase is matched whole and in order: Identity
            Management matches Senior Identity Management Engineer and not
            Manager of Identity. At least one title or keyword phrase is
            required; nothing else can anchor a hiring search.
        keywords:
          anyOf:
            - $ref: '#/components/schemas/JobTitleFilterSchema'
            - type: 'null'
          description: >-
            Phrases in the posting's description, matched the same way. The
            other way to anchor the search: companies whose openings mention
            Okta, whatever the role is called.
        posted_after:
          anyOf:
            - pattern: ^\d{4}-\d{2}-\d{2}$
              type: string
            - type: 'null'
          description: Only postings published on or after this day, as YYYY-MM-DD.
          title: Posted After
        posted_before:
          anyOf:
            - pattern: ^\d{4}-\d{2}-\d{2}$
              type: string
            - type: 'null'
          description: Only postings published on or before this day, as YYYY-MM-DD.
          title: Posted Before
        seniorities:
          description: >-
            The role's seniority, from: Internship, Entry level, Associate,
            Mid-Senior level, Director, Executive or Not Applicable. Any other
            value is refused.
          items:
            type: string
          maxItems: 20
          title: Seniorities
          type: array
        states:
          description: >-
            States or provinces the roles are based in, written out in full. Up
            to 20.
          items:
            type: string
          maxItems: 20
          title: States
          type: array
      title: HiringCompaniesQuerySchema
      type: object
    LocalBusinessQuerySchema:
      description: >-
        Filters for a map search over business listings.


        The one search here that asks "who is within this radius". Name a
        category,

        a business name or a website to look for, plus an area to look in for
        the

        radius part.
      properties:
        area:
          anyOf:
            - $ref: '#/components/schemas/GeoFilterSchema'
            - type: 'null'
          description: Where to search, and how far around it.
        categories:
          description: Business categories to include, in the data source's own vocabulary.
          items:
            type: string
          maxItems: 10
          title: Categories
          type: array
        description:
          anyOf:
            - maxLength: 200
              type: string
            - type: 'null'
          description: Words in the business description.
          title: Description
        domain:
          anyOf:
            - maxLength: 200
              type: string
            - type: 'null'
          description: Only the listing on this domain.
          title: Domain
        has_phone:
          anyOf:
            - $ref: '#/components/schemas/FlagFilterSchema'
            - type: 'null'
          description: Only listings that do (or do not) show a phone number.
        has_website:
          anyOf:
            - $ref: '#/components/schemas/FlagFilterSchema'
            - type: 'null'
          description: Only listings that do (or do not) link a website.
        is_claimed:
          anyOf:
            - $ref: '#/components/schemas/FlagFilterSchema'
            - type: 'null'
          description: Only listings the owner has (or has not) claimed.
        name:
          anyOf:
            - maxLength: 200
              type: string
            - type: 'null'
          description: Words in the business name.
          title: Name
        price_level:
          description: >-
            Price bands to include: inexpensive, moderate, expensive or
            very_expensive.
          items:
            enum:
              - inexpensive
              - moderate
              - expensive
              - very_expensive
            type: string
          maxItems: 4
          title: Price Level
          type: array
        rating:
          anyOf:
            - $ref: '#/components/schemas/DecimalRangeFilterSchema'
            - type: 'null'
          description: Star rating range, out of five.
        review_count:
          anyOf:
            - $ref: '#/components/schemas/RangeFilterSchema'
            - type: 'null'
          description: How many reviews the listing has.
      title: LocalBusinessQuerySchema
      type: object
    LookalikeQuerySchema:
      description: Filters for a search for companies resembling a set of seed companies.
      properties:
        match:
          $ref: '#/components/schemas/LookalikeMatch'
          default: balanced
          description: >-
            How close a match to look for. Broad favours larger, more
            established companies and keeps every match. Balanced is the default
            ranking. Exact favours the companies most like the seeds and keeps
            only the closest matches, so it can add fewer rows than the count
            shows.
        seed_domains:
          description: >-
            The company domains to find lookalikes of, between 1 and 10. At
            least one is required, since nothing else can anchor a similarity
            search.
          items:
            type: string
          maxItems: 10
          title: Seed Domains
          type: array
      title: LookalikeQuerySchema
      type: object
    PageEngagersQuerySchema:
      description: >-
        A LinkedIn watch on company pages: who engages with the posts they
        publish.
      properties:
        company_page_urls:
          description: >-
            Links to the LinkedIn company pages whose posts to watch, for
            example a competitor's, up to 100. At least one is required.
          items:
            maxLength: 2048
            type: string
          maxItems: 100
          title: Company Page Urls
          type: array
        company_size:
          anyOf:
            - $ref: '#/components/schemas/TextFilterSchema'
            - type: 'null'
          description: >-
            The employer's size bands to include or exclude, from:
            Self-employed, 1-10, 11-50, 51-200, 201-500, 501-1000, 1001-5000,
            5001-10000 or 10001+.
        company_types:
          description: >-
            The employer's types to include, from: Educational Institution,
            Government Agency, Nonprofit, Partnership, Privately Held, Public
            Company, Self-Employed or Sole Proprietorship. An employer whose
            type is unknown is kept.
          items:
            type: string
          maxItems: 8
          title: Company Types
          type: array
        engagement:
          description: >-
            Which people around each post to add: reacted (people who reacted),
            commented (people who commented), wrote_the_post (its author). Empty
            means the watch's own default: people who reacted or commented, or
            for a topic watch the people who wrote the posts.
          items:
            $ref: '#/components/schemas/WatchEngagement'
          maxItems: 3
          title: Engagement
          type: array
        exclude_company_pages:
          description: >-
            LinkedIn company pages whose people are never added, for example
            your own company and your customers.
          items:
            type: string
          maxItems: 100
          title: Exclude Company Pages
          type: array
        industries:
          anyOf:
            - $ref: '#/components/schemas/TextFilterSchema'
            - type: 'null'
          description: >-
            The employer's industries to include or exclude, from the watch
            industry list (an industry such as Software Development, or a broad
            category such as Technology and Media). Matched exactly; any other
            value is refused with the closest one.
        job_titles:
          anyOf:
            - $ref: '#/components/schemas/TextFilterSchema'
            - type: 'null'
          description: >-
            Free-text job titles: include adds people holding these titles
            beside the roles, exclude leaves out people holding them.
        locations:
          anyOf:
            - $ref: '#/components/schemas/TextFilterSchema'
            - type: 'null'
          description: >-
            Where the person is: countries, regions or cities to include or
            exclude, one place each, for example France, Île-de-France or Paris.
            Each place is checked before the watch starts.
        max_posts:
          anyOf:
            - maximum: 10000
              minimum: 1
              type: integer
            - type: 'null'
          description: The most posts the watch reads; empty for no limit.
          title: Max Posts
        min_engagement:
          anyOf:
            - maximum: 100000
              minimum: 0
              type: integer
            - type: 'null'
          description: >-
            Skip posts with fewer reactions and comments than this. Empty means
            5.
          title: Min Engagement
        only_both:
          anyOf:
            - type: boolean
            - type: 'null'
          description: >-
            Only people who both reacted and commented: the fewest, warmest
            people. Combines with wrote_the_post, and replaces reacted and
            commented.
          title: Only Both
        post_window:
          anyOf:
            - $ref: '#/components/schemas/WatchPostWindow'
            - type: 'null'
          description: >-
            How recent a post must be: 24h, week or month. Empty means a week,
            or 24 hours for a topic watch.
        roles:
          description: >-
            Roles to add people in, from the watch role list (read it with GET
            /find-leads/watch-vocabulary/, grouped by department), for example
            CEO, Sales Director or Marketing Manager. A role matches the titles
            people in it hold. Any other value is refused; use job_titles for a
            title the list does not have. Empty adds every role.
          items:
            type: string
          maxItems: 100
          title: Roles
          type: array
      title: PageEngagersQuerySchema
      type: object
    PeopleQuerySchema:
      description: Filters for a people search.
      properties:
        active_profile_only:
          anyOf:
            - $ref: '#/components/schemas/FlagFilterSchema'
            - type: 'null'
          description: Excludes profiles the index has deleted or hidden.
        certifications:
          anyOf:
            - $ref: '#/components/schemas/TextFilterSchema'
            - type: 'null'
          description: A certification they hold, matched on its name or its issuer.
        cities:
          anyOf:
            - $ref: '#/components/schemas/TextFilterSchema'
            - type: 'null'
          description: Cities the person lives in.
        company_cities:
          anyOf:
            - $ref: '#/components/schemas/TextFilterSchema'
            - type: 'null'
          description: Cities the current employer's headquarters are in.
        company_countries:
          anyOf:
            - $ref: '#/components/schemas/TextFilterSchema'
            - type: 'null'
          description: >-
            Countries the current employer's headquarters are in, written out in
            full, as in United States.
        company_founded:
          anyOf:
            - $ref: '#/components/schemas/RangeFilterSchema'
            - type: 'null'
          description: The year their current employer was founded.
        company_funded_after:
          anyOf:
            - pattern: ^\d{4}-\d{2}-\d{2}$
              type: string
            - type: 'null'
          description: >-
            Only people whose employer last raised on or after this day, as
            YYYY-MM-DD.
          title: Company Funded After
        company_funding_amount:
          anyOf:
            - $ref: '#/components/schemas/RangeFilterSchema'
            - type: 'null'
          description: The size of their current employer's last round, in US dollars.
        company_headcount:
          anyOf:
            - $ref: '#/components/schemas/RangeFilterSchema'
            - type: 'null'
          description: Their current employer's employee count.
        company_headcount_growth:
          anyOf:
            - $ref: '#/components/schemas/GrowthFilterSchema'
            - type: 'null'
          description: >-
            Headcount change at their current employer over a window, as a
            percentage band.
        company_headcount_growth_percent:
          anyOf:
            - $ref: '#/components/schemas/RangeFilterSchema'
            - type: 'null'
          description: >-
            Yearly headcount change at the current employer, as a percentage.
            Replaces the growth filter with a timespan, which this search cannot
            narrow by.
        company_identifier:
          anyOf:
            - $ref: '#/components/schemas/TextFilterSchema'
            - type: 'null'
          description: >-
            Their current employer, as domains, LinkedIn company URLs or numeric
            LinkedIn ids, mixed freely.
        company_industry:
          anyOf:
            - $ref: '#/components/schemas/TextFilterSchema'
            - type: 'null'
          description: >-
            The current employer's industry, from the lead database's fixed
            industry list. Matched case-insensitively; a value outside the list
            is refused and the nearest entry is named.
        company_is_b2b:
          anyOf:
            - $ref: '#/components/schemas/FlagFilterSchema'
            - type: 'null'
          description: >-
            Whether their current employer sells to businesses, by the index's
            own reading.
        company_keyword:
          anyOf:
            - $ref: '#/components/schemas/TextFilterSchema'
            - type: 'null'
          description: >-
            Words in the categories and keywords filed on their current
            employer.
        company_location:
          anyOf:
            - $ref: '#/components/schemas/TextFilterSchema'
            - type: 'null'
          description: >-
            Retired: use company_countries. Still accepted, and its values are
            searched as company_countries (the country of the current employer's
            headquarters, spelled as the country list spells it), so older saved
            searches and callers keep working.
        company_name:
          anyOf:
            - $ref: '#/components/schemas/TextFilterSchema'
            - type: 'null'
          description: Their current employer's name, the brand it goes by.
        company_revenue:
          anyOf:
            - $ref: '#/components/schemas/RangeFilterSchema'
            - type: 'null'
          description: >-
            Their current employer's annual revenue, in US dollars. An estimate
            many companies lack, so it narrows hard.
        company_size_bands:
          anyOf:
            - $ref: '#/components/schemas/TextFilterSchema'
            - type: 'null'
          description: >-
            Their employer's headcount as a band, one of: Myself Only, 1-10
            employees, 11-50 employees, 51-200 employees, 201-500 employees,
            501-1000 employees, 1001-5000 employees, 5001-10,000 employees or
            10,001+ employees. Offered beside the numeric headcount because each
            reaches companies the other does not.
        company_states:
          anyOf:
            - $ref: '#/components/schemas/TextFilterSchema'
            - type: 'null'
          description: >-
            States or provinces the current employer's headquarters are in,
            written out in full.
        company_table:
          anyOf:
            - $ref: '#/components/schemas/CompanyTableFilterSchema'
            - type: 'null'
          description: >-
            Their current employer is one of the companies in a column of one of
            your tables, or is not. The column is read again every time the
            search counts, previews or runs, so the search follows the table as
            it changes. Its companies join company_identifier on the same side.
        company_type:
          anyOf:
            - $ref: '#/components/schemas/TextFilterSchema'
            - type: 'null'
          description: >-
            The current employer's type, one of: Privately Held, Public Company,
            Self-Employed, Self-Owned, Partnership, Nonprofit, Educational or
            Government Agency. Matched case-insensitively; any other spelling is
            refused rather than quietly matching nothing.
        company_website:
          anyOf:
            - $ref: '#/components/schemas/TextFilterSchema'
            - type: 'null'
          description: Their current employer's website domain, as stripe.com.
        connections:
          anyOf:
            - $ref: '#/components/schemas/RangeFilterSchema'
            - type: 'null'
          description: How many connections their professional profile has.
        countries:
          anyOf:
            - $ref: '#/components/schemas/TextFilterSchema'
            - type: 'null'
          description: >-
            Countries the person lives in, written out in full. Without
            profile_location, countries, states and cities narrow one another,
            so United States, California and San Francisco together ask for San
            Francisco.
        degree:
          anyOf:
            - $ref: '#/components/schemas/TextFilterSchema'
            - type: 'null'
          description: >-
            What they studied: the subject of a degree, as their profile writes
            it.
        departments:
          anyOf:
            - $ref: '#/components/schemas/TextFilterSchema'
            - type: 'null'
          description: >-
            Departments, one of: Administrative, C-Suite, Consulting, Customer
            Service, Design, Education, Engineering and Technical, Finance &
            Accounting, General Management, Human Resources, Legal, Marketing,
            Medical, Operations, Other, Product, Project Management, Real
            Estate, Research, Sales or Trades. The index stores these whole, so
            a value outside the list is refused rather than quietly matching
            nothing.
        first_name:
          anyOf:
            - $ref: '#/components/schemas/TextFilterSchema'
            - type: 'null'
          description: The person's first name, as their profile spells it.
        followers:
          anyOf:
            - $ref: '#/components/schemas/RangeFilterSchema'
            - type: 'null'
          description: How many followers their professional profile has.
        graduated:
          anyOf:
            - $ref: '#/components/schemas/RangeFilterSchema'
            - type: 'null'
          description: Graduation YEAR, as a range. The index stores a year, not a date.
        is_decision_maker:
          anyOf:
            - $ref: '#/components/schemas/FlagFilterSchema'
            - type: 'null'
          description: Whether they make buying decisions, by the index's own reading.
        is_working:
          anyOf:
            - $ref: '#/components/schemas/FlagFilterSchema'
            - type: 'null'
          description: Whether they are employed now, by the index's own reading.
        job_title:
          anyOf:
            - $ref: '#/components/schemas/TextFilterSchema'
            - type: 'null'
          description: >-
            The title of the job they hold now, matched as a phrase. Several
            values are alternatives, so send the ways a role is really spelled.
        keyword:
          anyOf:
            - $ref: '#/components/schemas/TextFilterSchema'
            - type: 'null'
          description: Words in their profile headline.
        language_proficiency:
          anyOf:
            - $ref: '#/components/schemas/TextFilterSchema'
            - type: 'null'
          description: >-
            How well they speak a language they list, beside the language
            itself.
        languages:
          anyOf:
            - $ref: '#/components/schemas/TextFilterSchema'
            - type: 'null'
          description: Languages they speak, written out in English, as in Spanish.
        last_name:
          anyOf:
            - $ref: '#/components/schemas/TextFilterSchema'
            - type: 'null'
          description: The person's last name, as their profile spells it.
        left_company_after:
          anyOf:
            - pattern: ^\d{4}-\d{2}-\d{2}$
              type: string
            - type: 'null'
          description: >-
            Only people who left a past role on or after this day, as
            YYYY-MM-DD.
          title: Left Company After
        left_company_before:
          anyOf:
            - pattern: ^\d{4}-\d{2}-\d{2}$
              type: string
            - type: 'null'
          description: >-
            Only people who left a past role on or before this day, as
            YYYY-MM-DD.
          title: Left Company Before
        location:
          anyOf:
            - $ref: '#/components/schemas/TextFilterSchema'
            - type: 'null'
          description: >-
            The older name for profile_location, read only when profile_location
            is not set. Prefer profile_location.
        management_levels:
          anyOf:
            - $ref: '#/components/schemas/TextFilterSchema'
            - type: 'null'
          description: >-
            Seniority, one of: C-Level, Director, Founder, Head, Intern,
            Manager, Owner, Partner, President/Vice President, Senior,
            Specialist or Vice President. Refused the same way as departments.
            President/Vice President is the rung the index fills; Vice President
            is kept but reaches almost nobody.
        past_company_cities:
          anyOf:
            - $ref: '#/components/schemas/TextFilterSchema'
            - type: 'null'
          description: >-
            Cities a previous employer's headquarters are in, for the same past
            role.
        past_company_countries:
          anyOf:
            - $ref: '#/components/schemas/TextFilterSchema'
            - type: 'null'
          description: >-
            Countries a previous employer's headquarters are in. Every past
            filter describes the same past role, so with past_job_title this
            asks for that title at an employer there.
        past_company_headcount:
          anyOf:
            - $ref: '#/components/schemas/RangeFilterSchema'
            - type: 'null'
          description: A previous employer's employee count.
        past_company_headcount_growth:
          anyOf:
            - $ref: '#/components/schemas/GrowthFilterSchema'
            - type: 'null'
          description: >-
            Headcount change at a previous employer over a window, as a
            percentage band.
        past_company_identifier:
          anyOf:
            - $ref: '#/components/schemas/TextFilterSchema'
            - type: 'null'
          description: >-
            A previous employer, as domains, LinkedIn company URLs or numeric
            LinkedIn ids.
        past_company_industry:
          anyOf:
            - $ref: '#/components/schemas/TextFilterSchema'
            - type: 'null'
          description: >-
            A previous employer's industry, from the same fixed list as
            company_industry. Combined with the current-employer filters, not
            offered as an alternative to them.
        past_company_keyword:
          anyOf:
            - $ref: '#/components/schemas/TextFilterSchema'
            - type: 'null'
          description: Words in the categories and keywords filed on a previous employer.
        past_company_location:
          anyOf:
            - $ref: '#/components/schemas/TextFilterSchema'
            - type: 'null'
          description: >-
            Retired: use past_company_countries. Still accepted, and its values
            are searched as past_company_countries.
        past_company_name:
          anyOf:
            - $ref: '#/components/schemas/TextFilterSchema'
            - type: 'null'
          description: >-
            A previous employer's name. Every past filter describes the same
            past role.
        past_company_revenue:
          anyOf:
            - $ref: '#/components/schemas/RangeFilterSchema'
            - type: 'null'
          description: A previous employer's annual revenue, in US dollars.
        past_company_states:
          anyOf:
            - $ref: '#/components/schemas/TextFilterSchema'
            - type: 'null'
          description: >-
            States or provinces a previous employer's headquarters are in,
            written out in full, for the same past role.
        past_company_table:
          anyOf:
            - $ref: '#/components/schemas/CompanyTableFilterSchema'
            - type: 'null'
          description: >-
            A previous employer is one of the companies in a column of one of
            your tables, or is not; read the same way as company_table. Its
            companies join past_company_identifier.
        past_company_type:
          anyOf:
            - $ref: '#/components/schemas/TextFilterSchema'
            - type: 'null'
          description: >-
            A previous employer's type, from the same eight values as
            company_type.
        past_company_website:
          anyOf:
            - $ref: '#/components/schemas/TextFilterSchema'
            - type: 'null'
          description: A previous employer's website domain, as stripe.com.
        past_departments:
          anyOf:
            - $ref: '#/components/schemas/TextFilterSchema'
            - type: 'null'
          description: >-
            Departments of a role they used to hold, from the same list as
            departments.
        past_job_title:
          anyOf:
            - $ref: '#/components/schemas/TextFilterSchema'
            - type: 'null'
          description: >-
            The title of a job they held before. Every past filter describes the
            same past role.
        past_management_levels:
          anyOf:
            - $ref: '#/components/schemas/TextFilterSchema'
            - type: 'null'
          description: >-
            Seniority of a role they used to hold, from the same list as
            management_levels, refused the same way.
        profile_location:
          anyOf:
            - $ref: '#/components/schemas/TextFilterSchema'
            - type: 'null'
          description: >-
            Where the person lives, whatever the location of their job, as a
            list of places that are alternatives to one another. A place is a
            country written out in full, a state or province, or a city; a comma
            narrows a city to its country, as in Paris, France. When this is
            set, countries, states and cities are read as more places in the
            same list rather than narrowing it.
        recommendations:
          anyOf:
            - $ref: '#/components/schemas/RangeFilterSchema'
            - type: 'null'
          description: How many recommendations their profile carries.
        school:
          anyOf:
            - $ref: '#/components/schemas/TextFilterSchema'
            - type: 'null'
          description: Schools they studied at.
        skills:
          anyOf:
            - $ref: '#/components/schemas/TextFilterSchema'
            - type: 'null'
          description: Skills listed on their profile.
        started_current_role_after:
          anyOf:
            - pattern: ^\d{4}-\d{2}-\d{2}$
              type: string
            - type: 'null'
          description: Only people who started the job they hold now on or after this day.
          title: Started Current Role After
        states:
          anyOf:
            - $ref: '#/components/schemas/TextFilterSchema'
            - type: 'null'
          description: States or provinces the person lives in, written out in full.
        total_experience_months:
          anyOf:
            - $ref: '#/components/schemas/RangeFilterSchema'
            - type: 'null'
          description: >-
            Whole career length in MONTHS. `years_of_experience` asks the same
            question in years; setting both narrows to the overlap.
        work_location:
          anyOf:
            - $ref: '#/components/schemas/TextFilterSchema'
            - type: 'null'
          description: >-
            Where the current job is based, matched as it is written on the
            profile. Values are sent as typed.
        years_in_current_company:
          anyOf:
            - $ref: '#/components/schemas/RangeFilterSchema'
            - type: 'null'
          description: How long they have held the job they have now, in YEARS.
        years_in_past_company:
          anyOf:
            - $ref: '#/components/schemas/RangeFilterSchema'
            - type: 'null'
          description: How long they stayed in a past role, in YEARS.
        years_of_experience:
          anyOf:
            - $ref: '#/components/schemas/RangeFilterSchema'
            - type: 'null'
          description: Whole career length, in YEARS.
      title: PeopleQuerySchema
      type: object
    PostEngagersQuerySchema:
      description: >-
        A LinkedIn watch on posts somebody names: who reacts to or comments on
        them.


        The posts are the watch: at least one is required.
      properties:
        company_size:
          anyOf:
            - $ref: '#/components/schemas/TextFilterSchema'
            - type: 'null'
          description: >-
            The employer's size bands to include or exclude, from:
            Self-employed, 1-10, 11-50, 51-200, 201-500, 501-1000, 1001-5000,
            5001-10000 or 10001+.
        company_types:
          description: >-
            The employer's types to include, from: Educational Institution,
            Government Agency, Nonprofit, Partnership, Privately Held, Public
            Company, Self-Employed or Sole Proprietorship. An employer whose
            type is unknown is kept.
          items:
            type: string
          maxItems: 8
          title: Company Types
          type: array
        engagement:
          description: >-
            Which people around each post to add: reacted (people who reacted),
            commented (people who commented), wrote_the_post (its author). Empty
            means the watch's own default: people who reacted or commented, or
            for a topic watch the people who wrote the posts.
          items:
            $ref: '#/components/schemas/WatchEngagement'
          maxItems: 3
          title: Engagement
          type: array
        exclude_company_pages:
          description: >-
            LinkedIn company pages whose people are never added, for example
            your own company and your customers.
          items:
            type: string
          maxItems: 100
          title: Exclude Company Pages
          type: array
        industries:
          anyOf:
            - $ref: '#/components/schemas/TextFilterSchema'
            - type: 'null'
          description: >-
            The employer's industries to include or exclude, from the watch
            industry list (an industry such as Software Development, or a broad
            category such as Technology and Media). Matched exactly; any other
            value is refused with the closest one.
        job_titles:
          anyOf:
            - $ref: '#/components/schemas/TextFilterSchema'
            - type: 'null'
          description: >-
            Free-text job titles: include adds people holding these titles
            beside the roles, exclude leaves out people holding them.
        locations:
          anyOf:
            - $ref: '#/components/schemas/TextFilterSchema'
            - type: 'null'
          description: >-
            Where the person is: countries, regions or cities to include or
            exclude, one place each, for example France, Île-de-France or Paris.
            Each place is checked before the watch starts.
        max_posts:
          anyOf:
            - maximum: 10000
              minimum: 1
              type: integer
            - type: 'null'
          description: The most posts the watch reads; empty for no limit.
          title: Max Posts
        min_engagement:
          anyOf:
            - maximum: 100000
              minimum: 0
              type: integer
            - type: 'null'
          description: >-
            Skip posts with fewer reactions and comments than this. Empty means
            5.
          title: Min Engagement
        only_both:
          anyOf:
            - type: boolean
            - type: 'null'
          description: >-
            Only people who both reacted and commented: the fewest, warmest
            people. Combines with wrote_the_post, and replaces reacted and
            commented.
          title: Only Both
        post_urls:
          description: >-
            Links to the LinkedIn posts to watch, up to 100. At least one is
            required; nothing else anchors this watch.
          items:
            maxLength: 2048
            type: string
          maxItems: 100
          title: Post Urls
          type: array
        post_window:
          anyOf:
            - $ref: '#/components/schemas/WatchPostWindow'
            - type: 'null'
          description: >-
            How recent a post must be: 24h, week or month. Empty means a week,
            or 24 hours for a topic watch.
        roles:
          description: >-
            Roles to add people in, from the watch role list (read it with GET
            /find-leads/watch-vocabulary/, grouped by department), for example
            CEO, Sales Director or Marketing Manager. A role matches the titles
            people in it hold. Any other value is refused; use job_titles for a
            title the list does not have. Empty adds every role.
          items:
            type: string
          maxItems: 100
          title: Roles
          type: array
      title: PostEngagersQuerySchema
      type: object
    ProfileEngagersQuerySchema:
      description: >-
        A LinkedIn watch on people somebody names: who engages with the posts
        they publish.
      properties:
        company_size:
          anyOf:
            - $ref: '#/components/schemas/TextFilterSchema'
            - type: 'null'
          description: >-
            The employer's size bands to include or exclude, from:
            Self-employed, 1-10, 11-50, 51-200, 201-500, 501-1000, 1001-5000,
            5001-10000 or 10001+.
        company_types:
          description: >-
            The employer's types to include, from: Educational Institution,
            Government Agency, Nonprofit, Partnership, Privately Held, Public
            Company, Self-Employed or Sole Proprietorship. An employer whose
            type is unknown is kept.
          items:
            type: string
          maxItems: 8
          title: Company Types
          type: array
        engagement:
          description: >-
            Which people around each post to add: reacted (people who reacted),
            commented (people who commented), wrote_the_post (its author). Empty
            means the watch's own default: people who reacted or commented, or
            for a topic watch the people who wrote the posts.
          items:
            $ref: '#/components/schemas/WatchEngagement'
          maxItems: 3
          title: Engagement
          type: array
        exclude_company_pages:
          description: >-
            LinkedIn company pages whose people are never added, for example
            your own company and your customers.
          items:
            type: string
          maxItems: 100
          title: Exclude Company Pages
          type: array
        industries:
          anyOf:
            - $ref: '#/components/schemas/TextFilterSchema'
            - type: 'null'
          description: >-
            The employer's industries to include or exclude, from the watch
            industry list (an industry such as Software Development, or a broad
            category such as Technology and Media). Matched exactly; any other
            value is refused with the closest one.
        job_titles:
          anyOf:
            - $ref: '#/components/schemas/TextFilterSchema'
            - type: 'null'
          description: >-
            Free-text job titles: include adds people holding these titles
            beside the roles, exclude leaves out people holding them.
        locations:
          anyOf:
            - $ref: '#/components/schemas/TextFilterSchema'
            - type: 'null'
          description: >-
            Where the person is: countries, regions or cities to include or
            exclude, one place each, for example France, Île-de-France or Paris.
            Each place is checked before the watch starts.
        max_posts:
          anyOf:
            - maximum: 10000
              minimum: 1
              type: integer
            - type: 'null'
          description: The most posts the watch reads; empty for no limit.
          title: Max Posts
        min_engagement:
          anyOf:
            - maximum: 100000
              minimum: 0
              type: integer
            - type: 'null'
          description: >-
            Skip posts with fewer reactions and comments than this. Empty means
            5.
          title: Min Engagement
        only_both:
          anyOf:
            - type: boolean
            - type: 'null'
          description: >-
            Only people who both reacted and commented: the fewest, warmest
            people. Combines with wrote_the_post, and replaces reacted and
            commented.
          title: Only Both
        post_window:
          anyOf:
            - $ref: '#/components/schemas/WatchPostWindow'
            - type: 'null'
          description: >-
            How recent a post must be: 24h, week or month. Empty means a week,
            or 24 hours for a topic watch.
        profile_urls:
          description: >-
            Links to the LinkedIn profiles whose posts to watch (thought
            leaders, competitors' founders, your own team), up to 100. At least
            one is required.
          items:
            maxLength: 2048
            type: string
          maxItems: 100
          title: Profile Urls
          type: array
        roles:
          description: >-
            Roles to add people in, from the watch role list (read it with GET
            /find-leads/watch-vocabulary/, grouped by department), for example
            CEO, Sales Director or Marketing Manager. A role matches the titles
            people in it hold. Any other value is refused; use job_titles for a
            title the list does not have. Empty adds every role.
          items:
            type: string
          maxItems: 100
          title: Roles
          type: array
      title: ProfileEngagersQuerySchema
      type: object
    LeadRecordType:
      description: |-
        Which dataset a search runs against, and so which provider serves it.

        Values are persisted in String(16) columns, so every member must stay
        within 16 characters.
      enum:
        - people
        - companies
        - signal_companies
        - signal_people
        - lookalikes
        - local_businesses
        - hiring_companies
        - backlinks
        - post_engagers
        - profile_engagers
        - page_engagers
        - topic_mentions
        - event_attendees
        - search_results
      title: LeadRecordType
      type: string
    SearchResultsQuerySchema:
      description: >-
        Google searches to run, each landing the results Google shows for it.


        Write each search the way you would type it into Google: operators

        (site:, intitle:, quoted phrases) work and cost nothing extra. One row
        is

        one result of one search, with the search that found it and its rank.
      properties:
        country:
          default: US
          description: >-
            The country the searches run from, as a two-letter ISO code (US, GB,
            DE). Google ranks results for searchers there. US by default.
          maxLength: 2
          minLength: 2
          title: Country
          type: string
        results_per_search:
          default: 50
          description: >-
            The most results each search adds. A search stops there or where
            Google runs out of results, whichever comes first. 50 by default.
          maximum: 300
          minimum: 10
          title: Results Per Search
          type: integer
        searches:
          description: >-
            The searches to run, one per entry, exactly as you would type them
            into Google. Blank entries and repeats are dropped. At most 100
            searches.
          items:
            maxLength: 500
            type: string
          maxItems: 100
          title: Searches
          type: array
      title: SearchResultsQuerySchema
      type: object
    SignalCompaniesQuerySchema:
      description: Filters for a company buying-signal search.
      properties:
        company_domains:
          description: Only signals from these company domains. Up to 100.
          items:
            type: string
          maxItems: 100
          title: Company Domains
          type: array
        content_competitors_mentioned:
          anyOf:
            - $ref: '#/components/schemas/ContentFilterSchema'
            - type: 'null'
          description: >-
            Competitors named in the text a signal was drawn from. Exact company
            names.
        content_initiatives:
          anyOf:
            - $ref: '#/components/schemas/ContentFilterSchema'
            - type: 'null'
          description: Plans and projects named in the text a signal was drawn from.
        content_keywords:
          anyOf:
            - $ref: '#/components/schemas/ContentFilterSchema'
            - type: 'null'
          description: >-
            Match the words in the text a signal was drawn from. Only the social
            and podcast signal types carry text, and the data source refuses a
            content filter beside any other type.
        content_pain_points:
          anyOf:
            - $ref: '#/components/schemas/ContentFilterSchema'
            - type: 'null'
          description: Problems named in the text a signal was drawn from.
        content_tech_mentioned:
          anyOf:
            - $ref: '#/components/schemas/ContentFilterSchema'
            - type: 'null'
          description: >-
            Technologies named in the text a signal was drawn from. Exact
            product names: Salesforce matches, Sales does not.
        detected_after:
          anyOf:
            - pattern: ^\d{4}-\d{2}-\d{2}$
              type: string
            - type: 'null'
          description: Only signals detected on or after this day, as YYYY-MM-DD.
          title: Detected After
        detected_before:
          anyOf:
            - pattern: ^\d{4}-\d{2}-\d{2}$
              type: string
            - type: 'null'
          description: Only signals detected on or before this day, as YYYY-MM-DD.
          title: Detected Before
        employee_count:
          anyOf:
            - $ref: '#/components/schemas/RangeFilterSchema'
            - type: 'null'
          description: The company's employee count.
        industries:
          description: >-
            Only signals from companies in these industries. Up to 25, each
            matched as a case-insensitive substring of the data source's own
            industry labels; a value matching none of them is refused upstream.
          items:
            type: string
          maxItems: 25
          title: Industries
          type: array
        revenue:
          anyOf:
            - $ref: '#/components/schemas/RangeFilterSchema'
            - type: 'null'
          description: >-
            Annual revenue in US dollars. The data source filters by named
            revenue band, so each bound is mapped to the band that contains it.
        signal_subtypes:
          description: >-
            At most one narrower kind within the chosen signal, where it offers
            any. Optional: a signal with no subtypes sends none.
          items:
            type: string
          maxItems: 1
          title: Signal Subtypes
          type: array
        signal_types:
          description: >-
            Which buying signal to look for: exactly one. It is required, and no
            other filter can anchor a signals search on its own.
          items:
            type: string
          maxItems: 1
          title: Signal Types
          type: array
        signals_per_entity:
          anyOf:
            - maximum: 100
              minimum: 1
              type: integer
            - type: 'null'
          description: >-
            How many of each company's or person's most recent matching signals
            to attach to its row; 25 when unset. Each company or person is one
            row however many signals it has, so this changes neither how many
            rows a search adds nor what they cost, and `signal_count` still
            gives the total.
          title: Signals Per Entity
      title: SignalCompaniesQuerySchema
      type: object
    SignalPeopleQuerySchema:
      description: Filters for a person activity-signal search.
      properties:
        company_domains:
          description: Only signals from these company domains. Up to 100.
          items:
            type: string
          maxItems: 100
          title: Company Domains
          type: array
        content_competitors_mentioned:
          anyOf:
            - $ref: '#/components/schemas/ContentFilterSchema'
            - type: 'null'
          description: >-
            Competitors named in the text a signal was drawn from. Exact company
            names.
        content_initiatives:
          anyOf:
            - $ref: '#/components/schemas/ContentFilterSchema'
            - type: 'null'
          description: Plans and projects named in the text a signal was drawn from.
        content_keywords:
          anyOf:
            - $ref: '#/components/schemas/ContentFilterSchema'
            - type: 'null'
          description: >-
            Match the words in the text a signal was drawn from. Only the social
            and podcast signal types carry text, and the data source refuses a
            content filter beside any other type.
        content_pain_points:
          anyOf:
            - $ref: '#/components/schemas/ContentFilterSchema'
            - type: 'null'
          description: Problems named in the text a signal was drawn from.
        content_tech_mentioned:
          anyOf:
            - $ref: '#/components/schemas/ContentFilterSchema'
            - type: 'null'
          description: >-
            Technologies named in the text a signal was drawn from. Exact
            product names: Salesforce matches, Sales does not.
        department:
          description: >-
            Only people in these departments, from the data source's own list of
            eighteen. Any other value is refused.
          items:
            type: string
          maxItems: 20
          title: Department
          type: array
        detected_after:
          anyOf:
            - pattern: ^\d{4}-\d{2}-\d{2}$
              type: string
            - type: 'null'
          description: Only signals detected on or after this day, as YYYY-MM-DD.
          title: Detected After
        detected_before:
          anyOf:
            - pattern: ^\d{4}-\d{2}-\d{2}$
              type: string
            - type: 'null'
          description: Only signals detected on or before this day, as YYYY-MM-DD.
          title: Detected Before
        employee_count:
          anyOf:
            - $ref: '#/components/schemas/RangeFilterSchema'
            - type: 'null'
          description: The company's employee count.
        industries:
          description: >-
            Only signals from companies in these industries. Up to 25, each
            matched as a case-insensitive substring of the data source's own
            industry labels; a value matching none of them is refused upstream.
          items:
            type: string
          maxItems: 25
          title: Industries
          type: array
        job_title:
          anyOf:
            - maxLength: 255
              type: string
            - type: 'null'
          description: Only people whose job title matches this text.
          title: Job Title
        revenue:
          anyOf:
            - $ref: '#/components/schemas/RangeFilterSchema'
            - type: 'null'
          description: >-
            Annual revenue in US dollars. The data source filters by named
            revenue band, so each bound is mapped to the band that contains it.
        seniority:
          description: Only people at these seniority levels.
          items:
            enum:
              - Staff
              - Manager
              - Director
              - Vp
              - Cxo
            type: string
          maxItems: 5
          title: Seniority
          type: array
        signal_subtypes:
          description: >-
            At most one narrower kind within the chosen signal, where it offers
            any. Optional: a signal with no subtypes sends none.
          items:
            type: string
          maxItems: 1
          title: Signal Subtypes
          type: array
        signal_types:
          description: >-
            Which buying signal to look for: exactly one. It is required, and no
            other filter can anchor a signals search on its own.
          items:
            type: string
          maxItems: 1
          title: Signal Types
          type: array
        signals_per_entity:
          anyOf:
            - maximum: 100
              minimum: 1
              type: integer
            - type: 'null'
          description: >-
            How many of each company's or person's most recent matching signals
            to attach to its row; 25 when unset. Each company or person is one
            row however many signals it has, so this changes neither how many
            rows a search adds nor what they cost, and `signal_count` still
            gives the total.
          title: Signals Per Entity
      title: SignalPeopleQuerySchema
      type: object
    TopicMentionsQuerySchema:
      description: >-
        A LinkedIn watch on keywords: who posts about them, or engages with
        posts that do.
      properties:
        company_size:
          anyOf:
            - $ref: '#/components/schemas/TextFilterSchema'
            - type: 'null'
          description: >-
            The employer's size bands to include or exclude, from:
            Self-employed, 1-10, 11-50, 51-200, 201-500, 501-1000, 1001-5000,
            5001-10000 or 10001+.
        company_types:
          description: >-
            The employer's types to include, from: Educational Institution,
            Government Agency, Nonprofit, Partnership, Privately Held, Public
            Company, Self-Employed or Sole Proprietorship. An employer whose
            type is unknown is kept.
          items:
            type: string
          maxItems: 8
          title: Company Types
          type: array
        engagement:
          description: >-
            Which people around each post to add: reacted (people who reacted),
            commented (people who commented), wrote_the_post (its author). Empty
            means the watch's own default: people who reacted or commented, or
            for a topic watch the people who wrote the posts.
          items:
            $ref: '#/components/schemas/WatchEngagement'
          maxItems: 3
          title: Engagement
          type: array
        exclude_company_pages:
          description: >-
            LinkedIn company pages whose people are never added, for example
            your own company and your customers.
          items:
            type: string
          maxItems: 100
          title: Exclude Company Pages
          type: array
        industries:
          anyOf:
            - $ref: '#/components/schemas/TextFilterSchema'
            - type: 'null'
          description: >-
            The employer's industries to include or exclude, from the watch
            industry list (an industry such as Software Development, or a broad
            category such as Technology and Media). Matched exactly; any other
            value is refused with the closest one.
        job_titles:
          anyOf:
            - $ref: '#/components/schemas/TextFilterSchema'
            - type: 'null'
          description: >-
            Free-text job titles: include adds people holding these titles
            beside the roles, exclude leaves out people holding them.
        keywords:
          anyOf:
            - $ref: '#/components/schemas/TextFilterSchema'
            - type: 'null'
          description: >-
            Words a post must mention to be watched (include, any of them) and
            words that rule a post out (exclude). At least one include keyword
            is required.
        locations:
          anyOf:
            - $ref: '#/components/schemas/TextFilterSchema'
            - type: 'null'
          description: >-
            Where the person is: countries, regions or cities to include or
            exclude, one place each, for example France, Île-de-France or Paris.
            Each place is checked before the watch starts.
        max_posts:
          anyOf:
            - maximum: 10000
              minimum: 1
              type: integer
            - type: 'null'
          description: The most posts the watch reads; empty for no limit.
          title: Max Posts
        min_engagement:
          anyOf:
            - maximum: 100000
              minimum: 0
              type: integer
            - type: 'null'
          description: >-
            Skip posts with fewer reactions and comments than this. Empty means
            5.
          title: Min Engagement
        only_both:
          anyOf:
            - type: boolean
            - type: 'null'
          description: >-
            Only people who both reacted and commented: the fewest, warmest
            people. Combines with wrote_the_post, and replaces reacted and
            commented.
          title: Only Both
        post_window:
          anyOf:
            - $ref: '#/components/schemas/WatchPostWindow'
            - type: 'null'
          description: >-
            How recent a post must be: 24h, week or month. Empty means a week,
            or 24 hours for a topic watch.
        roles:
          description: >-
            Roles to add people in, from the watch role list (read it with GET
            /find-leads/watch-vocabulary/, grouped by department), for example
            CEO, Sales Director or Marketing Manager. A role matches the titles
            people in it hold. Any other value is refused; use job_titles for a
            title the list does not have. Empty adds every role.
          items:
            type: string
          maxItems: 100
          title: Roles
          type: array
      title: TopicMentionsQuerySchema
      type: object
    LeadColumnSchema:
      description: >-
        One column of the table a search would create, and whether a preview
        shows it.
      properties:
        kind:
          $ref: '#/components/schemas/LeadColumnKind'
          description: >-
            How to show the values: text, number, url, date, boolean or list. A
            hint for drawing the header, not a promise about every cell.
        label:
          description: The column's name, as the created table will call it.
          title: Label
          type: string
        revealed:
          description: >-
            Whether a preview carries this column's values. A column that is not
            revealed has no value in a preview row at all, rather than a hidden
            one, so there is nothing to blur on the page.
          title: Revealed
          type: boolean
      required:
        - label
        - kind
        - revealed
      title: LeadColumnSchema
      type: object
    UnprocessableEntityIssue:
      properties:
        input:
          anyOf:
            - type: string
            - type: integer
            - type: number
            - type: boolean
            - items: {}
              type: array
            - additionalProperties: true
              type: object
          description: The user's input that caused the error.
          title: Input
        loc:
          description: >-
            The location of the error. Always contains 1 or 2 elements. The
            first element is the type of location (e.g. 'body', 'query', 'path',
            'header'). The second element is the name of the field that caused
            the error. If the error is not related to a specific field, the
            second element is not present.
          items:
            type: string
          title: Loc
          type: array
        msg:
          description: The message of the error. The error message to show to the user.
          title: Msg
          type: string
        type:
          description: >-
            The type of the error. Useful for frontend code to handle different
            types of errors.
          title: Type
          type: string
      required:
        - loc
        - msg
        - type
        - input
      title: UnprocessableEntityIssue
      type: object
    ProviderFilterErrorSchema:
      description: One provider complaint about the query, pinned to the filter it blames.
      properties:
        filter:
          anyOf:
            - type: string
            - type: 'null'
          description: >-
            Our name for the filter the provider blamed, so a client can pin
            this complaint to the input that caused it. Null when the complaint
            names no filter we recognise, e.g. a whole-query refusal.
          title: Filter
        message:
          description: What the provider said, safe to show as-is.
          title: Message
          type: string
      required:
        - filter
        - message
      title: ProviderFilterErrorSchema
      type: object
    BacklinkValuesFilterSchema:
      description: A text filter over backlink rows, capped at eight values each way.
      properties:
        exclude:
          items:
            type: string
          maxItems: 8
          title: Exclude
          type: array
        include:
          items:
            type: string
          maxItems: 8
          title: Include
          type: array
      title: BacklinkValuesFilterSchema
      type: object
    RangeFilterSchema:
      description: An inclusive numeric range; either bound may be omitted.
      properties:
        gte:
          anyOf:
            - minimum: 0
              type: integer
            - type: 'null'
          title: Gte
        lte:
          anyOf:
            - minimum: 0
              type: integer
            - type: 'null'
          title: Lte
      title: RangeFilterSchema
      type: object
    FlagFilterSchema:
      description: >-
        A yes/no attribute. Omit the whole object, or its value, for "don't
        care".


        An object around a single boolean, rather than a bare optional boolean,

        because the client keeps a draft of every filter as the user moves
        between

        modules, and a toggle that has been set to "no" has to survive that trip

        distinguishably from one that was never touched.
      properties:
        value:
          anyOf:
            - type: boolean
            - type: 'null'
          title: Value
      title: FlagFilterSchema
      type: object
    BacklinkLinkTypesFilterSchema:
      description: Which kinds of link to include or exclude, from the index's own six.
      properties:
        exclude:
          items:
            enum:
              - anchor
              - image
              - meta
              - canonical
              - alternate
              - redirect
            type: string
          maxItems: 8
          title: Exclude
          type: array
        include:
          items:
            enum:
              - anchor
              - image
              - meta
              - canonical
              - alternate
              - redirect
            type: string
          maxItems: 8
          title: Include
          type: array
      title: BacklinkLinkTypesFilterSchema
      type: object
    BacklinkMode:
      description: >-
        What one row of a backlink search is.


        ``one_per_domain`` is the default and the lead-shaped answer: a table of

        referring sites is a table of companies, each with a domain to enrich.

        ``as_is`` is every backlink, several per site; ``one_per_anchor`` keeps

        one per anchor text, which is a content question rather than a lead one.

        The vendor's own default is ``as_is``; ours is not, because a table
        where

        the same site appears forty times is not a table of leads.
      enum:
        - as_is
        - one_per_domain
        - one_per_anchor
      title: BacklinkMode
      type: string
    BacklinkGroupField:
      description: |-
        The attribute a backlink search may keep a fixed number of rows per.

        The vendor's ``custom_mode`` takes a RESULT field name and a count, and
        overrides ``mode`` when set: "two backlinks per referring domain" is the
        shape ``one_per_domain`` cannot express. Only the first two values were
        probed live (2026-09-20: ``domain_from`` and ``anchor`` both answered,
        ``domain`` was refused by name); the rest are the other string fields of
        a row, offered because the vendor names no vocabulary and refuses a
        stranger with a 40501 the transport pins to this control.
      enum:
        - domain_from
        - anchor
        - url_from
        - tld_from
        - domain_from_country
        - page_from_language
        - item_type
        - semantic_location
        - url_to
        - domain_to
      title: BacklinkGroupField
      type: string
    RankScale:
      description: >-
        The scale the three rank figures are reported and filtered on.


        ``one_hundred`` is our default and not the vendor's (``one_thousand``):

        a rank out of 100 is what every other backlink tool prints, and a filter

        typed as "domain rank 30 and up" means 30 out of 100 to whoever types
        it.

        The scale applies to the filters as well as the rows, so a stored search

        keeps the scale it was written on.
      enum:
        - one_hundred
        - one_thousand
      title: RankScale
      type: string
    BacklinkSortKey:
      description: |-
        The attribute a backlink search orders its rows by, in our words.

        Every member is a whole-number or a date on the row: the ones an order
        means something for. The transport maps each to the vendor's field and
        sends it as ``order_by`` with the query's direction, by backlink rank
        descending unless the query says otherwise, so the rows an import keeps
        are the top of an order the reader chose (``ROW_ORDER_BY_RECORD_TYPE``).
      enum:
        - backlink_rank
        - domain_rank
        - page_rank
        - spam_score
        - first_seen
        - last_seen
        - prev_seen
        - links_count
        - group_count
        - page_external_links
        - page_internal_links
        - page_size_bytes
        - page_keywords_top_3
        - page_keywords_top_10
        - page_keywords_top_100
        - linked_spam_score
      title: BacklinkSortKey
      type: string
    BacklinkStatus:
      description: 'Which backlinks a search returns and counts: still live, lost, or both.'
      enum:
        - all
        - live
        - lost
      title: BacklinkStatus
      type: string
    TextFilterSchema:
      description: Include and/or exclude a set of values for one text attribute.
      properties:
        exclude:
          items:
            type: string
          maxItems: 200
          title: Exclude
          type: array
        include:
          items:
            type: string
          maxItems: 200
          title: Include
          type: array
      title: TextFilterSchema
      type: object
    TeamHeadcountFilterSchema:
      description: How many of a company's employees sit in one team, as a min/max band.
      properties:
        gte:
          anyOf:
            - minimum: 0
              type: integer
            - type: 'null'
          title: Gte
        lte:
          anyOf:
            - minimum: 0
              type: integer
            - type: 'null'
          title: Lte
        team:
          default: ''
          description: >-
            The department or seniority to count, spelled the way the people
            search spells it: Sales, Engineering and Technical, Director.
          maxLength: 200
          title: Team
          type: string
      title: TeamHeadcountFilterSchema
      type: object
    ExecutiveChangeWindow:
      description: >-
        How recently an executive joined or left a company, as a company search
        asks it.


        No week: the index dates a leadership change to the month.
      enum:
        - past_month
        - past_quarter
        - past_year
      title: ExecutiveChangeWindow
      type: string
    GrowthFilterSchema:
      description: Headcount growth over a chosen window, as a min/max percentage band.
      properties:
        max_percent:
          anyOf:
            - maximum: 10000
              minimum: -100
              type: integer
            - type: 'null'
          title: Max Percent
        min_percent:
          anyOf:
            - maximum: 10000
              minimum: -100
              type: integer
            - type: 'null'
          title: Min Percent
        timespan:
          $ref: '#/components/schemas/GrowthTimespan'
          default: 12months
      title: GrowthFilterSchema
      type: object
    CompanyPostWindow:
      description: >-
        How recently a company posted on the professional network, as a company
        search asks it.
      enum:
        - past_week
        - past_month
        - past_quarter
        - past_year
      title: CompanyPostWindow
      type: string
    JobTitleFilterSchema:
      description: A phrase filter over job postings, capped at ten phrases each way.
      properties:
        exclude:
          items:
            type: string
          maxItems: 10
          title: Exclude
          type: array
        include:
          items:
            type: string
          maxItems: 10
          title: Include
          type: array
      title: JobTitleFilterSchema
      type: object
    GeoFilterSchema:
      description: |-
        A place to search around: an address, or a point, plus a radius.

        Send whichever you have. An address is resolved to a point server-side,
        against Google Maps data, which any surface displaying the results must
        credit to "Google Maps". An address that resolves to nothing is refused
        rather than dropped, so a search is never quietly run over the whole
        world.
      properties:
        address:
          anyOf:
            - maxLength: 250
              type: string
            - type: 'null'
          description: A street address, neighbourhood, postcode or city.
          title: Address
        latitude:
          anyOf:
            - maximum: 90
              minimum: -90
              type: number
            - type: 'null'
          title: Latitude
        longitude:
          anyOf:
            - maximum: 180
              minimum: -180
              type: number
            - type: 'null'
          title: Longitude
        radius_km:
          anyOf:
            - maximum: 500
              minimum: 1
              type: number
            - type: 'null'
          description: >-
            How far around the point to search, in whole KILOMETRES, at least 1.
            The data source takes an integer radius (its minimum is 1) and a
            fraction is rounded to the nearest kilometre.
          title: Radius Km
      title: GeoFilterSchema
      type: object
    DecimalRangeFilterSchema:
      description: |-
        An inclusive fractional range; either bound may be omitted.

        Separate from ``RangeFilterSchema`` rather than loosening it: the whole-
        number filters here count people, employees and reviews, and letting a
        fraction into one of those would generate a client type that says a
        headcount can be 4.5.
      properties:
        gte:
          anyOf:
            - minimum: 0
              type: number
            - type: 'null'
          title: Gte
        lte:
          anyOf:
            - minimum: 0
              type: number
            - type: 'null'
          title: Lte
      title: DecimalRangeFilterSchema
      type: object
    LookalikeMatch:
      description: >-
        How close a similarity search has to be: one choice that tunes two
        knobs.


        The two knobs used to be typed as numbers, a ranking weight from -1 to 1

        and a score floor from 0 to 1, and both read like every other filter on

        the page while meaning something no other filter means. Three named

        levels say what a person actually wants; ``LOOKALIKE_TUNINGS`` says what

        each one sends and keeps.
      enum:
        - broad
        - balanced
        - exact
      title: LookalikeMatch
      type: string
    WatchEngagement:
      description: Which people around a post a post-based watch adds.
      enum:
        - reacted
        - commented
        - wrote_the_post
      title: WatchEngagement
      type: string
    WatchPostWindow:
      description: How recent a post must be for a watch to read the people around it.
      enum:
        - 24h
        - week
        - month
      title: WatchPostWindow
      type: string
    CompanyTableFilterSchema:
      description: The companies a search follows from a table, and the ones it leaves out.
      properties:
        exclude:
          anyOf:
            - $ref: '#/components/schemas/CompanyTableLinkSchema'
            - type: 'null'
          description: Leave out people whose employer is in this column.
        include:
          anyOf:
            - $ref: '#/components/schemas/CompanyTableLinkSchema'
            - type: 'null'
          description: Only people whose employer is in this column.
      title: CompanyTableFilterSchema
      type: object
    ContentFilterSchema:
      description: >-
        A text filter over the words a signal was drawn from, capped at 20 terms
        each way.
      properties:
        exclude:
          items:
            type: string
          maxItems: 20
          title: Exclude
          type: array
        include:
          items:
            type: string
          maxItems: 20
          title: Include
          type: array
      title: ContentFilterSchema
      type: object
    LeadColumnKind:
      description: >-
        How a column's values are shown: a "url" as a link, a "date" as a date,
        a "list" as its items.


        A display hint, not the type the column stores.
      enum:
        - text
        - number
        - url
        - date
        - boolean
        - list
      title: LeadColumnKind
      type: string
    GrowthTimespan:
      description: |-
        The window a headcount-growth percentage is measured over.

        The company index measures the last month, quarter and year (added
        2026-09-16 for the first two); six and twenty-four months were the lead
        database's windows and are refused by name on a company search.
      enum:
        - 1month
        - 3months
        - 6months
        - 12months
        - 24months
      title: GrowthTimespan
      type: string
    CompanyTableLinkSchema:
      description: One column of one of your tables, read as a list of companies.
      properties:
        column_id:
          description: >-
            The column with each company's website, web address, LinkedIn
            company page or numeric LinkedIn id. A column of company names
            matches no one.
          format: uuid
          title: Column Id
          type: string
        table_id:
          description: The table holding the companies.
          format: uuid
          title: Table Id
          type: string
        view_id:
          anyOf:
            - format: uuid
              type: string
            - type: 'null'
          description: >-
            A saved view of that table: only the rows its filter keeps are read.
            Omit it to read every row.
          title: View Id
      required:
        - table_id
        - column_id
      title: CompanyTableLinkSchema
      type: object
  securitySchemes:
    APIKeyHeader:
      in: header
      name: X-API-Key
      type: apiKey
    HTTPBearer:
      scheme: bearer
      type: http

````

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