Version 1. Read and write the CRM from other systems.
https://crm.handee.co.za/api/v1Authorization: Bearer sl_…. Keys are made by a Handee HQ admin under Settings → API, with read or read-and-write access.limit (up to 100) and cursor, returning { items, nextCursor, total }. Writes accept an Idempotency-Key header. Errors are always { "error": { "code", "message" } }.curl -H "Authorization: Bearer sl_…" "https://crm.handee.co.za/api/v1/me"
curl -H "Authorization: Bearer sl_…" "https://crm.handee.co.za/api/v1/contacts?q=absa&limit=20"
curl -X POST -H "Authorization: Bearer sl_…" -H "Content-Type: application/json" \
-d '{"companyId":"<id>","fullName":"Jane Dlamini","email":"jane@acme.co.za"}' "https://crm.handee.co.za/api/v1/contacts"The same operations are available as MCP tools over streamable HTTP at https://crm.handee.co.za/mcp. Claude connects with OAuth (it sends you to Handee HQ to sign in and approve); other clients can send a Handee HQ API key as a bearer token. Discovery documents: /.well-known/oauth-protected-resource and /.well-known/oauth-authorization-server.
| Method | Path | What it does | Needs |
|---|---|---|---|
| GET | /api/v1/health | Liveness and version | Nothing |
| GET | /api/v1/me | Who this key or session is | Read key |
| GET | /api/v1/search | Find companies or people by name, email, domain or job title | Read key |
| GET | /api/v1/companies | List companies | Read key |
| POST | /api/v1/companies | Create a company | Read and write key |
| GET | /api/v1/companies/{id} | One company in full: team, contracts, deals, recent activity | Read key |
| GET | /api/v1/contacts | List contacts | Read key |
| POST | /api/v1/contacts | Create a contact (returns the existing one if the email is already known) | Read and write key |
| GET | /api/v1/contacts/{id} | One contact in full | Read key |
| PATCH | /api/v1/contacts/{id} | Update fields on a contact | Read and write key |
| POST | /api/v1/contacts/{id}/outreach | Set a contact's outreach status | Read and write key |
| GET | /api/v1/opportunities | List opportunities (deals) | Read key |
| POST | /api/v1/opportunities | Create an opportunity (deal) | Read and write key |
| GET | /api/v1/opportunities/{id} | One deal with its contact, contracts and documents | Read key |
| PATCH | /api/v1/opportunities/{id} | Update a deal: value, dates, status (onboarding/won/lost/on_hold), description | Read and write key |
| GET | /api/v1/contracts | List contracts (retainers and ad hoc jobs) | Read key |
| POST | /api/v1/contracts | Create a contract (retainer or ad hoc job) for a company; a proposed, active or paused one makes the company an active client (relationship Client), as in Handee HQ | Read and write key |
| GET | /api/v1/contracts/{id} | One contract with its documents | Read key |
| PATCH | /api/v1/contracts/{id} | Update a contract: status, dates, fee, hourly rates, account manager, the deal it came from | Read and write key |
| GET | /api/v1/employees | List employees with current rates | Read key |
| GET | /api/v1/employees/{id} | One employee with rates and documents | Read key |
| GET | /api/v1/documents | List documents on a company, deal, contract or employee, oldest first (sort by docDate for the latest) | Read key |
| POST | /api/v1/documents | Attach a document: text rendered to DOCX/PDF, a base64 file, or a link; named by the standard convention | Read and write key |
| GET | /api/v1/documents/{id} | One document's details (its bytes are at /documents/{id}/file) | Read key |
| DELETE | /api/v1/documents/{id} | Remove a document and its file | Read and write key |
| POST | /api/v1/documents/{id}/send-for-signature | Send a document to e-sign: a client's services schedule, NDA, terms or contract to a contact, or an employee's contract, NDA or review to the employee (Handee countersigns); the signed PDF replaces the document when done. Proposals are not signed. | Read and write key |
| GET | /api/v1/documents/{id}/signature | Where a document's signature request stands | Read key |
| POST | /api/v1/documents/{id}/signature/remind | Send the signing email again to whoever has not signed | Read and write key |
| DELETE | /api/v1/documents/{id}/signature | Withdraw an open signature request (one already signed or declined in Documenso is filed as that instead; check the status returned) | Read and write key |
| GET | /api/v1/canvas | Files waiting on the Canvas to be filed | Read key |
| POST | /api/v1/canvas | Drop a file on the Canvas to be filed later: text rendered to DOCX/PDF, a base64 file, or a link, with a note and hints | Read and write key |
| POST | /api/v1/canvas/{id}/file | File a Canvas item onto a company, deal, contract or employee as a kind of document | Read and write key |
| DELETE | /api/v1/canvas/{id} | Discard a Canvas item | Read and write key |
| GET | /api/v1/money | Money summary for a year | Read key |
| GET | /api/v1/due | What needs attention: contracts and employee agreements ending within 60 days (or past their end while still open), and documents sent for signature waiting 7 days or more | Read key |
| POST | /api/v1/activities | Log an activity (note, email, call, meeting, linkedin) against a contact or company | Read and write key |