Unified action layer
for AI agents.
APIs where they exist. Browser automation where they don't. One SDK, one auth flow, one bill — for every integration your agent needs to actually do something.
from portals_engine import Client
client = Client(api_key="sk_live_...")
client.execute(
integration="notion",
action="create_page",
input={"parent_page_id": "...", "title": "Hello"},
)
Used by agents built on
How it works
Three tiers, one SDK shape.
Pricing scales with cost-to-operate. We use the cheapest, most reliable mechanism available for each app — and tell you exactly which one.
Official APIs
Wrapped, OAuth-managed, retry-aware. The boring path that just works.
- Notion, Slack, GitHub, Linear, Stripe, Discord
- OAuth flows handled end-to-end
- Read-after-write verification
Reverse-engineered endpoints
For apps that gimp their public API. Same SDK shape — we eat the maintenance cost.
- Internal endpoints, monitored upstream
- Auto-pinned schema versions
- Public reliability metrics on /status
Browser automation
When all else fails. Deterministic selectors with LLM fallback, every run rrweb-replayed.
- CDP-driven, anti-bot resistant
- rrweb session replays for every run
- LLM recovery when selectors drift
Catalog
Live integrations.
Pulled from /v1/integrations
on whatever portals origin you point at. New integrations appear here the
moment they're registered server-side.
Pricing
Pay for actions, not seats.
An action is one successful integration call. Failures don't count. Overage rate depends on the tier the integration runs at.
Team
50,000 actions
- 95% SLA
- Priority support
- Replay history retention
Business
250,000 actions
- 98% SLA
- Dedicated Slack channel
- Custom integrations on request
Enterprise
Volume pricing
- SSO + audit logs
- Dedicated infra
- BYO integrations
- Negotiated SLA
Overage by tier: API $0.005 / RE $0.02 / Browser $0.08 per action.
Start building in two minutes.
Sign up with email + password. Mint your first API key from the dashboard the moment you're in — no card, no call, no calendar invite.