Skip to main content
GET
/
jobs
Get Jobs
curl --request GET \
  --url https://api.kardow.com/jobs \
  --header 'x-api-key: <api-key>'
{
  "data": [
    {
      "id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
      "title": "<string>",
      "description": "<string>",
      "company_name": "<string>",
      "slug": "<string>",
      "location": "<string>",
      "job_type": "<string>",
      "status": "<string>",
      "is_remote": true,
      "contact_email": "<string>"
    }
  ],
  "meta": {
    "pagination": {
      "current_page": 123,
      "per_page": 123,
      "total_items": 123,
      "total_pages": 123,
      "has_more": true
    },
    "filters": {}
  }
}
Use this endpoint when you need to mirror your job board into another system, power a search page, or run scheduled exports.

Common Filters

Match against the job title, description, and company name.
job_types
string
Comma-separated job types such as full-time,contract.
locations
string
Comma-separated locations such as Remote,New York.
categories
string
Comma-separated category UUIDs.
is_remote
boolean
Set to true to return only remote jobs.
page
number
default:"1"
Page number.
per_page
number
default:"20"
Number of records per page, up to 100.

Examples

List the latest jobs

cURL
curl --request GET \
  --url "https://api.kardow.com/jobs?page=1&per_page=20" \
  --header "x-api-key: your-api-key-here"

Search for a phrase

cURL
curl --request GET \
  --url "https://api.kardow.com/jobs?search=product%20designer" \
  --header "x-api-key: your-api-key-here"

Fetch only remote full-time jobs

cURL
curl --request GET \
  --url "https://api.kardow.com/jobs?job_types=full-time&is_remote=true" \
  --header "x-api-key: your-api-key-here"

Combine search, location, and pagination

cURL
curl --request GET \
  --url "https://api.kardow.com/jobs?search=engineer&locations=Remote,London&page=2&per_page=10" \
  --header "x-api-key: your-api-key-here"

JavaScript example

const response = await fetch(
  "https://api.kardow.com/jobs?search=engineering&job_types=full-time,contract&is_remote=true",
  {
    headers: {
      "x-api-key": process.env.KARDOW_API_KEY,
    },
  }
);

const result = await response.json();

console.log(result.meta.pagination);
console.log(result.data.map((job) => job.title));

Python example

import os
import requests

response = requests.get(
    "https://api.kardow.com/jobs",
    headers={"x-api-key": os.environ["KARDOW_API_KEY"]},
    params={
        "search": "data",
        "locations": "Remote,New York",
        "page": 1,
        "per_page": 25,
    },
)

data = response.json()
print(data["meta"]["pagination"])

Response Shape

data
array
required
Matching jobs.
meta.pagination
object
required
Pagination summary with the current page, page size, total items, total pages, and whether another page is available.
meta.filters
object
required
Echoes the filters Kardow applied to the query.

Example response

{
  "data": [
    {
      "id": "4d1b6fe8-688f-467c-b233-b5d6a51ce1cb",
      "title": "Senior Product Designer",
      "description": "Lead product design across web and mobile.",
      "company_name": "Acme",
      "slug": "senior-product-designer",
      "location": "Remote",
      "job_type": "full-time",
      "status": "active",
      "is_remote": true,
      "contact_email": "jobs@acme.com"
    }
  ],
  "meta": {
    "pagination": {
      "current_page": 1,
      "per_page": 20,
      "total_items": 1,
      "total_pages": 1,
      "has_more": false
    },
    "filters": {
      "search": "designer",
      "categories": [],
      "job_types": ["full-time"],
      "locations": ["Remote"],
      "is_remote": true
    }
  }
}

Authorizations

x-api-key
string
header
required

API key for authentication. Get yours from Settings > API Keys in the Kardow dashboard.

Query Parameters

page
integer
default:1
Required range: x >= 1
per_page
integer
default:20
Required range: 1 <= x <= 100
job_types
string

Comma-separated job types.

Example:

"full-time,contract"

locations
string

Comma-separated locations.

Example:

"Remote,New York"

categories
string

Comma-separated category UUIDs.

Example:

"123e4567-e89b-12d3-a456-426614174000,123e4567-e89b-12d3-a456-426614174001"

is_remote
boolean

Response

Success

data
object[]
required
meta
object
required