> ## 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.

# sms.template.preview

> Renders an SMS template with the variables given and returns the exact body that would be sent, its encoding and its segment count, without sending anything or spending anything. Names any variable the template needs and the call did not supply.



## OpenAPI

````yaml /api-reference/openapi.json post /sms/template/preview
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:
  /sms/template/preview:
    post:
      tags:
        - sms
      summary: sms.template.preview
      description: >-
        Renders an SMS template with the variables given and returns the exact
        body that would be sent, its encoding and its segment count, without
        sending anything or spending anything. Names any variable the template
        needs and the call did not supply.
      operationId: sms.template.preview
      parameters: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $schema: https://json-schema.org/draft/2020-12/schema
              type: object
              properties:
                name:
                  type: string
                  minLength: 1
                  maxLength: 120
                  pattern: ^[a-z][a-z0-9_-]*(\.[a-z][a-z0-9_-]*)*$
                  description: >-
                    The template name. The reserved name auth.signin.sms
                    overrides the built-in sign-in text.
                locale:
                  description: >-
                    Preview as a recipient in this language. Falls back the same
                    way a real send does.
                  type: string
                  maxLength: 20
                variables:
                  type: object
                  propertyNames:
                    type: string
                    pattern: ^[A-Za-z_][A-Za-z0-9_]*$
                  additionalProperties: {}
                  description: Values for the template's variables
                draft:
                  default: false
                  description: >-
                    Preview the unpublished draft instead of the published
                    version
                  type: boolean
              required:
                - name
              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:
                      name:
                        type: string
                      locale:
                        type:
                          - string
                          - 'null'
                      resolvedLocale:
                        type:
                          - string
                          - 'null'
                      origin:
                        type: string
                      version:
                        anyOf:
                          - type: integer
                            minimum: -9007199254740991
                            maximum: 9007199254740991
                          - type: 'null'
                      text:
                        type: string
                      missing:
                        type: array
                        items:
                          type: string
                      segments:
                        type: integer
                        minimum: -9007199254740991
                        maximum: 9007199254740991
                      encoding:
                        type: string
                      units:
                        type: integer
                        minimum: -9007199254740991
                        maximum: 9007199254740991
                    required:
                      - name
                      - resolvedLocale
                      - origin
                      - version
                      - text
                      - missing
                      - segments
                      - encoding
                      - units
                    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.

````