## Get a span

**get** `/v5/spans/{span_id}`

Retrieve a single span by its id.

The span is read from the legacy trace store or, for accounts migrated to the
tracing service, from that service — with automatic fallback to the legacy
trace store on error unless the account is in strict mode, where a
tracing-service failure surfaces as a 503. Access is authorized against the
span's parent trace, so a span in a trace the caller cannot read is rejected;
an unknown id returns 404. `input_tokens` and `output_tokens` carry the token usage the
span's producer reported at ingest, and are absent both for a span that reported none and for
every span served from the legacy trace store, which keeps no token counts.

### Path Parameters

- `span_id: string`

### Returns

- `Span object { id, account_id, name, 19 more }`

  - `id: string`

  - `account_id: string`

  - `name: string`

  - `start_timestamp: string`

  - `trace_id: string`

    id for grouping traces together, uuid is recommended

  - `application_interaction_id: optional string`

    The interaction ID this span belongs to

  - `application_variant_id: optional string`

    The id of the application variant this span belongs to

  - `created_by: optional Identity`

    The identity that created the entity.

    - `id: string`

    - `type: "user" or "service_account"`

      - `"user"`

      - `"service_account"`

    - `object: optional "identity"`

      - `"identity"`

  - `end_timestamp: optional string`

  - `expected: optional map[unknown]`

  - `group_id: optional string`

    Reference to a group_id

  - `input: optional map[unknown]`

  - `input_tokens: optional number`

    Prompt tokens the producer reported for this span, absent when it reported none. Same quantity the input_tokens sort orders by.

  - `metadata: optional map[unknown]`

  - `object: optional "span"`

    - `"span"`

  - `obs_span_id: optional string`

    W3C span id of the observability span this span executed in.

  - `obs_trace_id: optional string`

    W3C trace id of the observability trace this span executed in. Null for spans written without the edge, and for accounts still served by the legacy trace store.

  - `output: optional map[unknown]`

  - `output_tokens: optional number`

    Completion tokens the producer reported for this span, absent when it reported none. Same quantity the output_tokens sort orders by.

  - `parent_id: optional string`

    Reference to a parent span_id

  - `status: optional SpanStatus`

    - `"SUCCESS"`

    - `"ERROR"`

    - `"CANCELED"`

  - `type: optional SpanType`

    - `"TEXT_INPUT"`

    - `"TEXT_OUTPUT"`

    - `"COMPLETION_INPUT"`

    - `"COMPLETION"`

    - `"KB_RETRIEVAL"`

    - `"KB_INPUT"`

    - `"RERANKING"`

    - `"EXTERNAL_ENDPOINT"`

    - `"PROMPT_ENGINEERING"`

    - `"DOCUMENT_INPUT"`

    - `"MAP_REDUCE"`

    - `"DOCUMENT_SEARCH"`

    - `"DOCUMENT_PROMPT"`

    - `"CUSTOM"`

    - `"CODE_EXECUTION"`

    - `"DATA_MANIPULATION"`

    - `"EVALUATION"`

    - `"FILE_RETRIEVAL"`

    - `"KB_ADD_CHUNK"`

    - `"KB_MANAGEMENT"`

    - `"GUARDRAIL"`

    - `"OUTPUT_GUARDRAIL"`

    - `"TRACER"`

    - `"AGENT_TRACER"`

    - `"AGENT_WORKFLOW"`

    - `"STANDALONE"`

### Example

```http
curl https://api.egp.scale.com/v5/spans/$SPAN_ID \
    -H "x-api-key: $SGP_API_KEY"
```

#### Response

```json
{
  "id": "id",
  "account_id": "account_id",
  "name": "name",
  "start_timestamp": "2019-12-27T18:11:19.117Z",
  "trace_id": "trace_id",
  "application_interaction_id": "application_interaction_id",
  "application_variant_id": "application_variant_id",
  "created_by": {
    "id": "id",
    "type": "user",
    "object": "identity"
  },
  "end_timestamp": "2019-12-27T18:11:19.117Z",
  "expected": {
    "foo": "bar"
  },
  "group_id": "group_id",
  "input": {
    "foo": "bar"
  },
  "input_tokens": 0,
  "metadata": {
    "foo": "bar"
  },
  "object": "span",
  "obs_span_id": "obs_span_id",
  "obs_trace_id": "obs_trace_id",
  "output": {
    "foo": "bar"
  },
  "output_tokens": 0,
  "parent_id": "parent_id",
  "status": "SUCCESS",
  "type": "TEXT_INPUT"
}
```
