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

# List Partner Usage Monthly Metrics

> Get per-month aggregated usage metrics for the authenticated partner.

Each item aggregates one (partner, month, entity_type) group and reports the count of
distinct entities alongside the summed REST API and webhook delivery counts. Results
are scoped to the authenticated partner's data; Catena admins may query across partners.



## OpenAPI

````yaml https://api.catenatelematics.com/v2/orgs/openapi.json get /v2/orgs/usage/monthly-metrics
openapi: 3.1.0
info:
  title: Telematics Organizations Service - REST API
  description: Organizations Service REST API
  version: 0.1.0
servers:
  - url: https://api.catenatelematics.com
    description: Catena Telematics API
security: []
tags:
  - name: Invitations
    description: >-
      Send invitations to onboard fleets. Create magic links, track invitation
      status, and manage the fleet onboarding workflow.
  - name: Share Agreements
    description: >-
      Manage data sharing agreements with fleets. Monitor agreement status,
      update terms, and control access to fleet telematics data.
  - name: Fleets
    description: >-
      View and manage fleet profiles. Access fleet information for fleets you've
      successfully onboarded through invitations.
  - name: Partners
    description: >-
      Manage your partner organization profile. Update company information,
      websites, and service categories visible to fleets.
  - name: TSPs
    description: >-
      Browse available Telematics Service Providers (TSPs). View supported
      integrations that fleets can connect to share their telematics data.
  - name: Usage
    description: >-
      Review partner data consumption. Fetch monthly usage rollups and
      per-entity usage rows for billing and reporting.
paths:
  /v2/orgs/usage/monthly-metrics:
    get:
      tags:
        - Usage
      summary: List Partner Usage Monthly Metrics
      description: >-
        Get per-month aggregated usage metrics for the authenticated partner.


        Each item aggregates one (partner, month, entity_type) group and reports
        the count of

        distinct entities alongside the summed REST API and webhook delivery
        counts. Results

        are scoped to the authenticated partner's data; Catena admins may query
        across partners.
      operationId: list_partner_usage_monthly_metrics
      parameters:
        - name: year
          in: query
          required: false
          schema:
            anyOf:
              - type: integer
                maximum: 2100
                minimum: 2000
              - type: 'null'
            description: Filter by calendar year (e.g. `2026`).
            title: Year
          description: Filter by calendar year (e.g. `2026`).
        - name: month
          in: query
          required: false
          schema:
            anyOf:
              - type: integer
                maximum: 12
                minimum: 1
              - type: 'null'
            description: Filter by calendar month (1-12).
            title: Month
          description: Filter by calendar month (1-12).
        - name: entity_type
          in: query
          required: false
          schema:
            anyOf:
              - type: string
              - type: 'null'
            description: Filter by entity type (e.g. `vehicle`, `driver`).
            title: Entity Type
          description: Filter by entity type (e.g. `vehicle`, `driver`).
        - name: partner_id
          in: query
          required: false
          schema:
            anyOf:
              - type: string
                format: uuid
              - type: 'null'
            description: >-
              Filter by partner ID. **Admin only** — ignored when called by a
              partner.
            title: Partner Id
          description: >-
            Filter by partner ID. **Admin only** — ignored when called by a
            partner.
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/PartnerMonthlyUsageMetric'
                title: Response List Partner Usage Monthly Metrics
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BadRequest'
          description: Bad Request
        '401':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Unauthorized'
          description: Unauthorized
        '403':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Forbidden'
          description: Forbidden
        '404':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/NotFound'
          description: Not Found
        '405':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MethodNotAllowed'
          description: Method Not Allowed
        '409':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Conflict'
          description: Conflict
        '422':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnprocessableEntity'
          description: Unprocessable Entity
        '429':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TooManyRequests'
          description: Too Many Requests
        '500':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerError'
          description: Internal Server Error
      security:
        - Bearer:
            - usage:read
components:
  schemas:
    PartnerMonthlyUsageMetric:
      properties:
        partner_id:
          type: string
          format: uuid
          title: Partner ID
          description: The partner the metric belongs to.
        year:
          type: integer
          title: Year
          description: Calendar year of the aggregated month.
        month:
          type: integer
          title: Month
          description: Calendar month (1-12) of the aggregated month.
        usage_month:
          type: string
          format: date
          title: Usage Month
          description: First day of the aggregated calendar month.
        entity_type:
          type: string
          title: Entity Type
          description: The category of entity the metric was aggregated for.
        unique_entities:
          type: integer
          title: Unique Entities
          description: Count of distinct entities with usage in the month.
        api_calls:
          type: integer
          title: API Calls
          description: Total REST API deliveries across all entities in the month.
        webhooks:
          type: integer
          title: Webhooks
          description: Total webhook deliveries across all entities in the month.
      type: object
      required:
        - partner_id
        - year
        - month
        - usage_month
        - entity_type
        - unique_entities
        - api_calls
        - webhooks
      title: PartnerMonthlyUsageMetric
      description: API response model for a per-month aggregated usage metric.
    BadRequest:
      properties:
        code:
          type: integer
          title: Code
          default: 400
        message:
          type: string
          title: Message
          default: Bad Request
        detail:
          anyOf:
            - type: string
            - type: 'null'
          title: Detail
      type: object
      title: BadRequest
    Unauthorized:
      properties:
        code:
          type: integer
          title: Code
          default: 401
        message:
          type: string
          title: Message
          default: Unauthorized
        detail:
          anyOf:
            - type: string
            - type: 'null'
          title: Detail
      type: object
      title: Unauthorized
    Forbidden:
      properties:
        code:
          type: integer
          title: Code
          default: 403
        message:
          type: string
          title: Message
          default: Forbidden
        detail:
          anyOf:
            - type: string
            - type: 'null'
          title: Detail
      type: object
      title: Forbidden
    NotFound:
      properties:
        code:
          type: integer
          title: Code
          default: 404
        message:
          type: string
          title: Message
          default: Not Found
        detail:
          anyOf:
            - type: string
            - type: 'null'
          title: Detail
      type: object
      title: NotFound
    MethodNotAllowed:
      properties:
        code:
          type: integer
          title: Code
          default: 405
        message:
          type: string
          title: Message
          default: Method Not Allowed
        detail:
          anyOf:
            - type: string
            - type: 'null'
          title: Detail
      type: object
      title: MethodNotAllowed
    Conflict:
      properties:
        code:
          type: integer
          title: Code
          default: 409
        message:
          type: string
          title: Message
          default: Conflict
        detail:
          anyOf:
            - type: string
            - type: 'null'
          title: Detail
      type: object
      title: Conflict
    UnprocessableEntity:
      properties:
        code:
          type: integer
          title: Code
          default: 422
        message:
          type: string
          title: Message
          default: Invalid Request Body
        detail:
          anyOf:
            - items:
                $ref: '#/components/schemas/ValidationErrorDetail'
              type: array
            - type: 'null'
          title: Detail
      type: object
      title: UnprocessableEntity
    TooManyRequests:
      properties:
        code:
          type: integer
          title: Code
          default: 429
        message:
          type: string
          title: Message
          default: Too Many Requests
        detail:
          anyOf:
            - $ref: '#/components/schemas/RetryAfterDetail'
            - type: 'null'
      type: object
      title: TooManyRequests
    InternalServerError:
      properties:
        message:
          type: string
          title: Message
          default: Internal Server Error
      type: object
      title: InternalServerError
    ValidationErrorDetail:
      properties:
        path:
          type: string
          title: Path
        input:
          type: string
          title: Input
        message:
          type: string
          title: Message
        error_type:
          type: string
          title: Error Type
      type: object
      required:
        - path
        - input
        - message
        - error_type
      title: ValidationErrorDetail
    RetryAfterDetail:
      properties:
        retry_after_seconds:
          type: integer
          title: Retry After Seconds
        message:
          type: string
          title: Message
      type: object
      required:
        - retry_after_seconds
        - message
      title: RetryAfterDetail
  securitySchemes:
    Bearer:
      type: oauth2
      flows:
        clientCredentials:
          refreshUrl: >-
            https://auth.catenatelematics.com/realms/catena/protocol/openid-connect/token
          scopes: {}
          tokenUrl: >-
            https://auth.catenatelematics.com/realms/catena/protocol/openid-connect/token
        authorizationCode:
          refreshUrl: >-
            https://auth.catenatelematics.com/realms/catena/protocol/openid-connect/token
          scopes: {}
          authorizationUrl: >-
            https://auth.catenatelematics.com/realms/catena/protocol/openid-connect/auth
          tokenUrl: >-
            https://auth.catenatelematics.com/realms/catena/protocol/openid-connect/token

````