Your app was built for humans. Point Ejector at a codebase, a platform, or any live URL — it gives AI agents a clean, typed API to do everything your UI can: read data, change settings, even make payments. Agents call a real API, not a browser.
repo · platform · or any URL → analyze → agents online in minutes
Works with the stacks, platforms & auth you already use
Across five different stacks, Ejector extracted 0 callable operations — including the actions that have no public API and were only ever reachable through the UI.
Point Ejector at a GitHub repo, a platform like Shopify or Stripe, or any live URL. It detects the stack and maps every endpoint, server action, and database query.
Verify your domain, then choose exactly what agents can reach. Server-side keys are encrypted at rest (AES-256-GCM) — or self-host the proxy so they never leave your servers.
Get an OpenAPI spec and an MCP server. Any agent — Claude, Cursor, GPT — authenticates as a real user and does anything the UI can do.
Point at a GitHub repo. AST analysis extracts tRPC, Next.js routes, server actions, DB queries, GraphQL, and Python backends.
Shopify, Stripe, Notion, WordPress and more — auto-detected from the URL. Their official API, wrapped as agent tools.
No repo, no problem. A headless browser navigates the live app and reverse-engineers the API from real traffic.
Drop one snippet into your app. Each customer signs in — or signs up — with their own login and gets a personal agent connection. Their AI does everything they could in your app, acting only as them. Per-customer keys, full isolation, instant revoke. Usage bills to you.
<!-- one line in your app -->
<script src="https://ejector.dev/embed.js"
data-ejector-key="ej_pub_…"
data-label="Connect your AI agent" defer></script>Your agent logs in with the user's own credentials and calls clean functions. Under the hood Ejector handles cookies, CSRF, sessions, and tokens — whatever the app needs.
# one key. Ejector injects the user's session
# and forwards to your live app.
$ curl -X POST https://ejector.dev/api/proxy/<id> \
-H "Authorization: Bearer ejector_…" \
-d '{"endpoint":"/api/checkout","method":"POST",
"body":{"plan":"pro"}}'
→ { "status": 200, "data": { "url":
"https://checkout.stripe.com/…" } }Connect your first app in two minutes. Everything your UI does becomes a clean API call.