Audra Flow

API Reference

This reference covers every REST endpoint exposed by Audra Flow. All endpoints return JSON and follow a consistent response envelope.

Base URL

EnvironmentBase URL
Developmenthttp://localhost:3001/api
Productionhttps://your-domain.com/api

Authentication

All endpoints (except the authentication endpoints themselves) require a valid JWT bearer token in the Authorization header:

Authorization: Bearer <token>

Tokens are obtained by calling the login endpoint and include the user's roles and permissions. Audra Flow also supports Azure AD SSO for enterprise environments.

Authentication Endpoints

MethodEndpointDescription
POST/api/authAuthenticate with email and password. Returns a JWT token and user profile.
POST/api/auth/azureAuthenticate with an Azure AD access token. Returns the same response format.

Projects

Projects are the top-level containers in Audra Flow. Each project has its own workspace with isolated artifacts, members, and permissions.

MethodEndpointDescription
GET/api/projectsList projects. Supports page, pageSize, status, type, and search query parameters.
POST/api/projectsCreate a new project with name, description, type, and deadline.
GET/api/projects/:projectIdRetrieve a single project with member and artifact counts.
PATCH/api/projects/:projectIdUpdate project fields (name, description, status, deadline).
DELETE/api/projects/:projectIdDelete a project and all associated data.

Discovery Artifacts

Discovery is the first phase of the delivery playbook. These endpoints manage goals, stakeholder interviews, and competitor analysis.

MethodEndpointDescription
GET / POST/api/projects/:projectId/goalsList or create project goals with priorities and KPIs.
GET / PATCH / DELETE/api/projects/:projectId/goals/:idRetrieve, update, or delete a specific goal.
GET / POST/api/projects/:projectId/interviewsList or create stakeholder interview records.
GET / PATCH / DELETE/api/projects/:projectId/interviews/:idManage a single interview.
GET / POST/api/projects/:projectId/competitorsList or create competitor analysis entries.
GET / PATCH / DELETE/api/projects/:projectId/competitors/:idManage a single competitor entry.

Definition Artifacts

Definition artifacts capture user personas, use cases, journeys, service maps, and storyboards.

MethodEndpointDescription
GET / POST/api/projects/:projectId/personasList or create user personas with demographics and behaviours.
GET / POST/api/projects/:projectId/usecasesList or create use cases with flows and exception paths.
GET / POST/api/projects/:projectId/journeysList or create user journey maps with phases.
GET / POST/api/projects/:projectId/servicemapsList or create service blueprint maps.
GET / POST/api/projects/:projectId/storyboardsList or create visual storyboard frames.

Each artifact type also supports GET, PATCH, and DELETE on the /:id sub-path for individual record management.

Design & Delivery Artifacts

These endpoints cover user stories, knowledge-base documents, and the delivery workflow.

MethodEndpointDescription
GET / POST/api/projects/:projectId/storiesList or create user stories with acceptance criteria.
GET / PATCH / DELETE/api/projects/:projectId/stories/:idManage a single story.
GET / POST/api/projects/:projectId/documentsList or upload knowledge-base documents for AI context.
GET / DELETE/api/projects/:projectId/documents/:idRetrieve or remove a document.

AI & Product Guru

The AI endpoints power conversations, document processing, and automated project analysis through the Product Guru.

MethodEndpointDescription
GET / POST/api/projects/:projectId/conversationsList or start RAG-powered conversations within a project.
GET / DELETE/api/projects/:projectId/conversations/:idRetrieve or delete a conversation with its message history.
GET/api/projects/:projectId/recommendationsRetrieve Product Guru recommendations. Filter by type, priority, or status.
POST/api/projects/:projectId/recommendationsTrigger a new Product Guru analysis. Returns recommendations with coverage scores across delivery phases.

Administration

Users

MethodEndpointDescription
GET/api/usersList users. Supports page, pageSize, and search.
POST/api/usersInvite a new user with an email, name, and role.
GET / PATCH / DELETE/api/users/:idRetrieve, update, or remove a user account.

Roles & Permissions

MethodEndpointDescription
GET / POST/api/rolesList or create roles with associated permission sets.
GET / PATCH / DELETE/api/roles/:idManage a single role definition.
GET/api/permissionsList all available permissions, grouped by resource (project, document, artifact).

Templates

MethodEndpointDescription
GET / POST/api/templatesList or create versioned artifact templates. Filter by category, search, or isActive.
GET / PATCH / DELETE/api/templates/:idManage a single template.
GET / POST/api/templates/:id/versionsList or create new versions for a template.

Response Format

All successful responses use a consistent envelope:

{
  "success": true,
  "data": { ... },
  "meta": {
    "pagination": {
      "total": 100,
      "page": 1,
      "pageSize": 20,
      "totalPages": 5
    }
  }
}

The meta.pagination field is included on list endpoints that support pagination.

Error Format

Errors follow the same envelope with an error object:

{
  "success": false,
  "error": {
    "code": "VALIDATION_ERROR",
    "message": "Human-readable description of the error",
    "details": { ... }
  }
}

Error Codes

CodeHTTP StatusDescription
BAD_REQUEST400The request is malformed or missing required fields.
UNAUTHORIZED401Authentication is required or the token is invalid.
FORBIDDEN403The authenticated user lacks permission for this action.
NOT_FOUND404The requested resource does not exist.
CONFLICT409A resource with the same identifier already exists.
VALIDATION_ERROR422One or more fields failed validation.
RATE_LIMITED429Too many requests. Retry after the reset window.
INTERNAL_ERROR500An unexpected server error occurred.

Rate Limiting

API requests are rate-limited to protect service stability:

ContextLimit
Authenticated users100 requests per minute
Unauthenticated requests10 requests per minute

Rate limit status is communicated via response headers:

X-RateLimit-Limit: 100
X-RateLimit-Remaining: 95
X-RateLimit-Reset: 1640995200

Next Steps