The request
Reference for List area jobs, HeadHoncho API v1. It is a read, sent to the base address https://api.headhoncho.app.
GET /api/v1/statistics/area-jobs
The key needs the Statistics and marketing area at read. An answered call costs 1 credit; a refusal costs nothing. See credits.
Send your key as Authorization: Bearer hh_live_.... See API keys.
Parameters
| Name | Kind | Required | Description | Example |
|---|---|---|---|---|
company_id | id, in the query | No | One company. Default: every company the credential reaches. | cmp_14f5 |
from | date, in the query | No | First day. Default: the last 30 days, as the Statistics panel does. | 2026-10-01 |
to | date, in the query | No | Last day, included. Default: today in the company's time zone. | 2026-10-26 |
by_date | text, in the query | No | Which date puts a job in the range: created (default), scheduled or closed. One of created, scheduled, closed. | created |
postal_code | text, in the query | No | The area's postal code, from Jobs by area. Empty for the jobs with none. | 61701 |
city | text, in the query | No | The area's city, from Jobs by area. A postal code can cover several cities. | Bloomington |
page | number, in the query | No | Default 1. | 1 |
Try it with your key
Paste your key and change the values. The box builds the call as a cURL line and a fetch line, ready to copy. It never sends anything itself.
Your key stays in this page and is never sent anywhere. Copy the line below and run it yourself.
What comes back
items, one job each: job_id, number, client_name, client_phone, address, status (name, slug), quoted_price, net (profit on the job), created_at, scheduled_start, workers, source, lat, lng; total, page, pages, page_size and label.
It never changes a record. It only reads the companies the key reaches.
Every field in the answer
Types are read from the example answer. Money is a plain number in the company's currency. A time carries its offset from UTC (Z is UTC). Ids are opaque text. A field with no line of its own here has its name spelled out; the common fields mean the same on every page.
| Field | Type | Meaning |
|---|---|---|
items | list of objects | The rows on this page. |
items[].job_id | id (text) | The id of the job. |
items[].number | whole number | The number people say out loud, such as the job number. |
items[].client_name | text | The customer's name. Hidden when the key hides personal details. |
items[].client_phone | text | The customer's phone number. Hidden when the key hides personal details. |
items[].address | text | The address. |
items[].status | object | The job status. |
items[].status.name | text | The name, as the app shows it. |
items[].status.slug | text | The same name as a lowercase code word. Match on this, not on the name. |
items[].quoted_price | money (number) | The quoted price. In the company's currency. |
items[].net | money (number) | The net amount, after what is owed either way. In the company's currency. |
items[].created_at | time (ISO 8601, with offset) | When it was created. Carries its offset from UTC; Z is UTC. |
items[].scheduled_start | time (ISO 8601, with offset) | When the visit is planned to start. Carries its offset from UTC; Z is UTC. |
items[].workers | list of text | The workers. |
items[].source | text | The source. |
items[].lat | number | The lat. |
items[].lng | number | The lng. |
total | whole number | The total, in the company's currency. |
page | whole number | The page number, starting at 1. |
pages | whole number | How many pages there are. |
page_size | whole number | The page size. |
label | text | The name the app shows for it. |
Personal details
A key made to hide personal details gets initials for the customer, the last four digits of the phone, no street, and the point rounded to about a kilometre.
Errors that apply
| Code | Status | What it means |
|---|---|---|
| `missing_key` | 401 | Send your key as Authorization: Bearer hh_live_... |
| `unknown_key` | 401 | That key is not one we issued, or it was revoked. |
| `no_access` | 403 | This credential does not reach that. Ask the person who made it for access. |
| `not_found` | 404 | No such record in the companies this credential reaches. |
| `out_of_scope` | 404 | No such company in the companies this credential reaches. |
| `invalid` | 422 | Some fields were refused. See fields. |
| `no_credits` | 402 | Out of credits. Top up on Settings › Credits, or turn on auto top-up. |
Related
- Get statistics summary: Jobs and leads for a range and the money they left: profit, lead cost, cost per lead, profit after leads, ad spend and profit after advertising.
- Get statistics areas: Every place the work happened, by postal code and city: jobs, closes, cancels, average ticket and profit, with a point to put on a map.
- List job pins: Each job in the range that has a point on the map, newest first, up to 400, with its status, price and profit. Narrow it with a box.
- The same records in the app: the Statistics panel.
- How the API fits together: the model, API keys, errors and the MCP server.