---
title: "Get all open jobs from Workable  API"
description: "Technical guide on workable API to Get all open jobs from Workable  API"
source_url: "https://www.getknit.dev/blog/get-all-open-jobs-from-workable--api-a7Ih5O"
page_type: "blog"
---

_This is an educational blog post from Knit's blog: “Get all open jobs from Workable  API”._

# Get all open jobs from Workable API

## Introduction

This article is a part of a series of articles covering the workable API in depth, and covers the specific use case of using the workable API to Get all open jobs from Workable API.  
You can find all the other use cases we have covered for the workable API along with a comprehensive deep dive on its various aspects like authentication, rate limits etc [here.](https://www.getknit.dev/blog/workable-guide)

### Overview

The Workable API allows you to retrieve a collection of open jobs from your account. This can be achieved using the `GET` method on the `/spi/v3/jobs` endpoint. The required scope for this operation is `r_jobs`, and it is accessible with all token types.

### API Endpoint

`https://{subdomain}.workable.com/spi/v3/jobs`

### Authorization

Header: `Bearer {Access Token}`

### Query Parameters

*   `state` (string): Returns jobs with the current state. Possible values are `draft`, `published`, `archived`, and `closed`.
*   `limit` (int32): Specifies the number of jobs to try and retrieve per page (optional).
*   `since_id` (string): Returns results with an ID greater than or equal to the specified ID (optional).
*   `max_id` (string): Returns results with an ID less than or equal to the specified ID (optional).
*   `created_after` (date-time): Returns results created after the specified timestamp (optional).
*   `updated_after` (date-time): Returns results updated after the specified timestamp (optional).
*   `include_fields` (string): Includes additional fields in each job (description, full\_description, requirements, and benefits).

### Example Request

```
import requests

subdomain = 'your_subdomain'
access_token = 'your_access_token'
url = f'https://{subdomain}.workable.com/spi/v3/jobs'
headers = {
    'Content-Type': 'application/json',
    'Authorization': f'Bearer {access_token}'
}
params = {
    'state': 'published'
}

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

### Example Response

```
{
  "jobs": [
    {
      "id": "61884e2",
      "title": "Sales Intern",
      "full_title": "Sales Intern - US/3/SI",
      "shortcode": "GROOV003",
      "code": "US/3/SI",
      "state": "published",
      "department": "Sales",
      "department_hierarchy": [
        {
          "id": 792289334,
          "name": "Sales"
        }
      ],
      "url": "https://groove-tech.workable.com/jobs/102268944",
      "application_url": "https://groove-tech.workable.com/jobs/102268944/candidates/new",
      "shortlink": "https://groove-tech.workable.com/j/GROOV003",
      "location": {
        "location_str": "Portland, Oregon, United States",
        "country": "United States",
        "country_code": "US",
        "region": "Oregon",
        "region_code": "OR",
        "city": "Portland",
        "zip_code": "97201",
        "telecommuting": false
      },
      "salary": {
        "salary_from": 10000,
        "salary_to": 20000,
      },
    }
  ],
  "paging": {
  }
}
```

## Knit for Workable API Integration

For quick and seamless access to [workable](https://www.getknit.dev/integration/workable) API, Knit API offers a convenient solution. By integrating with Knit just once, you can streamline the entire process. Knit takes care of all the authentication, authorization, and ongoing integration maintenance, this approach not only saves time but also ensures a smooth and reliable connection to your [workable](https://www.getknit.dev/integration/workable) API.


## Related pages

- [How Knit works](https://md.getknit.dev/how-knit-works)
- [Unified API product](https://md.getknit.dev/products/unified-api)
