# Retrieve a job

> One job posting with its headed sections. Billed as one records request.

`GET /v1/jobs/{id}`

One job posting with its headed sections. Billed as one records request.

Authentication: `Authorization: Bearer <key>`, an `htd_test_` (sandbox) or `htd_live_` (live) key.

```bash
curl "https://data.heytownhall.com/v1/jobs/123456" \
  -H "Authorization: Bearer $HTD_KEY"
```

## Parameters

| Name | In | Required | Description |
| --- | --- | --- | --- |
| `id` | path | yes |  |

## Fields

| Field | Type | Description |
| --- | --- | --- |
| `id` | string |  |
| `jurisdiction_id` | string |  |
| `country` | string or null |  |
| `region` | string or null |  |
| `title` | string |  |
| `summary` | string or null |  |
| `location` | string or null |  |
| `published_at` | string or null | ISO 8601 instant, UTC. |
| `closes_at` | string or null | ISO 8601 instant, UTC. |
| `status` | string or null |  |
| `employment_type` | string or null |  |
| `union_status` | string or null |  |
| `work_kind` | string or null |  |
| `pay` | string or null | As printed. |
| `hours` | string or null |  |
| `work_location` | string or null |  |
| `page_read` | boolean |  |
| `source_url` | string or null | The page, document, video or platform the record was read from. |
| `read_at` | string or null | When it was read. |
| `sections` | array of object |  |

## Answers

| Status | Meaning |
| --- | --- |
| `200` | The record. |
| `400` | invalid_request: a parameter is missing or not valid; `param` names it. |
| `401` | unauthorized: no key, or not a valid one. |
| `402` | billing_required (a live key without a payment method, or paused for an unpaid invoice) or spend_cap_reached. |
| `404` | not_found: no such record, or it is no longer published. |
| `429` | rate_limited: past the key's requests per minute. Retry-After says when to try again. |
| `503` | upstream_unavailable: the data could not be read. Not an empty answer; try again. |
