API index
Audience
PLANA staff, integration partners. Customer-facing API documentation lives at Plana Business Cloud → API access and BOS → Settings → API keys.
A flat catalogue of every HTTP endpoint exposed by a PLANA service. Grouped by service.
pulse-account-api (port 3000)
Domain: my.planapulse.ai/api
POST /api/auth/login
POST /api/auth/logout
GET /api/auth/oidc/start
GET /api/auth/oidc/callback
GET /api/auth/me
POST /api/auth/refresh
GET /api/portal/profile
PUT /api/portal/profile
GET /api/portal/subscription
GET /api/portal/integrations
GET /api/portal/team
POST /api/portal/team/invite
GET /api/portal/settings
PUT /api/portal/settings
GET /api/portal/apikeys
POST /api/portal/apikeys
DELETE /api/portal/apikeys/:id
GET /api/portal/odoo/:slug/kpis
GET /api/portal/odoo/:slug/cashflow
GET /api/portal/odoo/:slug/alerts
GET /api/banking/adapters
POST /api/banking/:bankId/consent
GET /api/banking/:bankId/consent/:consentId
GET /api/banking/:bankId/accounts
GET /api/banking/:bankId/accounts/:id/transactions
POST /api/agents/:agentId/chat
POST /api/agents/:agentId/chat/stream
GET /api/agents/:agentId/executions
GET /api/billing/invoices
GET /api/billing/invoices/:id
POST /api/webhooks/provisioned
POST /api/webhooks/stripe
GET /healthz
GET /readyzpulse-banking (port 3200)
In-cluster: pulse-banking.pulse-banking:3200
GET /banking/adapters
POST /banking/:bankId/consent
GET /banking/:bankId/consent/:consentId
GET /banking/:bankId/accounts
GET /banking/:bankId/accounts/:accountId/transactions
GET /banking/:bankId/accounts/:accountId/balance
GET /healthz
GET /readyzpulse-events (port 3001)
In-cluster: pulse-events.pulse-events:3001
POST /api/v1/events
POST /api/v1/events/groups/:group
GET /api/v1/events/info
GET /api/v1/status
GET /healthz
GET /readyzai-agents (port 8000)
In-cluster: ai-agents.ai-bos-agent:8000
POST /agents/{agent_id}/chat
POST /agents/{agent_id}/chat/stream
GET /agents/{agent_id}/executions
GET /healthz
GET /readyzpulse-auth (port 8000)
In-cluster: pulse-auth.pulse-auth:8000
POST /api/v1/auth/login
POST /api/v1/auth/refresh
GET /api/v1/status
GET /swaggerpulse-notifications
POST /v1/welcome
POST /v1/email
POST /v1/alert
GET /healthzTenant Odoo (XML-RPC)
Per-tenant: https://<slug>.planapulse.app
POST /xmlrpc/2/common # authenticate, version
POST /xmlrpc/2/object # execute_kw — ORM operations
GET /web/health # Kubernetes-style probe
GET /web/login # login page (HTML)
POST /auth_oauth/signin # OIDC callback (plana_auth)
GET /plana/saas/tiers # plana_saas
GET /plana/saas/tier/<code>/modules
GET /plana/saas/subscription/<sub>
POST /plana/saas/job/<id>/update # orchestrator (legacy) callback
POST /plana/saas/backup/callback # orchestrator (legacy) callbackJSON-RPC (/web/dataset/call_kw) is blocked by auth_session_timeout for unauthenticated callers. Use XML-RPC.
Authentik
Domain: auth.planapulse.com
| Endpoint | Use |
|---|---|
/application/o/authorize/ | OIDC authorize |
/application/o/token/ | OIDC token |
/application/o/userinfo/ | OIDC userinfo |
/application/o/jwks/ | JWKS for signature verification |
/api/v3/... | Authentik API (admin) |
/source/oauth/callback/google/ | Google federation callback |
Matomo
Public:
GET /matomo.js # tracker script
POST /matomo.php # tracking endpointAdmin (Authentik-protected):
/ (UI)
/index.php?module=... # most admin pathspulse-events event types
The catalog of event types on the PLANA:events Redis Stream is in Services → pulse-events.
Where to read more
- PLANA Business Cloud → API access — customer-facing API
- BOS → API keys — workspace key model
- Services — per-service detail
- pulse-events — event bus catalog