JobsPipe
API Reference

Pagination

Page through large result sets with cursors, offsets, or page numbers.

A single POST /v1/jobs/search returns at most your plan's page size: Free 25, Builder 100, Scale 500. To retrieve more, paginate.

Each response includes metadata.next_cursor. Pass it back as cursor to get the next page. When next_cursor is null, you've reached the end.

import requests

URL = "https://api.jobspipe.dev/v1/jobs/search"
HEADERS = {"Authorization": "Bearer jp_live_your_key_here"}

cursor, all_jobs = None, []
while True:
    body = {"job_title_or": ["software engineer"], "limit": 100}
    if cursor:
        body["cursor"] = cursor
    page = requests.post(URL, headers=HEADERS, json=body).json()
    all_jobs.extend(page["data"])
    cursor = page["metadata"].get("next_cursor")
    if not cursor:
        break

print(f"fetched {len(all_jobs)} jobs")
const URL = "https://api.jobspipe.dev/v1/jobs/search";
const headers = {
  Authorization: "Bearer jp_live_your_key_here",
  "Content-Type": "application/json",
};

let cursor = null;
const all = [];
do {
  const body = { job_title_or: ["software engineer"], limit: 100 };
  if (cursor) body.cursor = cursor;
  const page = await fetch(URL, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
  }).then((r) => r.json());
  all.push(...page.data);
  cursor = page.metadata.next_cursor;
} while (cursor);

console.log(`fetched ${all.length} jobs`);

Offset & page pagination

If you prefer numeric paging, use offset (results to skip) or page (page index) instead of cursor:

{ "job_title_or": ["software engineer"], "limit": 100, "offset": 100 }

Cursor pagination is more reliable for large or fast-changing result sets, since offsets can shift as new jobs are ingested.

Total counts

By default metadata.total_results is null (counting is skipped for speed). Set include_total_results: true to populate it - useful for showing "X of Y results", at a small performance cost.

Ordering

Control sort order with order_by, an array of { field, desc } objects:

{ "job_title_or": ["software engineer"], "order_by": [{ "field": "date_posted", "desc": true }] }

On this page