Skip to main content

Core API reference

Use this page as the API hub for Narrative SDK v1.5.
OpenAPI Explorer is the primary endpoint contract source. The API guide pages focus on integration workflow and implementation recommendations.

Start here

Endpoint catalog

Authentication

EndpointDescriptionAuthRequired input200 response
POST /api/auth/loginAuthenticate user and issue tokens.NoBody: email, passwordaccessToken, refreshToken, userId, tenantId
POST /api/auth/refreshRotate access and refresh tokens.NoBody: refreshTokenaccessToken, refreshToken
POST /api/auth/logoutInvalidate current user session.YesNoneok
GET /api/auth/meReturn authenticated user scope.YesNoneuserId, tenantId, email

Coach

EndpointDescriptionAuthRequired input200 response
GET /api/coach/bootstrapLoad initial coach state.YesNonesession object
POST /api/chat/session/createCreate a new chat session.YesBody: chatType, userIdsessionId, chatType, createdAt
POST /api/chat/sendSend a message and receive SSE stream.YesBody: sessionId, userId, payloadType, payloadSSE stream accepted

Money

EndpointDescriptionAuthRequired input200 response
GET /api/money/metricsReturn summary metric cards.YesQuery: asOfDate (YYYY-MM-DD)asOfDate, currency, cards[]
GET /api/money/actionsReturn prioritized action list.YesQuery: asOfDate (YYYY-MM-DD)items[]
POST /api/money/action/status/setUpdate money action status.YesBody: userId, insightId, status; optional reasonok, insightId, status

Growth

EndpointDescriptionAuthRequired input200 response
GET /api/growth/oppsReturn growth opportunities.YesQuery: asOfDate (YYYY-MM-DD)asOfDate, items[]
POST /api/projects/from_oppCreate project from opportunity.YesBody: insightIdprojectId, insightId, isActive

Integrations

EndpointDescriptionAuthRequired input200 response
GET /api/integrationsList user integrations.YesOptional query: integration_typeintegrations[]
POST /api/integrations/saltedge/connectStart SaltEdge connection flow.YesNoneconnect_url

Error model

Common error payload for 400, 401, 404, 429, and 500 responses:
{
  "detail": "Unauthorized",
  "request_id": "req_abc123"
}