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

# Get job sources

> List the tracked source URLs configured for a specific job

## Query Parameters

<ParamField query="job_id" type="string" required>
  The job UUID to fetch sources for.
</ParamField>

## Authentication

<ResponseField name="Authorization" type="string" required>
  Bearer authentication header of the form `Bearer <token>`.
</ResponseField>

<RequestExample>
  ```bash cURL theme={null}
  curl --location --request GET 'https://api.hirempire.com/v1/job-sources?job_id={job_id}' \
  --header 'Authorization: Bearer sk-••••••••••••'
  ```

  ```javascript JavaScript theme={null}
  const response = await fetch('https://api.hirempire.com/v1/job-sources?job_id=' + jobId, {
    method: 'GET',
    headers: { 'Authorization': 'Bearer sk-••••••••••••' }
  });
  const data = await response.json();
  ```

  ```python Python theme={null}
  import requests
  url = "https://api.hirempire.com/v1/job-sources"
  headers = { "Authorization": "Bearer sk-••••••••••••" }
  params = { "job_id": "..." }
  response = requests.get(url, headers=headers, params=params)
  print(response.json())
  ```
</RequestExample>

## Response

<ResponseField name="success" type="boolean" />

<ResponseField name="job_id" type="string">The job UUID.</ResponseField>

<ResponseField name="total_sources" type="integer" />

<ResponseField name="sources" type="array">
  Array of source link objects.

  <Expandable title="Source object properties">
    <ResponseField name="id" type="string">UUID of the source link.</ResponseField>
    <ResponseField name="source_name" type="string">Human-readable source label (e.g. `LinkedIn`, `Indeed`, `Referral`).</ResponseField>
    <ResponseField name="source_url" type="string">Publicly shareable URL for this source. Visits to this URL increment the source's `visits` counter.</ResponseField>
    <ResponseField name="code" type="string">Internal 4-character opaque code (kept for tracking continuity; not used in the public URL anymore).</ResponseField>
    <ResponseField name="visits" type="integer">Number of times the source URL has been opened.</ResponseField>
    <ResponseField name="created_at" type="string">ISO 8601 timestamp when the source link was created.</ResponseField>
  </Expandable>
</ResponseField>

<ResponseExample>
  ```json 200 theme={null}
  {
    "success": true,
    "job_id": "8fc4ea3c-ecc4-4a92-96fd-a14436a79a1b",
    "total_sources": 2,
    "sources": [
      {
        "id": "1a2b3c4d-5e6f-7890-abcd-ef1234567890",
        "source_name": "LinkedIn",
        "source_url": "https://jobs.hirempire.com/acme/1a2b3c4d-5e6f-7890-abcd-ef1234567890",
        "code": "a3f9",
        "visits": 142,
        "created_at": "2026-06-18T10:00:00.000Z"
      },
      {
        "id": "9z8y7x6w-5v4u-3210-fedc-ba0987654321",
        "source_name": "Referral",
        "source_url": "https://jobs.hirempire.com/acme/9z8y7x6w-5v4u-3210-fedc-ba0987654321",
        "code": "b7c1",
        "visits": 36,
        "created_at": "2026-06-19T08:14:00.000Z"
      }
    ]
  }
  ```
</ResponseExample>

## Error Responses

### 400 Bad Request

```json theme={null}
{ "success": false, "error": "Query parameter 'job_id' is required." }
```

### 401 Unauthorized

```json theme={null}
{ "success": false, "error": "Invalid token" }
```

### 404 Not Found

```json theme={null}
{ "success": false, "error": "Job not found" }
```
