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

# List visiting companies via API key

> Requires an active X-API-Key belonging to an organization with Company ID permission and an active white-label. The API key determines the organization; caller-supplied organization IDs are not accepted. Person-data API and single-IP lookup permissions are not required. Explicit pixels must belong to the API-key organization and must not be deleted. Omitted pixel scope includes the organization's pixels; an empty pixelIds array on the list selects no pixels. Active, lifetime and unexpired trial organizations qualify; an explicit white-label Company ID grant also permits expired organizations and ended trials. Suspended organizations are excluded. Both company visitor operations share a limit of 60 requests per 60 seconds per client IP. Use RateLimit-Limit, RateLimit-Remaining and RateLimit-Reset for pacing, and Retry-After after 429. Custom date ranges cannot exceed 366 days. Bot activity is excluded. classification defaults to company, a view including company and unclassified_organization associations but excluding ISPs; select isp or unclassified_organization to inspect only that subset. Blank names and Unknown company placeholders are excluded from every view, ignoring case and surrounding whitespace. Response classification preserves the evidence classification: company can use explicit provider company-match evidence even on an ISP connection; legacy results require corporate access and explicit non-ISP evidence; inclusion in the Companies view does not upgrade unclassified evidence. View membership filters IP associations before grouping and counting; IP counts are not people counts. Company attributes are the latest known IP association, not proof of historical IP ownership or visitor employment. An ISP classification does not prove a residential location. Source values are preserved under camelCase field names, including nullable isInternetProvider and accessType; classification is the separate computed interpretation. Dates default to the last 30 days in UTC. A preset window and custom from/to are mutually exclusive; custom dates require both boundaries. companyProfile contains stored company enrichment including industry, employee range, description, offices, founded year, website, branding and retrieval time; it is null when no unambiguous cached company match exists. Reads do not start a paid lookup. Company enrichment and visit processing are asynchronous; asOf is the response time, not a completeness watermark. Initial history is populated for 30 days. Coverage boundaries describe the initial capture target; initialBackfillComplete describes event-copy progress, not enrichment completion. ingestionCursorAt is available only after initial backfill and describes source ingestion progress, not visit completeness. Null coverage means processing has not started. historyComplete remains false because observed source events cannot prove complete visitor capture. Responses contain no full IP addresses or personal profiles. Dashboard company admission consumes one shared Company Credit per organization/company/billing period; successful API lookups use that same allowance per request. Reads and refreshes are free. Only admitted company/unclassified results are visible; previously admitted companies remain visible after exhaustion. ISP-only results are not charged as dashboard companies. Filters combine with AND; values within one facet combine with OR. Name/website and LinkedIn searches are case-insensitive substrings. Unknown employee counts are included in the smallest band (employeeMax at most 50 and employeeMin omitted, 0 or 1); other numeric ranges exclude unknown counts. Page pagination defaults to page 1 and 25 companies, maximum 100 per page and page 1000. Ordering defaults to lastSeen descending with companyKey as a deterministic tie-breaker. Each request resolves its own date boundary; results can change between pages as activity arrives. Empty pages return data: []. Dedicated admin API credentials also authorize platform-wide management, including white-label targets; customer bearer/API-key restrictions described above remain unchanged. Existing resource validation and business-state rules still apply.



## OpenAPI

````yaml https://api.aws53.cloud/openapi-data.json post /v1/data/companies/query
openapi: 3.1.0
info:
  title: Identification API
  version: 1.0.0
  description: >-
    Programmatic access to your visitor data and pixel management. Authenticate
    with your API key (X-API-Key header).
servers:
  - url: https://api.aws53.cloud
    description: Production
security:
  - apiKeyAuth: []
tags:
  - name: Visitors
    description: Visitor resources and privacy-bounded activity.
  - name: Pixels
    description: Tracking pixel installation and configuration.
  - name: Account
    description: Organization account health and API entitlements.
  - name: Visitor Suppression
    description: Organization visitor suppression rules.
  - name: Usage
    description: Organization usage and billing-period consumption.
paths:
  /v1/data/companies/query:
    post:
      tags:
        - Visitors
      summary: List visiting companies via API key
      description: >-
        Requires an active X-API-Key belonging to an organization with Company
        ID permission and an active white-label. The API key determines the
        organization; caller-supplied organization IDs are not accepted.
        Person-data API and single-IP lookup permissions are not required.
        Explicit pixels must belong to the API-key organization and must not be
        deleted. Omitted pixel scope includes the organization's pixels; an
        empty pixelIds array on the list selects no pixels. Active, lifetime and
        unexpired trial organizations qualify; an explicit white-label Company
        ID grant also permits expired organizations and ended trials. Suspended
        organizations are excluded. Both company visitor operations share a
        limit of 60 requests per 60 seconds per client IP. Use RateLimit-Limit,
        RateLimit-Remaining and RateLimit-Reset for pacing, and Retry-After
        after 429. Custom date ranges cannot exceed 366 days. Bot activity is
        excluded. classification defaults to company, a view including company
        and unclassified_organization associations but excluding ISPs; select
        isp or unclassified_organization to inspect only that subset. Blank
        names and Unknown company placeholders are excluded from every view,
        ignoring case and surrounding whitespace. Response classification
        preserves the evidence classification: company can use explicit provider
        company-match evidence even on an ISP connection; legacy results require
        corporate access and explicit non-ISP evidence; inclusion in the
        Companies view does not upgrade unclassified evidence. View membership
        filters IP associations before grouping and counting; IP counts are not
        people counts. Company attributes are the latest known IP association,
        not proof of historical IP ownership or visitor employment. An ISP
        classification does not prove a residential location. Source values are
        preserved under camelCase field names, including nullable
        isInternetProvider and accessType; classification is the separate
        computed interpretation. Dates default to the last 30 days in UTC. A
        preset window and custom from/to are mutually exclusive; custom dates
        require both boundaries. companyProfile contains stored company
        enrichment including industry, employee range, description, offices,
        founded year, website, branding and retrieval time; it is null when no
        unambiguous cached company match exists. Reads do not start a paid
        lookup. Company enrichment and visit processing are asynchronous; asOf
        is the response time, not a completeness watermark. Initial history is
        populated for 30 days. Coverage boundaries describe the initial capture
        target; initialBackfillComplete describes event-copy progress, not
        enrichment completion. ingestionCursorAt is available only after initial
        backfill and describes source ingestion progress, not visit
        completeness. Null coverage means processing has not started.
        historyComplete remains false because observed source events cannot
        prove complete visitor capture. Responses contain no full IP addresses
        or personal profiles. Dashboard company admission consumes one shared
        Company Credit per organization/company/billing period; successful API
        lookups use that same allowance per request. Reads and refreshes are
        free. Only admitted company/unclassified results are visible; previously
        admitted companies remain visible after exhaustion. ISP-only results are
        not charged as dashboard companies. Filters combine with AND; values
        within one facet combine with OR. Name/website and LinkedIn searches are
        case-insensitive substrings. Unknown employee counts are included in the
        smallest band (employeeMax at most 50 and employeeMin omitted, 0 or 1);
        other numeric ranges exclude unknown counts. Page pagination defaults to
        page 1 and 25 companies, maximum 100 per page and page 1000. Ordering
        defaults to lastSeen descending with companyKey as a deterministic
        tie-breaker. Each request resolves its own date boundary; results can
        change between pages as activity arrives. Empty pages return data: [].
        Dedicated admin API credentials also authorize platform-wide management,
        including white-label targets; customer bearer/API-key restrictions
        described above remain unchanged. Existing resource validation and
        business-state rules still apply.
      operationId: queryVisitingCompaniesViaApiKey
      parameters:
        - name: X-Whitelabel-Slug
          in: header
          required: false
          description: >-
            Optional tenant context for admin-key operations without an
            organization target, such as creating an organization. Defaults to
            the master tenant. Must match an explicit target organization when
            both are supplied. Does not limit the key’s platform authority.
          schema:
            type: string
            minLength: 1
            maxLength: 100
          example: agency-test
        - name: X-Organization-Id
          in: header
          required: false
          description: >-
            Target organization for admin-key requests on organization-context
            routes, including Data API, intent audiences and dashboard routes
            without an organization path parameter. Required on those routes.
            When supplied with an organization path parameter, both must
            identify the same organization; conflicting targets return 400. Does
            not grant access to customer credentials.
          schema:
            type: string
            format: uuid
          example: 11111111-1111-4111-8111-111111111111
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                window:
                  type: string
                  enum:
                    - today
                    - 24h
                    - 3d
                    - 7d
                    - 14d
                    - 30d
                    - mtd
                  description: >-
                    Visit-time window; defaults to 30d when from/to are absent.
                    Mutually exclusive with from/to.
                  example: 30d
                from:
                  type: string
                  format: date-time
                  description: >-
                    Inclusive visit timestamp. Requires to; custom range maximum
                    366 days.
                  example: '2026-09-01T00:00:00Z'
                to:
                  type: string
                  format: date-time
                  description: >-
                    Exclusive visit timestamp. Requires from; future end is
                    clamped to request time.
                  example: '2026-09-11T00:00:00Z'
                timezone:
                  type: string
                  maxLength: 100
                  default: UTC
                  description: >-
                    IANA timezone used for calendar presets and daily
                    time-series buckets; defaults to UTC.
                  example: America/New_York
                classification:
                  type: string
                  enum:
                    - company
                    - isp
                    - unclassified_organization
                  default: company
                  description: >-
                    Dashboard view. Defaults to company, which includes company
                    and unclassified_organization associations but excludes
                    ISPs. Select isp for ISP associations only, or
                    unclassified_organization for that subset only. Blank names
                    and Unknown company placeholders are excluded from every
                    view, ignoring case and surrounding whitespace. Response
                    classification preserves the evidence classification, not
                    the selected view. No company found results are not listed.
                  example: company
                pixelIds:
                  type: array
                  items:
                    type: string
                    format: uuid
                  maxItems: 100
                  description: >-
                    Narrow to authorized pixels. Omitted means all pixels
                    visible to this user; empty means no pixels.
                search:
                  type: string
                  minLength: 1
                  maxLength: 200
                  description: Case-insensitive substring of company name or website.
                linkedin:
                  type: string
                  minLength: 1
                  maxLength: 500
                  description: Case-insensitive substring of company LinkedIn URL.
                industries:
                  type: array
                  items:
                    type: string
                    minLength: 1
                    maxLength: 200
                  maxItems: 50
                subIndustries:
                  type: array
                  items:
                    type: string
                    minLength: 1
                    maxLength: 200
                  maxItems: 50
                employeeMin:
                  type: integer
                  minimum: 0
                  maximum: 9007199254740991
                  description: >-
                    Inclusive minimum employee count. Unknown counts are
                    included only in the smallest band: employeeMax at most 50
                    and employeeMin omitted, 0 or 1.
                  example: 10
                employeeMax:
                  type: integer
                  minimum: 0
                  maximum: 9007199254740991
                  description: >-
                    Inclusive maximum employee count; must not be below
                    employeeMin. A maximum at most 50 with minimum omitted, 0 or
                    1 also includes unknown counts; returned counts remain null.
                  example: 500
                revenueRanges:
                  type: array
                  items:
                    type: string
                    minLength: 1
                    maxLength: 200
                  maxItems: 50
                countries:
                  type: array
                  items:
                    type: string
                    minLength: 1
                    maxLength: 200
                  maxItems: 50
                states:
                  type: array
                  items:
                    type: string
                    minLength: 1
                    maxLength: 200
                  maxItems: 50
                cities:
                  type: array
                  items:
                    type: string
                    minLength: 1
                    maxLength: 200
                  maxItems: 50
                pageHosts:
                  type: array
                  items:
                    type: string
                    minLength: 1
                    maxLength: 200
                  maxItems: 50
                pagePath:
                  type: string
                  minLength: 1
                  maxLength: 1000
                page:
                  type: integer
                  minimum: 1
                  maximum: 1000
                  default: 1
                limit:
                  type: integer
                  minimum: 1
                  maximum: 100
                  default: 25
                sort:
                  type: string
                  enum:
                    - lastSeen
                    - firstSeen
                    - events
                    - companyName
                  default: lastSeen
                direction:
                  type: string
                  enum:
                    - asc
                    - desc
                  default: desc
              additionalProperties: false
            example:
              window: 30d
              timezone: UTC
              classification: company
              industries:
                - Software
              employeeMin: 10
              employeeMax: 500
              page: 1
              limit: 25
              sort: lastSeen
              direction: desc
      responses:
        '200':
          description: Matched companies and scoped activity counts.
          headers:
            RateLimit-Limit:
              description: Maximum requests per 60-second window.
              schema:
                type: integer
            RateLimit-Remaining:
              description: Requests remaining in the current window.
              schema:
                type: integer
            RateLimit-Reset:
              description: Seconds until the current window resets.
              schema:
                type: integer
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: array
                    items:
                      type: object
                      properties:
                        companyKey:
                          type: string
                        company:
                          type: object
                          properties:
                            businessCategory:
                              type: string
                              description: >-
                                Provider audience classification; empty when
                                unavailable.
                            businessSegment:
                              type: string
                              description: >-
                                Provider audience segment; empty when
                                unavailable.
                            dataCompleteness:
                              type: string
                              description: >-
                                Provider detail classification, not a computed
                                completeness score; empty when unavailable.
                            isInternetProvider:
                              type:
                                - boolean
                                - 'null'
                              description: >-
                                Whether the provider identifies the network
                                connection as an ISP; null when unknown. Can be
                                true when classification is company.
                            accessType:
                              type: string
                              description: >-
                                Provider network access classification; empty
                                when unavailable.
                            classification:
                              type: string
                              enum:
                                - company
                                - isp
                                - unclassified_organization
                                - no_company_found
                              description: >-
                                Company association classification. An explicit
                                provider company match can identify a business
                                on an ISP connection; isInternetProvider and
                                accessType still describe the network. Without
                                explicit match evidence, company requires
                                identity, corporate access and non-ISP status.
                            name:
                              type: string
                              description: >-
                                Company name; can be empty if only a company
                                identifier was supplied.
                            website:
                              type: string
                              description: >-
                                Company website or domain; empty when
                                unavailable.
                            tradeName:
                              type: string
                              description: >-
                                Company marketing name, not necessarily a
                                registered trade name; empty when unavailable.
                            industry:
                              type: string
                              description: Company industry; empty when unavailable.
                            subIndustry:
                              type: string
                              description: Company sub-industry; empty when unavailable.
                            linkedinUrl:
                              type:
                                - string
                                - 'null'
                              description: >-
                                Company LinkedIn profile URL, or null when
                                unavailable.
                            employeeCount:
                              type:
                                - integer
                                - 'null'
                              minimum: 0
                              maximum: 9007199254740991
                              description: >-
                                Provider-reported employee count, or null when
                                unavailable.
                            annualSales:
                              type:
                                - integer
                                - 'null'
                              minimum: 0
                              maximum: 9007199254740991
                              description: >-
                                Provider-reported annual sales amount, or null
                                when unavailable; currency is not supplied by
                                the source.
                            revenueRange:
                              type: string
                              description: Provider revenue range; empty when unavailable.
                            primaryNaics:
                              type: string
                              description: >-
                                Primary NAICS code, retained as text; empty when
                                unavailable.
                            primarySic:
                              type: string
                              description: >-
                                Primary SIC code, retained as text; empty when
                                unavailable.
                            city:
                              type: string
                              description: Company city; empty when unavailable.
                            state:
                              type: string
                              description: Company state or region; empty when unavailable.
                            postalCode:
                              type: string
                              description: Company postal code; empty when unavailable.
                            countryCode:
                              type: string
                              description: Company country code; empty when unavailable.
                            countryName:
                              type: string
                              description: Company country name; empty when unavailable.
                            companyProfile:
                              $ref: '#/components/schemas/EnrichedCompanyProfile'
                            companyId:
                              type: string
                              description: >-
                                Source company identifier; empty when the source
                                supplied a name only.
                            status:
                              type: string
                              enum:
                                - ok
                              description: >-
                                Successful source lookup status; classification
                                separately describes company evidence.
                            sourceVersion:
                              type: string
                              pattern: ^\d+$
                              description: >-
                                Source revision as a decimal string to preserve
                                UInt64 precision.
                            lookedUpAt:
                              type: string
                              format: date-time
                              description: >-
                                Time the source last looked up this IP, in UTC;
                                not a visit timestamp.
                          required:
                            - businessCategory
                            - businessSegment
                            - dataCompleteness
                            - isInternetProvider
                            - accessType
                            - classification
                            - name
                            - website
                            - tradeName
                            - industry
                            - subIndustry
                            - linkedinUrl
                            - employeeCount
                            - annualSales
                            - revenueRange
                            - primaryNaics
                            - primarySic
                            - city
                            - state
                            - postalCode
                            - countryCode
                            - countryName
                            - companyId
                            - status
                            - sourceVersion
                            - lookedUpAt
                        events:
                          type: integer
                          minimum: 0
                        pageviews:
                          type: integer
                          minimum: 0
                        distinctIps:
                          type: integer
                          minimum: 0
                        firstSeen:
                          type: string
                          format: date-time
                        lastSeen:
                          type: string
                          format: date-time
                        checkedAt:
                          type: string
                          format: date-time
                      required:
                        - companyKey
                        - company
                        - events
                        - pageviews
                        - distinctIps
                        - firstSeen
                        - lastSeen
                        - checkedAt
                  pagination:
                    type: object
                    properties:
                      page:
                        type: integer
                        minimum: 0
                      limit:
                        type: integer
                        minimum: 0
                      hasMore:
                        type: boolean
                    required:
                      - page
                      - limit
                      - hasMore
                  meta:
                    type: object
                    properties:
                      from:
                        type: string
                        format: date-time
                      to:
                        type: string
                        format: date-time
                      timezone:
                        type: string
                      asOf:
                        type: string
                        format: date-time
                      association:
                        type: string
                        enum:
                          - latest_known_ip_company
                      historyComplete:
                        type: boolean
                        enum:
                          - false
                        description: >-
                          Completeness is not inferred from empty results.
                          Initial history is populated asynchronously for the
                          last 30 days.
                      coverageFrom:
                        type:
                          - string
                          - 'null'
                        format: date-time
                        description: >-
                          Inclusive initial 30-day event-copy target; null
                          before worker initialization.
                      coverageTo:
                        type:
                          - string
                          - 'null'
                        format: date-time
                        description: >-
                          Exclusive initial event-copy target, not the latest
                          available visit timestamp.
                      initialBackfillComplete:
                        type: boolean
                        description: >-
                          Initial event copying completed. Does not guarantee
                          every IP has a company enrichment result.
                      ingestionCursorAt:
                        type:
                          - string
                          - 'null'
                        format: date-time
                        description: >-
                          Saved source ingestion cursor after initial event
                          copying; not a visit-time watermark.
                      coverageUpdatedAt:
                        type:
                          - string
                          - 'null'
                        format: date-time
                        description: Timestamp of the most recently saved worker progress.
                    required:
                      - from
                      - to
                      - timezone
                      - asOf
                      - association
                      - historyComplete
                      - coverageFrom
                      - coverageTo
                      - initialBackfillComplete
                      - ingestionCursorAt
                      - coverageUpdatedAt
                required:
                  - data
                  - pagination
                  - meta
              examples:
                populated:
                  value:
                    data:
                      - companyKey: >-
                          aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
                        company:
                          businessCategory: Enterprise Business
                          businessSegment: Software & Technology
                          dataCompleteness: Detailed
                          isInternetProvider: false
                          classification: company
                          name: Example Software
                          website: example.test
                          tradeName: Example
                          industry: Software
                          subIndustry: Business Software
                          linkedinUrl: https://www.linkedin.com/company/example-company
                          employeeCount: 100
                          companyProfile:
                            id: '123456'
                            name: Example Software
                            linkedinUrl: https://www.linkedin.com/company/123456/
                            sourceLinkedinUrl: https://www.linkedin.com/company/example-company
                            slug: example-company
                            platform: linkedin
                            website: https://example.test/
                            domain: example.test
                            description: Synthetic company profile.
                            tagline: null
                            industries:
                              - Software
                            specialties:
                              - Analytics
                            employeeCount: 100
                            employeeCountRange: 51-200
                            studentCount: null
                            foundedYear: 2015
                            headquarters: null
                            headquartersPostalCode: null
                            latitude: null
                            longitude: null
                            offices:
                              - city: Example City
                                state: Example State
                                region: null
                                country: US
                                address: null
                                postalCode: null
                                description: null
                                isHeadquarters: true
                            phone: null
                            logoUrl: null
                            logoB2Url: null
                            coverUrl: null
                            coverB2Url: null
                            followerCount: 500
                            isVerified: false
                            pageType: null
                            jobSearchUrl: null
                            hashtags: []
                            similarCompanyIds: []
                            callToAction: null
                            source: everyinfra
                            fetchedAt: '2026-09-11T12:00:00.000Z'
                            sourceUpdatedAt: null
                          annualSales: 1000000
                          revenueRange: 1M-10M
                          primaryNaics: '513210'
                          primarySic: '7372'
                          city: Example City
                          state: Example State
                          postalCode: '12345'
                          countryCode: US
                          countryName: United States
                          companyId: example-company-1
                          status: ok
                          sourceVersion: '1'
                          accessType: corporate
                          lookedUpAt: '2026-09-11T12:00:00.000Z'
                        events: 4
                        pageviews: 3
                        distinctIps: 2
                        firstSeen: '2026-09-10T10:00:00.000Z'
                        lastSeen: '2026-09-11T11:00:00.000Z'
                        checkedAt: '2026-09-11T12:00:00.000Z'
                    pagination:
                      page: 1
                      limit: 25
                      hasMore: false
                    meta:
                      from: '2026-08-12T12:00:00.000Z'
                      to: '2026-09-11T12:00:00.000Z'
                      timezone: UTC
                      asOf: '2026-09-11T12:00:00.000Z'
                      association: latest_known_ip_company
                      historyComplete: false
                      coverageFrom: '2026-08-12T12:00:00.000Z'
                      coverageTo: '2026-09-11T12:00:00.000Z'
                      initialBackfillComplete: false
                      ingestionCursorAt: null
                      coverageUpdatedAt: '2026-09-11T12:00:00.000Z'
                empty:
                  value:
                    data: []
                    pagination:
                      page: 1
                      limit: 25
                      hasMore: false
                    meta:
                      from: '2026-08-12T12:00:00.000Z'
                      to: '2026-09-11T12:00:00.000Z'
                      timezone: UTC
                      asOf: '2026-09-11T12:00:00.000Z'
                      association: latest_known_ip_company
                      historyComplete: false
                      coverageFrom: '2026-08-12T12:00:00.000Z'
                      coverageTo: '2026-09-11T12:00:00.000Z'
                      initialBackfillComplete: false
                      ingestionCursorAt: null
                      coverageUpdatedAt: '2026-09-11T12:00:00.000Z'
        '400':
          description: Invalid filters, date range, pagination or resource identifiers.
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: object
                    properties:
                      code:
                        type: string
                      message:
                        type: string
                      details: {}
                    required:
                      - code
                      - message
                  meta:
                    type: object
                    properties:
                      timestamp:
                        type: string
                        format: date-time
                      request_id:
                        type: string
                    required:
                      - timestamp
                      - request_id
                required:
                  - error
                  - meta
              example:
                error:
                  code: HTTP_ERROR
                  message: Invalid company visitor request
                meta:
                  timestamp: '2026-09-11T12:00:00.000Z'
                  request_id: 00000000-0000-4000-8000-000000000001
        '401':
          description: Missing or invalid API key.
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: object
                    properties:
                      code:
                        type: string
                      message:
                        type: string
                      details: {}
                    required:
                      - code
                      - message
                  meta:
                    type: object
                    properties:
                      timestamp:
                        type: string
                        format: date-time
                      request_id:
                        type: string
                    required:
                      - timestamp
                      - request_id
                required:
                  - error
                  - meta
              example:
                error:
                  code: HTTP_ERROR
                  message: Missing X-API-Key header
                meta:
                  timestamp: '2026-09-11T12:00:00.000Z'
                  request_id: 00000000-0000-4000-8000-000000000001
        '403':
          description: >-
            Revoked API key, company visitor permission disabled, ineligible
            organization or inaccessible pixel.
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: object
                    properties:
                      code:
                        type: string
                      message:
                        type: string
                      details: {}
                    required:
                      - code
                      - message
                  meta:
                    type: object
                    properties:
                      timestamp:
                        type: string
                        format: date-time
                      request_id:
                        type: string
                    required:
                      - timestamp
                      - request_id
                required:
                  - error
                  - meta
              example:
                error:
                  code: HTTP_ERROR
                  message: Access denied
                meta:
                  timestamp: '2026-09-11T12:00:00.000Z'
                  request_id: 00000000-0000-4000-8000-000000000001
        '429':
          description: Request rate limit exceeded.
          headers:
            RateLimit-Limit:
              description: Maximum requests per 60-second window.
              schema:
                type: integer
            RateLimit-Remaining:
              description: Requests remaining in the current window.
              schema:
                type: integer
            RateLimit-Reset:
              description: Seconds until the current window resets.
              schema:
                type: integer
            Retry-After:
              description: Seconds to wait before retrying.
              schema:
                type: integer
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: object
                    properties:
                      code:
                        type: string
                      message:
                        type: string
                      details: {}
                    required:
                      - code
                      - message
                  meta:
                    type: object
                    properties:
                      timestamp:
                        type: string
                        format: date-time
                      request_id:
                        type: string
                    required:
                      - timestamp
                      - request_id
                required:
                  - error
                  - meta
              example:
                error:
                  code: RATE_LIMIT_EXCEEDED
                  message: Too many requests, please try again later
                meta:
                  timestamp: '2026-09-11T12:00:00.000Z'
                  request_id: 00000000-0000-4000-8000-000000000001
        '503':
          description: Company visitor data is temporarily unavailable.
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: object
                    properties:
                      code:
                        type: string
                      message:
                        type: string
                      details: {}
                    required:
                      - code
                      - message
                  meta:
                    type: object
                    properties:
                      timestamp:
                        type: string
                        format: date-time
                      request_id:
                        type: string
                    required:
                      - timestamp
                      - request_id
                required:
                  - error
                  - meta
              example:
                error:
                  code: HTTP_ERROR
                  message: Company visitor data is temporarily unavailable
                meta:
                  timestamp: '2026-09-11T12:00:00.000Z'
                  request_id: 00000000-0000-4000-8000-000000000001
      security:
        - apiKeyAuth: []
        - adminApiKeyAuth: []
components:
  schemas:
    EnrichedCompanyProfile:
      type:
        - object
        - 'null'
      properties:
        id:
          type: string
        name:
          type: string
        linkedinUrl:
          type: string
        sourceLinkedinUrl:
          type:
            - string
            - 'null'
        slug:
          type:
            - string
            - 'null'
        platform:
          type: string
          enum:
            - linkedin
        website:
          type:
            - string
            - 'null'
        domain:
          type:
            - string
            - 'null'
        description:
          type:
            - string
            - 'null'
        tagline:
          type:
            - string
            - 'null'
        industries:
          type: array
          items:
            type: string
        specialties:
          type: array
          items:
            type: string
        employeeCount:
          type:
            - integer
            - 'null'
          minimum: 0
        employeeCountRange:
          type:
            - string
            - 'null'
        studentCount:
          type:
            - integer
            - 'null'
          minimum: 0
        foundedYear:
          type:
            - integer
            - 'null'
          minimum: 0
        headquarters:
          type:
            - string
            - 'null'
        headquartersPostalCode:
          type:
            - string
            - 'null'
        latitude:
          type:
            - number
            - 'null'
        longitude:
          type:
            - number
            - 'null'
        offices:
          type: array
          items:
            type: object
            properties:
              city:
                type:
                  - string
                  - 'null'
              state:
                type:
                  - string
                  - 'null'
              region:
                type:
                  - string
                  - 'null'
              country:
                type:
                  - string
                  - 'null'
              address:
                type:
                  - string
                  - 'null'
              postalCode:
                type:
                  - string
                  - 'null'
              description:
                type:
                  - string
                  - 'null'
              isHeadquarters:
                type:
                  - boolean
                  - 'null'
            required:
              - city
              - state
              - region
              - country
              - address
              - postalCode
              - description
              - isHeadquarters
        phone:
          type:
            - string
            - 'null'
        logoUrl:
          type:
            - string
            - 'null'
        logoB2Url:
          type:
            - string
            - 'null'
        coverUrl:
          type:
            - string
            - 'null'
        coverB2Url:
          type:
            - string
            - 'null'
        followerCount:
          type:
            - integer
            - 'null'
          minimum: 0
        isVerified:
          type:
            - boolean
            - 'null'
        pageType:
          type:
            - string
            - 'null'
        jobSearchUrl:
          type:
            - string
            - 'null'
        hashtags:
          type: array
          items:
            type: string
        similarCompanyIds:
          type: array
          items:
            type: string
        callToAction:
          type:
            - object
            - 'null'
          properties:
            text:
              type:
                - string
                - 'null'
            url:
              type:
                - string
                - 'null'
            type:
              type:
                - string
                - 'null'
          required:
            - text
            - url
            - type
        companyType:
          type:
            - string
            - 'null'
        affiliatedCompanyIds:
          type: array
          items:
            type: string
        showcasePageIds:
          type: array
          items:
            type: string
        similarCompanies:
          type: array
          items:
            type: object
            properties:
              id:
                type:
                  - string
                  - 'null'
              name:
                type:
                  - string
                  - 'null'
              description:
                type:
                  - string
                  - 'null'
              logoUrl:
                type:
                  - string
                  - 'null'
              url:
                type:
                  - string
                  - 'null'
              industry:
                type:
                  - string
                  - 'null'
            required:
              - id
              - name
              - description
              - logoUrl
              - url
              - industry
        fundingData:
          type:
            - object
            - 'null'
          properties:
            numFundingRounds:
              type:
                - integer
                - 'null'
              minimum: 0
            companyCrunchbaseUrl:
              type:
                - string
                - 'null'
            lastFundingRound:
              type:
                - object
                - 'null'
              properties:
                fundingType:
                  type:
                    - string
                    - 'null'
                announcedOn:
                  type:
                    - string
                    - 'null'
                crunchbaseUrl:
                  type:
                    - string
                    - 'null'
                numOtherInvestors:
                  type:
                    - integer
                    - 'null'
                  minimum: 0
                moneyRaised:
                  type:
                    - object
                    - 'null'
                  properties:
                    currencyCode:
                      type:
                        - string
                        - 'null'
                    amount:
                      type:
                        - string
                        - 'null'
                  required:
                    - currencyCode
                    - amount
                leadInvestors:
                  type: array
                  items:
                    type: object
                    properties:
                      name:
                        type:
                          - string
                          - 'null'
                      crunchbaseUrl:
                        type:
                          - string
                          - 'null'
                    required:
                      - name
                      - crunchbaseUrl
              required:
                - fundingType
                - announcedOn
                - crunchbaseUrl
                - numOtherInvestors
                - moneyRaised
                - leadInvestors
          required:
            - numFundingRounds
            - companyCrunchbaseUrl
            - lastFundingRound
        source:
          type: string
          enum:
            - everyinfra
            - bridgly
        fetchedAt:
          type: string
          format: date-time
        sourceUpdatedAt:
          type:
            - string
            - 'null'
          format: date-time
        sourceScrapedAt:
          type:
            - string
            - 'null'
          format: date-time
      required:
        - id
        - name
        - linkedinUrl
        - sourceLinkedinUrl
        - slug
        - platform
        - website
        - domain
        - description
        - tagline
        - industries
        - specialties
        - employeeCount
        - employeeCountRange
        - studentCount
        - foundedYear
        - headquarters
        - headquartersPostalCode
        - latitude
        - longitude
        - offices
        - phone
        - logoUrl
        - logoB2Url
        - coverUrl
        - coverB2Url
        - followerCount
        - isVerified
        - pageType
        - jobSearchUrl
        - hashtags
        - similarCompanyIds
        - callToAction
        - source
        - fetchedAt
        - sourceUpdatedAt
      description: >-
        Latest stored company enrichment. Missing source fields are null or
        empty arrays. Employee count is provider-reported. fetchedAt is our
        retrieval time; sourceUpdatedAt is null when the source does not
        disclose its update time. Media prefers durable copies when available.
  securitySchemes:
    apiKeyAuth:
      type: apiKey
      in: header
      name: X-API-Key
      description: >-
        Organization API key (sk_...). Get yours from Settings > API Keys in the
        dashboard.
    adminApiKeyAuth:
      type: apiKey
      in: header
      name: X-Admin-API-Key
      description: >-
        Dedicated full-access management credential, issued to an active
        master-superadmin actor. Never a customer organization API key. Use one
        credential per request. Admin-header requests are limited to 600 per 60
        seconds per source IP per process, in addition to existing route limits;
        429 responses emit Retry-After and RateLimit-Limit/Remaining/Reset.
        Organization-scoped operations require X-Organization-Id where no target
        organization is in the path.

````

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