## Update a span

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

Partially update a span's mutable fields and return the updated span.

Only the provided fields among name, end timestamp, output, metadata, and
status are changed. This endpoint is available only for accounts still served
solely by the legacy trace store: once an account begins dual-writing to the
tracing service — which is upsert-only and has no partial-update operation —
PATCH returns 501 and PUT /v5/spans/batch must be used instead. Updates are
authorized against the span's parent trace, and an unknown id returns 404.

Credential redaction: values in the free-form `input`, `output`, `metadata`,
and `expected` objects, and in `name`, that are credential-shaped (bearer/JWT,
API keys, connection-string passwords) or under a credential-named key are replaced
with `[REDACTED:credential]` before the span is persisted, so the stored and
returned span reflects the redacted value (EY 12.3).

### Path Parameters

- `span_id: string`

### Body Parameters

- `end_timestamp: optional string`

- `metadata: optional map[unknown]`

- `name: optional string`

- `output: optional map[unknown]`

- `status: optional SpanStatus`

  - `"SUCCESS"`

  - `"ERROR"`

  - `"CANCELED"`

### 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 \
    -X PATCH \
    -H 'Content-Type: application/json' \
    -H "x-api-key: $SGP_API_KEY" \
    -d '{}'
```

#### 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"
}
```
