Skip to content

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  /readyz

pulse-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  /readyz

pulse-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  /readyz

ai-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  /readyz

pulse-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  /swagger

pulse-notifications

POST /v1/welcome
POST /v1/email
POST /v1/alert

GET  /healthz

Tenant 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) callback

JSON-RPC (/web/dataset/call_kw) is blocked by auth_session_timeout for unauthenticated callers. Use XML-RPC.

Authentik

Domain: auth.planapulse.com

EndpointUse
/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 endpoint

Admin (Authentik-protected):

/  (UI)
/index.php?module=...           # most admin paths

pulse-events event types

The catalog of event types on the PLANA:events Redis Stream is in Services → pulse-events.

Where to read more

© PLANA Digital Ltd.