---
title: "Search APM hotspots"
method: POST
path: "/applications/{application-identifier}/apm/hotspots/search"
tags: ["apm"]
---

# Search APM hotspots

`POST /applications/{application-identifier}/apm/hotspots/search`

Returns a paged ranking of APM methods, database queries, or external API calls by average duration, total duration, or call count, with an optional minimum average-duration threshold.

## Request body

- ApmHotspotSearchRequest
  - `start` string, date-time, required — Start of the hotspot analysis window.
  - `end` string, date-time, required — Exclusive end of the hotspot analysis window. The window cannot exceed 30 days.
  - `type` 'method' | 'query' | 'externalApi', required — The hotspot category to rank.
  - `query` string, nullable — Optional call-name text with at most 20 whitespace-separated terms. Every term must occur in the call name.
  - `minimumAverageDurationMilliseconds` integer, nullable — Optional minimum aggregate average duration in milliseconds. Only hotspots whose average call duration meets or exceeds this threshold are returned.
  - `offset` integer — Zero-based result offset.
  - `count` integer — Maximum hotspots to return.
  - `sortBy` 'averageDuration' | 'totalDuration' | 'callCount' — Metric used to rank hotspots.

## Response `200`

OK

- ApmHotspotSearchResponse
  - `items` ApmHotspot[], required — The ranked hotspots for the requested call type.
    - `identifier` string, required — The stable APM call identifier used by Raygun discover URLs.
    - `applicationIdentifier` string, required — The Raygun application identifier in base36.
    - `type` 'method' | 'query' | 'externalApi', required — The kind of profiled call.
    - `name` string, required — The privacy-safe resolved call name.
    - `subtype` string, nullable, required — A database provider or privacy-safe external host when available.
    - `callCount` integer, required — The number of calls in the requested window.
    - `averageDurationMilliseconds` number, double, required — The average call duration in milliseconds.
    - `totalDurationMilliseconds` number, double, required — The total call duration in milliseconds.
    - `p50DurationMilliseconds` number, double, required — The median call duration in milliseconds.
    - `p90DurationMilliseconds` number, double, required — The 90th percentile call duration in milliseconds.
    - `p99DurationMilliseconds` number, double, required — The 99th percentile call duration in milliseconds.
    - `applicationUrl` string, uri, required — A link to the call in Raygun's APM discover view.
  - `start` string, date-time, required — The start of the analyzed window, in UTC.
  - `end` string, date-time, required — The exclusive end of the analyzed window, in UTC.
  - `isTruncated` boolean, required — Whether more matching hotspots may exist beyond the requested count.
  - `offset` integer, required — The zero-based offset of this page.
  - `count` integer, required — The number of hotspots returned in this page.
  - `hasMore` boolean, required — Whether another page of matching hotspots is available.

## Other responses

- `400` — Problem Details
- `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)
