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

# Step-by-Step Tracing Tab

> Used to detect errors by monitoring the message traffic of the API Proxy. You can track the message flow step by step by activating trace mode, view policy execution results, and identify the source of problems.

## Starting step-by-step tracing mode

### Prerequisite: deployed to an environment

For an API Proxy to enter tracing mode, it must first be **deployed to at least one Environment**.

### Environment selection, filter, and Start

Select the **Environment** for which tracing will run and click **Start**. From the filter field next to the environment selector, use **Custom Query** to trace only the data you need.

<img src="https://mintcdn.com/apinizer/b92tyAv6JpTHUWXg/images/develop/izleme-analiz/trace-start.png?fit=max&auto=format&n=b92tyAv6JpTHUWXg&q=85&s=8ab6ec35ceda3632054c245da8d63ba3" alt="Activating Step-by-Step Tracing Mode" width="600" data-path="images/develop/izleme-analiz/trace-start.png" />

### Mode duration and log content

When Step-by-Step Tracing is enabled, stored log content for the API Proxy is **expanded** for detailed review and remains in this form until the mode is stopped or automatically closed by the platform after **5 minutes**.

### Refreshing logs

Displayed log records are **not auto-refreshed**, so you do not lose rows you are inspecting. Use **Refresh Logs** to load the latest list.

***

## Log table

**Example log records:**

<img src="https://mintcdn.com/apinizer/b92tyAv6JpTHUWXg/images/develop/izleme-analiz/trace-logs.png?fit=max&auto=format&n=b92tyAv6JpTHUWXg&q=85&s=252ccd3a7d20a04c014c5cfe14891b57" alt="Log Records" width="1000" style={{ maxWidth: '1000px', width: '100%', height: 'auto' }} data-path="images/develop/izleme-analiz/trace-logs.png" />

Each row in the table corresponds to a **request** from a client to this API Proxy and the **response** returned for it. Use the row-level actions below to work with that message.

<Info>
  Because the API Call Policy log is stored separately, you may see **duplicate logs** for the same request.
</Info>

***

## Row actions

From the list view, use the row menu or shortcut buttons for the following.

### Detailed View

The **first** item in the menu at the end of the row opens a window with log records for that message.

<img src="https://mintcdn.com/apinizer/b92tyAv6JpTHUWXg/images/develop/izleme-analiz/trace-detailed-view-button.png?fit=max&auto=format&n=b92tyAv6JpTHUWXg&q=85&s=f8dc9e4e996323e3b9a09a7fe39b4966" alt="Detailed View" width="800" data-path="images/develop/izleme-analiz/trace-detailed-view-button.png" />

In the window, logs are grouped by message-flow section. Click the section to inspect (for example **Request From Client**). By default, **Overview** is open.

<img src="https://mintcdn.com/apinizer/b92tyAv6JpTHUWXg/images/develop/izleme-analiz/trace-detailed-view-dialog.png?fit=max&auto=format&n=b92tyAv6JpTHUWXg&q=85&s=bd29ee4995f9ba3c88ffb691dbdefc24" alt="Detailed View Dialog" width="800" data-path="images/develop/izleme-analiz/trace-detailed-view-dialog.png" />

### JSON View

The button next to Detailed View shows log records in **JSON** format.

<img src="https://mintcdn.com/apinizer/b92tyAv6JpTHUWXg/images/develop/izleme-analiz/trace-json-view.png?fit=max&auto=format&n=b92tyAv6JpTHUWXg&q=85&s=6ea784144f00631a299689251a4c2b87" alt="JSON View" width="800" data-path="images/develop/izleme-analiz/trace-json-view.png" />

**Example dialog opened with JSON View:**

<img src="https://mintcdn.com/apinizer/b92tyAv6JpTHUWXg/images/develop/izleme-analiz/trace-json-dialog.png?fit=max&auto=format&n=b92tyAv6JpTHUWXg&q=85&s=a55debb0eb5d9ab130710c606e67d7ce" alt="JSON Dialog" width="800" data-path="images/develop/izleme-analiz/trace-json-dialog.png" />

### Download

You can download log records in bulk for deeper analysis. While step-by-step tracing is on, Apinizer produces detailed logs for **all policies** executed for the API Proxy; download gathers per-request records in **one bundle**.

<img src="https://mintcdn.com/apinizer/b92tyAv6JpTHUWXg/images/develop/izleme-analiz/trace-download.png?fit=max&auto=format&n=b92tyAv6JpTHUWXg&q=85&s=8df0c44bd69f1d878b039f4d8480109d" alt="Download" width="800" data-path="images/develop/izleme-analiz/trace-download.png" />

### Quick Test

**Quick Test** on the row switches to the [Test Console](/en/develop/test-debug-tools/test-console) so you can resend the request for immediate testing.

<img src="https://mintcdn.com/apinizer/b92tyAv6JpTHUWXg/images/develop/izleme-analiz/trace-quick-test.png?fit=max&auto=format&n=b92tyAv6JpTHUWXg&q=85&s=74493b4688fa8ab2a5f85a1dcdb7fdd4" alt="Quick Test" width="800" data-path="images/develop/izleme-analiz/trace-quick-test.png" />

***

## Trace detail: Select

Click **Select** to open detailed policy execution logs for the API Proxy while step-by-step tracing is active.

<img src="https://mintcdn.com/apinizer/b92tyAv6JpTHUWXg/images/develop/izleme-analiz/trace-select.png?fit=max&auto=format&n=b92tyAv6JpTHUWXg&q=85&s=f39acde1d2d8152e5255562a0d537fe3" alt="Select" width="800" data-path="images/develop/izleme-analiz/trace-select.png" />

When you click a table row or choose **Select** from the row menu, the **trace detail drawer** opens on the **right** (wide drawer; horizontal scroll on narrow screens). The header shows the **HTTP method** (color badge), **path**, **HTTP status code**, and **result type** (for example SUCCESS). Use **X** to close.

## Time and flow

#### Timing breakdown

Total time (ms) and a colored bar show how time is split. Only segments with duration greater than zero are listed; labels can include **Request Parse**, **Request Policies**, **Routing**, **Response Policies**, and **Response Serialize**. Hover a segment to see its duration.

#### Flow map (Client → Gateway → API)

* Use **‹ Back** and **Next ›** to move through steps in order: **Client** → gateway ingress node → **request policies** (left to right) → gateway egress node → **API (target)** → return-from-target node → **response policies** → client egress node.
* **Click a node** to jump directly to that step.
* Successful steps show a green check; errors or blocks show **!**.
* **Skipped** policies appear faded, with an **S** badge and a tooltip that includes the skip reason.

***

### Lower panel: content for the selected step

Content is one or two columns depending on the step; sections use **accordions** (tables with **Name** / **Value**). JSON bodies appear in a read-only editor.

### Client

Left: request from client (**HTTP Info**, **Request Headers**, **Request Parameters**, **Request Body**). Right: response to client (**Response Headers**, **Response Body**).

<img src="https://mintcdn.com/apinizer/WZR0m-u7Czbvjywf/images/develop/izleme-analiz/trace-drawer-step-client.png?fit=max&auto=format&n=WZR0m-u7Czbvjywf&q=85&s=bd9a0add8f1cf7454dc31b956c341063" alt="Trace drawer: Client step with request and response columns" width="1000" style={{ maxWidth: '1000px', width: '100%', height: 'auto' }} data-path="images/develop/izleme-analiz/trace-drawer-step-client.png" />

<div style={{ marginTop: '2.5rem' }} aria-hidden="true" />

### Gateway ingress (request received at gateway)

Summary line with request line, API name, endpoint, client IP, server host/port, protocol, and **Correlation ID**; below that, request headers and parameters.

<img src="https://mintcdn.com/apinizer/WZR0m-u7Czbvjywf/images/develop/izleme-analiz/trace-drawer-step-gateway-ingress.png?fit=max&auto=format&n=WZR0m-u7Czbvjywf&q=85&s=13307739657a5a9de9181a30596706cf" alt="Trace drawer: gateway ingress step and summary" width="1000" style={{ maxWidth: '1000px', width: '100%', height: 'auto' }} data-path="images/develop/izleme-analiz/trace-drawer-step-gateway-ingress.png" />

### Request policy

Execution strip — **Policy**, **Result**, **Duration**, **Order**, **Level**, **Mode**; if skipped, **Skip reason**. When executed: left **Before - Headers / Parameters / Body**, right **After - Headers / Parameters / Body**.

<img src="https://mintcdn.com/apinizer/WZR0m-u7Czbvjywf/images/develop/izleme-analiz/trace-drawer-step-policy-api-call.png?fit=max&auto=format&n=WZR0m-u7Czbvjywf&q=85&s=d59becfa03a9d836edc8a8638e4f8636" alt="Trace drawer: policy step with Before and After panels" width="1000" style={{ maxWidth: '1000px', width: '100%', height: 'auto' }} data-path="images/develop/izleme-analiz/trace-drawer-step-policy-api-call.png" />

<img src="https://mintcdn.com/apinizer/WZR0m-u7Czbvjywf/images/develop/izleme-analiz/trace-drawer-step-policy-request-pipeline.png?fit=max&auto=format&n=WZR0m-u7Czbvjywf&q=85&s=90c6a3e99477b7065c3f4be6860c4916" alt="Trace drawer: another request pipeline policy step" width="1000" style={{ maxWidth: '1000px', width: '100%', height: 'auto' }} data-path="images/develop/izleme-analiz/trace-drawer-step-policy-request-pipeline.png" />

### Request toward target (pre-routing egress)

If the request never reached the backend, an informational message is shown. Otherwise **Target URL**, **Connection Type**, and **HTTP Method** appear. On this step the **Routing** accordion lists routing rows; expand a row for request/response headers and bodies; the **code** icon opens that routing record as JSON. See [HTTP routing](/en/develop/routing/http-routing) for routing options.

<img src="https://mintcdn.com/apinizer/WZR0m-u7Czbvjywf/images/develop/izleme-analiz/trace-drawer-step-routing-table.png?fit=max&auto=format&n=WZR0m-u7Czbvjywf&q=85&s=da93eacb09fbc76314a9f6d41aa46e22" alt="Trace drawer: Routing table with expanded row" width="1000" style={{ maxWidth: '1000px', width: '100%', height: 'auto' }} data-path="images/develop/izleme-analiz/trace-drawer-step-routing-table.png" />

### Backend target (API)

If the request did not reach the target, an explanatory message; otherwise a **Target Info** table with URL, status, result, duration, connection state, and related fields.

<img src="https://mintcdn.com/apinizer/WZR0m-u7Czbvjywf/images/develop/izleme-analiz/trace-drawer-step-target-backend.png?fit=max&auto=format&n=WZR0m-u7Czbvjywf&q=85&s=7372e9b75889a54474e09a95ebe487f8" alt="Trace drawer: backend target summary" width="1000" style={{ maxWidth: '1000px', width: '100%', height: 'auto' }} data-path="images/develop/izleme-analiz/trace-drawer-step-target-backend.png" />

### Response from target

Status summary plus **Response Headers** / **Response Body**.

<img src="https://mintcdn.com/apinizer/WZR0m-u7Czbvjywf/images/develop/izleme-analiz/trace-drawer-step-response-from-target.png?fit=max&auto=format&n=WZR0m-u7Czbvjywf&q=85&s=b072ae28ba4ccefc746f90c56d10f2bb" alt="Trace drawer: response from target" width="1000" style={{ maxWidth: '1000px', width: '100%', height: 'auto' }} data-path="images/develop/izleme-analiz/trace-drawer-step-response-from-target.png" />

### Response sent to client

Status, result, total time, and breakdown fields such as request processing, routing, and response serialization; **Response Headers** and **Response Body**.

<img src="https://mintcdn.com/apinizer/WZR0m-u7Czbvjywf/images/develop/izleme-analiz/trace-drawer-step-response-to-client.png?fit=max&auto=format&n=WZR0m-u7Czbvjywf&q=85&s=b1669b3139289314589184bdb2cbb4c3" alt="Trace drawer: response to client and timing summary" width="1000" style={{ maxWidth: '1000px', width: '100%', height: 'auto' }} data-path="images/develop/izleme-analiz/trace-drawer-step-response-to-client.png" />

## Deleting trace logs

The **trash** icon in the table header deletes all trace logs stored for this API Proxy; a confirmation dialog asks you to approve.

## No environment warning

If the API Proxy is not deployed to any environment, a full-screen warning is shown; deploy to **at least one environment** before starting trace.
