Run custom aggregations over your request logs. Define what to measure and how to slice it; the API returns structured data you can use however you want — feed it into a chart, run analysis on it, pipe it into a dashboard, or process it programmatically.Each query in the customCharts array specifies a metric and optionally a breakdown dimension or time bucketing:
engine, provider_type, prompt_id, prompt_version_number, status, error_type, tags, metadata_keys, output_keys, input_variable_keys, tool_namesUse groupByMetadataKey instead to break down by values of a specific metadata key (e.g. "environment" or "user_id").
Each entry in the response customCharts array contains:
id — echoes the id you sent
series — array of series descriptors: { key, label, unit } — describes what each numeric key in the data rows represents
data — array of rows, each with a label and one numeric key per series. Time-bucketed rows also include bucketKey (ISO date string).
derivedInsights — (multi-metric only) pre-computed ratio summaries
chartType and title are also echoed back but are optional hints — use them if you’re rendering a chart, ignore them if you’re just processing the numbers.
Results in the same order as the input customCharts array.
Show child attributes
Was this page helpful?
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"PromptLayer","colors":{"primary":"#12A7D3","light":"#81D7F7","dark":"#004E7A"},"logo":{"light":"https://mintcdn.com/promptlayer/v0RzaTvbzopITX7U/logo/logo.png?fit=max\u0026auto=format\u0026n=v0RzaTvbzopITX7U\u0026q=85\u0026s=0decf70e3c444d489fa5f1152951bd6c","dark":"https://mintcdn.com/promptlayer/v0RzaTvbzopITX7U/logo/dark.png?fit=max\u0026auto=format\u0026n=v0RzaTvbzopITX7U\u0026q=85\u0026s=1dfca761224a90b3b4bc5e65c8413117","href":"/overview"},"favicon":"https://mintcdn.com/promptlayer/v0RzaTvbzopITX7U/logo/favicon.png?fit=max\u0026auto=format\u0026n=v0RzaTvbzopITX7U\u0026q=85\u0026s=6ddbd8a8de5337ab6293874d59bee473","api":{"mdx":{"server":"https://api.promptlayer.com"}},"background":{"image":"https://mintlify.s3.us-west-1.amazonaws.com/promptlayer/background.png"},"navbar":{"links":[{"href":"/changelog","label":"Changelog"},{"href":"mailto:hello@promptlayer.com","label":"Contact Us"},{"href":"https://dashboard.promptlayer.com","label":"Dashboard"}]},"footer":{"socials":{"x":"https://twitter.com/promptlayer","linkedin":"https://www.linkedin.com/company/promptlayer","github":"https://github.com/MagnivOrg","discord":"https://discord.gg/DBAhQbW39S"}},"seo":{"indexing":"all"},"contextual":{"options":["copy","view","mcp"],"display":"header"},"styling":{"latex":true},"navigation":{"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"promptlayer","hasAudioNarration":false,"actualSubdomain":"promptlayer","customDomains":["docs.promptlayer.com"],"gitSource":{"type":"github","owner":"magnivorg","repo":"prompt-layer-docs","deployBranch":"master","contentDirectory":"","isPrivate":false,"mountPath":"","label":""},"chroma":{"liveDeploymentHistoryId":"6ae49ab73ba31227325e33bf","collectionId":"a46e4f64-cf35-49ea-b611-5917e39fc24d","schemaVersion":"v3","latestBuiltDeploymentHistoryId":"6ae49ab73ba31227325e33bf"},"feedback":{"thumbs":true},"entitlements":{"AI_CHAT":{"status":"ENABLED"},"WEB_MCP":{"status":"ENABLED"},"NARRATION":{"status":"ENABLED"}},"buildId":"6ae6472b540ca7435704cb39","clientVersion":"0.0.4044","searchFilterCounts":[{"language":"default","tag":"Reference","count":120},{"language":"default","tag":"REST API","count":116},{"language":"default","tag":"Core Concepts","count":77},{"language":"default","tag":"Tables","count":52},{"language":"default","tag":"Deprecated","count":44},{"language":"default","tag":"Observability","count":19},{"language":"default","tag":"Evaluations \u0026 Reports API","count":16},{"language":"default","tag":"Prompt Registry","count":15},{"language":"default","tag":"Tracking","count":14},{"language":"default","tag":"Prompt Templates","count":14}]},"assistantConfig":{},"basePath":"","hasChatPermissions":true,"hasWebMcpPermissions":true,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"full-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"byok-sep-25","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"vite-origin","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-updated-9-15","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-sso-scim","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-signup","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-dual-write","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"approve-review-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"sso-setup-deadline-banner","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"googleFontsInlined":false},"customCss":[{"filePath":"style.css","content":"a[href=\"/overview\"]:has(.nav-logo){display:inline-flex!important;align-items:center}a[href=\"/overview\"]:has(.nav-logo)::after{content:\"Docs\";margin-left:.05rem;color:#262e3e;font-size:1.2rem;font-weight:400;line-height:1;letter-spacing:0}html.dark a[href=\"/overview\"]:has(.nav-logo)::after{color:#fff}body:has(.promptlayer-landing) #content-area,body:has(.promptlayer-landing) #content-container,body:has(.promptlayer-landing) main{max-width:none!important}html.dark body:has(.promptlayer-landing){background:radial-gradient(circle at 18% 0,rgba(245,207,99,.08),transparent 28rem),linear-gradient(180deg,#101116 0,#0f1117 42rem,#111318 100%)!important}body:has(.promptlayer-landing) #content-container>div.flex.flex-row-reverse.gap-12.box-border.w-full{gap:0!important}.promptlayer-landing{--pl-ink:#12151f;--pl-muted:#596273;--pl-soft:#f7f4eb;--pl-card:rgba(255, 255, 255, 0.82);--pl-card-strong:rgba(255, 255, 255, 0.94);--pl-border:rgba(33, 38, 51, 0.11);--pl-gold:rgb(245, 207, 99);--pl-gold-deep:rgb(67, 44, 16);--pl-shadow:0 24px 70px -46px rgba(15, 23, 42, 0.42);--pl-shadow-hover:0 28px 80px -48px rgba(15, 23, 42, 0.52);position:relative;width:min(100%,72rem);max-width:none;margin:0 auto;padding:.5rem 1.25rem 4rem;color:var(--pl-ink)}.promptlayer-landing::before{display:none}.promptlayer-hero{position:relative;isolation:isolate;display:grid;grid-template-columns:1fr;gap:1.75rem;align-items:center;margin-bottom:3.75rem;padding:2.4rem 1.75rem 2.85rem;border-radius:1.75rem;overflow:hidden;box-sizing:border-box}.promptlayer-hero::before{position:absolute;inset:0;z-index:-1;background:radial-gradient(circle at 14% 12%,rgba(245,207,99,.38),transparent 30rem),radial-gradient(circle at 88% 18%,rgba(245,207,99,.16),transparent 24rem),linear-gradient(180deg,rgba(255,250,235,.92),rgba(255,255,255,0));content:\"\";pointer-events:none}.promptlayer-hero-copy{display:flex;flex-direction:column;align-items:flex-start}.promptlayer-card-pill,.promptlayer-hero-kicker,.promptlayer-mini-label,.promptlayer-preview-label,.promptlayer-section-kicker,.promptlayer-status-pill{font-size:.75rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase}.promptlayer-hero-kicker{display:inline-flex;align-items:center;gap:.5rem;margin-bottom:1.1rem;border:1px solid rgba(67,44,16,.1);border-radius:999px;background:rgba(255,255,255,.74);color:#775015;padding:.46rem .78rem;box-shadow:0 1px 2px rgba(15,23,42,.04);backdrop-filter:blur(14px)}.promptlayer-kicker-dot{width:.45rem;height:.45rem;border-radius:999px;background:var(--pl-gold);box-shadow:0 0 0 4px rgba(245,207,99,.22)}.promptlayer-hero-logo-wrap{width:4.1rem;aspect-ratio:173/150;margin-bottom:1.05rem}.promptlayer-hero-logo{display:block;width:100%;height:100%;object-fit:contain;filter:grayscale(1) brightness(.1);opacity:.84;pointer-events:none;user-select:none}.promptlayer-hero-title{max-width:58rem;margin:0 0 1rem;color:var(--pl-ink);font-size:clamp(2.35rem,5.4vw,4.15rem);font-weight:760;letter-spacing:-.064em;line-height:.965}.promptlayer-hero-description{max-width:45rem;margin:0 0 1.45rem;color:var(--pl-muted);font-size:1.075rem;line-height:1.68}.promptlayer-hero-actions{display:flex;flex-wrap:wrap;gap:.75rem;align-items:center;margin-bottom:1rem}.promptlayer-primary-button,.promptlayer-secondary-button{display:inline-flex;align-items:center;justify-content:center;min-height:2.85rem;border-radius:999px;font-size:.94rem;font-weight:700;line-height:1;text-decoration:none;transition:transform 160ms ease,border-color 160ms ease,background-color 160ms ease,box-shadow 160ms ease}.promptlayer-primary-button{gap:.5rem;padding:0 1.15rem 0 1.25rem;background:var(--pl-gold);color:var(--pl-gold-deep);box-shadow:0 18px 30px -22px rgba(67,44,16,.7)}.promptlayer-secondary-button{border:1px solid var(--pl-border);background:rgba(255,255,255,.78);color:var(--pl-ink);padding:0 1.1rem}.promptlayer-primary-button:hover,.promptlayer-secondary-button:hover{transform:translateY(-1px)}.promptlayer-primary-button:hover{background:#efc652;box-shadow:0 22px 34px -22px rgba(67,44,16,.72)}.promptlayer-secondary-button:hover{border-color:rgba(33,38,51,.2);background:rgba(255,255,255,.94)}.promptlayer-hero-proof{display:flex;flex-wrap:wrap;gap:.5rem;align-items:center}.promptlayer-hero-proof-label{color:#8c6424;font-size:.78rem;font-weight:750;letter-spacing:.02em}.promptlayer-hero-proof a{border:1px solid rgba(33,38,51,.09);border-radius:999px;background:rgba(255,255,255,.52);color:#657084;font-size:.82rem;line-height:1;padding:.5rem .7rem;text-decoration:none;transition:transform 160ms ease,border-color 160ms ease,background-color 160ms ease,color 160ms ease}.promptlayer-hero-proof a:hover{transform:translateY(-1px);border-color:rgba(33,38,51,.17);background:rgba(255,255,255,.82);color:var(--pl-ink)}.promptlayer-bento-card,.promptlayer-hero-panel,.promptlayer-path-card{position:relative}.promptlayer-bento-card,.promptlayer-hero-panel,.promptlayer-path-card,.promptlayer-resource-card,.promptlayer-surface-card{border:1px solid var(--pl-border);background:var(--pl-card);color:inherit;text-decoration:none;box-shadow:var(--pl-shadow);backdrop-filter:blur(18px)}.promptlayer-hero-panel{overflow:hidden;border-radius:2rem;padding:.65rem;background:linear-gradient(145deg,rgba(255,255,255,.94),rgba(255,248,230,.72)),radial-gradient(circle at 20% 20%,rgba(245,207,99,.3),transparent 18rem)}.promptlayer-hero-panel::before{position:absolute;inset:0;background-image:linear-gradient(rgba(33,38,51,.045) 1px,transparent 1px),linear-gradient(90deg,rgba(33,38,51,.045) 1px,transparent 1px);background-size:28px 28px;content:\"\";mask-image:linear-gradient(180deg,rgba(0,0,0,.7),transparent 78%);pointer-events:none}.promptlayer-window-bar{position:relative;z-index:1;display:flex;gap:.38rem;padding:.85rem .9rem .15rem}.promptlayer-window-bar span{width:.58rem;height:.58rem;border-radius:999px;background:rgba(33,38,51,.18)}.promptlayer-product-preview{position:relative;z-index:1;margin-top:.3rem;border:1px solid rgba(33,38,51,.08);border-radius:1.5rem;background:rgba(255,255,255,.78);padding:.95rem;box-shadow:inset 0 1px 0 rgba(255,255,255,.8)}.promptlayer-preview-header{display:flex;justify-content:space-between;gap:1rem;align-items:flex-start;margin-bottom:1rem}.promptlayer-preview-header h2{margin:.25rem 0 0;color:var(--pl-ink);font-size:clamp(1.25rem,3vw,1.75rem);font-weight:740;letter-spacing:-.035em;line-height:1.05}.promptlayer-mini-label,.promptlayer-preview-label{color:#8c6424}.promptlayer-status-pill{border:1px solid rgba(22,101,52,.12);border-radius:999px;background:rgba(220,252,231,.78);color:#166534;padding:.42rem .58rem}.promptlayer-preview-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.7rem}.promptlayer-preview-tile{overflow:hidden;min-height:6.75rem;border:1px solid rgba(33,38,51,.08);border-radius:1.15rem;background:rgba(255,255,255,.72);padding:.9rem}.promptlayer-preview-tile strong{display:block;margin-top:.35rem;color:var(--pl-ink);font-size:1.35rem;letter-spacing:-.04em;line-height:1.05}.promptlayer-preview-tile p{margin:.55rem 0 0;color:var(--pl-muted);font-size:.85rem;line-height:1.45}.promptlayer-preview-tile-main,.promptlayer-preview-tile-wide{grid-column:span 2}.promptlayer-version-stack{display:grid;gap:.45rem;margin-top:1rem}.promptlayer-version-stack span{display:block;height:.56rem;border-radius:999px;background:rgba(33,38,51,.1)}.promptlayer-version-stack span:nth-child(1){width:90%;background:rgba(245,207,99,.65)}.promptlayer-version-stack span:nth-child(2){width:72%}.promptlayer-version-stack span:nth-child(3){width:48%}.promptlayer-meter{overflow:hidden;height:.55rem;margin-top:1rem;border-radius:999px;background:rgba(33,38,51,.09)}.promptlayer-meter span{display:block;width:94%;height:100%;border-radius:inherit;background:linear-gradient(90deg,#f5cf63 ,#4ade80)}.promptlayer-sparkline{display:flex;align-items:flex-end;gap:.24rem;height:2rem;margin-top:.85rem}.promptlayer-sparkline span{flex:1;border-radius:999px 999px .35rem .35rem;background:rgba(245,207,99,.72)}.promptlayer-sparkline span:nth-child(1){height:44%}.promptlayer-sparkline span:nth-child(2){height:72%}.promptlayer-sparkline span:nth-child(3){height:56%}.promptlayer-sparkline span:nth-child(4){height:86%}.promptlayer-sparkline span:nth-child(5){height:64%}.promptlayer-trace-list{display:grid;gap:.5rem;margin-top:.65rem}.promptlayer-trace-list span{position:relative;display:flex;align-items:center;gap:.5rem;color:var(--pl-muted);font-size:.88rem}.promptlayer-trace-list span::before{width:.45rem;height:.45rem;border-radius:999px;background:var(--pl-gold);content:\"\"}.promptlayer-section{margin-bottom:3.75rem}.promptlayer-section-heading{max-width:44rem;margin-bottom:1.35rem}.promptlayer-section-heading-split{display:grid;max-width:none;gap:1rem;align-items:end}.promptlayer-section-kicker{margin:0 0 .5rem;color:#8c6424}.promptlayer-section-title{margin:0;color:var(--pl-ink);font-size:clamp(1.7rem,4vw,2.55rem);font-weight:745;letter-spacing:-.045em;line-height:1.03}.promptlayer-section-description{max-width:34rem;margin:0;color:var(--pl-muted);font-size:.98rem;line-height:1.7}.promptlayer-path-grid,.promptlayer-resource-grid{display:grid;grid-template-columns:1fr;gap:.9rem}.promptlayer-bento-card,.promptlayer-path-card{border-radius:1.45rem}.promptlayer-bento-card,.promptlayer-path-card,.promptlayer-surface-card{display:flex;flex-direction:column;overflow:visible;padding:1.25rem}.promptlayer-path-card{min-height:14rem;justify-content:flex-end;background:linear-gradient(180deg,var(--pl-card-strong),rgba(255,250,238,.72))}.promptlayer-path-card-primary{background:radial-gradient(circle at 8% 8%,rgba(245,207,99,.42),transparent 18rem),linear-gradient(180deg,rgba(255,255,255,.94),rgba(255,246,220,.78))}.promptlayer-card-pill{display:inline-flex;width:fit-content;border-radius:999px;background:rgba(245,207,99,.18);color:#7b5319;padding:.42rem .58rem}.promptlayer-bento-card h3,.promptlayer-path-card h3,.promptlayer-surface-card h3{margin:.8rem 0 .55rem;color:var(--pl-ink);font-size:1.2rem;font-weight:720;letter-spacing:-.03em;line-height:1.12}.promptlayer-bento-card p,.promptlayer-path-card p,.promptlayer-surface-card p{margin:0;color:var(--pl-muted);font-size:.93rem;line-height:1.6}.promptlayer-bento-grid{display:grid;grid-template-columns:1fr;gap:.9rem}.promptlayer-bento-card{min-height:0;background:linear-gradient(180deg,var(--pl-card-strong),rgba(255,255,255,.78)),radial-gradient(circle at 18% 10%,rgba(245,207,99,.16),transparent 16rem)}.promptlayer-bento-card-large{gap:1.25rem}.promptlayer-bento-card-wide{gap:1rem}.promptlayer-card-icon{display:flex;width:4.25rem;height:4.25rem;align-items:center;justify-content:center;margin-bottom:.75rem;border-radius:1.45rem;background:rgba(245,207,99,.2);box-shadow:inset 0 0 0 1px rgba(67,44,16,.04),0 1px 2px rgba(15,23,42,.04)}.promptlayer-card-icon img{display:block;width:auto;max-width:2.65rem;height:2.65rem;object-fit:contain}.promptlayer-surface-grid{display:grid;grid-template-columns:1fr;gap:.72rem}.promptlayer-surface-card{position:relative;min-height:13rem;gap:1rem;justify-content:space-between;border-radius:1.25rem;background:linear-gradient(180deg,rgba(255,255,255,.96),rgba(252,250,244,.86))}.promptlayer-surface-card::before{position:absolute;inset:0;border-radius:inherit;pointer-events:none;background:linear-gradient(180deg,rgba(255,255,255,.55),transparent 38%);content:\"\"}.promptlayer-surface-index{color:rgba(18,21,31,.34);font-size:.78rem;font-weight:680;letter-spacing:-.01em}.promptlayer-surface-label{display:block;color:#8c6424;font-size:.78rem;font-weight:700;letter-spacing:.01em}.promptlayer-surface-meta{display:flex;flex-wrap:wrap;gap:.42rem;padding-top:.2rem}.promptlayer-surface-meta span{border:1px solid rgba(33,38,51,.08);border-radius:999px;background:rgba(255,255,255,.62);color:rgba(89,98,115,.86);font-size:.73rem;font-weight:640;line-height:1;padding:.38rem .5rem}.promptlayer-surface-card:hover{background:linear-gradient(180deg,rgba(255,255,255,.98),rgba(255,252,245,.92))}.promptlayer-card-icon-blue,.promptlayer-card-icon-gold,.promptlayer-card-icon-green,.promptlayer-card-icon-purple{background:rgba(245,207,99,.2)}.promptlayer-card-visual{margin-top:auto}.promptlayer-release-visual{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.55rem}.promptlayer-release-visual span{border:1px solid rgba(33,38,51,.08);border-radius:.9rem;background:rgba(255,255,255,.68);color:var(--pl-muted);font-size:.76rem;font-weight:700;padding:.72rem .5rem;text-align:center}.promptlayer-release-visual span:nth-child(3){background:rgba(245,207,99,.36);color:#6f4811}.promptlayer-table-visual{display:grid;grid-template-columns:repeat(3,1fr);gap:.45rem;margin-top:auto;padding-top:1.35rem}.promptlayer-table-visual span{min-height:2rem;border:1px solid rgba(33,38,51,.08);border-radius:.7rem;background:rgba(255,255,255,.68)}.promptlayer-table-visual span:nth-child(2),.promptlayer-table-visual span:nth-child(6),.promptlayer-table-visual span:nth-child(7){background:rgba(245,207,99,.28)}.promptlayer-resource-section{margin-bottom:0}.promptlayer-resource-card{position:relative;display:flex;min-height:6.75rem;flex-direction:column;justify-content:flex-start;gap:.52rem;overflow:hidden;border-radius:1.15rem;padding:1.05rem 2.9rem 1.05rem 3.85rem;background:linear-gradient(180deg,rgba(255,255,255,.84),rgba(255,252,244,.72)),radial-gradient(circle at 0 0,rgba(245,207,99,.16),transparent 7rem)}.promptlayer-resource-card::after,.promptlayer-resource-card::before{position:absolute;top:1.05rem;display:grid;place-items:center;line-height:1}.promptlayer-resource-card::before{left:1.05rem;width:1.85rem;height:2.12rem;border:1px solid rgba(67,44,16,.1);border-radius:.48rem;background:linear-gradient(135deg,transparent 0 72%,rgba(245,207,99,.42) 72% 100%),rgba(255,248,225,.9);box-shadow:0 1px 2px rgba(67,44,16,.05),inset 0 -.55rem 0 rgba(245,207,99,.12);color:#7b5319;content:\"↗\";font-size:.86rem;font-weight:800}.promptlayer-resource-card::after{right:1.05rem;width:1.75rem;height:1.75rem;border:1px solid rgba(33,38,51,.08);border-radius:999px;background:rgba(255,255,255,.62);color:#94a3b8;font-size:.9rem;content:\"→\";opacity:.82;transition:transform 180ms ease,opacity 180ms ease,color 180ms ease,background-color 180ms ease,border-color 180ms ease}.promptlayer-resource-card:hover::after{transform:translateX(2px);border-color:rgba(67,44,16,.14);background:rgba(245,207,99,.16);color:#7b5319;opacity:1}.promptlayer-resource-card span{color:#8c6424;font-size:.72rem;font-weight:850;letter-spacing:.045em;line-height:1;text-transform:uppercase}.promptlayer-resource-card strong{max-width:14rem;color:var(--pl-ink);font-size:.98rem;font-weight:720;letter-spacing:-.025em;line-height:1.28}.promptlayer-card-interactive{transition:transform 180ms ease,border-color 180ms ease,background-color 180ms ease,box-shadow 180ms ease}.promptlayer-card-interactive:hover{transform:translateY(-2px);border-color:rgba(33,38,51,.18);background-color:rgba(255,255,255,.96);box-shadow:var(--pl-shadow-hover)}.promptlayer-card-interactive:focus-visible,.promptlayer-primary-button:focus-visible,.promptlayer-secondary-button:focus-visible{outline:0;border-color:rgba(245,207,99,.9);box-shadow:0 0 0 3px rgba(245,207,99,.32),var(--pl-shadow-hover)}.promptlayer-card-arrow{position:absolute;top:1rem;right:1rem;display:grid;width:2rem;height:2rem;place-items:center;border:1px solid rgba(33,38,51,.08);border-radius:999px;background:rgba(255,255,255,.58);color:#64748b;font-size:1rem;line-height:1;opacity:.82;transition:transform 180ms ease,opacity 180ms ease}.promptlayer-card-interactive:hover .promptlayer-card-arrow{transform:translate(2px,-2px);opacity:1}@media (min-width:640px){.promptlayer-path-grid,.promptlayer-resource-grid,.promptlayer-surface-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (min-width:1024px){.promptlayer-hero{grid-template-columns:minmax(0,1.04fr) minmax(21rem,.72fr);gap:2.25rem;padding-top:3rem;padding-bottom:3.2rem}.promptlayer-hero-title{max-width:44rem;font-size:clamp(3.05rem,4.7vw,4.3rem)}.promptlayer-hero-description{max-width:40rem}.promptlayer-section-heading-split{grid-template-columns:minmax(0,1fr) minmax(20rem,.72fr)}.promptlayer-path-grid{grid-template-columns:1.1fr repeat(2,minmax(0,.95fr))}.promptlayer-surface-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.promptlayer-bento-grid{grid-template-columns:repeat(3,minmax(0,1fr));grid-auto-rows:auto;align-items:stretch}.promptlayer-bento-card-large{grid-column:span 2}.promptlayer-bento-card-tall{grid-column:span 1;grid-row:auto}.promptlayer-bento-card-wide{grid-column:span 2;grid-row:auto;flex-direction:column;align-items:flex-start}.promptlayer-resource-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (min-width:1180px){.promptlayer-landing{padding-top:.75rem}.promptlayer-hero{gap:2rem}.promptlayer-bento-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.promptlayer-bento-card-large{grid-row:auto}.promptlayer-resource-grid{grid-template-columns:repeat(4,minmax(0,1fr))}}@media (max-width:1023px){body:has(.promptlayer-landing) #navbar .relative>button.flex.items-center.h-14.py-4.px-5.lg\\:hidden.focus\\:outline-0.w-full.text-left{display:none}body:has(.promptlayer-landing) #content-container>div.flex.flex-row-reverse.gap-12.box-border.w-full{padding-top:4rem}}@media (max-width:520px){.promptlayer-landing{padding-inline:1rem}.promptlayer-hero-actions,.promptlayer-primary-button,.promptlayer-secondary-button{width:100%}.promptlayer-preview-grid{grid-template-columns:1fr}.promptlayer-preview-tile-main,.promptlayer-preview-tile-wide{grid-column:auto}.promptlayer-release-visual{grid-template-columns:1fr}}html.dark .promptlayer-landing{--pl-ink:#f7f8fb;--pl-muted:#aeb6c5;--pl-card:rgba(27, 29, 36, 0.9);--pl-card-strong:rgba(33, 35, 43, 0.96);--pl-border:rgba(226, 232, 240, 0.12);--pl-shadow:0 26px 76px -44px rgba(0, 0, 0, 0.9);--pl-shadow-hover:0 30px 84px -44px rgba(0, 0, 0, 0.95)}html.dark .promptlayer-hero::before{background:radial-gradient(circle at 14% 12%,rgba(245,207,99,.16),transparent 30rem),radial-gradient(circle at 88% 18%,rgba(148,163,184,.08),transparent 24rem),linear-gradient(180deg,rgba(18,19,25,.92),rgba(15,17,22,.1))}html.dark .promptlayer-hero-logo{filter:grayscale(.2) brightness(1.08);opacity:.94}html.dark .promptlayer-card-arrow,html.dark .promptlayer-hero-kicker,html.dark .promptlayer-hero-proof a,html.dark .promptlayer-preview-tile,html.dark .promptlayer-product-preview,html.dark .promptlayer-release-visual span,html.dark .promptlayer-secondary-button,html.dark .promptlayer-table-visual span{background:rgba(35,37,44,.72)}html.dark .promptlayer-card-pill,html.dark .promptlayer-hero-kicker,html.dark .promptlayer-mini-label,html.dark .promptlayer-preview-label,html.dark .promptlayer-resource-card span,html.dark .promptlayer-section-kicker,html.dark .promptlayer-surface-label{color:#e9c96f}html.dark .promptlayer-hero-panel{border-color:rgba(226,232,240,.12);background:linear-gradient(145deg,rgba(36,38,47,.96),rgba(19,21,27,.9)),radial-gradient(circle at 20% 20%,rgba(245,207,99,.12),transparent 18rem);box-shadow:0 28px 74px -42px rgba(0,0,0,.95),inset 0 1px 0 rgba(255,255,255,.04)}html.dark .promptlayer-hero-panel::before{background-image:linear-gradient(rgba(226,232,240,.045) 1px,transparent 1px),linear-gradient(90deg,rgba(226,232,240,.045) 1px,transparent 1px)}html.dark .promptlayer-window-bar span{background:rgba(226,232,240,.18)}html.dark .promptlayer-product-preview{border-color:rgba(226,232,240,.1);box-shadow:inset 0 1px 0 rgba(255,255,255,.045),0 18px 60px -44px rgba(0,0,0,.9)}html.dark .promptlayer-preview-tile{border-color:rgba(226,232,240,.08);background:rgba(28,31,39,.78)}html.dark .promptlayer-meter,html.dark .promptlayer-version-stack span{background:rgba(226,232,240,.12)}html.dark .promptlayer-sparkline span{background:rgba(245,207,99,.66)}html.dark .promptlayer-trace-list span{color:#c5ccda}html.dark .promptlayer-bento-card,html.dark .promptlayer-path-card,html.dark .promptlayer-resource-card{background:linear-gradient(180deg,var(--pl-card-strong),rgba(25,27,33,.82)),radial-gradient(circle at 18% 10%,rgba(245,207,99,.08),transparent 16rem)}html.dark .promptlayer-surface-card{background:linear-gradient(180deg,rgba(31,32,37,.96),rgba(22,23,27,.9)),radial-gradient(circle at 50% 0,rgba(245,207,99,.05),transparent 15rem)}html.dark .promptlayer-surface-card::before{background:linear-gradient(180deg,rgba(255,255,255,.045),transparent 42%)}html.dark .promptlayer-surface-index{color:rgba(247,248,251,.28)}html.dark .promptlayer-surface-meta span{border-color:rgba(226,232,240,.08);background:rgba(255,255,255,.035);color:rgba(199,206,219,.78)}html.dark .promptlayer-surface-card:hover{background:linear-gradient(180deg,rgba(35,36,42,.98),rgba(25,26,31,.94)),radial-gradient(circle at 50% 0,rgba(245,207,99,.06),transparent 15rem)}html.dark .promptlayer-path-card-primary{background:radial-gradient(circle at 8% 8%,rgba(245,207,99,.17),transparent 18rem),linear-gradient(180deg,rgba(42,43,49,.92),rgba(35,30,20,.82))}html.dark .promptlayer-card-interactive:hover,html.dark .promptlayer-secondary-button:hover{border-color:rgba(226,232,240,.2);background-color:rgba(42,44,52,.96)}html.dark .promptlayer-status-pill{border-color:rgba(134,239,172,.18);background:rgba(22,101,52,.28);color:#bbf7d0}html.dark .promptlayer-resource-card::before{border-color:rgba(245,207,99,.14);color:#f7d77a;background:linear-gradient(135deg,transparent 0 72%,rgba(245,207,99,.22) 72% 100%),rgba(245,207,99,.08);box-shadow:0 1px 2px rgba(0,0,0,.18),inset 0 -.55rem 0 rgba(245,207,99,.07)}html.dark .promptlayer-resource-card::after{border-color:rgba(226,232,240,.1);background:rgba(35,37,44,.72);color:#a1a1aa}html.dark .promptlayer-resource-card:hover::after{border-color:rgba(245,207,99,.2);background:rgba(245,207,99,.12);color:#f7d77a}html.dark .promptlayer-card-pill,html.dark .promptlayer-release-visual span:nth-child(3){background:rgba(245,207,99,.14)}html.dark .promptlayer-card-icon img{opacity:.96}@media (prefers-reduced-motion:reduce){.promptlayer-card-arrow,.promptlayer-card-interactive,.promptlayer-hero-proof a,.promptlayer-primary-button,.promptlayer-secondary-button{transition:none}.promptlayer-card-interactive:hover,.promptlayer-card-interactive:hover .promptlayer-card-arrow,.promptlayer-hero-proof a:hover,.promptlayer-primary-button:hover,.promptlayer-resource-card:hover::after,.promptlayer-secondary-button:hover{transform:none}}"}],"page":{"pagePath":"reference/request-analytics-custom-analytics","slug":"/reference/request-analytics-custom-analytics","pageMetadata":{"title":"Request Analytics — Custom Queries","openapi":"POST /api/public/v2/requests/analytics/custom-analytics","description":null,"href":"/reference/request-analytics-custom-analytics"},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx,jsxs:_jsxs}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){const _components={a:`a`,blockquote:`blockquote`,code:`code`,li:`li`,p:`p`,strong:`strong`,tbody:`tbody`,td:`td`,th:`th`,thead:`thead`,tr:`tr`,ul:`ul`,..._provideComponents(),...props.components},{Heading,Table}=_components;if(!Heading)_missingMdxReference(`Heading`,true);if(!Table)_missingMdxReference(`Table`,true);return _jsxs(_Fragment,{children:[_jsx(_components.p,{children:`Run custom aggregations over your request logs. Define what to measure and how to slice it; the API returns structured data you can use however you want — feed it into a chart, run analysis on it, pipe it into a dashboard, or process it programmatically.`}),`\n`,_jsxs(_components.p,{children:[`Each query in the `,_jsx(_components.code,{children:`customCharts`}),` array specifies a metric and optionally a breakdown dimension or time bucketing:`]}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Shape`}),_jsx(_components.th,{children:`Fields required`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Single aggregate`}),_jsxs(_components.td,{children:[_jsx(_components.code,{children:`metric`}),` (and `,_jsx(_components.code,{children:`metricField`}),` unless `,_jsx(_components.code,{children:`metric`}),` is `,_jsx(_components.code,{children:`count`}),`)`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Grouped breakdown`}),_jsxs(_components.td,{children:[`Add `,_jsx(_components.code,{children:`groupByField`}),` or `,_jsx(_components.code,{children:`groupByMetadataKey`})]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Over time`}),_jsxs(_components.td,{children:[`Add `,_jsx(_components.code,{children:`timeSeries: true`})]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Multiple metrics at once`}),_jsxs(_components.td,{children:[`Replace `,_jsx(_components.code,{children:`metric`}),`/`,_jsx(_components.code,{children:`metricField`}),` with a `,_jsx(_components.code,{children:`series`}),` array`]})]})]})]}),`\n`,_jsx(Heading,{level:`2`,id:`metrics`,children:`Metrics`}),`\n`,_jsxs(_components.p,{children:[_jsx(_components.code,{children:`metric`}),` controls the aggregation function:`]}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Value`}),_jsx(_components.th,{children:`Description`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`count`})}),_jsxs(_components.td,{children:[`Number of matching requests (no `,_jsx(_components.code,{children:`metricField`}),` needed)`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`sum`})}),_jsx(_components.td,{children:`Total of a numeric field`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`avg`})}),_jsx(_components.td,{children:`Average of a numeric field`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`min`})}),_jsx(_components.td,{children:`Minimum value`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`max`})}),_jsx(_components.td,{children:`Maximum value`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`percentile`})}),_jsxs(_components.td,{children:[`Arbitrary percentile — requires `,_jsx(_components.code,{children:`percentile`}),` (0–100)`]})]})]})]}),`\n`,_jsxs(Heading,{level:`2`,id:`supported-metric-fields-metricfield`,children:[`Supported metric fields (`,_jsx(_components.code,{children:`metricField`}),`)`]}),`\n`,_jsxs(_components.p,{children:[_jsx(_components.code,{children:`input_tokens`}),`, `,_jsx(_components.code,{children:`output_tokens`}),`, `,_jsx(_components.code,{children:`cost`}),`, `,_jsx(_components.code,{children:`latency_ms`}),`, `,_jsx(_components.code,{children:`prompt_version_number`}),`, `,_jsx(_components.code,{children:`turn_count`}),`, `,_jsx(_components.code,{children:`tool_call_count`}),`, `,_jsx(_components.code,{children:`cached_tokens`}),`, `,_jsx(_components.code,{children:`thinking_tokens`})]}),`\n`,_jsxs(_components.blockquote,{children:[`\n`,_jsxs(_components.p,{children:[`Latency values are returned in `,_jsx(_components.strong,{children:`seconds`}),` (converted from milliseconds internally).`]}),`\n`]}),`\n`,_jsxs(Heading,{level:`2`,id:`group-by-fields-groupbyfield`,children:[`Group-by fields (`,_jsx(_components.code,{children:`groupByField`}),`)`]}),`\n`,_jsxs(_components.p,{children:[_jsx(_components.code,{children:`engine`}),`, `,_jsx(_components.code,{children:`provider_type`}),`, `,_jsx(_components.code,{children:`prompt_id`}),`, `,_jsx(_components.code,{children:`prompt_version_number`}),`, `,_jsx(_components.code,{children:`status`}),`, `,_jsx(_components.code,{children:`error_type`}),`, `,_jsx(_components.code,{children:`tags`}),`, `,_jsx(_components.code,{children:`metadata_keys`}),`, `,_jsx(_components.code,{children:`output_keys`}),`, `,_jsx(_components.code,{children:`input_variable_keys`}),`, `,_jsx(_components.code,{children:`tool_names`})]}),`\n`,_jsxs(_components.p,{children:[`Use `,_jsx(_components.code,{children:`groupByMetadataKey`}),` instead to break down by values of a specific metadata key (e.g. `,_jsx(_components.code,{children:`\"environment\"`}),` or `,_jsx(_components.code,{children:`\"user_id\"`}),`).`]}),`\n`,_jsx(Heading,{level:`2`,id:`filters`,children:`Filters`}),`\n`,_jsxs(_components.p,{children:[`All filter fields from `,_jsx(_components.a,{href:`/reference/search-request-logs`,children:`Search Request Logs`}),` are supported (`,_jsx(_components.code,{children:`filter_group`}),`, `,_jsx(_components.code,{children:`q`}),`, `,_jsx(_components.code,{children:`sort_by`}),`, `,_jsx(_components.code,{children:`sort_order`}),`). Filters are applied before aggregation.`]}),`\n`,_jsx(Heading,{level:`2`,id:`response-shape`,children:`Response shape`}),`\n`,_jsxs(_components.p,{children:[`Each entry in the response `,_jsx(_components.code,{children:`customCharts`}),` array contains:`]}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:_jsx(_components.code,{children:`id`})}),` — echoes the id you sent`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:_jsx(_components.code,{children:`series`})}),` — array of series descriptors: `,_jsx(_components.code,{children:`{ key, label, unit }`}),` — describes what each numeric key in the data rows represents`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:_jsx(_components.code,{children:`data`})}),` — array of rows, each with a `,_jsx(_components.code,{children:`label`}),` and one numeric key per series. Time-bucketed rows also include `,_jsx(_components.code,{children:`bucketKey`}),` (ISO date string).`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:_jsx(_components.code,{children:`derivedInsights`})}),` — (multi-metric only) pre-computed ratio summaries`]}),`\n`]}),`\n`,_jsxs(_components.p,{children:[_jsx(_components.code,{children:`chartType`}),` and `,_jsx(_components.code,{children:`title`}),` are also echoed back but are optional hints — use them if you’re rendering a chart, ignore them if you’re just processing the numbers.`]}),`\n`,_jsx(Heading,{level:`2`,id:`behavior-notes`,children:`Behavior Notes`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`sort_by`}),` / `,_jsx(_components.code,{children:`sort_order`}),` are accepted for compatibility but do not affect aggregated output.`]}),`\n`,_jsxs(_components.li,{children:[`Overall aggregates (no `,_jsx(_components.code,{children:`timeSeries`}),`, no `,_jsx(_components.code,{children:`groupByField`}),`) return a single row with `,_jsx(_components.code,{children:`label: \"Overall\"`}),`.`]}),`\n`,_jsx(_components.li,{children:`Multi-metric grouped time-series is not supported — use multiple single-metric queries instead.`}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`series`}),` keys must be unique within a query; `,_jsx(_components.code,{children:`id`}),` values must be unique within the request.`]}),`\n`]}),`\n`,_jsx(Heading,{level:`2`,id:`related`,children:`Related`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:_jsx(_components.a,{href:`/reference/request-analytics`,children:`Request Analytics`})}),`\n`,_jsx(_components.li,{children:_jsx(_components.a,{href:`/reference/search-request-logs`,children:`Search Request Logs`})}),`\n`,_jsx(_components.li,{children:_jsx(_components.a,{href:`/features/search-and-analytics/analytics`,children:`Analytics`})}),`\n`]})]})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent};function _missingMdxReference(id,component){throw new Error(`Expected `+(component?`component`:`object`)+\" `\"+id+\"` to be defined: you likely forgot to import, pass, or provide it.\")}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"title":"Request Analytics — Custom Queries","openapi":"POST /api/public/v2/requests/analytics/custom-analytics","description":null,"href":"/reference/request-analytics-custom-analytics"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[{"title":"Metrics","slug":"metrics","depth":2,"children":[]},{"title":"Supported metric fields (metricField)","slug":"supported-metric-fields-metricfield","depth":2,"children":[]},{"title":"Group-by fields (groupByField)","slug":"group-by-fields-groupbyfield","depth":2,"children":[]},{"title":"Filters","slug":"filters","depth":2,"children":[]},{"title":"Response shape","slug":"response-shape","depth":2,"children":[]},{"title":"Behavior Notes","slug":"behavior-notes","depth":2,"children":[]},{"title":"Related","slug":"related","depth":2,"children":[]}],"codeExamples":{}},"jsLinks":[],"openApiReferenceData":{"operation":{"summary":"Request Analytics Custom Analytics","operationId":"getRequestAnalyticsCustomAnalytics","tags":["tracking"],"requestBody":"f35ec096-522d-40b2-94a1-fccbd7b784ff","responses":{"200":"83129992-110f-401b-8f65-31fa5476a953","400":"383060fc-b4c2-432f-a3a1-f73dffa5f9e6","401":"2ef96dde-0805-44f5-ac60-92e258835171","403":"f1cdf541-ebd2-4f6b-99f2-07a53ade9986","422":"325213aa-59e3-465c-a0bc-c55c421d022a"},"method":"post","type":"path","servers":[],"security":["18cb1caf-8d2e-473d-90c8-c6ac38715dc8"],"path":"/api/public/v2/requests/analytics/custom-analytics","baseUrlOptions":["https://api.promptlayer.com"],"title":"Request Analytics Custom Analytics","description":"","codeSamples":[],"requiredOnlyExamples":false,"requestExampleType":"generated","responseExampleType":"generated"},"dependencies":{"parameters":{},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","title":"RequestAnalyticsCustomAnalyticsQuery","description":"Request body for POST /api/public/v2/requests/analytics/custom-analytics. Inherits all filter fields from RequestLogQuery and adds `customCharts`.","required":["customCharts"],"properties":{"customCharts":{"type":"array","minItems":1,"description":"One or more chart definitions to compute. Chart ids must be unique.","items":{"type":"object","title":"CustomAnalyticsSpec","description":"Definition for a single custom analytics query.","required":["id","chartType"],"properties":{"id":{"type":"string","description":"Stable identifier for this chart in the response (alphanumeric, hyphens, underscores; max 64 chars). Must be unique within the request.","isRequired":true,"uniqueKey":"customCharts.items.[INDEX].id","typeLabel":"string"},"chartType":{"type":"string","enum":["bar","line","area"],"description":"Chart visualization type. Overall aggregate charts (no timeSeries, no groupByField) must use `bar`.","isRequired":true,"uniqueKey":"customCharts.items.[INDEX].chartType","typeLabel":"enum\u003cstring>"},"title":{"oneOf":[{"type":"string","description":"Optional display title (max 200 chars). Defaults to id.","uniqueKey":"customCharts.items.[INDEX].title.oneOf.0","typeLabel":"string"},{"type":"null","description":"Optional display title (max 200 chars). Defaults to id.","uniqueKey":"customCharts.items.[INDEX].title.oneOf.1","typeLabel":"null"}],"uniqueKey":"customCharts.items.[INDEX].title","typeLabel":"string | null"},"metric":{"oneOf":[{"type":"string","enum":["count","sum","avg","min","max","percentile"],"description":"Aggregation function. Omit when using `series` (multi-series mode).","uniqueKey":"customCharts.items.[INDEX].metric.oneOf.0","typeLabel":"enum\u003cstring>"},{"type":"null","enum":["count","sum","avg","min","max","percentile"],"description":"Aggregation function. Omit when using `series` (multi-series mode).","uniqueKey":"customCharts.items.[INDEX].metric.oneOf.1","typeLabel":"null"}],"uniqueKey":"customCharts.items.[INDEX].metric","typeLabel":"enum\u003cstring> | null"},"metricField":{"oneOf":[{"type":"string","enum":["input_tokens","output_tokens","cost","latency_ms","prompt_version_number","turn_count","tool_call_count","cached_tokens","thinking_tokens"],"description":"Numeric field to aggregate. Required unless metric is `count` or using multi-series mode.","uniqueKey":"customCharts.items.[INDEX].metricField.oneOf.0","typeLabel":"enum\u003cstring>"},{"type":"null","enum":["input_tokens","output_tokens","cost","latency_ms","prompt_version_number","turn_count","tool_call_count","cached_tokens","thinking_tokens"],"description":"Numeric field to aggregate. Required unless metric is `count` or using multi-series mode.","uniqueKey":"customCharts.items.[INDEX].metricField.oneOf.1","typeLabel":"null"}],"uniqueKey":"customCharts.items.[INDEX].metricField","typeLabel":"enum\u003cstring> | null"},"percentile":{"oneOf":[{"type":"number","minimum":0,"maximum":100,"description":"Required when metric is `percentile`.","uniqueKey":"customCharts.items.[INDEX].percentile.oneOf.0","typeLabel":"number"},{"type":"null","minimum":0,"maximum":100,"description":"Required when metric is `percentile`.","uniqueKey":"customCharts.items.[INDEX].percentile.oneOf.1","typeLabel":"null"}],"uniqueKey":"customCharts.items.[INDEX].percentile","typeLabel":"number | null"},"series":{"oneOf":[{"type":"array","description":"Multi-series mode: define two or more series. Omit metric/metricField/percentile when using this.","items":{"type":"object","title":"CustomAnalyticsSeriesSpec","description":"One series in a multi-series custom analytics query.","required":["key","label","metric","metricField"],"properties":{"key":{"type":"string","description":"Unique identifier for this series within the chart (alphanumeric, hyphens, underscores; max 64 chars).","isRequired":true,"uniqueKey":"customCharts.items.[INDEX].series.oneOf.0.items.[INDEX].key","typeLabel":"string"},"label":{"type":"string","description":"Human-readable series label shown in chart legends (max 120 chars).","isRequired":true,"uniqueKey":"customCharts.items.[INDEX].series.oneOf.0.items.[INDEX].label","typeLabel":"string"},"metric":{"type":"string","enum":["sum","avg","min","max","percentile"],"description":"Aggregation function for this series.","isRequired":true,"uniqueKey":"customCharts.items.[INDEX].series.oneOf.0.items.[INDEX].metric","typeLabel":"enum\u003cstring>"},"metricField":{"type":"string","enum":["input_tokens","output_tokens","cost","latency_ms","prompt_version_number","turn_count","tool_call_count","cached_tokens","thinking_tokens"],"description":"Numeric field to aggregate.","isRequired":true,"uniqueKey":"customCharts.items.[INDEX].series.oneOf.0.items.[INDEX].metricField","typeLabel":"enum\u003cstring>"},"percentile":{"oneOf":[{"type":"number","minimum":0,"maximum":100,"description":"Required when metric is `percentile`; omit otherwise.","uniqueKey":"customCharts.items.[INDEX].series.oneOf.0.items.[INDEX].percentile.oneOf.0","typeLabel":"number"},{"type":"null","minimum":0,"maximum":100,"description":"Required when metric is `percentile`; omit otherwise.","uniqueKey":"customCharts.items.[INDEX].series.oneOf.0.items.[INDEX].percentile.oneOf.1","typeLabel":"null"}],"uniqueKey":"customCharts.items.[INDEX].series.oneOf.0.items.[INDEX].percentile","typeLabel":"number | null"}},"uniqueKey":"customCharts.items.[INDEX].series.oneOf.0.items.[INDEX]","typeLabel":"CustomAnalyticsSeriesSpec · object"},"uniqueKey":"customCharts.items.[INDEX].series.oneOf.0","typeLabel":"CustomAnalyticsSeriesSpec · object[]"},{"type":"null","description":"Multi-series mode: define two or more series. Omit metric/metricField/percentile when using this.","items":{"type":"object","title":"CustomAnalyticsSeriesSpec","description":"One series in a multi-series custom analytics query.","required":["key","label","metric","metricField"],"properties":{"key":{"type":"string","description":"Unique identifier for this series within the chart (alphanumeric, hyphens, underscores; max 64 chars)."},"label":{"type":"string","description":"Human-readable series label shown in chart legends (max 120 chars)."},"metric":{"type":"string","enum":["sum","avg","min","max","percentile"],"description":"Aggregation function for this series."},"metricField":{"type":"string","enum":["input_tokens","output_tokens","cost","latency_ms","prompt_version_number","turn_count","tool_call_count","cached_tokens","thinking_tokens"],"description":"Numeric field to aggregate."},"percentile":{"oneOf":[{"type":"number","minimum":0,"maximum":100,"description":"Required when metric is `percentile`; omit otherwise."},{"type":"null","minimum":0,"maximum":100,"description":"Required when metric is `percentile`; omit otherwise."}]}}},"uniqueKey":"customCharts.items.[INDEX].series.oneOf.1","typeLabel":"null"}],"uniqueKey":"customCharts.items.[INDEX].series","typeLabel":"CustomAnalyticsSeriesSpec · object[] | null"},"derivedInsights":{"oneOf":[{"type":"array","description":"Ratio insights computed from series totals. Only valid in multi-series mode.","items":{"type":"object","title":"DerivedRatioInsightSpec","description":"A display-only derived insight computed as a ratio of two series totals.","required":["label","numeratorSeriesKey","denominatorSeriesKey"],"properties":{"label":{"type":"string","description":"Label shown for this insight (max 200 chars).","isRequired":true,"uniqueKey":"customCharts.items.[INDEX].derivedInsights.oneOf.0.items.[INDEX].label","typeLabel":"string"},"numeratorSeriesKey":{"type":"string","description":"Key of the numerator series (must match a series key in the chart).","isRequired":true,"uniqueKey":"customCharts.items.[INDEX].derivedInsights.oneOf.0.items.[INDEX].numeratorSeriesKey","typeLabel":"string"},"denominatorSeriesKey":{"type":"string","description":"Key of the denominator series (must match a series key in the chart).","isRequired":true,"uniqueKey":"customCharts.items.[INDEX].derivedInsights.oneOf.0.items.[INDEX].denominatorSeriesKey","typeLabel":"string"},"type":{"type":"string","enum":["ratio"],"default":"ratio","uniqueKey":"customCharts.items.[INDEX].derivedInsights.oneOf.0.items.[INDEX].type","typeLabel":"enum\u003cstring>"}},"uniqueKey":"customCharts.items.[INDEX].derivedInsights.oneOf.0.items.[INDEX]","typeLabel":"DerivedRatioInsightSpec · object"},"uniqueKey":"customCharts.items.[INDEX].derivedInsights.oneOf.0","typeLabel":"DerivedRatioInsightSpec · object[]"},{"type":"null","description":"Ratio insights computed from series totals. Only valid in multi-series mode.","items":{"type":"object","title":"DerivedRatioInsightSpec","description":"A display-only derived insight computed as a ratio of two series totals.","required":["label","numeratorSeriesKey","denominatorSeriesKey"],"properties":{"type":{"type":"string","enum":["ratio"],"default":"ratio"},"label":{"type":"string","description":"Label shown for this insight (max 200 chars)."},"numeratorSeriesKey":{"type":"string","description":"Key of the numerator series (must match a series key in the chart)."},"denominatorSeriesKey":{"type":"string","description":"Key of the denominator series (must match a series key in the chart)."}}},"uniqueKey":"customCharts.items.[INDEX].derivedInsights.oneOf.1","typeLabel":"null"}],"uniqueKey":"customCharts.items.[INDEX].derivedInsights","typeLabel":"DerivedRatioInsightSpec · object[] | null"},"groupByField":{"oneOf":[{"type":"string","enum":["engine","provider_type","prompt_id","prompt_version_number","status","error_type","tags","metadata_keys","output_keys","input_variable_keys","tool_names"],"description":"Break results down by this request log field. Cannot be combined with groupByMetadataKey.","uniqueKey":"customCharts.items.[INDEX].groupByField.oneOf.0","typeLabel":"enum\u003cstring>"},{"type":"null","enum":["engine","provider_type","prompt_id","prompt_version_number","status","error_type","tags","metadata_keys","output_keys","input_variable_keys","tool_names"],"description":"Break results down by this request log field. Cannot be combined with groupByMetadataKey.","uniqueKey":"customCharts.items.[INDEX].groupByField.oneOf.1","typeLabel":"null"}],"uniqueKey":"customCharts.items.[INDEX].groupByField","typeLabel":"enum\u003cstring> | null"},"groupByMetadataKey":{"oneOf":[{"type":"string","description":"Break results down by the values of this metadata key. Cannot be combined with groupByField.","uniqueKey":"customCharts.items.[INDEX].groupByMetadataKey.oneOf.0","typeLabel":"string"},{"type":"null","description":"Break results down by the values of this metadata key. Cannot be combined with groupByField.","uniqueKey":"customCharts.items.[INDEX].groupByMetadataKey.oneOf.1","typeLabel":"null"}],"uniqueKey":"customCharts.items.[INDEX].groupByMetadataKey","typeLabel":"string | null"},"timeSeries":{"type":"boolean","default":false,"description":"When true, bucket results over time (bucket size chosen automatically from the filter range).","uniqueKey":"customCharts.items.[INDEX].timeSeries","typeLabel":"boolean"},"limit":{"type":"integer","minimum":1,"maximum":100,"default":25,"description":"Maximum number of group-by buckets to return.","uniqueKey":"customCharts.items.[INDEX].limit","typeLabel":"integer"}},"uniqueKey":"customCharts.items.[INDEX]","typeLabel":"CustomAnalyticsSpec · object"},"isRequired":true,"uniqueKey":"customCharts","typeLabel":"CustomAnalyticsSpec · object[]"},"filter_group":{"oneOf":[{"type":"object","title":"StructuredFilterGroup","description":"Nested filter group with AND/OR logic.","required":["filters"],"properties":{"filters":{"type":"array","description":"List of filters or nested filter groups.","items":{"oneOf":[{"type":"object","title":"StructuredFilter","description":"A single filter condition on a request log field.","required":["field","operator"],"properties":{"field":{"type":"string","description":"The request log field to filter on. Intent fields are virtual fields that classify request content by tone and do not require any additional logging configuration. `user_intent` classifies the user's message; valid values: `frustrated`, `satisfied`, `curious`. `agent_intent` classifies the agent's response; valid values: `apologetic`, `refusal`, `uncertain`. Intent fields support operators: `is`, `is_not`, `in`, `not_in`.","enum":["pl_id","prompt_id","engine","provider_type","input_text","output_text","prompt_version_number","input_tokens","output_tokens","cost","latency_ms","request_start_time","request_end_time","status","is_json","is_tool_call","is_plain_text","tags","metadata_keys","metadata","tool_names","output","output_keys","input_variables","input_variable_keys","user_intent","agent_intent"],"isRequired":true,"uniqueKey":"filter_group.oneOf.0.filters.items.[INDEX].oneOf.0.field","typeLabel":"enum\u003cstring>"},"operator":{"type":"string","description":"The comparison operator.","enum":["is","is_not","in","not_in","contains","not_contains","starts_with","ends_with","eq","neq","gt","gte","lt","lte","between","before","after","is_true","is_false","is_empty","is_not_empty","is_null","is_not_null","key_equals","key_not_equals","key_contains"],"isRequired":true,"uniqueKey":"filter_group.oneOf.0.filters.items.[INDEX].oneOf.0.operator","typeLabel":"enum\u003cstring>"},"value":{"oneOf":[{"type":"string","description":"The value to compare against. Type depends on the field and operator.","uniqueKey":"filter_group.oneOf.0.filters.items.[INDEX].oneOf.0.value.oneOf.0","typeLabel":"string"},{"type":"number","description":"The value to compare against. Type depends on the field and operator.","uniqueKey":"filter_group.oneOf.0.filters.items.[INDEX].oneOf.0.value.oneOf.1","typeLabel":"number"},{"type":"boolean","description":"The value to compare against. Type depends on the field and operator.","uniqueKey":"filter_group.oneOf.0.filters.items.[INDEX].oneOf.0.value.oneOf.2","typeLabel":"boolean"},{"type":"array","items":{"oneOf":[{}],"uniqueKey":"filter_group.oneOf.0.filters.items.[INDEX].oneOf.0.value.oneOf.3.items.[INDEX]","typeLabel":"any"},"description":"The value to compare against. Type depends on the field and operator.","uniqueKey":"filter_group.oneOf.0.filters.items.[INDEX].oneOf.0.value.oneOf.3","typeLabel":"any[]"},{"type":"null","description":"The value to compare against. Type depends on the field and operator.","uniqueKey":"filter_group.oneOf.0.filters.items.[INDEX].oneOf.0.value.oneOf.4","typeLabel":"null"}],"uniqueKey":"filter_group.oneOf.0.filters.items.[INDEX].oneOf.0.value","typeLabel":"string | number | boolean | any[] | null"},"nested_key":{"oneOf":[{"type":"string","description":"Required for nested fields (metadata, output, input_variables). Specifies which key within the nested object to filter on.","uniqueKey":"filter_group.oneOf.0.filters.items.[INDEX].oneOf.0.nested_key.oneOf.0","typeLabel":"string"},{"type":"null","description":"Required for nested fields (metadata, output, input_variables). Specifies which key within the nested object to filter on.","uniqueKey":"filter_group.oneOf.0.filters.items.[INDEX].oneOf.0.nested_key.oneOf.1","typeLabel":"null"}],"uniqueKey":"filter_group.oneOf.0.filters.items.[INDEX].oneOf.0.nested_key","typeLabel":"string | null"}},"uniqueKey":"filter_group.oneOf.0.filters.items.[INDEX].oneOf.0","typeLabel":"StructuredFilter · object"},{}],"uniqueKey":"filter_group.oneOf.0.filters.items.[INDEX]","typeLabel":"StructuredFilter · object"},"isRequired":true,"uniqueKey":"filter_group.oneOf.0.filters","typeLabel":"StructuredFilter · object[]"},"logic":{"type":"string","enum":["AND","OR"],"default":"AND","description":"How to combine the filters in this group.","uniqueKey":"filter_group.oneOf.0.logic","typeLabel":"enum\u003cstring>"}},"uniqueKey":"filter_group.oneOf.0","typeLabel":"StructuredFilterGroup · object"},{"type":"null","title":"StructuredFilterGroup","description":"Nested filter group with AND/OR logic.","required":["filters"],"properties":{"logic":{"type":"string","enum":["AND","OR"],"default":"AND","description":"How to combine the filters in this group."},"filters":{"type":"array","description":"List of filters or nested filter groups.","items":{"oneOf":[{"type":"object","title":"StructuredFilter","description":"A single filter condition on a request log field.","required":["field","operator"],"properties":{"field":{"type":"string","description":"The request log field to filter on. Intent fields are virtual fields that classify request content by tone and do not require any additional logging configuration. `user_intent` classifies the user's message; valid values: `frustrated`, `satisfied`, `curious`. `agent_intent` classifies the agent's response; valid values: `apologetic`, `refusal`, `uncertain`. Intent fields support operators: `is`, `is_not`, `in`, `not_in`.","enum":["pl_id","prompt_id","engine","provider_type","input_text","output_text","prompt_version_number","input_tokens","output_tokens","cost","latency_ms","request_start_time","request_end_time","status","is_json","is_tool_call","is_plain_text","tags","metadata_keys","metadata","tool_names","output","output_keys","input_variables","input_variable_keys","user_intent","agent_intent"]},"operator":{"type":"string","description":"The comparison operator.","enum":["is","is_not","in","not_in","contains","not_contains","starts_with","ends_with","eq","neq","gt","gte","lt","lte","between","before","after","is_true","is_false","is_empty","is_not_empty","is_null","is_not_null","key_equals","key_not_equals","key_contains"]},"value":{"oneOf":[{"type":"string","description":"The value to compare against. Type depends on the field and operator."},{"type":"number","description":"The value to compare against. Type depends on the field and operator."},{"type":"boolean","description":"The value to compare against. Type depends on the field and operator."},{"type":"array","items":{"oneOf":[{}]},"description":"The value to compare against. Type depends on the field and operator."},{"type":"null","description":"The value to compare against. Type depends on the field and operator."}]},"nested_key":{"oneOf":[{"type":"string","description":"Required for nested fields (metadata, output, input_variables). Specifies which key within the nested object to filter on."},{"type":"null","description":"Required for nested fields (metadata, output, input_variables). Specifies which key within the nested object to filter on."}]}}},{}]}}},"uniqueKey":"filter_group.oneOf.1","typeLabel":"null"}],"uniqueKey":"filter_group","typeLabel":"StructuredFilterGroup · object | null"},"q":{"oneOf":[{"type":"string","description":"Free-text search query.","uniqueKey":"q.oneOf.0","typeLabel":"string"},{"type":"null","description":"Free-text search query.","uniqueKey":"q.oneOf.1","typeLabel":"null"}],"uniqueKey":"q","typeLabel":"string | null"},"sort_by":{"oneOf":[{"type":"string","enum":["request_start_time","input_tokens","output_tokens","cost","latency_ms","status"],"description":"Accepted for compatibility; does not affect aggregated output.","uniqueKey":"sort_by.oneOf.0","typeLabel":"enum\u003cstring>"},{"type":"null","enum":["request_start_time","input_tokens","output_tokens","cost","latency_ms","status"],"description":"Accepted for compatibility; does not affect aggregated output.","uniqueKey":"sort_by.oneOf.1","typeLabel":"null"}],"uniqueKey":"sort_by","typeLabel":"enum\u003cstring> | null"},"sort_order":{"oneOf":[{"type":"string","enum":["asc","desc"],"uniqueKey":"sort_order.oneOf.0","typeLabel":"enum\u003cstring>"},{"type":"null","enum":["asc","desc"],"uniqueKey":"sort_order.oneOf.1","typeLabel":"null"}],"uniqueKey":"sort_order","typeLabel":"enum\u003cstring> | null"}},"example":{"filter_group":{"logic":"AND","filters":[{"field":"request_start_time","operator":"between","value":["2025-06-01T00:00:00Z","2025-06-08T00:00:00Z"]}]},"customCharts":[{"id":"cost_by_model","title":"Cost by Model","chartType":"bar","metric":"sum","metricField":"cost","groupByField":"engine"},{"id":"requests_over_time","title":"Requests Over Time","chartType":"line","metric":"count","timeSeries":true}]},"uniqueKey":"","typeLabel":"RequestAnalyticsCustomAnalyticsQuery · object"},"examples":{"cost_by_model":{"title":"cost_by_model","value":{"filter_group":{"logic":"AND","filters":[{"field":"request_start_time","operator":"between","value":["2025-06-01T00:00:00Z","2025-06-08T00:00:00Z"]}]},"customCharts":[{"id":"cost_by_model","title":"Cost by Model","chartType":"bar","metric":"sum","metricField":"cost","groupByField":"engine","limit":10}]}},"requests_over_time":{"title":"requests_over_time","value":{"customCharts":[{"id":"requests_over_time","title":"Requests Over Time","chartType":"line","metric":"count","timeSeries":true}]}},"multi_series":{"title":"multi_series","value":{"customCharts":[{"id":"token_breakdown","title":"Token Usage","chartType":"area","timeSeries":true,"series":[{"key":"input","label":"Input Tokens","metric":"sum","metricField":"input_tokens"},{"key":"output","label":"Output Tokens","metric":"sum","metricField":"output_tokens"}],"derivedInsights":[{"label":"Input/Output Ratio","numeratorSeriesKey":"input","denominatorSeriesKey":"output"}]}]}},"p95_latency_by_metadata":{"title":"p95_latency_by_metadata","value":{"customCharts":[{"id":"latency_by_env","title":"p95 Latency by Environment","chartType":"bar","metric":"percentile","percentile":95,"metricField":"latency_ms","groupByMetadataKey":"environment"}]}}},"exampleType":"examples"}},"exampleType":"examples"},"responses":{"83129992-110f-401b-8f65-31fa5476a953":{"description":"Custom chart results in the order requested.","content":{"application/json":{"schema":{"type":"object","title":"RequestAnalyticsCustomAnalyticsResponse","required":["success","customCharts"],"properties":{"success":{"type":"boolean","enum":[true],"isRequired":true,"uniqueKey":"success","typeLabel":"enum\u003cboolean>"},"customCharts":{"type":"array","description":"Results in the same order as the input `customCharts` array.","items":{"type":"object","title":"CustomAnalyticsResult","description":"Computed result for a single custom analytics query.","properties":{"id":{"type":"string","description":"Echoes the chart id from the request.","uniqueKey":"customCharts.items.[INDEX].id","typeLabel":"string"},"title":{"type":"string","description":"Chart title (echoed from request, or defaults to id).","uniqueKey":"customCharts.items.[INDEX].title","typeLabel":"string"},"chartType":{"type":"string","enum":["bar","line","area"],"uniqueKey":"customCharts.items.[INDEX].chartType","typeLabel":"enum\u003cstring>"},"series":{"type":"array","description":"Series descriptors (one entry per series). For single-metric charts the only entry has key `value`.","items":{"type":"object","title":"CustomAnalyticsSeriesMeta","description":"Metadata describing one series in a custom analytics query response.","properties":{"key":{"type":"string","description":"Series key (matches keys in each data row).","uniqueKey":"customCharts.items.[INDEX].series.items.[INDEX].key","typeLabel":"string"},"label":{"type":"string","description":"Human-readable label.","uniqueKey":"customCharts.items.[INDEX].series.items.[INDEX].label","typeLabel":"string"},"unit":{"type":"string","enum":["count","tokens","currency","duration_seconds","number"],"description":"Unit hint for rendering axes.","uniqueKey":"customCharts.items.[INDEX].series.items.[INDEX].unit","typeLabel":"enum\u003cstring>"}},"uniqueKey":"customCharts.items.[INDEX].series.items.[INDEX]","typeLabel":"CustomAnalyticsSeriesMeta · object"},"uniqueKey":"customCharts.items.[INDEX].series","typeLabel":"CustomAnalyticsSeriesMeta · object[]"},"data":{"type":"array","description":"Rows of chart data. Each row has a `label` string and one numeric key per series. Time-series rows also include `bucketKey` (ISO date string).","items":{"additionalProperties":true,"type":"object","uniqueKey":"customCharts.items.[INDEX].data.items.[INDEX]","typeLabel":"object"},"uniqueKey":"customCharts.items.[INDEX].data","typeLabel":"object[]"},"derivedInsights":{"oneOf":[{"type":"array","description":"Computed ratio insights (multi-series charts only).","items":{"type":"object","title":"DerivedRatioInsightResult","description":"A computed ratio insight in the response.","properties":{"type":{"type":"string","enum":["ratio"],"uniqueKey":"customCharts.items.[INDEX].derivedInsights.oneOf.0.items.[INDEX].type","typeLabel":"enum\u003cstring>"},"label":{"type":"string","uniqueKey":"customCharts.items.[INDEX].derivedInsights.oneOf.0.items.[INDEX].label","typeLabel":"string"},"numeratorSeriesKey":{"type":"string","uniqueKey":"customCharts.items.[INDEX].derivedInsights.oneOf.0.items.[INDEX].numeratorSeriesKey","typeLabel":"string"},"denominatorSeriesKey":{"type":"string","uniqueKey":"customCharts.items.[INDEX].derivedInsights.oneOf.0.items.[INDEX].denominatorSeriesKey","typeLabel":"string"},"value":{"type":"number","description":"Ratio of numerator total to denominator total.","uniqueKey":"customCharts.items.[INDEX].derivedInsights.oneOf.0.items.[INDEX].value","typeLabel":"number"}},"uniqueKey":"customCharts.items.[INDEX].derivedInsights.oneOf.0.items.[INDEX]","typeLabel":"DerivedRatioInsightResult · object"},"uniqueKey":"customCharts.items.[INDEX].derivedInsights.oneOf.0","typeLabel":"DerivedRatioInsightResult · object[]"},{"type":"null","description":"Computed ratio insights (multi-series charts only).","items":{"type":"object","title":"DerivedRatioInsightResult","description":"A computed ratio insight in the response.","properties":{"type":{"type":"string","enum":["ratio"]},"label":{"type":"string"},"numeratorSeriesKey":{"type":"string"},"denominatorSeriesKey":{"type":"string"},"value":{"type":"number","description":"Ratio of numerator total to denominator total."}}},"uniqueKey":"customCharts.items.[INDEX].derivedInsights.oneOf.1","typeLabel":"null"}],"uniqueKey":"customCharts.items.[INDEX].derivedInsights","typeLabel":"DerivedRatioInsightResult · object[] | null"}},"uniqueKey":"customCharts.items.[INDEX]","typeLabel":"CustomAnalyticsResult · object"},"isRequired":true,"uniqueKey":"customCharts","typeLabel":"CustomAnalyticsResult · object[]"}},"uniqueKey":"","typeLabel":"RequestAnalyticsCustomAnalyticsResponse · object"},"examples":{"cost_by_model":{"title":"cost_by_model","value":{"success":true,"customCharts":[{"id":"cost_by_model","title":"Cost by Model","chartType":"bar","series":[{"key":"value","label":"Cost","unit":"currency"}],"data":[{"label":"gpt-4o","value":8.42},{"label":"claude-sonnet-4-6","value":3.91}]}]}}},"exampleType":"examples"}},"exampleType":"examples"},"383060fc-b4c2-432f-a3a1-f73dffa5f9e6":{"description":"Invalid chart spec or unsupported filter.","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","default":false,"description":"Indicates that the request failed.","uniqueKey":"success","typeLabel":"boolean"},"message":{"type":"string","description":"Human-readable error message.","uniqueKey":"message","typeLabel":"string"},"error":{"type":"string","description":"Machine-readable or fallback error message.","uniqueKey":"error","typeLabel":"string"}},"additionalProperties":true,"description":"Standard error response. Some legacy endpoints may return either message or error.","uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"success":false,"message":"\u003cstring>","error":"\u003cstring>"}}},"exampleType":"generated"}},"exampleType":"generated"},"2ef96dde-0805-44f5-ac60-92e258835171":{"description":"Unauthorized - missing or invalid API key.","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","default":false,"description":"Indicates that the request failed.","uniqueKey":"success","typeLabel":"boolean"},"message":{"type":"string","description":"Human-readable error message.","uniqueKey":"message","typeLabel":"string"},"error":{"type":"string","description":"Machine-readable or fallback error message.","uniqueKey":"error","typeLabel":"string"}},"additionalProperties":true,"description":"Standard error response. Some legacy endpoints may return either message or error.","uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"success":false,"message":"\u003cstring>","error":"\u003cstring>"}}},"exampleType":"generated"}},"exampleType":"generated"},"f1cdf541-ebd2-4f6b-99f2-07a53ade9986":{"description":"Forbidden - API key does not have access to the requested resource.","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","default":false,"description":"Indicates that the request failed.","uniqueKey":"success","typeLabel":"boolean"},"message":{"type":"string","description":"Human-readable error message.","uniqueKey":"message","typeLabel":"string"},"error":{"type":"string","description":"Machine-readable or fallback error message.","uniqueKey":"error","typeLabel":"string"}},"additionalProperties":true,"description":"Standard error response. Some legacy endpoints may return either message or error.","uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"success":false,"message":"\u003cstring>","error":"\u003cstring>"}}},"exampleType":"generated"}},"exampleType":"generated"},"325213aa-59e3-465c-a0bc-c55c421d022a":{"description":"Validation error - request parameters or body are invalid.","content":{"application/json":{"schema":{"oneOf":[{"type":"object","title":"HTTPValidationError","properties":{"detail":{"items":{"properties":{"loc":{"items":{"oneOf":[{"type":"string","uniqueKey":"oneOf.0.detail.items.[INDEX].loc.items.[INDEX].oneOf.0","typeLabel":"string"},{"type":"integer","uniqueKey":"oneOf.0.detail.items.[INDEX].loc.items.[INDEX].oneOf.1","typeLabel":"integer"}],"uniqueKey":"oneOf.0.detail.items.[INDEX].loc.items.[INDEX]","typeLabel":"string | integer"},"type":"array","title":"Location","isRequired":true,"uniqueKey":"oneOf.0.detail.items.[INDEX].loc","typeLabel":"(string | integer)[]"},"msg":{"type":"string","title":"Message","isRequired":true,"uniqueKey":"oneOf.0.detail.items.[INDEX].msg","typeLabel":"string"},"type":{"type":"string","title":"Error Type","isRequired":true,"uniqueKey":"oneOf.0.detail.items.[INDEX].type","typeLabel":"string"}},"type":"object","required":["loc","msg","type"],"title":"ValidationError","uniqueKey":"oneOf.0.detail.items.[INDEX]","typeLabel":"ValidationError · object"},"type":"array","title":"Detail","uniqueKey":"oneOf.0.detail","typeLabel":"ValidationError · object[]"}},"uniqueKey":"oneOf.0","typeLabel":"HTTPValidationError · object"},{"type":"object","description":"Standard error response. Some legacy endpoints may return either message or error.","properties":{"success":{"type":"boolean","default":false,"description":"Indicates that the request failed.","uniqueKey":"oneOf.1.success","typeLabel":"boolean"},"message":{"type":"string","description":"Human-readable error message.","uniqueKey":"oneOf.1.message","typeLabel":"string"},"error":{"type":"string","description":"Machine-readable or fallback error message.","uniqueKey":"oneOf.1.error","typeLabel":"string"}},"additionalProperties":true,"uniqueKey":"oneOf.1","typeLabel":"object"}],"uniqueKey":"","typeLabel":"HTTPValidationError · object | object"},"examples":{"Example":{"title":"Example","value":{"detail":[{"loc":["\u003cstring>"],"msg":"\u003cstring>","type":"\u003cstring>"}]}}},"exampleType":"generated"}},"exampleType":"generated"}},"security":{"18cb1caf-8d2e-473d-90c8-c6ac38715dc8":{"ApiKeyAuth":{"type":"apiKey","in":"header","name":"X-API-KEY","scopes":[]}}},"servers":{},"processedSecurityOptions":[{"schemes":[{"scheme":{"type":"apiKey","in":"header","name":"X-API-KEY","scopes":[]},"schema":{"title":"X-API-KEY","type":"string","isRequired":true,"typeLabel":"string","deprecated":false},"schemeName":"ApiKeyAuth","name":"X-API-KEY"}],"title":"ApiKeyAuth"}]},"originalFileLocation":"openapi.json"},"subdomain":"promptlayer","siteName":"PromptLayer","title":"Request Analytics — Custom Queries - PromptLayer","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-08-12T20:09:47.916Z","originalFileLocation":"reference/request-analytics-custom-analytics.mdx"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"system\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"application-name\" content=\"PromptLayer\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/promptlayer/HpVdv-oD31DvzW7-/_generated/favicon/android-chrome-192x192.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"/mintlify-assets/_mintlify/favicons/promptlayer/HpVdv-oD31DvzW7-/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/promptlayer/HpVdv-oD31DvzW7-/_generated/favicon/favicon-16x16.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/promptlayer/HpVdv-oD31DvzW7-/_generated/favicon/favicon-32x32.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/promptlayer/HpVdv-oD31DvzW7-/_generated/favicon/favicon.ico\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/promptlayer/HpVdv-oD31DvzW7-/_generated/favicon-dark/android-chrome-192x192.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/promptlayer/HpVdv-oD31DvzW7-/_generated/favicon-dark/favicon-16x16.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/promptlayer/HpVdv-oD31DvzW7-/_generated/favicon-dark/favicon-32x32.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/promptlayer/HpVdv-oD31DvzW7-/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Request Analytics — Custom Queries - PromptLayer\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"PromptLayer\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.promptlayer.com/reference/request-analytics-custom-analytics\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://promptlayer.mintlify.app/_mintlify/api/og/v2?division=Tracking\u0026amp;title=Request+Analytics+%E2%80%94+Custom+Queries\u0026amp;theme=0e04e60491bc5a53ba22d0da\u0026amp;signature=72a247fc28dceec5ab83e9bc0b0d182f0bed14561909e181ae6fa77eed09edbc\">\u003cmeta data-mint-head property=\"og:image:width\" content=\"1200\">\u003cmeta data-mint-head property=\"og:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"twitter:card\" content=\"summary_large_image\">\u003cmeta data-mint-head name=\"twitter:title\" content=\"Request Analytics — Custom Queries - PromptLayer\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://promptlayer.mintlify.app/_mintlify/api/og/v2?division=Tracking\u0026amp;title=Request+Analytics+%E2%80%94+Custom+Queries\u0026amp;theme=0e04e60491bc5a53ba22d0da\u0026amp;signature=72a247fc28dceec5ab83e9bc0b0d182f0bed14561909e181ae6fa77eed09edbc\">\u003cmeta data-mint-head name=\"twitter:image:width\" content=\"1200\">\u003cmeta data-mint-head name=\"twitter:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"/mintlify-assets/_mintlify/favicons/promptlayer/HpVdv-oD31DvzW7-/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"PromptLayer\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#12A7D3\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.promptlayer.com/reference/request-analytics-custom-analytics\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/reference/request-analytics-custom-analytics.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.promptlayer.com/#organization\",\"name\":\"PromptLayer\",\"url\":\"https://docs.promptlayer.com\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/promptlayer/v0RzaTvbzopITX7U/logo/logo.png?fit=max\u0026auto=format\u0026n=v0RzaTvbzopITX7U\u0026q=85\u0026s=0decf70e3c444d489fa5f1152951bd6c\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.promptlayer.com#website\",\"name\":\"PromptLayer\",\"url\":\"https://docs.promptlayer.com\",\"publisher\":{\"@id\":\"https://docs.promptlayer.com/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.promptlayer.com/reference/request-analytics-custom-analytics#webpage\",\"url\":\"https://docs.promptlayer.com/reference/request-analytics-custom-analytics\",\"name\":\"Request Analytics — Custom Queries\",\"dateModified\":\"2026-08-12T20:09:47.916Z\",\"isPartOf\":{\"@id\":\"https://docs.promptlayer.com#website\"},\"breadcrumb\":{\"@id\":\"https://docs.promptlayer.com/reference/request-analytics-custom-analytics#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.promptlayer.com/reference/request-analytics-custom-analytics#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Reference\",\"item\":\"https://docs.promptlayer.com/sdks/python\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"REST API\",\"item\":\"https://docs.promptlayer.com/reference/introduction\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Tracking\",\"item\":\"https://docs.promptlayer.com/reference/get-request\"},{\"@type\":\"ListItem\",\"position\":4,\"name\":\"Request Analytics — Custom Queries\",\"item\":\"https://docs.promptlayer.com/reference/request-analytics-custom-analytics\"}]},{\"@type\":[\"TechArticle\",\"APIReference\"],\"@id\":\"https://docs.promptlayer.com/reference/request-analytics-custom-analytics#apireference\",\"headline\":\"Request Analytics — Custom Queries\",\"name\":\"Request Analytics — Custom Queries\",\"url\":\"https://docs.promptlayer.com/reference/request-analytics-custom-analytics\",\"mainEntityOfPage\":{\"@id\":\"https://docs.promptlayer.com/reference/request-analytics-custom-analytics#webpage\"},\"dateModified\":\"2026-08-12T20:09:47.916Z\",\"publisher\":{\"@id\":\"https://docs.promptlayer.com/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.promptlayer.com#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"PromptLayer\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"PromptLayer","nav":{"global":null,"groups":[{"group":"Get Started","pages":[{"title":"Quickstart","icon":"rocket","href":"/quickstart"},{"title":"Tutorial Videos","icon":"video","href":"/tutorial-videos"}]},{"group":"Core Concepts","pages":[{"group":"Prompt Registry","icon":"notebook","pages":[{"title":"Prompt Registry","sidebarTitle":"Overview","icon":"book","href":"/features/prompt-registry/overview"},{"title":"Editor and Versioning","icon":"pen-line","href":"/features/prompt-registry/prompt-editor-versioning"},{"title":"Template Variables","icon":"pen-ruler","href":"/features/prompt-registry/template-variables"},{"title":"Input Variable Sets","icon":"floppy-disk","href":"/features/prompt-registry/input-variable-sets"},{"title":"Snippets","icon":"link","href":"/features/prompt-registry/snippets"},{"title":"Snippet Dependency Ordering","icon":"diagram-project","href":"/features/prompt-registry/snippet-dependency-ordering"},{"title":"Placeholder Messages","icon":"square-question","href":"/features/prompt-registry/placeholder-messages"},{"title":"Structured Outputs","icon":"diagram-project","href":"/features/prompt-registry/structured-outputs"},{"title":"Tool Calling","icon":"function","href":"/features/prompt-registry/tool-calling"},{"title":"Image Generation","icon":"image","href":"/features/image-generation"},{"title":"Playground","icon":"circle-play","href":"/why-promptlayer/playground"},{"title":"Sharing Requests","icon":"share","href":"/features/prompt-history/sharing-prompts"},{"title":"Release Labels","icon":"tag","href":"/features/prompt-registry/release-labels"},{"title":"Dynamic Release Labels","icon":"tags","href":"/features/prompt-registry/dynamic-release-labels"},{"title":"A/B Testing","icon":"split","href":"/why-promptlayer/ab-releases"}]},{"group":"Tables","icon":"table","tag":"New","pages":[{"title":"Overview","icon":"table","href":"/features/tables/overview"},{"title":"Sheets","icon":"table-cells","href":"/features/tables/sheets"},{"title":"Columns","icon":"columns-3","href":"/features/tables/columns"},{"title":"Column Types","icon":"brackets-curly","href":"/features/tables/column-types"},{"title":"Cells and Runs","icon":"play","href":"/features/tables/cells-and-runs"},{"title":"Scorecards","icon":"clipboard-check","href":"/features/tables/scorecards"},{"title":"History and Analytics","icon":"chart-line","href":"/features/tables/history-and-analytics"},{"title":"Migrate from Evaluations and Datasets","icon":"arrows-rotate","href":"/features/tables/migrate-from-evaluations-and-datasets"}]},{"group":"SDK Evals","icon":"vial-circle-check","tag":"New","pages":[{"title":"Overview","sidebarTitle":"Overview","icon":"book","href":"/sdks/evals/overview"},{"group":"Writing evals","icon":"screwdriver-wrench","pages":[{"title":"Quickstart","sidebarTitle":"Quickstart","icon":"rocket","href":"/sdks/evals/quickstart"},{"title":"Building an eval","sidebarTitle":"Building an eval","icon":"pen-to-square","href":"/sdks/evals/building-an-eval"},{"title":"Datasets","sidebarTitle":"Datasets","icon":"database","href":"/sdks/evals/datasets"},{"title":"Runner and tracing","sidebarTitle":"Runner","icon":"diagram-project","href":"/sdks/evals/agent-tracing"},{"title":"Columns","sidebarTitle":"Columns","icon":"table-columns","href":"/sdks/evals/columns/overview"},{"title":"Scorers","sidebarTitle":"Scorers","icon":"clipboard-check","href":"/sdks/evals/scorers/overview"}]},{"group":"Running evals","icon":"play","pages":[{"title":"CLI and CI","sidebarTitle":"CLI and CI","icon":"terminal","href":"/sdks/evals/cli-and-ci"},{"title":"Results and failures","sidebarTitle":"Results and failures","icon":"circle-check","href":"/sdks/evals/results-and-failures"},{"title":"Concurrency","sidebarTitle":"Concurrency","icon":"layer-group","href":"/sdks/evals/concurrency"}]}]},{"group":"Observability","icon":"chart-column","pages":[{"title":"Overview","icon":"book","href":"/features/observability/overview"},{"group":"Request Logs","icon":"rectangle-list","pages":[{"title":"Overview","icon":"rectangle-list","href":"/features/observability/request-logs"},{"title":"Request IDs","icon":"id-card","href":"/features/observability/request-logs/request-ids"},{"title":"Tags","icon":"tag","href":"/features/observability/request-logs/tags"},{"title":"Metadata","icon":"brackets-curly","href":"/features/observability/request-logs/metadata"},{"title":"Scores","icon":"star","href":"/features/observability/request-logs/scores"},{"title":"Signals","icon":"wave-pulse","href":"/features/observability/request-logs/signals"},{"title":"Tracking Templates","icon":"chart-scatter-bubble","href":"/features/observability/request-logs/tracking-templates"},{"title":"Custom Logging","icon":"brackets-curly","href":"/features/observability/request-logs/custom-logging"},{"title":"Structured Outputs","icon":"brackets-curly","href":"/features/observability/request-logs/structured-outputs"}]},{"group":"Traces","icon":"diagram-project","pages":[{"title":"Overview","icon":"diagram-project","href":"/features/observability/traces"},{"title":"Manual Tracing","icon":"code","href":"/features/observability/traces/manual-tracing"},{"group":"SDK Auto-Instrumentation","icon":"code","pages":[{"title":"Overview","icon":"wave-pulse","href":"/features/observability/traces/auto-instrumentation/overview"},{"title":"OpenAI SDK","icon":"https://mintlify.s3.us-west-1.amazonaws.com/promptlayer/images/provider-logos/openai.svg","href":"/features/observability/traces/auto-instrumentation/openai"},{"title":"Anthropic SDK","icon":"https://mintlify.s3.us-west-1.amazonaws.com/promptlayer/images/provider-logos/anthropic.svg","href":"/features/observability/traces/auto-instrumentation/anthropic"},{"title":"Google SDK","icon":"https://mintlify.s3.us-west-1.amazonaws.com/promptlayer/images/provider-logos/google.svg","href":"/features/observability/traces/auto-instrumentation/google"},{"title":"AWS Bedrock","icon":"aws","href":"/features/observability/traces/auto-instrumentation/bedrock"}]},{"title":"OpenTelemetry","icon":"https://mintlify.s3.us-west-1.amazonaws.com/promptlayer/images/provider-logos/opentelemetry.svg","href":"/features/observability/traces/opentelemetry"},{"title":"Telemetry Integrations","icon":"handshake","href":"/features/observability/traces/integrations"}]}]},{"group":"Search \u0026 Analytics","icon":"chart-pie-simple","pages":[{"title":"Search","icon":"magnifying-glass","href":"/features/search-and-analytics/search"},{"title":"Analytics","icon":"chart-pie-simple","href":"/features/search-and-analytics/analytics"},{"title":"Search Data Model","icon":"diagram-project","href":"/features/search-and-analytics/search-data-model"}]},{"title":"Workflows","icon":"sitemap","href":"/why-promptlayer/workflows"},{"group":"Tool Registry","icon":"wrench","tag":"New","pages":[{"title":"Overview","icon":"wrench","href":"/features/tool-registry/overview"},{"title":"Using Tools in Prompts","icon":"link","href":"/features/tool-registry/using-in-prompts"},{"title":"Save Inline to Registry","icon":"floppy-disk","href":"/features/tool-registry/save-inline-to-registry"},{"title":"Auto Tool Execution","icon":"play","href":"/features/tool-registry/auto-execution"},{"title":"Mock Tool Responses","icon":"flask","href":"/features/tool-registry/mock-tool-responses"}]},{"group":"MCP Servers","icon":"server","tag":"New","pages":[{"title":"MCP Servers","icon":"server","href":"/features/mcp-servers/overview"}]},{"group":"Skill Collections","icon":"book-sparkles","tag":"New","pages":[{"title":"Overview","icon":"book","href":"/features/skill-collections/overview"},{"title":"Editing with Wrangler AI","icon":"message-bot","href":"/features/skill-collections/editing-with-wrangler"},{"title":"Sharing and remixing collections","icon":"share","href":"/features/skill-collections/sharing-and-remixing"},{"title":"Pulling skills into your agent","icon":"download","href":"/features/skill-collections/pulling-skills"},{"title":"Tune skills for your team","icon":"sliders","href":"/features/skill-collections/tuning-skills"}]},{"group":"Orgs \u0026 Workspaces","icon":"users-gear","pages":[{"title":"Overview","icon":"book","href":"/why-promptlayer/shared-workspaces"},{"title":"Organizations","icon":"users-gear","href":"/why-promptlayer/organizations"},{"title":"Workspaces","icon":"handshake-simple","href":"/why-promptlayer/workspaces"},{"title":"Data Retention","icon":"box-archive","href":"/why-promptlayer/data-retention"},{"title":"RBAC","icon":"shield","href":"/why-promptlayer/rbac"},{"group":"Enterprise Identity","icon":"id-card","pages":[{"title":"Overview","icon":"id-card","href":"/why-promptlayer/enterprise-identity/overview"},{"title":"Setup","icon":"plug","href":"/why-promptlayer/enterprise-identity/setup"},{"title":"Provisioning \u0026 access","icon":"users","href":"/why-promptlayer/enterprise-identity/provisioning"},{"title":"Sign-in policy \u0026 break-glass","icon":"shield","href":"/why-promptlayer/enterprise-identity/sign-in-security"},{"title":"Audit log","icon":"list","href":"/why-promptlayer/enterprise-identity/audit-log"}]}]}]},{"group":"Providers","pages":[{"title":"Supported Providers","icon":"list-check","href":"/features/supported-providers"},{"title":"OpenRouter","icon":"route","href":"/features/openrouter-integration"},{"group":"Custom Providers","icon":"plug","pages":[{"title":"Configure Providers","icon":"screwdriver-wrench","href":"/features/custom-providers"},{"title":"Exa","icon":"magnifying-glass","href":"/features/exa-integration"},{"title":"xAI (Grok)","icon":"bolt","href":"/features/xai-integration"},{"title":"Concentrate AI","icon":"layer-group","href":"/features/concentrate-integration"}]}]},{"group":"Guides","pages":[{"group":"Deployment","icon":"ship","pages":[{"title":"Choose a Deployment Strategy","icon":"ship","href":"/onboarding-guides/deployment-strategies"},{"title":"Zero Downtime Releases","icon":"rocket","href":"/features/prompt-registry/zero-downtime-releases"}]},{"group":"Self-Hosted PromptLayer","icon":"server","pages":[{"title":"Self-Hosted PromptLayer","icon":"server","href":"/self-hosted"},{"title":"Deploy PromptLayer on AWS","sidebarTitle":"AWS Deployment","icon":"aws","href":"/enterprise-deployments/aws"}]},{"group":"Additional Use Cases","icon":"lightbulb","pages":[{"title":"Multi-Turn Chat","icon":"messages","href":"/why-promptlayer/multi-turn-chat"},{"title":"Fine-Tuning","icon":"dumbbell","href":"/why-promptlayer/fine-tuning"},{"title":"Prompt Blueprints","icon":"layer-group","href":"/running-requests/prompt-blueprints"}]}]},{"group":"AI Tools","pages":[{"title":"MCP \u0026 Skills","href":"/agents/overview"}]},{"group":"Reference","pages":[{"group":"SDKs","pages":[{"title":"Python","href":"/sdks/python"},{"title":"JavaScript","href":"/sdks/javascript"}]},{"group":"REST API","pages":[{"title":"Introduction","href":"/reference/introduction"},{"group":"Prompt Templates","pages":[{"title":"Get Prompt Template","openapi":"POST /prompt-templates/{identifier}","href":"/reference/templates-get"},{"title":"Get Prompt Template (Raw)","openapi":"GET /prompt-templates/{identifier}","href":"/reference/templates-get-raw"},{"title":"List Prompt Templates","openapi":"GET /prompt-templates","href":"/reference/list-prompt-templates"},{"title":"Publish Prompt Template","openapi":"POST /rest/prompt-templates","href":"/reference/templates-publish"},{"title":"Patch Prompt Template Version","openapi":"PATCH /rest/prompt-templates/{identifier}","href":"/reference/templates-patch"},{"title":"List Prompt Template Labels","openapi":"GET /prompt-templates/{identifier}/labels","href":"/reference/templates-labels-get"},{"title":"Create a Prompt Template Label","openapi":"POST /prompts/{prompt_id}/label","href":"/reference/prompt-labels-create"},{"title":"Move Prompt Template Labels","openapi":"PATCH /prompt-labels/{prompt_label_id}","href":"/reference/prompt-labels-patch"},{"title":"Delete a Prompt Template Label","openapi":"DELETE /prompt-labels/{prompt_label_id}","href":"/reference/prompt-labels-delete"},{"title":"Get Snippet Usage","openapi":"GET /prompt-templates/{identifier}/snippet-usage","href":"/reference/get-snippet-usage"},{"title":"Upsert Prompt Template by External ID","openapi":"PUT /prompt-templates/by-external-id/{source}/{external_id}","href":"/reference/external-ids-prompt-templates-upsert"},{"title":"Attach Prompt Template External ID","openapi":"POST /prompt-templates/{prompt_template_id}/external-ids","href":"/reference/external-ids-prompt-templates-attach"},{"title":"List Prompt Template External IDs","openapi":"GET /prompt-templates/{prompt_template_id}/external-ids","href":"/reference/external-ids-prompt-templates-list"},{"title":"Delete Prompt Template External ID","openapi":"DELETE /prompt-templates/{prompt_template_id}/external-ids/{source}/{external_id}","href":"/reference/external-ids-prompt-templates-delete"}]},{"group":"Tracking","pages":[{"title":"Get Request","openapi":"GET /api/public/v2/requests/{request_id}","href":"/reference/get-request"},{"title":"Get Trace","openapi":"GET /api/public/v2/traces/{trace_id}","href":"/reference/get-trace"},{"title":"Close Trace","openapi":"POST /api/public/v2/traces/{trace_id}/close","href":"/reference/close-trace"},{"title":"Search Request Logs","openapi":"POST /api/public/v2/requests/search","href":"/reference/search-request-logs"},{"title":"Search Request Suggestions","openapi":"GET /api/public/v2/requests/suggestions","href":"/reference/search-request-suggestions"},{"title":"Request Analytics","openapi":"POST /api/public/v2/requests/analytics","description":null,"href":"/reference/request-analytics"},{"title":"Request Analytics — Custom Queries","openapi":"POST /api/public/v2/requests/analytics/custom-analytics","href":"/reference/request-analytics-custom-analytics"},{"title":"Trace Analytics — Custom Queries","openapi":"POST /api/public/v2/traces/analytics/custom-analytics","description":null,"href":"/reference/trace-analytics-custom-analytics"},{"title":"Log Request","openapi":"POST /log-request","href":"/reference/log-request"},{"title":"Track Prompt","openapi":"POST /rest/track-prompt","href":"/reference/track-prompt"},{"title":"Track Score","openapi":"POST /rest/track-score","href":"/reference/track-score"},{"title":"Track Metadata","openapi":"POST /rest/track-metadata","href":"/reference/track-metadata"},{"title":"Create Spans Bulk","openapi":"POST /spans-bulk","href":"/reference/spans-bulk"},{"title":"Ingest Traces (OTLP)","openapi":"POST /v1/traces","href":"/reference/otlp-ingest-traces"}]},{"group":"Tables","tag":"New","pages":[{"title":"Create Table","openapi":"POST /api/public/v2/tables","href":"/reference/tables-create"},{"title":"List Tables","openapi":"GET /api/public/v2/tables","href":"/reference/tables-list"},{"title":"Get Table","openapi":"GET /api/public/v2/tables/{table_id}","href":"/reference/tables-get"},{"title":"Update Table","openapi":"PATCH /api/public/v2/tables/{table_id}","href":"/reference/tables-update"},{"title":"Delete Table","openapi":"DELETE /api/public/v2/tables/{table_id}","href":"/reference/tables-delete"},{"title":"List Sheets","openapi":"GET /api/public/v2/tables/{table_id}/sheets","href":"/reference/table-sheets-list"},{"title":"Create Sheet","openapi":"POST /api/public/v2/tables/{table_id}/sheets","href":"/reference/table-sheets-create"},{"title":"Get Sheet Import Operation","openapi":"GET /api/public/v2/tables/{table_id}/sheets/operations/{operation_id}","href":"/reference/table-sheets-get-operation"},{"title":"Get Sheet","openapi":"GET /api/public/v2/tables/{table_id}/sheets/{sheet_id}","href":"/reference/table-sheets-get"},{"title":"Update Sheet","openapi":"PATCH /api/public/v2/tables/{table_id}/sheets/{sheet_id}","href":"/reference/table-sheets-update"},{"title":"Delete Sheet","openapi":"DELETE /api/public/v2/tables/{table_id}/sheets/{sheet_id}","href":"/reference/table-sheets-delete"},{"title":"List Columns","openapi":"GET /api/public/v2/tables/{table_id}/sheets/{sheet_id}/columns","href":"/reference/table-sheet-columns-list"},{"title":"Create Column","openapi":"POST /api/public/v2/tables/{table_id}/sheets/{sheet_id}/columns","href":"/reference/table-sheet-columns-create"},{"title":"Update Column","openapi":"PATCH /api/public/v2/tables/{table_id}/sheets/{sheet_id}/columns/{column_id}","href":"/reference/table-sheet-columns-update"},{"title":"Delete Column","openapi":"DELETE /api/public/v2/tables/{table_id}/sheets/{sheet_id}/columns/{column_id}","href":"/reference/table-sheet-columns-delete"},{"title":"List Rows","openapi":"GET /api/public/v2/tables/{table_id}/sheets/{sheet_id}/rows","href":"/reference/table-sheet-rows-list"},{"title":"Add Rows","openapi":"POST /api/public/v2/tables/{table_id}/sheets/{sheet_id}/rows","href":"/reference/table-sheet-rows-add"},{"title":"Get Cell","openapi":"GET /api/public/v2/tables/{table_id}/sheets/{sheet_id}/cells/{cell_id}","href":"/reference/table-sheet-cells-get"},{"title":"Update Cell","openapi":"PATCH /api/public/v2/tables/{table_id}/sheets/{sheet_id}/cells/{cell_id}","href":"/reference/table-sheet-cells-update"},{"title":"Recalculate Cell","openapi":"POST /api/public/v2/tables/{table_id}/sheets/{sheet_id}/cells/{cell_id}/recalculations","href":"/reference/table-sheet-cells-recalculate"},{"title":"Recalculate Cells (Batch)","openapi":"POST /api/public/v2/tables/{table_id}/sheets/{sheet_id}/cells/recalculations","href":"/reference/table-sheet-cells-recalculate-batch"},{"title":"Import File","openapi":"POST /api/public/v2/tables/{table_id}/sheets/{sheet_id}/imports/file","href":"/reference/table-sheet-imports-file-create"},{"title":"Import Request Logs","openapi":"POST /api/public/v2/tables/{table_id}/sheets/{sheet_id}/imports/request-logs","href":"/reference/table-sheet-imports-request-logs-create"},{"title":"List Operations","openapi":"GET /api/public/v2/tables/{table_id}/sheets/{sheet_id}/operations","href":"/reference/table-sheet-operations-list"},{"title":"Create Operation","openapi":"POST /api/public/v2/tables/{table_id}/sheets/{sheet_id}/operations","href":"/reference/table-sheet-operations-create"},{"title":"Get Operation","openapi":"GET /api/public/v2/tables/{table_id}/sheets/{sheet_id}/operations/{operation_id}","href":"/reference/table-sheet-operations-get"},{"title":"Cancel Operation","openapi":"DELETE /api/public/v2/tables/{table_id}/sheets/{sheet_id}/operations/{operation_id}","href":"/reference/table-sheet-operations-cancel"},{"title":"Get Score","openapi":"GET /api/public/v2/tables/{table_id}/sheets/{sheet_id}/score","href":"/reference/table-sheet-score-get"},{"title":"Configure Score","openapi":"PATCH /api/public/v2/tables/{table_id}/sheets/{sheet_id}/score","href":"/reference/table-sheet-score-configure"},{"title":"Recalculate Score","openapi":"POST /api/public/v2/tables/{table_id}/sheets/{sheet_id}/score","href":"/reference/table-sheet-score-recalculate"},{"title":"Get Scorecard","openapi":"GET /api/public/v2/tables/{table_id}/sheets/{sheet_id}/scorecard","href":"/reference/table-sheet-scorecard-get"},{"title":"Configure Scorecard","openapi":"PATCH /api/public/v2/tables/{table_id}/sheets/{sheet_id}/scorecard","href":"/reference/table-sheet-scorecard-configure"},{"title":"Delete Scorecard","openapi":"DELETE /api/public/v2/tables/{table_id}/sheets/{sheet_id}/scorecard","href":"/reference/table-sheet-scorecard-delete"},{"title":"Migrate Legacy Score to Scorecard","openapi":"POST /api/public/v2/tables/{table_id}/sheets/{sheet_id}/scorecard/migrate-legacy-score","href":"/reference/table-sheet-scorecard-migrate-legacy-score"},{"title":"Recalculate Scorecard","openapi":"POST /api/public/v2/tables/{table_id}/sheets/{sheet_id}/scorecard/recalculate","href":"/reference/table-sheet-scorecard-recalculate"},{"title":"Cancel Scorecard","openapi":"POST /api/public/v2/tables/{table_id}/sheets/{sheet_id}/scorecard/cancel","href":"/reference/table-sheet-scorecard-cancel"},{"title":"Get Scorecard Calculation","openapi":"GET /api/public/v2/tables/{table_id}/sheets/{sheet_id}/scorecard/calculations/{calculation_id}","href":"/reference/table-sheet-scorecard-calculation-get"},{"title":"List Scorecard Rows","openapi":"GET /api/public/v2/tables/{table_id}/sheets/{sheet_id}/scorecard/rows","href":"/reference/table-sheet-scorecard-rows-list"},{"title":"Get Scorecard Row","openapi":"GET /api/public/v2/tables/{table_id}/sheets/{sheet_id}/scorecard/rows/{row_index}","href":"/reference/table-sheet-scorecard-row-get"},{"title":"List Versions","openapi":"GET /api/public/v2/tables/{table_id}/sheets/{sheet_id}/versions","href":"/reference/table-sheet-versions-list"},{"title":"Create Version","openapi":"POST /api/public/v2/tables/{table_id}/sheets/{sheet_id}/versions","href":"/reference/table-sheet-versions-create"},{"title":"Get Version","openapi":"GET /api/public/v2/tables/{table_id}/sheets/{sheet_id}/versions/{version_id}","href":"/reference/table-sheet-versions-get"},{"title":"Get Score History","openapi":"GET /api/public/v2/tables/{table_id}/sheets/{sheet_id}/versions/score-history","href":"/reference/table-sheet-score-history-get"}]},{"group":"Workflows","pages":[{"title":"List Workflows","openapi":"GET /workflows","href":"/reference/list-workflows"},{"title":"Get Workflow","openapi":"GET /workflows/{workflow_id_or_name}","href":"/reference/get-workflow"},{"title":"Get Workflow Labels","openapi":"GET /workflows/{workflow_id_or_name}/labels","href":"/reference/get-workflow-labels"},{"title":"Create Workflow","openapi":"POST /rest/workflows","href":"/reference/create-workflow"},{"title":"Update Workflow (PATCH)","openapi":"PATCH /rest/workflows/{workflow_id_or_name}","href":"/reference/patch-workflow"},{"title":"Run Workflow","openapi":"POST /workflows/{workflow_name}/run","href":"/reference/run-workflow"},{"title":"Get Workflow Version Execution Results","openapi":"GET /workflow-version-execution-results","href":"/reference/workflow-version-execution-results"},{"title":"Attach Workflow External ID","openapi":"POST /workflows/{workflow_id}/external-ids","href":"/reference/external-ids-workflows-attach"},{"title":"List Workflow External IDs","openapi":"GET /workflows/{workflow_id}/external-ids","href":"/reference/external-ids-workflows-list"},{"title":"Delete Workflow External ID","openapi":"DELETE /workflows/{workflow_id}/external-ids/{source}/{external_id}","href":"/reference/external-ids-workflows-delete"}]},{"group":"Skill Collections","pages":[{"title":"List Skill Collections","openapi":"GET /api/public/v2/skill-collections","href":"/reference/list-skill-collections"},{"title":"Create Skill Collection","openapi":"POST /api/public/v2/skill-collections","href":"/reference/create-skill-collection"},{"title":"Get Skill Collection","openapi":"GET /api/public/v2/skill-collections/{identifier}","href":"/reference/get-skill-collection"},{"title":"Update Skill Collection","openapi":"PATCH /api/public/v2/skill-collections/{identifier}","href":"/reference/update-skill-collection"},{"title":"Save Skill Collection Version","openapi":"POST /api/public/v2/skill-collections/{identifier}/versions","href":"/reference/save-skill-collection-version"},{"title":"Attach Skill Collection External ID","openapi":"POST /api/public/v2/skill-collections/{skill_collection_id}/external-ids","href":"/reference/external-ids-skill-collections-attach"},{"title":"List Skill Collection External IDs","openapi":"GET /api/public/v2/skill-collections/{skill_collection_id}/external-ids","href":"/reference/external-ids-skill-collections-list"},{"title":"Delete Skill Collection External ID","openapi":"DELETE /api/public/v2/skill-collections/{skill_collection_id}/external-ids/{source}/{external_id}","href":"/reference/external-ids-skill-collections-delete"}]},{"group":"Tool Registry","pages":[{"title":"List Tool Registries","openapi":"GET /api/public/v2/tool-registry","href":"/reference/tool-registry-list"},{"title":"Get Tool Registry","openapi":"GET /api/public/v2/tool-registry/{identifier}","href":"/reference/tool-registry-get"},{"title":"Create Tool Registry","openapi":"POST /api/public/v2/tool-registry","href":"/reference/tool-registry-create"},{"title":"Create Tool Version","openapi":"POST /api/public/v2/tool-registry/{identifier}/versions","href":"/reference/tool-registry-create-version"},{"title":"Test Execute Tool","openapi":"POST /api/public/v2/tool-registry/{identifier}/test-execute","href":"/reference/tool-registry-test-execute"},{"title":"Attach Tool Registry External ID","openapi":"POST /api/public/v2/tool-registry/{tool_id}/external-ids","href":"/reference/external-ids-tool-registry-attach"},{"title":"List Tool Registry External IDs","openapi":"GET /api/public/v2/tool-registry/{tool_id}/external-ids","href":"/reference/external-ids-tool-registry-list"},{"title":"Delete Tool Registry External ID","openapi":"DELETE /api/public/v2/tool-registry/{tool_id}/external-ids/{source}/{external_id}","href":"/reference/external-ids-tool-registry-delete"}]},{"group":"Environment Variables","tag":"New","pages":[{"title":"List Workspace Env Vars","openapi":"GET /api/public/v2/env-vars","href":"/reference/env-vars-workspace-list"},{"title":"Create Workspace Env Var","openapi":"POST /api/public/v2/env-vars","href":"/reference/env-vars-workspace-create"},{"title":"Update Workspace Env Var","openapi":"PATCH /api/public/v2/env-vars/{var_id}","href":"/reference/env-vars-workspace-update"},{"title":"Delete Workspace Env Var","openapi":"DELETE /api/public/v2/env-vars/{var_id}","href":"/reference/env-vars-workspace-delete"},{"title":"List Tool Env Vars","openapi":"GET /api/public/v2/tool-registry/{identifier}/env-vars","href":"/reference/env-vars-tool-list"},{"title":"Create Tool Env Var","openapi":"POST /api/public/v2/tool-registry/{identifier}/env-vars","href":"/reference/env-vars-tool-create"},{"title":"Update Tool Env Var","openapi":"PATCH /api/public/v2/tool-registry/{identifier}/env-vars/{var_id}","href":"/reference/env-vars-tool-update"},{"title":"Delete Tool Env Var","openapi":"DELETE /api/public/v2/tool-registry/{identifier}/env-vars/{var_id}","href":"/reference/env-vars-tool-delete"}]},{"group":"Unified Registry","pages":[{"title":"Create Folder","openapi":"POST /api/public/v2/folders","href":"/reference/create-folder"},{"title":"Update Folder","openapi":"PATCH /api/public/v2/folders/{folder_id}","href":"/reference/update-folder"},{"title":"List Folder Entities","openapi":"GET /api/public/v2/folders/entities","href":"/reference/list-folder-entities"},{"title":"Move Folder Entities","openapi":"POST /api/public/v2/folders/entities","href":"/reference/move-folder-entities"},{"title":"Delete Folder Entities","openapi":"DELETE /api/public/v2/folders/entities","href":"/reference/delete-folder-entities"},{"title":"Resolve Folder ID by Path","openapi":"GET /api/public/v2/folders/resolve-id","href":"/reference/resolve-folder-id"},{"title":"Attach Folder External ID","openapi":"POST /api/public/v2/folders/{folder_id}/external-ids","href":"/reference/external-ids-folders-attach"},{"title":"List Folder External IDs","openapi":"GET /api/public/v2/folders/{folder_id}/external-ids","href":"/reference/external-ids-folders-list"},{"title":"Delete Folder External ID","openapi":"DELETE /api/public/v2/folders/{folder_id}/external-ids/{source}/{external_id}","href":"/reference/external-ids-folders-delete"}]},{"title":"External IDs","href":"/reference/external-ids-overview"}]},{"group":"Webhooks","pages":[{"title":"Introduction","href":"/features/prompt-registry/webhooks"},{"title":"Events","href":"/features/prompt-registry/webhook-events"}]}]},{"group":"Deprecated","pages":[{"group":"Evaluations","icon":"vial-circle-check","pages":[{"title":"Overview","icon":"book","href":"/features/evaluations/overview"},{"title":"Getting Started","icon":"flag-checkered","href":"/features/evaluations/building-pipelines"},{"title":"Eval Types","icon":"screwdriver-wrench","href":"/features/evaluations/eval-types"},{"title":"Node \u0026 Column Types","icon":"brackets-curly","href":"/features/evaluations/column-types"},{"title":"Score Card","icon":"star","href":"/features/evaluations/score-card"},{"title":"Continuous Integration","icon":"arrows-spin","href":"/features/evaluations/continuous-integration"},{"title":"Online or Programmatic Evals","icon":"terminal","href":"/features/evaluations/programmatic"},{"title":"Eval Examples","icon":"people-group","href":"/features/evaluations/examples"},{"title":"Voice Agents","icon":"microphone","href":"/why-promptlayer/voice-agents"}]},{"group":"Datasets","icon":"database","pages":[{"title":"Overview","icon":"book","href":"/features/evaluations/datasets-overview"},{"title":"Create from File","icon":"file-arrow-up","href":"/features/evaluations/datasets-create-from-file"},{"title":"Create from History","icon":"history","href":"/features/evaluations/datasets-create-from-history"}]},{"group":"Eval Strategies","icon":"vial-circle-check","pages":[{"title":"Compare Models","icon":"scale-balanced","href":"/onboarding-guides/compare-models"},{"title":"Backtest Prompt Changes","icon":"clock-rotate-left","href":"/onboarding-guides/backtesting-prompt-changes"},{"title":"Run Batch Jobs","icon":"table","href":"/onboarding-guides/batch-runs"}]},{"group":"Tables","icon":"table","pages":[{"title":"Legacy Scoring","icon":"gauge","href":"/features/tables/scoring"}]},{"group":"Datasets API","pages":[{"title":"List Datasets","openapi":"GET /api/public/v2/datasets","href":"/reference/list-datasets"},{"title":"Get Dataset Rows","openapi":"GET /api/public/v2/datasets/{dataset_id}/rows","href":"/reference/get-dataset-rows"},{"title":"Create Dataset Group","openapi":"POST /api/public/v2/dataset-groups","href":"/reference/create-dataset-group"},{"title":"Create Dataset Version from File","openapi":"POST /api/public/v2/dataset-versions/from-file","href":"/reference/create-dataset-version-from-file"},{"title":"Create Dataset Version from Request History","openapi":"POST /api/public/v2/dataset-versions/from-filter-params","href":"/reference/create-dataset-version-from-filter-params"},{"title":"Create Draft Dataset Version","openapi":"POST /api/public/v2/dataset-versions/create-draft","href":"/reference/create-draft-dataset-version"},{"title":"Add Request Log to Dataset","openapi":"POST /api/public/v2/dataset-versions/add-request-log","href":"/reference/add-request-log-to-dataset"},{"title":"Add Trace to Dataset","openapi":"POST /api/public/v2/dataset-versions/add-trace","href":"/reference/add-trace-to-dataset"},{"title":"Save Draft Dataset Version","openapi":"POST /api/public/v2/dataset-versions/save-draft","href":"/reference/save-draft-dataset-version"},{"title":"Attach Dataset Group External ID","openapi":"POST /api/public/v2/dataset-groups/{dataset_group_id}/external-ids","href":"/reference/external-ids-dataset-groups-attach"},{"title":"List Dataset Group External IDs","openapi":"GET /api/public/v2/dataset-groups/{dataset_group_id}/external-ids","href":"/reference/external-ids-dataset-groups-list"},{"title":"Delete Dataset Group External ID","openapi":"DELETE /api/public/v2/dataset-groups/{dataset_group_id}/external-ids/{source}/{external_id}","href":"/reference/external-ids-dataset-groups-delete"}]},{"group":"Evaluations \u0026 Reports API","pages":[{"title":"List Evaluations","openapi":"GET /api/public/v2/evaluations","href":"/reference/list-evaluations"},{"title":"Get Evaluation Rows","openapi":"GET /api/public/v2/evaluations/{evaluation_id}/rows","href":"/reference/get-evaluation-rows"},{"title":"Create Evaluation Pipeline","openapi":"POST /reports","href":"/reference/create-reports"},{"title":"Run Full Evaluation","openapi":"POST /reports/{report_id}/run","href":"/reference/run-report"},{"title":"Get Evaluation","openapi":"GET /reports/{report_id}","href":"/reference/get-report"},{"title":"Get Evaluation Score","openapi":"GET /reports/{report_id}/score","href":"/reference/get-report-score"},{"title":"Add Column to Evaluation Pipeline","openapi":"POST /report-columns","href":"/reference/add-report-columns"},{"title":"Edit Evaluation Pipeline Column","openapi":"PATCH /report-columns/{report_column_id}","href":"/reference/edit-report-column"},{"title":"Delete Evaluation Pipeline Column","openapi":"DELETE /report-columns/{report_column_id}","href":"/reference/delete-report-column"},{"title":"Configure Custom Scoring","openapi":"PATCH /reports/{report_id}/score-card","href":"/reference/update-report-score-card"},{"title":"Rename Evaluation Pipeline","openapi":"PATCH /reports/{report_id}/rename","href":"/reference/rename-report"},{"title":"Delete Evaluation Pipeline","openapi":"DELETE /reports/{report_id}","href":"/reference/delete-report"},{"title":"Delete Reports by Name","openapi":"DELETE /reports/name/{report_name}","href":"/reference/delete-reports-by-name"},{"title":"Attach Report External ID","openapi":"POST /reports/{report_id}/external-ids","href":"/reference/external-ids-reports-attach"},{"title":"List Report External IDs","openapi":"GET /reports/{report_id}/external-ids","href":"/reference/external-ids-reports-list"},{"title":"Delete Report External ID","openapi":"DELETE /reports/{report_id}/external-ids/{source}/{external_id}","href":"/reference/external-ids-reports-delete"}]}]}]},"basePath":"","title":"Request Analytics — Custom Queries - PromptLayer","buildId":"dpl_DeHjVRGfFnhYQwHnfC2pjeXXv8h9","deploymentId":"dpl_DeHjVRGfFnhYQwHnfC2pjeXXv8h9","dynamics":["c2aa737661","2b790eda92","b0f84f53ff","a9bb46feb3"],"chunks":["OpenApiReferenceProvider-CS552b7R.js","utils-DDTCYAF2.js","cloneDeep-izs3Hzxb.js","_Uint8Array-BVIqJ90l.js","isObjectLike-C8vmzPEN.js","isArray-Dcu1dQ5t.js","utils-De8ttokP.js","toString-BX-iyh8G.js","isSymbol-CSH9U2Gm.js","addUniqueKeysToSchema-DrwRDvAh.js","snippetPresets-DtAN0nWx.js","style-to-object-BY3JEAdk.js","v4-DIgz8zy6.js","ApiExamples-D5rWArI6.js","isEqual-BfaiBbcl.js","usePlaygroundInputsStore-O2i12wsz.js","shallow-DV8xABTt.js","getApiPlaygroundDisplay-DBZ0B5Jx.js","CodeSnippet-BVi0tPUX.js","CodeSnippets-CqASbIwY.js","Page-m07pfKpT.js","getPastedJson-DG9vsMS8.js","icon-CXzRSCr8.js","MethodPill-BdKVtEuX.js","DuplicateIcon-CZlmBrJI.js","createIcon-biFEUKPL.js","DynamicMarkdown-B54_zNBF.js","SectionHeading-DwwHK3Pt.js","axios-vUo_bRtp.js","Markdown-DfhCTwyA.js","clsx-xpJZXxdP.js","lib-DuNMoZ05.js","lib-B8HbPgcC.js","html-void-elements-mCSPHezU.js","dist-BTZUMDnx.js","katex-YMM-FMeD.js","marked.esm-CZWythHk.js","AssistantPageLink-DqdKa2R4.js"]}