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

# Company Search - TheirStack

> Build an account list from TheirStack by the technologies, keywords and buying-intent topics a company mentions in its job posts, plus headcount, revenue, funding, industry and location. Billed per company returned.

**Price:** billed per result - \$199.20 per 1,000 results, capped at \$9,960.00 per 1,000 requests.

**Routing:** one lane serves this API today, so a failed attempt has nowhere to fail over to. Payment outcome follows the selected rail's settlement policy.

**Catalog:** [Company Search - TheirStack pricing and uptime](https://getanyapi.com/api/company-search/theirstack) - live USD price, lane routing, and measured 30-day uptime. [Every Company_search endpoint](https://getanyapi.com/api/company-search).



## OpenAPI

````yaml /openapi.json post /v1/run/company_search.theirstack
openapi: 3.1.0
info:
  contact:
    email: support@getanyapi.com
  description: >-
    Any API, one wallet, USD, no subscriptions. Each API is a single discovered
    operation: send the normalized input, get a normalized result. Prices and
    payment outcomes are reported in USD; each operation documents the
    settlement policy for its enabled payment rails.
  title: AnyAPI
  version: 1.0.0
  x-guidance: >-
    Use each operation's published method and path with its normalized JSON
    input (see the operation requestBody). Before setting a client or tool
    timeout, GET /v1/apis/{sku} and inspect its trailing-30-day latency
    p50/p95/p99 and sample; p99 is an observation, not a maximum. To pay: send
    your AnyAPI key (Authorization: Bearer, billed from your USD wallet). For
    operations that advertise an inline rail, pay per call inline with x402 -
    call with no key, receive HTTP 402 with a PAYMENT-REQUIRED header, then
    retry with the PAYMENT-SIGNATURE header (base, no account needed); or pay
    per call inline with MPP (Machine Payments Protocol) - call with no key,
    receive HTTP 402 with a WWW-Authenticate: Payment challenge, then retry with
    the Authorization: Payment header (tempo, no account needed). x402 settles
    after execution; execution failure is reported as released; mpp settles
    before execution; execution failure is reported as charged_undelivered.
servers:
  - url: https://api.getanyapi.com
security:
  - bearerAuth: []
  - apiKeyAuth: []
tags:
  - name: ahrefs
    x-group: Ahrefs
  - name: airbnb
    x-group: Airbnb
  - name: alibaba
    x-group: Alibaba
  - name: amazon
    x-group: Amazon
  - name: apollo
    x-group: Apollo
  - name: appstore
    x-group: Appstore
  - name: bluesky
    x-group: Bluesky
  - name: booking
    x-group: Booking
  - name: capterra
    x-group: Capterra
  - name: chatgpt
    x-group: Chatgpt
  - name: coinmarketcap
    x-group: Coinmarketcap
  - name: company
    x-group: Company
  - name: company-enrichment
    x-group: Company_enrichment
  - name: company-search
    x-group: Company_search
  - name: congress
    x-group: Congress
  - name: dexscreener
    x-group: Dexscreener
  - name: douyin
    x-group: Douyin
  - name: ebay
    x-group: Ebay
  - name: email
    x-group: Email
  - name: email-finding
    x-group: Email_finding
  - name: email-verification
    x-group: Email_verification
  - name: facebook
    x-group: Facebook
  - name: fiverr
    x-group: Fiverr
  - name: g2
    x-group: G2
  - name: gemini
    x-group: Gemini
  - name: github
    x-group: Github
  - name: glassdoor
    x-group: Glassdoor
  - name: google
    x-group: Google
  - name: google-ads
    x-group: Google Ads
  - name: google-finance
    x-group: Google Finance
  - name: google-shopping
    x-group: Google Shopping
  - name: hackernews
    x-group: Hackernews
  - name: indeed
    x-group: Indeed
  - name: instagram
    x-group: Instagram
  - name: job-search
    x-group: Job_search
  - name: linkedin
    x-group: Linkedin
  - name: maps
    x-group: Maps
  - name: mobile-phone
    x-group: Mobile_phone
  - name: naver
    x-group: Naver
  - name: pandaexpress
    x-group: Pandaexpress
  - name: people-search
    x-group: People_search
  - name: perplexity
    x-group: Perplexity
  - name: person
    x-group: Person
  - name: person-enrichment
    x-group: Person_enrichment
  - name: pinterest
    x-group: Pinterest
  - name: playstore
    x-group: Playstore
  - name: polymarket
    x-group: Polymarket
  - name: realtor
    x-group: Realtor
  - name: reddit
    x-group: Reddit
  - name: redfin
    x-group: Redfin
  - name: rednote
    x-group: Rednote
  - name: sec
    x-group: Sec
  - name: semrush
    x-group: Semrush
  - name: seo
    x-group: Seo
  - name: snapchat
    x-group: Snapchat
  - name: social
    x-group: Social
  - name: spotify
    x-group: Spotify
  - name: substack
    x-group: Substack
  - name: technographics
    x-group: Technographics
  - name: threads
    x-group: Threads
  - name: tiktok
    x-group: TikTok
  - name: tiktok-shop
    x-group: TikTok Shop
  - name: tripadvisor
    x-group: Tripadvisor
  - name: trustpilot
    x-group: Trustpilot
  - name: truthsocial
    x-group: Truthsocial
  - name: twitter
    x-group: X (Twitter)
  - name: upwork
    x-group: Upwork
  - name: walmart
    x-group: Walmart
  - name: web
    x-group: Web
  - name: weibo
    x-group: Weibo
  - name: yahoo-finance
    x-group: Yahoo Finance
  - name: yelp
    x-group: Yelp
  - name: youtube
    x-group: YouTube
  - name: zhihu
    x-group: Zhihu
  - name: zillow
    x-group: Zillow
paths:
  /v1/run/company_search.theirstack:
    post:
      tags:
        - company-search
      summary: Company Search - TheirStack
      description: >-
        Build an account list from TheirStack by the technologies, keywords and
        buying-intent topics a company mentions in its job posts, plus
        headcount, revenue, funding, industry and location. Billed per company
        returned.


        **Price:** billed per result - \$199.20 per 1,000 results, capped at
        \$9,960.00 per 1,000 requests.


        **Routing:** one lane serves this API today, so a failed attempt has
        nowhere to fail over to. Payment outcome follows the selected rail's
        settlement policy.


        **Catalog:** [Company Search - TheirStack pricing and
        uptime](https://getanyapi.com/api/company-search/theirstack) - live USD
        price, lane routing, and measured 30-day uptime. [Every Company_search
        endpoint](https://getanyapi.com/api/company-search).
      operationId: company_search_theirstack
      parameters:
        - description: >-
            Optional. Comma-separated keys (dotted paths like `author.name`
            descend into nested objects) to keep on each result item. Keys are
            matched relative to each result item after the `data`/`items`
            envelope is unwrapped, not against the top-level response envelope,
            so use `jq` to reshape the whole envelope. Shrinks the response
            without changing cost.
          in: query
          name: fields
          required: false
          schema:
            type: string
        - description: >-
            Optional. Cap the number of result rows returned; a `_truncated`
            note reports how many were withheld so you can page via the API's
            own `limit`. Does not change cost.
          in: query
          name: max_items
          required: false
          schema:
            minimum: 0
            type: integer
        - description: >-
            Optional. Return only a structural outline (top-level keys, item
            counts, and per-field byte sizes) instead of the full data. Does not
            change cost.
          in: query
          name: summary
          required: false
          schema:
            type: boolean
        - description: >-
            Optional. A jq expression applied to the result envelope; its output
            replaces `output` (multiple outputs collect into an array). Reshape
            freely, e.g. `jq=.data | {title, description, md:
            .markdown[:3500]}`. Runs sandboxed with a 250ms / 2MB budget; on
            failure the full result is returned with a `jqError`. Does not
            change cost.
          in: query
          name: jq
          required: false
          schema:
            type: string
        - description: >-
            Optional wallet idempotency key, scoped to this customer for 24
            hours. When the gateway honors the key, this synchronous in-process
            execution can continue after the caller disconnects, bounded by its
            execution deadline. A completed replayable result charges normally
            exactly once and can be replayed without another provider run or
            charge. A pending duplicate returns 409 idempotency_in_progress;
            reuse with different request semantics returns 409
            idempotency_conflict.
          in: header
          name: Idempotency-Key
          required: false
          schema:
            maxLength: 255
            minLength: 1
            type: string
      requestBody:
        content:
          application/json:
            example:
              companyDomainOr:
                - posthog.com
              limit: 1
            schema:
              additionalProperties: false
              example:
                companyDomainOr:
                  - posthog.com
                limit: 1
              minProperties: 1
              properties:
                companyCountryCodeNot:
                  description: >-
                    Return companies whose HQ country code is not any of the
                    ones passed here, case sensitive. Pass ISO2 country codes.
                  items:
                    type: string
                  type: array
                companyCountryCodeOr:
                  description: >-
                    Return companies whose HQ country code is any of the ones
                    passed here, case sensitive. Pass ISO2 country codes.
                  items:
                    type: string
                  type: array
                companyDescriptionPatternAccentInsensitive:
                  description: >-
                    Set to True to make company description searches accent
                    insensitive. For example, "á" will match "a" as well.
                  type: boolean
                companyDescriptionPatternNot:
                  description: >-
                    Case-insensitive patterns to match in the company
                    description. Will return companies that match any of the
                    patterns.
                  items:
                    type: string
                  type: array
                companyDescriptionPatternOr:
                  description: >-
                    Case-insensitive patterns to match in the company
                    description. Will return companies that match any of the
                    patterns.
                  items:
                    type: string
                  type: array
                companyDomainNot:
                  description: >-
                    Only return companies that don't match these domains
                    exactly. It accepts full urls (https://www.google.com/) and
                    emails (john.polo@gmail.com).
                  items:
                    type: string
                  type: array
                companyDomainOr:
                  description: >-
                    Only return companies that match these domains exactly. It
                    accepts full urls (https://www.google.com/) and emails
                    (john.polo@gmail.com). This filter acts as an OR filter, so
                    if you pass more than one company domain, it will return
                    companies that match any of the domains.
                  items:
                    type: string
                  type: array
                companyIdOr:
                  description: >-
                    Only return companies that match these IDs exactly. This
                    filter acts as an OR filter, so if you pass more than one
                    company ID, it will return companies that match any of the
                    IDs.
                  items:
                    type: string
                  type: array
                companyInvestorsOr:
                  description: Investors of the company
                  items:
                    type: string
                  type: array
                companyInvestorsPartialMatchOr:
                  description: >-
                    Investors of the company. Will return companies for which
                    any of their investors contains any of the substrings passed
                    here. For example, if you pass 'andree', all funds that
                    match it (like 'Andreessen Horowitz', 'Andreessen Horowitz
                    LLC', etc).
                  items:
                    type: string
                  type: array
                companyKeywordSlugAnd:
                  description: >-
                    Return results from companies that have mentioned all of
                    these keywords in their jobs. Case sensitive. Pass slugs.
                    Check out all the keywords we track at GET
                    /v0/catalog/keywords
                  items:
                    type: string
                  type: array
                companyKeywordSlugNot:
                  description: >-
                    Return results from companies that haven't mentioned any of
                    these keywords in their jobs. Case sensitive. Pass slugs.
                    Check out all the keywords we track at GET
                    /v0/catalog/keywords
                  items:
                    type: string
                  type: array
                companyKeywordSlugOr:
                  description: >-
                    Return results from companies that have mentioned any of
                    these keywords in their jobs. Case sensitive. Pass slugs.
                    Check out all the keywords we track at GET
                    /v0/catalog/keywords
                  items:
                    type: string
                  type: array
                companyLinkedinUrlExists:
                  description: >-
                    (Use `property_exists_or / property_exists_and` instead)
                    Only return companies with a LinkedIn URL
                  type: boolean
                companyLinkedinUrlOr:
                  description: >-
                    Return companies whose LinkedIn URL matches any of the slugs
                    passed here. Can also pass full LinkedIn company URLs.
                  items:
                    type: string
                  type: array
                companyListIdNot:
                  description: >-
                    Return companies that don't belong to any of the company
                    lists passed here
                  items:
                    type: string
                  type: array
                companyListIdOr:
                  description: >-
                    Return companies that belong to any of the company lists
                    passed here
                  items:
                    type: string
                  type: array
                companyLocationPatternOr:
                  description: >-
                    Return companies whose city matches any of the patterns
                    passed here. Case insensitive. For example, if you pass 'san
                    francisco', it will return companies whose city is 'San
                    Francisco', 'San Francisco Bay Area', etc.
                  items:
                    type: string
                  type: array
                companyNameCaseInsensitiveOr:
                  description: >-
                    Only return companies that match these names exactly,
                    case-insensitively.
                  items:
                    type: string
                  type: array
                companyNameNot:
                  description: >-
                    Only return companies that don't match these names exactly,
                    case-sensitively.
                  items:
                    type: string
                  type: array
                companyNameOr:
                  description: >-
                    Only return companies that match these names exactly,
                    case-sensitively. This filter acts as an OR filter, so if
                    you pass more than one company name, it will return
                    companies that match any of the names.
                  items:
                    type: string
                  type: array
                companyNamePartialMatchNot:
                  description: >-
                    Company names. Will return companies whose name doesn't
                    contain any of the the substrings passed here,
                    case-insensitively. For example, if you pass 'google', it
                    will exclude 'Google', 'Google LLC', 'Google Inc', etc.
                  items:
                    type: string
                  type: array
                companyNamePartialMatchOr:
                  description: >-
                    Company names. Will return companies whose name contain any
                    of the the substrings passed here, case-insensitively. For
                    example, if you pass "google", it will return "Google",
                    "Google LLC", "Google Inc", etc.
                  items:
                    type: string
                  type: array
                companyTagsOr:
                  description: Return companies that match any of these keywords
                  items:
                    type: string
                  type: array
                companyTechnologySlugAnd:
                  description: >-
                    Will return jobs from companies that that have mentioned all
                    of these technologies in their jobs (not necessarily in the
                    jobs returned). Case sensitive. Pass slugs. Check out all
                    the technologies we track at GET /v0/catalog/technologies.
                    Deprecated: use company_keyword_slug_and instead.
                  items:
                    type: string
                  type: array
                companyTechnologySlugNot:
                  description: >-
                    Will return jobs from companies that that haven't mentioned
                    any of these technologies in their jobs. Case sensitive.
                    Pass slugs. Check out all the technologies we track at GET
                    /v0/catalog/technologies. Deprecated: use
                    company_keyword_slug_not instead.
                  items:
                    type: string
                  type: array
                companyTechnologySlugOr:
                  description: >-
                    Will return jobs from companies that that have mentioned any
                    of these technologies in their jobs (not necessarily in the
                    jobs returned). Case sensitive. Pass slugs. Check out all
                    the technologies we track at GET /v0/catalog/technologies.
                    Deprecated: use company_keyword_slug_or instead.
                  items:
                    type: string
                  type: array
                companyType:
                  description: Filter by company type.
                  type: string
                expandTechnologySlugs:
                  description: >-
                    Specify technology slugs to include detailed technology
                    usage information for each company. The response will
                    include a 'technologies_found' field containing metrics like
                    confidence score, ranking, and job count for each specified
                    technology. Note: If a technology is not listed for a
                    company, it means that company does not use that technology.
                    This feature is useful for enriching company data with their
                    technology stack details.
                  items:
                    type: string
                  type: array
                fundingStageOr:
                  description: >-
                    Funding stages of companies returned. Possible values:
                    ['angel', 'convertible_note', 'debt_financing',
                    'equity_crowdfunding', 'other', 'private_equity', 'seed',
                    'series_a', 'series_b', 'series_c', 'series_d', 'series_e',
                    'series_f', 'series_g', 'series_h',
                    'venture_round_not_specified', 'series_i', 'series_j',
                    'undisclosed', 'series_unknown', 'pre_seed',
                    'post_ipo_secondary', 'post_ipo_equity', 'post_ipo_debt',
                    'non_equity_assistance', 'late_vc', 'initial_coin_offering',
                    'growth_equity_vc', 'grant', 'early_vc', 'corporate_round',
                    'secondary_market', 'product_crowdfunding']
                  items:
                    type: string
                  type: array
                includeTotalResults:
                  description: >-
                    When enabled, calculates and returns `total_results` and
                    `total_companies` fields in the response. WARNING: This
                    significantly slows down responses as it requires reading
                    the entire dataset. Recommended usage: enable only for the
                    initial request to get totals, then disable for subsequent
                    pagination requests.
                  type: boolean
                industryIdNot:
                  description: >-
                    Industry ids to exclude.You can use any of LinkedIn's
                    Industry Codes V2 or GET /v0/catalog/industries
                  items:
                    type: string
                  type: array
                industryIdOr:
                  description: >-
                    Industry codes. You can use any of LinkedIn's Industry Codes
                    V2 or GET /v0/catalog/industries
                  items:
                    type: string
                  type: array
                industryNot:
                  description: >-
                    Names of industries, case-insensitive. Results will exclude
                    companies that belong to any of the industries specified in
                    this parameter. Available values: GET /v0/catalog/industries
                    WARNING: Deprecated parameter. Use the industry_id_not field
                    instead.
                  items:
                    type: string
                  type: array
                industryOr:
                  description: >-
                    Names of industries, case-insensitive. Results will only
                    include companies that belong to any of the industries
                    specified in this parameter. Available values: GET
                    /v0/catalog/industries WARNING: Deprecated parameter. Use
                    the industry_id_or field instead.
                  items:
                    type: string
                  type: array
                jobFilters:
                  additionalProperties: true
                  type: object
                keywordSlugAnd:
                  description: >-
                    Return results from companies that have mentioned all of
                    these keywords in their jobs. Case sensitive. Pass slugs.
                    Check out all the keywords we track at GET
                    /v0/catalog/keywords
                  items:
                    type: string
                  type: array
                keywordSlugNot:
                  description: >-
                    Return results from companies that haven't mentioned any of
                    these keywords in their jobs. Case sensitive. Pass slugs.
                    Check out all the keywords we track at GET
                    /v0/catalog/keywords
                  items:
                    type: string
                  type: array
                keywordSlugOr:
                  description: >-
                    Return results from companies that have mentioned any of
                    these keywords in their jobs. Case sensitive. Pass slugs.
                    Check out all the keywords we track at GET
                    /v0/catalog/keywords
                  items:
                    type: string
                  type: array
                lastFundingRoundDateGte:
                  description: >-
                    Only return companies whose last funding round date is after
                    or on this date. Format: 'YYYY-MM-DD'
                  type: string
                lastFundingRoundDateLte:
                  description: >-
                    Only return companies whose last funding round date is
                    before or on this date. Format: 'YYYY-MM-DD'
                  type: string
                limit:
                  default: 25
                  description: >-
                    Rows to return on this page, up to TheirStack's maximum of
                    500. Every row returned is billed.
                  maximum: 50
                  minimum: 1
                  type: integer
                maxEmployeeCount:
                  description: Maximum number of employees in a company
                  type: integer
                maxEmployeeCountOrNull:
                  description: >-
                    Maximum number of employees in a company. If we don't have
                    company size information, we will return it as well.
                  type: integer
                maxFundingUsd:
                  description: Maximum company funding, in USD
                  type: integer
                maxRevenueUsd:
                  description: Maximum company revenue, in USD
                  type: integer
                minEmployeeCount:
                  description: Minimum number of employees in a company
                  type: integer
                minEmployeeCountOrNull:
                  description: >-
                    Minimum number of employees in a company. If we don't have
                    company size information, we will return it as well.
                  type: integer
                minFundingUsd:
                  description: Minimum company funding, in USD
                  type: integer
                minRevenueUsd:
                  description: Minimum company revenue, in USD
                  type: integer
                offset:
                  description: >-
                    Number of results to skip. Required for offset-based
                    pagination.
                  type: integer
                onlyYcCompanies:
                  description: Only return YC companies
                  type: boolean
                orderBy:
                  description: >-
                    List of column objects. You can pass several columns to
                    order by, in order of priority. Only `field` is required,
                    `desc` is True by default
                  items:
                    type: string
                  type: array
                page:
                  description: Page number. Required when using page-based pagination.
                  type: integer
                preferLatencyUnderMs:
                  description: >-
                    Optional; omit it and routing is unchanged, with the
                    cheapest source serving. Prefer sources whose typical
                    response time (median over the trailing 30 days, as
                    published on this endpoint's lane health) is under this many
                    milliseconds; among those, the cheapest serves. This can
                    raise your price: when the cheapest source misses the
                    target, a faster and dearer one serves, and you are quoted
                    and charged its price. If no source is that fast the request
                    is still served, by whichever source offers the best speed
                    for its price - it is never refused for being slow. Sources
                    we have not timed are tried last. This is a preference, not
                    a guarantee: the median describes past requests and is not a
                    ceiling on this one, and it excludes any wait this request
                    itself asks for. On a paginated walk it applies to the first
                    page only: later pages stay with the source that page chose,
                    at the price it was quoted.
                  minimum: 1
                  type: integer
                propertyExistsAnd:
                  description: >-
                    Return companies that have all of these fields not null. For
                    example, if you pass ['domain', 'linkedin_url'], it will
                    return companies that have both domain AND linkedin_url set.
                  items:
                    type: string
                  type: array
                propertyExistsOr:
                  description: >-
                    Return companies that have any of these fields not null. For
                    example, if you pass ['domain', 'linkedin_url'], it will
                    return companies that have a domain OR a linkedin_url set.
                  items:
                    type: string
                  type: array
                techFilters:
                  additionalProperties: true
                  description: >-
                    Filter by technologies and buying intent topics detected for
                    the company
                  type: object
                technologySlugAnd:
                  description: >-
                    Return results from companies that have mentioned all of
                    these keywords in their jobs. Case sensitive. Pass slugs.
                    Check out all the keywords we track at GET
                    /v0/catalog/keywords
                  items:
                    type: string
                  type: array
                technologySlugNot:
                  description: >-
                    Return results from companies that haven't mentioned any of
                    these keywords in their jobs. Case sensitive. Pass slugs.
                    Check out all the keywords we track at GET
                    /v0/catalog/keywords
                  items:
                    type: string
                  type: array
                technologySlugOr:
                  description: >-
                    Return results from companies that have mentioned any of
                    these keywords in their jobs. Case sensitive. Pass slugs.
                    Check out all the keywords we track at GET
                    /v0/catalog/keywords
                  items:
                    type: string
                  type: array
              title: Company Search - TheirStack input
              type: object
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  costUsd:
                    description: >-
                      USD charged on the original run. On a replay this value is
                      echoed for parity; the replay itself is free.
                    type: number
                  hint:
                    description: >-
                      Optional one-line nudge, absent when there is nothing to
                      say. `large_result:` suggests the
                      fields/max_items/summary/jq controls for a big response.
                      `paging_unavailable:` means this result came from a source
                      that cannot return a `nextCursor`, so it may be INCOMPLETE
                      and cannot be continued - re-run with `requireCursor:
                      true` to be served only by a source that can page, which
                      may cost more per request.
                    type: string
                  items:
                    description: >-
                      Number of result rows returned. For per-result SKUs the
                      per-item cost is charged against this count; for
                      input-priced SKUs the charge is per submitted input,
                      independent of this count.
                    type: integer
                  jqError:
                    description: >-
                      Present only when a `jq` expression failed; `output` then
                      carries the full unshaped result and this explains why the
                      reshape did not apply.
                    type: string
                  output:
                    anyOf:
                      - additionalProperties: false
                        properties:
                          data:
                            description: >-
                              The matching rows plus TheirStack's result
                              counters.
                            oneOf:
                              - type: 'null'
                              - additionalProperties: false
                                properties:
                                  companies:
                                    description: >-
                                      Matching companies with TheirStack's
                                      firmographic record and the technology and
                                      keyword slugs found in their job posts.
                                    items:
                                      properties:
                                        alexaRanking:
                                          description: >-
                                            Alexa traffic rank for the company
                                            website.
                                          type: integer
                                        annualRevenueReadable:
                                          description: >-
                                            Estimated annual revenue as a display
                                            string, e.g. 4.2M.
                                          type: string
                                        annualRevenueUsd:
                                          description: Estimated annual revenue in USD.
                                          type: number
                                        apolloId:
                                          description: >-
                                            Apollo's identifier for the same
                                            company.
                                          type: string
                                        city:
                                          description: Headquarters city.
                                          type: string
                                        companyId:
                                          description: TheirStack's own company identifier.
                                          type: string
                                        companyKeywords:
                                          description: Keywords TheirStack assigns the company.
                                          items:
                                            type: string
                                          type: array
                                        companyTags:
                                          description: Tags TheirStack assigns the company.
                                          items:
                                            type: string
                                          type: array
                                        country:
                                          description: Headquarters country.
                                          type: string
                                        countryCode:
                                          description: ISO 3166-1 alpha-2 country code.
                                          type: string
                                        domain:
                                          description: Primary company domain.
                                          type: string
                                        employeeCount:
                                          description: Employees TheirStack currently counts.
                                          type: integer
                                        employeeCountRange:
                                          description: Employee headcount band, e.g. 201-500.
                                          type: string
                                        foundedYear:
                                          description: Year the company was founded.
                                          type: integer
                                        fundingStage:
                                          description: >-
                                            Most recent funding stage, e.g.
                                            series_b.
                                          type: string
                                        hasBlurredData:
                                          description: >-
                                            True when TheirStack redacted part of
                                            the record on this plan.
                                          type: boolean
                                        image:
                                          description: Company logo URL.
                                          format: uri
                                          type: string
                                        industry:
                                          description: Company industry.
                                          type: string
                                        industryId:
                                          description: >-
                                            TheirStack's identifier for that
                                            industry.
                                          type: string
                                        investors:
                                          description: >-
                                            Investors TheirStack records for the
                                            company.
                                          items:
                                            type: string
                                          type: array
                                        isRecruitingAgency:
                                          description: >-
                                            True when TheirStack classifies the
                                            company as a recruiting agency rather
                                            than a direct employer.
                                          type: boolean
                                        keywordSlugs:
                                          description: >-
                                            Keyword slugs found in the company's job
                                            posts. These are the values the keyword
                                            filters take.
                                          items:
                                            type: string
                                          type: array
                                        lastFundingRoundReadable:
                                          description: >-
                                            Most recent round size as a display
                                            string, e.g. $15M.
                                          type: string
                                        lastFundingRoundUtc:
                                          description: >-
                                            UTC epoch timestamp in seconds (Unix
                                            time) of the most recent funding round.
                                            Multiply by 1000 for a JS Date in
                                            milliseconds.
                                          type: number
                                        linkedinId:
                                          description: Company LinkedIn numeric id.
                                          type: string
                                        linkedinUrl:
                                          description: Company LinkedIn page URL.
                                          format: uri
                                          type: string
                                        longDescription:
                                          description: >-
                                            Company description as the company
                                            writes it.
                                          type: string
                                        name:
                                          description: Company name.
                                          type: string
                                        numBuyingIntentTopics:
                                          description: >-
                                            Distinct buying-intent topics detected
                                            in the company's job posts.
                                          type: integer
                                        numJobs:
                                          description: >-
                                            Job posts TheirStack holds for the
                                            company, all time.
                                          type: integer
                                        numJobsFound:
                                          description: >-
                                            Job posts of this company that matched
                                            your job filters, when you sent any.
                                          type: integer
                                        numJobsLast30Days:
                                          description: Job posts published in the last 30 days.
                                          type: integer
                                        numKeywords:
                                          description: >-
                                            Distinct keywords detected in the
                                            company's job posts.
                                          type: integer
                                        numTechnologies:
                                          description: >-
                                            Distinct technologies detected in the
                                            company's job posts.
                                          type: integer
                                        possibleDomains:
                                          description: >-
                                            Every domain TheirStack associates with
                                            the company.
                                          items:
                                            type: string
                                          type: array
                                        postalCode:
                                          description: Headquarters postal code.
                                          type: string
                                        publiclyTradedExchange:
                                          description: Exchange the company lists on.
                                          type: string
                                        publiclyTradedSymbol:
                                          description: Stock ticker, for listed companies.
                                          type: string
                                        seoDescription:
                                          description: >-
                                            Meta description from the company's
                                            website.
                                          type: string
                                        technologiesFound:
                                          description: >-
                                            The technologies from your technology
                                            filters that this company was matched
                                            on. Empty unless you filtered by
                                            technology.
                                          items:
                                            properties:
                                              category:
                                                description: Category the technology sits in.
                                                type: string
                                              categorySlug:
                                                description: Slug for that category.
                                                type: string
                                              confidence:
                                                description: >-
                                                  How sure TheirStack is that the company
                                                  uses it: high, medium or low.
                                                type: string
                                              firstFoundUtc:
                                                description: >-
                                                  UTC epoch timestamp in seconds (Unix
                                                  time) the technology was first seen.
                                                  Multiply by 1000 for a JS Date in
                                                  milliseconds.
                                                type: number
                                              image:
                                                description: Technology logo URL.
                                                format: uri
                                                type: string
                                              jobs:
                                                description: >-
                                                  Job posts mentioning the technology, all
                                                  time.
                                                type: integer
                                              jobsLast180Days:
                                                description: >-
                                                  Job posts mentioning it in the last 180
                                                  days.
                                                type: integer
                                              jobsLast30Days:
                                                description: >-
                                                  Job posts mentioning it in the last 30
                                                  days.
                                                type: integer
                                              jobsLast7Days:
                                                description: >-
                                                  Job posts mentioning it in the last 7
                                                  days.
                                                type: integer
                                              lastFoundUtc:
                                                description: >-
                                                  UTC epoch timestamp in seconds (Unix
                                                  time) the technology was last seen.
                                                  Multiply by 1000 for a JS Date in
                                                  milliseconds.
                                                type: number
                                              name:
                                                description: Technology name.
                                                type: string
                                              parentCategory:
                                                description: Parent category.
                                                type: string
                                              parentCategorySlug:
                                                description: Slug for that parent category.
                                                type: string
                                              rankWithinCategory:
                                                description: >-
                                                  Rank among the company's technologies in
                                                  the same category, 1 being the most
                                                  used.
                                                type: integer
                                              relativeOccurrenceWithinCategory:
                                                description: >-
                                                  Share of the company's mentions within
                                                  this category that are of this
                                                  technology, 0 to 1.
                                                type: number
                                              score:
                                                description: >-
                                                  TheirStack's own relevance score for the
                                                  match.
                                                type: number
                                              slug:
                                                description: >-
                                                  Technology slug. This is the value the
                                                  technology filters take.
                                                type: string
                                              thumbnail:
                                                description: Smaller technology logo URL.
                                                format: uri
                                                type: string
                                              type:
                                                description: >-
                                                  Whether the row is a technology or a
                                                  buying-intent keyword.
                                                type: string
                                            required:
                                              - name
                                            type: object
                                          type: array
                                        technologyNames:
                                          description: >-
                                            Human-readable names for those
                                            technologies.
                                          items:
                                            type: string
                                          type: array
                                        technologySlugs:
                                          description: >-
                                            Technology slugs found in the company's
                                            job posts. These are the values the
                                            technology filters take.
                                          items:
                                            type: string
                                          type: array
                                        totalFundingUsd:
                                          description: Total capital raised, in USD.
                                          type: number
                                        url:
                                          description: Company website URL.
                                          format: uri
                                          type: string
                                        urlSource:
                                          description: >-
                                            Where TheirStack sourced the company
                                            website URL.
                                          type: string
                                        ycBatch:
                                          description: >-
                                            Y Combinator batch, e.g. W20, for
                                            companies that went through it.
                                          type: string
                                      required:
                                        - name
                                      type: object
                                    type: array
                                  totalCompanies:
                                    description: >-
                                      Distinct companies matching the filters.
                                      TheirStack computes it only when you send
                                      includeTotalResults.
                                    type: integer
                                  totalResults:
                                    description: >-
                                      Rows matching the filters across all
                                      pages. TheirStack computes it only when
                                      you send includeTotalResults, and omits it
                                      otherwise.
                                    type: integer
                                  truncatedCompanies:
                                    description: >-
                                      Companies TheirStack withheld because the
                                      plan's result ceiling was reached.
                                    type: integer
                                  truncatedResults:
                                    description: >-
                                      Rows TheirStack withheld because the
                                      plan's result ceiling was reached.
                                    type: integer
                                required:
                                  - companies
                                type: object
                          found:
                            description: False when nothing matched the filters.
                            type: boolean
                        required:
                          - found
                          - data
                        title: Company Search - TheirStack output
                        type: object
                      - type: 'null'
                    description: >-
                      Normalized output, or null when the replay payload was not
                      retained.
                  provider:
                    description: Always "AnyAPI".
                    type: string
                  replayed:
                    description: >-
                      True when this response replays the durable result of an
                      earlier run without billing or upstream execution.
                    type: boolean
                  resultId:
                    description: >-
                      Opaque handle to the full unshaped result, cached ~15 min.
                      Re-shape it for free (fields/max_items/summary/jq) via GET
                      /v1/results/{id}, no re-billing. Absent when the result
                      was too large to cache.
                    type: string
                required:
                  - output
                  - provider
                  - costUsd
                  - items
                  - replayed
                type: object
          description: Normalized result.
          headers:
            Idempotency-Replayed:
              description: >-
                Present only when the request carried an Idempotency-Key this
                gateway honored. "false" means the key was claimed and the run
                executed freshly; "true" means it replayed a prior identical run
                and was NOT charged again. Absent means either no key was sent
                or this gateway does not honor keys, so a retry could be charged
                twice.
              schema:
                enum:
                  - 'false'
                  - 'true'
                type: string
            PAYMENT-RESPONSE:
              description: Inline x402 payment receipt.
              schema:
                type: string
            Payment-Receipt:
              description: Inline mpp payment receipt.
              schema:
                type: string
            X-PAYMENT-RESPONSE:
              description: Inline x402 payment receipt.
              schema:
                type: string
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
          description: >-
            Input did not match the schema, or the upstream rejected the
            request.
        '401':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
          description: Missing or invalid API key.
        '402':
          content:
            application/json:
              schema:
                oneOf:
                  - $ref: '#/components/schemas/PaymentRequiredError'
                  - $ref: '#/components/schemas/TrialCapReached'
            application/problem+json:
              schema:
                properties:
                  challengeId:
                    minLength: 1
                    type: string
                  status:
                    const: 402
                    type: integer
                required:
                  - status
                  - challengeId
                type: object
          description: >-
            Insufficient wallet balance or spend cap, or an inline-payment
            challenge. Agent trials receive a trial_cap_reached continuation
            with a live RFC 8628 device authorization.
          headers:
            PAYMENT-REQUIRED:
              description: Inline x402 payment challenge.
              schema:
                type: string
            WWW-Authenticate:
              description: Inline mpp payment challenge.
              schema:
                type: string
        '404':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
          description: Unknown SKU, or the upstream had no matching resource.
        '409':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
          description: >-
            Idempotency collision. Codes: idempotency_in_progress means retry
            after the Retry-After delay; idempotency_conflict means use a new
            key for different request semantics; idempotency_needs_review means
            stop retrying and contact AnyAPI support with X-Anyapi-Request-Id.
        '422':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
          description: >-
            The request was well formed but this API cannot serve the requested
            target site; the body's `alternatives` array lists the AnyAPI APIs
            that can.
        '429':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
          description: >-
            The upstream was rate limited; inspect `payment` when present before
            deciding whether to retry.
        '500':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
          description: >-
            An internal error prevented completion. Inspect payment when present
            before retrying.
        '502':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
          description: >-
            Every provider failed with a server/transport error, or inline
            payment settlement could not be confirmed; inspect `payment` when
            present before retrying.
      security:
        - bearerAuth: []
        - apiKeyAuth: []
        - {}
components:
  schemas:
    Error:
      properties:
        code:
          description: Stable machine-readable error code when the endpoint defines one.
          type: string
        error:
          description: Customer-safe error message.
          type: string
        payment:
          $ref: '#/components/schemas/Payment'
        requestId:
          description: >-
            This run's AnyAPI request id, the same value as the
            X-Anyapi-Request-Id response header. Quote it to support. Absent on
            endpoints that do not execute a run.
          format: uuid
          type: string
      required:
        - error
      type: object
    PaymentRequiredError:
      allOf:
        - $ref: '#/components/schemas/Error'
        - properties:
            error:
              not:
                const: trial_cap_reached
          type: object
    TrialCapReached:
      properties:
        error:
          const: trial_cap_reached
          type: string
        message:
          description: >-
            Human-relayable continuation instructions, including an executable
            token poll.
          type: string
        upgrade:
          $ref: '#/components/schemas/AgentUpgrade'
      required:
        - error
        - message
        - upgrade
      type: object
    Payment:
      properties:
        costUsd:
          description: Known USD payment amount for this request.
          minimum: 0
          type: number
        rail:
          minLength: 1
          type: string
        settlementState:
          enum:
            - charged_undelivered
            - indeterminate
          type: string
      required:
        - rail
        - settlementState
        - costUsd
      type: object
    AgentUpgrade:
      properties:
        authorizationServer:
          format: uri
          type: string
        clientId:
          type: string
        device:
          $ref: '#/components/schemas/DeviceUpgrade'
        scope:
          type: string
      required:
        - authorizationServer
        - scope
      type: object
    DeviceUpgrade:
      properties:
        deviceCode:
          type: string
        expiresIn:
          minimum: 0
          type: integer
        grantType:
          type: string
        interval:
          minimum: 1
          type: integer
        tokenEndpoint:
          format: uri
          type: string
        userCode:
          type: string
        verificationUri:
          format: uri
          type: string
        verificationUriComplete:
          format: uri
          type: string
      required:
        - verificationUriComplete
        - verificationUri
        - userCode
        - deviceCode
        - tokenEndpoint
        - grantType
        - interval
        - expiresIn
      type: object
  securitySchemes:
    bearerAuth:
      description: Your AnyAPI key as a Bearer token.
      scheme: bearer
      type: http
      x-default: YOUR_ANYAPI_KEY
    apiKeyAuth:
      description: Your AnyAPI key.
      in: header
      name: X-API-Key
      type: apiKey
      x-default: YOUR_ANYAPI_KEY

````