> ## 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 all jobs

> Retrieve all jobs from your Hirempire account

## Authentication

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

<RequestExample>
  ```bash cURL theme={null}
  curl --location --request GET 'https://api.hirempire.com/v1/jobs' \
  --header 'Authorization: Bearer YOUR_TOKEN'
  ```

  ```javascript JavaScript theme={null}
  const response = await fetch('https://api.hirempire.com/v1/jobs', {
    method: 'GET',
    headers: {
      'Authorization': 'Bearer YOUR_TOKEN'
    }
  });

  const data = await response.json();
  console.log(data);
  ```

  ```python Python theme={null}
  import requests

  url = "https://api.hirempire.com/v1/jobs"
  headers = {
      "Authorization": "Bearer YOUR_TOKEN"
  }

  response = requests.get(url, headers=headers)
  data = response.json()
  print(data)
  ```

  ```php PHP theme={null}
  <?php
  $curl = curl_init();

  curl_setopt_array($curl, array(
    CURLOPT_URL => 'https://api.hirempire.com/v1/jobs',
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_HTTPHEADER => array(
      'Authorization: Bearer YOUR_TOKEN'
    ),
  ));

  $response = curl_exec($curl);
  curl_close($curl);

  $data = json_decode($response, true);
  print_r($data);
  ?>
  ```

  ```ruby Ruby theme={null}
  require 'net/http'
  require 'json'

  uri = URI('https://api.hirempire.com/v1/jobs')
  http = Net::HTTP.new(uri.host, uri.port)
  http.use_ssl = true

  request = Net::HTTP::Get.new(uri)
  request['Authorization'] = 'Bearer YOUR_TOKEN'

  response = http.request(request)
  data = JSON.parse(response.body)
  puts data
  ```

  ```go Go theme={null}
  package main

  import (
      "fmt"
      "io"
      "net/http"
  )

  func main() {
      client := &http.Client{}
      req, _ := http.NewRequest("GET", "https://api.hirempire.com/v1/jobs", nil)
      req.Header.Add("Authorization", "Bearer YOUR_TOKEN")
      
      resp, _ := client.Do(req)
      defer resp.Body.Close()
      
      body, _ := io.ReadAll(resp.Body)
      fmt.Println(string(body))
  }
  ```

  ```java Java theme={null}
  import java.net.http.HttpClient;
  import java.net.http.HttpRequest;
  import java.net.http.HttpResponse;
  import java.net.URI;

  public class HirempireAPI {
      public static void main(String[] args) throws Exception {
          HttpClient client = HttpClient.newHttpClient();
          HttpRequest request = HttpRequest.newBuilder()
              .uri(URI.create("https://api.hirempire.com/v1/jobs"))
              .header("Authorization", "Bearer YOUR_TOKEN")
              .GET()
              .build();
              
          HttpResponse<String> response = client.send(request, 
              HttpResponse.BodyHandlers.ofString());
          System.out.println(response.body());
      }
  }
  ```

  ```csharp C# theme={null}
  using System;
  using System.Net.Http;
  using System.Threading.Tasks;

  class Program
  {
      private static readonly HttpClient client = new HttpClient();

      static async Task Main(string[] args)
      {
          client.DefaultRequestHeaders.Add("Authorization", "Bearer YOUR_TOKEN");
          
          HttpResponseMessage response = await client.GetAsync("https://api.hirempire.com/v1/jobs");
          string responseBody = await response.Content.ReadAsStringAsync();
          
          Console.WriteLine(responseBody);
      }
  }
  ```

  ```swift Swift theme={null}
  import Foundation

  let url = URL(string: "https://api.hirempire.com/v1/jobs")!
  var request = URLRequest(url: url)
  request.setValue("Bearer YOUR_TOKEN", forHTTPHeaderField: "Authorization")

  let task = URLSession.shared.dataTask(with: request) { data, response, error in
      if let data = data {
          let json = try? JSONSerialization.jsonObject(with: data)
          print(json ?? "No data")
      }
  }

  task.resume()
  ```

  ```kotlin Kotlin theme={null}
  import kotlinx.coroutines.*
  import java.net.http.HttpClient
  import java.net.http.HttpRequest
  import java.net.http.HttpResponse
  import java.net.URI

  fun main() = runBlocking {
      val client = HttpClient.newHttpClient()
      val request = HttpRequest.newBuilder()
          .uri(URI.create("https://api.hirempire.com/v1/jobs"))
          .header("Authorization", "Bearer YOUR_TOKEN")
          .GET()
          .build()
          
      val response = client.send(request, HttpResponse.BodyHandlers.ofString())
      println(response.body())
  }
  ```

  ```rust Rust theme={null}
  use reqwest::header::{HeaderMap, HeaderValue, AUTHORIZATION};

  #[tokio::main]
  async fn main() -> Result<(), Box<dyn std::error::Error>> {
      let mut headers = HeaderMap::new();
      headers.insert(AUTHORIZATION, HeaderValue::from_str("Bearer YOUR_TOKEN")?);
      
      let client = reqwest::Client::new();
      let response = client
          .get("https://api.hirempire.com/v1/jobs")
          .headers(headers)
          .send()
          .await?;
          
      let body = response.text().await?;
      println!("{}", body);
      
      Ok(())
  }
  ```
</RequestExample>

## Response

<ResponseField name="success" type="boolean">
  Indicates if the request was successful
</ResponseField>

<ResponseField name="total_jobs" type="integer">
  Total number of jobs returned
</ResponseField>

<ResponseField name="jobs" type="array">
  Array of job objects

  <Expandable title="Job Object Properties">
    <ResponseField name="id" type="string">
      Unique identifier for the job
    </ResponseField>

    <ResponseField name="created_time" type="string">
      ISO 8601 timestamp when the job was created
    </ResponseField>

    <ResponseField name="job_title" type="string">
      Title of the job position
    </ResponseField>

    <ResponseField name="job_type" type="string">
      Employment type. One of: `full-time` `part-time` `contract` `freelance` `internship` `temporary` `project-based`
    </ResponseField>

    <ResponseField name="job_mode" type="string">
      Work arrangement. One of: `onsite` `remote` `hybrid`
    </ResponseField>

    <ResponseField name="job_location" type="string">
      Geographic location for the job, formatted as `"City, Country"`. The city portion is omitted if not set.
    </ResponseField>

    <ResponseField name="company_name" type="string">
      Name of the hiring company
    </ResponseField>

    <ResponseField name="job_description" type="string">
      Full description of the job requirements and responsibilities
    </ResponseField>

    <ResponseField name="status" type="string">
      Current status of the job posting. One of: `draft` `active` `paused` `closed`
    </ResponseField>

    <ResponseField name="public_slug" type="string">URL slug for the public job board page.</ResponseField>

    <ResponseField name="company_logo_url" type="string">URL to the hiring company's logo.</ResponseField>

    <ResponseField name="department" type="string">Department the job is in (e.g. Engineering).</ResponseField>

    <ResponseField name="industry" type="string">Industry classification.</ResponseField>

    <ResponseField name="career_level" type="string">Seniority. One of: `junior` `mid-level` `senior` `team-leader` `manager` `director` `vp` `c-level`.</ResponseField>

    <ResponseField name="salary" type="string">Computed salary display string. `null` when salary is confidential.</ResponseField>

    <ResponseField name="salary_type" type="string">One of: `fixed` `range` `confidential`.</ResponseField>

    <ResponseField name="salary_min" type="number">Lower bound (range mode).</ResponseField>

    <ResponseField name="salary_max" type="number">Upper bound (range mode).</ResponseField>

    <ResponseField name="salary_fixed" type="number">Fixed salary amount (fixed mode).</ResponseField>

    <ResponseField name="currency" type="string">ISO 4217 three-letter currency code.</ResponseField>

    <ResponseField name="salary_period" type="string">One of: `Per hour` `Per day` `Per week` `Bi-weekly` `Per month` `Per year`.</ResponseField>

    <ResponseField name="is_salary_hidden" type="boolean">`true` if salary should be hidden on the public board.</ResponseField>

    <ResponseField name="questions" type="object">Application form configuration — built-in `fields` toggles plus an array of `custom` per-job questions. See [Get specific job](/developers/jobs/get-specific-job) for the full structure.</ResponseField>

    <ResponseField name="sources" type="object">
      Source-link breakdown for the job.

      <Expandable title="sources structure">
        <ResponseField name="count" type="integer">Number of source links configured.</ResponseField>

        <ResponseField name="items" type="array">
          Each item:

          * `id` (string) — source link UUID
          * `source_name` (string) — label like `LinkedIn` or `Indeed`
          * `source_url` (string) — public tracking URL: `https://jobs.hirempire.com/{company-slug}/{source-id}`
          * `visits` (integer) — visits to that URL
          * `created_at` (string) — ISO 8601
        </ResponseField>
      </Expandable>
    </ResponseField>

    <ResponseField name="applicants" type="integer">
      Number of applicants who have applied to this job
    </ResponseField>
  </Expandable>
</ResponseField>

<ResponseExample>
  ```json 200 theme={null}
  {
    "success": true,
    "total_jobs": 1,
    "jobs": [
      {
        "id": "abc123xy-1234-4567-89ab-cdef01234567",
        "created_time": "2026-06-20T10:00:00.000Z",
        "job_title": "Software Engineer",
        "public_slug": "software-engineer-a3f9",
        "company_name": "TechCorp",
        "company_logo_url": "https://cdn.hirempire.com/logos/techcorp.png",
        "department": "Engineering",
        "industry": "Software",
        "career_level": "senior",
        "job_type": "full-time",
        "job_mode": "remote",
        "job_location": "San Francisco, United States",
        "salary": "120000",
        "salary_type": "fixed",
        "salary_min": null,
        "salary_max": null,
        "salary_fixed": 120000,
        "currency": "USD",
        "salary_period": "Per year",
        "is_salary_hidden": false,
        "job_description": "We are looking for a talented Software Engineer to join our development team.",
        "questions": {
          "fields": { "show_cover_letter": true, "show_photo": false, "show_languages": true },
          "custom": [
            { "id": "q-1", "label": "Why do you want to work with us?", "type": "textarea", "required": true }
          ]
        },
        "sources": {
          "count": 2,
          "items": [
            { "id": "1a2b3c4d-...", "source_name": "LinkedIn", "source_url": "https://jobs.hirempire.com/techcorp/1a2b3c4d-...", "visits": 142, "created_at": "2026-06-18T10:00:00.000Z" },
            { "id": "9z8y7x6w-...", "source_name": "Referral", "source_url": "https://jobs.hirempire.com/techcorp/9z8y7x6w-...", "visits": 36, "created_at": "2026-06-19T08:14:00.000Z" }
          ]
        },
        "status": "active",
        "applicants": 5
      }
    ]
  }
  ```
</ResponseExample>

## Error Responses

### 400 Bad Request

```json theme={null}
{
    "success": false,
    "error": "Query parameters are not allowed."
}
```

### 401 Unauthorized

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

```json theme={null}
{
    "success": false,
    "error": "Token is expired"
}
```
