{"openapi":"3.1.0","info":{"title":"Vindaris AI Tools API","version":"1.0.0","description":"REST API for AI assistants to interact with a Vindaris workspace. Supports the same tools as the MCP server, accessible via standard HTTP. Authenticate with a personal API token (Bearer mcp_...)."},"servers":[{"url":"https://app.vindaris.com"}],"paths":{"/api/ai/tools/list_tasks":{"post":{"operationId":"list_tasks","summary":"List tasks in the workspace with optional filters (status, priority, assignee, project, search). Returns paginated results.","tags":["task"],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"status":{"type":"string","description":"Filter by status: TODO, IN_PROGRESS, DONE, BLOCKED, ARCHIVED"},"priority":{"type":"string","description":"Filter by priority: LOW, MEDIUM, HIGH, URGENT"},"assigneeId":{"type":"string","description":"Filter by assignee user ID"},"initiativeId":{"type":"string","description":"Filter by project (initiative) ID"},"search":{"type":"string","description":"Full-text search in title and description"},"page":{"type":"number","description":"Page number (default 1)"},"pageSize":{"type":"number","description":"Results per page (default 50, max 100)"}}}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean"},"data":{"type":"object"}}}}}},"401":{"description":"Unauthorized — invalid or missing Bearer token"},"403":{"description":"Forbidden — tool not enabled for this user or org"},"404":{"description":"Tool not found"},"500":{"description":"Internal server error"}},"security":[{"bearerAuth":[]}]}},"/api/ai/tools/get_task":{"post":{"operationId":"get_task","summary":"Get a single task by ID with full details including comments, history, and alignment info.","tags":["task"],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"taskId":{"type":"string","description":"The task ID"}},"required":["taskId"]}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean"},"data":{"type":"object"}}}}}},"401":{"description":"Unauthorized — invalid or missing Bearer token"},"403":{"description":"Forbidden — tool not enabled for this user or org"},"404":{"description":"Tool not found"},"500":{"description":"Internal server error"}},"security":[{"bearerAuth":[]}]}},"/api/ai/tools/create_task":{"post":{"operationId":"create_task","summary":"Create a new task. Title is required. Optionally set status, priority, assignee, project, due date, and description.","tags":["task"],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"title":{"type":"string","description":"Task title (required)"},"description":{"type":"string","description":"Task description"},"status":{"type":"string","description":"Status: TODO, IN_PROGRESS, DONE, BLOCKED"},"priority":{"type":"string","description":"Priority: LOW, MEDIUM, HIGH, URGENT"},"assigneeId":{"type":"string","description":"User ID to assign the task to"},"initiativeId":{"type":"string","description":"Project (initiative) ID to link the task to"},"dueDate":{"type":"string","description":"Due date in ISO 8601 format"},"startDate":{"type":"string","description":"Start date in ISO 8601 format"}},"required":["title"]}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean"},"data":{"type":"object"}}}}}},"401":{"description":"Unauthorized — invalid or missing Bearer token"},"403":{"description":"Forbidden — tool not enabled for this user or org"},"404":{"description":"Tool not found"},"500":{"description":"Internal server error"}},"security":[{"bearerAuth":[]}]}},"/api/ai/tools/update_task":{"post":{"operationId":"update_task","summary":"Update an existing task. Pass only the fields you want to change.","tags":["task"],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"taskId":{"type":"string","description":"The task ID (required)"},"title":{"type":"string","description":"New title"},"description":{"type":"string","description":"New description"},"status":{"type":"string","description":"New status: TODO, IN_PROGRESS, DONE, BLOCKED"},"priority":{"type":"string","description":"New priority: LOW, MEDIUM, HIGH, URGENT"},"assigneeId":{"type":"string","description":"User ID to assign to (null to unassign)"},"initiativeId":{"type":"string","description":"Project ID to link to (null to unlink)"},"dueDate":{"type":"string","description":"New due date in ISO 8601 (null to clear)"},"startDate":{"type":"string","description":"New start date in ISO 8601 (null to clear)"}},"required":["taskId"]}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean"},"data":{"type":"object"}}}}}},"401":{"description":"Unauthorized — invalid or missing Bearer token"},"403":{"description":"Forbidden — tool not enabled for this user or org"},"404":{"description":"Tool not found"},"500":{"description":"Internal server error"}},"security":[{"bearerAuth":[]}]}},"/api/ai/tools/list_goals":{"post":{"operationId":"list_goals","summary":"List goals in the workspace with optional filters (status, type, owner).","tags":["goal"],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"status":{"type":"string","description":"Filter by status: ACTIVE, COMPLETED, CANCELLED, DRAFT"},"type":{"type":"string","description":"Filter by type: OUTCOME, OUTPUT"},"mine":{"type":"boolean","description":"Only show goals owned by the current user"}}}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean"},"data":{"type":"object"}}}}}},"401":{"description":"Unauthorized — invalid or missing Bearer token"},"403":{"description":"Forbidden — tool not enabled for this user or org"},"404":{"description":"Tool not found"},"500":{"description":"Internal server error"}},"security":[{"bearerAuth":[]}]}},"/api/ai/tools/get_goal":{"post":{"operationId":"get_goal","summary":"Get a single goal by ID with full details including owner, team, co-owners, and linked task count.","tags":["goal"],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"goalId":{"type":"string","description":"The goal ID"}},"required":["goalId"]}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean"},"data":{"type":"object"}}}}}},"401":{"description":"Unauthorized — invalid or missing Bearer token"},"403":{"description":"Forbidden — tool not enabled for this user or org"},"404":{"description":"Tool not found"},"500":{"description":"Internal server error"}},"security":[{"bearerAuth":[]}]}},"/api/ai/tools/create_goal":{"post":{"operationId":"create_goal","summary":"Create a new goal. Title is required.","tags":["goal"],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"title":{"type":"string","description":"Goal title (required)"},"description":{"type":"string","description":"Goal description"},"type":{"type":"string","description":"Goal type: OUTCOME or OUTPUT"},"status":{"type":"string","description":"Status: ACTIVE, DRAFT"},"ownerId":{"type":"string","description":"User ID of the goal owner"},"teamId":{"type":"string","description":"Team ID"},"startDate":{"type":"string","description":"Start date in ISO 8601"},"dueDate":{"type":"string","description":"Due date in ISO 8601"}},"required":["title"]}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean"},"data":{"type":"object"}}}}}},"401":{"description":"Unauthorized — invalid or missing Bearer token"},"403":{"description":"Forbidden — tool not enabled for this user or org"},"404":{"description":"Tool not found"},"500":{"description":"Internal server error"}},"security":[{"bearerAuth":[]}]}},"/api/ai/tools/update_goal":{"post":{"operationId":"update_goal","summary":"Update an existing goal. Pass only the fields you want to change.","tags":["goal"],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"goalId":{"type":"string","description":"The goal ID (required)"},"title":{"type":"string","description":"New title"},"description":{"type":"string","description":"New description"},"status":{"type":"string","description":"New status: ACTIVE, COMPLETED, CANCELLED, DRAFT"},"ownerId":{"type":"string","description":"New owner user ID"},"teamId":{"type":"string","description":"New team ID (null to clear)"},"startDate":{"type":"string","description":"New start date (null to clear)"},"dueDate":{"type":"string","description":"New due date (null to clear)"}},"required":["goalId"]}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean"},"data":{"type":"object"}}}}}},"401":{"description":"Unauthorized — invalid or missing Bearer token"},"403":{"description":"Forbidden — tool not enabled for this user or org"},"404":{"description":"Tool not found"},"500":{"description":"Internal server error"}},"security":[{"bearerAuth":[]}]}},"/api/ai/tools/list_kpis":{"post":{"operationId":"list_kpis","summary":"List KPIs in the workspace with optional filters.","tags":["kpi"],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"status":{"type":"string","description":"Filter by status: ACTIVE, COMPLETED, CANCELLED"}}}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean"},"data":{"type":"object"}}}}}},"401":{"description":"Unauthorized — invalid or missing Bearer token"},"403":{"description":"Forbidden — tool not enabled for this user or org"},"404":{"description":"Tool not found"},"500":{"description":"Internal server error"}},"security":[{"bearerAuth":[]}]}},"/api/ai/tools/get_kpi":{"post":{"operationId":"get_kpi","summary":"Get a single KPI by ID with full details including current value, target, progress, and owner.","tags":["kpi"],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"kpiId":{"type":"string","description":"The KPI ID"}},"required":["kpiId"]}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean"},"data":{"type":"object"}}}}}},"401":{"description":"Unauthorized — invalid or missing Bearer token"},"403":{"description":"Forbidden — tool not enabled for this user or org"},"404":{"description":"Tool not found"},"500":{"description":"Internal server error"}},"security":[{"bearerAuth":[]}]}},"/api/ai/tools/create_kpi":{"post":{"operationId":"create_kpi","summary":"Create a new KPI. Title is required.","tags":["kpi"],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"title":{"type":"string","description":"KPI title (required)"},"description":{"type":"string","description":"KPI description"},"unit":{"type":"string","description":"Unit of measurement (e.g. %, $, users)"},"startValue":{"type":"number","description":"Starting/baseline value"},"targetValue":{"type":"number","description":"Target value to achieve"},"currentValue":{"type":"number","description":"Current value"},"ownerId":{"type":"string","description":"User ID of the KPI owner"},"teamId":{"type":"string","description":"Team ID"},"startDate":{"type":"string","description":"Start date in ISO 8601"},"dueDate":{"type":"string","description":"Due date in ISO 8601"}},"required":["title"]}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean"},"data":{"type":"object"}}}}}},"401":{"description":"Unauthorized — invalid or missing Bearer token"},"403":{"description":"Forbidden — tool not enabled for this user or org"},"404":{"description":"Tool not found"},"500":{"description":"Internal server error"}},"security":[{"bearerAuth":[]}]}},"/api/ai/tools/update_kpi":{"post":{"operationId":"update_kpi","summary":"Update an existing KPI. Pass only the fields you want to change. Use currentValue to record a new measurement.","tags":["kpi"],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"kpiId":{"type":"string","description":"The KPI ID (required)"},"title":{"type":"string","description":"New title"},"description":{"type":"string","description":"New description"},"currentValue":{"type":"number","description":"Updated current value"},"targetValue":{"type":"number","description":"Updated target value"},"status":{"type":"string","description":"New status: ACTIVE, COMPLETED, CANCELLED"},"ownerId":{"type":"string","description":"New owner user ID"},"teamId":{"type":"string","description":"New team ID (null to clear)"},"dueDate":{"type":"string","description":"New due date (null to clear)"}},"required":["kpiId"]}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean"},"data":{"type":"object"}}}}}},"401":{"description":"Unauthorized — invalid or missing Bearer token"},"403":{"description":"Forbidden — tool not enabled for this user or org"},"404":{"description":"Tool not found"},"500":{"description":"Internal server error"}},"security":[{"bearerAuth":[]}]}},"/api/ai/tools/list_projects":{"post":{"operationId":"list_projects","summary":"List projects in the workspace with optional filters.","tags":["project"],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"status":{"type":"string","description":"Filter by status: ACTIVE, COMPLETED, CANCELLED, ON_HOLD, DRAFT"}}}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean"},"data":{"type":"object"}}}}}},"401":{"description":"Unauthorized — invalid or missing Bearer token"},"403":{"description":"Forbidden — tool not enabled for this user or org"},"404":{"description":"Tool not found"},"500":{"description":"Internal server error"}},"security":[{"bearerAuth":[]}]}},"/api/ai/tools/get_project":{"post":{"operationId":"get_project","summary":"Get a single project by ID with full details including tasks, progress, and owner.","tags":["project"],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"projectId":{"type":"string","description":"The project ID"}},"required":["projectId"]}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean"},"data":{"type":"object"}}}}}},"401":{"description":"Unauthorized — invalid or missing Bearer token"},"403":{"description":"Forbidden — tool not enabled for this user or org"},"404":{"description":"Tool not found"},"500":{"description":"Internal server error"}},"security":[{"bearerAuth":[]}]}},"/api/ai/tools/create_project":{"post":{"operationId":"create_project","summary":"Create a new project. Title is required.","tags":["project"],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"title":{"type":"string","description":"Project title (required)"},"description":{"type":"string","description":"Project description"},"status":{"type":"string","description":"Status: ACTIVE, ON_HOLD, DRAFT"},"ownerId":{"type":"string","description":"User ID of the project owner"},"teamId":{"type":"string","description":"Team ID"},"startDate":{"type":"string","description":"Start date in ISO 8601"},"endDate":{"type":"string","description":"End date in ISO 8601"}},"required":["title"]}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean"},"data":{"type":"object"}}}}}},"401":{"description":"Unauthorized — invalid or missing Bearer token"},"403":{"description":"Forbidden — tool not enabled for this user or org"},"404":{"description":"Tool not found"},"500":{"description":"Internal server error"}},"security":[{"bearerAuth":[]}]}},"/api/ai/tools/update_project":{"post":{"operationId":"update_project","summary":"Update an existing project. Pass only the fields you want to change.","tags":["project"],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"projectId":{"type":"string","description":"The project ID (required)"},"title":{"type":"string","description":"New title"},"description":{"type":"string","description":"New description"},"status":{"type":"string","description":"New status: ACTIVE, COMPLETED, CANCELLED, ON_HOLD, DRAFT"},"ownerId":{"type":"string","description":"New owner user ID"},"teamId":{"type":"string","description":"New team ID (null to clear)"},"startDate":{"type":"string","description":"New start date (null to clear)"},"endDate":{"type":"string","description":"New end date (null to clear)"}},"required":["projectId"]}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean"},"data":{"type":"object"}}}}}},"401":{"description":"Unauthorized — invalid or missing Bearer token"},"403":{"description":"Forbidden — tool not enabled for this user or org"},"404":{"description":"Tool not found"},"500":{"description":"Internal server error"}},"security":[{"bearerAuth":[]}]}},"/api/ai/tools/list_strategys":{"post":{"operationId":"list_strategys","summary":"List strategies in the workspace. Only returns strategies visible to the current user (org-wide or shared).","tags":["strategy"],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"status":{"type":"string","description":"Filter by status: ACTIVE, COMPLETED, CANCELLED, DRAFT"}}}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean"},"data":{"type":"object"}}}}}},"401":{"description":"Unauthorized — invalid or missing Bearer token"},"403":{"description":"Forbidden — tool not enabled for this user or org"},"404":{"description":"Tool not found"},"500":{"description":"Internal server error"}},"security":[{"bearerAuth":[]}]}},"/api/ai/tools/get_strategy":{"post":{"operationId":"get_strategy","summary":"Get a single strategy by ID with full details.","tags":["strategy"],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"strategyId":{"type":"string","description":"The strategy ID"}},"required":["strategyId"]}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean"},"data":{"type":"object"}}}}}},"401":{"description":"Unauthorized — invalid or missing Bearer token"},"403":{"description":"Forbidden — tool not enabled for this user or org"},"404":{"description":"Tool not found"},"500":{"description":"Internal server error"}},"security":[{"bearerAuth":[]}]}},"/api/ai/tools/create_strategy":{"post":{"operationId":"create_strategy","summary":"Create a new strategy. Title is required.","tags":["strategy"],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"title":{"type":"string","description":"Strategy title (required)"},"description":{"type":"string","description":"Strategy description"},"status":{"type":"string","description":"Status: ACTIVE, DRAFT"},"visibility":{"type":"string","description":"Visibility: ORG (visible to all) or PRIVATE"},"startDate":{"type":"string","description":"Start date in ISO 8601"},"endDate":{"type":"string","description":"End date in ISO 8601"}},"required":["title"]}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean"},"data":{"type":"object"}}}}}},"401":{"description":"Unauthorized — invalid or missing Bearer token"},"403":{"description":"Forbidden — tool not enabled for this user or org"},"404":{"description":"Tool not found"},"500":{"description":"Internal server error"}},"security":[{"bearerAuth":[]}]}},"/api/ai/tools/update_strategy":{"post":{"operationId":"update_strategy","summary":"Update an existing strategy. Pass only the fields you want to change.","tags":["strategy"],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"strategyId":{"type":"string","description":"The strategy ID (required)"},"title":{"type":"string","description":"New title"},"description":{"type":"string","description":"New description"},"status":{"type":"string","description":"New status: ACTIVE, COMPLETED, CANCELLED, DRAFT"},"visibility":{"type":"string","description":"New visibility: ORG or PRIVATE"},"startDate":{"type":"string","description":"New start date (null to clear)"},"endDate":{"type":"string","description":"New end date (null to clear)"}},"required":["strategyId"]}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean"},"data":{"type":"object"}}}}}},"401":{"description":"Unauthorized — invalid or missing Bearer token"},"403":{"description":"Forbidden — tool not enabled for this user or org"},"404":{"description":"Tool not found"},"500":{"description":"Internal server error"}},"security":[{"bearerAuth":[]}]}},"/api/ai/tools/get_work_graph_alerts":{"post":{"operationId":"get_work_graph_alerts","summary":"Get work graph alerts and recommendations for the current user. Returns prioritized list of items needing attention: at-risk goals, stale tasks, pace warnings, alignment gaps.","tags":["actions"],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean"},"data":{"type":"object"}}}}}},"401":{"description":"Unauthorized — invalid or missing Bearer token"},"403":{"description":"Forbidden — tool not enabled for this user or org"},"404":{"description":"Tool not found"},"500":{"description":"Internal server error"}},"security":[{"bearerAuth":[]}]}},"/api/ai/tools/generate_summary":{"post":{"operationId":"generate_summary","summary":"Generate a structured summary of the workspace state. Returns all strategies, goals, KPIs, projects, and tasks with their current status, progress, and alignment relationships.","tags":["actions"],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean"},"data":{"type":"object"}}}}}},"401":{"description":"Unauthorized — invalid or missing Bearer token"},"403":{"description":"Forbidden — tool not enabled for this user or org"},"404":{"description":"Tool not found"},"500":{"description":"Internal server error"}},"security":[{"bearerAuth":[]}]}},"/api/ai/tools/align_entities":{"post":{"operationId":"align_entities","summary":"Create an alignment edge between two entities (e.g. align a task to a goal, a goal to a strategy, a project to a goal). This connects work to objectives in the alignment hierarchy.","tags":["actions"],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"sourceType":{"type":"string","description":"Source entity type: TASK, GOAL, KPI, or PROJECT"},"sourceId":{"type":"string","description":"Source entity ID"},"targetType":{"type":"string","description":"Target entity type: STRATEGY, GOAL, KPI, or PROJECT"},"targetId":{"type":"string","description":"Target entity ID"},"relationType":{"type":"string","description":"Relationship type: CONTRIBUTES_TO (default) or ALIGNED_TO"}},"required":["sourceType","sourceId","targetType","targetId"]}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean"},"data":{"type":"object"}}}}}},"401":{"description":"Unauthorized — invalid or missing Bearer token"},"403":{"description":"Forbidden — tool not enabled for this user or org"},"404":{"description":"Tool not found"},"500":{"description":"Internal server error"}},"security":[{"bearerAuth":[]}]}},"/api/ai/tools/remove_alignment":{"post":{"operationId":"remove_alignment","summary":"Remove an alignment edge between two entities.","tags":["actions"],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"sourceType":{"type":"string","description":"Source entity type: TASK, GOAL, KPI, or PROJECT"},"sourceId":{"type":"string","description":"Source entity ID"},"targetType":{"type":"string","description":"Target entity type: STRATEGY, GOAL, KPI, or PROJECT"},"targetId":{"type":"string","description":"Target entity ID"},"relationType":{"type":"string","description":"Relationship type: CONTRIBUTES_TO (default) or ALIGNED_TO"}},"required":["sourceType","sourceId","targetType","targetId"]}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean"},"data":{"type":"object"}}}}}},"401":{"description":"Unauthorized — invalid or missing Bearer token"},"403":{"description":"Forbidden — tool not enabled for this user or org"},"404":{"description":"Tool not found"},"500":{"description":"Internal server error"}},"security":[{"bearerAuth":[]}]}},"/api/ai/tools/trigger_reminder":{"post":{"operationId":"trigger_reminder","summary":"Send an update reminder notification to the owner of a task, goal, KPI, or project that is overdue for an update.","tags":["actions"],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"entityType":{"type":"string","description":"Entity type: TASK, GOAL, KPI, or PROJECT"},"entityId":{"type":"string","description":"Entity ID"},"message":{"type":"string","description":"Optional custom reminder message"}},"required":["entityType","entityId"]}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean"},"data":{"type":"object"}}}}}},"401":{"description":"Unauthorized — invalid or missing Bearer token"},"403":{"description":"Forbidden — tool not enabled for this user or org"},"404":{"description":"Tool not found"},"500":{"description":"Internal server error"}},"security":[{"bearerAuth":[]}]}},"/api/ai/tools/push_comment":{"post":{"operationId":"push_comment","summary":"Post a comment on a task that syncs to the source system (Jira, Slack, Asana, etc.). The comment appears in both Vindaris and the connected tool.","tags":["actions"],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"taskId":{"type":"string","description":"The task ID to comment on"},"body":{"type":"string","description":"The comment text"}},"required":["taskId","body"]}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean"},"data":{"type":"object"}}}}}},"401":{"description":"Unauthorized — invalid or missing Bearer token"},"403":{"description":"Forbidden — tool not enabled for this user or org"},"404":{"description":"Tool not found"},"500":{"description":"Internal server error"}},"security":[{"bearerAuth":[]}]}},"/api/ai/tools/ingest_content":{"post":{"operationId":"ingest_content","summary":"Ingest external content by creating tasks, goals, or projects from it and optionally aligning them. Use this to take meeting notes, emails, or other text and convert them into tracked work items aligned to the right objectives.","tags":["actions"],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"items":{"type":"array","items":{"type":"object","properties":{"type":{"type":"string","description":"Entity type: TASK, GOAL, or PROJECT"},"title":{"type":"string","description":"Item title"},"description":{"type":"string","description":"Item description"},"alignTo":{"type":"object","properties":{"targetType":{"type":"string","description":"Target entity type to align to"},"targetId":{"type":"string","description":"Target entity ID to align to"}},"required":["targetType","targetId"]}},"required":["type","title"]},"description":"Array of items to create"}},"required":["items"]}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean"},"data":{"type":"object"}}}}}},"401":{"description":"Unauthorized — invalid or missing Bearer token"},"403":{"description":"Forbidden — tool not enabled for this user or org"},"404":{"description":"Tool not found"},"500":{"description":"Internal server error"}},"security":[{"bearerAuth":[]}]}},"/api/ai/tools/toggle_risk_bell":{"post":{"operationId":"toggle_risk_bell","summary":"Activate or deactivate risk alert subscriptions on Data Studio, dashboard, or heatmap views. When active, the user receives notifications when risk levels change on the subscribed view.","tags":["actions"],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"action":{"type":"string","description":"Action: ACTIVATE or DEACTIVATE"},"page":{"type":"string","description":"Page/view: heatmap, data-studio, dashboard, projects, or alignment"},"widgetId":{"type":"string","description":"Optional widget ID for dashboard widgets"},"savedViewId":{"type":"string","description":"Optional saved view ID"}},"required":["action","page"]}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean"},"data":{"type":"object"}}}}}},"401":{"description":"Unauthorized — invalid or missing Bearer token"},"403":{"description":"Forbidden — tool not enabled for this user or org"},"404":{"description":"Tool not found"},"500":{"description":"Internal server error"}},"security":[{"bearerAuth":[]}]}}},"components":{"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer","description":"Personal API token from Vindaris Settings → AI Tools"}}},"security":[{"bearerAuth":[]}]}