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

# Get agent session detail

> Returns the full span tree + rollup identity for one session. Span count is capped — `truncated: true` means only the FIRST spans (not necessarily the last) are included. A missing trace and a trace from another app return the identical 404 — there is no existence oracle for a transcript the caller cannot see.



## OpenAPI

````yaml /openapi.yaml get /v1/sessions/{traceId}
openapi: 3.0.3
info:
  contact:
    email: hello@outerlayer.ai
    url: https://www.outerlayer.ai
  description: >-
    The OuterLayer Gateway API lets you ingest coding-agent sessions and record
    evidence of work programmatically.


    Most teams reach it through the `outerlayer` CLI, which calls it for them.

    Call it directly to build your own integration or to automate what the
    dashboard does.


    Versioning: every endpoint is prefixed with `/v1/`. Breaking changes ship
    under a new version prefix (`/v2/`, etc.) with a 90-day-minimum deprecation
    window; anything additive lands on the current prefix.


    Vocabulary: the dashboard calls this API's `app` a **factory** — the unit
    that owns a set of repositories, the agent sessions worked on them, and the
    evidence they produce. They are the same entity. The API keeps `app` in its
    paths, headers, and field names because those are a published contract; only
    the product surface was renamed.
  title: OuterLayer Gateway API
  version: '1.0'
servers:
  - description: Production (OuterLayer Cloud)
    url: https://api.outerlayer.ai
  - description: Local dev server (self-hosted gateway)
    url: http://localhost:9418
security:
  - AppId: []
    BearerAuth: []
tags:
  - description: >-
      What a CLI login token can read about its owner without naming a factory,
      such as the factories they can use.
    name: Account
  - description: >-
      Coding-agent session ingest (outerlayer sync) and content-addressed
      session images.
    name: Agents
  - description: >-
      Evidence artifacts (screenshots, recordings, reports, logs) emitted as
      proof of a change and anchored to pull requests.
    name: Artifacts
  - description: >-
      Pass/fail outcomes of checks run in your own CI or compute, anchored to
      pull requests with the run URL as proof.
    name: Emitted Results
  - description: >-
      The acceptance criteria of a work item, recorded as one list. The Criteria
      tab, its count and the item status read that list.
    name: Criteria
  - description: >-
      What any agent found wrong about a change under review or about a rule it
      ran on, recorded on a work item.
    name: Findings
  - description: >-
      Add or remove a source's statement that it is working on an issue or pull
      request, and read what is currently live.
    name: Work Items
  - description: >-
      What the factory's GitHub App installation lets builds do on each
      connected repository, and whether each default branch requires a pull
      request.
    name: Repositories
  - description: >-
      A runner host's heartbeat — its CLI version, slots and last request for
      work — and the factory's list of hosts with a derived status.
    name: Hosts
  - description: Query server feature availability.
    name: Capabilities
  - description: Per-model LLM pricing data. Public, unauthenticated.
    name: Pricing
  - description: >-
      Create, list, and revoke factory API keys. Plaintext returned exactly once
      at creation.
    name: API Keys
  - description: >-
      Factory CRUD — a factory is owned by an organization and is the unit every
      other resource hangs off. Lets a headless agent provision one without the
      dashboard.
    name: Apps
  - description: >-
      Agent-coding session list and full transcript reads, with actor-privacy
      controls for machine keys.
    name: Sessions
  - description: >-
      Per-model token spend and fleet-wide agent behavior tiles, including
      two-window comparisons.
    name: Metrics
  - description: Synced-commit history of the app's `.outerlayer/` context tree.
    name: Context
  - description: >-
      Session→PR attribution: which agent sessions produced which pull requests,
      and what each attributed PR cost.
    name: PRs
  - description: Service health checks.
    name: Health
  - description: >-
      Org member and role administration, authenticated with an org-scoped
      management API key (`olk_…`) minted in the dashboard's settings.
    name: Org Management
  - description: OAuth 2.1 discovery metadata for MCP connector clients.
    name: OAuth
paths:
  /v1/sessions/{traceId}:
    get:
      tags:
        - Sessions
      summary: Get agent session detail
      description: >-
        Returns the full span tree + rollup identity for one session. Span count
        is capped — `truncated: true` means only the FIRST spans (not
        necessarily the last) are included. A missing trace and a trace from
        another app return the identical 404 — there is no existence oracle for
        a transcript the caller cannot see.
      operationId: get-session-detail
      parameters:
        - in: path
          name: traceId
          required: true
          schema:
            minLength: 1
            type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  data:
                    properties:
                      prOutcomes:
                        items:
                          properties:
                            ciGreen:
                              nullable: true
                              properties:
                                label:
                                  type: string
                                score:
                                  type: number
                              required:
                                - score
                                - label
                              type: object
                            merged:
                              nullable: true
                              properties:
                                label:
                                  type: string
                                score:
                                  type: number
                              required:
                                - score
                                - label
                              type: object
                            prNumber:
                              type: integer
                            prUrl:
                              nullable: true
                              type: string
                            reverted:
                              nullable: true
                              properties:
                                label:
                                  type: string
                                score:
                                  type: number
                              required:
                                - score
                                - label
                              type: object
                          required:
                            - prNumber
                            - prUrl
                            - ciGreen
                            - merged
                            - reverted
                          type: object
                        type: array
                      session:
                        properties:
                          actorId:
                            type: string
                          actorName:
                            type: string
                          agentType:
                            type: string
                          apiErrorCount:
                            type: integer
                          captureTier:
                            type: string
                          contextSourceRef:
                            nullable: true
                            type: string
                          contextSourceRepository:
                            nullable: true
                            type: string
                          contextSourceSha:
                            nullable: true
                            type: string
                          contextSourceVerification:
                            enum:
                              - verified
                              - unverified
                              - none
                            type: string
                          costStatus:
                            enum:
                              - complete
                              - partial
                              - unpriced
                            type: string
                          costUsd:
                            nullable: true
                            type: number
                          durationMs:
                            nullable: true
                            type: number
                          editRetryLoop:
                            nullable: true
                            properties:
                              fails:
                                type: integer
                              file:
                                type: string
                            required:
                              - file
                              - fails
                            type: object
                          endedAt:
                            nullable: true
                            type: string
                          endedBy:
                            nullable: true
                            type: string
                          errorCount:
                            type: integer
                          hookDurationMs:
                            type: number
                          hookExecutionCount:
                            type: integer
                          hookUnreportedCount:
                            type: integer
                          models:
                            items:
                              type: string
                            type: array
                          origin:
                            type: string
                          permissionPromptCount:
                            type: integer
                          prOutcomes:
                            items:
                              properties:
                                ciGreen:
                                  nullable: true
                                  properties:
                                    label:
                                      type: string
                                    score:
                                      type: number
                                  required:
                                    - score
                                    - label
                                  type: object
                                merged:
                                  nullable: true
                                  properties:
                                    label:
                                      type: string
                                    score:
                                      type: number
                                  required:
                                    - score
                                    - label
                                  type: object
                                prNumber:
                                  type: integer
                                prUrl:
                                  nullable: true
                                  type: string
                                reverted:
                                  nullable: true
                                  properties:
                                    label:
                                      type: string
                                    score:
                                      type: number
                                  required:
                                    - score
                                    - label
                                  type: object
                              required:
                                - prNumber
                                - prUrl
                                - ciGreen
                                - merged
                                - reverted
                              type: object
                            type: array
                          project:
                            nullable: true
                            type: string
                          rejectedToolCallCount:
                            type: integer
                          sessionId:
                            type: string
                          slowestHookCommand:
                            type: string
                          slowestHookMs:
                            type: number
                          startedAt:
                            type: string
                          title:
                            nullable: true
                            type: string
                          toolCallCount:
                            type: integer
                          traceId:
                            type: string
                          turnCount:
                            type: integer
                          unpricedModels:
                            items:
                              type: string
                            type: array
                          unpricedTurnCount:
                            minimum: 0
                            type: integer
                          updatedAt:
                            type: string
                          userTurnCount:
                            type: integer
                          workerKind:
                            nullable: true
                            type: string
                        required:
                          - traceId
                          - sessionId
                          - title
                          - agentType
                          - actorId
                          - workerKind
                          - project
                          - startedAt
                          - endedAt
                          - updatedAt
                          - durationMs
                          - turnCount
                          - toolCallCount
                          - errorCount
                          - userTurnCount
                          - rejectedToolCallCount
                          - costUsd
                          - costStatus
                          - unpricedModels
                          - models
                          - endedBy
                          - captureTier
                          - permissionPromptCount
                          - apiErrorCount
                          - editRetryLoop
                          - hookExecutionCount
                          - hookDurationMs
                          - hookUnreportedCount
                          - slowestHookMs
                          - slowestHookCommand
                          - contextSourceRepository
                          - contextSourceRef
                          - contextSourceSha
                          - unpricedTurnCount
                        type: object
                      spans:
                        items:
                          properties:
                            cost:
                              nullable: true
                              type: number
                            durationMs:
                              nullable: true
                              type: number
                            images:
                              items:
                                properties:
                                  mediaType:
                                    type: string
                                  sha256:
                                    type: string
                                  token:
                                    type: string
                                required:
                                  - sha256
                                  - mediaType
                                  - token
                                type: object
                              type: array
                            input:
                              nullable: true
                              type: string
                            inputTokens:
                              nullable: true
                              type: number
                            metadata:
                              additionalProperties:
                                type: string
                              type: object
                            model:
                              nullable: true
                              type: string
                            name:
                              type: string
                            output:
                              nullable: true
                              type: string
                            outputTokens:
                              nullable: true
                              type: number
                            parentSpanId:
                              nullable: true
                              type: string
                            reasoning:
                              nullable: true
                              type: string
                            spanId:
                              type: string
                            startTime:
                              type: string
                            statusCode:
                              type: string
                            statusMessage:
                              nullable: true
                              type: string
                          required:
                            - spanId
                            - parentSpanId
                            - name
                            - startTime
                            - durationMs
                            - statusCode
                            - statusMessage
                            - model
                            - cost
                            - inputTokens
                            - outputTokens
                            - input
                            - output
                            - reasoning
                            - metadata
                          type: object
                        type: array
                      truncated:
                        type: boolean
                    required:
                      - session
                      - spans
                      - truncated
                      - prOutcomes
                    type: object
                required:
                  - data
                type: object
          description: Full session transcript.
        '400':
          content:
            application/json:
              schema:
                properties:
                  error:
                    properties:
                      code:
                        type: string
                      message:
                        type: string
                    required:
                      - code
                      - message
                    type: object
                required:
                  - error
                type: object
          description: Invalid request parameters (validation failed).
        '401':
          content:
            application/json:
              schema:
                properties:
                  error:
                    properties:
                      code:
                        type: string
                      message:
                        type: string
                    required:
                      - code
                      - message
                    type: object
                required:
                  - error
                type: object
          description: Missing or invalid API key.
        '404':
          content:
            application/json:
              schema:
                properties:
                  error:
                    properties:
                      code:
                        type: string
                      message:
                        type: string
                    required:
                      - code
                      - message
                    type: object
                required:
                  - error
                type: object
          description: Session not found.
components:
  securitySchemes:
    AppId:
      description: Factory id the request is scoped to.
      in: header
      name: X-Outerlayer-App-Id
      type: apiKey
    BearerAuth:
      description: API key (sk_outerlayer_*)
      scheme: bearer
      type: http

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.