Lago Analytics API

Everything about Analytics

OpenAPI Specification

lago-analytics-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: Lago API documentation Add_ons Analytics API
  description: Lago API allows your application to push customer information and metrics (events) from your application to the billing application.
  version: 1.15.0
  license:
    name: AGPLv3
    identifier: AGPLv3
  contact:
    email: tech@getlago.com
servers:
- url: https://api.getlago.com/api/v1
  description: US Lago cluster
- url: https://api.eu.getlago.com/api/v1
  description: EU Lagos cluster
security:
- bearerAuth: []
tags:
- name: Analytics
  description: Everything about Analytics
paths:
  /analytics/gross_revenue:
    get:
      tags:
      - Analytics
      summary: Lago List gross revenue
      description: Gross revenue is the sum of monthly `finalized` invoice payments and fees paid in advance that are not invoiceable. This total is calculated after deducting taxes and discounts.
      operationId: findAllGrossRevenues
      parameters:
      - name: currency
        in: query
        description: Currency of revenue analytics. Format must be ISO 4217.
        required: false
        explode: true
        schema:
          allOf:
          - $ref: '#/components/schemas/Currency'
          - example: USD
      - name: external_customer_id
        in: query
        description: The customer external unique identifier (provided by your own application). Use it to filter revenue analytics at the customer level.
        required: false
        explode: true
        schema:
          type: string
          example: 5eb02857-a71e-4ea2-bcf9-57d3a41bc6ba
      - $ref: '#/components/parameters/months'
      responses:
        '200':
          description: Gross revenue
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GrossRevenues'
        '401':
          $ref: '#/components/responses/Unauthorized'
  /analytics/invoice_collection:
    get:
      tags:
      - Analytics
      summary: Lago List of finalized invoices
      description: Represents a monthly aggregation, detailing both the total count and the cumulative amount of invoices that have been marked as `finalized`. This report sorts invoices categorically based on their `payment_status`.
      operationId: findAllInvoiceCollections
      parameters:
      - name: currency
        in: query
        description: The currency of revenue analytics. Format must be ISO 4217.
        required: false
        explode: true
        schema:
          allOf:
          - $ref: '#/components/schemas/Currency'
          - example: USD
      - $ref: '#/components/parameters/months'
      responses:
        '200':
          description: Finalized invoice collection
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InvoiceCollections'
        '401':
          $ref: '#/components/responses/Unauthorized'
  /analytics/invoiced_usage:
    get:
      tags:
      - Analytics
      summary: Lago List usage revenue
      description: Reports a monthly analysis focused on the revenue generated from all usage-based fees. It exclusively accounts for revenue that has been formally invoiced. Importantly, this report does not include revenue related to the usage in the current billing period, limiting its scope to previously invoiced amounts.
      operationId: findAllInvoicedUsages
      parameters:
      - name: currency
        in: query
        description: The currency of invoiced usage analytics. Format must be ISO 4217.
        required: false
        explode: true
        schema:
          allOf:
          - $ref: '#/components/schemas/Currency'
          - example: USD
      - $ref: '#/components/parameters/months'
      responses:
        '200':
          description: Invoiced usage
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InvoicedUsages'
        '401':
          $ref: '#/components/responses/Unauthorized'
  /analytics/mrr:
    get:
      tags:
      - Analytics
      summary: Lago List MRR
      description: This endpoint is used to list MRR.
      operationId: findAllMrrs
      parameters:
      - name: currency
        in: query
        description: 'Quantifies the revenue generated from `subscription` fees on a monthly basis. This figure is calculated post-application of applicable taxes and deduction of any applicable discounts. The method of calculation varies based on the subscription billing cycle:


          - Revenue from `monthly` subscription invoices is included in the MRR for the month in which the invoice is issued.

          - Revenue from `quarterly` subscription invoices is distributed evenly over three months. This distribution applies to fees paid in advance (allocated to the next remaining months depending on calendar or anniversary billing) as well as to fees paid in arrears (allocated to the preceding months depending on calendar or anniversary billing).

          - Revenue from `yearly` subscription invoices is distributed evenly over twelve months. This allocation is applicable for fees paid in advance (spread over the next  remaining months depending on calendar or anniversary billing) and for fees paid in arrears (spread over the previous months depending on calendar or anniversary billing).

          - Revenue from `weekly` subscription invoices, the total revenue from all invoices issued within a month is summed up. This total is then divided by the number of invoices issued during that month, and the result is multiplied by 4.33, representing the average number of weeks in a month.'
        required: false
        explode: true
        schema:
          allOf:
          - $ref: '#/components/schemas/Currency'
          - example: USD
      - $ref: '#/components/parameters/months'
      responses:
        '200':
          description: MRR
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Mrrs'
        '401':
          $ref: '#/components/responses/Unauthorized'
  /analytics/overdue_balance:
    get:
      tags:
      - Analytics
      summary: Lago List overdue balance
      description: Overdue balance is the total amount associated with overdue invoices (invoices with pending or failed payments which are past their due dates).
      operationId: findAllOverdueBalances
      parameters:
      - name: currency
        in: query
        description: Currency of revenue analytics. Format must be ISO 4217.
        required: false
        explode: true
        schema:
          allOf:
          - $ref: '#/components/schemas/Currency'
          - example: USD
      - name: external_customer_id
        in: query
        description: The customer external unique identifier (provided by your own application). Use it to filter revenue analytics at the customer level.
        required: false
        explode: true
        schema:
          type: string
          example: 5eb02857-a71e-4ea2-bcf9-57d3a41bc6ba
      - $ref: '#/components/parameters/months'
      responses:
        '200':
          description: Overdue balance
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OverdueBalances'
        '401':
          $ref: '#/components/responses/Unauthorized'
components:
  schemas:
    InvoicedUsageObject:
      type: object
      required:
      - month
      - amount_cents
      - currency
      properties:
        month:
          type: string
          description: Identifies the month to analyze revenue.
          example: '2023-11-01T00:00:00.000Z'
        code:
          type: string
          description: The code of the usage-based billable metrics.
          example: code1
        amount_cents:
          type: integer
          description: The total amount of revenue for a period, expressed in cents.
          example: 50000
        currency:
          allOf:
          - $ref: '#/components/schemas/Currency'
          - description: The currency of revenue analytics. Format must be ISO 4217.
            example: USD
    OverdueBalances:
      type: object
      required:
      - overdue_balances
      properties:
        overdue_balances:
          type: array
          items:
            $ref: '#/components/schemas/OverdueBalanceObject'
    OverdueBalanceObject:
      type: object
      required:
      - month
      - amount_cents
      - currency
      - lago_invoice_ids
      properties:
        month:
          type: string
          description: Identifies the month to analyze revenue.
          example: '2023-11-01T00:00:00.000Z'
        amount_cents:
          type: integer
          description: The total amount of revenue for a period, expressed in cents.
          example: 50000
        currency:
          allOf:
          - $ref: '#/components/schemas/Currency'
          - description: The currency of revenue analytics. Format must be ISO 4217.
            example: USD
        lago_invoice_ids:
          type: array
          items:
            type: string
            format: uuid
          description: The Lago invoice IDs associated with the revenue.
          example:
          - 5eb02857-a71e-4ea2-bcf9-57d3a41bc6ba
    GrossRevenueObject:
      type: object
      required:
      - month
      - amount_cents
      - currency
      - invoices_count
      properties:
        month:
          type: string
          description: Identifies the month to analyze revenue.
          example: '2023-11-01T00:00:00.000Z'
        amount_cents:
          type: integer
          description: The total amount of revenue for a period, expressed in cents.
          example: 50000
        currency:
          allOf:
          - $ref: '#/components/schemas/Currency'
          - description: The currency of revenue analytics. Format must be ISO 4217.
            example: USD
        invoices_count:
          type: integer
          description: Contains invoices count.
          example: 10
    Mrrs:
      type: object
      required:
      - mrrs
      properties:
        mrrs:
          type: array
          items:
            $ref: '#/components/schemas/MrrObject'
    InvoiceCollections:
      type: object
      required:
      - invoice_collections
      properties:
        invoice_collections:
          type: array
          items:
            $ref: '#/components/schemas/InvoiceCollectionObject'
    ApiErrorUnauthorized:
      type: object
      required:
      - status
      - error
      properties:
        status:
          type: integer
          format: int32
          example: 401
        error:
          type: string
          example: Unauthorized
    InvoicedUsages:
      type: object
      required:
      - invoiced_usages
      properties:
        invoiced_usages:
          type: array
          items:
            $ref: '#/components/schemas/InvoicedUsageObject'
    MrrObject:
      type: object
      required:
      - month
      properties:
        month:
          type: string
          description: Identifies the month to analyze MRR.
          example: '2023-11-01T00:00:00.000Z'
        amount_cents:
          type: integer
          description: The total amount of MRR, expressed in cents.
          example: 50000
        currency:
          allOf:
          - $ref: '#/components/schemas/Currency'
          - description: The currency of MRR analytics. Format must be ISO 4217.
            example: USD
    Currency:
      type: string
      example: USD
      enum:
      - AED
      - AFN
      - ALL
      - AMD
      - ANG
      - AOA
      - ARS
      - AUD
      - AWG
      - AZN
      - BAM
      - BBD
      - BDT
      - BGN
      - BIF
      - BMD
      - BND
      - BOB
      - BRL
      - BSD
      - BWP
      - BYN
      - BZD
      - CAD
      - CDF
      - CHF
      - CLF
      - CLP
      - CNY
      - COP
      - CRC
      - CVE
      - CZK
      - DJF
      - DKK
      - DOP
      - DZD
      - EGP
      - ETB
      - EUR
      - FJD
      - FKP
      - GBP
      - GEL
      - GIP
      - GMD
      - GNF
      - GTQ
      - GYD
      - HKD
      - HNL
      - HRK
      - HTG
      - HUF
      - IDR
      - ILS
      - INR
      - ISK
      - JMD
      - JPY
      - KES
      - KGS
      - KHR
      - KMF
      - KRW
      - KYD
      - KZT
      - LAK
      - LBP
      - LKR
      - LRD
      - LSL
      - MAD
      - MDL
      - MGA
      - MKD
      - MMK
      - MNT
      - MOP
      - MRO
      - MUR
      - MVR
      - MWK
      - MXN
      - MYR
      - MZN
      - NAD
      - NGN
      - NIO
      - NOK
      - NPR
      - NZD
      - PAB
      - PEN
      - PGK
      - PHP
      - PKR
      - PLN
      - PYG
      - QAR
      - RON
      - RSD
      - RUB
      - RWF
      - SAR
      - SBD
      - SCR
      - SEK
      - SGD
      - SHP
      - SLL
      - SOS
      - SRD
      - STD
      - SZL
      - THB
      - TJS
      - TOP
      - TRY
      - TTD
      - TWD
      - TZS
      - UAH
      - UGX
      - USD
      - UYU
      - UZS
      - VND
      - VUV
      - WST
      - XAF
      - XCD
      - XOF
      - XPF
      - YER
      - ZAR
      - ZMW
    GrossRevenues:
      type: object
      required:
      - gross_revenues
      properties:
        gross_revenues:
          type: array
          items:
            $ref: '#/components/schemas/GrossRevenueObject'
    InvoiceCollectionObject:
      type: object
      required:
      - month
      - invoices_count
      properties:
        month:
          type: string
          description: Identifies the month to analyze revenue.
          example: '2023-11-01T00:00:00.000Z'
        payment_status:
          type: string
          enum:
          - pending
          - succeeded
          - failed
          description: The payment status of the invoices.
          example: succeeded
        invoices_count:
          type: integer
          description: Contains invoices count.
          example: 10
        amount_cents:
          type: integer
          description: The total amount of revenue for a period, expressed in cents.
          example: 50000
        currency:
          allOf:
          - $ref: '#/components/schemas/Currency'
          - description: The currency of revenue analytics. Format must be ISO 4217.
            example: USD
  responses:
    Unauthorized:
      description: Unauthorized error
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ApiErrorUnauthorized'
  parameters:
    months:
      name: months
      in: query
      description: Show data only for given number of months.
      required: false
      explode: true
      schema:
        type: integer
        example: 12
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
externalDocs:
  description: Lago Github
  url: https://github.com/getlago