Skip to content

API Reference

Tendrex provides two APIs: this internal API used by the web app (session-based authentication via Microsoft SSO), and a Public API for external integrations (API key authentication).

https://app.tendrex.co.uk/api

Tendrex uses Microsoft Entra ID (Azure AD) SSO for authentication. Session-based authentication is used across all endpoints.

MethodEndpointDescription
GET/auth/loginInitiate Microsoft SSO login
GET/auth/callbackSSO callback handler
GET/auth/meGet current user info and role
POST/auth/logoutEnd session
MethodEndpointDescription
GET/documentsList all documents
POST/documents/uploadUpload a new document (PDF or Word)
GET/documents/:id/previewPreview document content
DELETE/documents/:idDelete a document
GET/documents/tagsList all document tags
POST/documents/tagsCreate a new document tag
DELETE/documents/tags/:idDelete a document tag
GET/documents/:id/tagsGet tags for a document
PUT/documents/:id/tagsUpdate tags on a document
MethodEndpointDescription
GET/tendersList all tenders
POST/tendersCreate a new tender
GET/tenders/:idGet tender details
PUT/tenders/:idUpdate tender metadata
DELETE/tenders/:idDelete a tender
PATCH/tenders/:id/statusUpdate tender status
POST/tenders/:id/submitRecord tender submission
POST/tenders/:id/outcomeRecord tender outcome (awarded/lost)
MethodEndpointDescription
POST/process/uploadUpload a question file (Excel or Word)
GET/process/status/:session_idGet processing progress
POST/process/runStart AI answer generation
GET/process/results/:session_idFetch generated answers
MethodEndpointDescription
GET/tenders/:id/answersList answers for a tender
POST/review/:id/approveApprove an answer
POST/review/:id/rejectReject an answer with comment
POST/review/:id/editEdit and approve an answer
POST/review/:id/provideProvide a custom answer
POST/review/:id/assignAssign to a team or user
POST/review/bulk/approveBulk approve answers
POST/review/bulk/rejectBulk reject answers
POST/review/bulk/assignBulk assign answers
GET/review/:id/versionsGet answer version history
MethodEndpointDescription
GET/canonicalList approved answers (with search and filters)
POST/canonicalAdd an approved answer
PUT/canonical/:idUpdate an answer
DELETE/canonical/:idDelete an answer
GET/canonical/searchSemantic search across the library
MethodEndpointDescription
GET/usersList users in your organisation
POST/users/inviteInvite a user by email with role
GET/users/me/queueGet current user’s question queue
PUT/users/:idUpdate user details or role
DELETE/users/:idRemove a user
MethodEndpointDescription
GET/teamsList all teams
POST/teamsCreate a new team
PUT/teams/:idUpdate a team
DELETE/teams/:idDelete a team
POST/teams/:id/membersAdd a member to a team
DELETE/teams/:id/members/:user_idRemove a member from a team
MethodEndpointDescription
GET/auditList org-wide audit logs (with filters and pagination)
GET/audit/:entity_type/:entity_idGet audit trail for a specific entity
MethodEndpointDescription
POST/ai-assist/:id/improveImprove grammar and clarity
POST/ai-assist/:id/expandExpand with detail and examples
POST/ai-assist/:id/condenseCondense to key points
POST/ai-assist/:id/formalRewrite in formal tone
POST/ai-assist/:id/bulletsConvert to bullet point format
POST/ai-assist/:id/strengthenStrengthen with evidence
MethodEndpointDescription
GET/review/:id/commentsList comments on an answer
POST/review/:id/commentsAdd a comment (with optional highlight)
POST/review/:id/comments/:comment_id/replyReply to a comment
PATCH/review/:id/comments/:comment_id/resolveResolve a comment thread
MethodEndpointDescription
GET/tenders/:id/complianceList compliance items for a tender
POST/tenders/:id/complianceAdd a compliance item
PUT/compliance/:idUpdate a compliance item
DELETE/compliance/:idDelete a compliance item
POST/compliance/:id/evidenceUpload evidence for a compliance item
POST/tenders/:id/compliance/templateApply a pre-built compliance template
MethodEndpointDescription
GET/templatesList tender templates
POST/templatesCreate a template
GET/templates/:idGet template details
PUT/templates/:idUpdate a template
DELETE/templates/:idDelete a template
POST/templates/:id/applyApply template to a new tender
POST/tenders/:id/save-templateCreate template from existing tender
MethodEndpointDescription
GET/dashboardGet role-based dashboard metrics
GET/dashboard/dashboardsList user’s dashboards
POST/dashboard/dashboardsCreate a custom dashboard
PUT/dashboard/dashboards/:idUpdate dashboard layout and widgets
DELETE/dashboard/dashboards/:idDelete a custom dashboard
MethodEndpointDescription
GET/notificationsList notifications for current user
PATCH/notifications/:id/readMark a notification as read
POST/notifications/read-allMark all notifications as read
MethodEndpointDescription
GET/webhooksList webhooks
POST/webhooksCreate a webhook
PUT/webhooks/:idUpdate a webhook
DELETE/webhooks/:idDelete a webhook
POST/webhooks/:id/testSend a test event to the webhook
GET/webhooks/:id/deliveriesList delivery history
MethodEndpointDescription
GET/api-keysList API keys for your organisation
POST/api-keysCreate a new API key with scopes
DELETE/api-keys/:idDelete an API key

All errors return a JSON body with error and message fields:

{
"error": "not_found",
"message": "Tender not found"
}