/v1. This API is designed for automation tools such as Zapier, Make, and n8n.
No-code endpoints use REST methods, query strings for filters, and JSON request bodies for create and update actions.
Base URL
Authentication
Create an API key in Hellotracks under More -> API & Integrations. Send the key in theAPI-Key header.
Response Format
List and action responses return adata object. Most connector endpoints return an items array inside data.
data.items before returning records to Zapier, Make, or n8n.
Error Format
Failed requests may return anerror object. Treat error.message as the user-facing failure reason.
| Status | Meaning |
|---|---|
400 | Invalid request data. |
401 | Missing or invalid API key. |
403 | API key does not have access to the requested resource. |
429 | Rate limit reached. |
500 | Hellotracks API is temporarily unavailable. |
Authentication Test
Use this endpoint to validate that an API key works.Jobs
Watch or list jobs
UseGET /jobs for polling triggers, job dropdowns, and lookup flows.
| Parameter | Type | Description |
|---|---|---|
createdSince | timestamp in milliseconds | Return jobs created since this timestamp. Used by “New Job” polling triggers. |
updatedSince | timestamp in milliseconds | Return jobs changed since this timestamp. Used by “Updated Job” and completed-job polling triggers. |
progress | string | Optional progress filter, for example scheduled, success, or failed. |
includeArchived | boolean | Include archived or deleted jobs. Connectors usually send true for lookups and polling. |
limit | number | Maximum number of jobs to return. Zapier uses 100 for polling and 1 for exact lookup. |
skip | number | Offset for pagination. |
externalId | string | Find a job by external dedupe ID. |
assigneeUsername | string | Filter jobs assigned to a member username. |
Get a job
UseGET /jobs/{id} when you already have the Hellotracks job ID.
Create a job
UsePOST /jobs to create a job. If externalId matches an existing job, Hellotracks uses it as a stable dedupe key and may update the existing job.
| Field | Type | Description |
|---|---|---|
externalId | string | Stable ID from the source app. Use this for dedupe and later lookups. |
title | string | Job title. Required by the public connectors when creating a job. |
address | string | Human-readable job address. Preferred for no-code connectors. |
notes | string | Job notes or instructions. |
date | string | Job date in YYYY-MM-DD format. |
assigneeUsername | string | Hellotracks member username, often the member email or login name. |
priority | integer | Optional priority from 0 to 10. |
contact.name | string | Contact name. |
contact.phone | string | Contact phone. |
contact.email | string | Contact email. |
timeWindow.start | string | Start time in HH:mm format. |
timeWindow.end | string | End time in HH:mm format. |
placeId | string | Optional advanced field for existing Hellotracks places. Prefer address in no-code workflows unless you already have a valid place ID. |
Update a job
UsePATCH /jobs to update an existing job. Send the Hellotracks job id in the JSON body and include only the fields you want to change.
Archive a job
Use archive when the job should no longer appear in active schedules but should remain recoverable in Hellotracks.Delete a job
Use delete only for disposable or intentionally removed jobs.Job Object
Connector responses include stable job fields.Members
Use members for assignment lookups, dropdowns, and exact-match searches.| Parameter | Type | Description |
|---|---|---|
query | string | Search text. Can be an email, username, name, or UID. |
max | number | Maximum number of members to return. Connectors use 50. |
| Field | Type | Description |
|---|---|---|
id | string | Hellotracks member UID. |
username | string | Member username. |
email | string | Member email address. |
name | string | Member display name. |
Connector Behavior
Zapier, Make, and n8n use the same production/v1 contract:
| Connector capability | API request |
|---|---|
| Validate connection | GET /auth/whoami |
| New Job trigger | GET /jobs?createdSince=...&includeArchived=true&limit=100 |
| Updated Job trigger | GET /jobs?updatedSince=...&includeArchived=true&limit=100 |
| Completed Job trigger | GET /jobs?updatedSince=...&includeArchived=true&limit=100, filtered to progress: "success" |
| Create Job action | POST /jobs |
| Update Job action | PATCH /jobs with id in the JSON body |
| Archive Job action | POST /jobs/{id}/archive |
| Delete Job action | DELETE /jobs/{id} |
| Find Job search | GET /jobs?externalId=...&includeArchived=true&limit=1 |
| Find Member search | GET /members?query=...&max=50 |