HHorixa

Built for developers

Horixa is API-first: every piece of data in the application can be read through the REST API, and written in every module, from relations, projects, services, tasks and hours to opportunities, leave, absence, planning and invoicing. The API enforces the same rules as the screen: an invoiced time entry locks, a service with hours on it stays put, and an invoice takes its number from the same gapless sequence. The endpoint structure (/api/v2/…) follows common conventions. Automate with webhooks or connect external packages.

Authentication

Create an API key in Horixa with exactly the scopes you need (such as crm:read or hours:write) and send it as a bearer token:

curl https://horixa.nl/api/v2/crm/organization \
  -H "Authorization: Bearer hx_live_XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"

Rate limit: 120 requests per minute per key, with standard X-RateLimit-* headers.

Endpoints per module

Everything lives under /api/v2/<module>/…. Lists paginate with limit and offset; detail endpoints include the underlying rows (invoice lines, quote lines, the services of a project).

CRMorganization · organization/{id} · person · person/{id} · contactrole · note · relationtype · customfield · customfieldvaluecrm:read · crm:write
writing: create and update organisations, contacts and interactions
Projectsproject · project/{id} · service · service/{id} · servicerate · task · task/{id} · templateprojects:read · projects:write
writing: create, update and delete projects, services and tasks
Hourshours · hours/{id} · hourstypehours:read · hours:write
writing: write, change and delete time entries
Invoicinginvoice · invoice/{id} · invoice/{id}/finalize · payment · installment · companyprofileinvoices:read · invoices:write
writing: record payments and finalise a draft
Purchasingpurchaseinvoice · purchaseinvoice/{id} · cost · cost/{id}invoices:read · invoices:write
writing: record, update and delete purchase invoices and project costs
Salessales · sales/{id} · quote · quote/{id} · stagesales:read · sales:write
writing: create, update (including won/lost) and delete opportunities
HR & planningemployee · employee/{id} · leave · leave/{id} · leavetype · leavebalance · absence · absence/{id} · contract · team · planning · planning/{id}hrm:read · hrm:write
writing: request and approve leave, report and close absence, plan capacity
Documentsdocumentcrm:read (+ invoices:read for invoice PDFs)
writing: none

Browse the full API documentation (in Dutch) with every endpoint, parameter, schema and scope, or download the always-current specification as openapi.json (OpenAPI 3.1), with 48 paths and 82 operations.

Webhooks

Subscribe to events such as hours.created or organization.created. Every delivery is signed with an X-Horixa-Signature HMAC header and is retried automatically with exponential backoff on failure.

AI-ready through MCP

Horixa has a built-in MCP server (Model Context Protocol), the open standard that lets AI assistants talk to software safely. The address is https://horixa.nl/api/mcp and there are two ways to connect to it.

Without a key, through OAuth 2.1

Web connectors such as Claude.ai and ChatGPT connect themselves: add Horixa as a connector, enter the address, sign in with your Horixa account and approve access. Horixa is a full OAuth 2.1 authorisation server with dynamic client registration (RFC 7591), PKCE and metadata discovery at /.well-known/oauth-authorization-server, so the client handles the rest. The assistant gets exactly the permissions of the signed-in user, and you revoke access again under Settings → AI & API.

With an API key

Tools that do not speak OAuth themselves, such as Claude Code and Cursor, connect with a Horixa API key as a bearer token. The scopes of that key then apply. Useful for a fixed integration or a script that runs without a signed-in user.

Both routes are read-only and stay strictly inside your own environment: querying hours, projects, invoices and clients is possible, changing them is not.

# Claude Code
claude mcp add --transport http horixa https://horixa.nl/api/mcp \
  --header "Authorization: Bearer hx_live_YOUR_KEY"

# Cursor / VS Code (mcp.json)
{ "mcpServers": { "horixa": {
    "url": "https://horixa.nl/api/mcp",
    "headers": { "Authorization": "Bearer hx_live_YOUR_KEY" } } } }

Available tools include hour summaries, project status, outstanding invoices, work in progress, the sales pipeline and client and employee lookups. The full setup guide lives inside Horixa under Settings → AI & API.

Questions about the API, or building an integration?

Get in touch