canonical: https://jentic.com/apis/everhour.com/everhour

# Everhour Time Tracking API

The Everhour API is the programmatic surface for the Everhour time tracking and project budgeting platform. Forty operations across 24 paths cover clients, invoices, expenses, projects, tasks, time records, timers, timecards, timesheets, users, and resource planning. Authentication is via API key, and the API is well suited to syncing project time and budget data into accounting tools, BI dashboards, and AI agents that answer 'how many hours have we billed this client this month?'

## For AI agents

Manage Everhour clients, invoices, expenses, projects, tasks, and time records, and post or correct time entries on behalf of users.

## Scope

Does not handle payroll, payment collection, or document signing - use for Everhour time tracking, project budgeting, and invoicing only.

## Capabilities

- Manage clients and per-client budgets via the /clients endpoints
- Create, send, and update invoices including expense line items
- Track expenses by project and reconcile them against time records
- Manage projects and the tasks within them, including task search
- Post time records and adjust existing entries
- Read timecards, timesheets, and resource planning data for capacity reporting

## Use cases

### Time-to-Invoice Sync

Mirror Everhour time records and expenses into the accounting system so monthly invoicing is driven by actual tracked hours rather than manual exports. The /invoices, /expenses, and /time endpoints provide the structured data, and the per-client invoice endpoints let automation create, update, and finalise invoices. A working sync takes 1-2 days and saves finance teams hours per month.

Example prompt: For each client, pull /clients/{client_id}/invoices for the current period, plus matching /expenses, and post a draft invoice into the connected accounting tool

### Project Budget Monitoring

Run a daily check that compares logged time against project budgets so project managers are warned before a project goes over. The /projects and /clients/{client_id}/budget endpoints expose the budget structure, and the /time and /tasks endpoints provide the actuals. Reports are produced in seconds per project.

Example prompt: For every active project, sum tracked /time hours and post a Slack alert if the project is at or above 80 percent of its budget

### Capacity and Resource Planning

Power a capacity dashboard by combining timecards, timesheets, and resource planning data so leaders can see who is over-committed and where there is slack. The Everhour API exposes all three resources, and the data refreshes in seconds. This replaces manual spreadsheet planning.

Example prompt: Pull this week's timesheets and resource plans and post the names of the three people most over their target utilisation to the leadership channel

### AI Agent Integration via Jentic

Connect Everhour to an AI assistant through Jentic so team members can post time records, check budgets, or run reports in chat. Jentic search resolves natural-language intents to the right Everhour operation and the vault holds the API key. Setup takes minutes once Everhour is connected.

Example prompt: Search Jentic for 'log everhour time entry', load the POST /time operation, and post '2 hours on task_123 today' captured from chat

## Key endpoints

| Method | Path | Description |
| --- | --- | --- |
| GET | /clients | List clients |
| POST | /clients | Create a client |
| GET | /projects | List projects |
| GET | /projects/{project_id}/tasks | List tasks in a project |
| GET | /tasks/search | Search tasks |
| POST | /time | Post a time record |
| GET | /invoices | List invoices |
| POST | /expenses | Post an expense |

## Key resources

- **Clients** — Manage clients and per-client budgets
- **Invoices** — Create, list, update, and finalise invoices
- **Expenses** — Track and update expenses tied to projects
- **Projects and Tasks** — Manage projects and the tasks within them, including task search
- **Time** — Post and adjust time records, including timecards and timesheets

## Why Jentic

- **Setup:** Wiring Everhour by hand means learning its X-API-Key header, pointing at the api.everhour.com host, and coding the client, project, time, and invoice calls yourself. Through Jentic you install once, import the Everhour Time Tracking API from the API Directory, store the key once, and your agent calls it.
- **Permission scoping:** Everhour puts the project id in the path for task reads (/projects/{project_id}/tasks) but takes time entries and expenses in the request body, so scope the agent to the operations it needs, such as logging a time entry and reading projects, rather than to one record. Every operation you credit the agent with comes from the allowed set you define.
- **Credential handling:** Your Everhour API key is stored once, encrypted, by your own Jentic One instance and injected at execution time. It never enters the agent's prompt, logs, or context.
- **Discovery method:** Agents search Jentic by intent such as 'log an everhour time entry' or 'search tasks', and Jentic returns the matching Everhour operation with its input schema so the agent calls the right endpoint without browsing the reference docs.

## Related APIs

- **TimeCamp API** — Time tracking and timesheet platform with project budgeting
- **Toggl Track API** — Lightweight time tracking with strong reporting
- **Asana API** — Manage tasks in Asana while tracking time against them in Everhour
- **Xero Accounting API** — Push Everhour invoices into Xero for full accounting workflows

## FAQ

### What authentication does the Everhour API use?

The Everhour API uses an API key (apiKeyAuth scheme). Through Jentic, the key is stored in the encrypted vault and injected at execution time, so it never appears in the agent's prompt or in logs.

### Can I post time records through the Everhour API?

Yes. POST /time creates a new time record, PUT /time/{time_id} updates an existing one, and DELETE /time/{time_id} removes it. This is the right surface for chat-based time logging or downstream sync from another tool.

### What are the rate limits for the Everhour API?

The OpenAPI spec does not declare explicit rate limits. Treat the API as standard for SaaS and back off on HTTP 429; consult Everhour developer documentation for current published limits before bulk syncs.

### How do I create an invoice through Jentic?

Search Jentic for 'everhour create invoice', load the POST /clients/{client_id}/invoices operation, and execute it with the line items. Install with pip install jentic and use the async search, load, execute pattern.

### Does the Everhour API support project budgets?

Yes. PUT /clients/{client_id}/budget sets a client-level budget and DELETE /clients/{client_id}/budget removes it. Combine with /projects and /time to monitor burn rate over the budget.

### Can I search tasks across all projects?

Yes. GET /tasks/search returns tasks matching a query string, which is faster than listing every project's tasks individually when looking for a specific work item.

### Can I limit what my agent is allowed to do with the Everhour Time Tracking API?

Yes. Because Jentic One is self-hosted, you decide which Everhour operations your agent may call, and it can only use the set you allow. You might permit posting a time record with POST /time and reading projects with GET /projects while withholding invoice or expense operations such as POST /clients/{client_id}/invoices or POST /expenses. Note that Everhour puts the project id in the path for task reads like GET /projects/{project_id}/tasks but takes time entries and expenses in the request body, so you scope the agent by the operations it needs rather than by a single record, and it uses your stored key only for those calls.
