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

# Company Cloud Footprint Search

> Search the public cloud and hosting footprint of companies: which providers, countries and regions they run infrastructure in. Each row is one company at one provider in one country. See the [Cloud Footprint Search guide](/en/developer-guides/search/cloud-footprint-search).



## OpenAPI

````yaml en-openapi POST /companies/cloud_footprints/search
openapi: 3.0.0
info:
  description: >-
    The Pubrio API delivers market expansion intelligence — real-time signals
    that flag when a company enters a new market — alongside the company and
    people data beneath them. Search, look up, and enrich accounts and contacts,
    and subscribe to typed, dated movement signals across 200+ markets.
  version: 1.0.0
  title: Pubrio OpenAPI
  termsOfService: https://pubrio.com/en/terms-of-service
  contact:
    email: king.lai@pubrio.com
    name: King Lai
    url: https://pubrio.com/en/get-in-touch
  license:
    name: Apache 2.0
    url: http://www.apache.org/licenses/LICENSE-2.0.html
servers:
  - url: https://api.pubrio.com
security:
  - pubrio_api_key: []
tags:
  - name: Profile
    description: Workspace profile information and usage statistics
  - name: Enrichment
    description: Enrich people and company records with detailed B2B data
  - name: Lookalike
    description: Find companies similar to a given company
  - name: Search
    description: Search for people, companies, jobs, news, and advertisements with filters
  - name: Lookup
    description: >-
      Look up detailed information for specific people, companies, jobs, news,
      advertisements, and technologies
  - name: LinkedIn
    description: Look up people and company data via LinkedIn profile URLs
  - name: Redeem
    description: Redeem credits to unlock people contact details (single and batch)
  - name: Channels
    description: Manage outreach channel templates (create, update, delete, list)
  - name: Monitor
    description: Create and manage data monitors with webhooks, statistics, and processing
  - name: Filters
    description: >-
      Retrieve available filter values for search parameters (technologies,
      locations, verticals, etc.)
  - name: API Keys
    description: List and inspect API request logs and usage analytics for API keys
  - name: Insights
    description: Aggregated signal insights for companies (jobs, news, advertisements).
  - name: Export
    description: Bulk data exports (credit-gated).
  - name: Expansion
    description: >-
      Company market-expansion intelligence: signals, stages, markets, and
      exports.
externalDocs:
  description: >-
    The Pubrio API is used to search, preview and enrich Contacts and Accounts.
    Pubrio database provides extensive B2B contacts and sales intelligence data.
  url: https://docs.pubrio.com
paths:
  /companies/cloud_footprints/search:
    post:
      tags:
        - Search
      summary: Search for company cloud footprints
      description: >-
        Search the public cloud and hosting footprint of companies: which
        providers, countries and regions they run infrastructure in. Each row is
        one company at one provider in one country. See the [Cloud Footprint
        Search guide](/en/developer-guides/search/cloud-footprint-search).
      operationId: companies_search_cloud_footprints
      parameters: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                providers:
                  $ref: '#/components/schemas/providers'
                exclude_providers:
                  $ref: '#/components/schemas/exclude_providers'
                target_locations:
                  $ref: '#/components/schemas/target_locations'
                exclude_target_locations:
                  $ref: '#/components/schemas/exclude_target_locations'
                cloud_regions:
                  $ref: '#/components/schemas/cloud_regions'
                exclude_cloud_regions:
                  $ref: '#/components/schemas/exclude_cloud_regions'
                cities:
                  $ref: '#/components/schemas/cities'
                exclude_cities:
                  $ref: '#/components/schemas/exclude_cities'
                first_seen_dates:
                  $ref: '#/components/schemas/first_seen_dates'
                last_seen_dates:
                  $ref: '#/components/schemas/last_seen_dates'
                is_cross_border_only:
                  $ref: '#/components/schemas/is_cross_border_only'
                host_count:
                  $ref: '#/components/schemas/host_count'
                server_count:
                  $ref: '#/components/schemas/server_count'
                shared_server_count:
                  $ref: '#/components/schemas/shared_server_count'
                region_count:
                  $ref: '#/components/schemas/region_count'
                city_count:
                  $ref: '#/components/schemas/city_count'
                cloud_footprint_host_count:
                  $ref: '#/components/schemas/cloud_footprint_host_count'
                cloud_footprint_server_count:
                  $ref: '#/components/schemas/cloud_footprint_server_count'
                cloud_footprint_shared_server_count:
                  $ref: '#/components/schemas/cloud_footprint_shared_server_count'
                cloud_footprint_provider_count:
                  $ref: '#/components/schemas/cloud_footprint_provider_count'
                cloud_footprint_country_count:
                  $ref: '#/components/schemas/cloud_footprint_country_count'
                cloud_footprint_cross_border_country_count:
                  $ref: >-
                    #/components/schemas/cloud_footprint_cross_border_country_count
                cloud_footprint_region_count:
                  $ref: '#/components/schemas/cloud_footprint_region_count'
                cloud_footprint_city_count:
                  $ref: '#/components/schemas/cloud_footprint_city_count'
                company_locations:
                  $ref: '#/components/schemas/company_locations'
                cloud_footprint_id:
                  $ref: '#/components/schemas/cloud_footprint_id'
                cloud_footprint_ids:
                  $ref: '#/components/schemas/cloud_footprint_ids'
                companies:
                  $ref: '#/components/schemas/companies'
                domains:
                  $ref: '#/components/schemas/domains'
                per_page:
                  $ref: '#/components/schemas/per_page'
                page:
                  $ref: '#/components/schemas/page'
                is_ascending_order:
                  $ref: '#/components/schemas/is_ascending_order'
                cloud_footprint_providers:
                  $ref: '#/components/schemas/cloud_footprint_providers'
                cloud_footprint_target_locations:
                  $ref: '#/components/schemas/cloud_footprint_target_locations'
                cloud_footprint_primary_provider:
                  $ref: '#/components/schemas/cloud_footprint_primary_provider'
                domain:
                  $ref: '#/components/schemas/domain'
                domain_search_id:
                  $ref: '#/components/schemas/domain_search_id'
                linkedin_urls:
                  $ref: '#/components/schemas/company_linkedin_urls'
                filter_conditions:
                  $ref: '#/components/schemas/cloud_footprint_filter_conditions'
      responses:
        '200':
          description: Paginated cloud footprint rows.
          content:
            application/json:
              schema:
                type: object
              example:
                metadata:
                  profile: null
                  filters:
                    page: 1
                    per_page: 1
                    is_cross_border_only: true
                    language: en
                  ignored_fields: []
                data:
                  pagination:
                    page: 1
                    per_page: 1
                    total_entries: 48700
                    total_pages: 48700
                    total_display_pages: 250
                    is_timeout: false
                  cloud_footprints:
                    - cloud_footprint_id: 042fee02-5121-4f23-a166-69bc48e9dfe8
                      domain_search_id: 2ebd09b1-3bdf-4bf0-9732-c2ed6a734f77
                      provider: AWS
                      country_code: US
                      company_country_code: CL
                      is_home_market: false
                      host_count: 232
                      server_count: 3
                      shared_server_count: 0
                      region_count: 1
                      city_count: 0
                      cloud_regions:
                        - us-east-1
                      cities: null
                      first_seen_at: '2026-07-26T16:57:20.362Z'
                      last_seen_at: '2026-09-04T10:07:09.799Z'
                      last_modified: '2026-09-04T10:26:52.183Z'
                      companies:
                        logo_url: >-
                          https://buckets.pubrio.com/company-logo/MTc4ODM0MDY5Nmlsajlzc25qMXJ0aWFwLmNvbWxpbmtlZGluXzQ3Njc2Nzkw.jpg
                        domain_search_id: 2ebd09b1-3bdf-4bf0-9732-c2ed6a734f77
                        company_name: RTIAP Soluciones Tecnológicas SpA
                        linkedin_name: rtiap
                        country_code: CL
                        company_url: http://www.rtiap.com
                        domain: rtiap.com
                      evidence_url: >-
                        https://www.pubrio.com/evidence/84c941ea04a8fa9ed1bbeabc8ff496a7
        '400':
          $ref: '#/components/responses/general_error'
        '429':
          $ref: '#/components/responses/rate_limit_error'
        '500':
          $ref: '#/components/responses/server_error'
components:
  schemas:
    providers:
      type: array
      items:
        type: string
      example:
        - AWS
        - Cloudflare
        - Hetzner
      description: >-
        Restrict results to footprint rows matching these cloud or hosting
        providers. Scoped to this footprint row — one provider in one country.
    exclude_providers:
      type: array
      items:
        type: string
      example:
        - AWS
        - Cloudflare
        - Hetzner
      description: >-
        Remove footprint rows matching these cloud or hosting providers. Scoped
        to this footprint row — one provider in one country.
    target_locations:
      type: array
      items:
        type: string
      example:
        - TW
        - AE
        - 'NO'
      description: >-
        Country codes the results must target. Combines with `filter_conditions`
        as OR by default — a result matches if it targets any of them.
    exclude_target_locations:
      type: array
      items:
        type: string
      example:
        - IS
        - GB
        - FR
        - IE
        - ES
      description: >-
        Country codes the results must not target. Combines with
        `filter_conditions` as OR by default — a result matches if it targets
        any of them.
    cloud_regions:
      type: array
      items:
        type: string
      example:
        - us-east-1
        - eu-central-1
      description: >-
        Restrict results to footprint rows matching these cloud regions. Scoped
        to this footprint row — one provider in one country.
    exclude_cloud_regions:
      type: array
      items:
        type: string
      example:
        - us-east-1
        - eu-central-1
      description: >-
        Remove footprint rows matching these cloud regions. Scoped to this
        footprint row — one provider in one country.
    cities:
      type: array
      items:
        type: string
      example:
        - Ashburn
        - Frankfurt
      description: >-
        Restrict results to footprint rows matching these cities. Scoped to this
        footprint row — one provider in one country.
    exclude_cities:
      type: array
      items:
        type: string
      example:
        - Ashburn
        - Frankfurt
      description: >-
        Remove footprint rows matching these cities. Scoped to this footprint
        row — one provider in one country.
    first_seen_dates:
      type: array
      items:
        type: string
        nullable: true
      minItems: 2
      maxItems: 2
      example:
        - '2026-01-01'
        - null
      description: >-
        Two ISO 8601 dates (YYYY-MM-DD) bounding when the footprint was first
        seen. Scoped to this footprint row — one provider in one country.
    last_seen_dates:
      type: array
      items:
        type: string
        nullable: true
      minItems: 2
      maxItems: 2
      example:
        - '2026-01-01'
        - null
      description: >-
        Two ISO 8601 dates (YYYY-MM-DD) bounding when the footprint was last
        seen. Scoped to this footprint row — one provider in one country.
    is_cross_border_only:
      type: boolean
      example: true
      description: >-
        When true, return only footprint rows outside the company's home market.
        Rows whose company has no known headquarters are excluded.
    host_count:
      type: array
      items:
        type: integer
        nullable: true
      minItems: 2
      maxItems: 2
      example:
        - 1
        - null
      description: >-
        Minimum and maximum hosts. Use `null` for an open-ended bound. Scoped to
        this footprint row — one provider in one country.
    server_count:
      type: array
      items:
        type: integer
        nullable: true
      minItems: 2
      maxItems: 2
      example:
        - 1
        - null
      description: >-
        Minimum and maximum servers (distinct IP addresses). Use `null` for an
        open-ended bound. Scoped to this footprint row — one provider in one
        country.
    shared_server_count:
      type: array
      items:
        type: integer
        nullable: true
      minItems: 2
      maxItems: 2
      example:
        - 1
        - null
      description: >-
        Minimum and maximum servers shared with other companies. Use `null` for
        an open-ended bound. Scoped to this footprint row — one provider in one
        country.
    region_count:
      type: array
      items:
        type: integer
        nullable: true
      minItems: 2
      maxItems: 2
      example:
        - 1
        - null
      description: >-
        Minimum and maximum cloud regions. Use `null` for an open-ended bound.
        Scoped to this footprint row — one provider in one country.
    city_count:
      type: array
      items:
        type: integer
        nullable: true
      minItems: 2
      maxItems: 2
      example:
        - 1
        - null
      description: >-
        Minimum and maximum cities. Use `null` for an open-ended bound. Scoped
        to this footprint row — one provider in one country.
    cloud_footprint_host_count:
      type: array
      items:
        type: integer
        nullable: true
      minItems: 2
      maxItems: 2
      example:
        - 1
        - null
      description: >-
        Minimum and maximum hosts. Use `null` for an open-ended bound. Counted
        for the whole company, across every provider and country.
    cloud_footprint_server_count:
      type: array
      items:
        type: integer
        nullable: true
      minItems: 2
      maxItems: 2
      example:
        - 1
        - null
      description: >-
        Minimum and maximum servers (distinct IP addresses). Use `null` for an
        open-ended bound. Counted for the whole company, across every provider
        and country.
    cloud_footprint_shared_server_count:
      type: array
      items:
        type: integer
        nullable: true
      minItems: 2
      maxItems: 2
      example:
        - 1
        - null
      description: >-
        Minimum and maximum servers shared with other companies. Use `null` for
        an open-ended bound. Counted for the whole company, across every
        provider and country.
    cloud_footprint_provider_count:
      type: array
      items:
        type: integer
        nullable: true
      minItems: 2
      maxItems: 2
      example:
        - 1
        - null
      description: >-
        Minimum and maximum distinct providers used by the company. Use `null`
        for an open-ended bound. Counted for the whole company, across every
        provider and country.
    cloud_footprint_country_count:
      type: array
      items:
        type: integer
        nullable: true
      minItems: 2
      maxItems: 2
      example:
        - 1
        - null
      description: >-
        Minimum and maximum countries the company hosts in. Use `null` for an
        open-ended bound. Counted for the whole company, across every provider
        and country.
    cloud_footprint_cross_border_country_count:
      type: array
      items:
        type: integer
        nullable: true
      minItems: 2
      maxItems: 2
      example:
        - 1
        - null
      description: >-
        Minimum and maximum countries outside the company's home market. Use
        `null` for an open-ended bound. Counted for the whole company, across
        every provider and country.
    cloud_footprint_region_count:
      type: array
      items:
        type: integer
        nullable: true
      minItems: 2
      maxItems: 2
      example:
        - 1
        - null
      description: >-
        Minimum and maximum cloud regions. Use `null` for an open-ended bound.
        Counted for the whole company, across every provider and country.
    cloud_footprint_city_count:
      type: array
      items:
        type: integer
        nullable: true
      minItems: 2
      maxItems: 2
      example:
        - 1
        - null
      description: >-
        Minimum and maximum cities. Use `null` for an open-ended bound. Counted
        for the whole company, across every provider and country.
    company_locations:
      type: array
      items:
        type: string
      example:
        - US
        - SG
        - CN
      description: >-
        The location of the company headquarters. Check out `location` endpoints
        under the Filters tab for more information.
    cloud_footprint_id:
      type: string
      format: uuid
      example: f28215e6-f6ed-40c2-ac9b-d8e70164c0be
      description: Identifier of a single cloud footprint row.
    cloud_footprint_ids:
      type: array
      items:
        type: string
        format: uuid
      example:
        - f28215e6-f6ed-40c2-ac9b-d8e70164c0be
      description: Identifiers of specific cloud footprint rows, for exporting a selection.
    companies:
      type: array
      items:
        type: string
        format: uuid
      description: >-
        A list of unique identifiers (domain_search_id) used for company and
        people search operations.
    domains:
      type: array
      items:
        type: string
      example:
        - pubrio.com
      description: >-
        List of company domains used for company and people search operations.
        If we receive a URL such as `www.pubrio.com` or
        `https://docs.pubrio.com/`, the system will convert it to `pubrio.com`
        for processing.
    per_page:
      type: integer
      example: 25
      default: 25
      maximum: 25
      description: >-
        Records per page. Defaults to 25, which is also the ceiling on most
        plans — the limit is your subscription's `max_search_per_page`, returned
        by [Profile](/en/api-reference/endpoint/profile/profile). Exceeding it
        returns **HTTP 416** with code `41676` (or `41613` on company and people
        search), not a clamped result set.
    page:
      type: integer
      example: 1
      default: 1
      description: >-
        Page number, starting at 1. The ceiling is your subscription's
        `max_search_page` (`max_company_search_page` for company search),
        returned by [Profile](/en/api-reference/endpoint/profile/profile).
        Exceeding it returns **HTTP 416**.
    is_ascending_order:
      type: boolean
      default: false
      example: false
      description: >-
        Sort direction. Results are returned newest-first by default; set `true`
        for oldest-first. There is no `sort_by` on this endpoint — the sort key
        is fixed and stated in the endpoint description.
    cloud_footprint_providers:
      type: array
      items:
        type: string
      example:
        - AWS
        - Cloudflare
      description: >-
        Companies that use any of these providers anywhere. The unprefixed
        `providers` narrows the rows returned; this narrows the companies.
    cloud_footprint_target_locations:
      type: array
      items:
        type: string
      example:
        - DE
        - SG
      description: Companies present in any of these countries anywhere in their footprint.
    cloud_footprint_primary_provider:
      type: array
      items:
        type: string
      example:
        - AWS
      description: Companies whose single largest provider is one of these.
    domain:
      type: string
      example: pubrio.com
      description: >-
        A company domain used for company search operations. If we receive a URL
        such as `www.pubrio.com` or `https://docs.pubrio.com/`, the system will
        convert it to `pubrio.com` for processing.
    domain_search_id:
      type: string
      format: uuid
      description: A unique identifier for the company search operation.
    company_linkedin_urls:
      type: array
      items:
        type: string
      example:
        - https://www.linkedin.com/company/pubrio
      description: >-
        The fully formed URL of the LinkedIn company profile. URL begin with
        `http` and contain `linkedin.com/company/`
    cloud_footprint_filter_conditions:
      type: array
      items:
        type: object
        properties:
          key:
            type: string
            enum:
              - cloud_regions
              - exclude_cloud_regions
              - cities
              - exclude_cities
            example: cloud_regions
            description: Which array filter the operator applies to.
          operator:
            type: string
            enum:
              - or
              - and
            example: and
            description: >-
              `or` matches rows carrying any listed value; `and` requires all of
              them.
      description: >-
        Switches an array filter from OR (default: match any value) to AND
        (match all values). Applies to `cloud_regions`, `exclude_cloud_regions`,
        `cities` and `exclude_cities`.
  responses:
    general_error:
      description: >-
        Bad request. The request was malformed or contained invalid parameters.
        Check the error code and message for details.
      content:
        application/json:
          schema:
            required:
              - code
              - message
              - details
            type: object
            properties:
              code:
                example: 40001
                type: integer
              message:
                example: >-
                  Errors and codes will vary depending on the scenario, please
                  see the documentation for information.
                type: string
              details:
                type: object
    rate_limit_error:
      description: >-
        Rate limit exceeded. Too many requests were made in a given time period.
        Retry after the rate limit window resets.
      content:
        application/json:
          schema:
            required:
              - error
            type: object
            properties:
              error:
                example: Request rate limit exceeded. Please wait and try again later.
                type: string
    server_error:
      description: >-
        Internal server error. An unexpected error occurred on the server.
        Contact support if the error persists.
      content:
        application/json:
          schema:
            required:
              - error
            type: object
            properties:
              error:
                example: An unexpected error occurred on the server.
                type: string
  securitySchemes:
    pubrio_api_key:
      type: apiKey
      name: pubrio-api-key
      description: >-
        A unique API token that represents the actions you perform through the
        API and the corresponding permissions and operations. You can create it
        through the [Settings](https://dashboard.pubrio.com/#/settings/)
        section.
      in: header

````