Hanzo AI

O11y

Your logs, metrics and traces: ship them in, query them, chart them.

Also for this capability: API · CLI · MCP · SDKs

Your logs, metrics and traces: ship them in, query them, chart them.

Base URLhttps://api.hanzo.ai
Operations381
AuthAuthorization: Bearer $HANZO_API_KEY

Specification

HIP-1240 · O11y — The Observability Plane — Draft · read the specification →

/v1/o11y is your logs, metrics, traces and errors: ship them in, query them, chart them (apps/o11y/o11y.go:1). One subsystem owns the cloud's whole observability plane — the tenant-scoped reads, the query engine, the dashboards and alerts, the Sentry-compatible error face, and the public platform status document. The implementation is hanzoai/cloud apps/o11y over the embedded hanzoai/o11y runtime. o11y is a sanctioned abbreviation (HIP-0139 §2.5).

Motivation

This plane was five separately registered subsystems whose names leaked five public concepts; they collapsed to one registration of the name o11y (apps/o11y/o11y.go:23-31). The addresses have not finished following: the manifest row still carries three roots outside the capability's own (manifest/apps.go:84). This HIP states the surface the name rule settles.

Specification

The key words MUST, MUST NOT, SHOULD, SHOULD NOT and MAY are to be interpreted as in RFC 2119.

The addresses, and the three that fold

Every route this capability serves MUST be under /v1/o11y. Three families still answer at other roots — /v1/sentinel, /v1/summary and /ws/query_progress (manifest/apps.go:84); each pair is ledgered in cloud's openapi/misfiled.txt and closes by fold, never by alias:

  • The Sentry-compatible face — projects, issues, stats, traces, the reads a signed-in person makes — moves to /v1/o11y/sentinel/*. It is the SAME runtime under a second path family with no rewrite (apps/o11y/o11y.go:535), so it is one capability's second face, not a second capability.
  • The public status document moves to /v1/o11y/summary (apps/o11y/summary.go:156). It stays unauthenticated — a status read must work when IAM is down and carries no tenant data — and unauthenticated is not un-prefixed.
  • The websocket progress read moves onto its own HTTP twin: /ws/query_progress is the same read as /v1/o11y/query_progress delivered over an Upgrade (apps/o11y/o11y.go:132,141), so the fold is one address, two protocols.

The beacon door is NOT this capability's address: /v1/event belongs to event (HIP-1190), which forwards the Sentry wire through the plane ops to this capability's sink (apps/o11y/o11y.go:651, apps/o11y/obs_rpc.go). A minted DSN keeps addressing /v1/event unchanged.

The runtime names every route, and the typed ones carry their prose in their own doc comments. The ones that cannot be values are declared with prose beside the wire fact (apps/o11y/o11y.go init): the live tail and the progress read are a stream and a long poll, with no single value to answer; the raw export answers a file, not JSON; the sign-in callbacks answer a Location header and no body; the DSN ingest paths carry a foreign wire the SDKs own the spelling of; and the sentinel wildcard is a relay whose routes the runtime carries.

The store

The capability owns the event.* plane on the shared warehouse — event.event, event.log, event.span, event.metric, event.error, one shared envelope (apps/o11y/LLM.md:437-438) whose DDL the hanzoai/o11y module owns — plus the runtime's control-plane metadata in SQLite under cloud's data dir (apps/o11y/embed.go:80-96).

The tenant

Telemetry is a tenant's OWN data, so org membership is the whole admission test (apps/o11y/o11y.go:367): no validated principal is 403; a validated but org-less principal is refused rather than served unscoped; the org is the identity boundary's minted claim (HIP-0026), never a header the caller sends. Platform sudo buys the cross-tenant fleet view one level in — it MUST NOT be the product gate, because that would make the only way to see your own errors a scope that shows you everyone's. Which operations are exempt is the module's own answer (module.Anonymous); the DSN ingest authenticates by publishable key, in constant time, failing closed, and derives the org from the key.

Price, events, emission, stage

It is free, in those words: telemetry ingest charges nothing and declares cloud.Free (spend.go:196). It publishes no events on the bus, so a customer's webhooks receive nothing from it; alert delivery leaves through the module's own alert egress, which reports delivery as delivery, never arrival (apps/o11y/alerts.go). Its own emission is the plane itself: cloud's spans land in event.span (apps/o11y/LLM.md:494) and the fleet probes write hanzo_service_up into event.metric every 30 seconds (apps/o11y/probes.go) — the signal /v1/o11y/availability and the summary project. The stage is ga, and the row is Eager (manifest/apps.go:84): a status document read during an outage must not pay a cold start.

Upstream

The runtime is hanzoai/o11y v1.5.66 (go.mod:694), forked from SigNoz (MIT Expat, copyright 2020–present SigNoz Inc.), synced to upstream main at 3e6339019. What survives in HEAD is the query service, dashboards, alerts, rule manager and sqlstore, constructed in-process by the one builder the standalone binary uses (apps/o11y/embed.go). The Sentry face implements that wire (hanzoai/o11y pkg/modules/sentry/implsentry); it takes no code from Sentry.

Rationale

The alternative to the sentinel fold is a split — errors as their own capability. It is refused on the store: both faces read the same runtime over the same event.* plane, and HIP-0139 §7.2 permits a split only along a store boundary. The alternative for the websocket was keeping a transport-named root; folding the Upgrade onto its HTTP twin leaves one address for one read.

Security Considerations

The dangerous case is the absent org, not the forged one: the gate reads only server-minted identity headers, and an org-less request is refused rather than served unscoped. The ingest exemption is matched by method plus prefix plus suffix, never a bare prefix, so no read is reachable through it. The status document never answers "operational" from an absence of data — when the availability source cannot be read it answers 503, because a green status page over a blind probe is the one output worse than none (apps/o11y/summary.go).

Four surfaces

SurfaceReaches this capability asCoverage
RESTo11y at its own prefix381 operations
CLIhanzo o11y …381 of 381
SDKO11yApi in every published client365 of 381 — the clients are generated at their own release
MCPtool o11y on https://api.hanzo.ai/v1/mcp340 operations, 189 under the document's own id — ask describe for the rest

Quickstart

export HANZO_API_KEY=sk-...   # console.hanzo.ai → API keys

Then the first call — a read that needs nothing but the key. GET /v1/o11y/logs, operation get_o11y_logs:

hanzo o11y logs get

Answers 200 with object — ok.

Endpoints

EndpointWhat it does
POST /v1/o11y/alerts/{receiver}Take an Alertmanager notification and page a human
GET /v1/o11y/alerts/lastReplay the alert records this process took
GET /v1/o11y/alertsReturns the org's current alerts.
POST /v1/o11y/api/{project_id}/envelope/Receive a Sentry envelope on the SDK's own DSN path
POST /v1/o11y/api/{project_id}/store/Receive a single Sentry event on the SDK's own DSN path
POST /v1/o11y/authz/checkEvaluates a batch of transactions — relation plus object — for the authenticated caller and answers each with its authorization verdict, in the order…
POST /v1/o11y/auto_complete/attribute_valuesReads the attribute-value request from the body rather than off the query string — the spelling the newer builder uses to send its filters alongside…
GET /v1/o11y/autocomplete/aggregate_attributesLists the attributes usable as an aggregate target for the given telemetry and operator — what a filter builder offers after the aggregation is…
GET /v1/o11y/autocomplete/attribute_keysLists the attribute keys available for filtering the given telemetry, each with its data type and whether it is a materialized column.
GET /v1/o11y/autocomplete/attribute_valuesLists the values one attribute key has taken — string, number and bool values in their own lists — for completing a filter.
GET /v1/o11y/availabilityReports how much of the Hanzo fleet is up — the current per-service inventory plus an up-versus-reporting trend across the window.
GET /v1/o11y/channels/{id}Returns one notification channel, by id.
PUT /v1/o11y/channels/{id}Replaces a notification channel's receiver, by id.
DELETE /v1/o11y/channels/{id}Removes a notification channel, by id.
POST /v1/o11y/channels/testSends a test notification to the posted receiver.
GET /v1/o11y/channelsLists the org's notification channels.
POST /v1/o11y/channelsCreates a notification channel, answering with the stored channel.
GET /v1/o11y/cloud_integrations/{cloud_provider}/accounts/{id}/services/{service_id}Returns one service and its configuration for a connected account of the given provider, by account id and service id.
PUT /v1/o11y/cloud_integrations/{cloud_provider}/accounts/{id}/services/{service_id}Changes a service's configuration for one connected account of the given provider, by account id and service id.
GET /v1/o11y/cloud_integrations/{cloud_provider}/accounts/{id}/servicesLists the services metadata for one connected account of the given provider, by account id.
GET /v1/o11y/cloud_integrations/{cloud_provider}/accounts/{id}Returns one connected account for the given provider, by id.
PUT /v1/o11y/cloud_integrations/{cloud_provider}/accounts/{id}Changes a connected account's configuration for the given provider, by id.
DELETE /v1/o11y/cloud_integrations/{cloud_provider}/accounts/{id}Tears down a connected account for the given provider, by id.
POST /v1/o11y/cloud_integrations/{cloud_provider}/accounts/check_inIs the deployed agent's check-in — the path consistent with the account surface, reporting the agent's account and telemetry state so the connection…
GET /v1/o11y/cloud_integrations/{cloud_provider}/accountsLists the cloud-integration accounts connected for the given provider.
POST /v1/o11y/cloud_integrations/{cloud_provider}/accountsConnects a new cloud-integration account for the given provider from its posted config and credentials, answering with the account and the artifact…
GET /v1/o11y/cloud_integrations/{cloud_provider}/credentialsReturns the credentials the connecting agent needs to establish the cloud integration, for the given cloud provider.
GET /v1/o11y/cloud_integrations/{cloud_provider}/services/{service_id}Returns one service the given provider can collect from, by service id, optionally scoped to one cloud integration.
GET /v1/o11y/cloud_integrations/{cloud_provider}/servicesLists the services the given provider can collect from, optionally scoped to one cloud integration.
POST /v1/o11y/cloud-integrations/{cloud_provider}/agent-check-inIs the deployed agent's check-in on its original hyphenated path, kept for backward compatibility with agents already running.
GET /v1/o11y/clusters/attribute_keysLists the metric attribute keys Kubernetes clusters report, for building cluster filters.
GET /v1/o11y/clusters/attribute_valuesLists the values one cluster attribute key has taken, for building cluster filters.
POST /v1/o11y/clusters/listLists Kubernetes clusters over a time range, each with its CPU and memory usage against allocatable capacity and its attributes; filterable,…
GET /v1/o11y/complete/googleComplete a Google sign-in
GET /v1/o11y/complete/oidcComplete a generic OIDC sign-in
POST /v1/o11y/complete/samlComplete a SAML sign-in
POST /v1/o11y/countErrorsCounts the grouped exceptions in the query window for the caller's org.
GET /v1/o11y/daemonsets/attribute_keysLists the metric attribute keys Kubernetes daemonsets report, for building daemonset filters.
GET /v1/o11y/daemonsets/attribute_valuesLists the values one daemonset attribute key has taken, for building daemonset filters.
POST /v1/o11y/daemonsets/listLists Kubernetes daemonsets over a time range, each with the CPU and memory its pods used against request and limit, desired and available node…
PUT /v1/o11y/dashboard_views/{id}Replaces a saved view's name and data.
DELETE /v1/o11y/dashboard_views/{id}Removes a saved view.
GET /v1/o11y/dashboard_viewsReturns every saved view in the calling user's org.
POST /v1/o11y/dashboard_viewsPersists the calling user's dashboard-listing state (query, sort, order) as a named, reusable view shared across the org.
POST /v1/o11y/dashboards/{id}/cloneClones an existing v2-shape dashboard.
PUT /v1/o11y/dashboards/{id}/lockLocks a v2-shape dashboard.
DELETE /v1/o11y/dashboards/{id}/lockUnlocks a v2-shape dashboard.
GET /v1/o11y/dashboards/{id}/publicReturns the public-sharing config for a dashboard.
POST /v1/o11y/dashboards/{id}/publicCreates the public-sharing config for a dashboard and enables public sharing, answering with the new share's id.
PUT /v1/o11y/dashboards/{id}/publicUpdates the public-sharing config for a dashboard.
DELETE /v1/o11y/dashboards/{id}/publicDeletes the public-sharing config and disables public sharing of a dashboard.
GET /v1/o11y/dashboards/{id}Returns a v2-shape dashboard.
PUT /v1/o11y/dashboards/{id}Updates a v2-shape dashboard's metadata, spec and tag set.
PATCH /v1/o11y/dashboards/{id}Applies an RFC 6902 JSON Patch to a v2-shape dashboard.
DELETE /v1/o11y/dashboards/{id}Deletes a v2-shape dashboard along with its tag relations.
GET /v1/o11y/dashboardsReturns a page of v2-shape dashboards for the org.
POST /v1/o11y/dashboardsCreates a dashboard in the v2 format that follows the Perses spec and answers with the stored dashboard.
POST /v1/o11y/dependency_graphReturns the service dependency graph over the requested window: every parent→child edge observed, with call and error rates and latency percentiles…
GET /v1/o11y/deployments/attribute_keysLists the metric attribute keys Kubernetes deployments report, for building deployment filters.
GET /v1/o11y/deployments/attribute_valuesLists the values one deployment attribute key has taken, for building deployment filters.
POST /v1/o11y/deployments/listLists Kubernetes deployments over a time range, each with the CPU and memory its pods used against request and limit, desired and available replica…
GET /v1/o11y/disksLists the storage disks the datastore reports, with their names and types.
GET /v1/o11y/domains/{id}Returns one auth domain with its SSO configuration, by id.
PUT /v1/o11y/domains/{id}Replaces one auth domain's SSO configuration, by id.
DELETE /v1/o11y/domains/{id}Releases an email domain and discards its SSO configuration, by id.
GET /v1/o11y/domainsLists the org's auth domains — the email domains whose SSO configuration this org owns.
POST /v1/o11y/domainsClaims an email domain for the org and configures how its users sign in; the answer is the new domain's id.
GET /v1/o11y/downtime_schedules/{id}Returns one planned maintenance window, by id.
PUT /v1/o11y/downtime_schedules/{id}Replaces a planned maintenance window, by id.
DELETE /v1/o11y/downtime_schedules/{id}Removes a planned maintenance window, by id.
GET /v1/o11y/downtime_schedulesLists all planned maintenance windows, optionally narrowed to the active ones or the recurring ones.
POST /v1/o11y/downtime_schedulesCreates a planned maintenance window, answering with the stored schedule.
GET /v1/o11y/errorFromErrorIDReturns one exception instance and the span it happened on, by its error id within a group at a timestamp.
GET /v1/o11y/errorFromGroupIDReturns the representative exception instance of a group at a timestamp, and the span it happened on.
GET /v1/o11y/errortracking/issues/{id}Returns one grouped issue with its latest occurrence sample.
POST /v1/o11y/errortracking/issues/{id}Changes an issue's lifecycle — resolve, ignore, reopen or assign — and returns the updated issue.
GET /v1/o11y/errortracking/issuesLists the caller's org's grouped error issues (by fingerprint) with status, level, counts and first/last-seen.
POST /v1/o11y/eventRecords one product-analytics event for the signed-in user — a track event with a name and free-form attributes.
GET /v1/o11y/explorer/views/{viewId}Returns one saved explorer view by id.
PUT /v1/o11y/explorer/views/{viewId}Replaces one saved explorer view by id with the given view and echoes it back.
DELETE /v1/o11y/explorer/views/{viewId}Deletes one saved explorer view by id.
GET /v1/o11y/explorer/viewsLists the caller's org's saved explorer views, optionally narrowed to one source page, name or category.
POST /v1/o11y/explorer/viewsSaves a new explorer view for the caller's org and returns its id.
POST /v1/o11y/export_raw_dataExport raw telemetry rows as a file
POST /v1/o11y/factor_password/forgotStarts the forgotten-password flow: the named user is mailed a reset link.
GET /v1/o11y/featuresReturns the supported feature flags and their resolved values for the caller's org.
GET /v1/o11y/fields/keysReturns the telemetry field keys matching the selector — the signal's fields grouped by name, and whether the catalog is complete.
GET /v1/o11y/fields/valuesReturns the values one telemetry field has taken — string, bool, number and related values — and whether the value list is complete.
GET /v1/o11y/filter_suggestionsSuggests attribute keys and example filter queries for the query builder, seeded by what the org's own telemetry carries.
POST /v1/o11y/gateway/ingestion_keys/{keyId}/limitsSets a signal limit on an ingestion key, by key id, answering with the created limit.
PATCH /v1/o11y/gateway/ingestion_keys/{keyId}Changes an ingestion key, by id.
DELETE /v1/o11y/gateway/ingestion_keys/{keyId}Removes an ingestion key, by id.
PATCH /v1/o11y/gateway/ingestion_keys/limits/{limitId}Changes an ingestion key limit, by limit id.
DELETE /v1/o11y/gateway/ingestion_keys/limits/{limitId}Removes an ingestion key limit, by limit id.
GET /v1/o11y/gateway/ingestion_keys/searchLists the workspace's ingestion keys whose name matches the search, paginated.
GET /v1/o11y/gateway/ingestion_keysLists the workspace's ingestion keys, paginated.
POST /v1/o11y/gateway/ingestion_keysMints an ingestion key for the workspace, answering with the created key.
GET /v1/o11y/getResetPasswordToken/{id}Returns a user's password-reset token, creating one if none is live.
GET /v1/o11y/global/configReturns the deployment's global configuration: its public endpoints and which identity providers are enabled.
GET /v1/o11y/healthReports service health.
GET /v1/o11y/healthzHealth of the observability runtime's services
GET /v1/o11y/hosts/attribute_keysLists the metric attribute keys hosts report, for building host filters — each with its data type and whether it is a materialized column.
GET /v1/o11y/hosts/attribute_valuesLists the values one host attribute key has taken, for building host filters — string, number and bool values in their own lists.
POST /v1/o11y/hosts/listLists monitored hosts over a time range, each with its CPU, memory, I/O wait and 15-minute load, whether it is actively reporting, its OS and its…
GET /v1/o11y/infra_monitoring/checksReports whether the metrics and attributes an infra-monitoring section needs are being received — for each collector receiver or processor involved,…
POST /v1/o11y/infra_monitoring/clustersLists Kubernetes clusters with CPU and memory usage against allocatable capacity summed over their nodes, plus per-group node readiness and pod phase…
POST /v1/o11y/infra_monitoring/daemonsetsLists Kubernetes daemonsets with the CPU and memory their pods used against request and limit, the latest desired and current scheduled NODE counts…
POST /v1/o11y/infra_monitoring/deploymentsLists Kubernetes deployments with the CPU and memory their pods used against request and limit, the latest desired and available replica counts, and…
POST /v1/o11y/infra_monitoring/hostsLists hosts with key infrastructure metrics — CPU, memory, I/O wait and disk usage percentages and 15-minute load — plus an active/inactive status…
POST /v1/o11y/infra_monitoring/jobsLists Kubernetes jobs with the CPU and memory their pods used against request and limit, the latest desired-successful, active, failed and successful…
POST /v1/o11y/infra_monitoring/namespacesLists Kubernetes namespaces with the CPU and memory their pods used and per-group pod phase counts.
POST /v1/o11y/infra_monitoring/nodesLists Kubernetes nodes with CPU and memory usage against allocatable capacity, per-group readiness counts and per-group phase counts for the pods…
POST /v1/o11y/infra_monitoring/podsLists Kubernetes pods with CPU and memory usage against request and limit, the pod's phase and its age, plus its namespace, node, owning workload and…
POST /v1/o11y/infra_monitoring/pvcsLists Kubernetes persistent volume claims with available, capacity and used bytes and inode counts, plus the claim's pod, namespace, node,…
POST /v1/o11y/infra_monitoring/statefulsetsLists Kubernetes statefulsets with the CPU and memory their pods used against request and limit, the latest desired and current replica counts, and…
GET /v1/o11y/infra_onboarding/k8s/statusReports how far Kubernetes infra onboarding has progressed: which metric families have arrived and, per pod, which required metadata labels are…
GET /v1/o11y/integrations/{integrationId}/connection_statusReports whether the integration's logs and metrics have been received over the lookback window, so the console can show a live connection state.
GET /v1/o11y/integrations/{integrationId}Returns one integration's full detail — its overview, configuration steps, collected data and assets — together with its installation record when the…
POST /v1/o11y/integrations/installInstalls an integration into the caller's org from its id and configuration, answering with the installed catalog item.
POST /v1/o11y/integrations/uninstallRemoves an integration from the caller's org by id.
GET /v1/o11y/integrationsLists the available integrations and whether each is installed in the caller's org, optionally narrowed to installed or not-installed.
POST /v1/o11y/invite/bulkInvites several people to the caller's org in one call, refusing the whole batch when any email repeats.
POST /v1/o11y/inviteInvites one person to the caller's org by email, with the role they will hold when they accept.
GET /v1/o11y/jobs/attribute_keysLists the metric attribute keys Kubernetes jobs report, for building job filters.
GET /v1/o11y/jobs/attribute_valuesLists the values one job attribute key has taken, for building job filters.
POST /v1/o11y/jobs/listLists Kubernetes jobs over a time range, each with the CPU and memory its pods used against request and limit, desired-successful, active, failed and…
GET /v1/o11y/licenses/activeActivates the enterprise license.
GET /v1/o11y/licensesLists the org's licenses.
POST /v1/o11y/listErrorsLists the grouped exceptions in the query window — each an exception type with its message, count, service and first/last-seen — for the caller's org.
GET /v1/o11y/livezLiveness of the observability process
GET /v1/o11y/llm_pricing_rules/{id}Returns a single LLM pricing rule by id.
DELETE /v1/o11y/llm_pricing_rules/{id}Hard-deletes a pricing rule by id.
GET /v1/o11y/llm_pricing_rulesReturns the LLM pricing rules for the caller's org, with pagination and an optional search and override filter.
PUT /v1/o11y/llm_pricing_rulesWrites the pricing-rule batch — the single write endpoint used by both the user and the Zeus sync job.
GET /v1/o11y/llm/annotationLists human annotations on traces and observations, optionally scoped to one review queue.
POST /v1/o11y/llm/annotationAdds a human annotation to a trace or observation, optionally in a review queue.
GET /v1/o11y/llm/observationsLists gen_ai spans as LLM observations — each an LLM call with its model, token counts, cost and latency projected from gen_ai.* attributes, newest…
GET /v1/o11y/llm/score/{id}Returns a single score by id.
DELETE /v1/o11y/llm/score/{id}Hard-deletes a score by id.
GET /v1/o11y/llm/scoresLists eval scores and human-feedback signals attached to traces and observations, newest first.
POST /v1/o11y/llm/scoresAttaches an eval score or human-feedback signal to a trace or a single observation.
GET /v1/o11y/llm/sessionsLists conversations — gen_ai spans grouped by session.id, with their trace and observation counts, tokens and cost.
GET /v1/o11y/llm/tracesLists LLM traces — gen_ai spans grouped by trace_id, with cost, tokens and latency rolled up across each trace.
GET /v1/o11y/llm/usersLists end users — gen_ai spans grouped by user.id, with their session, trace and observation counts, tokens and cost.
GET /v1/o11y/loginReport why an observability sign-in did not complete
GET /v1/o11y/logs/aggregateReturns the logs aggregate buckets for the query window.
GET /v1/o11y/logs/fieldsReturns the log field catalog: the fields already selected as indexed columns, and the interesting ones seen in the data that could be.
POST /v1/o11y/logs/fieldsChanges how one log field is stored — selects or deselects it as a materialized column and tunes its index — and echoes the setting back.
GET /v1/o11y/logs/livetailFollow log records as they arrive
GET /v1/o11y/logs/pipelines/{version}Returns the caller's org's log parsing pipelines at one config version — "latest" for the newest — along with that version's deployment record and…
POST /v1/o11y/logs/pipelines/previewRuns the given log parsing pipelines over the given sample records without saving anything, and returns the transformed records plus whatever the…
POST /v1/o11y/logs/pipelinesSaves the given log parsing pipelines as the new config version for the caller's org and starts deploying it.
GET /v1/o11y/logs/promote_pathsLists the log body paths already promoted or indexed, with the indexes each carries.
POST /v1/o11y/logs/promote_pathsPromotes and indexes log body paths: each named path is lifted out of the JSON body into its own column, with the indexes the caller asked for.
GET /v1/o11y/logsReturns the most recent log records in the query window, newest first — each record an open object carrying its nanosecond timestamp and whatever…
POST /v1/o11y/messaging-queues/kafka/consumer-lag/consumer-detailsReturns the consumer side of a consumer-lag view: the consumer groups reading the topic/partition named in variables, with their throughput and…
POST /v1/o11y/messaging-queues/kafka/consumer-lag/network-latencyReturns consumer network latency correlated per client: a throughput pass over the window finds the consumer clients, then their fetch latency joins…
POST /v1/o11y/messaging-queues/kafka/consumer-lag/producer-detailsReturns the producer side of a consumer-lag view: the producers writing to the topic/partition named in variables, with their throughput and latency…
POST /v1/o11y/messaging-queues/kafka/onboarding/consumersChecks whether the spans the Kafka consumer views need are arriving, row for row like producersOnboarding.
POST /v1/o11y/messaging-queues/kafka/onboarding/kafkaChecks whether Kafka's own metrics — consumer lag and partition telemetry — are arriving, so the lag views can be lit up.
POST /v1/o11y/messaging-queues/kafka/onboarding/producersChecks whether the spans the Kafka producer views need are arriving — one row per required span attribute, with a pass/fail status and, on failure,…
POST /v1/o11y/messaging-queues/kafka/partition-latency/consumerReturns the consumer-group latency detail for the topic and partition named in the request's variables.
POST /v1/o11y/messaging-queues/kafka/partition-latency/overviewReturns the per-partition latency overview for the window — each topic/partition with its throughput and latency profile.
POST /v1/o11y/messaging-queues/kafka/span/evaluationCorrelates producer and consumer spans over the evaluation window (eval_time bounds the scan) and returns the pairings with their end-to-end delay —…
POST /v1/o11y/messaging-queues/kafka/topic-throughput/consumer-detailsBreaks one consumer topic's throughput down using the topic and service named in variables.
POST /v1/o11y/messaging-queues/kafka/topic-throughput/consumerReturns the consumer topic-throughput overview for the window — what each consumer group read, per topic.
POST /v1/o11y/messaging-queues/kafka/topic-throughput/producer-detailsBreaks one producer topic's throughput down using the topic and service named in variables.
POST /v1/o11y/messaging-queues/kafka/topic-throughput/producerReturns the producer topic-throughput overview for the window — what each producer service wrote, per topic.
POST /v1/o11y/messaging-queues/queue-overviewLists the messaging destinations observed in the window — one row per queue/destination/service combination with its throughput and latency columns.
GET /v1/o11y/metric_reduction_rules/{id}Returns one volume-control rule by its id.
PUT /v1/o11y/metric_reduction_rules/{id}Updates the match type and labels of a volume-control rule by its id; the metric name is immutable.
DELETE /v1/o11y/metric_reduction_rules/{id}Deletes a volume-control rule by its id.
POST /v1/o11y/metric_reduction_rules/previewEstimates the series reduction and the dashboards and alerts a candidate volume-control rule would touch, without persisting it.
GET /v1/o11y/metric_reduction_rules/statsReturns total ingested vs retained series and samples and the estimated monthly savings across all volume-control rules.
GET /v1/o11y/metric_reduction_rules/timeseriesReturns ingested vs retained series over time across all volume-control rules, in hourly buckets, in the query-range time-series response shape.
GET /v1/o11y/metric_reduction_rulesLists the org's metric volume-control (label reduction) rules, pageable and sortable by name, volume or recency.
POST /v1/o11y/metric_reduction_rulesCreates a volume-control rule for a metric and returns it with its id; a metric that already has a rule is refused.
GET /v1/o11y/metric/metric_metadataServes the OLDER /metric/metric_metadata route.
GET /v1/o11y/metrics/alertsLists the alert rules that reference a metric.
GET /v1/o11y/metrics/attributesReturns one metric's attribute keys, each with its unique values and their count.
GET /v1/o11y/metrics/dashboardsLists the dashboard panels that reference a metric.
GET /v1/o11y/metrics/highlightsReturns one metric's headline numbers: data points, total and active time series, and when it was last received.
POST /v1/o11y/metrics/inspectReturns one metric's raw time series over a window of at most thirty minutes — each series with its labels and timestamp/value pairs.
GET /v1/o11y/metrics/metadataReturns one metric's metadata: description, type, unit, temporality and monotonicity.
POST /v1/o11y/metrics/metadataUpdates one metric's metadata — description, type, unit, temporality, monotonicity — and answers with the bare success envelope.
GET /v1/o11y/metrics/onboardingReports whether any non-O11y metrics have been ingested — the lightweight check onboarding polls.
POST /v1/o11y/metrics/statsLists metrics with their sample and time-series counts for a time range — the volume view of the metrics explorer, pageable and sortable.
POST /v1/o11y/metrics/treemapReturns the proportional distribution of metrics by sample count or time-series count, as the entries of a treemap.
GET /v1/o11y/metricsLists the distinct metric names seen in a time range, each with its description, type, unit, temporality and monotonicity.
GET /v1/o11y/namespaces/attribute_keysLists the metric attribute keys Kubernetes namespaces report, for building namespace filters.
GET /v1/o11y/namespaces/attribute_valuesLists the values one namespace attribute key has taken, for building namespace filters.
POST /v1/o11y/namespaces/listLists Kubernetes namespaces over a time range, each with the CPU and memory its pods used, their phase counts and its attributes; filterable,…
GET /v1/o11y/nextPrevErrorIDsReturns the ids of the exception instances immediately after and before a given one within its group — the paging cursor the error detail view walks.
GET /v1/o11y/nodes/attribute_keysLists the metric attribute keys Kubernetes nodes report, for building node filters.
GET /v1/o11y/nodes/attribute_valuesLists the values one node attribute key has taken, for building node filters.
POST /v1/o11y/nodes/listLists Kubernetes nodes over a time range, each with its CPU and memory usage against allocatable capacity, readiness condition counts and attributes;…
GET /v1/o11y/org/preferences/{name}Returns one org-scoped preference, by name.
PUT /v1/o11y/org/preferences/{name}Sets one org-scoped preference, by name.
GET /v1/o11y/org/preferencesLists every org-scoped preference, each with its current and default value.
GET /v1/o11y/orgs/me/filters/{signal}Returns the org's quick filters for one signal — traces, logs, metrics, exceptions or api_monitoring.
GET /v1/o11y/orgs/me/filtersReturns the org's quick filters for every signal — the attribute shortlists its explorers offer as one-click filters.
PUT /v1/o11y/orgs/me/filtersReplaces the org's quick filters for one signal with the attribute list given.
GET /v1/o11y/orgs/meReturns the caller's own organization.
PUT /v1/o11y/orgs/meRewrites the caller's own organization record — display name, name, alias — always addressed as "me", never by id.
GET /v1/o11y/pods/attribute_keysLists the metric attribute keys Kubernetes pods report, for building pod filters.
GET /v1/o11y/pods/attribute_valuesLists the values one pod attribute key has taken, for building pod filters.
POST /v1/o11y/pods/listLists Kubernetes pods over a time range, each with its CPU and memory usage against request and limit, restart count, phase counts and attributes;…
GET /v1/o11y/processes/attribute_keysLists the metric attribute keys processes report, for building process filters.
GET /v1/o11y/processes/attribute_valuesLists the values one process attribute key has taken, for building process filters.
POST /v1/o11y/processes/listLists monitored processes over a time range, each with its name, PID, command line and CPU and memory usage; filterable, groupable and paginated.
GET /v1/o11y/product/metricsReturns one product's RED series — request rate, errors, p50 and p95 latency — for the caller's org, plus that org's LLM usage rollup over the same…
GET /v1/o11y/public/dashboards/{id}/widgets/{idx}/query_rangeReturns the query-range result for one widget of a public dashboard.
GET /v1/o11y/public/dashboards/{id}Returns the sanitized dashboard data for public access — the read a shared dashboard's public page makes.
GET /v1/o11y/pvcs/attribute_keysLists the metric attribute keys persistent volume claims report, for building volume filters.
GET /v1/o11y/pvcs/attribute_valuesLists the values one persistent-volume-claim attribute key has taken, for building volume filters.
POST /v1/o11y/pvcs/listLists Kubernetes persistent volume claims over a time range, each with its available, capacity and used bytes, inode counts and attributes;…
POST /v1/o11y/query_filter/analyzeAnalyzes a query and extracts the metric names it reads and the columns it groups by.
GET /v1/o11y/query_progressWatch one running query's progress
POST /v1/o11y/query_range/formatParses a builder query and echoes it back normalized to the v3 shape — the endpoint the UI uses to canonicalize a query without running it.
POST /v1/o11y/query_range/previewValidates a composite query and renders the Datastore statements it would run WITHOUT executing it — a dry run for agentic and tooling use.
GET /v1/o11y/query_rangeRuns a Prometheus-style range query over metrics — the legacy read that predates the v5 querier — and returns the matrix, vector or scalar the query…
POST /v1/o11y/query_rangeExecutes a composite query over a time range: builder queries over traces, logs and metrics, formulas, trace operators, PromQL and Datastore SQL,…
GET /v1/o11y/queryEvaluates one instant PromQL query against the org's metrics and returns the result at a single point in time.
GET /v1/o11y/readyzReadiness of the observability runtime to serve
POST /v1/o11y/registerCreates the FIRST organization and its admin user.
POST /v1/o11y/reset_password_tokens/verifyChecks that a reset-password token exists and has not expired, without consuming it.
POST /v1/o11y/resetPasswordSets a new password for whoever the reset token was minted for, consuming the token.
PATCH /v1/o11y/reviews/{id}/items/{itemId}Moves one queue item between PENDING and COMPLETED and sets its assignee.
GET /v1/o11y/reviews/{id}/itemsReturns a page of one review queue's items, newest first, optionally filtered to PENDING or COMPLETED.
POST /v1/o11y/reviews/{id}/itemsEnqueues traces, observations or sessions on a review queue.
GET /v1/o11y/reviews/{id}Returns one review queue with its pending and completed counts and its first page of items.
PATCH /v1/o11y/reviews/{id}Changes a review queue's name, description or score-config set.
DELETE /v1/o11y/reviews/{id}Removes one review queue and every item in it.
GET /v1/o11y/reviewsReturns a page of the caller org's human-review queues, newest first, narrowed to the caller's project.
POST /v1/o11y/reviewsCreates a human-review queue in the caller's org and project.
GET /v1/o11y/roles/{id}/usersReturns every org member holding a role, by role id.
GET /v1/o11y/roles/{id}Returns one role with the transaction groups it grants.
PUT /v1/o11y/roles/{id}Replaces a custom role's description and transaction groups.
DELETE /v1/o11y/roles/{id}Deletes a custom role.
GET /v1/o11y/rolesLists every role in the caller's org — the managed ones the platform seeds and the custom ones its admins created.
POST /v1/o11y/rolesCreates a custom role in the caller's org from a name, an optional description and the transaction groups it grants, answering the new role's id.
GET /v1/o11y/route_policies/{id}Returns one route policy, by id.
PUT /v1/o11y/route_policies/{id}Replaces a route policy, by id, answering with the stored policy.
DELETE /v1/o11y/route_policies/{id}Removes a route policy, by id.
GET /v1/o11y/route_policiesLists the org's route policies.
POST /v1/o11y/route_policiesCreates a route policy, answering with the stored policy.
GET /v1/o11y/rules/{id}/history/filter_keysReturns the distinct label keys present in a rule's history entries over the selected range, for building history filters.
GET /v1/o11y/rules/{id}/history/filter_valuesReturns the distinct values a given label key has taken across a rule's history entries.
GET /v1/o11y/rules/{id}/history/overall_statusReturns the overall firing/inactive intervals for a rule over the selected range.
POST /v1/o11y/rules/{id}/history/overall_statusReturns the overall firing/inactive windows for a rule, for the posted query range.
GET /v1/o11y/rules/{id}/history/statsReturns trigger and resolution statistics for a rule over the selected time range, current window against the prior one.
POST /v1/o11y/rules/{id}/history/statsReturns trigger and resolution statistics for a rule, current window against the prior one, for the posted query range.
GET /v1/o11y/rules/{id}/history/timelineReturns paginated timeline entries for a rule's state transitions, filterable by state and a label expression, cursor-paginated.
POST /v1/o11y/rules/{id}/history/timelineReturns a rule's state-transition timeline for the posted query range, each entry carrying its related-logs or related-traces link.
GET /v1/o11y/rules/{id}/history/top_contributorsReturns the label combinations that contributed most to a rule firing over the selected range.
POST /v1/o11y/rules/{id}/history/top_contributorsReturns the label combinations that contributed most to a rule firing, for the posted query range.
GET /v1/o11y/rules/{id}Returns one alert rule with its evaluation state, by id.
PUT /v1/o11y/rules/{id}Replaces an alert rule's definition, by id.
PATCH /v1/o11y/rules/{id}Applies a partial update to an alert rule, by id, answering with the stored rule — the common toggle for enabling or muting a rule.
DELETE /v1/o11y/rules/{id}Removes an alert rule, by id.
POST /v1/o11y/rules/testFires a test notification for a rule definition without saving it, answering with how many series would alert.
GET /v1/o11y/rulesLists all alert rules with their current evaluation state.
POST /v1/o11y/rulesCreates a new alert rule and answers with the stored rule.
POST /v1/o11y/sentinel/discoverAggregates a project's captured errors into a table — the caller names the filters, the groupings and the aggregations, and gets back the columns and…
GET /v1/o11y/sentinel/events/{id}Returns one captured error event of a project, by its id.
GET /v1/o11y/sentinel/issues/{id}/eventsLists one issue's captured occurrences, scoped to a project — a project is an isolation unit, so the caller declares which project's occurrences to…
GET /v1/o11y/sentinel/issues/{id}Returns one grouped issue of the caller's org with its latest occurrence sample.
PUT /v1/o11y/sentinel/issues/{id}Changes an issue's lifecycle — resolve, ignore, reopen or assign — and returns the updated issue.
GET /v1/o11y/sentinel/issuesLists the caller's org's grouped error issues, optionally narrowed to one project and one time window, and filtered by status, level, environment,…
GET /v1/o11y/sentinel/logsLists a project's captured error events, newest first, optionally narrowed to those whose message or exception text contains a search string.
POST /v1/o11y/sentinel/projects/{id}/keys/rotateRotates a project's DSN key — bumping its rotation watermark so keys below it stop verifying — and returns the project with its new DSN.
GET /v1/o11y/sentinel/projects/{id}Returns one Sentry project of the caller's org, DSN included.
DELETE /v1/o11y/sentinel/projects/{id}Deletes one Sentry project of the caller's org.
GET /v1/o11y/sentinel/projectsLists the caller's org's Sentry projects, each with its freshly-derived DSN.
POST /v1/o11y/sentinel/projectsCreates a Sentry project under the caller's org and returns it, DSN included.
GET /v1/o11y/sentinel/statsReturns a project's event-rate timeseries: one bucket per interval over the requested period, counting the events in it.
GET /v1/o11y/sentinel/traces/{id}Returns one trace's captured errors for a project — every error event that carried the trace id, in the order the events plane holds them.
GET /v1/o11y/sentinel/tracesLists the traces a project's captured errors reference, each with how many errors landed on it, when they started and stopped, and the latest message…
PUT /v1/o11y/service_accounts/{id}/keys/{fid}Renames an API key or moves its expiry.
DELETE /v1/o11y/service_accounts/{id}/keys/{fid}Revokes an API key.
GET /v1/o11y/service_accounts/{id}/keysLists a service account's API keys — metadata only, never the secrets.
POST /v1/o11y/service_accounts/{id}/keysMints an API key for a service account and answers the key's id and its secret — the one time the secret is ever shown.
DELETE /v1/o11y/service_accounts/{id}/roles/{rid}Removes a role from a service account.
GET /v1/o11y/service_accounts/{id}/rolesLists the roles a service account holds.
POST /v1/o11y/service_accounts/{id}/rolesAssigns a role, named by its id, to a service account.
GET /v1/o11y/service_accounts/{id}Returns one service account with the roles it holds.
PUT /v1/o11y/service_accounts/{id}Renames a service account.
DELETE /v1/o11y/service_accounts/{id}Deletes a service account and revokes every key it holds.
GET /v1/o11y/service_accounts/meReturns the calling service account itself, with the roles it holds — the self-inspection read for a key-authenticated caller.
PUT /v1/o11y/service_accounts/meRenames the calling service account.
GET /v1/o11y/service_accountsLists the caller's org's service accounts.
POST /v1/o11y/service_accountsCreates a service account in the caller's org, answering its id.
POST /v1/o11y/service/entry_point_operationsReturns one service's entry-point operations with the same latency and error profile topOperations reports.
POST /v1/o11y/service/top_level_operationsMaps each service to its entry-point span names — for the one service named in the request, or for every service when none is.
POST /v1/o11y/service/top_operationsReturns one service's heaviest operations in the window, each with p50/p95/p99 latency, how often it ran and how often it errored.
GET /v1/o11y/services/listLists the name of every service the trace store holds, with no window applied — the complete catalog, for pickers and autocomplete.
POST /v1/o11y/servicesLists the instrumented services seen in the window, each with the request profile of its entry-point spans: p99 and average latency, call and error…
GET /v1/o11y/sessions/contextTells a sign-in page what an email address can do: which orgs the address belongs to and, per org, which password and SSO routes are open to it.
POST /v1/o11y/sessions/email_passwordSigns a user in with email and password and answers with the session's token pair.
POST /v1/o11y/sessions/rotateExchanges a refresh token for a fresh token pair, retiring the old pair.
GET /v1/o11y/sessionsList the caller org's LLM sessions
DELETE /v1/o11y/sessionsSigns the calling session out, invalidating its tokens.
GET /v1/o11y/settings/apdexReturns apdex settings for the named services.
POST /v1/o11y/settings/apdexSets one service's apdex threshold and the status codes excluded from its score.
GET /v1/o11y/settings/ttlReturns the org's current retention policy: default TTL, custom per-label rules, and cold-storage settings where configured.
POST /v1/o11y/settings/ttlSets the org's retention policy for one signal: the default TTL in days, ordered per-label retention rules, and optional cold-storage settings.
PATCH /v1/o11y/span_mapper_groups/{groupId}/span_mappers/{mapperId}Changes a mapper's field context, config or enabled state.
DELETE /v1/o11y/span_mapper_groups/{groupId}/span_mappers/{mapperId}Deletes one mapper from a group.
GET /v1/o11y/span_mapper_groups/{groupId}/span_mappersLists the mappers belonging to one group, in the order they are applied.
POST /v1/o11y/span_mapper_groups/{groupId}/span_mappersAdds a mapper to a group: which field context it reads, the move or copy it performs, and whether it is on.
PATCH /v1/o11y/span_mapper_groups/{groupId}Changes a group's name, condition or enabled state.
DELETE /v1/o11y/span_mapper_groups/{groupId}Deletes a mapping group and every mapper under it.
GET /v1/o11y/span_mapper_groupsLists the caller's org's mapping groups, optionally only the enabled ones.
POST /v1/o11y/span_mapper_groupsCreates a mapping group: the name it is known by, the span and resource attributes whose presence selects a span into it, and whether it is on.
POST /v1/o11y/span_percentilePlaces one span's duration among its peers: the p50/p90/p99 durations of like spans, and the percentile the given duration lands at.
GET /v1/o11y/statefulsets/attribute_keysLists the metric attribute keys Kubernetes statefulsets report, for building statefulset filters.
GET /v1/o11y/statefulsets/attribute_valuesLists the values one statefulset attribute key has taken, for building statefulset filters.
POST /v1/o11y/statefulsets/listLists Kubernetes statefulsets over a time range, each with the CPU and memory its pods used against request and limit, desired and available replica…
GET /v1/o11y/statsReturns the collected usage statistics for the caller's org, as the stats reporter aggregates them — a map whose keys are the reporter's own counter…
GET /v1/o11y/statusReports whether a product's service is live: an in-cluster health probe with its measured latency, fused with the per-replica up inventory.
POST /v1/o11y/substitute_varsSubstitutes a query's variables and returns the resolved request, without running it — what a dashboard does before it queries.
GET /v1/o11y/summaryReports whether the platform is up.
POST /v1/o11y/testChannelSends a test notification to the posted receiver.
POST /v1/o11y/testRuleFires a test notification for the posted rule definition and answers with how many series alerted and a status message.
POST /v1/o11y/third-party-apis/overview/domainReturns one external domain's endpoint-level breakdown — each endpoint with its rate, error and latency columns over the window.
POST /v1/o11y/third-party-apis/overview/listLists the external domains the instrumented services call, with request rate, error percentage and latency per domain.
POST /v1/o11y/trace-funnels/{funnel_id}/analytics/error-tracesReturns the errored traces through a step transition of a saved funnel — the entry point for "why is this step failing".
POST /v1/o11y/trace-funnels/{funnel_id}/analytics/overviewReturns a saved funnel's conversion overview over a window: how many entered, how many converted, the rate and the latency.
POST /v1/o11y/trace-funnels/{funnel_id}/analytics/slow-tracesReturns the slowest traces through a step transition of a saved funnel — the entry point for "why is this step slow".
POST /v1/o11y/trace-funnels/{funnel_id}/analytics/steps/overviewReturns the conversion between two named steps of a saved funnel — the step-to-step drill-down behind the overview.
POST /v1/o11y/trace-funnels/{funnel_id}/analytics/stepsReturns a saved funnel's per-step metrics over a window — the counts and latencies at each step, in step order.
POST /v1/o11y/trace-funnels/{funnel_id}/analytics/validateLists the traces that match a saved funnel over a window — the read that answers "is this funnel finding anything at all".
GET /v1/o11y/trace-funnels/{funnel_id}Returns one funnel with its steps.
PUT /v1/o11y/trace-funnels/{funnel_id}Renames a funnel or rewrites its description, answering the funnel as it now stands.
DELETE /v1/o11y/trace-funnels/{funnel_id}Deletes a funnel.
POST /v1/o11y/trace-funnels/analytics/error-tracesReturns the errored traces through a step transition of a funnel described inline.
POST /v1/o11y/trace-funnels/analytics/overviewReturns the conversion overview of a funnel described inline.
POST /v1/o11y/trace-funnels/analytics/slow-tracesReturns the slowest traces through a step transition of a funnel described inline.
POST /v1/o11y/trace-funnels/analytics/steps/overviewReturns the conversion between two steps of a funnel described inline.
POST /v1/o11y/trace-funnels/analytics/stepsReturns the per-step metrics of a funnel described inline.
POST /v1/o11y/trace-funnels/analytics/validateLists the traces that match a funnel described inline — the builder's "try this" before anything is saved.
GET /v1/o11y/trace-funnels/listLists the caller's org's funnels, each with its steps and who last touched it.
POST /v1/o11y/trace-funnels/newCreates an empty funnel with a name, answering the funnel it created.
PUT /v1/o11y/trace-funnels/steps/updateReplaces a funnel's steps — the funnel is named in the body rather than the path — and answers the funnel as it now stands.
POST /v1/o11y/traces/{traceId}/aggregationsComputes span aggregations over one trace — span count, duration or share of execution time — grouped by the resource field each aggregation names.
POST /v1/o11y/traces/{traceId}/flamegraphReturns a trace's flamegraph: spans bucketed by depth level, each level ordered as it is drawn, around the selected span.
POST /v1/o11y/traces/{traceId}/waterfallReturns a trace's waterfall: every span when the trace is small enough, a capped window around the selected span when it is not, with the uncollapsed…
GET /v1/o11y/traces/{traceId}Returns one trace's spans as a column/row table, optionally centred on a span and walked a fixed number of levels up and down from it — the read the…
GET /v1/o11y/traces/fieldsReturns the trace field catalog: the span fields already selected as indexed columns, and the interesting ones seen in the data that could be.
POST /v1/o11y/traces/fieldsChanges how one span field is stored — selects or deselects it as a materialized column and tunes its index — and echoes the setting back.
GET /v1/o11y/tracesLists the caller org's recent traces — one row per trace with its span count and wall-clock duration, most recently active first.
GET /v1/o11y/usageReturns ingestion usage counts bucketed over the requested window, optionally narrowed to one service.
GET /v1/o11y/user/{id}Returns one org member with their single legacy role, by user id.
PUT /v1/o11y/user/{id}Renames one org member and may move their legacy role, answering with the updated record.
DELETE /v1/o11y/user/{id}Removes one org member, by user id.
GET /v1/o11y/user/meReturns the calling user with their single legacy role.
GET /v1/o11y/user/preferences/{name}Returns one preference of the calling user, by name.
PUT /v1/o11y/user/preferences/{name}Sets one preference of the calling user, by name.
GET /v1/o11y/user/preferencesLists every preference of the calling user, each with its current and default value.
GET /v1/o11y/userLists the org's members with their single legacy role.
GET /v1/o11y/users/{id}/reset_password_tokensReturns the reset-password token a user already has; absent one, the answer is a not-found rather than a fresh token.
PUT /v1/o11y/users/{id}/reset_password_tokensCreates or regenerates a user's reset-password token: a live token is returned as it is, an expired one is replaced.
DELETE /v1/o11y/users/{id}/roles/{roleId}Takes a role away from one org member, by user id and role id — someone else, never the caller.
GET /v1/o11y/users/{id}/rolesReturns every role one org member holds, by user id.
POST /v1/o11y/users/{id}/rolesAssigns a role, by role name, to one org member — someone else, never the caller.
GET /v1/o11y/users/{id}Returns one org member together with every role they hold, by user id.
PUT /v1/o11y/users/{id}Renames one org member, by user id — someone else, never the caller, who renames themselves through updateMyUser.
DELETE /v1/o11y/users/{id}Removes one org member, by user id.
PUT /v1/o11y/users/me/dashboards/{id}/pinsPins a dashboard for the calling user.
DELETE /v1/o11y/users/me/dashboards/{id}/pinsRemoves the caller's pin for a dashboard.
GET /v1/o11y/users/me/dashboardsIs dashboardListV2 personalized for the calling user: each dashboard carries the caller's pinned state, and pinned dashboards float to the top of the…
PUT /v1/o11y/users/me/factor_passwordReplaces the calling user's password, refusing when the old one does not match.
GET /v1/o11y/users/meReturns the calling user together with every role they hold.
PUT /v1/o11y/users/meRenames the calling user.
GET /v1/o11y/usersLists the caller's org members.
POST /v1/o11y/usersCreates a member of the caller's org in the pending-invite state and mails them their invitation; the answer is the new user's id.
POST /v1/o11y/variables/queryEvaluates a dashboard variable query and returns the values the variable may take.
GET /v1/o11y/versionReports the running build: its version, whether an enterprise edition is present ("N" in this build), and whether first-user setup has completed.
GET /v1/o11y/zeus/hostsReturns the deployment's host info from Zeus.
PUT /v1/o11y/zeus/hostsRecords the deployment's host in Zeus, overwriting any prior one.
PUT /v1/o11y/zeus/profilesRecords the deployment's profile in Zeus — how the team uses observability today and what they plan — overwriting any prior one.

All Hanzo APIs · Interactive reference

How is this guide?