hosting

GET /v1/sites/{siteId}/apm

Ranked transactions, ranked hotspots and the hourly timeline for a site.

すべての hosting エンドポイント

認証

ベアラー トークンとして API キーを送信します。キーには sites.view 権限が付与されている必要があります。権限のないキーは 404 ではなく 403 で拒否されます。

このエンドポイントは組織IDを受け付けません。お使いのキーによって所属する組織がすでに特定されており、レスポンスはその組織にスコープされます。

試してみる

アングルブラケット内のすべてをご自身の値に置き換え、キーのプレースホルダーをご利用中のダッシュボードのキーに置き換えてください。

curl -X GET https://api.zinndigital.com/v1/sites/{siteId}/apm \
  -H "Authorization: Bearer zdk_live_…"

ログインしていますか?ダッシュボード内のAPIコンソールでは、実際の組織IDやお客様ご自身のキーが自動入力され、ライブAPIに対してリクエストが実行されるため、実際のレスポンスを確認することができます。 API コンソールでこのエンドポイントを開く

詳細

Stored, aggregated PHP profiling: which **pages** cost the most server time, which **plugin, PHP function or SQL query** is eating it, and how the site's PHP execution time has moved hour by hour. ⭐ Read from rows, not from the machine. The sibling `…/performance/slow-requests` surface opens an SSH session to the worker box on every call; this one is a database query, which is why it can be rendered on a customer-facing tab without a §2.16 problem. ⛔ **An empty payload is a `200` WITH A REASON.** `enrolment_state` says which of four things happened — `unknown` (not collected yet), `enrolled` (collected, and the site was genuinely quiet), `refused` (the server would not start tracing), `unsupported` (hosting that cannot trace). A surface that cannot tell a quiet site from a feature that is switched off was the live state of the fleet on 2026-09-03: one of two boxes had zero sites enrolled and every screen said "nothing traced yet". Requires `sites.view` and the `request_profiling` entitlement, which is included on every product line. No visitor IP addresses appear in the response — the field does not exist at any layer beneath this one.

パラメータ

名前タイプ必須これがその内容です
siteId (path)UuidはいSite ID (UUIDv7).
hours (query)integerいいえHow far back to aggregate (1–2160, default 24). Clamped rather than refused: a junk value answers the question that was asked with the default period.
limit (query)integerいいえHow many ranked rows per table (1–50, default 10).

返信

名前タイプ必須これがその内容です
tracingbooleanはいWhether the server is currently profiling this site.
enrolment_statestring<unknown, enrolled, refused, unsupported>はいWhy there may be no data. `unknown` — not collected yet. `enrolled` — collected, and the site was genuinely quiet. `refused` — the server would not start profiling. `unsupported…
enrolment_detailstringはいThe server's own sentence when it refused; empty otherwise.
last_collected_atstringはいWhen we last harvested this site, or null if never.
window_hoursintegerはいThe period these aggregates cover.
p95_duration_msintegerはいThe 95th percentile of PHP time across EVERY request traced for this site in the window, in milliseconds. ⚠️ This is the customer's OWN traffic. It is a different quantity from…
p95_sample_countintegerはいHow many requests `p95_duration_ms` was computed over. Shipped WITH it, always: a p95 over 30 requests and one over 30,000 are indistinguishable on screen otherwise (§2.44).
transactionsSiteApmTransaction[]はいPages ranked by total PHP time, heaviest first.
hotspotsSiteApmHotspot[]はいPlugins, functions and queries ranked by total PHP time.
timelineSiteApmTimelinePoint[]はいPHP execution time by hour, oldest first.

このエンドポイントが返すエラー

401 · 403 · 404 · 422 · 429