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

# Get customer ARR history

> List the subscription-level ARR evolutions for a customer in reverse chronological order.



## OpenAPI

````yaml get /v1/customers/{id}/arr-history
openapi: 3.1.0
info:
  title: Hyperline API
  version: 0.0.0
servers:
  - url: https://api.hyperline.co
  - url: https://sandbox.api.hyperline.co
security: []
paths:
  /v1/customers/{id}/arr-history:
    get:
      tags:
        - Customers
      summary: Get customer ARR history
      description: >-
        List the subscription-level ARR evolutions for a customer in reverse
        chronological order.
      operationId: getCustomerArrHistory
      parameters:
        - schema:
            type: string
          required: true
          name: id
          in: path
        - schema:
            type: number
            exclusiveMinimum: 0
            maximum: 100
            default: 50
            description: Maximum number of items to return (1-100).
            example: 50
          required: false
          description: Maximum number of items to return (1-100).
          name: limit
          in: query
        - schema:
            type: string
            description: >-
              Opaque cursor returned in the previous response's `next_cursor`.
              Omit to fetch the first page.
          required: false
          description: >-
            Opaque cursor returned in the previous response's `next_cursor`.
            Omit to fetch the first page.
          name: cursor
          in: query
        - schema:
            type: string
            format: date-time
            description: >-
              Return evolutions that occurred at or after this UTC date and
              time.
            example: '2026-01-01T00:00:00Z'
          required: false
          description: Return evolutions that occurred at or after this UTC date and time.
          name: occurred_at__gte
          in: query
        - schema:
            type: string
            format: date-time
            description: >-
              Return evolutions that occurred at or before this UTC date and
              time.
            example: '2026-12-31T23:59:59Z'
          required: false
          description: Return evolutions that occurred at or before this UTC date and time.
          name: occurred_at__lte
          in: query
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CursorPaginatedArrHistoryEntry'
        '404':
          description: Customer not found.
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    type: string
                required:
                  - message
      security:
        - bearer: []
components:
  schemas:
    CursorPaginatedArrHistoryEntry:
      type: object
      properties:
        data:
          type: array
          items:
            $ref: '#/components/schemas/ArrHistoryEntry'
          description: List of ArrHistoryEntry.
        next_cursor:
          type:
            - string
            - 'null'
          description: Cursor to fetch the next page. `null` when there are no more items.
          example: null
        has_more:
          type: boolean
          description: Whether more items are available after this page.
          example: false
        total:
          type: number
          description: >-
            Total number of items matching the filters. Only present when
            `include_total=true` was passed.
          example: 1
      required:
        - data
        - next_cursor
        - has_more
    ArrHistoryEntry:
      type: object
      properties:
        id:
          type: string
          description: Unique identifier for this ARR evolution.
          example: arcg_2V8NqLkW4RxY7P
        subscription_id:
          type: string
          description: Unique identifier for the subscription whose ARR changed.
          example: sub_2V8NqLkW4RxY7P
        customer_id:
          type:
            - string
            - 'null'
          description: Unique identifier for the customer associated with the evolution.
          example: cus_7W3KpQ9JxL2M4N
        occurred_at:
          type: string
          format: date-time
          description: UTC date and time when the ARR change took effect.
          example: '2026-07-14T10:30:00Z'
        movement_type:
          type: string
          enum:
            - new
            - churn
            - expansion
            - contraction
            - customer_transfer
            - status_transfer
            - currency_change
            - usage_change
            - no_change
          description: >-
            Classification of the ARR movement based on its previous and current
            states.
          example: expansion
        data_source:
          type: string
          enum:
            - tracked
            - reconstructed
          description: >-
            Whether the evolution was tracked directly or reconstructed from
            legacy subscription analytics.
          example: tracked
        change_source:
          type: string
          description: System source that caused or supplied the ARR evolution.
          example: calculated
        previous:
          $ref: '#/components/schemas/ArrHistoryState'
        current:
          allOf:
            - $ref: '#/components/schemas/ArrHistoryState'
            - description: >-
                ARR contribution state after the evolution, or `null` when
                absent.
      required:
        - id
        - subscription_id
        - customer_id
        - occurred_at
        - movement_type
        - data_source
        - change_source
        - previous
        - current
    ArrHistoryState:
      type:
        - object
        - 'null'
      properties:
        customer_id:
          type:
            - string
            - 'null'
          description: Customer associated with this ARR contribution state.
          example: cus_7W3KpQ9JxL2M4N
        bucket:
          type:
            - string
            - 'null'
          enum:
            - active
            - pending
            - excluded
          description: >-
            Dashboard ARR bucket. This is unavailable for reconstructed legacy
            states.
          example: active
        currency:
          type: string
          minLength: 3
          maxLength: 3
          description: >-
            ISO 4217 currency code of the subscription ARR contribution.
            Reconstructed entries use the subscription's current currency
            because legacy analytics did not store historical currency.
          example: EUR
        total_annual_value:
          type: integer
          description: >-
            Total annual recurring revenue in the smallest unit of the
            subscription currency.
          example: 120000
        fixed_annual_value:
          type:
            - integer
            - 'null'
          description: >-
            Fixed annual recurring revenue in the smallest unit of the
            subscription currency. This can be unavailable for tracked states.
          example: 100000
        variable_annual_value:
          type:
            - integer
            - 'null'
          description: >-
            Usage-based annual recurring revenue in the smallest unit of the
            subscription currency. This can be unavailable for tracked states.
          example: 20000
      required:
        - customer_id
        - bucket
        - currency
        - total_annual_value
        - fixed_annual_value
        - variable_annual_value
      description: ARR contribution state before the evolution, or `null` when absent.
  securitySchemes:
    bearer:
      type: http
      scheme: bearer
      bearerFormat: JWT

````