Latitude · Schema

TraceDetail

CompanyArtificial IntelligenceObservabilityMonitoringPlatformAgents

Properties

Name Type Description
organizationId string Organization that owns this trace.
projectId string Project this trace belongs to.
traceId string 32-character trace identifier.
spanCount integer Total number of spans in the trace.
errorCount integer Number of spans flagged with an error status.
startTime string ISO-8601 timestamp of the trace's earliest span.
endTime string ISO-8601 timestamp of the trace's latest span.
durationNs number Wall-clock duration of the trace in nanoseconds.
timeToFirstTokenNs number Nanoseconds from the start of the first LLM span to its first emitted token. `0` if not measured.
tokensInput number Total input tokens across LLM spans.
tokensOutput number Total output tokens across LLM spans.
tokensCacheRead number Total tokens served from the provider's prompt cache.
tokensCacheCreate number Total tokens written to the provider's prompt cache.
tokensReasoning number Total reasoning tokens reported by the model.
tokensTotal number Sum of all token counters.
costInputMicrocents number Cost of input tokens in microcents (100,000,000 per USD).
costOutputMicrocents number Cost of output tokens in microcents (100,000,000 per USD).
costTotalMicrocents number Total cost in microcents (100,000,000 per USD).
sessionId stringnull Conversation/session identifier set by the SDK. `null` when absent.
userId stringnull End-user identifier set by the SDK. `null` when absent.
simulationId stringnull CUID of the simulation that produced this trace. `null` when not a simulation.
tags array Free-form tags attached at ingest time.
models array Model identifiers seen across the trace's LLM spans.
providers array LLM-provider identifiers seen across the trace's spans.
serviceNames array OpenTelemetry `service.name` values seen in the trace.
rootSpanId stringnull Identifier of the trace's root span. `null` when no root span has been ingested.
rootSpanName stringnull `name` attribute of the root span. `null` when no root span has been ingested.
positiveAnnotationCount integer Number of `passed = true` annotations attached to this trace.
negativeAnnotationCount integer Number of `passed = false` annotations attached to this trace.
metadata object Free-form metadata attached at ingest time.
conversation array Full conversation for the trace, in OpenTelemetry GenAI format: the system instructions, then the messages sent into the trace's last LLM-completion span (the running history at that point), followed
View JSON Schema on GitHub

JSON Schema

latitude-so-trace-detail-schema.json Raw ↑
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://raw.githubusercontent.com/api-evangelist/latitude-so/main/json-schema/latitude-so-trace-detail-schema.json",
  "title": "TraceDetail",
  "x-generated": "2026-10-18",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/latitude-so-openapi.json#/components/schemas/TraceDetail",
  "type": "object",
  "properties": {
    "organizationId": {
      "type": "string",
      "description": "Organization that owns this trace."
    },
    "projectId": {
      "type": "string",
      "description": "Project this trace belongs to."
    },
    "traceId": {
      "type": "string",
      "description": "32-character trace identifier."
    },
    "spanCount": {
      "type": "integer",
      "minimum": 0,
      "description": "Total number of spans in the trace."
    },
    "errorCount": {
      "type": "integer",
      "minimum": 0,
      "description": "Number of spans flagged with an error status."
    },
    "startTime": {
      "type": "string",
      "description": "ISO-8601 timestamp of the trace's earliest span."
    },
    "endTime": {
      "type": "string",
      "description": "ISO-8601 timestamp of the trace's latest span."
    },
    "durationNs": {
      "type": "number",
      "description": "Wall-clock duration of the trace in nanoseconds."
    },
    "timeToFirstTokenNs": {
      "type": "number",
      "description": "Nanoseconds from the start of the first LLM span to its first emitted token. `0` if not measured."
    },
    "tokensInput": {
      "type": "number",
      "description": "Total input tokens across LLM spans."
    },
    "tokensOutput": {
      "type": "number",
      "description": "Total output tokens across LLM spans."
    },
    "tokensCacheRead": {
      "type": "number",
      "description": "Total tokens served from the provider's prompt cache."
    },
    "tokensCacheCreate": {
      "type": "number",
      "description": "Total tokens written to the provider's prompt cache."
    },
    "tokensReasoning": {
      "type": "number",
      "description": "Total reasoning tokens reported by the model."
    },
    "tokensTotal": {
      "type": "number",
      "description": "Sum of all token counters."
    },
    "costInputMicrocents": {
      "type": "number",
      "description": "Cost of input tokens in microcents (100,000,000 per USD)."
    },
    "costOutputMicrocents": {
      "type": "number",
      "description": "Cost of output tokens in microcents (100,000,000 per USD)."
    },
    "costTotalMicrocents": {
      "type": "number",
      "description": "Total cost in microcents (100,000,000 per USD)."
    },
    "sessionId": {
      "type": [
        "string",
        "null"
      ],
      "description": "Conversation/session identifier set by the SDK. `null` when absent."
    },
    "userId": {
      "type": [
        "string",
        "null"
      ],
      "description": "End-user identifier set by the SDK. `null` when absent."
    },
    "simulationId": {
      "type": [
        "string",
        "null"
      ],
      "description": "CUID of the simulation that produced this trace. `null` when not a simulation."
    },
    "tags": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "Free-form tags attached at ingest time."
    },
    "models": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "Model identifiers seen across the trace's LLM spans."
    },
    "providers": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "LLM-provider identifiers seen across the trace's spans."
    },
    "serviceNames": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "OpenTelemetry `service.name` values seen in the trace."
    },
    "rootSpanId": {
      "type": [
        "string",
        "null"
      ],
      "description": "Identifier of the trace's root span. `null` when no root span has been ingested."
    },
    "rootSpanName": {
      "type": [
        "string",
        "null"
      ],
      "description": "`name` attribute of the root span. `null` when no root span has been ingested."
    },
    "positiveAnnotationCount": {
      "type": "integer",
      "minimum": 0,
      "description": "Number of `passed = true` annotations attached to this trace."
    },
    "negativeAnnotationCount": {
      "type": "integer",
      "minimum": 0,
      "description": "Number of `passed = false` annotations attached to this trace."
    },
    "metadata": {
      "type": "object",
      "additionalProperties": {
        "type": "string"
      },
      "description": "Free-form metadata attached at ingest time."
    },
    "conversation": {
      "type": "array",
      "items": {
        "$ref": "#/$defs/GenAIMessage"
      },
      "description": "Full conversation for the trace, in OpenTelemetry GenAI format: the system instructions, then the messages sent into the trace's last LLM-completion span (the running history at that point), followed by that span's generated output."
    }
  },
  "required": [
    "organizationId",
    "projectId",
    "traceId",
    "spanCount",
    "errorCount",
    "startTime",
    "endTime",
    "durationNs",
    "timeToFirstTokenNs",
    "tokensInput",
    "tokensOutput",
    "tokensCacheRead",
    "tokensCacheCreate",
    "tokensReasoning",
    "tokensTotal",
    "costInputMicrocents",
    "costOutputMicrocents",
    "costTotalMicrocents",
    "sessionId",
    "userId",
    "simulationId",
    "tags",
    "models",
    "providers",
    "serviceNames",
    "rootSpanId",
    "rootSpanName",
    "positiveAnnotationCount",
    "negativeAnnotationCount",
    "metadata",
    "conversation"
  ],
  "$defs": {
    "GenAIMessage": {
      "type": "object",
      "additionalProperties": {
        "nullable": true
      },
      "description": "Message in OpenTelemetry GenAI format (`role` + content parts + optional tool calls)."
    }
  }
}

Work with this as data

Every JSON Schema here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for schemas

4 MCP tools reach this
  • find_json_schemasBrowse and filter every JSON Schema in the catalog.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This JSON Schema
curl "https://apis.io/api/v1/json-schemas/latitude-so-trace-detail"
All schemas
curl "https://apis.io/api/v1/json-schemas?limit=25"

Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.