Developer Documentation

Job Feed API

Pull Ocean Blue Corporation's live job listings directly into your platform. Real-time REST API — authenticated with API keys, versioned, and ready to integrate.

Real-time data
API key auth
REST / JSON

Overview

The Ocean Blue Corporation Job Feed API lets external platforms pull our live job listings. It's a versioned REST API hosted at /api/v1 and returns JSON.

Base URL

https://oceanbluecorp.com/api/v1

Format

JSON — all requests and responses

Auth

API key via X-API-Key header

Versioning

Current version: v1

Authentication

Every request must include your API key in the X-API-Key request header. You can alternatively pass it as a query parameter ?api_key= for quick testing.

Keep your API key secret. Do not expose it in client-side code or public repositories. Contact us immediately if a key is compromised — we can disable it instantly.

bash
# Recommended: header
curl https://oceanbluecorp.com/api/v1/jobs \
  -H "X-API-Key: obk_live_your_api_key_here"

# Alternative: query param (testing only)
curl "https://oceanbluecorp.com/api/v1/jobs?api_key=obk_live_your_api_key_here"
StatusCodeMeaning
401Missing API keyNo X-API-Key header provided
401Invalid API keyKey not found in our system
403Key disabledKey has been revoked or disabled

Endpoints

Filtering & Pagination

By default the list endpoint returns only active and open jobs. You can combine any query params.

bash
# Active contract jobs in Ohio, page 2
GET /api/v1/jobs?type=contract&status=active&page=2&limit=10

# All open jobs in "SAP Practice" department
GET /api/v1/jobs?department=SAP+Practice&status=open

# Specific job by ID
GET /api/v1/jobs/b3f1a2c4-1234-5678-abcd-ef0123456789
FieldValues
statusactive · open · paused · closed
typefull-time · part-time · contract · contract-to-hire · direct-hire · managed-teams · remote
limitInteger 1–100. Default 20.

Response Schema

All job objects returned by the API contain these fields. Internal fields (pay rates, recruiter details, billing data) are never included.

FieldTypeNotes
idstringUUID — use this to fetch by /api/v1/jobs/:id
postingIdstring | nullHuman-readable ID, e.g. OB-2025-0042
titlestringJob title
departmentstringBusiness unit / practice area
locationstringCity and state, e.g. Columbus, OH
statestring | nullTwo-letter state code
typestringEmployment type — see filtering table above
descriptionstringFull job description text
requirementsstring[]Array of requirement bullet points
responsibilitiesstring[]Array of responsibility bullet points
salaryobject | null{ min, max, currency } if disclosed
statusstringactive | open | paused | closed
submissionDueDatestring | nullISO 8601 application deadline
clientNamestring | nullEnd-client company name if disclosed
vendorNamestring | nullStaffing vendor name if applicable
postedByNamestring | nullName of the recruiter who posted
createdAtstringISO 8601 creation timestamp
updatedAtstring | nullISO 8601 last-updated timestamp

Errors

All errors return a JSON body with an error field.

json
{
  "error": "Missing API key. Pass X-API-Key header."
}
HTTP CodeMeaningAction
401Missing or invalid API keyCheck that X-API-Key is set and correct
403API key disabledContact us — your key may have been revoked
404Job not foundThe job ID does not exist or was removed
500Internal server errorRetry after a moment; contact us if persistent

Quickstart

Copy-paste examples to get up and running in minutes.

cURL

bash
curl https://oceanbluecorp.com/api/v1/jobs \
  -H "X-API-Key: obk_live_your_key_here" | jq .

JavaScript / TypeScript

typescript
const BASE = "https://oceanbluecorp.com/api/v1";
const KEY  = process.env.OCEAN_BLUE_API_KEY;

async function getJobs(page = 1) {
  const res = await fetch(`${BASE}/jobs?page=${page}&limit=20`, {
    headers: { "X-API-Key": KEY! },
  });
  if (!res.ok) throw new Error(`API error ${res.status}`);
  return res.json(); // { data: Job[], meta: { total, page, ... } }
}

async function getJob(id: string) {
  const res = await fetch(`${BASE}/jobs/${id}`, {
    headers: { "X-API-Key": KEY! },
  });
  if (!res.ok) throw new Error(`API error ${res.status}`);
  return res.json(); // { data: Job }
}

Python

python
import os, requests

BASE = "https://oceanbluecorp.com/api/v1"
HEADERS = {"X-API-Key": os.environ["OCEAN_BLUE_API_KEY"]}

def get_jobs(page=1, limit=20):
    r = requests.get(f"{BASE}/jobs", headers=HEADERS,
                     params={"page": page, "limit": limit})
    r.raise_for_status()
    return r.json()  # {"data": [...], "meta": {...}}

def get_job(job_id: str):
    r = requests.get(f"{BASE}/jobs/{job_id}", headers=HEADERS)
    r.raise_for_status()
    return r.json()  # {"data": {...}}

Get Access

Ready to integrate?

API access is available to vetted job platforms and technology partners. Reach out to our team and we'll issue you an API key within one business day.