All integrations

Everhour

PROJECT MANAGEMENT · TASKS

Projects, tasks, time records, timers, and invoices in the account they connected.

Acts as the person, not as itself

Each user connects their own account. Every call carries both identities — the agent and the person it is acting for — so the agent can never reach past what that individual can already do.

Credentials never touch the agent

Tokens live in the vault and attach server-side at call time. The agent holds a session, not a secret, and revoking access does not mean rotating a key.

Every call on the record

Who asked, which agent acted, which action ran, and the verdict that let it through — one audit trail across every integration, not one per vendor.

What an agent can do

Each action is granted on its own. An agent allowed to read is not thereby allowed to write, and the scope beside each row is what the acting user must have connected for it to run at all.

everhour_delete_allocations_by_allocation_idWRITE

Delete Allocation. DELETE /allocations/{allocation_id}. Delete a time-off allocation.

api
everhour_delete_attachments_by_attachment_idWRITE

Delete Attachment. DELETE /attachments/{attachment_id}. Delete an attachment and its underlying file.

api
everhour_delete_clients_by_client_idWRITE

Delete Client. DELETE /clients/{client_id}. Delete a client.

api
everhour_delete_clients_by_client_id_budgetWRITE

Delete Client Budget. DELETE /clients/{client_id}/budget. Remove the budget attached to a client. The client itself is kept.

api
everhour_delete_expenses_by_expense_idWRITE

Delete Expense. DELETE /expenses/{expense_id}. Delete an expense entry. Attached files are also removed.

api
everhour_delete_expenses_categories_by_category_idWRITE

Delete Category. DELETE /expenses/categories/{category_id}. Delete an expense category. Expenses already assigned to it are kept but become uncategorized.

api
everhour_delete_fields_by_field_idWRITE

Delete Field. DELETE /fields/{field_id}. Delete a custom field. Existing task values for that field are discarded.

api
everhour_delete_hooks_by_hook_idWRITE

Delete Webhook. DELETE /hooks/{hook_id}. Delete a webhook subscription. Stops further deliveries; no event is sent for the deletion itself.

api
everhour_delete_invoices_by_invoice_idWRITE

Delete Invoice. DELETE /invoices/{invoice_id}. Delete an invoice. Time records attached to the invoice are released and become billable again.

api
everhour_delete_projects_by_project_idWRITE

Delete Project. DELETE /projects/{project_id}. Delete a project, its tasks, and all associated time records. This is irreversible.

api
everhour_delete_resource_planner_assignments_by_assignment_idWRITE

Delete Assignment. DELETE /resource-planner/assignments/{assignment_id}. Delete a schedule assignment. You can include an optional `reason` (max 1000 characters) in the request body.

api
everhour_delete_resource_planner_time_off_types_by_type_idWRITE

Delete Time Off Type. DELETE /resource-planner/time-off-types/{type_id}. Delete a time-off type. Existing time-off entries that reference it are kept.

api
everhour_delete_sections_by_section_idWRITE

Delete Section. DELETE /sections/{section_id}. Delete a section. Tasks in the section are kept but become section-less.

api
everhour_delete_tasks_by_task_idWRITE

Delete Task. DELETE /tasks/{task_id}. Delete a task and all of its time records.

api
everhour_delete_tasks_by_task_id_estimateWRITE

Delete Task Estimate. DELETE /tasks/{task_id}/estimate. Remove a task's estimate.

api
everhour_delete_time_by_time_idWRITE

Delete Time Record. DELETE /time/{time_id}. Remove a time record by setting its duration to zero. The history trail is preserved; the row no longer appears in time listings, which filter for `time > 0`.

api
everhour_delete_timers_currentWRITE

Stop Timer. DELETE /timers/current. Stop the authenticated user's currently running timer. The accumulated duration is committed to a time record on the timer's task for the current date and returned in the response.

api
everhour_delete_users_by_user_id_timecards_by_dateWRITE

Delete Timecard. DELETE /users/{user_id}/timecards/{date}. Delete a user's timecard entry for a specific date.

api
everhour_get_allocationsREAD

Get All Allocations. GET /allocations. List per-user time-off allocations (e.g. annual vacation balances).

api
everhour_get_attachments_by_attachment_token_downloadREAD

Download Attachment. GET /attachments/{attachment_token}/download. Download the binary contents of an attachment by its token. The response is the raw file, not JSON. Returned as JSON: content_type, content_length and the bytes as content_base64 when the file is at most 4 MB; a larger file is described in `detail` and not carried.

api
everhour_get_clientsREAD

Get All Clients. GET /clients. Search Clients by Name using the query parameter.

api
everhour_get_clients_by_client_idREAD

Get Client. GET /clients/{client_id}. Retrieve a single client by ID.

api
everhour_get_dashboards_clientsREAD

Clients Report. GET /dashboards/clients. Aggregated client report. Same filters and units as `GET /dashboards/projects` — see Concepts.

api
everhour_get_dashboards_projectsREAD

Projects Report. GET /dashboards/projects. Aggregated project report. Returns time, billing, and budget figures grouped by project. Filter the result with `date.gte`, `date.lte`, `projectId`, `clientId`, and `memberId` query parameters — see Dates for parameter formats. Time columns are in seconds, amounts in cents (see Concepts).

api
everhour_get_dashboards_usersREAD

Users Report. GET /dashboards/users. Aggregated member report. Same filters and units as `GET /dashboards/projects` — see Concepts.

api
everhour_get_expensesREAD

Get All Expenses. GET /expenses. List expenses logged by the authenticated user.

api
everhour_get_expenses_categoriesREAD

Get All Categories. GET /expenses/categories. List expense categories available in the team.

api
everhour_get_hooksREAD

Get All Webhooks. GET /hooks. List all webhook subscriptions created with your API key.

api
everhour_get_hooks_by_hook_idREAD

Get Webhook. GET /hooks/{hook_id}. Retrieve a single webhook subscription.

api
everhour_get_invoicesREAD

Get All Invoices. GET /invoices. List invoices in the team. Supports filtering by date and client.

api
everhour_get_invoices_by_invoice_idREAD

Get Invoice. GET /invoices/{invoice_id}. Retrieve a single invoice with its full line-item breakdown.

api
everhour_get_projectsREAD

Get All Projects. GET /projects. List projects the caller has access to. Use the `query` parameter to search by name and `limit`/`page` for pagination — see Pagination.

api
everhour_get_projects_by_project_idREAD

Get Project. GET /projects/{project_id}. Retrieve a single project. See Concepts for the project model.

api
everhour_get_projects_by_project_id_fieldsREAD

Get Project Fields Configuration. GET /projects/{project_id}/fields. List the custom fields configured on a project, in display order.

api
everhour_get_projects_by_project_id_sectionsREAD

Get Project Sections. GET /projects/{project_id}/sections. List sections (groupings of tasks) within a project.

api
everhour_get_projects_by_project_id_tasksREAD

Get Project Tasks. GET /projects/{project_id}/tasks. List tasks in a project. By default all tasks are returned; set `exclude-closed=true` to hide closed/completed tasks. See Pagination for `limit`/`page` rules.

api
everhour_get_projects_by_project_id_tasks_searchREAD

Search Project Tasks. GET /projects/{project_id}/tasks/search. Search tasks within a single project. Same query semantics as `GET /tasks/search`; `limit` must be between 1 and 100.

api
everhour_get_projects_by_project_id_timeREAD

Get Project Time Records. GET /projects/{project_id}/time. List time records logged against a single project, across all users and tasks.

api
everhour_get_resource_planner_assignmentsREAD

Get All Assignments. GET /resource-planner/assignments. List schedule assignments across the team. Supports filtering by date range, project, and member.

api
everhour_get_resource_planner_time_off_typesREAD

Get Time Off Types. GET /resource-planner/time-off-types. List the time-off types defined for the team (e.g. Vacation, Sick Leave).

api
everhour_get_sections_by_section_idREAD

Get Section. GET /sections/{section_id}. Retrieve a single section by ID.

api
everhour_get_tasks_by_task_idREAD

Get Task. GET /tasks/{task_id}. Retrieve a single task with its time totals, estimate, and custom fields.

api
everhour_get_tasks_by_task_id_timeREAD

Get Task Time Records. GET /tasks/{task_id}/time. List time records logged against a single task, across all users.

api
everhour_get_tasks_searchREAD

Search Tasks. GET /tasks/search. Search tasks across all projects by name. The `limit` parameter must be between 1 and 100.

api
everhour_get_team_estimate_exportREAD

Estimates Report (deprecated). GET /team/estimate/export. Legacy export of team estimates, returned as JSON. Requires admin access. Kept for backward compatibility; new integrations should use the dashboard reports.

api
everhour_get_team_timeREAD

Get All Time Records. GET /team/time. List time records across the entire team for a date range. When `from`/`to` are omitted, only the current day is returned. See Dates.

api
everhour_get_team_time_exportREAD

Time Report (deprecated). GET /team/time/export. Legacy export of team time records, returned as JSON. Kept for backward compatibility; new integrations should use `GET /team/time` or the dashboard reports.

api
everhour_get_team_timersREAD

Get All Team Timers. GET /team/timers. List the timers currently running across the team — one entry per active user.

api
everhour_get_team_usersREAD

Get All Users. GET /team/users. List all members of the team. Supports `query` for name search and `limit` for pagination — see Pagination.

api
everhour_get_timecardsREAD

Get All Timecards. GET /timecards. List timecards across the team. Defaults to the last two weeks when no date range is provided — see Dates.

api
everhour_get_timers_currentREAD

Get Running Timer. GET /timers/current. Retrieve the authenticated user's currently running timer, or an empty timer payload if none is running.

api
everhour_get_timesheetsREAD

Get Team Timesheets. GET /timesheets. List timesheet weeks across the team, grouped by user.

api
everhour_get_users_by_user_id_timeREAD

Get User Time Records. GET /users/{user_id}/time. List time records for a single user. Supports the same filters as `GET /team/time`.

api
everhour_get_users_by_user_id_timecardsREAD

Get User Timecards. GET /users/{user_id}/timecards. List timecards for a single user. Defaults to the last two weeks when no date range is provided.

api
everhour_get_users_by_user_id_timecards_by_dateREAD

Get Timecard. GET /users/{user_id}/timecards/{date}. Retrieve a user's timecard for a specific date.

api
everhour_get_users_by_user_id_timesheetsREAD

Get User Timesheets. GET /users/{user_id}/timesheets. List timesheet weeks for a single user. The week id is the Monday date of the week (see Dates).

api
everhour_get_users_meREAD

Get Current User. GET /users/me. Retrieve the user that owns the API key, including personal settings (timezone, formats, API key).

api
everhour_patch_projects_by_project_id_archiveWRITE

Archive/Unarchive Project. PATCH /projects/{project_id}/archive. Archive or unarchive a project. Archived projects are hidden from default listings but their data is preserved.

api
everhour_post_allocationsWRITE

Create Allocation. POST /allocations. Create a time-off allocation for a user and time-off type.

api
everhour_post_attachmentsWRITE

Create Attachment. POST /attachments. Upload a file and receive a one-time attachment token. The token can then be attached to an expense via `POST /expenses/{expense_id}/attachments` or included in `POST /expenses`.

api
everhour_post_clientsWRITE

Create Client. POST /clients. Create a new client. Names are not deduplicated — posting the same name creates another client.

api
everhour_post_clients_by_client_id_invoicesWRITE

Create Invoice. POST /clients/{client_id}/invoices. Create an invoice for a client. The invoice is generated from the client's tracked time over the requested date range — see Dates.

api
everhour_post_expensesWRITE

Create Expense. POST /expenses. Log a new expense. Amounts are in cents (see Concepts); attach files first via `POST /attachments` and reference their IDs in the request body.

api
everhour_post_expenses_by_expense_id_attachmentsWRITE

Add Attachment To Expense. POST /expenses/{expense_id}/attachments. Attach a previously uploaded file (by its token from `POST /attachments`) to an existing expense.

api
everhour_post_expenses_categoriesWRITE

Create Category. POST /expenses/categories. Create a new expense category.

api
everhour_post_hooksWRITE

Create Webhook. POST /hooks. Register a new webhook subscription. Handshake: on create, Everhour sends a POST to the supplied `targetUrl` with an `X-Hook-Secret` header (HMAC-SHA512) and an empty body. The receiver must respond with a 2xx status to complete verification. Send `X-Skip-Handshake: 1` to skip verification when the receiver cannot participate. Scope: a webhook can listen across the whole team or be scoped to a single project. See Webhooks for event types, payload structure, and delivery semantics.

api
everhour_post_invoices_by_invoice_id_exportWRITE

Export Invoice to Xero/QB/FB. POST /invoices/{invoice_id}/export. Export an invoice to a connected external accounting system. Supports Xero, QuickBooks, and FreshBooks integrations — the destination must be linked to the team beforehand. An invoice can only be exported once; subsequent calls return an error.

api
everhour_post_invoices_by_invoice_id_reset_timeWRITE

Refresh Invoice Line Items. POST /invoices/{invoice_id}/reset-time. Refresh an invoice's line items from current time records. The invoice's billable items are rebuilt from the underlying time tracked against the invoice's client over its date range. Useful when time records have been added, edited, or deleted after the invoice was first generated.

api
everhour_post_projectsWRITE

Create Project. POST /projects. Create a new project. To copy from an existing template use the `template` or `publicTemplate` body field. To sync a project from a connected integration use `POST /projects/{project_id}/sync` instead.

api
everhour_post_projects_by_project_id_fieldsWRITE

Create Field in Project. POST /projects/{project_id}/fields. Create a new custom field on a project.

api
everhour_post_projects_by_project_id_sectionsWRITE

Create Section. POST /projects/{project_id}/sections. Create a new section in a project.

api
everhour_post_projects_by_project_id_syncWRITE

Sync Integration Project. POST /projects/{project_id}/sync. Sync new integration projects to Everhour. Traditionally, project sync relied on background jobs which could delay access to Everhour functionality. This endpoint allows instant synchronization of a project from a connected integration (like Trello, Asana, ClickUp, etc.) into Everhour. Useful for automation flows where you want to start working with a project immediately after creating it in your external tool. Safe to call multiple times — if the project already exists in Everhour, it simply returns it without creating duplicates. Workflow Create a project in your external tool (Asana, Trello, etc.) and retrieve its ID. Sync it to Everhour using this endpoint in Everhour API. Proceed with other Everhour API actions — assign a budget, link a client, or set task estimates. Supported platform codes: as, b2, b3, bb, cl, gh, gl, in, li, mo, no, td, tw, tr, wr.

api
everhour_post_projects_by_project_id_tasksWRITE

Create Task. POST /projects/{project_id}/tasks. Create a task in a project. For tasks coming from connected integrations, sync them via `POST /projects/{project_id}/sync` instead.

api
everhour_post_resource_planner_assignmentsWRITE

Create Assignment. POST /resource-planner/assignments. Create a schedule assignment. To create time-off use `POST /resource-planner/assignments/time-off` instead.

api
everhour_post_resource_planner_time_off_typesWRITE

Create Time Off Type. POST /resource-planner/time-off-types. Create a new time-off type.

api
everhour_post_timeWRITE

Add Time. POST /time. Add a time record (in seconds) for a user on a given task and date. Upsert: at most one time record exists per `(user, date, task)`. Posting again with the same combination updates the existing record's duration instead of creating a duplicate. To update a specific record by ID, use `PUT /time/{time_id}`. See Dates for accepted date and duration formats.

api
everhour_post_timersWRITE

Start Timer. POST /timers. Start a timer for the authenticated user on a given task. Only one timer can run per user at a time. If the user already has a timer running on another task, that timer is stopped automatically before the new one starts; the stopped run is committed to a time record on its own date (the date the timer was started, which may not be today for cross-midnight runs). See Concepts for timer semantics.

api
everhour_post_timesheets_by_timesheet_id_approvalWRITE

Approve Week/Request for Approval. POST /timesheets/{timesheet_id}/approval. Submit a timesheet week for approval. The week's owner uses this endpoint to request review; an approver acts on the request via `PUT /timesheets/{timesheet_id}/approval`. The `timesheet_id` is the concatenation of `user_id` and a 4-digit `week_id` in `YYWW` format (no separator). Example: user `14856` for week `2535` (week 35 of 2025) → `timesheet_id = 148562535`. See the Timesheets overview for the full Week ID definition.

api
everhour_post_users_by_user_id_timecards_clock_inWRITE

Clock In. POST /users/{user_id}/timecards/clock-in. Clock a user in. Starts a new timecard segment at the current time.

api
everhour_post_users_by_user_id_timecards_clock_outWRITE

Clock Out. POST /users/{user_id}/timecards/clock-out. Clock a user out. Closes the current timecard segment.

api
everhour_put_allocations_by_allocation_idWRITE

Update Allocation. PUT /allocations/{allocation_id}. Update a time-off allocation's amount or period.

api
everhour_put_clients_by_client_idWRITE

Update Client. PUT /clients/{client_id}. Update an existing client. Only the fields supplied in the body are modified.

api
everhour_put_clients_by_client_id_budgetWRITE

Update Client Budget. PUT /clients/{client_id}/budget. Create or replace the budget attached to a client. Send a complete budget object; partial updates are not supported.

api
everhour_put_expenses_by_expense_idWRITE

Update Expense. PUT /expenses/{expense_id}. Update an existing expense entry.

api
everhour_put_expenses_categories_by_category_idWRITE

Update Category. PUT /expenses/categories/{category_id}. Update an expense category.

api
everhour_put_fields_by_field_idWRITE

Update Field. PUT /fields/{field_id}. Update a custom field's name, type-specific options, or visibility.

api
everhour_put_hooks_by_hook_idWRITE

Update Webhook. PUT /hooks/{hook_id}. Update a webhook's events or scope. The `targetUrl` cannot be changed and is ignored if sent; the handshake is repeated against the existing URL to confirm it is still reachable. Send `X-Skip-Handshake: 1` to skip it.

api
everhour_put_invoices_by_invoice_idWRITE

Update Invoice. PUT /invoices/{invoice_id}. Update invoice metadata (notes, dates, custom totals). To change the lifecycle state, set `manualStatus` to `draft`, `sent`, or `paid`.

api
everhour_put_projects_by_project_idWRITE

Update Project. PUT /projects/{project_id}. Update project settings. To change budget or billable rate, use `PUT /projects/{project_id}/billing` instead.

api
everhour_put_projects_by_project_id_billingWRITE

Update Project Billing/Budget. PUT /projects/{project_id}/billing. Set or update the project's budget, billable rate, and billing type in a single call. Amounts are in cents (see Concepts).

api
everhour_put_projects_by_project_id_fields_orderWRITE

Reorder Fields. PUT /projects/{project_id}/fields-order. Reorder a project's custom fields. Send the full list of field IDs in the desired order.

api
everhour_put_resource_planner_assignments_by_assignment_idWRITE

Update Assignment. PUT /resource-planner/assignments/{assignment_id}. Update an existing schedule assignment.

api
everhour_put_resource_planner_time_off_types_by_type_idWRITE

Update Time Off Type. PUT /resource-planner/time-off-types/{type_id}. Update a time-off type's name, color, or settings.

api
everhour_put_sections_by_section_idWRITE

Update Section. PUT /sections/{section_id}. Update a section's name or position.

api
everhour_put_tasks_by_task_idWRITE

Update Task. PUT /tasks/{task_id}. Update task fields (name, status, due date, section, labels).

api
everhour_put_tasks_by_task_id_billingWRITE

Update Task Billing. PUT /tasks/{task_id}/billing. Set a task's billing rate or mark it non-billable. Requires admin access. The same values are returned on task responses when you pass `opts_include_billing=1`.

api
everhour_put_tasks_by_task_id_estimateWRITE

Update Task Estimate. PUT /tasks/{task_id}/estimate. Set or replace a task's estimate (in seconds). Send a complete estimate object; partial updates are not supported.

api
everhour_put_time_by_time_idWRITE

Update Time Record. PUT /time/{time_id}. Update a specific time record by ID. To add or upsert time, use `POST /time` instead.

api
everhour_put_timesheets_by_timesheet_id_approvalWRITE

Approve or Reject Approval Request. PUT /timesheets/{timesheet_id}/approval. Approve or reject an existing timesheet approval request. Use this endpoint to act on a request previously created with `POST /timesheets/{timesheet_id}/approval`. The response reflects the resulting approval state.

api
everhour_put_timesheets_by_timesheet_id_discard_approvalWRITE

Discard Your Approval Request. PUT /timesheets/{timesheet_id}/discard-approval. Retract the caller's previously submitted approval request for a week. The week returns to draft state.

api
everhour_put_users_by_user_id_timecards_by_dateWRITE

Update Timecard. PUT /users/{user_id}/timecards/{date}. Update (or create, if missing) a user's timecard for a specific date. Suitable for manual edits — clock-in and clock-out have dedicated endpoints.

api

Put Everhour behind one governed endpoint.

Same permissions, same audit trail, whatever else you connect next.