The request
Reference for List job pins, HeadHoncho API v1. It is a read, sent to the base address https://api.headhoncho.app.
GET /api/v1/statistics/job-pins
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 |
bbox | text, in the query | No | A box as south,west,north,east. Default: the whole range. | 40.3,-89.1,40.6,-88.8 |
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, in the Jobs in one area shape; truncated, true when more than the limit matched; limit. A job with no point is not listed here but still counts in Jobs by area.
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. |
truncated | true or false | The truncated. |
limit | whole number | The most rows this page holds. |
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 area jobs: The jobs behind one area on the map, newest first, twenty-five a page, with status, price, profit and where they came from.
- The same records in the app: the Statistics panel.
- How the API fits together: the model, API keys, errors and the MCP server.