Route map¶
This is a routing inventory, not an alternative API contract. External clients should use Endpoint reference; browser endpoints are internal to the bundled React application.
Browser pages and documentation¶
| Method | Path | Purpose |
|---|---|---|
| GET | / |
React application shell |
| GET | /app/{any?} |
React application shell/deep links |
| GET | /join/{token} |
invitation SPA shell |
| GET | /docs/ |
generated static MkDocs manual |
| GET | /docs/api |
Scalar interactive API reference |
| GET | /docs/openapi.yaml |
OpenAPI specification |
| GET | /up |
Laravel health endpoint |
The Scalar/spec paths are configurable. /docs/ is a physical generated directory and should remain reserved.
Public/session-establishment browser API¶
Prefix: /app-api except OAuth/SSO.
| Method | Path | Purpose |
|---|---|---|
| GET | /auth/config |
enabled OAuth/SSO and TOTP policy |
| POST | /auth/register |
local signup |
| POST | /auth/login |
password step |
| GET | /auth/two-factor/pending |
pending challenge metadata |
| POST | /auth/two-factor/challenge |
complete login TOTP |
| GET | /invitations/{token} |
inspect invitation |
| POST | /invitations/{token}/accept |
accept invitation |
| GET | /auth/oauth/{provider} |
OAuth redirect |
| GET | /auth/oauth/{provider}/callback |
OAuth callback |
| GET | /auth/sso/{driver} |
SSO redirect |
| GET, POST | /auth/sso/{driver}/callback |
SSO callback |
Register/login/invitation acceptance use the auth throttle; TOTP uses the security throttle.
Authenticated security setup¶
Prefix: /app-api, requires Laravel auth but not completed account security.
| Method | Path |
|---|---|
| GET | /auth/me |
| POST | /auth/logout |
| POST | /auth/email/verify-code |
| POST | /auth/email/resend-code |
| GET | /auth/two-factor/setup |
| POST | /auth/two-factor/confirm |
Protected workspace API¶
All routes below use /app-api, session auth, and account.secure.
User, notifications, editor assets¶
GET /user
PATCH /user
POST /user/avatar
DELETE /user/avatar
GET /users/{user}/avatar
GET /user/export
GET /notifications
POST /notifications/read-all
POST /notifications/{notification}/read
POST /editor/images
GET /editor/images/{owner}/{filename}
Organizations, members, invitations¶
GET /organizations
POST /organizations
GET /organizations/{organization}
PATCH /organizations/{organization}
DELETE /organizations/{organization}
GET /organizations/{organization}/members
POST /organizations/{organization}/invitations
PATCH /organizations/{organization}/members/{user}
DELETE /organizations/{organization}/members/{user}
DELETE /invitations/{invitation}
Projects, phases, labels¶
GET /projects
GET /organizations/{organization}/projects
POST /organizations/{organization}/projects
GET /projects/{project}
PATCH /projects/{project}
DELETE /projects/{project}
PUT /projects/{project}/members
POST /projects/{project}/boards
PUT /projects/{project}/boards/reorder
PATCH /boards/{board}
DELETE /boards/{board}
POST /projects/{project}/labels
PATCH /labels/{label}
DELETE /labels/{label}
GET /projects/{project}/analytics
Tickets, comments, revisions, attachments¶
GET /projects/{project}/tickets
POST /projects/{project}/tickets
PUT /projects/{project}/tickets/reorder
GET /projects/{project}/tickets/by-number/{number}
GET /tickets/{ticket}
PATCH /tickets/{ticket}
DELETE /tickets/{ticket}
POST /tickets/{ticket}/move
GET /tickets/{ticket}/revisions
POST /tickets/{ticket}/comments
PATCH /comments/{comment}
DELETE /comments/{comment}
GET /comments/{comment}/revisions
POST /tickets/{ticket}/attachments
POST /comments/{comment}/attachments
GET /attachments/{attachment}/download
DELETE /attachments/{attachment}
Documents¶
GET /documents
POST /documents
GET /documents/editor-options
GET /documents/editor-candidates
GET /documents/mention-candidates
GET /organizations/{organization}/document-tags
GET /documents/audit-logs
GET /documents/{document}
PATCH /documents/{document}
DELETE /documents/{document}
POST /documents/{document}/archive
POST /documents/{document}/favorite
GET /documents/{document}/pdf
POST /documents/{document}/comments
PATCH /document-comments/{comment}
DELETE /document-comments/{comment}
Audit, integrations, and transfer¶
GET /organizations/{organization}/audit-logs
GET /projects/{project}/audit-logs
GET /organizations/{organization}/webhooks
POST /organizations/{organization}/webhooks
PATCH /webhooks/{webhook}
POST /webhooks/{webhook}/rotate
DELETE /webhooks/{webhook}
GET /webhooks/{webhook}/deliveries
GET /organizations/{organization}/api-credentials
POST /organizations/{organization}/api-credentials
DELETE /api-credentials/{credential}
GET /organizations/{organization}/export
GET /projects/{project}/export
GET /projects/{project}/timeline/export
GET /organizations/{organization}/timeline/export
POST /imports/organization
POST /organizations/{organization}/imports/project
POST /organizations/{organization}/imports/timeline
External API v1¶
All routes use /api/v1, bearer credential middleware, and API throttle.
GET /organizations/{organization}
GET /organizations/{organization}/projects
POST /organizations/{organization}/projects
POST /organizations/{organization}/notifications
GET /organizations/{organization}/documents
POST /organizations/{organization}/documents
GET /projects/{project}
PATCH /projects/{project}
DELETE /projects/{project}
GET /projects/{project}/members
GET /projects/{project}/labels
GET /projects/{project}/tags
GET /projects/{project}/boards
POST /projects/{project}/boards
PUT /projects/{project}/boards/reorder
GET /projects/{project}/tickets
POST /projects/{project}/tickets
PUT /projects/{project}/tickets/reorder
GET /projects/{project}/analytics
PATCH /boards/{board}
DELETE /boards/{board}
GET /tickets/{ticket}
PATCH /tickets/{ticket}
DELETE /tickets/{ticket}
POST /tickets/{ticket}/move
POST /tickets/{ticket}/comments
GET /documents/{document}
PATCH /documents/{document}
DELETE /documents/{document}
POST /documents/{document}/comments
Use php artisan route:list as the runtime authority after configuration and route caching.