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

# List company touchpoints

> List a company's touchpoints, newest first, with pagination support.
A touchpoint groups the activity around one company event, such as an
investor update, a board meeting, or an announcement, and carries the
insights extracted from that activity with citations back to the
source material.




## OpenAPI

````yaml /openapi.yaml get /companies/{companyPublicId}/touchpoints
openapi: 3.1.0
info:
  title: Concrete API
  description: >
    The Concrete API provides programmatic access to view and create select data
    in Concrete.  The API is primarily intended to facilitate data pipeline
    automations for portfolio management.
  version: 1.0.0
  license:
    name: MIT
  contact:
    name: Concrete Support
    email: support@concretehq.com
    url: https://concretehq.com
servers:
  - url: https://app.concretehq.com/api/v1
    description: Production server
security:
  - bearerAuth: []
tags:
  - name: Authentication
    description: Authentication and member information
  - name: Companies
    description: Portfolio company management
  - name: Funds
    description: Fund and portfolio management
  - name: Meetings
    description: External meeting imports
  - name: Notes
    description: Notes attached to companies and people
  - name: Connections
    description: Data connections and message uploads
  - name: Trackers
    description: Tracked metrics and their per-company value history
paths:
  /companies/{companyPublicId}/touchpoints:
    get:
      tags:
        - Companies
      summary: List company touchpoints
      description: |
        List a company's touchpoints, newest first, with pagination support.
        A touchpoint groups the activity around one company event, such as an
        investor update, a board meeting, or an announcement, and carries the
        insights extracted from that activity with citations back to the
        source material.
      operationId: listCompanyTouchpoints
      parameters:
        - name: companyPublicId
          in: path
          description: Company public ID
          required: true
          schema:
            type: string
        - name: pageToken
          in: query
          description: Token for pagination to get next page
          required: false
          schema:
            type: string
        - name: limit
          in: query
          description: 'Number of results per page (default: 100, max: 100)'
          required: false
          schema:
            type: integer
            minimum: 1
            maximum: 100
            default: 100
        - name: topic
          in: query
          description: |
            Only touchpoints with these topics. Repeat the parameter to pass
            multiple (e.g. `?topic=board-meeting&topic=company-announcement`).
          required: false
          style: form
          explode: true
          schema:
            type: array
            items:
              type: string
              enum:
                - periodic-company-update
                - company-announcement
                - board-meeting
                - adhoc-company-update
                - legal-communication
                - other
        - name: category
          in: query
          description: |
            Only touchpoints with insights in these categories. Repeat the
            parameter to pass multiple. Also narrows the `insights` returned
            on each touchpoint to the matching categories.
          required: false
          style: form
          explode: true
          schema:
            type: array
            items:
              type: string
              enum:
                - funding
                - growth
                - product
                - go_to_market
                - team
                - operations
                - financial_health
                - marketing
                - governance
                - exit
                - other
        - name: sort
          in: query
          description: |
            Sort order. May be `occurredAt`, when the underlying activity
            happened, or `updatedAt`, when the touchpoint last changed
            (content edits, insights re-derived as new activity arrived).
            Both newest first. Page tokens are only valid for the sort they
            were issued under.
          required: false
          schema:
            type: string
            enum:
              - occurredAt
              - updatedAt
            default: occurredAt
      responses:
        '200':
          description: List of touchpoints
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TouchpointsResponse'
              examples:
                investor-update:
                  summary: Periodic investor update
                  value:
                    items:
                      - publicId: tch123abc456
                        headline: Acme May 2026 investor update
                        topics:
                          - periodic-company-update
                        occurredAt: '2026-06-01T12:00:00Z'
                        updatedAt: '2026-06-02T08:14:09Z'
                        snippet: >-
                          May update covering ARR growth, the enterprise launch
                          timeline, and two senior hires.
                        emailCount: 2
                        noteCount: 0
                        meetingCount: 0
                        fileCount: 1
                        insights:
                          - publicId: ins789ghi012
                            category: growth
                            content: >-
                              ARR reached $24M in May, up 18% since the February
                              update.
                            occurredAt: '2026-06-01T12:00:00Z'
                            citations:
                              - type: file
                                publicId: fil789ghi012
                                name: Acme May 2026 Investor Update.pdf
                                extension: pdf
                                permalink: https://app.concretehq.com/v/fil789ghi012
                board-meeting:
                  summary: Board meeting with a filtered category
                  value:
                    items:
                      - publicId: tch234bcd567
                        headline: Beta Q2 board meeting
                        topics:
                          - board-meeting
                        occurredAt: '2026-07-15T17:00:00Z'
                        updatedAt: '2026-07-16T09:30:00Z'
                        snippet: >-
                          Q2 board meeting covering the bridge round and updated
                          hiring plan.
                        emailCount: 3
                        noteCount: 1
                        meetingCount: 1
                        fileCount: 2
                        insights:
                          - publicId: ins345cde678
                            category: funding
                            content: >-
                              The board approved raising a $5M bridge round
                              targeting a September close.
                            occurredAt: '2026-07-15T17:00:00Z'
                            citations:
                              - type: meeting
                                publicId: mtg456def789
                                title: Beta Q2 board meeting
                                permalink: https://app.concretehq.com/v/mtg456def789
                    nextPageToken: next_page_token_here
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
components:
  schemas:
    TouchpointsResponse:
      type: object
      required:
        - items
      properties:
        items:
          type: array
          items:
            $ref: '#/components/schemas/Touchpoint'
        nextPageToken:
          type: string
          description: Token for fetching next page
          example: next_page_token_here
    Touchpoint:
      type: object
      description: |
        A touchpoint groups the activity around one company event, such as an
        investor update, a board meeting, or an announcement. It summarizes
        the activity and carries the insights extracted from it.
      required:
        - publicId
        - headline
        - topics
        - occurredAt
        - updatedAt
        - snippet
        - emailCount
        - noteCount
        - meetingCount
        - fileCount
        - insights
      properties:
        publicId:
          type: string
          description: Touchpoint public ID
          example: tch123abc456
        headline:
          type: string
          nullable: true
          description: Headline summarizing the activity
          example: Acme May 2026 investor update
        topics:
          type: array
          nullable: true
          description: Topics classifying the touchpoint
          items:
            type: string
            enum:
              - periodic-company-update
              - company-announcement
              - board-meeting
              - adhoc-company-update
              - legal-communication
              - other
        occurredAt:
          type: string
          format: date-time
          description: When the activity occurred
        updatedAt:
          type: string
          format: date-time
          description: |
            When the touchpoint last changed: its summary or topics were
            updated, or its insights were re-derived as new activity arrived.
        snippet:
          type: string
          nullable: true
          description: Short summary of the activity
        emailCount:
          type: integer
          description: Number of emails in the touchpoint
        noteCount:
          type: integer
          description: Number of notes in the touchpoint
        meetingCount:
          type: integer
          description: Number of meetings in the touchpoint
        fileCount:
          type: integer
          description: Number of files in the touchpoint
        insights:
          type: array
          description: Insights extracted from the touchpoint's activity
          items:
            $ref: '#/components/schemas/Insight'
    Error:
      type: object
      required:
        - error
      properties:
        error:
          type: string
          description: Human-readable error message
          example: Not found
    Insight:
      type: object
      description: >-
        One extracted insight from a touchpoint's activity, with citations to
        the source material backing it.
      required:
        - publicId
        - category
        - content
        - occurredAt
        - citations
      properties:
        publicId:
          type: string
          description: Insight public ID
          example: ins789ghi012
        category:
          type: string
          description: Insight category
          enum:
            - funding
            - growth
            - product
            - go_to_market
            - team
            - operations
            - financial_health
            - marketing
            - governance
            - exit
            - other
          example: growth
        content:
          type: string
          description: The insight, as one or two sentences
          example: ARR reached $24M in May, up 18% since the February update.
        occurredAt:
          type: string
          format: date-time
          description: When the underlying activity occurred
        citations:
          type: array
          description: Source evidence backing the insight
          items:
            $ref: '#/components/schemas/Citation'
    Citation:
      type: object
      description: |
        Source evidence backing an extracted value. `type` identifies the kind
        of source entity; the type-specific metadata fields below are populated
        where they apply. Citations may include a `parent` object linking to
        the source material that contains them, for example the email a cited
        file arrived on, or the file a cited element belongs to.
      required:
        - type
        - publicId
        - permalink
      properties:
        type:
          type: string
          enum:
            - touchpoint
            - note
            - email
            - file
            - element
            - meeting
          description: |
            The kind of source entity cited: a touchpoint (related activity
            grouped around an event), a note, an email, a file, an element
            (a section of a file, such as a page or a spreadsheet tab), or a
            meeting.
          example: file
        publicId:
          type: string
          description: Public ID of the cited entity
          example: abc123def456
        permalink:
          type: string
          description: Link to view the source in the Concrete app
          example: https://app.concretehq.com/v/abc123def456
        occurredAt:
          type: string
          format: date-time
          nullable: true
          description: When the cited content occurred, where applicable
        subject:
          type: string
          nullable: true
          description: 'Emails: subject line'
          example: May investor update
        name:
          type: string
          description: 'Files: file name'
          example: Acme May 2026 Investor Update.pdf
        extension:
          type: string
          description: 'Files: file extension'
          example: pdf
        title:
          type: string
          description: 'Meetings: meeting title'
          example: Acme monthly check-in
        headline:
          type: string
          nullable: true
          description: 'Touchpoints: headline summarizing the activity'
        companyPublicId:
          type: string
          description: 'Touchpoints: public ID of the company the touchpoint belongs to'
        author:
          type: string
          description: 'Notes: author display name'
        label:
          type: string
          nullable: true
          description: 'Elements: label describing the section (e.g. a page or tab name)'
        index:
          type: integer
          description: 'Elements: position of the section within the file'
        parent:
          type: object
          description: |
            The source material containing the cited entity, shaped like a
            citation itself but without a `permalink` (use the citing entity's
            permalink). Files carry the email they arrived on; elements carry
            their file, which may in turn carry its email.
  responses:
    Unauthorized:
      description: Unauthorized
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    NotFound:
      description: Resource not found
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      description: API key authentication using Bearer token format

````