---
title: "POST /TraceSegments"
method: POST
path: "/TraceSegments"
---

# POST /TraceSegments

`POST /TraceSegments`

Uploads segment documents to Amazon Web Services X-Ray. The [X-Ray SDK](https://docs.aws.amazon.com/xray/index.html) generates segment documents and sends them to the X-Ray daemon, which uploads them in batches. A segment document can be a completed segment, an in-progress segment, or an array of subsegments.

Segments must include the following fields. For the full segment document schema, see [Amazon Web Services X-Ray Segment Documents](https://docs.aws.amazon.com/xray/latest/devguide/xray-api-segmentdocuments.html) in the _Amazon Web Services X-Ray Developer Guide_.

**Required segment document fields**

*   `name` - The name of the service that handled the request.
    
*   `id` - A 64-bit identifier for the segment, unique among segments in the same trace, in 16 hexadecimal digits.
    
*   `trace_id` - A unique identifier that connects all segments and subsegments originating from a single client request.
    
*   `start_time` - Time the segment or subsegment was created, in floating point seconds in epoch time, accurate to milliseconds. For example, `1480615200.010` or `1.480615200010E9`.
    
*   `end_time` - Time the segment or subsegment was closed. For example, `1480615200.090` or `1.480615200090E9`. Specify either an `end_time` or `in_progress`.
    
*   `in_progress` - Set to `true` instead of specifying an `end_time` to record that a segment has been started, but is not complete. Send an in-progress segment when your application receives a request that will take a long time to serve, to trace that the request was received. When the response is sent, send the complete segment to overwrite the in-progress segment.
    

A `trace_id` consists of three numbers separated by hyphens. For example, 1-58406520-a006649127e371903a2de979. This includes:

**Trace ID Format**

*   The version number, for instance, `1`.
    
*   The time of the original request, in Unix epoch time, in 8 hexadecimal digits. For example, 10:00AM December 2nd, 2016 PST in epoch time is `1480615200` seconds, or `58406520` in hexadecimal.
    
*   A 96-bit identifier for the trace, globally unique, in 24 hexadecimal digits.

## Request body

- object
  - `TraceSegmentDocuments` TraceSegmentDocument[], required — A string containing a JSON document defining one or more segments or subsegments.

## Response `200`

Success

- PutTraceSegmentsResult
  - `UnprocessedTraceSegments` UnprocessedTraceSegment[] — Segments that failed processing.
    - `Id` string — The segment's ID.
    - `ErrorCode` string — The error that caused processing to fail.
    - `Message` string — The error message.

## Other responses

- `480` — InvalidRequestException
- `481` — ThrottledException

---

[API](https://skmtc.net/aws/apis/xray.md) · [All operations](https://skmtc.net/aws/apis/xray/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/aws/xray/versions/4970909a360e/schema)
