API reference

Browse Aurora's endpoint surface by resource family, not by guesswork.

Supported methods, path shapes, and operational notes for each external API resource family.

Coverage

Every current /api/external route, grouped by resource family.

Reference

Reference overview

Aurora's external API covers workspace discovery and the execution workflows used by people and agents: projects, issues, relationships, sub-tasks, milestones, linked attachments, meetings, and discussions.

ConventionDetails
Base URLhttps://www.auroraworkos.com
AuthAuthorization: Bearer aurora_pat_... (preferred)
Content typeapplication/json
Workspace scopeEvery request resolves only inside the token workspace
Create safetyUse Idempotency-Key on create routes
PaginationUse limit and cursor on supported list routes

Conventions

Request conventions

These rules apply across the reference surface.

Discovery first

Treat GET /api/external as your entry point, then resolve teams, users, and statuses before any dependent write.

Key-friendly writes

Prefer teamKey, projectKey, issueKey, and statusKey when you can. Use opaque ids when you have already resolved them.

Auth boundary

API tokens and OAuth connector access work on the external API only. They do not create a browser session and they cannot be used on internal app pages or customer-shell APIs.

Resource family

Discovery

Start every new client with discovery so you can resolve teams, statuses, users, and workspace capabilities before you mutate anything.

OperationPurposeNotes
GET /api/externalDiscover token identity, workspace metadata, endpoint map, and capability flags.Call this first when wiring a new client or validating a token.
GET /api/external/teamsList teams visible to the token workspace and return defaultTeamId.Use this to resolve teamId and teamKey pairs.
GET /api/external/usersList workspace members plus automation-agent queue identities derived from API token names.Use for ownerId, reporterId, human assigneeId, and automation assignment.
GET /api/external/statusesList statuses for the first workspace team or a specific team by id/key.Pass teamId or teamKey when status resolution needs to be explicit.
GET /api/external/tagsDiscover managed tags plus issue and project-linked agenda tag usage.Returns issueCount, agendaItemCount, usageCount, projectIds, and managedScopes within token project access.

Resource family

Projects

Project routes support both opaque ids and stable key-based lookups so operators and agents can work in more human-readable terms.

OperationPurposeNotes
GET /api/external/projectsList workspace projects, optionally filtered by team and paginated with limit/cursor.Supports teamId, teamKey, limit, and cursor.
GET /api/external/projects/{projectId}Fetch one project by opaque project id.Use when you already persisted a project id from a previous read.
GET /api/external/projects/by-key/{teamKey}/{projectKey}Fetch one project by stable natural key.Preferred for agent flows that already know team and project keys.
POST /api/external/projectsCreate a project with optional explicit team and owner resolution.Supports Idempotency-Key and will derive a project key when omitted.
PATCH /api/external/projects/{projectId}Update project name, key, description, team, or owner.Team moves are blocked when the project still contains issues.

Resource family

Issues

Issue routes are designed for triage, automation queue pickup, and stable lookup by issue key or project key.

OperationPurposeNotes
GET /api/external/issuesList issues by project, team, assignee, status, query text, and pagination cursor.Supports assignedToMe for automation-queue polling.
GET /api/external/issues/{issueId}Fetch one issue by opaque issue id.Useful after you already resolved an issue in an earlier API call.
GET /api/external/issues/by-key/{issueKey}Fetch one issue by stable issue key.Preferred when you already have an Aurora issue key from chat or another system.
POST /api/external/issuesCreate an issue with project, status, assignee, reporter, labels, and date fields.Supports Idempotency-Key and accepts project/team natural keys.
PATCH /api/external/issues/{issueId}Update status, assignment, project, dates, priority, and other mutable issue fields.Use structured error codes to recover from stale status or project references.

Resource family

Issue containers and milestones

Issue containers provide epic-like grouping, while container milestones model non-task checkpoints with owners, status, dates, tags, comments, and activity history.

OperationPurposeNotes
GET /api/external/issue-containersDiscover project issue containers/epics with schedule and issue-count metadata.Supports projectId, projectKey, teamId, teamKey, q, and archived=true.
GET /api/external/issue-container-milestonesList container milestones by project, epic/container, owner, status, search text, and pagination cursor.Automation agents only see milestones in projects where their token has project access.
POST /api/external/issue-container-milestonesCreate a non-task checkpoint milestone inside an issue container.Milestones support ownerId, planned/at-risk/blocked/complete status, start/due dates, order, and tags.
GET|PATCH|DELETE /api/external/issue-container-milestones/{milestoneId}Read, update, or delete a specific container milestone.Patch supports clearing ownerId, startDate, and dueDate with null values.
GET|POST /api/external/issue-container-milestones/{milestoneId}/commentsRead or add durable comments on a container milestone.PAT comments are attributed to the token queue through authorApiTokenName.

Resource family

Issue comments

Comments are first-class external resources so human operators and automation can leave durable audit trails on the same issue thread.

OperationPurposeNotes
GET /api/external/issues/{issueId}/commentsList durable comment threads for an issue.Use for follow-up context before an agent or workflow acts on an issue.
POST /api/external/issues/{issueId}/commentsCreate a durable comment or threaded reply.OAuth connector calls are authored as the human user; PAT calls are authored as the token queue identity.

Resource family

Issue relationships, attachments, and sub-tasks

Issue utility routes cover mainline relationships, link-backed attachments, and lighter child work that remains under one parent issue.

OperationPurposeNotes
POST|DELETE /api/external/issues/{issueId}/linksCreate or remove a blocks, blocked-by, or related relationship between mainline issues.DELETE receives linkId in the JSON body. Relationship updates keep the inverse issue link consistent.
GET|POST /api/external/issues/{issueId}/attachmentsList or append http/https link-backed issue attachments.Binary upload/download and workspace file repository operations still require a browser app session.
GET|POST /api/external/issues/{issueId}/subtasksList or create sub-tasks under a parent issue.Sub-tasks inherit reporter, project, and epic/container context. The workflow and parent issue must allow sub-tasks.
GET|PATCH|DELETE /api/external/issues/{issueId}/subtasks/{subtaskId}Read, update, or delete a specific sub-task.Supported statuses are to-do, in-progress, and done. Schedules and assignment remain sub-task specific.
POST|DELETE /api/external/issues/{issueId}/subtasks/{subtaskId}/linksCreate or remove sibling-only sub-task dependencies and related links.A sub-task relationship cannot cross parent issues; use the main issue-link route for cross-issue work.
POST /api/external/issues/{issueId}/subtasks/{subtaskId}/promotePromote a sub-task into a mainline issue.Requires an explicit compatible target status mapping and marks the source sub-task as migrated.

Resource family

Meetings and agenda workflows

Aurora's external API also covers structured meeting execution so agenda capture and task conversion can stay inside the same automation boundary.

OperationPurposeNotes
GET /api/external/meetingsList meetings with team, project, type, recurrence, archive, search, and pagination filters.Supports teamId/teamKey, projectId/projectKey, type, recurrenceType, archived, view=archived, q, limit, and cursor.
POST /api/external/meetingsCreate a meeting with optional team, project, schedule, and workflow metadata.Supports Idempotency-Key.
GET|PATCH|DELETE /api/external/meetings/{meetingId}Read, update, or delete a specific meeting.Use PATCH for meeting-level metadata and DELETE for cleanup workflows.
GET /api/external/meetings/settingsLoad meeting workflow settings and write external owner presets or agenda statuses through child routes.Use external-users and agenda-statuses child routes for POST, PATCH, and DELETE writes.
POST /api/external/meetings/settings/external-usersCreate a reusable external agenda owner preset.Presets copy external owner details onto agenda items; they do not create user accounts.
PATCH|DELETE /api/external/meetings/settings/external-users/{presetId}Update or delete a reusable external agenda owner preset.Existing agenda item owner copies are not retroactively changed by preset edits.
POST /api/external/meetings/settings/agenda-statusesCreate a workspace agenda item status.Custom statuses can be used through agenda item statusId.
PATCH|DELETE /api/external/meetings/settings/agenda-statuses/{statusId}Update or delete a workspace agenda item status.System statuses stay protected; use convert for conversion-safe status changes.
POST /api/external/meetings/{meetingId}/linksAttach meeting-level related work.Targets can be issue, project, discussion_topic, or agenda_item; duplicate links collapse.
DELETE /api/external/meetings/{meetingId}/links/{linkId}Remove a meeting-level work link.The link and target must belong to the token workspace.
GET|POST /api/external/meetings/{meetingId}/agenda-itemsList agenda items or create a new one inside a meeting.Set agendaGroupId to place the item in a meeting agenda group. Agenda tags inherit the meeting project when sourceProjectId is omitted; explicit null keeps a tag agenda-only.
GET|POST|PATCH /api/external/meetings/{meetingId}/agenda-groupsList, create, or reorder meeting agenda groups.POST supports Idempotency-Key. PATCH requires the complete ordered agendaGroupIds list. Reordering groups moves their agenda items as blocks and preserves item order within each group.
PATCH|DELETE /api/external/meetings/{meetingId}/agenda-groups/{agendaGroupId}Rename, describe, or delete an agenda group.Deleting a group leaves its agenda items in the meeting as ungrouped items.
GET /api/external/meetings/{meetingId}/agenda-tagsDiscover workspace and project-linked tag suggestions for the meeting agenda.Includes managed presets, issue usage, and existing project-linked agenda usage visible to the token.
GET|PATCH|DELETE /api/external/meetings/{meetingId}/agenda-items/{agendaItemId}Read, update, or delete a specific agenda item.Set agendaGroupId to a group in the same meeting, or null to ungroup it. Tag replacement uses meeting-project inference unless sourceProjectId is explicit; use statusId for custom statuses.
GET|POST /api/external/meetings/{meetingId}/agenda-items/{agendaItemId}/attachmentsList or append http/https link-backed agenda item attachments.Binary upload/download remains a browser app-session operation; external clients can preserve accessible links.
GET|POST /api/external/meetings/{meetingId}/agenda-items/{agendaItemId}/ownersList or add agenda item owners.Supports both internal and reusable external owner presets.
DELETE /api/external/meetings/{meetingId}/agenda-items/{agendaItemId}/owners/{ownerId}Remove an owner from an agenda item.Useful for cleanup during agenda rebalancing workflows.
POST /api/external/meetings/{meetingId}/agenda-items/{agendaItemId}/linksAttach related work directly to an agenda item.Targets can be issue, project, discussion_topic, or agenda_item; targetKey works for issue and project targets.
DELETE /api/external/meetings/{meetingId}/agenda-items/{agendaItemId}/links/{linkId}Remove an agenda item work link.Use when a linked issue, project, topic, or agenda reference is no longer relevant.
POST /api/external/meetings/{meetingId}/agenda-items/{agendaItemId}/notes/publishPublish agenda item notes to a linked issue comment.Uses issueId/issueKey when supplied or falls back to converted, linked, or task-created issues.
POST /api/external/meetings/{meetingId}/agenda-items/{agendaItemId}/convertConvert an agenda item into an issue and mark it converted.Agenda-idempotent; omitted dueDate falls back to the agenda checkInDate.
POST /api/external/meetings/{meetingId}/agenda-items/{agendaItemId}/tasksCreate related issues from an agenda item without marking it converted.Supports Idempotency-Key; omitted dueDate falls back to the agenda checkInDate.

Resource family

Stakeholder discussions

Discussion routes are scoped to the effective Aurora user and only expose groups the owner has left visible to external API clients.

OperationPurposeNotes
GET|POST /api/external/discussionList API-enabled stakeholder groups visible to the caller or create a new owned group.Responses include visibility metadata; zero results do not prove workspace-wide absence.
PATCH /api/external/discussion/groups/{groupId}Rename an owned API-visible stakeholder group.Groups marked private from API are not readable or writable through external routes.
GET|POST /api/external/discussion/topicsSearch or create discussion topics in API-enabled stakeholder groups.The q filter matches visible topic titles, descriptions, and stakeholder group names.
GET|PATCH /api/external/discussion/topics/{topicId}Read or update an API-visible discussion topic.Patch supports title, description, status, and links to issues, projects, or agenda items.
POST /api/external/discussion/topics/{topicId}/convertConvert an API-visible discussion topic into an issue.Supports Idempotency-Key and returns existing converted work on repeat calls.