Home / Developers / API Reference
Developers

API Reference

Integrate your tools, automate workflows, and sync data with the Autovella REST API. Every resource in the platform is accessible programmatically.

GET POST PUT PATCH DELETE External API Keys

Postman Collection

All endpoints pre-configured with variables, auth, and example bodies. Import and start testing in seconds.

Download Collection
Base URLhttps://autovella.cloud

🚀Quick start

Get up and running in 3 steps

1

Authenticate. POST your credentials to POST /api/auth/login. The response contains a token — save it.

2

Pass the token. Add Authorization: Bearer <token> to every request. Tokens are long-lived; re-authenticate if you receive a 401.

3

For machine-to-machine integrations, create an API Key in Settings → API Keys and pass it as x-api-key: <key> to any /api/external/* route instead of a Bearer token.

curl
# Step 1 — obtain a token
curl -X POST https://autovella.cloud/api/auth/login \
  -H "Content-Type: application/json" \
  -d '{"email":"you@company.com","password":"••••••••"}'

# Step 2 — use the token
curl https://autovella.cloud/api/projects \
  -H "Authorization: Bearer <your_token>"

# External API key (machine-to-machine)
curl https://autovella.cloud/api/external/projects \
  -H "x-api-key: <your_api_key>"

🔒Authentication

MethodEndpointAuthDescription
POST/api/auth/loginnoneObtain a JWT token
POST/api/auth/forgot-passwordnoneSend password reset email
POST/api/auth/reset-passwordnoneSet new password via reset token
GET/api/auth/meJWTGet current user profile
GET/api/auth/me/storageJWTGet org storage usage
PUT/api/auth/profileJWTUpdate my profile
PUT/api/auth/passwordJWTChange my password
GET/api/auth/users/directoryJWTList users (lightweight, for @mentions)

👥Users

MethodEndpointAuthDescription
GET/api/auth/usersJWTList all users (paginated)
GET/api/auth/users/:idJWTGet a user by ID
POST/api/auth/usersJWTCreate a new user
PUT/api/auth/users/:idJWTUpdate a user
DELETE/api/auth/users/:idJWTDelete a user
POST/api/auth/users/:id/send-resetJWTSend password reset to user
POST/api/auth/users/:id/unlockJWTUnlock a locked account
GET/api/auth/users/:id/login-historyJWTGet login history
GET/api/users/searchJWTSearch users by name or email

📁Projects

MethodEndpointAuthDescription
GET/api/projectsJWTList projects
GET/api/projects/searchJWTSearch projects
GET/api/projects/gantt/allJWTGantt data for all projects
GET/api/projects/:idJWTGet a project
GET/api/projects/:id/tasksJWTGet all tasks in a project
GET/api/projects/:id/ganttJWTProject Gantt data
GET/api/projects/:id/historyJWTProject audit history
POST/api/projectsJWTCreate a project
PUT/api/projects/:idJWTUpdate a project
DELETE/api/projects/:idJWTDelete a project
POST/api/projects/:id/membersJWTAdd a member to project
PATCH/api/projects/:id/members/:userIdJWTUpdate member role
DELETE/api/projects/:id/members/:userIdJWTRemove a member

Tasks & Subtasks

MethodEndpointAuthDescription
GET/api/tasksJWTList tasks
GET/api/tasks/searchJWTSearch tasks
GET/api/tasks/:idJWTGet a task
GET/api/tasks/:id/historyJWTTask change history
GET/api/tasks/:id/subtasksJWTList subtasks
POST/api/tasksJWTCreate a task
POST/api/tasks/:id/subtasksJWTCreate a subtask
PUT/api/tasks/:idJWTUpdate a task
PATCH/api/tasks/:id/statusJWTUpdate task status only
PATCH/api/tasks/:id/moveJWTMove task to another section/order
DELETE/api/tasks/:idJWTDelete a task
GET/api/subtasks/:idJWTGet a subtask
PUT/api/subtasks/:idJWTUpdate a subtask
PATCH/api/subtasks/:id/completeJWTToggle subtask complete
DELETE/api/subtasks/:idJWTDelete a subtask

📋Sections

MethodEndpointAuthDescription
GET/api/sectionsJWTList sections (pass projectId)
GET/api/sections/searchJWTSearch sections
GET/api/sections/:idJWTGet a section
POST/api/sectionsJWTCreate a section
POST/api/sections/reorderJWTReorder sections
PUT/api/sections/:idJWTUpdate a section
DELETE/api/sections/:idJWTDelete a section

🏃Sprints

MethodEndpointAuthDescription
GET/api/sprintsJWTList sprints
GET/api/sprints/searchJWTSearch sprints
GET/api/sprints/velocityJWTSprint velocity chart data
GET/api/sprints/:idJWTGet a sprint
GET/api/sprints/:id/tasksJWTGet sprint tasks
GET/api/sprints/:id/burndownJWTBurndown chart data
POST/api/sprintsJWTCreate a sprint
PUT/api/sprints/:idJWTUpdate a sprint
POST/api/sprints/:id/tasksJWTBulk assign tasks to sprint
POST/api/sprints/:id/completeJWTComplete a sprint
DELETE/api/sprints/:idJWTDelete a sprint

Timesheets

MethodEndpointAuthDescription
GET/api/timesheetsJWTList timesheets
GET/api/timesheets/reportJWTTimesheet report by date range
GET/api/timesheets/:idJWTGet a timesheet entry
POST/api/timesheetsJWTLog time
PUT/api/timesheets/:idJWTUpdate a timesheet entry
PATCH/api/timesheets/:id/submitJWTSubmit for approval
PATCH/api/timesheets/:id/approveJWTApprove a timesheet
PATCH/api/timesheets/:id/rejectJWTReject a timesheet
DELETE/api/timesheets/:idJWTDelete a timesheet entry

💰Expenses

MethodEndpointAuthDescription
GET/api/expensesJWTList expenses
GET/api/expenses/reportJWTExpense report by date range
GET/api/expenses/:idJWTGet an expense
POST/api/expensesJWTCreate expense (multipart, receipt optional)
PATCH/api/expenses/:id/approveJWTApprove an expense
PATCH/api/expenses/:id/rejectJWTReject an expense
DELETE/api/expenses/:idJWTDelete an expense

🧾Invoices

MethodEndpointAuthDescription
GET/api/invoicesJWTList invoices
GET/api/invoices/searchJWTSearch invoices
GET/api/invoices/statsJWTInvoice stats (total, paid, overdue)
GET/api/invoices/:idJWTGet an invoice
GET/api/invoices/:id/pdfJWTDownload invoice as PDF
POST/api/invoicesJWTCreate an invoice
POST/api/invoices/generateJWTGenerate invoice from timesheets
PUT/api/invoices/:idJWTUpdate an invoice
PATCH/api/invoices/:id/sendJWTSend invoice to client
PATCH/api/invoices/:id/payJWTMark as paid
PATCH/api/invoices/:id/cancelJWTCancel an invoice
POST/api/invoices/:id/renderJWTRender invoice HTML
DELETE/api/invoices/:idJWTDelete an invoice

🏢CRM — Accounts

MethodEndpointAuthDescription
GET/api/accountsJWTList accounts
GET/api/accounts/searchJWTSearch accounts
GET/api/accounts/:idJWTGet an account
GET/api/accounts/:id/projectsJWTGet account's projects
POST/api/accountsJWTCreate an account
PUT/api/accounts/:idJWTUpdate an account
DELETE/api/accounts/:idJWTDelete an account

👤CRM — Contacts

MethodEndpointAuthDescription
GET/api/contactsJWTList contacts
GET/api/contacts/searchJWTSearch contacts
GET/api/contacts/:idJWTGet a contact
POST/api/contactsJWTCreate a contact
PUT/api/contacts/:idJWTUpdate a contact
DELETE/api/contacts/:idJWTDelete a contact

💼CRM — Deals

MethodEndpointAuthDescription
GET/api/dealsJWTList deals
GET/api/deals/searchJWTSearch deals
GET/api/deals/:idJWTGet a deal
POST/api/dealsJWTCreate a deal
PUT/api/deals/:idJWTUpdate a deal
POST/api/deals/:id/convertJWTConvert deal to project
DELETE/api/deals/:idJWTDelete a deal

👨‍👩‍👧Teams

MethodEndpointAuthDescription
GET/api/teamsJWTList teams
GET/api/teams/:idJWTGet a team
POST/api/teamsJWTCreate a team
PUT/api/teams/:idJWTUpdate a team
DELETE/api/teams/:idJWTDelete a team
POST/api/teams/:id/membersJWTAdd a member
DELETE/api/teams/:id/members/:userIdJWTRemove a member
POST/api/teams/:id/assignJWTAssign team to project

🕐Attendance

MethodEndpointAuthDescription
GET/api/attendance/me/todayJWTGet my attendance for today
POST/api/attendance/check-inJWTCheck in
POST/api/attendance/check-outJWTCheck out
POST/api/attendance/punchJWTRecord a punch (in/out)
GET/api/attendanceJWTList attendance records
GET/api/attendance/summaryJWTMonthly attendance summary
GET/api/attendance/:idJWTGet an attendance record
GET/api/attendance/:id/punchesJWTGet punch log for a record
POST/api/attendanceJWTUpsert an attendance record
PUT/api/attendance/:idJWTUpdate an attendance record
DELETE/api/attendance/:idJWTDelete an attendance record
DELETE/api/attendance/punches/:punchIdJWTDelete a punch entry

🏖Time Off

MethodEndpointAuthDescription
GET/api/time-off/summaryJWTLeave balance summary
GET/api/time-off/teamJWTTeam time-off calendar
GET/api/time-offJWTList time-off requests
GET/api/time-off/:idJWTGet a time-off request
POST/api/time-offJWTSubmit time-off request
PUT/api/time-off/:idJWTUpdate a request
PATCH/api/time-off/:id/cancelJWTCancel request
PATCH/api/time-off/:id/approveJWTApprove request
PATCH/api/time-off/:id/rejectJWTReject request
DELETE/api/time-off/:idJWTDelete a request

🗓Holidays

MethodEndpointAuthDescription
GET/api/holidaysJWTList holiday calendars
GET/api/holidays/upcomingJWTUpcoming holidays
GET/api/holidays/locationsJWTAvailable holiday locations
GET/api/holidays/:idJWTGet a calendar
POST/api/holidaysJWTCreate a holiday calendar
PUT/api/holidays/:idJWTUpdate a calendar
POST/api/holidays/:id/itemsJWTAdd a holiday date
PUT/api/holidays/:id/items/:itemIdJWTUpdate a holiday date
DELETE/api/holidays/:id/items/:itemIdJWTDelete a holiday date
POST/api/holidays/:id/items/:itemId/assignJWTAssign users to holiday
DELETE/api/holidays/:idJWTDelete a calendar

💬Comments

MethodEndpointAuthDescription
GET/api/commentsJWTList comments (pass entityType & entityId)
GET/api/comments/mentions/meJWTComments where I'm mentioned
GET/api/comments/:idJWTGet a comment
POST/api/commentsJWTPost a comment
PUT/api/comments/:idJWTEdit a comment
DELETE/api/comments/:idJWTDelete a comment

📎Attachments

MethodEndpointAuthDescription
GET/api/attachmentsJWTList attachments (entityType & entityId)
GET/api/attachments/latest-imagesJWTRecently uploaded images
POST/api/attachmentsJWTUpload a file (multipart/form-data)
DELETE/api/attachments/:idJWTDelete an attachment

🔔Notifications & Analytics

MethodEndpointAuthDescription
GET/api/notificationsJWTList notifications
GET/api/notifications/unread-countJWTUnread notification count
PUT/api/notifications/read-allJWTMark all notifications read
PUT/api/notifications/:id/readJWTMark one notification read

📊Analytics & Search

MethodEndpointAuthDescription
GET/api/analytics/summaryJWTOrg-level analytics summary
GET/api/analytics/teamsJWTTeam comparison metrics
GET/api/analytics/kpisJWTKey performance indicators
GET/api/analytics/resource/:userIdJWTResource utilisation for a user
GET/api/searchJWTGlobal search across all resources
GET/api/healthnoneAPI health check

External API — Machine-to-machine integrations

1

Create an API key in Settings → API Keys and select the relevant scope (attendance, timesheets, or projects).

2

Pass the key as x-api-key: <your-key> on every request. No Bearer token needed.

3

Requests are scoped to your organisation automatically — no tenant headers required.

🔌External API — Biometric

MethodEndpointAuthDescription
POST/api/external/biometric/punchAPI KeyRecord a punch (in or out)
POST/api/external/biometric/check-inAPI KeyCheck employee in
POST/api/external/biometric/check-outAPI KeyCheck employee out
GET/api/external/biometric/statusAPI KeyGet employee attendance status
POST/api/external/biometric/bulk-punchAPI KeyBulk punch (batch from device)

🔌External API — Timesheets

MethodEndpointAuthDescription
POST/api/external/timesheetsAPI KeyLog a timesheet entry
POST/api/external/timesheets/bulkAPI KeyBulk import timesheet entries
GET/api/external/timesheetsAPI KeyList timesheet entries
GET/api/external/timesheets/projectsAPI KeyList available projects
GET/api/external/timesheets/:idAPI KeyGet a timesheet entry
PATCH/api/external/timesheets/:idAPI KeyUpdate an entry
DELETE/api/external/timesheets/:idAPI KeyDelete an entry

🔌External API — Projects & Tasks

MethodEndpointAuthDescription
GET/api/external/projectsAPI KeyList projects
GET/api/external/projects/:idAPI KeyGet a project
POST/api/external/projectsAPI KeyCreate a project
PATCH/api/external/projects/:idAPI KeyUpdate a project
DELETE/api/external/projects/:idAPI KeyDelete a project
GET/api/external/projects/:id/tasksAPI KeyList tasks in project
POST/api/external/projects/:id/tasksAPI KeyCreate task in project
GET/api/external/tasksAPI KeyList tasks
GET/api/external/tasks/:idAPI KeyGet a task
POST/api/external/tasksAPI KeyCreate a task
PATCH/api/external/tasks/:idAPI KeyUpdate a task
DELETE/api/external/tasks/:idAPI KeyDelete a task
Need help integrating?

We're happy to help

Our team can walk you through the API, help with custom integrations, or point you to the right endpoint for your use case.

Contact support Download Postman Collection