Skip to main content

Documentation Index

Fetch the complete documentation index at: https://api-docs.hellotracks.com/llms.txt

Use this file to discover all available pages before exploring further.

Hellotracks no-code connectors use a REST API under /v1. This API is designed for automation tools such as Zapier, Make, and n8n. The no-code API is separate from the legacy Hellotracks API under https://api.hellotracks.com/api/.... Legacy endpoints use POST requests with a data wrapper. No-code endpoints use REST methods, query strings, and JSON request bodies.

Base URL

https://api.hellotracks.com/v1
Use the production base URL above for public Zapier, Make, and n8n workflows.

Authentication

Create an API key in Hellotracks under More -> API & Integrations. Send the key in the API-Key header.
curl "https://api.hellotracks.com/v1/auth/whoami" \
  --header "API-Key: YOUR_API_KEY" \
  --header "Accept: application/json"
All connector requests use JSON and include:
API-Key: YOUR_API_KEY
Accept: application/json
Content-Type: application/json

Response Format

List and action responses return a data object. Most connector endpoints return an items array inside data.
{
  "data": {
    "items": [
      {
        "id": "69fdc0f846455e452430b4b5",
        "externalId": "SRP-4828",
        "title": "Emergency Exit Lighting Inspection",
        "progress": "scheduled"
      }
    ]
  }
}
Connector packages unwrap data.items before returning records to Zapier, Make, or n8n.

Error Format

Failed requests may return an error object. Treat error.message as the user-facing failure reason.
{
  "error": {
    "message": "Invalid Hellotracks API key."
  }
}
Common HTTP statuses:
StatusMeaning
400Invalid request data.
401Missing or invalid API key.
403API key does not have access to the requested resource.
429Rate limit reached.
500Hellotracks API is temporarily unavailable.

Authentication Test

Use this endpoint to validate that an API key works.
GET /auth/whoami
Example:
curl "https://api.hellotracks.com/v1/auth/whoami" \
  --header "API-Key: YOUR_API_KEY"

Jobs

Watch or list jobs

Use GET /jobs for polling triggers, job dropdowns, and lookup flows.
GET /jobs
Query parameters:
ParameterTypeDescription
createdSincetimestamp in millisecondsReturn jobs created since this timestamp. Used by “New Job” polling triggers.
updatedSincetimestamp in millisecondsReturn jobs changed since this timestamp. Used by “Updated Job” and completed-job polling triggers.
progressstringOptional progress filter, for example scheduled, success, or failed.
includeArchivedbooleanInclude archived or deleted jobs. Connectors usually send true for lookups and polling.
limitnumberMaximum number of jobs to return. Zapier uses 100 for polling and 1 for exact lookup.
skipnumberOffset for pagination.
externalIdstringFind a job by external dedupe ID.
assigneeUsernamestringFilter jobs assigned to a member username.
Examples:
curl "https://api.hellotracks.com/v1/jobs?updatedSince=0&includeArchived=true&limit=100" \
  --header "API-Key: YOUR_API_KEY"
curl "https://api.hellotracks.com/v1/jobs?externalId=SRP-4828&includeArchived=true&limit=1" \
  --header "API-Key: YOUR_API_KEY"

Get a job

Use GET /jobs/{id} when you already have the Hellotracks job ID.
GET /jobs/{id}
Example:
curl "https://api.hellotracks.com/v1/jobs/69fdc0f846455e452430b4b5" \
  --header "API-Key: YOUR_API_KEY"

Create a job

Use POST /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.
POST /jobs
Request body:
{
  "externalId": "SRP-4828",
  "title": "Emergency Exit Lighting Inspection",
  "address": "South Road, San Francisco, CA",
  "notes": "Inspect emergency lighting after reported outage.",
  "date": "2026-05-10",
  "assigneeUsername": "worker@example.com",
  "priority": 7,
  "contact": {
    "name": "Olivia Martinez",
    "phone": "+14155556789",
    "email": "olivia@example.com"
  },
  "timeWindow": {
    "start": "09:00",
    "end": "17:00"
  }
}
Supported connector fields:
FieldTypeDescription
externalIdstringStable ID from the source app. Use this for dedupe and later lookups.
titlestringJob title. Required by the public connectors when creating a job.
addressstringHuman-readable job address. Preferred for no-code connectors.
notesstringJob notes or instructions.
datestringJob date in YYYY-MM-DD format.
assigneeUsernamestringHellotracks member username, often the member email or login name.
priorityintegerOptional priority from 0 to 10.
contact.namestringContact name.
contact.phonestringContact phone.
contact.emailstringContact email.
timeWindow.startstringStart time in HH:mm format.
timeWindow.endstringEnd time in HH:mm format.
placeIdstringOptional advanced field for existing Hellotracks places. Prefer address in no-code workflows unless you already have a valid place ID.

Update a job

Use PATCH /jobs to update an existing job. Send the Hellotracks job id in the JSON body and include only the fields you want to change.
PATCH /jobs
Request body:
{
  "id": "69fdc0f846455e452430b4b5",
  "title": "Emergency Exit Lighting Inspection - Updated",
  "notes": "Bring a replacement battery pack.",
  "assigneeUsername": "worker@example.com"
}

Archive a job

Use archive when the job should no longer appear in active schedules but should remain recoverable in Hellotracks.
POST /jobs/{id}/archive
Example:
curl -X POST "https://api.hellotracks.com/v1/jobs/69fdc0f846455e452430b4b5/archive" \
  --header "API-Key: YOUR_API_KEY"

Delete a job

Use delete only for disposable or intentionally removed jobs.
DELETE /jobs/{id}
Example:
curl -X DELETE "https://api.hellotracks.com/v1/jobs/69fdc0f846455e452430b4b5" \
  --header "API-Key: YOUR_API_KEY"

Job Object

Connector responses include stable job fields.
{
  "id": "69fdc0f846455e452430b4b5",
  "externalId": "SRP-4828",
  "title": "Emergency Exit Lighting Inspection",
  "address": "South Road, San Francisco, CA",
  "date": "2026-05-10",
  "progress": "scheduled",
  "createdAt": 1777540000000,
  "updatedAt": 1777540060000,
  "assignee": {
    "id": "ce2fg4",
    "username": "worker@example.com",
    "email": "worker@example.com",
    "name": "Worker Name"
  },
  "contact": {
    "name": "Olivia Martinez",
    "phone": "+14155556789",
    "email": "olivia@example.com"
  }
}

Members

Use members for assignment lookups, dropdowns, and exact-match searches.
GET /members
Query parameters:
ParameterTypeDescription
querystringSearch text. Can be an email, username, name, or UID.
maxnumberMaximum number of members to return. Connectors use 50.
Example:
curl "https://api.hellotracks.com/v1/members?query=worker%40example.com&max=50" \
  --header "API-Key: YOUR_API_KEY"
Member response fields:
FieldTypeDescription
idstringHellotracks member UID.
usernamestringMember username.
emailstringMember email address.
namestringMember display name.

Connector Behavior

Zapier, Make, and n8n use the same production /v1 contract:
Connector capabilityAPI request
Validate connectionGET /auth/whoami
New Job triggerGET /jobs?createdSince=...&includeArchived=true&limit=100
Updated Job triggerGET /jobs?updatedSince=...&includeArchived=true&limit=100
Completed Job triggerGET /jobs?updatedSince=...&includeArchived=true&limit=100, filtered to progress: "success"
Create Job actionPOST /jobs
Update Job actionPATCH /jobs with id in the JSON body
Archive Job actionPOST /jobs/{id}/archive
Delete Job actionDELETE /jobs/{id}
Find Job searchGET /jobs?externalId=...&includeArchived=true&limit=1
Find Member searchGET /members?query=...&max=50