> ## Documentation index
> Fetch the complete documentation index at: https://rankfield.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# Get a Link Extraction job

> Check a Link Extraction job: its status, how many pages are done, succeeded and failed, and its progress from 0 to 1.

`GET https://rankfield.dev/v1/html/link-extraction/jobs/{id}`

```bash cURL
curl 'https://rankfield.dev/v1/html/link-extraction/jobs/01a1737c-067c-738f-a990-07518fe64d5e' \
  -H 'Authorization: Bearer YOUR_API_KEY'
```

```python Python
import requests

response = requests.get(
    "https://rankfield.dev/v1/html/link-extraction/jobs/01a1737c-067c-738f-a990-07518fe64d5e",
    headers={"Authorization": "Bearer YOUR_API_KEY"},
)
print(response.json())
```

```javascript JavaScript
const response = await fetch("https://rankfield.dev/v1/html/link-extraction/jobs/01a1737c-067c-738f-a990-07518fe64d5e", {
  headers: {
    "Authorization": "Bearer YOUR_API_KEY",
  },
});
console.log(await response.json());
```

```json 200
{
  "id": "01a1737c-067c-738f-a990-07518fe64d5e",
  "status": "completed",
  "total": 2,
  "completed": 2,
  "succeeded": 2,
  "failed": 0,
  "progress": 1,
  "createdAt": "2026-10-25T14:34:30.396Z",
  "deadlineAt": "2026-10-25T14:40:00.396Z",
  "expiresAt": "2026-10-26T14:34:30.396Z",
  "statusUrl": "/v1/html/link-extraction/jobs/01a1737c-067c-738f-a990-07518fe64d5e",
  "resultsUrl": "/v1/html/link-extraction/jobs/01a1737c-067c-738f-a990-07518fe64d5e/results"
}
```

## Parameters

### Headers

| Name | Type | Required | Default | Description |
|---|---|---|---|---|
| `Authorization` | string | Yes | – | `Bearer` followed by your API key. See [Authentication](/docs/get-started/authentication). |

### Path parameters

| Name | Type | Required | Default | Description |
|---|---|---|---|---|
| `id` | string | Yes | – | The job id from [Start a Link Extraction job](/docs/link-extraction/start-a-job). |

## Response

| Field | Type | Description |
|---|---|---|
| `status` | string | `queued`, `running` or `completed`. |
| `total` | integer | URLs in the job. |
| `completed` | integer | Pages finished, whether they succeeded or failed. |
| `succeeded`, `failed` | integer | How the finished pages ended. |
| `progress` | number | `completed / total`, from 0 to 1. |
| `createdAt`, `deadlineAt`, `expiresAt` | string | When it started, its delivery deadline, and when it is deleted. |

You don't need to wait for `completed`: [Get Link Extraction results](/docs/link-extraction/get-results) returns each page as soon as it finishes.

## Errors

| Status | When |
|---|---|
| 401 | No valid API key. |
| 404 | No job with this id for this key. |
| 410 | The job has expired: jobs are kept for 24 hours after they are created. |
