---
title: "Investigate an APM trace"
method: GET
path: "/applications/{application-identifier}/apm/traces/{trace-identifier}"
tags: ["apm"]
---

# Investigate an APM trace

`GET /applications/{application-identifier}/apm/traces/{trace-identifier}`

Returns one APM trace with its profiler threads, linked issues, and a bounded set of issue-linked and slow calls. Each call reports why it was selected and whether its parent is present. Raw profiler arguments, variables, query text, and URL path values are not exposed.

## Query parameters

- `maxCalls` integer

## Response `200`

OK

- ApmTraceInvestigationResponse
  - `trace` ApmTrace, required
    - `identifier` string, required — The trace identifier in base36, as shown in Raygun URLs.
    - `applicationIdentifier` string, required — The Raygun application identifier in base36.
    - `name` string, required — A privacy-safe request or transaction name. URL path segments are redacted.
    - `httpMethod` string, nullable, required — The HTTP method when the trace represents an HTTP request.
    - `occurredOn` string, date-time, required — When the trace occurred, in UTC.
    - `durationMilliseconds` number, double, required — The total trace duration in milliseconds.
    - `statusCode` integer, nullable, required — The response status code recorded for an HTTP trace, or null for a non-HTTP transaction.
    - `applicationUrl` string, uri, required — A link to the trace in the Raygun application.
  - `threads` ApmTraceThread[], required — The profiled threads in the trace payload.
    - `traceIndex` integer, required — The zero-based trace index used by calls in this thread.
    - `threadIdentifier` integer, required — The profiler thread identifier.
    - `ownerThreadIdentifier` integer, nullable, required — The owner thread identifier when this is a child thread.
    - `startedAt` string, date-time, required — When profiling for the thread started, in UTC.
    - `durationMilliseconds` number, double, required — The total thread duration in milliseconds.
    - `language` string, required — The profiled language or runtime family.
    - `terminationReason` string, required — How profiling for the thread terminated.
    - `callCount` integer, required — The number of calls found in the thread.
  - `calls` ApmTraceCall[], required — Issue-linked and slow calls in the trace, ordered by duration descending.
    - `traceIndex` integer, required — The zero-based trace index containing this call.
    - `callIdentifier` integer, required — The profiler call identifier. It is unique within the trace index, but may repeat in another thread.
    - `parentCallIdentifier` integer, nullable, required — The profiler identifier of the parent call in the same trace index. The parent may be omitted when calls are truncated.
    - `depth` integer, required — The call depth where zero is the trace root.
    - `type` 'trace' | 'method' | 'query' | 'externalApi' | 'system' | 'knownLibrary' | 'waitForUserInput' | 'waitForSynchronization' | 'jitCompilation' | 'exception' | 'thread' | 'garbageCollection', required — The kind of profiled call.
    - `name` string, required — The privacy-safe resolved method, query, external request, or exception name.
    - `path` string, required — A readable path from the trace root to this call.
    - `durationMilliseconds` number, double, required — The total call duration including children, in milliseconds.
    - `exclusiveDurationMilliseconds` number, double, required — The call duration excluding children, in milliseconds.
    - `offsetMilliseconds` number, double, required — The call offset from the trace start, in milliseconds.
    - `errorCount` integer, required — The number of errors attributed to this call.
    - `subtype` string, nullable, required — A provider, HTTP verb, or other subtype when available.
    - `statusCode` integer, nullable, required — The external HTTP status code when this is an external API call.
    - `selectionReason` 'linkedIssue' | 'slowest', required — Why this call was selected for the bounded investigation response.
    - `parentCallIncluded` boolean, nullable, required — Whether the parent call is included in this response, or null when this call has no parent.
  - `issues` ApmTraceIssue[], required — APM issues associated with this trace.
    - `identifier` string, required — The APM issue identifier in base36.
    - `type` 'none' | 'trace' | 'query' | 'method' | 'externalApi' | 'apdex' | 'chattyApi' | 'overusedApi' | 'nPlusOneQuery' | 'adhoc' | 'group', required — The kind of APM issue or anti-pattern.
    - `status` 'active' | 'resolved' | 'ignored' | 'permanentlyIgnored', required — The APM issue status.
    - `name` string, required — A privacy-safe issue label derived from the issue type.
    - `callIdentifier` integer, required — The profiler identifier of the offending call.
    - `matchingTraceIndexes` integer[], required — Trace indexes containing a call with this identifier. Multiple indexes are possible because profiler call identifiers are thread-local.
    - `applicationUrl` string, uri, required — A link to the issue in the Raygun application.
  - `totalCallCount` integer, required — The total number of calls in the trace before applying maxCalls.
  - `callsTruncated` boolean, required — Whether calls were omitted because the requested call limit was reached.
  - `issuesTruncated` boolean, required — Whether additional issue occurrences were omitted from this trace response.

## Other responses

- `401` — Problem Details
- `403` — Problem Details
- `404` — Problem Details
- `422` — Validation problem details
- `429` — Too Many Requests

---

[API](https://skmtc.net/raygun/apis/raygun-api.md) · [All operations](https://skmtc.net/raygun/apis/raygun-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/raygun/raygun-api/revisions/45caf50be25e/schema)
