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

# developers.activity.get

> Opens one activity row: who acted and through which surface, whether it worked and — when refused — the error code, message and fix the caller received, how long it took, the input with secrets and message bodies redacted, the ids of what it created or changed, and the events it raised.



## OpenAPI

````yaml /api-reference/openapi.json post /developers/activity/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:
  /developers/activity/get:
    post:
      tags:
        - developers
      summary: developers.activity.get
      description: >-
        Opens one activity row: who acted and through which surface, whether it
        worked and — when refused — the error code, message and fix the caller
        received, how long it took, the input with secrets and message bodies
        redacted, the ids of what it created or changed, and the events it
        raised.
      operationId: developers.activity.get
      parameters: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $schema: https://json-schema.org/draft/2020-12/schema
              type: object
              properties:
                id:
                  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)$
                  description: >-
                    An activity id, from developers.activity.list or the
                    activityId any mutation returns
              required:
                - id
              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:
                      activity:
                        type: object
                        properties:
                          id:
                            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)$
                          actorType:
                            type: string
                          actorId:
                            type: string
                          actorLabel:
                            type:
                              - string
                              - 'null'
                          operation:
                            type: string
                          createdAt:
                            type: string
                            format: date-time
                            pattern: >-
                              ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                          result:
                            type: string
                            enum:
                              - ok
                              - refused
                            description: >-
                              ok: the operation completed; refused: it was
                              turned down and changed nothing
                          errorCode:
                            description: The error code the caller received, when refused
                            type:
                              - string
                              - 'null'
                          source:
                            anyOf:
                              - type: string
                                enum:
                                  - dashboard
                                  - api
                                  - cli
                                  - mcp
                                  - system
                              - type: 'null'
                            description: >-
                              Which surface carried the call; null for activity
                              recorded before sources were kept
                          durationMs:
                            anyOf:
                              - type: integer
                                minimum: -9007199254740991
                                maximum: 9007199254740991
                              - type: 'null'
                          errorMessage:
                            type:
                              - string
                              - 'null'
                          errorFix:
                            type:
                              - string
                              - 'null'
                          input:
                            description: >-
                              The input as recorded: secret-shaped fields and
                              message bodies replaced with "[redacted]", long
                              values cut. Null for activity recorded before
                              inputs were kept.
                          resourceIds:
                            anyOf:
                              - type: object
                                propertyNames:
                                  type: string
                                additionalProperties:
                                  type: string
                              - type: 'null'
                            description: >-
                              The ids the operation returned, keyed by the field
                              they came back under
                          events:
                            type: array
                            items:
                              type: object
                              properties:
                                id:
                                  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)$
                                type:
                                  type: string
                                payload:
                                  type: object
                                  propertyNames:
                                    type: string
                                  additionalProperties: {}
                                createdAt:
                                  type: string
                                  format: date-time
                                  pattern: >-
                                    ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                              required:
                                - id
                                - type
                                - payload
                                - createdAt
                              additionalProperties: {}
                        required:
                          - id
                          - actorType
                          - actorId
                          - actorLabel
                          - operation
                          - createdAt
                          - result
                          - errorCode
                          - source
                          - durationMs
                          - errorMessage
                          - errorFix
                          - input
                          - resourceIds
                          - events
                        additionalProperties: {}
                    required:
                      - activity
                    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_… or lath_test_… on a server, lath_live_pk… or
        lath_test_pk… in a browser.

````