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

# Summarize message and event activity

> Returns deterministic message and event counts over an explicit UTC time window, grouped by trader or overall and bucketed by a fixed interval. An Activity Summary is evidence-grade for counts, volumes, and trends; it is not a generated narrative summary. Use this instead of paging raw messages or events to count or trend activity.



## OpenAPI

````yaml /openapi.json get /api/v1/activity-summaries
openapi: 3.1.0
info:
  title: Centaur API
  version: 1.0.0
  description: >-
    Public, read-only API for Centaur's data over REST with a companion MCP
    surface.
servers:
  - url: https://partners.centaur.io
    description: Current service base URL
security: []
tags:
  - name: System
    description: Health and service metadata endpoints.
  - name: Discovery
    description: Read-only trader and asset directory discovery endpoints.
  - name: Events
    description: >-
      Historical trade-event reads with source, trader, asset, and position
      context.
  - name: Messages
    description: >-
      Read-only access to source messages by message timestamp or Source Message
      ID.
  - name: Channel Summaries
    description: Generated channel narrative summaries selected by Source Window overlap.
  - name: Aggregate Summaries
    description: >-
      Generated aggregate narrative summaries selected by Aggregate Window
      overlap.
  - name: Positions
    description: Read-only position history and open-position live state reads.
  - name: Stats
    description: Read-only aggregate trader and asset stats.
externalDocs:
  description: Canonical Centaur API documentation
  url: https://partners.centaur.io/docs
paths:
  /api/v1/activity-summaries:
    get:
      tags:
        - Rankings
      summary: Summarize message and event activity
      description: >-
        Returns deterministic message and event counts over an explicit UTC time
        window, grouped by trader or overall and bucketed by a fixed interval.
        An Activity Summary is evidence-grade for counts, volumes, and trends;
        it is not a generated narrative summary. Use this instead of paging raw
        messages or events to count or trend activity.
      operationId: listActivitySummaries
      parameters:
        - schema:
            allOf:
              - $ref: '#/components/schemas/ActivitySummaryGroupBy'
              - description: >-
                  Group counts by `trader` (default) or return one overall group
                  with `none`.
          required: false
          description: >-
            Group counts by `trader` (default) or return one overall group with
            `none`.
          name: groupBy
          in: query
        - schema:
            allOf:
              - $ref: '#/components/schemas/ActivitySummaryInterval'
              - description: >-
                  Bucket interval: `hour`, `day` (default), or `week`. The
                  window/interval combination is rejected when it would produce
                  more than 168 buckets per group.
          required: false
          description: >-
            Bucket interval: `hour`, `day` (default), or `week`. The
            window/interval combination is rejected when it would produce more
            than 168 buckets per group.
          name: interval
          in: query
        - schema:
            anyOf:
              - anyOf:
                  - type: string
                  - type: array
                    items:
                      type: string
                  - type: array
                    items:
                      type: number
              - type: array
                items:
                  $ref: '#/components/schemas/EventType'
            description: >-
              Filter event counts to specific event types: `open`, `close`,
              `increase`, or `decrease`.
          required: false
          description: >-
            Filter event counts to specific event types: `open`, `close`,
            `increase`, or `decrease`.
          name: eventTypes
          in: query
        - schema:
            anyOf:
              - type: string
              - type: array
                items:
                  type: string
              - type: array
                items:
                  type: number
            description: Filter to specific trader IDs.
          required: false
          description: Filter to specific trader IDs.
          name: traderIds
          in: query
        - schema:
            type: string
            format: date-time
            description: >-
              Inclusive ISO-8601 lower time bound. Defaults to 7 days before the
              applied endTime.
          required: false
          description: >-
            Inclusive ISO-8601 lower time bound. Defaults to 7 days before the
            applied endTime.
          name: startTime
          in: query
        - schema:
            type: string
            format: date-time
            description: >-
              Inclusive ISO-8601 upper time bound. Defaults to the current
              server time.
          required: false
          description: >-
            Inclusive ISO-8601 upper time bound. Defaults to the current server
            time.
          name: endTime
          in: query
        - schema:
            type: integer
            minimum: 1
            maximum: 50
            description: >-
              Maximum number of groups to return, ordered by combined activity.
              Defaults to 10, maximum 50.
          required: false
          description: >-
            Maximum number of groups to return, ordered by combined activity.
            Defaults to 10, maximum 50.
          name: limit
          in: query
      responses:
        '200':
          description: Bounded activity counts per group with per-interval buckets
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                    enum:
                      - true
                  data:
                    $ref: '#/components/schemas/ActivitySummariesResponseData'
                  requestId:
                    type: string
                    example: c8e2c6e4-80dd-4ffc-9d66-4e31bf64c6b8
                required:
                  - success
                  - data
                  - requestId
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorEnvelope'
              example:
                success: false
                error:
                  code: UNAUTHORIZED
                  message: Unauthorized
                requestId: c8e2c6e4-80dd-4ffc-9d66-4e31bf64c6b8
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorEnvelope'
              example:
                success: false
                error:
                  code: FORBIDDEN
                  message: Forbidden
                requestId: c8e2c6e4-80dd-4ffc-9d66-4e31bf64c6b8
        '422':
          description: >-
            Validation error, including window/interval combinations above the
            bucket limit
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorEnvelope'
              example:
                success: false
                error:
                  code: BUCKET_LIMIT_EXCEEDED
                  message: >-
                    The requested window would produce too many buckets per
                    group. Widen the interval or narrow the startTime/endTime
                    window.
                requestId: c8e2c6e4-80dd-4ffc-9d66-4e31bf64c6b8
        '503':
          description: Authentication service temporarily unavailable
          headers:
            Retry-After:
              description: Seconds to wait before retrying authentication
              schema:
                type: integer
                minimum: 1
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorEnvelope'
              example:
                success: false
                error:
                  code: AUTHENTICATION_UNAVAILABLE
                  message: Authentication is temporarily unavailable
                requestId: c8e2c6e4-80dd-4ffc-9d66-4e31bf64c6b8
      security:
        - ApiKeyAuth: []
components:
  schemas:
    ActivitySummaryGroupBy:
      type: string
      enum:
        - trader
        - none
    ActivitySummaryInterval:
      type: string
      enum:
        - hour
        - day
        - week
    EventType:
      type: string
      enum:
        - open
        - close
        - increase
        - decrease
    ActivitySummariesResponseData:
      type: object
      properties:
        filtersApplied:
          type: object
          properties:
            groupBy:
              $ref: '#/components/schemas/ActivitySummaryGroupBy'
            interval:
              $ref: '#/components/schemas/ActivitySummaryInterval'
            eventTypes:
              type: array
              items:
                $ref: '#/components/schemas/EventType'
            traderIds:
              type: array
              items:
                type: integer
            appliedTimeRange:
              $ref: '#/components/schemas/AppliedTimeRange'
          required:
            - groupBy
            - interval
            - eventTypes
            - traderIds
            - appliedTimeRange
        results:
          type: array
          items:
            $ref: '#/components/schemas/ActivitySummary'
        meta:
          type: object
          properties:
            totalMessages:
              type: integer
              description: >-
                Total messages across all groups, not only the returned top
                groups.
            totalEvents:
              type: integer
              description: >-
                Total events across all groups, not only the returned top
                groups.
          required:
            - totalMessages
            - totalEvents
      required:
        - filtersApplied
        - results
        - meta
    ErrorEnvelope:
      type: object
      properties:
        success:
          type: boolean
          enum:
            - false
        error:
          $ref: '#/components/schemas/Error'
        requestId:
          type: string
          example: c8e2c6e4-80dd-4ffc-9d66-4e31bf64c6b8
      required:
        - success
        - error
        - requestId
    AppliedTimeRange:
      type: object
      properties:
        startTime:
          type: string
          nullable: true
          format: date-time
        endTime:
          type: string
          nullable: true
          format: date-time
      required:
        - startTime
        - endTime
    ActivitySummary:
      type: object
      properties:
        traderId:
          type: integer
          nullable: true
          description: >-
            Related trader ID for `groupBy=trader`, null for the overall
            `groupBy=none` group.
        messageCount:
          type: integer
          description: Total source messages for this group inside the applied time range.
        eventCount:
          type: integer
          description: Total events for this group inside the applied time range.
        buckets:
          type: array
          items:
            $ref: '#/components/schemas/ActivitySummaryBucket'
          description: >-
            Per-interval counts ordered by bucket start. Buckets with no
            activity are omitted.
      required:
        - traderId
        - messageCount
        - eventCount
        - buckets
    Error:
      type: object
      properties:
        code:
          type: string
          description: Stable machine-readable error code.
          example: UNAUTHORIZED
        message:
          type: string
          description: Human-readable explanation for the failure.
          example: Unauthorized
        details:
          nullable: true
          description: Optional structured details for validation or input failures.
      required:
        - code
        - message
    ActivitySummaryBucket:
      type: object
      properties:
        start:
          type: string
          format: date-time
          description: Inclusive UTC bucket start, truncated to the applied interval.
        end:
          type: string
          format: date-time
          description: Exclusive UTC bucket end.
        messageCount:
          type: integer
        eventCount:
          type: integer
      required:
        - start
        - end
        - messageCount
        - eventCount
  securitySchemes:
    ApiKeyAuth:
      type: apiKey
      in: header
      name: x-api-key
      description: API key issued by Centaur.
      x-default: <api-key>

````