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

# Get visiting company activity 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. companyKey is the opaque key returned by the company list. Pass the same classification request filter used for the list, not the company response classification, to retain the same activity scope. Returns company attributes, scoped totals and paginated activity ordered newest first with pixelId and eventKey ascending as deterministic tie-breakers. Defaults to page 1 and 25 activity records; maximum 100 records per page and page 1000. Each request resolves its own date boundary; activity can change between pages. IPv4 conceals the final two octets; IPv6 conceals the final 64 bits. Masked IPs are not unique identifiers. A company without matching activity in the API-key organization and authorized date/pixel scope returns company: null and an empty activity array. 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 get /v1/data/companies/{companyKey}
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/{companyKey}:
    get:
      tags:
        - Visitors
      summary: Get visiting company activity 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. companyKey is the opaque key
        returned by the company list. Pass the same classification request
        filter used for the list, not the company response classification, to
        retain the same activity scope. Returns company attributes, scoped
        totals and paginated activity ordered newest first with pixelId and
        eventKey ascending as deterministic tie-breakers. Defaults to page 1 and
        25 activity records; maximum 100 records per page and page 1000. Each
        request resolves its own date boundary; activity can change between
        pages. IPv4 conceals the final two octets; IPv6 conceals the final 64
        bits. Masked IPs are not unique identifiers. A company without matching
        activity in the API-key organization and authorized date/pixel scope
        returns company: null and an empty activity array. 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: getVisitingCompanyViaApiKey
      parameters:
        - schema:
            type: string
            pattern: ^[a-f0-9]{64}$
            description: Opaque company key returned by the visiting company list.
            example: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
          required: true
          description: Opaque company key returned by the visiting company list.
          name: companyKey
          in: path
          example: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
        - schema:
            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
          required: false
          description: >-
            Visit-time window; defaults to 30d when from/to are absent. Mutually
            exclusive with from/to.
          name: window
          in: query
          example: 30d
        - schema:
            type: string
            format: date-time
            description: >-
              Inclusive visit timestamp. Requires to; custom range maximum 366
              days.
            example: '2026-09-01T00:00:00Z'
          required: false
          description: >-
            Inclusive visit timestamp. Requires to; custom range maximum 366
            days.
          name: from
          in: query
          example: '2026-09-01T00:00:00Z'
        - schema:
            type: string
            format: date-time
            description: >-
              Exclusive visit timestamp. Requires from; future end is clamped to
              request time.
            example: '2026-09-11T00:00:00Z'
          required: false
          description: >-
            Exclusive visit timestamp. Requires from; future end is clamped to
            request time.
          name: to
          in: query
          example: '2026-09-11T00:00:00Z'
        - schema:
            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
          required: false
          description: >-
            IANA timezone used for calendar presets and daily time-series
            buckets; defaults to UTC.
          name: timezone
          in: query
          example: America/New_York
        - schema:
            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
          required: false
          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.
          name: classification
          in: query
          example: company
        - schema:
            type: string
            format: uuid
            description: >-
              Optional authorized pixel. Omitted means every pixel visible to
              the caller in this organization.
            example: 20000000-0000-4000-8000-000000000001
          required: false
          description: >-
            Optional authorized pixel. Omitted means every pixel visible to the
            caller in this organization.
          name: pixelId
          in: query
          example: 20000000-0000-4000-8000-000000000001
        - schema:
            type: integer
            minimum: 1
            maximum: 1000
            default: 1
            description: >-
              One-based activity page, ordered by visit time descending with
              stable pixel/event-key ties.
            example: 1
          required: false
          description: >-
            One-based activity page, ordered by visit time descending with
            stable pixel/event-key ties.
          name: page
          in: query
          example: 1
        - schema:
            type: integer
            minimum: 1
            maximum: 100
            default: 25
            description: Activity records per page, from 1 to 100.
            example: 25
          required: false
          description: Activity records per page, from 1 to 100.
          name: limit
          in: query
          example: 25
        - 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
      responses:
        '200':
          description: Company and masked activity, or an empty scoped result.
          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: object
                    properties:
                      company:
                        type:
                          - object
                          - 'null'
                        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
                      activity:
                        type: array
                        items:
                          type: object
                          properties:
                            eventKey:
                              type: string
                            pixelId:
                              type: string
                            occurredAt:
                              type: string
                              format: date-time
                            maskedIp:
                              type: string
                              pattern: >-
                                ^(?:\d{1,3}\.\d{1,3}\.\*\.\*|(?:[0-9a-f]{1,4}:){4}\*:\*:\*:\*)$
                              description: >-
                                IPv4 last 16 bits or IPv6 last 64 bits are
                                concealed. Not a unique identifier.
                              example: 203.0.*.*
                            pageHost:
                              type: string
                            pagePath:
                              type: string
                            eventType:
                              type: string
                          required:
                            - eventKey
                            - pixelId
                            - occurredAt
                            - maskedIp
                            - pageHost
                            - pagePath
                            - eventType
                    required:
                      - company
                      - activity
                  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:
                      company:
                        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'
                      activity:
                        - eventKey: >-
                            bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
                          pixelId: 00000000-0000-4000-8000-000000000002
                          occurredAt: '2026-09-11T11:00:00.000Z'
                          maskedIp: 192.0.*.*
                          pageHost: example.test
                          pagePath: /pricing
                          eventType: page_view
                    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:
                      company: null
                      activity: []
                    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.