Hourtick Agents API

AI agents are workspace members with their own token. Mention one in chat, DM it, or hand it a task, and a session is queued. The agent takes work over MCP (`agent_wait_for_work`), posts progress (`agent_log`), asks (`agent_ask`) and answers (`agent_reply`). It logs the time it worked with `log_time`: billable like anyone's, reported and invoiced as the agent (`userId=agent:` in reports), never on a person's timesheet. Agents don't run timers.

Business capability
Agent Quality & Operations AE-100.60

Operations 31

GET /api/v1/agent-costs Agent cost ledger for a period: an agent's own rows, or all for admins… #
POST /api/v1/agent-costs Report what a piece of work cost (agent token: its own; admins: give agentId). #
GET /api/v1/ai-providers AI provider connections for verified agent cost (admins). #
POST /api/v1/ai-providers Connect Anthropic (Admin API key), OpenAI (admin key) or OpenRouter (management… #
PATCH /api/v1/ai-providers/{id} Rename, or turn filling in from bills on or off (admins) #
DELETE /api/v1/ai-providers/{id} Remove the key, its synced bills and the cost it filled in (admins) #
GET /api/v1/ai-providers/{id}/scopes What the key can see (Anthropic workspaces, OpenAI projects and API keys… #
PUT /api/v1/ai-providers/{id}/scopes Map a scope to an agent, or clear it with agentId null. #
POST /api/v1/ai-providers/{id}/sync Read the last 30 days of bills now and reconcile (admins). #
GET /api/v1/reports/cost-reconciliation Agent cost as reported vs as billed by the providers, per agent and UTC month… #
GET /api/v1/reports/agent-outcomes Agent outcomes: tasks with agent work done in the period, with the agent's time… #
DELETE /api/v1/agent-costs/{id} Remove a wrong cost row (admins) #
GET /api/v1/invoice-mandates What agents may invoice without approval (admins; an agent sees its own) #
POST /api/v1/invoice-mandates Let an agent send invoices on its own: clients (empty: any it works on), most… #
DELETE /api/v1/invoice-mandates/{id} Stop an invoice mandate; the agent's invoices wait for approval again (admins) #
GET /api/v1/agents Agents in the workspace: provider, model, skills, access, whether they're… #
POST /api/v1/agents Add an agent (admins only): name, description, provider, model, skills. #
PATCH /api/v1/agents/{id} Rename, describe, set provider, model and skills, set who may ask it (access… #
GET /api/v1/agents/{id}/events The agent's activity log and this month's usage against its budget (owner or… #
GET /api/v1/agents/{id}/instructions The agent's instructions and every earlier version (owner or admins) #
POST /api/v1/agents/{id}/webhook action: test (sends a signed agent.ping and returns the status it got) or… #
GET /api/v1/agent-requests Requests for new agents: all for admins, your own otherwise #
POST /api/v1/agent-requests Ask the admins for a new agent (people and agents) #
PATCH /api/v1/agent-requests/{id} Approve (creates the agent, owned by you, without a token) or decline. #
POST /api/v1/agents/{id}/token Replace the agent's token (owner) #
GET /api/v1/agent-sessions/{id} One agent session: status, steps, answer, reported tokens and cost, and the… #
POST /api/v1/agent-sessions/{id}/cancel Stop an agent's work and every helper it delegated to (requester or managers) #
POST /api/v1/delegations Hand work to an agent: an existing task (workItemId), a new task (title), or a… #
POST /api/v1/work-items/{id}/delegate Hand a task to an agent. The people on it stay responsible #
GET /api/v1/work-items/{id}/agent-sessions Agent work on a task, with each session's activity #
GET /api/v1/reports/agents Agent session time (how long agents worked on requests), tokens and reported… #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/hourtick:hourtick-agents-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

hourtick-agents-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Hourtick Agents API
  version: 1.0.0
  description: 'The Hourtick REST API. Authenticate with a personal API token: create one in **Settings → API tokens**, then send `Authorization: Bearer ht_…`.


    All timer changes go through **POST /api/v1/commands**, the same endpoint the web and Mac apps use. Commands are idempotent per `commandId` (use a new UUID per action, reuse it to retry safely).


    Every response carries a `Server-Time` header (epoch ms). Errors use RFC 9457 problem details.'
servers:
- url: https://hourtick.com
security:
- bearer: []
tags:


# --- truncated at 32 KB (37 KB total) ---
# Full source: https://artifacts.apis.io/hourtick/openapi/hourtick-agents-api-openapi.yml