# Portkey vs Pydantic AI

**Leader by Vioscale score:** Portkey

| Attribute | Portkey | Pydantic AI |
|---|---|---|
| **Vioscale score** | 78.9 (76% (high)) | 67.6 (69% (medium)) |
| activity.commits_last_30d | - | 100 |
| adoption.dependent_repos | - | 0 |
| adoption.github_stars | - | 19,517 |
| adoption.package_downloads_weekly | - | 3,171,945 |
| deployment.options | `{"cloud":true,"hybrid":true,"self_hosted":true}` | `{"cloud":true,"self_hosted":true}` |
| description.long | A unified platform combining an AI gateway, observability dashboards, prompt versioning, governance controls, and guardrails. Enables teams to route requests across LLM providers, monitor costs and performance, securely manage API keys, and deploy production-ready prompts with version control. | A comprehensive toolkit combining an open-source Python agent development framework with a managed observability platform designed specifically for AI applications, including monitoring, evaluation, and LLM gateway capabilities. |
| features.capabilities | `{"role":"gateway","caching":"semantic","evaluation":true,"open_source":true,"soc2_type_ii":true,"managed_cloud":true,"model_serving":true,"pricing_model":"pay_per_10k_traces","rate_limiting":true,"self_hostable":true,"multi_provider":true,"vpc_deployment":true,"deployment_model":"managed-SaaS","no_train_on_data":"unknown","routing_strategy":"load-based","llm_observability":true,"prompt_management":true,"architecture_model":"managed_cloud_saas","automatic_failover":true,"framework_agnostic":true,"experiment_tracking":true,"budget_spend_controls":true,"guardrails_moderation":"via-integration","openai_compatible_api":true,"virtual_key_management":true,"request_cost_observability":true,"mit_or_apache_permissive_oss_license":true,"production_ab_testing_of_system_prompts":true,"token_cost_and_latency_waterfall_charts":true,"pii_redaction_and_prompt_content_masking":true,"prompt_playground_and_in_dashboard_replay":true,"multi_step_agentic_workflow_distributed_tracing":true,"user_feedback_score_api_for_thumbs_up_down_tags":true,"native_integration_with_langchain_and_llamaindex":true}` | `{"role":"observability","evaluation":true,"soc2_type_ii":true,"managed_cloud":true,"model_serving":true,"self_hostable":true,"multi_provider":true,"vpc_deployment":true,"otel_compatible":true,"no_train_on_data":"unknown","llm_observability":true,"prompt_management":true,"framework_agnostic":true,"experiment_tracking":true,"mit_or_apache_permissive_oss_license":true,"native_observability_and_trace_logging":true,"fault_tolerance_and_llm_retry_mechanisms":true,"tool_calling_and_function_schema_validation":true,"managed_cloud_runtime_infrastructure_offered":true,"synchronous_and_asynchronous_execution_modes":true,"streaming_output_and_intermediate_step_yielding":true,"dynamic_agent_generation_and_spawning_at_runtime":true}` |
| integrations.count | 1,600 | 7 |
| integrations.list | `[{"name":"OpenAI"},{"name":"Google Cloud (Vertex AI, Gemini)"},{"name":"Azure"},{"name":"AWS"},{"name":"GCP"},{"name":"Langgraph"},{"name":"CrewAI"},{"name":"Strands Agents"},{"name":"Google ADK"},{"name":"Anthropic"},{"name":"Claude"},{"name":"Mistral"},{"name":"Google"},{"name":"MongoDB"},{"name":"Vertex AI"}]` | `[{"name":"Pydantic AI"},{"name":"Pydantic Evals"},{"name":"OpenTelemetry"},{"name":"Model Context Protocol (MCP)"},{"name":"Snowflake"},{"name":"FastAPI"},{"name":"OpenAI"},{"name":"LangChain"},{"name":"HuggingFace"},{"name":"Prefect"}]` |
| language.primary | - | Python |
| license.spdx | - | MIT |
| market.availability | `{"primaryMarkets":[],"availabilityScope":"global","availableCountries":[],"notAvailableCountries":[]}` | `{"primaryMarkets":[],"availabilityScope":"global","availableCountries":[],"notAvailableCountries":[]}` |
| platform.support | `{"web":true}` | `{"cli":true,"web":true}` |
| pricing | `{"type":"hybrid","plans":[{"free":true,"name":"Developer","summary":"Free forever, 10k logs/month","features":["Universal API & Key Management","Routing, Fallbacks, Load Balancing, Retries","3 Prompt Templates with Playground, Versioning, Variables","Logs, Traces, Feedback, Custom Metadata, Filters","Simple Caching","Deterministic Guardrails","Community Support","3 days log retention, 30 days metrics retention"],"components":[{"kind":"fixed","amount":0,"period":"month","currency":"USD"}],"description":"Free tier for prototyping and testing; not suitable for production workloads","contactSales":false,"includedLimits":{"recorded_logs":"10k/month"}},{"free":false,"name":"Production","summary":"$49/month + $9 per 100k request overage","features":["Universal API, Fallbacks, Load Balancing, Retries","Unlimited Prompt Templates with Playground, API Deployment, Versioning, Variables","Logs, Traces, Feedback, Metadata, Filters, Alerts","LLM & Partner Guardrails","Role-Based Access Control, Service Account API Keys","Simple & Semantic Caching","Production Support","30 days log retention, 90 days metrics retention"],"commitment":"monthly","components":[{"kind":"fixed","amount":49,"period":"month","currency":"USD"},{"per":{"qty":100000,"unit":"requests"},"kind":"metered","amount":9,"currency":"USD"}],"description":"For teams deploying LLM apps to production","contactSales":false,"includedLimits":{"recorded_logs":"100k/month"}},{"free":false,"name":"Enterprise","summary":"Custom pricing","features":["Custom retention periods for logs and metrics","Advanced Evaluation Templates with custom guardrail hooks","Role-Based Access Control, SSO (Okta), Granular Budget & Rate Limits","Private Cloud Deployment, VPC Hosting, Data Export to Data Lakes","SOC2 Type 2, GDPR, HIPAA compliance certifications","Custom Business Associate Agreements","Data Isolation, Configurable exports to data lakes","Dedicated Onboarding & Priority Support"],"description":"For organizations with complex compliance and high-volume production requirements","contactSales":true,"includedLimits":{"recorded_logs":"10M+/month"}}],"summary":"Free tier with 10k logs/month. Production at $49/month with usage overages. Enterprise custom pricing for compliance-focused organizations.","currency":"USD","freeTier":true,"sourceUrl":"https://portkey.ai/pricing","retrievedAt":"2026-08-21T13:46:13.229Z","startingPrice":{"amount":49,"period":"month","currency":"USD"},"billingPeriods":["month"]}` | `{"type":"hybrid","plans":[{"free":true,"name":"Personal","summary":"Free, 10M spans/month","features":["10M spans per month included","Hard cap to prevent bill shock"],"minSeats":1,"commitment":"monthly","components":[{"kind":"fixed","amount":0,"period":"month","currency":"USD"}],"description":"For solo developers","contactSales":false,"includedLimits":{"spans":"10M/month"}},{"free":false,"name":"Team","summary":"$49/month base + $2.00 per million spans overage","features":["Base subscription included","Overage billing at flat rate per span"],"commitment":"monthly","components":[{"kind":"fixed","amount":49,"period":"month","currency":"USD"},{"per":{"qty":1000000,"unit":"spans"},"kind":"metered","amount":2,"currency":"USD"}],"description":"For growing teams","contactSales":false},{"free":false,"name":"Growth","summary":"$249/month base + $2.00 per million spans overage","features":["No seat limits","Overage billing at flat rate per span","Unrestricted team access"],"commitment":"monthly","components":[{"kind":"fixed","amount":249,"period":"month","currency":"USD"},{"per":{"qty":1000000,"unit":"spans"},"kind":"metered","amount":2,"currency":"USD"}],"description":"For organizations","contactSales":false}],"summary":"Free tier (10M spans/month) or paid plans starting at $49/month with usage-based overage at $2 per million spans","currency":"USD","freeTier":true,"sourceUrl":"https://pydantic.dev/articles/ai-observability-pricing-comparison","retrievedAt":"2026-08-21T13:44:18.042Z","startingPrice":{"amount":49,"period":"month","currency":"USD"},"billingPeriods":["month"]}` |
| pricing.free_tier | yes | yes |
| pricing.model | freemium | commercial |
| pricing.price_level | mid | mid |
| pricing.starting_price | `{"amount":49,"currency":"USD"}` | `{"amount":49,"currency":"USD"}` |
| pricing.transparent | yes | yes |
| release.cadence_days | - | 1 |
| release.history | - | `[{"url":"https://github.com/pydantic/pydantic-ai/releases/tag/v2.35.0","date":"2026-08-26T01:31:01Z","type":"stable","version":"v2.35.0"},{"url":"https://github.com/pydantic/pydantic-ai/releases/tag/v2.34.0","date":"2026-08-25T01:47:18Z","type":"stable","version":"v2.34.0"},{"url":"https://github.com/pydantic/pydantic-ai/releases/tag/v2.33.0","date":"2026-08-21T04:53:40Z","type":"stable","version":"v2.33.0"},{"url":"https://github.com/pydantic/pydantic-ai/releases/tag/v2.32.2","date":"2026-08-21T02:56:32Z","type":"stable","version":"v2.32.2"},{"url":"https://github.com/pydantic/pydantic-ai/releases/tag/v2.32.1","date":"2026-08-20T02:11:05Z","type":"stable","version":"v2.32.1"},{"url":"https://github.com/pydantic/pydantic-ai/releases/tag/v2.32.0","date":"2026-08-19T03:51:35Z","type":"stable","version":"v2.32.0"},{"url":"https://github.com/pydantic/pydantic-ai/releases/tag/v2.31.1","date":"2026-08-18T03:26:00Z","type":"stable","version":"v2.31.1"},{"url":"https://github.com/pydantic/pydantic-ai/releases/tag/v2.31.0","date":"2026-08-15T03:04:46Z","type":"stable","version":"v2.31.0"},{"url":"https://github.com/pydantic/pydantic-ai/releases/tag/v2.30.0","date":"2026-08-14T02:57:54Z","type":"stable","version":"v2.30.0"},{"url":"https://github.com/pydantic/pydantic-ai/releases/tag/v1.107.5","date":"2026-08-14T02:57:59Z","type":"stable","version":"v1.107.5"},{"url":"https://github.com/pydantic/pydantic-ai/releases/tag/v2.29.0","date":"2026-08-13T04:02:53Z","type":"stable","version":"v2.29.0"},{"url":"https://github.com/pydantic/pydantic-ai/releases/tag/v1.107.4","date":"2026-08-12T03:39:33Z","type":"stable","version":"v1.107.4"},{"url":"https://github.com/pydantic/pydantic-ai/releases/tag/v2.28.0","date":"2026-08-12T02:04:43Z","type":"stable","version":"v2.28.0"},{"url":"https://github.com/pydantic/pydantic-ai/releases/tag/v2.27.1","date":"2026-08-11T02:41:56Z","type":"stable","version":"v2.27.1"},{"url":"https://github.com/pydantic/pydantic-ai/releases/tag/v2.27.0","date":"2026-08-08T03:51:40Z","type":"stable","version":"v2.27.0"},{"url":"https://github.com/pydantic/pydantic-ai/releases/tag/v1.107.2","date":"2026-08-08T03:16:08Z","type":"stable","version":"v1.107.2"},{"url":"https://github.com/pydantic/pydantic-ai/releases/tag/v2.26.0","date":"2026-08-07T03:14:39Z","type":"stable","version":"v2.26.0"},{"url":"https://github.com/pydantic/pydantic-ai/releases/tag/v2.25.0","date":"2026-08-06T02:57:33Z","type":"stable","version":"v2.25.0"},{"url":"https://github.com/pydantic/pydantic-ai/releases/tag/v2.24.0","date":"2026-08-05T02:12:06Z","type":"stable","version":"v2.24.0"},{"url":"https://github.com/pydantic/pydantic-ai/releases/tag/v2.23.0","date":"2026-08-04T01:47:02Z","type":"stable","version":"v2.23.0"}]` |
| reliability.status_page | yes | - |
| security.disclosure_policy | - | yes |
| security.gdpr | yes | yes |
| security.hipaa | yes | yes |
| security.iso27001 | yes | - |
| security.soc2 | yes | yes |
| security.vulnerabilities | - | `{"count":0,"source":"https://advisories.ecosyste.ms/api/v1/advisories?ecosystem=npm&package_name=%40pydantic%2Fmcp-run-python&per_page=100","last_12m":0,"max_severity":null}` |

## Capabilities (MLOps & LLMOps Tools)

| Capability | Portkey | Pydantic AI |
|---|:--:|:--:|
| **Core** |  |  |
| Tool role | Model gateway / router | LLM observability / eval |
| **Deployment** |  |  |
| Self-hostable / OSS core | ✓ | ✓ |
| Managed cloud available | ✓ | ✓ |
| On-prem / VPC deployment | ✓ | ✓ |
| **Observability** |  |  |
| LLM tracing / observability | ✓ | ✓ |
| Evaluation (offline / LLM-judge / human) | ✓ | ✓ |
| **Dev** |  |  |
| Prompt management + versioning | ✓ | ✓ |
| **Tracking** |  |  |
| Experiment tracking / model registry | ✓ | ✓ |
| **Serving** |  |  |
| Model serving / inference endpoint | ✓ | ✓ |
| **Interop** |  |  |
| OpenTelemetry / OpenLLMetry compatible | - | ✓ |
| Framework-agnostic | ✓ | ✓ |
| **Gateway** |  |  |
| Multi-provider model support | ✓ | ✓ |
| **Data** |  |  |
| No-train-on-customer-data guarantee | Unknown | Unknown |

*Source: Vioscale. Generated 2026-09-01T16:31:18.974Z. "-" = undocumented, not absent.*
