# Verlon AI ## Docs - [Gates API](https://docs.verlon.ai/api-reference/admin/gates.md): Create and manage gates via API - [API Keys Management](https://docs.verlon.ai/api-reference/admin/keys.md): Manage API keys programmatically - [Admin API Overview](https://docs.verlon.ai/api-reference/admin/overview.md): Administrative operations for managing gates and keys programmatically - [Track client-side analytics events](https://docs.verlon.ai/api-reference/analytics/track-client-side-analytics-events.md): **Use when:** caller is reporting batched client-side analytics events (page views, feature usage) — for Layer's product analytics, not for billing or rate limiting - [Anthropic-compatible messages (drop-in)](https://docs.verlon.ai/api-reference/anthropic-compat/anthropic-compatible-messages-drop-in.md): **Use when:** caller has an existing Anthropic SDK Messages-API flow and wants to route through Layer with zero code changes via baseURL swap - [Anthropic Messages API](https://docs.verlon.ai/api-reference/anthropic-messages.md): Anthropic-compatible messages endpoint - [Generate a new API key](https://docs.verlon.ai/api-reference/api-keys/generate-a-new-api-key.md): **Use when:** caller wants to mint a new Layer API key (the raw secret returns once in the response and cannot be retrieved again afterward) - [List API keys owned by the authenticated user](https://docs.verlon.ai/api-reference/api-keys/list-api-keys-owned-by-the-authenticated-user.md): **Use when:** caller wants to enumerate the Layer API keys the authenticated principal owns (metadata only; the raw secret is shown once at creation) - [Revoke an API key](https://docs.verlon.ai/api-reference/api-keys/revoke-an-api-key.md): **Use when:** caller wants to invalidate an API key (rotation, compromise response, decommissioning) so it can no longer authenticate - [Chat Completions API](https://docs.verlon.ai/api-reference/chat-completions.md): OpenAI-compatible chat completions endpoint - [Create a chat completion via a Layer gate](https://docs.verlon.ai/api-reference/chat/create-a-chat-completion-via-a-layer-gate.md): **Use when:** caller wants a chat completion (multi-turn or single-prompt) routed through a Layer gate with automatic provider failover, quality scoring, and usage tracking - [Generic completion endpoint (v2 — legacy)](https://docs.verlon.ai/api-reference/completion-v2-legacy/generic-completion-endpoint-v2-—-legacy.md): **Use when:** caller is on the legacy v2 SDK and needs a unified completion endpoint that dispatches by `type` discriminator — prefer the modality-specific `/v3/*` endpoints for new code - [Create vector embeddings via a Layer gate](https://docs.verlon.ai/api-reference/embeddings/create-vector-embeddings-via-a-layer-gate.md): **Use when:** caller wants numeric vector embeddings for one or more inputs (for RAG, semantic search, clustering) routed through a Layer gate - [Apply the winning variant’s config to the gate](https://docs.verlon.ai/api-reference/experiments/apply-the-winning-variant’s-config-to-the-gate.md): **Use when:** caller has decided on the winner of a split experiment and wants Layer to write the winning variant's config back to the gate (graduating the test into production) - [Check whether an experiment is eligible for promotion](https://docs.verlon.ai/api-reference/experiments/check-whether-an-experiment-is-eligible-for-promotion.md): **Use when:** caller wants to know whether an experiment meets the criteria to be promoted (sample size, guardrail status, sequential-test verdict) before attempting `/promote` - [Create a new A/B test (experiment)](https://docs.verlon.ai/api-reference/experiments/create-a-new-ab-test-experiment.md): **Use when:** caller wants to start an A/B test on a gate (split or shadow) to compare a candidate configuration against the current production config - [Delete an experiment](https://docs.verlon.ai/api-reference/experiments/delete-an-experiment.md): **Use when:** caller wants to remove an experiment (draft or completed) along with its assignments and metrics - [Extend a running experiment’s collection window](https://docs.verlon.ai/api-reference/experiments/extend-a-running-experiment’s-collection-window.md): **Use when:** caller wants to push out an experiment's auto-completion deadline because the sample size or signal isn't strong enough yet - [Get an experiment with per-variant metrics](https://docs.verlon.ai/api-reference/experiments/get-an-experiment-with-per-variant-metrics.md): **Use when:** caller has an experiment id and wants its current configuration plus per-variant headline metrics in one read (primary detail view) - [Get full experiment analysis (sequential testing + multi-metric + SRM)](https://docs.verlon.ai/api-reference/experiments/get-full-experiment-analysis-sequential-testing-+-multi-metric-+-srm.md): **Use when:** caller wants Layer's full statistical bundle for an experiment (effect sizes, sequential-test verdict, sample-ratio-mismatch detection, guardrail status) to decide whether to ship - [Get the multi-aggregate shadow-analysis breakdown](https://docs.verlon.ai/api-reference/experiments/get-the-multi-aggregate-shadow-analysis-breakdown.md): **Use when:** caller wants the multi-aggregate breakdown of shadow results (segmented by topic, by request type, by latency bucket) for deeper analysis than the headline verdict - [Get the shadow-test summary + verdict](https://docs.verlon.ai/api-reference/experiments/get-the-shadow-test-summary-+-verdict.md): **Use when:** caller wants the rolled-up summary of a shadow experiment (sample-by-sample verdict aggregated to a single ship/no-ship recommendation) - [Get time-series metrics for charting an experiment](https://docs.verlon.ai/api-reference/experiments/get-time-series-metrics-for-charting-an-experiment.md): **Use when:** caller wants a bucketed time series of per-variant metrics for charting an experiment (latency over time, win rate over time, etc.) - [List experiments owned by the caller](https://docs.verlon.ai/api-reference/experiments/list-experiments-owned-by-the-caller.md): **Use when:** caller wants to enumerate the experiments the authenticated principal owns (any status), typically to pick one to inspect or to surface the experiments dashboard - [List per-request assignments + metrics for an experiment](https://docs.verlon.ai/api-reference/experiments/list-per-request-assignments-+-metrics-for-an-experiment.md): **Use when:** caller wants the raw per-request assignment trail for an experiment (which variant each request was routed to, with its outcome metrics) for audit or custom analysis - [List quality evaluations for an experiment](https://docs.verlon.ai/api-reference/experiments/list-quality-evaluations-for-an-experiment.md): **Use when:** caller wants per-response quality evaluations (Layer's Tracer/Einstein scoring) for an experiment, used for qualitative comparison alongside the quantitative metrics - [List shadow-mode request samples for an experiment](https://docs.verlon.ai/api-reference/experiments/list-shadow-mode-request-samples-for-an-experiment.md): **Use when:** caller wants to inspect individual shadow-mode samples (request that ran on primary AND was replayed on candidate without affecting the user) for an experiment - [Promote a completed shadow experiment (apply or graduate to split)](https://docs.verlon.ai/api-reference/experiments/promote-a-completed-shadow-experiment-apply-or-graduate-to-split.md): **Use when:** caller has a finished shadow experiment and wants to either apply its winner directly to the gate (`apply`) or graduate it to a live split experiment for further validation (`split`) - [Search gates available for experiment creation](https://docs.verlon.ai/api-reference/experiments/search-gates-available-for-experiment-creation.md): **Use when:** caller is constructing a new experiment and needs to find an existing gate by name/id to attach the experiment to - [Update an experiment (with status-based field allowlist)](https://docs.verlon.ai/api-reference/experiments/update-an-experiment-with-status-based-field-allowlist.md): **Use when:** caller wants to change an experiment's metadata, configuration, or status (start, pause, complete) — what fields are editable depends on current status - [Get aggregated anomalies and silent failures](https://docs.verlon.ai/api-reference/fleet/get-aggregated-anomalies-and-silent-failures.md): **Use when:** caller wants to surface anomalies and silent failures (broken-but-not-erroring traffic) detected by Layer across the fleet - [Get aggregated fleet observability stats](https://docs.verlon.ai/api-reference/fleet/get-aggregated-fleet-observability-stats.md): **Use when:** caller wants a one-shot summary (request count, error rate, latency, cost, quality) across all of the principal's gates - [Get cost breakdown by gate and model](https://docs.verlon.ai/api-reference/fleet/get-cost-breakdown-by-gate-and-model.md): **Use when:** caller wants to see where cost is concentrated across the fleet (by gate, by model) to find optimization candidates - [Get error rates and patterns across the fleet](https://docs.verlon.ai/api-reference/fleet/get-error-rates-and-patterns-across-the-fleet.md): **Use when:** caller wants to surface where errors are concentrated across the fleet (by gate, by error type) for triage - [Get estimated cost savings opportunities across gates](https://docs.verlon.ai/api-reference/fleet/get-estimated-cost-savings-opportunities-across-gates.md): **Use when:** caller wants Layer's estimate of cost-savings opportunities (e.g. downgradable models, over-provisioned gates) ranked by potential dollar impact - [Get latency distribution across the fleet](https://docs.verlon.ai/api-reference/fleet/get-latency-distribution-across-the-fleet.md): **Use when:** caller wants latency percentiles (p50/p95/p99) across all gates or per-gate, for SLO monitoring or surfacing slow gates - [Get model usage distribution across the fleet](https://docs.verlon.ai/api-reference/fleet/get-model-usage-distribution-across-the-fleet.md): **Use when:** caller wants to see which models the fleet is actually using and in what proportion (informing model-pool decisions) - [Get quality score distribution across gates](https://docs.verlon.ai/api-reference/fleet/get-quality-score-distribution-across-gates.md): **Use when:** caller wants to see how Layer's quality scores are distributed across the fleet (which gates are scoring high, which are dragging the average down) - [Get request volume timeline across the fleet](https://docs.verlon.ai/api-reference/fleet/get-request-volume-timeline-across-the-fleet.md): **Use when:** caller wants a time-bucketed series of request volume across all gates (for charts, anomaly inspection, capacity planning) - [Get rolled-up recommendations across all gates](https://docs.verlon.ai/api-reference/fleet/get-rolled-up-recommendations-across-all-gates.md): **Use when:** caller wants the actionable recommendation queue Layer has rolled up across the fleet (highest-leverage changes to make right now) - [Attach an existing gate as a sub-gate of an agent gate](https://docs.verlon.ai/api-reference/gates/attach-an-existing-gate-as-a-sub-gate-of-an-agent-gate.md): **Use when:** caller has an existing gate they want to attach as a sub-gate of an agent gate (rather than creating a new one) - [Check what depends on a gate (before deletion)](https://docs.verlon.ai/api-reference/gates/check-what-depends-on-a-gate-before-deletion.md): **Use when:** caller is about to delete a gate and wants a preview of what depends on it (sub-gate attachments, agent gates that reference it) to avoid breaking other routes - [Create a new gate](https://docs.verlon.ai/api-reference/gates/create-a-new-gate.md): **Use when:** caller wants to create a new model routing gate so requests can be sent to it via the SDK or compat routes - [Create a new sub-gate and attach it to an agent gate](https://docs.verlon.ai/api-reference/gates/create-a-new-sub-gate-and-attach-it-to-an-agent-gate.md): **Use when:** caller wants to create a new sub-gate and immediately attach it to a parent agent gate in one call - [Detach a sub-gate from an agent gate](https://docs.verlon.ai/api-reference/gates/detach-a-sub-gate-from-an-agent-gate.md): **Use when:** caller wants to remove a sub-gate from its agent-gate parent without deleting the underlying gate - [Duplicate an existing gate](https://docs.verlon.ai/api-reference/gates/duplicate-an-existing-gate.md): **Use when:** caller wants to clone an existing gate with a new name (template-like reuse, A/B variants, etc.) - [Flush cached routing decisions for a dynamic-orchestration agent gate](https://docs.verlon.ai/api-reference/gates/flush-cached-routing-decisions-for-a-dynamic-orchestration-agent-gate.md): **Use when:** caller wants to clear the routing-decision cache for a dynamic-orchestration agent gate so the next request re-evaluates from scratch (e.g. after changing the model pool) - [Get a gate by id](https://docs.verlon.ai/api-reference/gates/get-a-gate-by-id.md): **Use when:** caller has a gate id and needs the full gate configuration (most common single-gate read path) - [Get a gate by its name](https://docs.verlon.ai/api-reference/gates/get-a-gate-by-its-name.md): **Use when:** caller has a human-readable gate name (not id) and needs to resolve it to the full gate configuration - [Get aggregated session stats for a gate](https://docs.verlon.ai/api-reference/gates/get-aggregated-session-stats-for-a-gate.md): **Use when:** caller wants aggregated statistics (request count, latency, cost) for one specific gate over its lifetime - [Get session-stats for every gate owned by the caller (batch)](https://docs.verlon.ai/api-reference/gates/get-session-stats-for-every-gate-owned-by-the-caller-batch.md): **Use when:** caller wants per-gate session statistics for every gate at once (latency, request count, cost) to populate a dashboard or report without N+1 calls - [Get The Architect's model + config suggestions for a gate](https://docs.verlon.ai/api-reference/gates/get-the-architects-model-+-config-suggestions-for-a-gate.md): **Use when:** caller wants The Architect to analyze recent traffic for a gate and suggest model or configuration changes that would improve cost or quality - [List activity-log entries across every gate owned by the caller](https://docs.verlon.ai/api-reference/gates/list-activity-log-entries-across-every-gate-owned-by-the-caller.md): **Use when:** caller wants to inspect human/system activity across every gate (who changed what, including non-config events) - [List activity-log entries for a specific gate](https://docs.verlon.ai/api-reference/gates/list-activity-log-entries-for-a-specific-gate.md): **Use when:** caller wants to see the activity timeline (who edited, when, what changed) for one specific gate - [List agent gates that use this gate as a sub-gate](https://docs.verlon.ai/api-reference/gates/list-agent-gates-that-use-this-gate-as-a-sub-gate.md): **Use when:** caller wants to find which agent gates use this gate as a sub-gate (impact analysis before edit/delete) - [List cached routing decisions for a dynamic-orchestration agent gate](https://docs.verlon.ai/api-reference/gates/list-cached-routing-decisions-for-a-dynamic-orchestration-agent-gate.md): **Use when:** caller wants to inspect the cached per-task routing decisions made by a dynamic-orchestration agent gate (debugging routing behavior) - [List configuration history across every gate owned by the caller](https://docs.verlon.ai/api-reference/gates/list-configuration-history-across-every-gate-owned-by-the-caller.md): **Use when:** caller wants to inspect configuration change history across every gate (cross-gate audit trail, change log) - [List configuration history for a specific gate](https://docs.verlon.ai/api-reference/gates/list-configuration-history-for-a-specific-gate.md): **Use when:** caller wants to see the configuration change timeline for one specific gate - [List gates owned by the authenticated user](https://docs.verlon.ai/api-reference/gates/list-gates-owned-by-the-authenticated-user.md): **Use when:** caller wants to enumerate the gates the authenticated principal owns (typical first step when listing or picking one to update) - [List OpenClaw-tagged gates with analytics](https://docs.verlon.ai/api-reference/gates/list-openclaw-tagged-gates-with-analytics.md): **Use when:** caller is integrating with OpenClaw and needs to enumerate gates tagged for OpenClaw with their analytics summary attached - [List sessions for an agent gate](https://docs.verlon.ai/api-reference/gates/list-sessions-for-an-agent-gate.md): **Use when:** caller wants to list the conversation sessions that have run through a specific agent gate (audit, debugging, quality review) - [List soft-deleted (trashed) gates](https://docs.verlon.ai/api-reference/gates/list-soft-deleted-trashed-gates.md): **Use when:** caller wants to see soft-deleted gates that can still be restored (within the 30-day trash window) - [List sub-gates attached to an agent gate](https://docs.verlon.ai/api-reference/gates/list-sub-gates-attached-to-an-agent-gate.md): **Use when:** caller wants to inspect which sub-gates are currently attached to an agent gate - [Lock a sub-gate to its parent agent gate](https://docs.verlon.ai/api-reference/gates/lock-a-sub-gate-to-its-parent-agent-gate.md): **Use when:** caller wants to lock a sub-gate to its parent so the sub-gate cannot be detached or modified independently - [Restore a soft-deleted gate from the trash](https://docs.verlon.ai/api-reference/gates/restore-a-soft-deleted-gate-from-the-trash.md): **Use when:** caller wants to restore a soft-deleted gate from the trash before its 30-day window expires - [Roll a gate back to a previous configuration](https://docs.verlon.ai/api-reference/gates/roll-a-gate-back-to-a-previous-configuration.md): **Use when:** caller wants to revert a gate to a previous configuration version (recovering from a bad change, etc.) - [Soft-delete a gate (moves to trash for 30 days)](https://docs.verlon.ai/api-reference/gates/soft-delete-a-gate-moves-to-trash-for-30-days.md): **Use when:** caller wants to delete a gate (soft-delete; stays in trash for 30 days before permanent removal) - [Test a gate configuration with a sample request](https://docs.verlon.ai/api-reference/gates/test-a-gate-configuration-with-a-sample-request.md): **Use when:** caller wants to send a sample request through a gate (production or draft) to verify routing, parameter handling, and output without leaving an audit trail - [Unlock a sub-gate from its parent agent gate](https://docs.verlon.ai/api-reference/gates/unlock-a-sub-gate-from-its-parent-agent-gate.md): **Use when:** caller wants to unlock a previously locked sub-gate so it can be detached or edited independently again - [Update a gate](https://docs.verlon.ai/api-reference/gates/update-a-gate.md): **Use when:** caller wants to change a gate's configuration (model, fallbacks, parameters, system prompt, allowed overrides) - [Generate an image via a Layer gate](https://docs.verlon.ai/api-reference/image/generate-an-image-via-a-layer-gate.md): **Use when:** caller wants to generate an image from a prompt routed through a Layer gate (DALL·E, Stable Diffusion, Imagen, etc., resolved by the gate) - [Create a memory entry for a gate](https://docs.verlon.ai/api-reference/memory/create-a-memory-entry-for-a-gate.md): **Use when:** caller wants to attach a durable note/fact/policy to a gate so it gets injected into every subsequent request (cross-session memory) - [Delete a memory entry](https://docs.verlon.ai/api-reference/memory/delete-a-memory-entry.md): **Use when:** caller wants to remove a gate memory entry so it no longer gets injected into future requests - [List memory entries for a gate](https://docs.verlon.ai/api-reference/memory/list-memory-entries-for-a-gate.md): **Use when:** caller wants to inspect the durable memory entries that get injected into every request a gate serves - [Update a memory entry](https://docs.verlon.ai/api-reference/memory/update-a-memory-entry.md): **Use when:** caller wants to edit the content or activation state of an existing gate memory entry - [Create a pattern monitor for a gate](https://docs.verlon.ai/api-reference/monitors/create-a-pattern-monitor-for-a-gate.md): **Use when:** caller wants to monitor traffic against a specific pattern (e.g. prompt-injection signature, regression detection) for a gate - [Create an alert config for a gate](https://docs.verlon.ai/api-reference/monitors/create-an-alert-config-for-a-gate.md): **Use when:** caller wants to configure a threshold-based alert (error rate, latency, cost, etc.) that fires when a metric crosses a boundary for a gate - [Delete a pattern monitor](https://docs.verlon.ai/api-reference/monitors/delete-a-pattern-monitor.md): **Use when:** caller wants to permanently remove a pattern monitor from a gate - [Delete an alert config](https://docs.verlon.ai/api-reference/monitors/delete-an-alert-config.md): **Use when:** caller wants to remove an alert rule entirely (the alert will not fire again) - [Get a monitor with recent hits](https://docs.verlon.ai/api-reference/monitors/get-a-monitor-with-recent-hits.md): **Use when:** caller wants both the monitor's configuration AND the recent traffic samples that matched it (for inspecting how often a pattern is matching) - [List alert configs for a gate](https://docs.verlon.ai/api-reference/monitors/list-alert-configs-for-a-gate.md): **Use when:** caller wants to see the alert rules currently configured against a gate (separate from whether they've fired) - [List pattern monitors for a gate](https://docs.verlon.ai/api-reference/monitors/list-pattern-monitors-for-a-gate.md): **Use when:** caller wants to enumerate the pattern monitors currently watching traffic on a gate - [List recent alert firings for a gate](https://docs.verlon.ai/api-reference/monitors/list-recent-alert-firings-for-a-gate.md): **Use when:** caller wants to see which alerts have actually fired recently for a gate (debugging alert behavior, history dashboards) - [Update a pattern monitor](https://docs.verlon.ai/api-reference/monitors/update-a-pattern-monitor.md): **Use when:** caller wants to change a pattern monitor's regex, threshold, or activation state without recreating it - [Update an alert config](https://docs.verlon.ai/api-reference/monitors/update-an-alert-config.md): **Use when:** caller wants to change a threshold, cooldown, or activation state on an existing alert config - [Extract text from an image or PDF via a Layer gate](https://docs.verlon.ai/api-reference/ocr/extract-text-from-an-image-or-pdf-via-a-layer-gate.md): **Use when:** caller has an image or PDF and wants the extracted text (structured OCR) routed through a Layer gate - [OpenAI-compatible chat completions (drop-in)](https://docs.verlon.ai/api-reference/openai-compat/openai-compatible-chat-completions-drop-in.md): **Use when:** caller is migrating an existing OpenAI SDK integration to Layer with zero code changes — only the `baseURL` swaps to `https://api.uselayer.ai/v1/` and `model` becomes a Layer gate id - [OpenAI-compatible embeddings (drop-in)](https://docs.verlon.ai/api-reference/openai-compat/openai-compatible-embeddings-drop-in.md): **Use when:** caller has an existing OpenAI SDK embeddings flow and wants to route through Layer with zero code changes via baseURL swap - [OpenAI-compatible image generations (drop-in)](https://docs.verlon.ai/api-reference/openai-compat/openai-compatible-image-generations-drop-in.md): **Use when:** caller has an existing OpenAI SDK image-generation flow and wants to route through Layer with zero code changes via baseURL swap - [OpenAI-compatible text-to-speech (drop-in)](https://docs.verlon.ai/api-reference/openai-compat/openai-compatible-text-to-speech-drop-in.md): **Use when:** caller has an existing OpenAI SDK TTS flow and wants to route through Layer with zero code changes via baseURL swap - [API Reference Overview](https://docs.verlon.ai/api-reference/overview.md): Complete REST API reference for Verlon AI - [Delete a BYOK provider key](https://docs.verlon.ai/api-reference/provider-keys/delete-a-byok-provider-key.md): **Use when:** caller wants to remove a BYOK provider key entirely (rotation, compromise response, project shutdown) — Layer falls back to its pooled credentials for the affected provider once removed - [List BYOK provider keys](https://docs.verlon.ai/api-reference/provider-keys/list-byok-provider-keys.md): **Use when:** caller wants to enumerate the BYOK (bring-your-own-key) provider credentials the principal has registered with Layer (masked metadata only) - [Register a BYOK provider key](https://docs.verlon.ai/api-reference/provider-keys/register-a-byok-provider-key.md): **Use when:** caller wants to store an OpenAI/Anthropic/Google/Mistral API key so Layer routes through the caller's own provider account instead of pooled credentials - [Test a BYOK provider key against the upstream provider](https://docs.verlon.ai/api-reference/provider-keys/test-a-byok-provider-key-against-the-upstream-provider.md): **Use when:** caller wants to verify a registered BYOK key actually authenticates with the upstream provider (i.e. before relying on it for production traffic) - [Toggle a BYOK provider key active/inactive](https://docs.verlon.ai/api-reference/provider-keys/toggle-a-byok-provider-key-activeinactive.md): **Use when:** caller wants to temporarily disable a BYOK provider key (so Layer falls back to pooled credentials) without deleting it, or re-enable a previously disabled key - [Update a BYOK provider key](https://docs.verlon.ai/api-reference/provider-keys/update-a-byok-provider-key.md): **Use when:** caller wants to update a BYOK provider key's metadata (label, project assignment, active state) without re-uploading the secret - [Get the public model + provider registry](https://docs.verlon.ai/api-reference/registry/get-the-public-model-+-provider-registry.md): **Use when:** caller wants Layer's canonical list of supported models, providers, capabilities, pricing, and deprecation status (no auth required; cacheable) - [tts()](https://docs.verlon.ai/api-reference/sdk/audio.md): SDK method reference for text-to-speech - [chat()](https://docs.verlon.ai/api-reference/sdk/chat.md): SDK method reference for chat completions - [image()](https://docs.verlon.ai/api-reference/sdk/images.md): SDK method reference for image generation - [video()](https://docs.verlon.ai/api-reference/sdk/video.md): SDK method reference for video generation - [Apply an analysis recommendation to the gate config](https://docs.verlon.ai/api-reference/sessions/apply-an-analysis-recommendation-to-the-gate-config.md): **Use when:** caller wants to accept a specific recommendation from a session's analysis (e.g. tweak temperature, swap a model) and have Layer apply it to the gate's config - [End a session (developer-initiated)](https://docs.verlon.ai/api-reference/sessions/end-a-session-developer-initiated.md): **Use when:** caller wants to explicitly close out a session from the application side (vs. waiting for the inactivity timeout), so analysis kicks in promptly - [Get a session by id](https://docs.verlon.ai/api-reference/sessions/get-a-session-by-id.md): **Use when:** caller has a session id and wants the session record (metadata, lifecycle status, end-user binding) - [Get a session trace (tree-structured)](https://docs.verlon.ai/api-reference/sessions/get-a-session-trace-tree-structured.md): **Use when:** caller wants a tree-structured trace of a session (parent/child request relationships, tool calls, fallback paths) for visualization or root-cause analysis - [Get a specific historical Cortex report](https://docs.verlon.ai/api-reference/sessions/get-a-specific-historical-cortex-report.md): **Use when:** caller has a report id from the history list and wants the full Cortex report contents (not just metadata) - [Get detailed gate feedback with topics and trends](https://docs.verlon.ai/api-reference/sessions/get-detailed-gate-feedback-with-topics-and-trends.md): **Use when:** caller wants gate-level feedback broken down by topic and over time (richer than the plain feedback summary; powers the feedback dashboards) - [Get feedback submitted for a session](https://docs.verlon.ai/api-reference/sessions/get-feedback-submitted-for-a-session.md): **Use when:** caller wants to read back the user feedback that has been recorded against a specific session - [Get gate-level aggregated session analysis](https://docs.verlon.ai/api-reference/sessions/get-gate-level-aggregated-session-analysis.md): **Use when:** caller wants the aggregated analysis across a gate's sessions (quality, common failure modes, drift signals) without iterating individual sessions - [Get gate-level feedback summary](https://docs.verlon.ai/api-reference/sessions/get-gate-level-feedback-summary.md): **Use when:** caller wants the aggregate feedback signal for a gate (positive/negative counts, sentiment trend) rather than per-session feedback - [Get session analysis (insights)](https://docs.verlon.ai/api-reference/sessions/get-session-analysis-insights.md): **Use when:** caller wants Layer's structured analysis of a single session (quality score, topics, anomalies, suggested follow-ups) - [Get the latest Cortex intelligence report for a gate](https://docs.verlon.ai/api-reference/sessions/get-the-latest-cortex-intelligence-report-for-a-gate.md): **Use when:** caller wants the most recent Cortex intelligence report for a gate (themes, drift, recommendations) — primary read path for the intelligence surface - [Get the topic distribution for a gate](https://docs.verlon.ai/api-reference/sessions/get-the-topic-distribution-for-a-gate.md): **Use when:** caller wants to see what topics users are bringing to a gate (taxonomy + frequency) to inform product or routing decisions - [List historical Cortex reports for a gate (metadata only)](https://docs.verlon.ai/api-reference/sessions/list-historical-cortex-reports-for-a-gate-metadata-only.md): **Use when:** caller wants to enumerate previously generated Cortex reports for a gate (timeline of intelligence) before picking one to read in full - [List requests in a session](https://docs.verlon.ai/api-reference/sessions/list-requests-in-a-session.md): **Use when:** caller wants the chronological list of API requests that occurred inside a session (for audit, replay, or drill-down) - [List sessions for a gate](https://docs.verlon.ai/api-reference/sessions/list-sessions-for-a-gate.md): **Use when:** caller wants to browse the conversation sessions Layer has recorded for a specific gate (audit, debug, review traffic patterns) - [Submit user feedback for a session](https://docs.verlon.ai/api-reference/sessions/submit-user-feedback-for-a-session.md): **Use when:** caller has an end-user thumbs-up/down or rating from the application UI and wants to record it against the session for downstream analysis - [Toggle whether a session is excluded from cross-session analysis](https://docs.verlon.ai/api-reference/sessions/toggle-whether-a-session-is-excluded-from-cross-session-analysis.md): **Use when:** caller wants to mark a session as a test/dev artifact that shouldn't pollute aggregate analytics, or undo that exclusion - [Trigger an on-demand Cortex intelligence report for a gate](https://docs.verlon.ai/api-reference/sessions/trigger-an-on-demand-cortex-intelligence-report-for-a-gate.md): **Use when:** caller wants Cortex to produce a fresh cross-session intelligence report for a gate immediately (vs. waiting for the scheduled run) - [Trigger on-demand analysis for a session](https://docs.verlon.ai/api-reference/sessions/trigger-on-demand-analysis-for-a-session.md): **Use when:** caller wants to force a fresh Tracer analysis of a session right now instead of waiting for the next worker pass (e.g. immediately after a session ends) - [Synthesize speech from text via a Layer gate](https://docs.verlon.ai/api-reference/tts/synthesize-speech-from-text-via-a-layer-gate.md): **Use when:** caller wants to convert a text string into spoken audio routed through a Layer gate (OpenAI TTS, ElevenLabs, etc., resolved by the gate) - [Identify the authenticated principal](https://docs.verlon.ai/api-reference/user/identify-the-authenticated-principal.md): **Use when:** caller wants a minimal "who am I" snapshot — typically a CLI / agent confirming the API key it loaded resolves to the expected Layer account and tier - [Generate a video via a Layer gate](https://docs.verlon.ai/api-reference/video/generate-a-video-via-a-layer-gate.md): **Use when:** caller wants to generate a video clip from a prompt or seed image routed through a Layer gate (Sora, Runway, Veo, etc., resolved by the gate) - [Architecture Overview](https://docs.verlon.ai/contributing/architecture.md): Understanding Verlon AI's architecture - [Contributing Guide](https://docs.verlon.ai/contributing/getting-started.md): How to contribute to Verlon AI - [Admin Package](https://docs.verlon.ai/contributing/packages/admin.md): Contributing to the Verlon AI admin SDK - [CLI Package](https://docs.verlon.ai/contributing/packages/cli.md): Contributing to the Verlon AI CLI - [SDK Package](https://docs.verlon.ai/contributing/packages/sdk.md): Contributing to the Verlon AI SDK package (@verlon-ai/sdk) - [Authentication](https://docs.verlon.ai/getting-started/authentication.md): Learn how to authenticate with the Verlon AI API - [Welcome to Verlon AI](https://docs.verlon.ai/getting-started/overview.md): The AI Gateway for production applications - route, fallback, and track costs across multiple AI providers - [Quickstart](https://docs.verlon.ai/getting-started/quickstart.md): Get started with Verlon AI in under 5 minutes - [Clay](https://docs.verlon.ai/integrations/clay.md): Use Verlon AI as a data enrichment provider in your Clay tables - [OpenClaw](https://docs.verlon.ai/integrations/openclaw.md): Use Verlon AI as your model provider in OpenClaw for cost control, smart routing, and observability - [Agent Gates](https://docs.verlon.ai/platform/agent-gates.md): Session-aware gates for AI agent workflows — from pure observability to full orchestration - [API Keys](https://docs.verlon.ai/platform/api-keys.md): Generate and manage Verlon API keys to authenticate your requests - [Bring Your Own Keys](https://docs.verlon.ai/platform/byok.md): Use your own API keys from OpenAI, Anthropic, Google, and Mistral with Verlon AI - [Experiments](https://docs.verlon.ai/platform/experiments.md): A/B test LLM configurations to make data-driven decisions about models, prompts, and parameters - [Gates](https://docs.verlon.ai/platform/gates.md): Route AI requests through configurable gates with intelligent model selection, fallbacks, and cost controls - [Logs](https://docs.verlon.ai/platform/logs.md): View detailed request logs with metrics, costs, and full request/response data - [Spending](https://docs.verlon.ai/platform/spending.md): Monitor and control your AI spending with real-time cost tracking and configurable limits - [Anthropic SDK Integration](https://docs.verlon.ai/provider-compatibility/anthropic-sdk.md): How to use Verlon AI with the Anthropic SDK - [OpenAI SDK Integration](https://docs.verlon.ai/provider-compatibility/openai-sdk.md): How to use Verlon AI with the OpenAI SDK - [Audio](https://docs.verlon.ai/sdk-reference/audio.md): Convert text to speech with natural-sounding voices - [Chat](https://docs.verlon.ai/sdk-reference/chat.md): Chat completions with streaming, vision, and function calling - [Embeddings](https://docs.verlon.ai/sdk-reference/embeddings.md): Generate vector embeddings for semantic search and AI applications - [Images](https://docs.verlon.ai/sdk-reference/images.md): Generate images from text prompts with multiple providers - [OCR](https://docs.verlon.ai/sdk-reference/ocr.md): Extract text and structured data from images and documents - [Overview](https://docs.verlon.ai/sdk-reference/overview.md): Introduction to the Verlon AI SDK for TypeScript/JavaScript - [Video](https://docs.verlon.ai/sdk-reference/video.md): Generate videos from text prompts and images ## OpenAPI Specs - [openapi](https://docs.verlon.ai/api-reference/openapi.json)