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

# List attributed Meetings with snapshot cursor pagination.

> Uses the credential workspace and verifies its creator still has workspace read access. The feed omits meetingWith unless leads:contact_read is granted; source calendars and provider payloads are never returned.



## OpenAPI

````yaml /api-reference/customer-api-mcp-v1.openapi.yaml get /customer/meetings
openapi: 3.0.3
info:
  title: traxy Customer API and MCP V1
  version: 1.0.0
  description: >
    Public customer-facing read API, Ordinal Audience Analytics endpoints, and

    remote MCP Streamable HTTP endpoint. Customer REST and Ordinal requests use

    bearer API keys. MCP uses OAuth access tokens issued for the traxy MCP

    resource; Customer API keys are never accepted by MCP. Public REST clients
    must

    not send organizationId. Default API keys cover the general read API.

    Ordinal Audience Analytics is self-serve for paid workspaces and requires

    explicitly selected audience_analytics scopes on the key.

    The MCP surface exposes scope-gated tools through tools/list, including

    agent:read tools for safe automated lead-finding agent visibility. Latest

    MCP protocol version is 2025-11-25.
servers:
  - url: https://api.traxy.ai/api/v1
    description: Production
security:
  - CustomerApiKey: []
tags:
  - name: Customer REST
  - name: Ordinal Audience Analytics
  - name: MCP OAuth
  - name: MCP
paths:
  /customer/meetings:
    get:
      tags:
        - Customer REST
      summary: List attributed Meetings with snapshot cursor pagination.
      description: >-
        Uses the credential workspace and verifies its creator still has
        workspace read access. The feed omits meetingWith unless
        leads:contact_read is granted; source calendars and provider payloads
        are never returned.
      parameters:
        - in: query
          name: range
          schema:
            default: 30d
            type: string
            enum:
              - 7d
              - 30d
              - 90d
              - all
        - in: query
          name: limit
          schema:
            type: integer
            minimum: 1
            maximum: 100
            default: 50
        - in: query
          name: cursor
          schema:
            type: string
            maxLength: 512
        - name: leadId
          in: query
          schema:
            type: string
            format: uuid
        - in: query
          name: targetType
          schema:
            type: string
            enum:
              - PERSON
              - COMPANY
      responses:
        '200':
          description: Meetings read result
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CustomerMeetingsFeed'
        '400':
          $ref: '#/components/responses/ValidationFailed'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          description: Read capability or active workspace membership required.
        '503':
          description: >-
            Meetings temporarily unavailable; retry after the Retry-After
            header.
          headers:
            Retry-After:
              schema:
                type: integer
                example: 1
      security:
        - CustomerApiKey:
            - leads:read
components:
  schemas:
    CustomerMeetingsFeed:
      type: object
      properties:
        data:
          type: array
          items:
            type: object
            properties:
              id:
                type: string
                format: uuid
                pattern: >-
                  ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
              meetingCount:
                type: integer
                minimum: 0
                maximum: 9007199254740991
              targetType:
                type: string
                enum:
                  - PERSON
                  - COMPANY
              lifecycleStatus:
                type: string
                enum:
                  - PENDING
                  - TENTATIVE
                  - ACCEPTED
                  - DECLINED
                  - OCCURRED
                  - CANCELLED
              direction:
                type: string
                enum:
                  - INBOUND
                  - OUTBOUND
                  - UNKNOWN
              meetingStartAt:
                type: string
                format: date-time
                pattern: >-
                  ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
              bookedAt:
                type: string
                format: date-time
                pattern: >-
                  ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
              attributedAt:
                type: string
                format: date-time
                pattern: >-
                  ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
              company:
                type: object
                properties:
                  name:
                    type: string
                    nullable: true
                  domain:
                    type: string
                    nullable: true
                required:
                  - name
                  - domain
                additionalProperties: false
              leadRelationship:
                type: string
                enum:
                  - DIRECT
                  - COMPANY
                nullable: true
              meetingOutcome:
                type: string
                enum:
                  - already_client
                  - closed_won
                nullable: true
              lead:
                type: object
                properties:
                  id:
                    type: string
                    format: uuid
                    pattern: >-
                      ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                  name:
                    type: string
                  headline:
                    type: string
                    nullable: true
                  title:
                    type: string
                    nullable: true
                  icpMatchPercent:
                    type: number
                  foundAt:
                    type: string
                    nullable: true
                required:
                  - id
                  - name
                  - headline
                  - title
                  - icpMatchPercent
                  - foundAt
                additionalProperties: false
                nullable: true
              meetingWith:
                type: object
                properties:
                  name:
                    type: string
                    nullable: true
                  email:
                    type: string
                    nullable: true
                required:
                  - name
                  - email
                additionalProperties: false
                nullable: true
            required:
              - id
              - meetingCount
              - targetType
              - lifecycleStatus
              - direction
              - meetingStartAt
              - bookedAt
              - attributedAt
              - company
              - leadRelationship
              - meetingOutcome
              - lead
            additionalProperties: false
        page:
          type: object
          properties:
            limit:
              type: integer
              minimum: 1
              maximum: 100
            cursor:
              type: string
              nullable: true
            nextCursor:
              type: string
              nullable: true
          required:
            - limit
            - cursor
            - nextCursor
          additionalProperties: false
      required:
        - data
        - page
      additionalProperties: false
    ErrorEnvelope:
      type: object
      required:
        - error
      properties:
        error:
          type: object
          required:
            - code
            - message
            - status
            - request_id
          properties:
            code:
              type: string
              example: invalid_api_key
            message:
              type: string
              example: Invalid API key.
            status:
              type: integer
              example: 401
            request_id:
              type: string
  responses:
    ValidationFailed:
      description: Request failed boundary validation.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorEnvelope'
    Unauthorized:
      description: Invalid, expired, or revoked API key.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorEnvelope'
  securitySchemes:
    CustomerApiKey:
      type: http
      scheme: bearer
      bearerFormat: trxy_live_<public_id>_<secret>
      description: >-
        API key created from Integrations > API & MCP > API keys. Used for
        Customer REST and Ordinal Audience Analytics, not MCP OAuth.

````

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