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

> ## Agent Instructions
> Every Lath operation is POST https://platform.trylath.com/<operation name with dots replaced by slashes>, with a JSON body and `Authorization: Bearer <key>`. `email.send` is POST /email/send.
> Branch on `error.code`, never on `error.message`. Every refusal also carries `error.fix`, which names the next step.
> Send an `Idempotency-Key` header on any operation that is not retry-safe, so a retry cannot run it twice.
> A `lath_test_` key emails only the account's own members and sends no SMS; a `lath_live_` key reaches real recipients and is billed.
> The OpenAPI document, generated from the same registry as the routes, is at https://platform.trylath.com/openapi.json.

# billing.usage.get

> Returns this project's usage for one calendar month, per environment: emails accepted for sending (sign-in codes, invitations, transactional sends, broadcasts and automations alike), SMS segments, and monthly active end users, each with the published unit rate and amount. Test mode is counted and shown but never billed, so its amounts are null. A line whose rate is not yet published has a null amount, and the total is null until every line is priced; nothing is estimated.



## OpenAPI

````yaml /api-reference/openapi.json post /billing/usage/get
openapi: 3.1.0
info:
  title: Lath API
  version: 0.1.0
  description: >-
    Every operation is one POST. The same set is reachable over MCP, the SDK and
    the CLI; nothing is dashboard-only.
servers:
  - url: https://platform.trylath.com
    description: This deployment
security: []
paths:
  /billing/usage/get:
    post:
      tags:
        - billing
      summary: billing.usage.get
      description: >-
        Returns this project's usage for one calendar month, per environment:
        emails accepted for sending (sign-in codes, invitations, transactional
        sends, broadcasts and automations alike), SMS segments, and monthly
        active end users, each with the published unit rate and amount. Test
        mode is counted and shown but never billed, so its amounts are null. A
        line whose rate is not yet published has a null amount, and the total is
        null until every line is priced; nothing is estimated.
      operationId: billing.usage.get
      parameters: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $schema: https://json-schema.org/draft/2020-12/schema
              type: object
              properties:
                period:
                  description: >-
                    Calendar month, UTC, as YYYY-MM. Defaults to the current
                    month.
                  type: string
                  pattern: ^\d{4}-(0[1-9]|1[0-2])$
              additionalProperties: false
      responses:
        '200':
          description: '{ activityId, result }. activityId is empty for reads.'
          content:
            application/json:
              schema:
                type: object
                properties:
                  activityId:
                    type: string
                    description: The activity this call created, or empty for a read.
                  result:
                    $schema: https://json-schema.org/draft/2020-12/schema
                    type: object
                    properties:
                      projectId:
                        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)$
                      period:
                        type: string
                      currency:
                        type: string
                      rates: {}
                      environments:
                        type: array
                        items: {}
                      totalCents:
                        type:
                          - number
                          - 'null'
                    required:
                      - projectId
                      - period
                      - currency
                      - rates
                      - environments
                      - totalCents
                    additionalProperties: {}
                required:
                  - activityId
                  - result
        '400':
          description: invalid_input or invalid_json
        '401':
          description: unauthenticated
        '403':
          description: forbidden
        '404':
          description: not_found
        '409':
          description: 'conflict: idempotency_mismatch, email_taken, last_key'
        '413':
          description: body_too_large
        '429':
          description: rate_limited
      security:
        - bearer: []
components:
  securitySchemes:
    bearer:
      type: http
      scheme: bearer
      description: >-
        A Lath API key: lath_live_sk… or lath_test_sk… on a server,
        lath_live_pk… or lath_test_pk… in a browser.

````