canonical: https://jentic.com/apis/nokotime.com/noko

# Nokotime Noko API

Jentic publishes the only available OpenAPI specification for Noko API, keeping it validated and agent-ready. Noko (formerly Freckle) is a time-tracking platform that helps freelancers, agencies, and teams log billable hours against projects, clients, and tasks, then turn those hours into invoices and reports. The API exposes time entries, projects, project groups, tags, timers, users, teams, invoices, and expenses, with bulk approval and invoicing workflows for client billing. Account holders use it to integrate Noko with billing tools, project management apps, and reporting dashboards.

## For AI agents

Log time entries, manage projects and timers, approve hours in bulk, and pull invoice and expense data from Noko time tracking on behalf of freelancers and agencies.

## Scope

Does not handle invoice PDF generation, payment collection, or payroll - use for time tracking, project hours, and entry approval only.

## Capabilities

- Create, edit, and delete time entries with project, tag, and billable rate metadata
- Approve or unapprove time entries individually or in bulk before invoicing
- Mark entries as invoiced when they are billed to a client through external accounting
- Manage projects, project groups, and tags used to categorise tracked time
- Start, pause, and stop running timers attached to specific projects
- Pull invoice and expense records to reconcile Noko data with accounting systems
- Manage team membership and per-user billable hours visibility

## Use cases

### Agency timesheet approval workflow

Agency owners approving consultant hours before invoicing need to see entries grouped by project and approve them in bulk rather than clicking each one. The Noko API exposes /entries with filtering by project and approval status, plus PUT `/entries/approved` for bulk approval, so an agent can present a weekly digest and apply approvals in a single call. This replaces the manual click-through-each-entry flow that scales poorly past 50 hours per week.

Example prompt: List unapproved entries for project 4567 from last week, then call PUT `/entries/approved` with the entry IDs to approve them all

### Project profitability reporting

Freelancers and agencies tracking margin per project pull tracked hours, billable rates, and expenses from Noko to compare against fixed-fee budgets. The /entries, /projects, and /expenses endpoints together provide hours-by-project, rate-by-user, and reimbursable cost data that an agent can roll up into a profitability dashboard. Noko's tag system lets the agent slice further by activity type such as discovery, design, or development.

Example prompt: Pull all entries for project 4567, sum the hours by tag, multiply by each user's billable rate, and compare against the project budget

### Stripe-to-Noko invoice reconciliation

When a Stripe payment lands for a tracked-hours invoice, the corresponding Noko entries should be marked as invoiced so they don't appear in next week's billing draft. The Noko `/entries/marked_as_invoiced` endpoint accepts a list of entry IDs, allowing an agent to flip the invoiced flag in a single call once the Stripe webhook fires. This closes the loop between accounting and time tracking without manual reconciliation.

Example prompt: When Stripe payment_intent.succeeded fires for invoice INV-203, call PUT `/entries/marked_as_invoiced` with the linked Noko entry IDs

### AI agent time logging on meeting end

An AI agent watching a calendar can automatically log meeting time to the right Noko project when a call ends. Through Jentic, the agent searches 'create a time entry', loads POST /entries, and submits the duration with the matched project and tag. This eliminates the after-meeting context switch that causes most freelancers to lose 10-15% of their billable hours.

Example prompt: Through Jentic, search 'create a time entry', load POST /entries, and submit a 60-minute entry against project 'Acme Discovery' with tag 'meeting'

## Key endpoints

| Method | Path | Description |
| --- | --- | --- |
| GET | `/entries` | List time entries with filters |
| POST | `/entries` | Create a time entry |
| PUT | `/entries/approved` | Bulk-approve a set of entries |
| PUT | `/entries/marked_as_invoiced` | Mark entries as invoiced after billing |
| GET | `/projects` | List projects |
| POST | `/projects` | Create a project |
| GET | `/timers` | List timers |
| GET | `/users` | List users on the account |

## Key resources

- **Entries** — Create, edit, approve, and mark time entries as invoiced individually or in bulk
- **Projects** — Manage projects and project groups that categorise tracked time
- **Timers** — Start, pause, and stop running timers attached to projects
- **Users and Teams** — Manage team members and view per-user time data
- **Invoices and Expenses** — Pull billing and reimbursable expense records for accounting integration
- **Tags** — Tag entries by activity type for slicing reports

## Why Jentic

- **Setup:** Wiring Noko by hand means implementing its bearer token auth against api.nokotime.com/v2 and threading that header through every entries, projects, and timers call yourself. Through Jentic you install once, import the Noko API from the API Directory, store the token once, and your agent calls it.
- **Permission scoping:** Noko takes the time entry in the request body rather than a resource id in the URL path, so scope the agent to the operations it needs, such as reading entries and creating a time entry. You choose that set, so approval operations like PUT `/entries/approved` or PUT `/entries/marked_as_invoiced` are not included unless you add them.
- **Credential handling:** Your Noko token 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 'create a time entry' or 'list project hours', and Jentic returns the matching Noko operation with its input schema so the agent calls POST /entries without browsing the reference docs.

## Related APIs

- **Toggl Track API** — Toggl Track is a time-tracking competitor with stronger reporting and a free tier; choose it for solo freelancers.
- **Clockify API** — Clockify is a free time-tracking alternative with unlimited users.
- **Everhour API** — Everhour focuses on embedding timers inside Asana, Trello, and Jira.
- **TimeCamp API** — TimeCamp adds automatic activity tracking on top of manual entries.

## FAQ

### Why is there no official OpenAPI spec for Noko API?

Noko does not publish an OpenAPI specification. Jentic generates and maintains this spec so that AI agents and developers can call Noko API via structured tooling. It is validated against the live API and kept up to date. Get started with Jentic One, the self-hosted execution layer.

### What authentication does the Noko API use?

Noko uses HTTP bearer authentication. You generate a personal access token in the Noko web app and pass it in the Authorization header. Through Jentic, the token is stored in the encrypted vault and never enters the agent's prompt context.

### Can I approve multiple Noko time entries in a single call?

Yes. PUT `/entries/approved` accepts an array of entry IDs and approves them in one request, while PUT `/entries/unapproved` reverses the action. Use `/entries/{id}/approved` for single-entry approval when reviewing entries one at a time.

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

Noko's published documentation does not state hard rate limits in the spec. Avoid polling /entries more than once per minute and prefer filtered queries over pulling the full entry list, especially for accounts with thousands of historical entries.

### How do I log a time entry through Jentic?

Install the SDK with pip install jentic, then search 'create a time entry', load POST /entries, and execute with the project ID, minutes, and date. The full flow runs without you handling the Noko bearer token in your code.

### Can the Noko API generate invoices from tracked hours?

Noko stores invoice records and entry-to-invoice associations but does not generate PDFs or send invoices to clients. Pair the /invoices read endpoints with an accounting API such as QuickBooks or Stripe to generate and deliver the invoice.

### Can I limit what my agent is allowed to do with the Noko API?

Yes. Because you run Jentic One yourself, your own rules decide which Noko operations and credentials the agent can use, so you scope it to only the calls it needs, such as reading entries with GET /entries and creating a time entry with POST /entries. Since Noko takes the time entry in the request body rather than a resource ID in the URL, write access is controlled at the operation level, and approval operations like PUT `/entries/approved` or PUT `/entries/marked_as_invoiced` stay out of reach unless you add them. Your stored Noko token is injected only at execution time for the operations you allow, never exposed to the agent's prompt.
