Public betaOpen source. Built in the open.Explore the beta
Architecture before checklists

OmniSwitch vs Portkey

Compare a secure self-hosted control plane, AI gateway routing, and agent protocol scope with Portkey. Evaluate the operating model before the feature list.

Updated · Public beta

OSS gateway; cloud shown separately. Register a8a594b; each cell records its own version and verified date. A capability review, not a benchmark.

At a glance

Choose OmniSwitch when…

  • You want to operate a compact self-hosted control plane.
  • You prefer local policy checks and a file-driven gateway configuration.
  • You will map provider credentials and keys explicitly rather than import platform config.

Choose Portkey when…

  • Your existing gateway configuration or platform workflow fits.
  • You want to evaluate the wider OSS and managed platform together.
  • You have checked current edition terms for enterprise identity and audit features.

No scores or totals: uneven documentation coverage is not a measure of product quality.

The full capability comparison

READING THE MATRIXSupportedManaged onlyPartialNot availableNot verified
Dated AI gateway capability matrix, reviewed 11 September 2026
CapabilityOmniSwitch[1]Register a8a594bPortkey[3]OSS gateway; cloud shown separatelyManaged platformSeparate registered edition
Deployment & license
Self-hosted deployment
Not verified

No claim is recorded for this capability in the pinned register.

Version
Not recorded
Verified
Not recorded

No capability-specific source was recorded. The register is the provenance, not proof of absence.

Open pinned register ↗
Not verified

No claim is recorded for this capability in the pinned register.

Version
Not recorded
Verified
Not recorded

No capability-specific source was recorded. The register is the provenance, not proof of absence.

Open pinned register ↗
Not verified

No claim is recorded for this capability in the pinned register.

Version
Not recorded
Verified
Not recorded

No capability-specific source was recorded. The register is the provenance, not proof of absence.

Open pinned register ↗
SQLite / Postgres storage
Supported

SQLite by default; PostgreSQL via OMNISWITCH_DATABASE_URL. Logs and keys remain SQLite-local even in the Postgres case per the project's own docs.

Version
v0.2.0-beta (commit 88a27c0)
Verified
2026-09-11
Open cited source ↗
Not verified

Not confirmed in available sources.

Version
latest @ docker.io/portkeyai/gateway:latest sha256:97f094d9c8a764cbfaa2a7138c0017b247ca923bb06db1b4c13b7f8a33b5200d
Verified
2026-09-11

No capability-specific source was recorded. The register is the provenance, not proof of absence.

Open pinned register ↗
Not verified

Managed service: capability-map only, no same-host benchmark run. Not verified in available sources.

Version
hosted service, n/a
Verified
2026-09-11

No capability-specific source was recorded. The register is the provenance, not proof of absence.

Open pinned register ↗
Kubernetes manifests / Helm chart
Supported

Kustomize manifests (Deployment/Service/ConfigMap/Secret example/PVCs/Redis) plus a Helm chart; no operator/CRDs/inference-aware routing.

Version
v0.2.0-beta (commit 88a27c0)
Verified
2026-09-11
Open cited source ↗
Not verified

Not confirmed in available sources.

Version
latest @ docker.io/portkeyai/gateway:latest sha256:97f094d9c8a764cbfaa2a7138c0017b247ca923bb06db1b4c13b7f8a33b5200d
Verified
2026-09-11

No capability-specific source was recorded. The register is the provenance, not proof of absence.

Open pinned register ↗
Not verified

Managed service: capability-map only, no same-host benchmark run. Not verified in available sources.

Version
hosted service, n/a
Verified
2026-09-11

No capability-specific source was recorded. The register is the provenance, not proof of absence.

Open pinned register ↗
Config hot reload
Supported

Config hot reload covers routes, guardrails, cache posture, circuit breaker, and shadow provider without restart.

Version
v0.2.0-beta (commit 88a27c0)
Verified
2026-09-11
Open cited source ↗
Not verified

Not confirmed in available sources.

Version
latest @ docker.io/portkeyai/gateway:latest sha256:97f094d9c8a764cbfaa2a7138c0017b247ca923bb06db1b4c13b7f8a33b5200d
Verified
2026-09-11

No capability-specific source was recorded. The register is the provenance, not proof of absence.

Open pinned register ↗
Not verified

Managed service: capability-map only, no same-host benchmark run. Not verified in available sources.

Version
hosted service, n/a
Verified
2026-09-11

No capability-specific source was recorded. The register is the provenance, not proof of absence.

Open pinned register ↗
Built-in dashboard/UI
Supported

Local dashboard for logs, metrics, prompts, providers, and guardrails.

Version
v0.2.0-beta (commit 88a27c0)
Verified
2026-09-11
Open cited source ↗
Partial

Dashboard/analytics are a hosted-platform feature; the OSS gateway container itself does not ship a bundled UI.

Version
latest @ docker.io/portkeyai/gateway:latest sha256:97f094d9c8a764cbfaa2a7138c0017b247ca923bb06db1b4c13b7f8a33b5200d
Verified
2026-09-11
Open cited source ↗

Dashboard/analytics are a hosted-platform feature; the OSS gateway container itself does not ship a bundled UI.

Managed only

Hosted analytics/logs/traces dashboard.

Version
hosted service, n/a
Verified
2026-09-11
Open cited source ↗
License
Supported

Apache-2.0.

Version
v0.2.0-beta (commit 88a27c0)
Verified
2026-09-11
Open cited source ↗
Supported

MIT.

Version
latest @ docker.io/portkeyai/gateway:latest sha256:97f094d9c8a764cbfaa2a7138c0017b247ca923bb06db1b4c13b7f8a33b5200d
Verified
2026-09-11
Open cited source ↗
Not available

Closed managed service (distinct from the MIT-licensed OSS gateway).

Version
hosted service, n/a
Verified
2026-09-11
Open cited source ↗
APIs & providers
OpenAI-compatible chat completions
Supported

/v1/chat/completions, streaming and non-streaming.

Version
v0.2.0-beta (commit 88a27c0)
Verified
2026-09-11
Open cited source ↗
Supported

Universal REST/SDK API surface.

Version
latest @ docker.io/portkeyai/gateway:latest sha256:97f094d9c8a764cbfaa2a7138c0017b247ca923bb06db1b4c13b7f8a33b5200d
Verified
2026-09-11
Open cited source ↗
Managed only

Universal REST/SDK API across models.

Version
hosted service, n/a
Verified
2026-09-11
Open cited source ↗
OpenAI-compatible embeddings
Supported

/v1/embeddings.

Version
v0.2.0-beta (commit 88a27c0)
Verified
2026-09-11
Open cited source ↗
Supported

Documented multimodal/embeddings endpoint coverage.

Version
latest @ docker.io/portkeyai/gateway:latest sha256:97f094d9c8a764cbfaa2a7138c0017b247ca923bb06db1b4c13b7f8a33b5200d
Verified
2026-09-11
Open cited source ↗
Not verified

Managed service: capability-map only, no same-host benchmark run. Not verified in available sources.

Version
hosted service, n/a
Verified
2026-09-11

No capability-specific source was recorded. The register is the provenance, not proof of absence.

Open pinned register ↗
OpenAI Responses API
Partial

/v1/responses text subset only (no image/audio/tool-streaming parity with OpenAI).

Version
v0.2.0-beta (commit 88a27c0)
Verified
2026-09-11
Open cited source ↗

/v1/responses text subset only (no image/audio/tool-streaming parity with OpenAI).

Not verified

Not confirmed in available sources.

Version
latest @ docker.io/portkeyai/gateway:latest sha256:97f094d9c8a764cbfaa2a7138c0017b247ca923bb06db1b4c13b7f8a33b5200d
Verified
2026-09-11

No capability-specific source was recorded. The register is the provenance, not proof of absence.

Open pinned register ↗
Not verified

Managed service: capability-map only, no same-host benchmark run. Not verified in available sources.

Version
hosted service, n/a
Verified
2026-09-11

No capability-specific source was recorded. The register is the provenance, not proof of absence.

Open pinned register ↗
Anthropic Messages API
Partial

/v1/messages core subset.

Version
v0.2.0-beta (commit 88a27c0)
Verified
2026-09-11
Open cited source ↗

/v1/messages core subset.

Not verified

Anthropic is a supported provider; Messages-API request shape parity not independently confirmed.

Version
latest @ docker.io/portkeyai/gateway:latest sha256:97f094d9c8a764cbfaa2a7138c0017b247ca923bb06db1b4c13b7f8a33b5200d
Verified
2026-09-11

No capability-specific source was recorded. The register is the provenance, not proof of absence.

Open pinned register ↗
Not verified

Managed service: capability-map only, no same-host benchmark run. Not verified in available sources.

Version
hosted service, n/a
Verified
2026-09-11

No capability-specific source was recorded. The register is the provenance, not proof of absence.

Open pinned register ↗
Native (non-passthrough) provider adapters
Partial

4 native adapters (OpenAI, Anthropic, Google, Groq); no native Bedrock/Vertex/Cohere. Everything else goes through the generic OpenAI-compatible custom adapter with 15+ documented presets.

Version
v0.2.0-beta (commit 88a27c0)
Verified
2026-09-11
Open cited source ↗

4 native adapters (OpenAI, Anthropic, Google, Groq); no native Bedrock/Vertex/Cohere. Everything else goes through the generic OpenAI-compatible custom adapter with 15+ documented presets.

Supported

Large managed provider/model catalog claimed (1600+ models).

Version
latest @ docker.io/portkeyai/gateway:latest sha256:97f094d9c8a764cbfaa2a7138c0017b247ca923bb06db1b4c13b7f8a33b5200d
Verified
2026-09-11
Open cited source ↗
Managed only

Large managed provider/model catalog (1600+ models claimed).

Version
hosted service, n/a
Verified
2026-09-11
Open cited source ↗
Custom/generic OpenAI-compatible endpoint
Supported

Generic custom provider adapter with presets for Azure OpenAI, Ollama, vLLM, LiteLLM, DeepSeek, Together, Fireworks, and aliases.

Version
v0.2.0-beta (commit 88a27c0)
Verified
2026-09-11
Open cited source ↗
Supported

Custom hosts documented.

Version
latest @ docker.io/portkeyai/gateway:latest sha256:97f094d9c8a764cbfaa2a7138c0017b247ca923bb06db1b4c13b7f8a33b5200d
Verified
2026-09-11
Open cited source ↗
Not verified

Managed service: capability-map only, no same-host benchmark run. Not verified in available sources.

Version
hosted service, n/a
Verified
2026-09-11

No capability-specific source was recorded. The register is the provenance, not proof of absence.

Open pinned register ↗
Routing, reliability & cost
Routing & fallbacks
Supported

route-level fallbacks, max_retries, retry_backoff, retry_codes, per-attempt timeout.

Version
v0.2.0-beta (commit 88a27c0)
Verified
2026-09-11
Open cited source ↗
Supported

Fallback, retries, and timeouts documented.

Version
latest @ docker.io/portkeyai/gateway:latest sha256:97f094d9c8a764cbfaa2a7138c0017b247ca923bb06db1b4c13b7f8a33b5200d
Verified
2026-09-11
Open cited source ↗
Managed only

Fallback, retries, timeouts documented at the platform level.

Version
hosted service, n/a
Verified
2026-09-11
Open cited source ↗
Weighted / load-balanced routing
Supported

Weighted variants per route.

Version
v0.2.0-beta (commit 88a27c0)
Verified
2026-09-11
Open cited source ↗
Supported

Load balancing documented.

Version
latest @ docker.io/portkeyai/gateway:latest sha256:97f094d9c8a764cbfaa2a7138c0017b247ca923bb06db1b4c13b7f8a33b5200d
Verified
2026-09-11
Open cited source ↗
Not verified

Managed service: capability-map only, no same-host benchmark run. Not verified in available sources.

Version
hosted service, n/a
Verified
2026-09-11

No capability-specific source was recorded. The register is the provenance, not proof of absence.

Open pinned register ↗
Conditional routing (rule/expression based)
Supported

CEL condition expressions on route variants.

Version
v0.2.0-beta (commit 88a27c0)
Verified
2026-09-11
Open cited source ↗
Supported

Conditional routing documented as a core gateway feature.

Version
latest @ docker.io/portkeyai/gateway:latest sha256:97f094d9c8a764cbfaa2a7138c0017b247ca923bb06db1b4c13b7f8a33b5200d
Verified
2026-09-11
Open cited source ↗
Managed only

Conditional routing and canary deploys documented.

Version
hosted service, n/a
Verified
2026-09-11
Open cited source ↗
Circuit breaker
Supported

Default 5 failures / 60s cooldown, configurable via gateway.circuit_breaker_failures / _cooldown.

Version
v0.2.0-beta (commit 88a27c0)
Verified
2026-09-11
Open cited source ↗
Supported

Circuit breaker documented as a core gateway feature.

Version
latest @ docker.io/portkeyai/gateway:latest sha256:97f094d9c8a764cbfaa2a7138c0017b247ca923bb06db1b4c13b7f8a33b5200d
Verified
2026-09-11
Open cited source ↗
Not verified

Managed service: capability-map only, no same-host benchmark run. Not verified in available sources.

Version
hosted service, n/a
Verified
2026-09-11

No capability-specific source was recorded. The register is the provenance, not proof of absence.

Open pinned register ↗
Exact-match cache
Supported

SHA-256 request-fingerprint cache key, tenant-scoped (api_key/workspace/organization/global), SQLite-backed.

Version
v0.2.0-beta (commit 88a27c0)
Verified
2026-09-11
Open cited source ↗
Supported

Simple cache documented.

Version
latest @ docker.io/portkeyai/gateway:latest sha256:97f094d9c8a764cbfaa2a7138c0017b247ca923bb06db1b4c13b7f8a33b5200d
Verified
2026-09-11
Open cited source ↗
Managed only

Simple cache documented.

Version
hosted service, n/a
Verified
2026-09-11
Open cited source ↗
Similarity cache (see scope)
Supported

NOT embedding-based. Vectorize() builds a normalized token-frequency map over lowercased, stop-word-filtered tokens; Similarity() is cosine over those token-frequency vectors. State this precisely wherever OmniSwitch's cache is compared to embedding-based semantic caches.

Version
v0.2.0-beta (commit 88a27c0)
Verified
2026-09-11
Open cited source ↗
Supported

Semantic cache documented ("Cache (Simple & Semantic)").

Version
latest @ docker.io/portkeyai/gateway:latest sha256:97f094d9c8a764cbfaa2a7138c0017b247ca923bb06db1b4c13b7f8a33b5200d
Verified
2026-09-11
Open cited source ↗
Managed only

Semantic cache documented at the platform level.

Version
hosted service, n/a
Verified
2026-09-11
Open cited source ↗
Budgets and quotas
Supported

Cost and token budgets per API key.

Version
v0.2.0-beta (commit 88a27c0)
Verified
2026-09-11
Open cited source ↗
Not verified

Cost/token budgets are prominent in Portkey's managed control plane; whether the OSS gateway alone enforces budgets without the control plane is not independently confirmed.

Version
latest @ docker.io/portkeyai/gateway:latest sha256:97f094d9c8a764cbfaa2a7138c0017b247ca923bb06db1b4c13b7f8a33b5200d
Verified
2026-09-11

No capability-specific source was recorded. The register is the provenance, not proof of absence.

Open pinned register ↗
Managed only

Cost/token budgets and time-window rate limits documented.

Version
hosted service, n/a
Verified
2026-09-11
Open cited source ↗
Rate limiting
Partial

Local sliding-window request limits plus optional Redis-coordinated fixed window across replicas; no token-based (TPM) limiter.

Version
v0.2.0-beta (commit 88a27c0)
Verified
2026-09-11
Open cited source ↗

Local sliding-window request limits plus optional Redis-coordinated fixed window across replicas; no token-based (TPM) limiter.

Not verified

Time-window rate limits are documented for the Portkey platform; OSS-gateway-only enforcement not independently confirmed.

Version
latest @ docker.io/portkeyai/gateway:latest sha256:97f094d9c8a764cbfaa2a7138c0017b247ca923bb06db1b4c13b7f8a33b5200d
Verified
2026-09-11

No capability-specific source was recorded. The register is the provenance, not proof of absence.

Open pinned register ↗
Managed only

Time-window rate limits documented.

Version
hosted service, n/a
Verified
2026-09-11
Open cited source ↗
Token-based rate limits
Not verified

No claim is recorded for this capability in the pinned register.

Version
Not recorded
Verified
Not recorded

No capability-specific source was recorded. The register is the provenance, not proof of absence.

Open pinned register ↗
Not verified

No claim is recorded for this capability in the pinned register.

Version
Not recorded
Verified
Not recorded

No capability-specific source was recorded. The register is the provenance, not proof of absence.

Open pinned register ↗
Not verified

No claim is recorded for this capability in the pinned register.

Version
Not recorded
Verified
Not recorded

No capability-specific source was recorded. The register is the provenance, not proof of absence.

Open pinned register ↗
Identity & guardrails
API key management
Supported

Hashed API keys, bootstrap owner key, workspace-scoped keys.

Version
v0.2.0-beta (commit 88a27c0)
Verified
2026-09-11
Open cited source ↗
Partial

Virtual keys are a hosted-control-plane concept; the OSS gateway can be run with a config header (x-portkey-config) rather than a file-based key store.

Version
latest @ docker.io/portkeyai/gateway:latest sha256:97f094d9c8a764cbfaa2a7138c0017b247ca923bb06db1b4c13b7f8a33b5200d
Verified
2026-09-11
Open cited source ↗

Virtual keys are a hosted-control-plane concept; the OSS gateway can be run with a config header (x-portkey-config) rather than a file-based key store.

Managed only

Virtual keys and workspace/project key management.

Version
hosted service, n/a
Verified
2026-09-11
Open cited source ↗
OIDC / JWT identity
Supported

OIDC JWT/JWKS workload identity (identity.oidc.jwks_url/issuer/audience).

Version
v0.2.0-beta (commit 88a27c0)
Verified
2026-09-11
Open cited source ↗
Not verified

Not confirmed for the OSS gateway specifically (vs. the hosted platform).

Version
latest @ docker.io/portkeyai/gateway:latest sha256:97f094d9c8a764cbfaa2a7138c0017b247ca923bb06db1b4c13b7f8a33b5200d
Verified
2026-09-11

No capability-specific source was recorded. The register is the provenance, not proof of absence.

Open pinned register ↗
Not verified

Managed project/workspace controls documented; OIDC/JWT specifics not confirmed.

Version
hosted service, n/a
Verified
2026-09-11

No capability-specific source was recorded. The register is the provenance, not proof of absence.

Open pinned register ↗
Mutual TLS
Not available

Explicitly not implemented; listed as a roadmap item, not a shipped feature.

Version
v0.2.0-beta (commit 88a27c0)
Verified
2026-09-11
Open cited source ↗
Not available

This project's internal comparison table lists a combined SSO/SAML/SCIM/mTLS row as "Yes" for Portkey, but that appears to describe the hosted platform, not the OSS gateway; not independently verified for the OSS gateway container used here.

Version
latest @ docker.io/portkeyai/gateway:latest sha256:97f094d9c8a764cbfaa2a7138c0017b247ca923bb06db1b4c13b7f8a33b5200d
Verified
2026-09-11
Open cited source ↗
Not verified

Managed service: capability-map only, no same-host benchmark run. Not verified in available sources.

Version
hosted service, n/a
Verified
2026-09-11

No capability-specific source was recorded. The register is the provenance, not proof of absence.

Open pinned register ↗
RBAC / policy engine (CEL or equivalent)
Supported

CEL allow/deny authorization rules plus fixed role gates.

Version
v0.2.0-beta (commit 88a27c0)
Verified
2026-09-11
Open cited source ↗
Not verified

Not confirmed for the OSS gateway specifically.

Version
latest @ docker.io/portkeyai/gateway:latest sha256:97f094d9c8a764cbfaa2a7138c0017b247ca923bb06db1b4c13b7f8a33b5200d
Verified
2026-09-11

No capability-specific source was recorded. The register is the provenance, not proof of absence.

Open pinned register ↗
Not verified

Managed service: capability-map only, no same-host benchmark run. Not verified in available sources.

Version
hosted service, n/a
Verified
2026-09-11

No capability-specific source was recorded. The register is the provenance, not proof of absence.

Open pinned register ↗
Built-in guardrails
Supported

Built-in PII/prompt-injection/SQL-injection/toxicity/secret detectors plus custom regex rules, single-pass Rust-WASM scan with pure-Go fallback.

Version
v0.2.0-beta (commit 88a27c0)
Verified
2026-09-11
Open cited source ↗
Supported

Integrated guardrails documented.

Version
latest @ docker.io/portkeyai/gateway:latest sha256:97f094d9c8a764cbfaa2a7138c0017b247ca923bb06db1b4c13b7f8a33b5200d
Verified
2026-09-11
Open cited source ↗
Managed only

Deterministic, AI/partner, and custom guardrails with deny/log/dataset/retry/fallback actions documented.

Version
hosted service, n/a
Verified
2026-09-11
Open cited source ↗
Guardrail webhooks / external connectors
Supported

HTTP webhook connectors with configurable stage/action/timeout/fail_open.

Version
v0.2.0-beta (commit 88a27c0)
Verified
2026-09-11
Open cited source ↗
Supported

Custom webhook guardrail checks documented.

Version
latest @ docker.io/portkeyai/gateway:latest sha256:97f094d9c8a764cbfaa2a7138c0017b247ca923bb06db1b4c13b7f8a33b5200d
Verified
2026-09-11
Open cited source ↗
Not verified

Managed service: capability-map only, no same-host benchmark run. Not verified in available sources.

Version
hosted service, n/a
Verified
2026-09-11

No capability-specific source was recorded. The register is the provenance, not proof of absence.

Open pinned register ↗
Output redaction
Supported

redact action available on output-stage guardrail rules.

Version
v0.2.0-beta (commit 88a27c0)
Verified
2026-09-11
Open cited source ↗
Not verified

Not confirmed independently of the guardrails claim above.

Version
latest @ docker.io/portkeyai/gateway:latest sha256:97f094d9c8a764cbfaa2a7138c0017b247ca923bb06db1b4c13b7f8a33b5200d
Verified
2026-09-11

No capability-specific source was recorded. The register is the provenance, not proof of absence.

Open pinned register ↗
Not verified

Managed service: capability-map only, no same-host benchmark run. Not verified in available sources.

Version
hosted service, n/a
Verified
2026-09-11

No capability-specific source was recorded. The register is the provenance, not proof of absence.

Open pinned register ↗
Guardrails applied to streaming output
Supported

guardrails.stream_buffer defaults to true: the full SSE stream is buffered and scanned before release, which means TTFT with guardrails on is dominated by upstream generation time, not gateway overhead. Benchmark both stream_buffer=true and false and label them.

Version
v0.2.0-beta (commit 88a27c0)
Verified
2026-09-11
Open cited source ↗
Not verified

Not confirmed in available sources.

Version
latest @ docker.io/portkeyai/gateway:latest sha256:97f094d9c8a764cbfaa2a7138c0017b247ca923bb06db1b4c13b7f8a33b5200d
Verified
2026-09-11

No capability-specific source was recorded. The register is the provenance, not proof of absence.

Open pinned register ↗
Not verified

Managed service: capability-map only, no same-host benchmark run. Not verified in available sources.

Version
hosted service, n/a
Verified
2026-09-11

No capability-specific source was recorded. The register is the provenance, not proof of absence.

Open pinned register ↗
Governed agent infrastructure
MCP gateway
Supported

HTTP MCP targets with streamed SSE / streamable-HTTP pass-through.

Version
v0.2.0-beta (commit 88a27c0)
Verified
2026-09-11
Open cited source ↗
Supported

MCP Gateway for remote MCP server connectivity documented.

Version
latest @ docker.io/portkeyai/gateway:latest sha256:97f094d9c8a764cbfaa2a7138c0017b247ca923bb06db1b4c13b7f8a33b5200d
Verified
2026-09-11
Open cited source ↗
Not verified

Managed service: capability-map only, no same-host benchmark run. Not verified in available sources.

Version
hosted service, n/a
Verified
2026-09-11

No capability-specific source was recorded. The register is the provenance, not proof of absence.

Open pinned register ↗
MCP over stdio
Supported

Persistent stdio MCP transport targets.

Version
v0.2.0-beta (commit 88a27c0)
Verified
2026-09-11
Open cited source ↗
Not verified

Not confirmed in available sources.

Version
latest @ docker.io/portkeyai/gateway:latest sha256:97f094d9c8a764cbfaa2a7138c0017b247ca923bb06db1b4c13b7f8a33b5200d
Verified
2026-09-11

No capability-specific source was recorded. The register is the provenance, not proof of absence.

Open pinned register ↗
Not verified

Managed service: capability-map only, no same-host benchmark run. Not verified in available sources.

Version
hosted service, n/a
Verified
2026-09-11

No capability-specific source was recorded. The register is the provenance, not proof of absence.

Open pinned register ↗
MCP federation (multiple targets)
Supported

Multiple named MCP targets, policy-gated tools/call, server-side headers.

Version
v0.2.0-beta (commit 88a27c0)
Verified
2026-09-11
Open cited source ↗
Partial

Centralized control of multiple MCP servers documented; federation depth not independently confirmed.

Version
latest @ docker.io/portkeyai/gateway:latest sha256:97f094d9c8a764cbfaa2a7138c0017b247ca923bb06db1b4c13b7f8a33b5200d
Verified
2026-09-11
Open cited source ↗

Centralized control of multiple MCP servers documented; federation depth not independently confirmed.

Not verified

Managed service: capability-map only, no same-host benchmark run. Not verified in available sources.

Version
hosted service, n/a
Verified
2026-09-11

No capability-specific source was recorded. The register is the provenance, not proof of absence.

Open pinned register ↗
OpenAPI-to-MCP conversion
Not available

Not implemented; explicit gap in the project's own comparison doc.

Version
v0.2.0-beta (commit 88a27c0)
Verified
2026-09-11
Open cited source ↗
Not available

This project's internal comparison table lists Portkey as "Partial" for OpenAPI conversion; not independently re-verified, kept as no/unconfirmed here to avoid overclaiming.

Version
latest @ docker.io/portkeyai/gateway:latest sha256:97f094d9c8a764cbfaa2a7138c0017b247ca923bb06db1b4c13b7f8a33b5200d
Verified
2026-09-11
Open cited source ↗
Not verified

Managed service: capability-map only, no same-host benchmark run. Not verified in available sources.

Version
hosted service, n/a
Verified
2026-09-11

No capability-specific source was recorded. The register is the provenance, not proof of absence.

Open pinned register ↗
MCP OAuth / token exchange
Supported

RFC 8693 token exchange plus RFC 7523 JWT Bearer Grant for MCP OAuth delegation.

Version
v0.2.0-beta (commit 88a27c0)
Verified
2026-09-11
Open cited source ↗
Not available

This project's internal comparison table lists Portkey as "No" for MCP OAuth/token exchange.

Version
latest @ docker.io/portkeyai/gateway:latest sha256:97f094d9c8a764cbfaa2a7138c0017b247ca923bb06db1b4c13b7f8a33b5200d
Verified
2026-09-11
Open cited source ↗
Not verified

Managed service: capability-map only, no same-host benchmark run. Not verified in available sources.

Version
hosted service, n/a
Verified
2026-09-11

No capability-specific source was recorded. The register is the provenance, not proof of absence.

Open pinned register ↗
A2A agent card discovery
Supported

Public A2A v1 Agent Card discovery (/.well-known/agent-card.json) plus authenticated GetExtendedAgentCard.

Version
v0.2.0-beta (commit 88a27c0)
Verified
2026-09-11
Open cited source ↗

Current protocol scope: SendMessage, SendMessageStream (SSE task events), GetTask, best-effort CancelTask; tasks in memory; no push notifications; no downstream agent proxy.

Not available

No A2A agent-card discovery found in available sources.

Version
latest @ docker.io/portkeyai/gateway:latest sha256:97f094d9c8a764cbfaa2a7138c0017b247ca923bb06db1b4c13b7f8a33b5200d
Verified
2026-09-11

No capability-specific source was recorded. The register is the provenance, not proof of absence.

Open pinned register ↗
Not verified

Managed service: capability-map only, no same-host benchmark run. Not verified in available sources.

Version
hosted service, n/a
Verified
2026-09-11

No capability-specific source was recorded. The register is the provenance, not proof of absence.

Open pinned register ↗
A2A task methods
Partial

SendMessage / SendMessageStream, GetTask, CancelTask implemented (JSON-RPC methods and REST aliases). Agent card advertises pushNotifications: false, so push-notification task updates are not supported.

Version
v0.2.0-beta (commit 88a27c0)
Verified
2026-09-11
Open cited source ↗

Current protocol scope: SendMessage, SendMessageStream (SSE task events), GetTask, best-effort CancelTask; tasks in memory; no push notifications; no downstream agent proxy.

SendMessage / SendMessageStream, GetTask, CancelTask implemented (JSON-RPC methods and REST aliases). Agent card advertises pushNotifications: false, so push-notification task updates are not supported.

Not available

This project's internal comparison table lists Portkey as "No" for A2A task lifecycle.

Version
latest @ docker.io/portkeyai/gateway:latest sha256:97f094d9c8a764cbfaa2a7138c0017b247ca923bb06db1b4c13b7f8a33b5200d
Verified
2026-09-11
Open cited source ↗
Not verified

Managed service: capability-map only, no same-host benchmark run. Not verified in available sources.

Version
hosted service, n/a
Verified
2026-09-11

No capability-specific source was recorded. The register is the provenance, not proof of absence.

Open pinned register ↗
Operations & evidence
Prompt management
Partial

Templates with version history and rendering; no approval workflow, rollback/promotion, or experiments.

Version
v0.2.0-beta (commit 88a27c0)
Verified
2026-09-11
Open cited source ↗

Templates with version history and rendering; no approval workflow, rollback/promotion, or experiments.

Supported

Prompt templates/releases/experiments documented at the platform level.

Version
latest @ docker.io/portkeyai/gateway:latest sha256:97f094d9c8a764cbfaa2a7138c0017b247ca923bb06db1b4c13b7f8a33b5200d
Verified
2026-09-11
Open cited source ↗
Managed only

Templates, partials, releases/publish workflow, experiments documented.

Version
hosted service, n/a
Verified
2026-09-11
Open cited source ↗
Evals / experiments
Partial

Policy replay endpoint for batch allow/deny simulation only; no model-quality eval datasets/scoring.

Version
v0.2.0-beta (commit 88a27c0)
Verified
2026-09-11
Open cited source ↗

Policy replay endpoint for batch allow/deny simulation only; no model-quality eval datasets/scoring.

Supported

Full evals/experiments documented at the platform level.

Version
latest @ docker.io/portkeyai/gateway:latest sha256:97f094d9c8a764cbfaa2a7138c0017b247ca923bb06db1b4c13b7f8a33b5200d
Verified
2026-09-11
Open cited source ↗
Managed only

Full evals/experiments documented.

Version
hosted service, n/a
Verified
2026-09-11
Open cited source ↗
OTLP telemetry export
Supported

OTel trace export (tested against Langfuse/Jaeger/Tempo).

Version
v0.2.0-beta (commit 88a27c0)
Verified
2026-09-11
Open cited source ↗
Not verified

OTel ingestion is documented for the Portkey platform; OSS-gateway-only export not independently confirmed.

Version
latest @ docker.io/portkeyai/gateway:latest sha256:97f094d9c8a764cbfaa2a7138c0017b247ca923bb06db1b4c13b7f8a33b5200d
Verified
2026-09-11

No capability-specific source was recorded. The register is the provenance, not proof of absence.

Open pinned register ↗
Managed only

OTel ingestion documented.

Version
hosted service, n/a
Verified
2026-09-11
Open cited source ↗
Prometheus metrics
Supported

/metrics endpoint, gated by OMNISWITCH_PROMETHEUS_ENABLED.

Version
v0.2.0-beta (commit 88a27c0)
Verified
2026-09-11
Open cited source ↗
Not available

This project's internal comparison table lists a Prometheus-style claim as false for a similar OSS gateway (agentgateway); for Portkey OSS this is unconfirmed and kept conservative.

Version
latest @ docker.io/portkeyai/gateway:latest sha256:97f094d9c8a764cbfaa2a7138c0017b247ca923bb06db1b4c13b7f8a33b5200d
Verified
2026-09-11

No capability-specific source was recorded. The register is the provenance, not proof of absence.

Open pinned register ↗
Not verified

Managed service: capability-map only, no same-host benchmark run. Not verified in available sources.

Version
hosted service, n/a
Verified
2026-09-11

No capability-specific source was recorded. The register is the provenance, not proof of absence.

Open pinned register ↗
Published cross-gateway benchmarks
Partial

In-repo Rust-WASM-vs-Go guardrail micro-benchmark only (BENCHMARKS.md, measured on a non-pinned Windows laptop). No cross-gateway comparative run published yet -- this benchmark effort (bench/) is that follow-up.

Version
v0.2.0-beta (commit 88a27c0)
Verified
2026-09-11
Open cited source ↗

In-repo Rust-WASM-vs-Go guardrail micro-benchmark only (BENCHMARKS.md, measured on a non-pinned Windows laptop). No cross-gateway comparative run published yet -- this benchmark effort (bench/) is that follow-up.

Not verified

No first-party Portkey benchmark blog found; Portkey appears as a comparison subject in LiteLLM's and Kong's third-party benchmarks.

Version
latest @ docker.io/portkeyai/gateway:latest sha256:97f094d9c8a764cbfaa2a7138c0017b247ca923bb06db1b4c13b7f8a33b5200d
Verified
2026-09-11

No capability-specific source was recorded. The register is the provenance, not proof of absence.

Open pinned register ↗
Not verified

No first-party Portkey benchmark blog found; appears as a subject in third-party benchmarks.

Version
hosted service, n/a
Verified
2026-09-11

No capability-specific source was recorded. The register is the provenance, not proof of absence.

Open pinned register ↗

Deployment & license

Self-hosted deployment

OmniSwitch[1]
Not verified

No claim is recorded for this capability in the pinned register.

Version
Not recorded
Verified
Not recorded

No capability-specific source was recorded. The register is the provenance, not proof of absence.

Open pinned register ↗
Portkey[3]
Not verified

No claim is recorded for this capability in the pinned register.

Version
Not recorded
Verified
Not recorded

No capability-specific source was recorded. The register is the provenance, not proof of absence.

Open pinned register ↗
Managed platform
Not verified

No claim is recorded for this capability in the pinned register.

Version
Not recorded
Verified
Not recorded

No capability-specific source was recorded. The register is the provenance, not proof of absence.

Open pinned register ↗

SQLite / Postgres storage

OmniSwitch[1]
Supported

SQLite by default; PostgreSQL via OMNISWITCH_DATABASE_URL. Logs and keys remain SQLite-local even in the Postgres case per the project's own docs.

Version
v0.2.0-beta (commit 88a27c0)
Verified
2026-09-11
Open cited source ↗
Portkey[3]
Not verified

Not confirmed in available sources.

Version
latest @ docker.io/portkeyai/gateway:latest sha256:97f094d9c8a764cbfaa2a7138c0017b247ca923bb06db1b4c13b7f8a33b5200d
Verified
2026-09-11

No capability-specific source was recorded. The register is the provenance, not proof of absence.

Open pinned register ↗
Managed platform
Not verified

Managed service: capability-map only, no same-host benchmark run. Not verified in available sources.

Version
hosted service, n/a
Verified
2026-09-11

No capability-specific source was recorded. The register is the provenance, not proof of absence.

Open pinned register ↗

Kubernetes manifests / Helm chart

OmniSwitch[1]
Supported

Kustomize manifests (Deployment/Service/ConfigMap/Secret example/PVCs/Redis) plus a Helm chart; no operator/CRDs/inference-aware routing.

Version
v0.2.0-beta (commit 88a27c0)
Verified
2026-09-11
Open cited source ↗
Portkey[3]
Not verified

Not confirmed in available sources.

Version
latest @ docker.io/portkeyai/gateway:latest sha256:97f094d9c8a764cbfaa2a7138c0017b247ca923bb06db1b4c13b7f8a33b5200d
Verified
2026-09-11

No capability-specific source was recorded. The register is the provenance, not proof of absence.

Open pinned register ↗
Managed platform
Not verified

Managed service: capability-map only, no same-host benchmark run. Not verified in available sources.

Version
hosted service, n/a
Verified
2026-09-11

No capability-specific source was recorded. The register is the provenance, not proof of absence.

Open pinned register ↗

Config hot reload

OmniSwitch[1]
Supported

Config hot reload covers routes, guardrails, cache posture, circuit breaker, and shadow provider without restart.

Version
v0.2.0-beta (commit 88a27c0)
Verified
2026-09-11
Open cited source ↗
Portkey[3]
Not verified

Not confirmed in available sources.

Version
latest @ docker.io/portkeyai/gateway:latest sha256:97f094d9c8a764cbfaa2a7138c0017b247ca923bb06db1b4c13b7f8a33b5200d
Verified
2026-09-11

No capability-specific source was recorded. The register is the provenance, not proof of absence.

Open pinned register ↗
Managed platform
Not verified

Managed service: capability-map only, no same-host benchmark run. Not verified in available sources.

Version
hosted service, n/a
Verified
2026-09-11

No capability-specific source was recorded. The register is the provenance, not proof of absence.

Open pinned register ↗

Built-in dashboard/UI

OmniSwitch[1]
Supported

Local dashboard for logs, metrics, prompts, providers, and guardrails.

Version
v0.2.0-beta (commit 88a27c0)
Verified
2026-09-11
Open cited source ↗
Portkey[3]
Partial

Dashboard/analytics are a hosted-platform feature; the OSS gateway container itself does not ship a bundled UI.

Version
latest @ docker.io/portkeyai/gateway:latest sha256:97f094d9c8a764cbfaa2a7138c0017b247ca923bb06db1b4c13b7f8a33b5200d
Verified
2026-09-11
Open cited source ↗

Dashboard/analytics are a hosted-platform feature; the OSS gateway container itself does not ship a bundled UI.

Managed platform
Managed only

Hosted analytics/logs/traces dashboard.

Version
hosted service, n/a
Verified
2026-09-11
Open cited source ↗

License

OmniSwitch[1]
Supported

Apache-2.0.

Version
v0.2.0-beta (commit 88a27c0)
Verified
2026-09-11
Open cited source ↗
Portkey[3]
Supported

MIT.

Version
latest @ docker.io/portkeyai/gateway:latest sha256:97f094d9c8a764cbfaa2a7138c0017b247ca923bb06db1b4c13b7f8a33b5200d
Verified
2026-09-11
Open cited source ↗
Managed platform
Not available

Closed managed service (distinct from the MIT-licensed OSS gateway).

Version
hosted service, n/a
Verified
2026-09-11
Open cited source ↗

APIs & providers

OpenAI-compatible chat completions

OmniSwitch[1]
Supported

/v1/chat/completions, streaming and non-streaming.

Version
v0.2.0-beta (commit 88a27c0)
Verified
2026-09-11
Open cited source ↗
Portkey[3]
Supported

Universal REST/SDK API surface.

Version
latest @ docker.io/portkeyai/gateway:latest sha256:97f094d9c8a764cbfaa2a7138c0017b247ca923bb06db1b4c13b7f8a33b5200d
Verified
2026-09-11
Open cited source ↗
Managed platform
Managed only

Universal REST/SDK API across models.

Version
hosted service, n/a
Verified
2026-09-11
Open cited source ↗

OpenAI-compatible embeddings

OmniSwitch[1]
Supported

/v1/embeddings.

Version
v0.2.0-beta (commit 88a27c0)
Verified
2026-09-11
Open cited source ↗
Portkey[3]
Supported

Documented multimodal/embeddings endpoint coverage.

Version
latest @ docker.io/portkeyai/gateway:latest sha256:97f094d9c8a764cbfaa2a7138c0017b247ca923bb06db1b4c13b7f8a33b5200d
Verified
2026-09-11
Open cited source ↗
Managed platform
Not verified

Managed service: capability-map only, no same-host benchmark run. Not verified in available sources.

Version
hosted service, n/a
Verified
2026-09-11

No capability-specific source was recorded. The register is the provenance, not proof of absence.

Open pinned register ↗

OpenAI Responses API

OmniSwitch[1]
Partial

/v1/responses text subset only (no image/audio/tool-streaming parity with OpenAI).

Version
v0.2.0-beta (commit 88a27c0)
Verified
2026-09-11
Open cited source ↗

/v1/responses text subset only (no image/audio/tool-streaming parity with OpenAI).

Portkey[3]
Not verified

Not confirmed in available sources.

Version
latest @ docker.io/portkeyai/gateway:latest sha256:97f094d9c8a764cbfaa2a7138c0017b247ca923bb06db1b4c13b7f8a33b5200d
Verified
2026-09-11

No capability-specific source was recorded. The register is the provenance, not proof of absence.

Open pinned register ↗
Managed platform
Not verified

Managed service: capability-map only, no same-host benchmark run. Not verified in available sources.

Version
hosted service, n/a
Verified
2026-09-11

No capability-specific source was recorded. The register is the provenance, not proof of absence.

Open pinned register ↗

Anthropic Messages API

OmniSwitch[1]
Partial

/v1/messages core subset.

Version
v0.2.0-beta (commit 88a27c0)
Verified
2026-09-11
Open cited source ↗

/v1/messages core subset.

Portkey[3]
Not verified

Anthropic is a supported provider; Messages-API request shape parity not independently confirmed.

Version
latest @ docker.io/portkeyai/gateway:latest sha256:97f094d9c8a764cbfaa2a7138c0017b247ca923bb06db1b4c13b7f8a33b5200d
Verified
2026-09-11

No capability-specific source was recorded. The register is the provenance, not proof of absence.

Open pinned register ↗
Managed platform
Not verified

Managed service: capability-map only, no same-host benchmark run. Not verified in available sources.

Version
hosted service, n/a
Verified
2026-09-11

No capability-specific source was recorded. The register is the provenance, not proof of absence.

Open pinned register ↗

Native (non-passthrough) provider adapters

OmniSwitch[1]
Partial

4 native adapters (OpenAI, Anthropic, Google, Groq); no native Bedrock/Vertex/Cohere. Everything else goes through the generic OpenAI-compatible custom adapter with 15+ documented presets.

Version
v0.2.0-beta (commit 88a27c0)
Verified
2026-09-11
Open cited source ↗

4 native adapters (OpenAI, Anthropic, Google, Groq); no native Bedrock/Vertex/Cohere. Everything else goes through the generic OpenAI-compatible custom adapter with 15+ documented presets.

Portkey[3]
Supported

Large managed provider/model catalog claimed (1600+ models).

Version
latest @ docker.io/portkeyai/gateway:latest sha256:97f094d9c8a764cbfaa2a7138c0017b247ca923bb06db1b4c13b7f8a33b5200d
Verified
2026-09-11
Open cited source ↗
Managed platform
Managed only

Large managed provider/model catalog (1600+ models claimed).

Version
hosted service, n/a
Verified
2026-09-11
Open cited source ↗

Custom/generic OpenAI-compatible endpoint

OmniSwitch[1]
Supported

Generic custom provider adapter with presets for Azure OpenAI, Ollama, vLLM, LiteLLM, DeepSeek, Together, Fireworks, and aliases.

Version
v0.2.0-beta (commit 88a27c0)
Verified
2026-09-11
Open cited source ↗
Portkey[3]
Supported

Custom hosts documented.

Version
latest @ docker.io/portkeyai/gateway:latest sha256:97f094d9c8a764cbfaa2a7138c0017b247ca923bb06db1b4c13b7f8a33b5200d
Verified
2026-09-11
Open cited source ↗
Managed platform
Not verified

Managed service: capability-map only, no same-host benchmark run. Not verified in available sources.

Version
hosted service, n/a
Verified
2026-09-11

No capability-specific source was recorded. The register is the provenance, not proof of absence.

Open pinned register ↗

Routing, reliability & cost

Routing & fallbacks

OmniSwitch[1]
Supported

route-level fallbacks, max_retries, retry_backoff, retry_codes, per-attempt timeout.

Version
v0.2.0-beta (commit 88a27c0)
Verified
2026-09-11
Open cited source ↗
Portkey[3]
Supported

Fallback, retries, and timeouts documented.

Version
latest @ docker.io/portkeyai/gateway:latest sha256:97f094d9c8a764cbfaa2a7138c0017b247ca923bb06db1b4c13b7f8a33b5200d
Verified
2026-09-11
Open cited source ↗
Managed platform
Managed only

Fallback, retries, timeouts documented at the platform level.

Version
hosted service, n/a
Verified
2026-09-11
Open cited source ↗

Weighted / load-balanced routing

OmniSwitch[1]
Supported

Weighted variants per route.

Version
v0.2.0-beta (commit 88a27c0)
Verified
2026-09-11
Open cited source ↗
Portkey[3]
Supported

Load balancing documented.

Version
latest @ docker.io/portkeyai/gateway:latest sha256:97f094d9c8a764cbfaa2a7138c0017b247ca923bb06db1b4c13b7f8a33b5200d
Verified
2026-09-11
Open cited source ↗
Managed platform
Not verified

Managed service: capability-map only, no same-host benchmark run. Not verified in available sources.

Version
hosted service, n/a
Verified
2026-09-11

No capability-specific source was recorded. The register is the provenance, not proof of absence.

Open pinned register ↗

Conditional routing (rule/expression based)

OmniSwitch[1]
Supported

CEL condition expressions on route variants.

Version
v0.2.0-beta (commit 88a27c0)
Verified
2026-09-11
Open cited source ↗
Portkey[3]
Supported

Conditional routing documented as a core gateway feature.

Version
latest @ docker.io/portkeyai/gateway:latest sha256:97f094d9c8a764cbfaa2a7138c0017b247ca923bb06db1b4c13b7f8a33b5200d
Verified
2026-09-11
Open cited source ↗
Managed platform
Managed only

Conditional routing and canary deploys documented.

Version
hosted service, n/a
Verified
2026-09-11
Open cited source ↗

Circuit breaker

OmniSwitch[1]
Supported

Default 5 failures / 60s cooldown, configurable via gateway.circuit_breaker_failures / _cooldown.

Version
v0.2.0-beta (commit 88a27c0)
Verified
2026-09-11
Open cited source ↗
Portkey[3]
Supported

Circuit breaker documented as a core gateway feature.

Version
latest @ docker.io/portkeyai/gateway:latest sha256:97f094d9c8a764cbfaa2a7138c0017b247ca923bb06db1b4c13b7f8a33b5200d
Verified
2026-09-11
Open cited source ↗
Managed platform
Not verified

Managed service: capability-map only, no same-host benchmark run. Not verified in available sources.

Version
hosted service, n/a
Verified
2026-09-11

No capability-specific source was recorded. The register is the provenance, not proof of absence.

Open pinned register ↗

Exact-match cache

OmniSwitch[1]
Supported

SHA-256 request-fingerprint cache key, tenant-scoped (api_key/workspace/organization/global), SQLite-backed.

Version
v0.2.0-beta (commit 88a27c0)
Verified
2026-09-11
Open cited source ↗
Portkey[3]
Supported

Simple cache documented.

Version
latest @ docker.io/portkeyai/gateway:latest sha256:97f094d9c8a764cbfaa2a7138c0017b247ca923bb06db1b4c13b7f8a33b5200d
Verified
2026-09-11
Open cited source ↗
Managed platform
Managed only

Simple cache documented.

Version
hosted service, n/a
Verified
2026-09-11
Open cited source ↗

Similarity cache (see scope)

OmniSwitch[1]
Supported

NOT embedding-based. Vectorize() builds a normalized token-frequency map over lowercased, stop-word-filtered tokens; Similarity() is cosine over those token-frequency vectors. State this precisely wherever OmniSwitch's cache is compared to embedding-based semantic caches.

Version
v0.2.0-beta (commit 88a27c0)
Verified
2026-09-11
Open cited source ↗
Portkey[3]
Supported

Semantic cache documented ("Cache (Simple & Semantic)").

Version
latest @ docker.io/portkeyai/gateway:latest sha256:97f094d9c8a764cbfaa2a7138c0017b247ca923bb06db1b4c13b7f8a33b5200d
Verified
2026-09-11
Open cited source ↗
Managed platform
Managed only

Semantic cache documented at the platform level.

Version
hosted service, n/a
Verified
2026-09-11
Open cited source ↗

Budgets and quotas

OmniSwitch[1]
Supported

Cost and token budgets per API key.

Version
v0.2.0-beta (commit 88a27c0)
Verified
2026-09-11
Open cited source ↗
Portkey[3]
Not verified

Cost/token budgets are prominent in Portkey's managed control plane; whether the OSS gateway alone enforces budgets without the control plane is not independently confirmed.

Version
latest @ docker.io/portkeyai/gateway:latest sha256:97f094d9c8a764cbfaa2a7138c0017b247ca923bb06db1b4c13b7f8a33b5200d
Verified
2026-09-11

No capability-specific source was recorded. The register is the provenance, not proof of absence.

Open pinned register ↗
Managed platform
Managed only

Cost/token budgets and time-window rate limits documented.

Version
hosted service, n/a
Verified
2026-09-11
Open cited source ↗

Rate limiting

OmniSwitch[1]
Partial

Local sliding-window request limits plus optional Redis-coordinated fixed window across replicas; no token-based (TPM) limiter.

Version
v0.2.0-beta (commit 88a27c0)
Verified
2026-09-11
Open cited source ↗

Local sliding-window request limits plus optional Redis-coordinated fixed window across replicas; no token-based (TPM) limiter.

Portkey[3]
Not verified

Time-window rate limits are documented for the Portkey platform; OSS-gateway-only enforcement not independently confirmed.

Version
latest @ docker.io/portkeyai/gateway:latest sha256:97f094d9c8a764cbfaa2a7138c0017b247ca923bb06db1b4c13b7f8a33b5200d
Verified
2026-09-11

No capability-specific source was recorded. The register is the provenance, not proof of absence.

Open pinned register ↗
Managed platform
Managed only

Time-window rate limits documented.

Version
hosted service, n/a
Verified
2026-09-11
Open cited source ↗

Token-based rate limits

OmniSwitch[1]
Not verified

No claim is recorded for this capability in the pinned register.

Version
Not recorded
Verified
Not recorded

No capability-specific source was recorded. The register is the provenance, not proof of absence.

Open pinned register ↗
Portkey[3]
Not verified

No claim is recorded for this capability in the pinned register.

Version
Not recorded
Verified
Not recorded

No capability-specific source was recorded. The register is the provenance, not proof of absence.

Open pinned register ↗
Managed platform
Not verified

No claim is recorded for this capability in the pinned register.

Version
Not recorded
Verified
Not recorded

No capability-specific source was recorded. The register is the provenance, not proof of absence.

Open pinned register ↗

Identity & guardrails

API key management

OmniSwitch[1]
Supported

Hashed API keys, bootstrap owner key, workspace-scoped keys.

Version
v0.2.0-beta (commit 88a27c0)
Verified
2026-09-11
Open cited source ↗
Portkey[3]
Partial

Virtual keys are a hosted-control-plane concept; the OSS gateway can be run with a config header (x-portkey-config) rather than a file-based key store.

Version
latest @ docker.io/portkeyai/gateway:latest sha256:97f094d9c8a764cbfaa2a7138c0017b247ca923bb06db1b4c13b7f8a33b5200d
Verified
2026-09-11
Open cited source ↗

Virtual keys are a hosted-control-plane concept; the OSS gateway can be run with a config header (x-portkey-config) rather than a file-based key store.

Managed platform
Managed only

Virtual keys and workspace/project key management.

Version
hosted service, n/a
Verified
2026-09-11
Open cited source ↗

OIDC / JWT identity

OmniSwitch[1]
Supported

OIDC JWT/JWKS workload identity (identity.oidc.jwks_url/issuer/audience).

Version
v0.2.0-beta (commit 88a27c0)
Verified
2026-09-11
Open cited source ↗
Portkey[3]
Not verified

Not confirmed for the OSS gateway specifically (vs. the hosted platform).

Version
latest @ docker.io/portkeyai/gateway:latest sha256:97f094d9c8a764cbfaa2a7138c0017b247ca923bb06db1b4c13b7f8a33b5200d
Verified
2026-09-11

No capability-specific source was recorded. The register is the provenance, not proof of absence.

Open pinned register ↗
Managed platform
Not verified

Managed project/workspace controls documented; OIDC/JWT specifics not confirmed.

Version
hosted service, n/a
Verified
2026-09-11

No capability-specific source was recorded. The register is the provenance, not proof of absence.

Open pinned register ↗

Mutual TLS

OmniSwitch[1]
Not available

Explicitly not implemented; listed as a roadmap item, not a shipped feature.

Version
v0.2.0-beta (commit 88a27c0)
Verified
2026-09-11
Open cited source ↗
Portkey[3]
Not available

This project's internal comparison table lists a combined SSO/SAML/SCIM/mTLS row as "Yes" for Portkey, but that appears to describe the hosted platform, not the OSS gateway; not independently verified for the OSS gateway container used here.

Version
latest @ docker.io/portkeyai/gateway:latest sha256:97f094d9c8a764cbfaa2a7138c0017b247ca923bb06db1b4c13b7f8a33b5200d
Verified
2026-09-11
Open cited source ↗
Managed platform
Not verified

Managed service: capability-map only, no same-host benchmark run. Not verified in available sources.

Version
hosted service, n/a
Verified
2026-09-11

No capability-specific source was recorded. The register is the provenance, not proof of absence.

Open pinned register ↗

RBAC / policy engine (CEL or equivalent)

OmniSwitch[1]
Supported

CEL allow/deny authorization rules plus fixed role gates.

Version
v0.2.0-beta (commit 88a27c0)
Verified
2026-09-11
Open cited source ↗
Portkey[3]
Not verified

Not confirmed for the OSS gateway specifically.

Version
latest @ docker.io/portkeyai/gateway:latest sha256:97f094d9c8a764cbfaa2a7138c0017b247ca923bb06db1b4c13b7f8a33b5200d
Verified
2026-09-11

No capability-specific source was recorded. The register is the provenance, not proof of absence.

Open pinned register ↗
Managed platform
Not verified

Managed service: capability-map only, no same-host benchmark run. Not verified in available sources.

Version
hosted service, n/a
Verified
2026-09-11

No capability-specific source was recorded. The register is the provenance, not proof of absence.

Open pinned register ↗

Built-in guardrails

OmniSwitch[1]
Supported

Built-in PII/prompt-injection/SQL-injection/toxicity/secret detectors plus custom regex rules, single-pass Rust-WASM scan with pure-Go fallback.

Version
v0.2.0-beta (commit 88a27c0)
Verified
2026-09-11
Open cited source ↗
Portkey[3]
Supported

Integrated guardrails documented.

Version
latest @ docker.io/portkeyai/gateway:latest sha256:97f094d9c8a764cbfaa2a7138c0017b247ca923bb06db1b4c13b7f8a33b5200d
Verified
2026-09-11
Open cited source ↗
Managed platform
Managed only

Deterministic, AI/partner, and custom guardrails with deny/log/dataset/retry/fallback actions documented.

Version
hosted service, n/a
Verified
2026-09-11
Open cited source ↗

Guardrail webhooks / external connectors

OmniSwitch[1]
Supported

HTTP webhook connectors with configurable stage/action/timeout/fail_open.

Version
v0.2.0-beta (commit 88a27c0)
Verified
2026-09-11
Open cited source ↗
Portkey[3]
Supported

Custom webhook guardrail checks documented.

Version
latest @ docker.io/portkeyai/gateway:latest sha256:97f094d9c8a764cbfaa2a7138c0017b247ca923bb06db1b4c13b7f8a33b5200d
Verified
2026-09-11
Open cited source ↗
Managed platform
Not verified

Managed service: capability-map only, no same-host benchmark run. Not verified in available sources.

Version
hosted service, n/a
Verified
2026-09-11

No capability-specific source was recorded. The register is the provenance, not proof of absence.

Open pinned register ↗

Output redaction

OmniSwitch[1]
Supported

redact action available on output-stage guardrail rules.

Version
v0.2.0-beta (commit 88a27c0)
Verified
2026-09-11
Open cited source ↗
Portkey[3]
Not verified

Not confirmed independently of the guardrails claim above.

Version
latest @ docker.io/portkeyai/gateway:latest sha256:97f094d9c8a764cbfaa2a7138c0017b247ca923bb06db1b4c13b7f8a33b5200d
Verified
2026-09-11

No capability-specific source was recorded. The register is the provenance, not proof of absence.

Open pinned register ↗
Managed platform
Not verified

Managed service: capability-map only, no same-host benchmark run. Not verified in available sources.

Version
hosted service, n/a
Verified
2026-09-11

No capability-specific source was recorded. The register is the provenance, not proof of absence.

Open pinned register ↗

Guardrails applied to streaming output

OmniSwitch[1]
Supported

guardrails.stream_buffer defaults to true: the full SSE stream is buffered and scanned before release, which means TTFT with guardrails on is dominated by upstream generation time, not gateway overhead. Benchmark both stream_buffer=true and false and label them.

Version
v0.2.0-beta (commit 88a27c0)
Verified
2026-09-11
Open cited source ↗
Portkey[3]
Not verified

Not confirmed in available sources.

Version
latest @ docker.io/portkeyai/gateway:latest sha256:97f094d9c8a764cbfaa2a7138c0017b247ca923bb06db1b4c13b7f8a33b5200d
Verified
2026-09-11

No capability-specific source was recorded. The register is the provenance, not proof of absence.

Open pinned register ↗
Managed platform
Not verified

Managed service: capability-map only, no same-host benchmark run. Not verified in available sources.

Version
hosted service, n/a
Verified
2026-09-11

No capability-specific source was recorded. The register is the provenance, not proof of absence.

Open pinned register ↗

Governed agent infrastructure

MCP gateway

OmniSwitch[1]
Supported

HTTP MCP targets with streamed SSE / streamable-HTTP pass-through.

Version
v0.2.0-beta (commit 88a27c0)
Verified
2026-09-11
Open cited source ↗
Portkey[3]
Supported

MCP Gateway for remote MCP server connectivity documented.

Version
latest @ docker.io/portkeyai/gateway:latest sha256:97f094d9c8a764cbfaa2a7138c0017b247ca923bb06db1b4c13b7f8a33b5200d
Verified
2026-09-11
Open cited source ↗
Managed platform
Not verified

Managed service: capability-map only, no same-host benchmark run. Not verified in available sources.

Version
hosted service, n/a
Verified
2026-09-11

No capability-specific source was recorded. The register is the provenance, not proof of absence.

Open pinned register ↗

MCP over stdio

OmniSwitch[1]
Supported

Persistent stdio MCP transport targets.

Version
v0.2.0-beta (commit 88a27c0)
Verified
2026-09-11
Open cited source ↗
Portkey[3]
Not verified

Not confirmed in available sources.

Version
latest @ docker.io/portkeyai/gateway:latest sha256:97f094d9c8a764cbfaa2a7138c0017b247ca923bb06db1b4c13b7f8a33b5200d
Verified
2026-09-11

No capability-specific source was recorded. The register is the provenance, not proof of absence.

Open pinned register ↗
Managed platform
Not verified

Managed service: capability-map only, no same-host benchmark run. Not verified in available sources.

Version
hosted service, n/a
Verified
2026-09-11

No capability-specific source was recorded. The register is the provenance, not proof of absence.

Open pinned register ↗

MCP federation (multiple targets)

OmniSwitch[1]
Supported

Multiple named MCP targets, policy-gated tools/call, server-side headers.

Version
v0.2.0-beta (commit 88a27c0)
Verified
2026-09-11
Open cited source ↗
Portkey[3]
Partial

Centralized control of multiple MCP servers documented; federation depth not independently confirmed.

Version
latest @ docker.io/portkeyai/gateway:latest sha256:97f094d9c8a764cbfaa2a7138c0017b247ca923bb06db1b4c13b7f8a33b5200d
Verified
2026-09-11
Open cited source ↗

Centralized control of multiple MCP servers documented; federation depth not independently confirmed.

Managed platform
Not verified

Managed service: capability-map only, no same-host benchmark run. Not verified in available sources.

Version
hosted service, n/a
Verified
2026-09-11

No capability-specific source was recorded. The register is the provenance, not proof of absence.

Open pinned register ↗

OpenAPI-to-MCP conversion

OmniSwitch[1]
Not available

Not implemented; explicit gap in the project's own comparison doc.

Version
v0.2.0-beta (commit 88a27c0)
Verified
2026-09-11
Open cited source ↗
Portkey[3]
Not available

This project's internal comparison table lists Portkey as "Partial" for OpenAPI conversion; not independently re-verified, kept as no/unconfirmed here to avoid overclaiming.

Version
latest @ docker.io/portkeyai/gateway:latest sha256:97f094d9c8a764cbfaa2a7138c0017b247ca923bb06db1b4c13b7f8a33b5200d
Verified
2026-09-11
Open cited source ↗
Managed platform
Not verified

Managed service: capability-map only, no same-host benchmark run. Not verified in available sources.

Version
hosted service, n/a
Verified
2026-09-11

No capability-specific source was recorded. The register is the provenance, not proof of absence.

Open pinned register ↗

MCP OAuth / token exchange

OmniSwitch[1]
Supported

RFC 8693 token exchange plus RFC 7523 JWT Bearer Grant for MCP OAuth delegation.

Version
v0.2.0-beta (commit 88a27c0)
Verified
2026-09-11
Open cited source ↗
Portkey[3]
Not available

This project's internal comparison table lists Portkey as "No" for MCP OAuth/token exchange.

Version
latest @ docker.io/portkeyai/gateway:latest sha256:97f094d9c8a764cbfaa2a7138c0017b247ca923bb06db1b4c13b7f8a33b5200d
Verified
2026-09-11
Open cited source ↗
Managed platform
Not verified

Managed service: capability-map only, no same-host benchmark run. Not verified in available sources.

Version
hosted service, n/a
Verified
2026-09-11

No capability-specific source was recorded. The register is the provenance, not proof of absence.

Open pinned register ↗

A2A agent card discovery

OmniSwitch[1]
Supported

Public A2A v1 Agent Card discovery (/.well-known/agent-card.json) plus authenticated GetExtendedAgentCard.

Version
v0.2.0-beta (commit 88a27c0)
Verified
2026-09-11
Open cited source ↗

Current protocol scope: SendMessage, SendMessageStream (SSE task events), GetTask, best-effort CancelTask; tasks in memory; no push notifications; no downstream agent proxy.

Portkey[3]
Not available

No A2A agent-card discovery found in available sources.

Version
latest @ docker.io/portkeyai/gateway:latest sha256:97f094d9c8a764cbfaa2a7138c0017b247ca923bb06db1b4c13b7f8a33b5200d
Verified
2026-09-11

No capability-specific source was recorded. The register is the provenance, not proof of absence.

Open pinned register ↗
Managed platform
Not verified

Managed service: capability-map only, no same-host benchmark run. Not verified in available sources.

Version
hosted service, n/a
Verified
2026-09-11

No capability-specific source was recorded. The register is the provenance, not proof of absence.

Open pinned register ↗

A2A task methods

OmniSwitch[1]
Partial

SendMessage / SendMessageStream, GetTask, CancelTask implemented (JSON-RPC methods and REST aliases). Agent card advertises pushNotifications: false, so push-notification task updates are not supported.

Version
v0.2.0-beta (commit 88a27c0)
Verified
2026-09-11
Open cited source ↗

Current protocol scope: SendMessage, SendMessageStream (SSE task events), GetTask, best-effort CancelTask; tasks in memory; no push notifications; no downstream agent proxy.

SendMessage / SendMessageStream, GetTask, CancelTask implemented (JSON-RPC methods and REST aliases). Agent card advertises pushNotifications: false, so push-notification task updates are not supported.

Portkey[3]
Not available

This project's internal comparison table lists Portkey as "No" for A2A task lifecycle.

Version
latest @ docker.io/portkeyai/gateway:latest sha256:97f094d9c8a764cbfaa2a7138c0017b247ca923bb06db1b4c13b7f8a33b5200d
Verified
2026-09-11
Open cited source ↗
Managed platform
Not verified

Managed service: capability-map only, no same-host benchmark run. Not verified in available sources.

Version
hosted service, n/a
Verified
2026-09-11

No capability-specific source was recorded. The register is the provenance, not proof of absence.

Open pinned register ↗

Operations & evidence

Prompt management

OmniSwitch[1]
Partial

Templates with version history and rendering; no approval workflow, rollback/promotion, or experiments.

Version
v0.2.0-beta (commit 88a27c0)
Verified
2026-09-11
Open cited source ↗

Templates with version history and rendering; no approval workflow, rollback/promotion, or experiments.

Portkey[3]
Supported

Prompt templates/releases/experiments documented at the platform level.

Version
latest @ docker.io/portkeyai/gateway:latest sha256:97f094d9c8a764cbfaa2a7138c0017b247ca923bb06db1b4c13b7f8a33b5200d
Verified
2026-09-11
Open cited source ↗
Managed platform
Managed only

Templates, partials, releases/publish workflow, experiments documented.

Version
hosted service, n/a
Verified
2026-09-11
Open cited source ↗

Evals / experiments

OmniSwitch[1]
Partial

Policy replay endpoint for batch allow/deny simulation only; no model-quality eval datasets/scoring.

Version
v0.2.0-beta (commit 88a27c0)
Verified
2026-09-11
Open cited source ↗

Policy replay endpoint for batch allow/deny simulation only; no model-quality eval datasets/scoring.

Portkey[3]
Supported

Full evals/experiments documented at the platform level.

Version
latest @ docker.io/portkeyai/gateway:latest sha256:97f094d9c8a764cbfaa2a7138c0017b247ca923bb06db1b4c13b7f8a33b5200d
Verified
2026-09-11
Open cited source ↗
Managed platform
Managed only

Full evals/experiments documented.

Version
hosted service, n/a
Verified
2026-09-11
Open cited source ↗

OTLP telemetry export

OmniSwitch[1]
Supported

OTel trace export (tested against Langfuse/Jaeger/Tempo).

Version
v0.2.0-beta (commit 88a27c0)
Verified
2026-09-11
Open cited source ↗
Portkey[3]
Not verified

OTel ingestion is documented for the Portkey platform; OSS-gateway-only export not independently confirmed.

Version
latest @ docker.io/portkeyai/gateway:latest sha256:97f094d9c8a764cbfaa2a7138c0017b247ca923bb06db1b4c13b7f8a33b5200d
Verified
2026-09-11

No capability-specific source was recorded. The register is the provenance, not proof of absence.

Open pinned register ↗
Managed platform
Managed only

OTel ingestion documented.

Version
hosted service, n/a
Verified
2026-09-11
Open cited source ↗

Prometheus metrics

OmniSwitch[1]
Supported

/metrics endpoint, gated by OMNISWITCH_PROMETHEUS_ENABLED.

Version
v0.2.0-beta (commit 88a27c0)
Verified
2026-09-11
Open cited source ↗
Portkey[3]
Not available

This project's internal comparison table lists a Prometheus-style claim as false for a similar OSS gateway (agentgateway); for Portkey OSS this is unconfirmed and kept conservative.

Version
latest @ docker.io/portkeyai/gateway:latest sha256:97f094d9c8a764cbfaa2a7138c0017b247ca923bb06db1b4c13b7f8a33b5200d
Verified
2026-09-11

No capability-specific source was recorded. The register is the provenance, not proof of absence.

Open pinned register ↗
Managed platform
Not verified

Managed service: capability-map only, no same-host benchmark run. Not verified in available sources.

Version
hosted service, n/a
Verified
2026-09-11

No capability-specific source was recorded. The register is the provenance, not proof of absence.

Open pinned register ↗

Published cross-gateway benchmarks

OmniSwitch[1]
Partial

In-repo Rust-WASM-vs-Go guardrail micro-benchmark only (BENCHMARKS.md, measured on a non-pinned Windows laptop). No cross-gateway comparative run published yet -- this benchmark effort (bench/) is that follow-up.

Version
v0.2.0-beta (commit 88a27c0)
Verified
2026-09-11
Open cited source ↗

In-repo Rust-WASM-vs-Go guardrail micro-benchmark only (BENCHMARKS.md, measured on a non-pinned Windows laptop). No cross-gateway comparative run published yet -- this benchmark effort (bench/) is that follow-up.

Portkey[3]
Not verified

No first-party Portkey benchmark blog found; Portkey appears as a comparison subject in LiteLLM's and Kong's third-party benchmarks.

Version
latest @ docker.io/portkeyai/gateway:latest sha256:97f094d9c8a764cbfaa2a7138c0017b247ca923bb06db1b4c13b7f8a33b5200d
Verified
2026-09-11

No capability-specific source was recorded. The register is the provenance, not proof of absence.

Open pinned register ↗
Managed platform
Not verified

No first-party Portkey benchmark blog found; appears as a subject in third-party benchmarks.

Version
hosted service, n/a
Verified
2026-09-11

No capability-specific source was recorded. The register is the provenance, not proof of absence.

Open pinned register ↗

OmniSwitch scope. The pinned register marks OpenAI Responses API, Anthropic Messages API, Native (non-passthrough) provider adapters, Rate limiting, Mutual TLS, OpenAPI-to-MCP conversion, A2A task methods, Prompt management, Evals / experiments, Published cross-gateway benchmarks as partial or unavailable. Read each source and version; compare them with the build you actually deploy.

Read unknowns carefully. “Not verified” means an evidence gap, not absence. Editions remain separate. Register a8a594b; 3 compared deployments.

A2A (Beta). SendMessage, SendMessageStream (SSE task events), GetTask, best-effort CancelTask; tasks in memory; no push notifications; no downstream agent proxy.

A starting point from Portkey

The register verifies OpenAI-compatible chat on both sides. This guide is limited to an OpenAI SDK base-URL change for chat; it does not establish compatibility for other APIs or headers.

  1. Inventory configs, gateway keys, provider credentials, and policies.
  2. Map retries, routing, budgets, and guardrails.
  3. Verify request shaping, streaming, and error handling against your app.

Create an OmniSwitch gateway API key. The SDK sends it as Authorization: Bearer <OmniSwitch key>. Provider credentials stay in the gateway; do not reuse your competitor platform key.

Pilot with the OpenAI Python SDKPython
import os
from openai import OpenAI

client = OpenAI(
    base_url="http://localhost:8080/v1",
    api_key=os.environ["OMNISWITCH_KEY"],
)
response = client.chat.completions.create(
    model="gpt-4o-mini",
    messages=[{"role": "user", "content": "Hello"}],
)
print(response.choices[0].message.content)
Pilot with the OpenAI Node SDKJavaScript
import OpenAI from "openai";

const client = new OpenAI({
  baseURL: "http://localhost:8080/v1",
  apiKey: process.env.OMNISWITCH_KEY,
});
const response = await client.chat.completions.create({
  model: "gpt-4o-mini",
  messages: [{ role: "user", content: "Hello" }],
});
console.log(response.choices[0].message.content);

Map headers explicitly

  • x-omniswitch-providerMap your Portkey equivalent here.
  • x-omniswitch-configMap your Portkey equivalent here.
  • x-omniswitch-trace-idMap your Portkey equivalent here.
  • x-omniswitch-session-idMap your Portkey equivalent here.
  • x-omniswitch-shadow-providerMap your Portkey equivalent here.

Chat selects its model with the JSON model field. The x-omniswitch-model header is an A2A selector, not a chat model override.

Read Portkey’s header documentation and the OmniSwitch header reference. Custom header conventions, automatic configuration import, gateway-key import, and direct Anthropic SDK header support are not implied.

Pilot representative blocking and streaming calls, tools, errors, retries, metadata, and observability. Keep the original gateway available until your app-level tests pass.

Dated market context

Portkey → Palo Alto Networks

Palo Alto Networks completed its acquisition of Portkey on 29 May 2026. Review the current product editions and terms, not older SaaS-only comparisons.

Source · accessed 2026-10-09

Sources & methodology

  1. [1]

    OmniSwitch

    Product register a8a594b. Cells reflect registered source claims, not roadmap plans or release-artifact availability; each retains its own verified date and version.

    Read 18 cited sources
  2. [3]

    Portkey

    OSS gateway; cloud shown separately. Capability-specific documentation and dated editorial sources remain separate from independent testing.

    Read 8 cited sources

Supported means documented within the named capability and deployment scope, not full product parity. Beta and licensed editions are shown when the register supplies a qualifier. Not verified describes an evidence gap, not absence. Claims come from the pinned register; cells have no scores or totals. This is a dated documentation review, not a performance test or a security certification. See the benchmark methodology.