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

# Preview replacing a table's rows with its search

> What running the table's search with `replace` would do, before the search is saved or run: the body is the search as it would be saved (the PUT's body) plus the run's `more_rows` or `max_new_rows`. Says how many rows the run adds, how many it deletes, how many contacts on those rows would stop and in which sequences, and how many of them are mid-conversation. A company search also deletes, from each people table whose search follows this table, the people whose Company link points only at companies it deletes (`linked_tables`). `rows_with_paid_data` and `paid_credits` say how much of what goes was paid for with credits. Planned exactly as the run plans it, so the counts are the run's own while the table and the matches stay as they are. A search that is not people or companies answers `replace_supported: false` and deletes nothing. Free, and changes nothing.



## OpenAPI

````yaml /openapi.json post /tables/{table_id}/lead-search/impact/
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 spend 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 listing, checking and deleting integrations.
    name: integrations
  - description: >-
      Create, preview and update an integration of any type: the body's
      integration_type picks the config and credentials it takes.
    name: integration-specific
  - 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: >-
      AI apps connected to the workspace: Claude, ChatGPT, Claude Code or any
      other MCP client a person signed in to Oneprofile's MCP server with.
    name: ai_apps
  - description: Endpoints for managing billing and subscription information.
    name: billing
  - description: >-
      Accounts: every company the workspace's tables name, with the people at
      it, its key facts, its tables, its org chart and what went to its people;
      the tables that feed it (Sources) and the merges a person made.
    name: accounts
  - 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 an agent's Preview: example rows run one at a time, and a
      Looks good on each. Needs work lives under agent-learnings.
    name: agent-training
  - description: >-
      An agent's learnings, the one-line rules it follows on every output, and
      the thumbs down that teaches them: give one with what was wrong, list the
      ones on a subject, Undo one, and price the redo it would run.
    name: agent-learnings
  - 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 recording where a new workspace came from: the marketing
      page or campaign its signup link carried, sent once after signup.
    name: attribution
  - 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:
  /tables/{table_id}/lead-search/impact/:
    post:
      tags:
        - find-leads
      summary: Preview replacing a table's rows with its search
      description: >-
        What running the table's search with `replace` would do, before the
        search is saved or run: the body is the search as it would be saved (the
        PUT's body) plus the run's `more_rows` or `max_new_rows`. Says how many
        rows the run adds, how many it deletes, how many contacts on those rows
        would stop and in which sequences, and how many of them are
        mid-conversation. A company search also deletes, from each people table
        whose search follows this table, the people whose Company link points
        only at companies it deletes (`linked_tables`). `rows_with_paid_data`
        and `paid_credits` say how much of what goes was paid for with credits.
        Planned exactly as the run plans it, so the counts are the run's own
        while the table and the matches stay as they are. A search that is not
        people or companies answers `replace_supported: false` and deletes
        nothing. Free, and changes nothing.
      operationId: preview_replace_table_search
      parameters:
        - in: path
          name: table_id
          required: true
          schema:
            format: uuid
            title: Table Id
            type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/LeadSearchReplaceImpactRequestSchema'
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/LeadSearchReplaceImpactSchema'
          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
        '404':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/NotFoundResponse'
          description: This table has no lead search.
        '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: The lead database refused the query.
        '503':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ServerErrorResponse'
          description: Service unavailable.
      security:
        - APIKeyHeader: []
        - HTTPBearer: []
components:
  schemas:
    LeadSearchReplaceImpactRequestSchema:
      description: >-
        A table's search as it would be saved, and how its run would be sized.


        The body the search's PUT takes, so the confirm dialog asks about
        exactly

        what it is about to save, plus the run's own `more_rows` or
        `max_new_rows`.
      properties:
        backlinks:
          anyOf:
            - $ref: '#/components/schemas/BacklinksQuerySchema'
            - type: 'null'
        companies:
          anyOf:
            - $ref: '#/components/schemas/CompanyQuerySchema'
            - type: 'null'
        enrichments:
          description: >-
            What to find out about the rows this adds. Each becomes its own
            column, and each is billed per row that comes back with an answer.
          items:
            $ref: '#/components/schemas/LeadEnrichmentOption'
          maxItems: 4
          title: Enrichments
          type: array
        hiring_companies:
          anyOf:
            - $ref: '#/components/schemas/HiringCompaniesQuerySchema'
            - type: 'null'
        include_people_already_in_tables:
          default: false
          description: >-
            A people search only. By default it leaves out the people who
            already have a row in one of the workspace's other tables, and keeps
            looking until enough new people are added; the response says how
            many it skipped. Set true to add them again.
          title: Include People Already In Tables
          type: boolean
        local_businesses:
          anyOf:
            - $ref: '#/components/schemas/LocalBusinessQuerySchema'
            - type: 'null'
        lookalikes:
          anyOf:
            - $ref: '#/components/schemas/LookalikeQuerySchema'
            - type: 'null'
        max_new_rows:
          anyOf:
            - minimum: 1
              type: integer
            - type: 'null'
          description: The most rows the run would add, as `max_new_rows` on the run.
          title: Max New Rows
        more_rows:
          anyOf:
            - maximum: 1000
              minimum: 1
              type: integer
            - type: 'null'
          description: How many new rows the run would add, as `more_rows` on the run.
          title: More Rows
        only:
          anyOf:
            - enum:
                - attach
                - replace
              type: string
            - type: 'null'
          description: >-
            Hold the request to one of its two effects. `attach` puts the search
            behind a table that has none and runs it, and answers 409 when the
            table has one. `replace` changes the criteria of the search the
            table has, and answers 404 when it has none, so nothing runs and
            nothing is charged. Leave it out to do whichever fits.
          title: Only
        people:
          anyOf:
            - $ref: '#/components/schemas/PeopleQuerySchema'
            - type: 'null'
        post_authors:
          anyOf:
            - $ref: '#/components/schemas/PostAuthorsQuerySchema'
            - type: 'null'
        record_type:
          $ref: '#/components/schemas/LeadRecordType'
        row_limit:
          anyOf:
            - maximum: 1000000
              minimum: 1
              type: integer
            - type: 'null'
          description: >-
            Rows to add. Clamped further by the organisation's plan cap; omit
            for the maximum.
          title: Row Limit
        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'
        startup_launches:
          anyOf:
            - $ref: '#/components/schemas/StartupLaunchesQuerySchema'
            - type: 'null'
      required:
        - record_type
      title: LeadSearchReplaceImpactRequestSchema
      type: object
    LeadSearchReplaceImpactSchema:
      description: >-
        What running a table's search with `replace` would add, delete and stop,
        before it runs.
      properties:
        contacts_mid_conversation:
          description: >-
            Of `contacts_stopping`, those already contacted or who replied, so a
            conversation would end part way.
          title: Contacts Mid Conversation
          type: integer
        contacts_stopping:
          description: Contacts on those rows that are still in a sequence and would stop.
          title: Contacts Stopping
          type: integer
        linked_tables:
          description: >-
            For a company search, each people table whose search follows this
            table and the people the run would delete from it: those whose
            Company link points only at companies it deletes. Empty otherwise.
            Their contacts are in `contacts_stopping`.
          items:
            $ref: '#/components/schemas/LeadSearchReplaceLinkedTableSchema'
          title: Linked Tables
          type: array
        paid_credits:
          description: What that data cost when it was bought, in credits.
          title: Paid Credits
          type: number
        replace_supported:
          description: >-
            Whether this search can replace the table's rows. Only people and
            company searches can; a run with `replace` on any other answers 422.
          title: Replace Supported
          type: boolean
        rows_to_add:
          description: >-
            The most rows the run adds: the matches the table does not hold yet,
            within the run's row limit and the table's room.
          title: Rows To Add
          type: integer
        rows_to_remove:
          description: >-
            Rows the run deletes after adding: rows added by hand or from a
            file, rows from another kind of search, and rows the search no
            longer matches. 0 when `replace_supported` is false.
          title: Rows To Remove
          type: integer
        rows_with_paid_data:
          description: >-
            Of every row the run would delete, linked tables' included, how many
            hold data paid for with credits (an enrichment or agent cell). It is
            deleted too.
          title: Rows With Paid Data
          type: integer
        sequences:
          description: The sequences those contacts are in, the most contacts first.
          items:
            $ref: '#/components/schemas/LeadSearchReplaceSequenceSchema'
          title: Sequences
          type: array
      required:
        - replace_supported
        - rows_to_add
        - rows_to_remove
        - contacts_stopping
        - contacts_mid_conversation
        - sequences
        - linked_tables
        - rows_with_paid_data
        - paid_credits
      title: LeadSearchReplaceImpactSchema
      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
    NotFoundResponse:
      properties:
        detail:
          description: The detail of why the resource was not found.
          title: Detail
          type: string
      required:
        - detail
      title: NotFoundResponse
      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/BacklinkReferringDomainsFilterSchema'
            - type: 'null'
          description: >-
            Referring sites, by host, matched exactly. Up to a thousand left
            out: past the eight conditions a search takes, they are dropped from
            the rows as they arrive, and the count still includes them.
        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
    LeadEnrichmentOption:
      description: >-
        An enrichment offered at import, in the user's vocabulary not the
        catalog's.


        Each option names an outcome and resolves to the curated enrichment that

        delivers it, so importing leads stays a question about what you want

        rather than about who supplies it.


        Kept as its own enum rather than reusing the capability keys directly:

        the import page offers a deliberately short list, and which enrichments

        belong on it is a product decision that should not change every time the

        catalog gains a capability.
      enum:
        - find_email
        - find_phone
        - enrich_contact
        - enrich_company
      title: LeadEnrichmentOption
      type: string
    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
        seed_rows:
          anyOf:
            - items:
                $ref: '#/components/schemas/PreviewPickSchema'
              maxItems: 10
              type: array
            - type: 'null'
          description: >-
            Companies ticked in a preview of a company search, by the ref the
            preview gave each row (`row_refs`): seeds whose websites stay on the
            server. They count toward the 10 seeds with seed_domains.
          title: Seed Rows
      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'
          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.
        excluded_people:
          anyOf:
            - items:
                $ref: '#/components/schemas/PreviewPickSchema'
              maxItems: 100
              type: array
            - type: 'null'
          description: >-
            People left out one by one, each a row ticked in a preview of a
            people search, by the ref the preview gave it (`row_refs`). The refs
            are kept for as long as the workspace is; a search naming one the
            workspace does not keep is refused.
          title: Excluded People
        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 and as its
            common spellings: & and and, SVP and Senior Vice President, VP and
            Vice President, AVP, EVP, Sr. and Senior. Several values are
            alternatives, so send each other way a role is worded, such as an
            acronym and the words it stands for.
        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, matched as job_title is. 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
    PostAuthorsQuerySchema:
      description: >-
        Filters for a search for people whose own LinkedIn posts carry a phrase.


        The rows are people, one per author, each carrying every matching post
        the

        search read for them. The count is of posts, since the people are folded

        from them once they are read.
      properties:
        and_keywords:
          anyOf:
            - items:
                items:
                  maxLength: 200
                  minLength: 1
                  type: string
                maxItems: 20
                type: array
              maxItems: 4
              type: array
            - type: 'null'
          description: >-
            Up to 4 more groups of phrases, each of which a post must ALSO carry
            one phrase of, with up to 20 phrases to include across keywords and
            every group. Each is matched the same way: keywords clay with one
            group expensive, credits, cost finds posts that mention clay and any
            of the three. Groups only narrow a search: keywords must hold a
            phrase too.
          title: And Keywords
        in_comments:
          anyOf:
            - type: boolean
            - type: 'null'
          description: >-
            Also look for each phrase in the comments under the post. The row is
            still the post's author, never the commenter. Only with search.
          title: In Comments
        in_posts:
          anyOf:
            - type: boolean
            - type: 'null'
          description: >-
            Look for each phrase in the author's own post, its hashtags and the
            people tagged in it. On unless set to false; false searches only the
            places in_reshares and in_comments turn on, and then a tag (@Acme)
            finds nothing and is refused. Only with search.
          title: In Posts
        in_reshares:
          anyOf:
            - type: boolean
            - type: 'null'
          description: >-
            Also look for each phrase in the post the author reshared, and its
            hashtags. Only with search.
          title: In Reshares
        keywords:
          anyOf:
            - $ref: '#/components/schemas/PostPhraseFilterSchema'
            - type: 'null'
          description: >-
            Phrases a post must carry, any of them, and phrases that rule a post
            out, up to 20 to include across keywords and every group, and 20 to
            exclude. A phrase is matched whole and in order in the text the
            author wrote: revenue operations matches a post about revenue
            operations and not one about operations revenue. Punctuation between
            the words does not break a match, and no other form of a word does:
            cost does not match costs. At least one phrase in keywords is
            required unless search is written instead; groups only narrow it.
        min_comments:
          anyOf:
            - maximum: 1000000
              minimum: 0
              type: integer
            - type: 'null'
          description: Skip posts with fewer comments than this.
          title: Min Comments
        min_reactions:
          anyOf:
            - maximum: 1000000
              minimum: 0
              type: integer
            - type: 'null'
          description: Skip posts fewer people reacted to than this.
          title: Min Reactions
        posted_within:
          $ref: '#/components/schemas/PostWindow'
          default: past_month
          description: >-
            How recently the post went up, counted back from the day the search
            runs, so a saved or scheduled search keeps reading the latest posts.
            The past month by default. Posts reach the index about a week after
            they go up.
        search:
          anyOf:
            - maxLength: 4000
              type: string
            - type: 'null'
          description: >-
            The whole search written the way LinkedIn's own search box takes
            one, in place of keywords and and_keywords: (clay OR apollo) AND
            (pricing OR cost) NOT (hiring AND remote). AND, OR, and NOT in
            capitals are the operators, brackets group them, and NOT at the end
            leaves posts out. Words side by side are one phrase, matched whole
            and in order; quotes make plain words of anything, an operator word,
            #, @, or * included. NEAR(clay, pricing) holds phrases within a few
            words of each other and ATLEAST2(pricing, budget, renewal) asks for
            any two. #revops is a hashtag, @Acme a person or company tagged in
            the post, and pric* every word starting with pric (one word, 3
            letters or more before the star). Up to 40 different phrases.
          title: Search
        word_endings:
          anyOf:
            - type: boolean
            - type: 'null'
          description: >-
            Also match the other common endings of each phrase's last word: cost
            finds costs, costing and costed. A NEAR( line matches its words as
            written. Off unless set. Only with search.
          title: Word Endings
      title: PostAuthorsQuerySchema
      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
        - search_results
        - post_authors
        - startup_launches
      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
            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
            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
    StartupLaunchesQuerySchema:
      description: >-
        Filters for a search of the companies listed on startup launch boards.


        One row per company, newest listing first, however many boards list it.

        Every filter narrows; a filter on a fact only some boards carry keeps
        only

        the listings of the boards that carry it.
      properties:
        batches:
          description: >-
            Only companies from any of these accelerator batches, spelled as
            `GET /leads/startup-launches/batches/` lists them ("Winter 2026").
            Only some boards carry this, and setting it keeps only their
            listings: `GET /leads/startup-launches/filters/` names them. Filters
            whose boards share none are refused, since no listing could match
            them all.
          items:
            maxLength: 40
            minLength: 1
            type: string
          maxItems: 50
          title: Batches
          type: array
        categories:
          description: >-
            Only companies in any of these categories. Every board's own tags
            are sorted into these.
          items:
            $ref: '#/components/schemas/LaunchCategory'
          maxItems: 50
          title: Categories
          type: array
        company_statuses:
          description: >-
            Only companies with any of these statuses. Only some boards carry
            this, and setting it keeps only their listings: `GET
            /leads/startup-launches/filters/` names them. Filters whose boards
            share none are refused, since no listing could match them all.
          items:
            $ref: '#/components/schemas/CompanyStatus'
          maxItems: 50
          title: Company Statuses
          type: array
        countries:
          description: >-
            Only companies based in any of these countries, each a two-letter
            code such as US or GB. Only some boards carry this, and setting it
            keeps only their listings: `GET /leads/startup-launches/filters/`
            names them. Filters whose boards share none are refused, since no
            listing could match them all.
          items:
            maxLength: 16
            type: string
          maxItems: 50
          title: Countries
          type: array
        cross_listed:
          default: false
          description: Only companies listed on two boards or more.
          title: Cross Listed
          type: boolean
        exclude_promoted:
          default: false
          description: >-
            Leave out listings the board marks as paid placements. Only some
            boards mark them, and every other board's listings stay in.
          title: Exclude Promoted
          type: boolean
        for_sale:
          anyOf:
            - type: boolean
            - type: 'null'
          description: >-
            True for only companies listed for sale, false for only those that
            are not. Leave it out for both. Only some boards carry this, and
            setting it keeps only their listings: `GET
            /leads/startup-launches/filters/` names them. Filters whose boards
            share none are refused, since no listing could match them all.
          title: For Sale
        has_maker_linkedin:
          default: false
          description: >-
            Only companies with a maker whose LinkedIn profile is known. Only
            some boards carry this, and setting it keeps only their listings:
            `GET /leads/startup-launches/filters/` names them. Filters whose
            boards share none are refused, since no listing could match them
            all.
          title: Has Maker Linkedin
          type: boolean
        has_maker_x:
          default: false
          description: >-
            Only companies with a maker whose X profile is known. Only some
            boards carry this, and setting it keeps only their listings: `GET
            /leads/startup-launches/filters/` names them. Filters whose boards
            share none are refused, since no listing could match them all.
          title: Has Maker X
          type: boolean
        has_website:
          default: true
          description: >-
            Only companies with a website of their own, not a GitHub, App Store
            or board page. On by default.
          title: Has Website
          type: boolean
        hiring:
          anyOf:
            - type: boolean
            - type: 'null'
          description: >-
            True for only companies hiring now, false for only those that are
            not. Leave it out for both. Only some boards carry this, and setting
            it keeps only their listings: `GET /leads/startup-launches/filters/`
            names them. Filters whose boards share none are refused, since no
            listing could match them all.
          title: Hiring
        keywords:
          anyOf:
            - maxLength: 200
              type: string
            - type: 'null'
          description: >-
            Words to find in the name, tagline and description, written the way
            you would search the web: "exact phrase", OR between words, and
            -word to leave a word out.
          title: Keywords
        listed_from:
          anyOf:
            - pattern: ^\d{4}-\d{2}-\d{2}$
              type: string
            - type: 'null'
          description: >-
            Only companies listed on or after this day, as YYYY-MM-DD: the day a
            board listed them, not the day they launched.
          title: Listed From
        listed_to:
          anyOf:
            - pattern: ^\d{4}-\d{2}-\d{2}$
              type: string
            - type: 'null'
          description: Only companies listed on or before this day, as YYYY-MM-DD.
          title: Listed To
        listed_within_days:
          anyOf:
            - maximum: 3650
              minimum: 1
              type: integer
            - type: 'null'
          description: >-
            Only companies listed in this many days back from the day the search
            runs: 30 is the past 30 days. A saved or scheduled search keeps
            reading the newest days. Send it instead of listed_from and
            listed_to, not with them.
          title: Listed Within Days
        min_comments:
          anyOf:
            - maximum: 1000000
              minimum: 0
              type: integer
            - type: 'null'
          description: >-
            Only listings with at least this many comments. Only some boards
            carry this, and setting it keeps only their listings: `GET
            /leads/startup-launches/filters/` names them. Filters whose boards
            share none are refused, since no listing could match them all.
          title: Min Comments
        min_votes:
          anyOf:
            - maximum: 1000000
              minimum: 0
              type: integer
            - type: 'null'
          description: >-
            Only listings with at least this many votes. Only some boards carry
            this, and setting it keeps only their listings: `GET
            /leads/startup-launches/filters/` names them. Filters whose boards
            share none are refused, since no listing could match them all.
          title: Min Votes
        open_source:
          anyOf:
            - type: boolean
            - type: 'null'
          description: >-
            True for only open-source products, false for only those that are
            not. Leave it out for both. Only some boards carry this, and setting
            it keeps only their listings: `GET /leads/startup-launches/filters/`
            names them. Filters whose boards share none are refused, since no
            listing could match them all.
          title: Open Source
        post_kinds:
          description: >-
            Only listings from any of these kinds of post. Only some boards
            carry this, and setting it keeps only their listings: `GET
            /leads/startup-launches/filters/` names them. Filters whose boards
            share none are refused, since no listing could match them all.
          items:
            $ref: '#/components/schemas/PostKind'
          maxItems: 50
          title: Post Kinds
          type: array
        pricing:
          description: >-
            Only products priced in any of these ways. Only some boards carry
            this, and setting it keeps only their listings: `GET
            /leads/startup-launches/filters/` names them. Filters whose boards
            share none are refused, since no listing could match them all.
          items:
            $ref: '#/components/schemas/PricingModel'
          maxItems: 50
          title: Pricing
          type: array
        revenue_max_usd:
          anyOf:
            - maximum: 1000000000
              minimum: 0
              type: integer
            - type: 'null'
          description: >-
            Only companies making at most this much a month, in US dollars
            (MRR). Only some boards carry this, and setting it keeps only their
            listings: `GET /leads/startup-launches/filters/` names them. Filters
            whose boards share none are refused, since no listing could match
            them all.
          title: Revenue Max Usd
        revenue_min_usd:
          anyOf:
            - maximum: 1000000000
              minimum: 0
              type: integer
            - type: 'null'
          description: >-
            Only companies making at least this much a month, in US dollars
            (MRR). Only some boards carry this, and setting it keeps only their
            listings: `GET /leads/startup-launches/filters/` names them. Filters
            whose boards share none are refused, since no listing could match
            them all.
          title: Revenue Min Usd
        sources:
          description: >-
            The boards to search, as `GET /leads/startup-launches/sources/`
            lists them. Empty searches every board.
          items:
            $ref: '#/components/schemas/LaunchSource'
          maxItems: 50
          title: Sources
          type: array
        team_size_max:
          anyOf:
            - maximum: 1000000
              minimum: 0
              type: integer
            - type: 'null'
          description: >-
            Only companies with at most this many people. Only some boards carry
            this, and setting it keeps only their listings: `GET
            /leads/startup-launches/filters/` names them. Filters whose boards
            share none are refused, since no listing could match them all.
          title: Team Size Max
        team_size_min:
          anyOf:
            - maximum: 1000000
              minimum: 0
              type: integer
            - type: 'null'
          description: >-
            Only companies with at least this many people. Only some boards
            carry this, and setting it keeps only their listings: `GET
            /leads/startup-launches/filters/` names them. Filters whose boards
            share none are refused, since no listing could match them all.
          title: Team Size Min
      title: StartupLaunchesQuerySchema
      type: object
    LeadSearchReplaceLinkedTableSchema:
      description: One people table a company search's Replace would delete people from.
      properties:
        name:
          description: The people table's name.
          title: Name
          type: string
        rows_to_remove:
          description: >-
            People in it whose Company link points only at companies the run
            deletes.
          title: Rows To Remove
          type: integer
        table_id:
          format: uuid
          title: Table Id
          type: string
      required:
        - table_id
        - name
        - rows_to_remove
      title: LeadSearchReplaceLinkedTableSchema
      type: object
    LeadSearchReplaceSequenceSchema:
      description: One sequence whose contacts a Replace run would stop.
      properties:
        contacts:
          description: Contacts in it on rows the run would delete.
          title: Contacts
          type: integer
        name:
          description: The sequence's name, as its page shows it.
          title: Name
          type: string
        sequence_id:
          format: uuid
          title: Sequence Id
          type: string
      required:
        - sequence_id
        - name
        - contacts
      title: LeadSearchReplaceSequenceSchema
      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
    BacklinkReferringDomainsFilterSchema:
      description: >-
        The referring sites to keep (eight at most) or to leave out (a thousand
        at most).
      properties:
        exclude:
          items:
            type: string
          maxItems: 1000
          title: Exclude
          type: array
        include:
          items:
            type: string
          maxItems: 8
          title: Include
          type: array
      title: BacklinkReferringDomainsFilterSchema
      type: object
    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
    PreviewPickSchema:
      description: >-
        One row of a search's preview, named by the ref the preview answered
        beside it.
      properties:
        name:
          default: ''
          description: What the row showed, so a page can name it. Never searched on.
          maxLength: 255
          title: Name
          type: string
        ref:
          description: The row's ref, from the preview's `row_refs`.
          pattern: ^[A-Za-z0-9_-]{12}$
          title: Ref
          type: string
      required:
        - ref
      title: PreviewPickSchema
      type: object
    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
    PostPhraseFilterSchema:
      description: >-
        A phrase filter over the text of LinkedIn posts, capped at twenty
        phrases each way.
      properties:
        exclude:
          items:
            maxLength: 200
            minLength: 1
            type: string
          maxItems: 20
          title: Exclude
          type: array
        include:
          items:
            maxLength: 200
            minLength: 1
            type: string
          maxItems: 20
          title: Include
          type: array
      title: PostPhraseFilterSchema
      type: object
    PostWindow:
      description: >-
        How recently a post went up for a posts search to read it, counted back
        from the run.


        ``any_time`` is a member rather than a null: a stored query drops its

        nulls, and a null would come back from storage as the default window.
      enum:
        - past_week
        - past_month
        - past_quarter
        - past_year
        - any_time
      title: PostWindow
      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
    LaunchCategory:
      description: >-
        The buckets every board's own tags are mapped into, so one filter spans
        them all.


        Fixed maps decide (``CATEGORY_OF_TAG`` plus each site's additions); a
        tag

        no map knows files an ``UNMAPPED_TAG`` report, never a guess.
      enum:
        - ai
        - developer_tools
        - productivity
        - marketing
        - sales
        - design
        - finance
        - ecommerce
        - health
        - education
        - data
        - security
        - community
        - hr
        - consumer
        - hardware
        - industry
      title: LaunchCategory
      type: string
    CompanyStatus:
      description: A directory company's standing, where the directory says (Y Combinator).
      enum:
        - active
        - acquired
        - inactive
        - public
      title: CompanyStatus
      type: string
    PostKind:
      description: What kind of Hacker News post a listing came from.
      enum:
        - show_hn
        - launch_hn
        - hiring
      title: PostKind
      type: string
    PricingModel:
      description: How a product charges, where a board says.
      enum:
        - free
        - freemium
        - paid
      title: PricingModel
      type: string
    LaunchSource:
      description: >-
        The launch boards and directories crawled, one ``crawler_<value>``
        package each.
      enum:
        - ycombinator
        - betalist
        - tinylaunch
        - uneed
        - microlaunch
        - trustmrr
        - hackernews
        - producthunt
      title: LaunchSource
      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.