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

# Get a company's activity (buying-signal) timeline

> Paged signal timeline for a company, newest first. Raw person identifiers are omitted.



## OpenAPI

````yaml https://app.stairoids.com/api/docs/public get /public/v1/companies/{companyId}/activity
openapi: 3.0.1
info:
  title: Stairoids API
  description: The Next Generation API
  version: '1.0'
servers:
  - url: http://app.stairoids.com/api
    description: Generated server url
security:
  - ApiKeyAuth: []
tags:
  - name: Public API - Funnel
    description: Funnel stages, distribution, and pipeline trend metrics.
  - name: Public API - Attribution
    description: Traffic sources, campaigns, and the accounts they drove.
  - name: Public API - Lead Scores
    description: Signal details and per-person scores.
  - name: Public API - Reference
    description: Your ICPs, personas, labels, account lists, and signal categories.
  - name: Public API - Activity
    description: Per-person and general (cross-company) signal feeds.
  - name: Public API - LinkedIn Ads
    description: LinkedIn ad campaigns, posts, likes, and company engagement.
  - name: Public API - Companies
    description: Search, look up, and read activity for scored companies.
  - name: Public API - Opportunities
    description: Your best outreach opportunities right now.
paths:
  /public/v1/companies/{companyId}/activity:
    get:
      tags:
        - Public API - Companies
      summary: Get a company's activity (buying-signal) timeline
      description: >-
        Paged signal timeline for a company, newest first. Raw person
        identifiers are omitted.
      operationId: getPublicCompanyActivity
      parameters:
        - name: companyId
          in: path
          required: true
          schema:
            type: integer
            format: int64
        - name: page
          in: query
          required: false
          schema:
            type: integer
            format: int32
            default: 0
        - name: size
          in: query
          required: false
          schema:
            type: integer
            format: int32
            default: 20
      responses:
        '200':
          description: OK
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/PublicPagePublicActivityDTO'
        '400':
          description: Bad Request
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/CustomError'
        '402':
          description: Payment Required
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/PlanLimitError'
        '403':
          description: Forbidden
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/AgencyLimitError'
        '500':
          description: Internal Server Error
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/CustomError'
components:
  schemas:
    PublicPagePublicActivityDTO:
      type: object
      properties:
        data:
          type: array
          description: The items on this page.
          items:
            $ref: '#/components/schemas/PublicActivityDTO'
        page:
          type: integer
          description: Zero-based page index.
          format: int32
          example: 0
        size:
          type: integer
          description: Requested page size.
          format: int32
          example: 20
        totalElements:
          type: integer
          description: Total number of matching items across all pages.
          format: int64
          example: 137
        totalPages:
          type: integer
          description: Total number of pages.
          format: int32
          example: 7
      description: A page of results.
    CustomError:
      type: object
      properties:
        errorType:
          type: string
          enum:
            - EMAIL_ALREADY_EXISTS
            - INVALID_EMAIL
            - UNAUTHORIZED
            - UNEXPECTED_ERROR
            - WRONG_PASSWORD
            - STILL_GENERATING
            - MISSING_HEADERS
            - USER_NOT_FOUND
            - WEAK_PASSWORD
            - VALIDATION_ERROR
            - NOT_FOUND
            - PLAN_LIMIT_EXCEEDED
            - FEATURE_NOT_AVAILABLE
            - PAYMENT_ERROR
            - ACTIVE_SUBSCRIPTION_EXISTS
            - AGENCY_LIMIT_EXCEEDED
            - PAYMENT_METHOD_REQUIRED
            - BILLED_BY_AGENCY
            - PAYMENT_AUTHENTICATION_REQUIRED
            - PLAN_BELOW_RECOMMENDED
            - TRIAL_NOT_ELIGIBLE
    PlanLimitError:
      type: object
      properties:
        errorType:
          type: string
          enum:
            - EMAIL_ALREADY_EXISTS
            - INVALID_EMAIL
            - UNAUTHORIZED
            - UNEXPECTED_ERROR
            - WRONG_PASSWORD
            - STILL_GENERATING
            - MISSING_HEADERS
            - USER_NOT_FOUND
            - WEAK_PASSWORD
            - VALIDATION_ERROR
            - NOT_FOUND
            - PLAN_LIMIT_EXCEEDED
            - FEATURE_NOT_AVAILABLE
            - PAYMENT_ERROR
            - ACTIVE_SUBSCRIPTION_EXISTS
            - AGENCY_LIMIT_EXCEEDED
            - PAYMENT_METHOD_REQUIRED
            - BILLED_BY_AGENCY
            - PAYMENT_AUTHENTICATION_REQUIRED
            - PLAN_BELOW_RECOMMENDED
            - TRIAL_NOT_ELIGIBLE
        category:
          type: string
        currentUsage:
          type: integer
          format: int32
        limit:
          type: integer
          format: int32
        addOnSlug:
          type: string
        planSlug:
          type: string
        addOnPriceMonthly:
          type: integer
          format: int32
        upgradePlanSlug:
          type: string
        upgradePlanName:
          type: string
        upgradePlanPriceMonthly:
          type: integer
          format: int32
    AgencyLimitError:
      type: object
      properties:
        errorType:
          type: string
          enum:
            - EMAIL_ALREADY_EXISTS
            - INVALID_EMAIL
            - UNAUTHORIZED
            - UNEXPECTED_ERROR
            - WRONG_PASSWORD
            - STILL_GENERATING
            - MISSING_HEADERS
            - USER_NOT_FOUND
            - WEAK_PASSWORD
            - VALIDATION_ERROR
            - NOT_FOUND
            - PLAN_LIMIT_EXCEEDED
            - FEATURE_NOT_AVAILABLE
            - PAYMENT_ERROR
            - ACTIVE_SUBSCRIPTION_EXISTS
            - AGENCY_LIMIT_EXCEEDED
            - PAYMENT_METHOD_REQUIRED
            - BILLED_BY_AGENCY
            - PAYMENT_AUTHENTICATION_REQUIRED
            - PLAN_BELOW_RECOMMENDED
            - TRIAL_NOT_ELIGIBLE
        category:
          type: string
        currentUsage:
          type: integer
          format: int32
        limit:
          type: integer
          format: int32
    PublicActivityDTO:
      type: object
      properties:
        id:
          type: integer
          description: >-
            Lead-score value id. Pass this as leadScoreId to POST
            /lead-score-details.
          format: int64
          example: 991234
        signalType:
          type: string
          description: Signal type.
          example: COMPANY_VISIT_WEBSITE
        causeId:
          type: string
          description: Id of the underlying cause (e.g. a page-visit id, a like urn).
        causeType:
          type: string
          description: Type of the underlying cause.
          example: PAGE_VISIT
        weightOverride:
          type: integer
          description: Manual weight override for this signal, if any.
          format: int32
          nullable: true
        timestamp:
          type: integer
          description: When the signal occurred, epoch millis.
          format: int64
          example: 1719500000000
        entityId:
          type: string
          description: >-
            The entity the signal is about — a company id or a person public
            identifier.
          example: '4521'
        entityType:
          type: string
          description: Whether the entity is a company or a person.
          example: COMPANY
          enum:
            - COMPANY
            - PERSON
        owner:
          $ref: '#/components/schemas/PublicOwnerDTO'
        channel:
          type: string
          description: Higher-level channel the signal belongs to.
          example: website
        name:
          type: string
          description: Human-readable headline for the signal.
          example: 'Visited page: Pricing'
        description:
          type: string
          description: Longer description of the signal, if any.
        logo:
          type: string
          description: Icon/logo URL for the signal, if any.
        useIcon:
          type: boolean
          description: Whether the logo should render as an icon.
          example: false
      description: A single buying-signal event in an activity timeline.
    PublicOwnerDTO:
      type: object
      properties:
        id:
          type: integer
          description: Owner user id.
          format: int64
          example: 30
        name:
          type: string
          description: Display name (organization name, or first + last).
          example: Stairoids
        firstName:
          type: string
          description: Owner first name.
          example: Thomas
        lastName:
          type: string
          description: Owner last name.
          example: Berrens
        profilePicture:
          type: string
          description: Owner profile picture URL or data.
          nullable: true
      description: The user who owns this resource (id, name, avatar — no email).
  securitySchemes:
    ApiKeyAuth:
      type: apiKey
      description: >-
        Your organization's public API key. Manage it at GET
        /api/user/public-api-key.
      name: X-Api-Key
      in: header

````