> ## 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.

# Suggest a name for a lead search's table

> Name the table a lead search would fill after the search itself: the first value of each of its most telling filters, joined with commas in the order the search is said out loud ('C-suite, Software Development, North America, 50-200 employees'). A search with nothing to name it by is called after its rows and today's date in the viewer's time zone ('People, Sep 25, 2026'). Free, runs no search and changes nothing. A table created from a search without a name takes this one, dated in UTC.



## OpenAPI

````yaml /openapi.json post /find-leads/suggest-table-name/
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/suggest-table-name/:
    post:
      tags:
        - find-leads
      summary: Suggest a name for a lead search's table
      description: >-
        Name the table a lead search would fill after the search itself: the
        first value of each of its most telling filters, joined with commas in
        the order the search is said out loud ('C-suite, Software Development,
        North America, 50-200 employees'). A search with nothing to name it by
        is called after its rows and today's date in the viewer's time zone
        ('People, Sep 25, 2026'). Free, runs no search and changes nothing. A
        table created from a search without a name takes this one, dated in UTC.
      operationId: suggest_lead_table_name
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/LeadTableNameRequestSchema'
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SuggestedLeadTableNameSchema'
          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/ServerErrorResponse'
          description: Bad gateway error.
        '503':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ServerErrorResponse'
          description: Service unavailable.
      security:
        - APIKeyHeader: []
        - HTTPBearer: []
components:
  schemas:
    LeadTableNameRequestSchema:
      description: >-
        A search to name a table after, with the builder's picks and the
        viewer's zone.


        The builder offers seniority, job function and region as picks, and a

        search sends each one as what it stands for: job titles, or a region's

        countries. The first of those names a search badly ("Founder" for a

        C-suite search, "United States" for North America), so the picks travel

        here by name instead, and the name reads them.
      properties:
        backlinks:
          anyOf:
            - $ref: '#/components/schemas/BacklinksQuerySchema'
            - type: 'null'
        companies:
          anyOf:
            - $ref: '#/components/schemas/CompanyQuerySchema'
            - type: 'null'
        hiring_companies:
          anyOf:
            - $ref: '#/components/schemas/HiringCompaniesQuerySchema'
            - type: 'null'
        job_functions:
          description: >-
            The job functions a people search was built from ('Sales',
            'Engineering'), on the same terms as `seniority`.
          items:
            maxLength: 255
            minLength: 1
            type: string
          maxItems: 200
          title: Job Functions
          type: array
        local_businesses:
          anyOf:
            - $ref: '#/components/schemas/LocalBusinessQuerySchema'
            - type: 'null'
        lookalikes:
          anyOf:
            - $ref: '#/components/schemas/LookalikeQuerySchema'
            - type: 'null'
        people:
          anyOf:
            - $ref: '#/components/schemas/PeopleQuerySchema'
            - type: 'null'
        record_type:
          $ref: '#/components/schemas/LeadRecordType'
        regions:
          description: >-
            The regions a people or company search's places were picked as, as
            the builder names them ('NAM (North America)'). The first names the
            place in place of the countries it stands for. Ignored on every
            other search.
          items:
            maxLength: 255
            minLength: 1
            type: string
          maxItems: 200
          title: Regions
          type: array
        seniority:
          description: >-
            The seniority levels a people search was built from, as the builder
            names them ('C-suite', 'VP'). Leave the job titles they stand for
            out of `people.job_title`, or the first of those titles names the
            table too. Ignored on every other search.
          items:
            maxLength: 255
            minLength: 1
            type: string
          maxItems: 200
          title: Seniority
          type: array
        signal_companies:
          anyOf:
            - $ref: '#/components/schemas/SignalCompaniesQuerySchema'
            - type: 'null'
        signal_people:
          anyOf:
            - $ref: '#/components/schemas/SignalPeopleQuerySchema'
            - type: 'null'
        timezone:
          default: UTC
          description: >-
            The viewer's IANA time zone, such as Europe/Berlin. A search named
            by nothing else is dated with today's date there.
          maxLength: 64
          minLength: 1
          title: Timezone
          type: string
      required:
        - record_type
      title: LeadTableNameRequestSchema
      type: object
    SuggestedLeadTableNameSchema:
      description: The name a table would take from the search that fills it.
      properties:
        suggested_name:
          description: >-
            The search's most telling filters, joined with commas, or what its
            rows are and today's date when it has none.
          title: Suggested Name
          type: string
      required:
        - suggested_name
      title: SuggestedLeadTableNameSchema
      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
    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'
        enriched_keywords:
          anyOf:
            - $ref: '#/components/schemas/TextFilterSchema'
            - type: 'null'
        exclude_expired_domains:
          anyOf:
            - $ref: '#/components/schemas/FlagFilterSchema'
            - type: 'null'
        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'
        founded:
          anyOf:
            - $ref: '#/components/schemas/RangeFilterSchema'
            - type: 'null'
        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'
        has_api_docs:
          anyOf:
            - $ref: '#/components/schemas/FlagFilterSchema'
            - type: 'null'
        has_demo:
          anyOf:
            - $ref: '#/components/schemas/FlagFilterSchema'
            - type: 'null'
        has_free_trial:
          anyOf:
            - $ref: '#/components/schemas/FlagFilterSchema'
            - type: 'null'
        has_mobile_apps:
          anyOf:
            - $ref: '#/components/schemas/FlagFilterSchema'
            - type: 'null'
        has_online_reviews:
          anyOf:
            - $ref: '#/components/schemas/FlagFilterSchema'
            - type: 'null'
        has_pricing_page:
          anyOf:
            - $ref: '#/components/schemas/FlagFilterSchema'
            - type: 'null'
        has_website:
          anyOf:
            - $ref: '#/components/schemas/FlagFilterSchema'
            - type: 'null'
        headcount:
          anyOf:
            - $ref: '#/components/schemas/RangeFilterSchema'
            - type: 'null'
        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'
        is_downloadable:
          anyOf:
            - $ref: '#/components/schemas/FlagFilterSchema'
            - type: 'null'
        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'
        last_funding_after:
          anyOf:
            - pattern: ^\d{4}-\d{2}-\d{2}$
              type: string
            - type: 'null'
          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'
          title: Last Funding Before
        linkedin_id:
          anyOf:
            - $ref: '#/components/schemas/TextFilterSchema'
            - type: 'null'
        linkedin_slug:
          anyOf:
            - $ref: '#/components/schemas/TextFilterSchema'
            - type: 'null'
        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'
        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'
        post_reactions:
          anyOf:
            - $ref: '#/components/schemas/RangeFilterSchema'
            - type: 'null'
        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'
        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
    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
    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'
        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'
        company_headcount:
          anyOf:
            - $ref: '#/components/schemas/RangeFilterSchema'
            - type: 'null'
        company_headcount_growth:
          anyOf:
            - $ref: '#/components/schemas/GrowthFilterSchema'
            - type: 'null'
        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'
        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'
        company_keyword:
          anyOf:
            - $ref: '#/components/schemas/TextFilterSchema'
            - type: 'null'
        company_location:
          anyOf:
            - $ref: '#/components/schemas/TextFilterSchema'
            - type: 'null'
          description: >-
            Countries the current employer's headquarters are in, not where the
            person lives, written out in full as United States. Matched exactly,
            capitals included, like company_countries: a code, a state or a city
            matches nobody.
        company_name:
          anyOf:
            - $ref: '#/components/schemas/TextFilterSchema'
            - type: 'null'
        company_revenue:
          anyOf:
            - $ref: '#/components/schemas/RangeFilterSchema'
            - type: 'null'
        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_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'
        connections:
          anyOf:
            - $ref: '#/components/schemas/RangeFilterSchema'
            - type: 'null'
        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'
        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'
        followers:
          anyOf:
            - $ref: '#/components/schemas/RangeFilterSchema'
            - type: 'null'
        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'
        is_working:
          anyOf:
            - $ref: '#/components/schemas/FlagFilterSchema'
            - type: 'null'
        job_title:
          anyOf:
            - $ref: '#/components/schemas/TextFilterSchema'
            - type: 'null'
        keyword:
          anyOf:
            - $ref: '#/components/schemas/TextFilterSchema'
            - type: 'null'
        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'
        last_name:
          anyOf:
            - $ref: '#/components/schemas/TextFilterSchema'
            - type: 'null'
        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'
          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'
        past_company_headcount_growth:
          anyOf:
            - $ref: '#/components/schemas/GrowthFilterSchema'
            - type: 'null'
        past_company_identifier:
          anyOf:
            - $ref: '#/components/schemas/TextFilterSchema'
            - type: 'null'
        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'
        past_company_location:
          anyOf:
            - $ref: '#/components/schemas/TextFilterSchema'
            - type: 'null'
          description: >-
            Where a previous employer's headquarters are. Same values as
            company_location.
        past_company_name:
          anyOf:
            - $ref: '#/components/schemas/TextFilterSchema'
            - type: 'null'
        past_company_revenue:
          anyOf:
            - $ref: '#/components/schemas/RangeFilterSchema'
            - type: 'null'
        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_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'
        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'
        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'
        school:
          anyOf:
            - $ref: '#/components/schemas/TextFilterSchema'
            - type: 'null'
        skills:
          anyOf:
            - $ref: '#/components/schemas/TextFilterSchema'
            - type: 'null'
        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'
        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'
      title: PeopleQuerySchema
      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
      title: LeadRecordType
      type: string
    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'
        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'
        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
    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
    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
    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
    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
  securitySchemes:
    APIKeyHeader:
      in: header
      name: X-API-Key
      type: apiKey
    HTTPBearer:
      scheme: bearer
      type: http

````