Source · USAJobs

USAJobs Jobs API.

USAJobs has the best-documented public job API of any source. JobsPipe normalizes it into the same shape as Workday, Greenhouse, Lever, and 30+ other ATSs.

All public federal U.S. job postings on usajobs.gov
24h refresh
12 months retention

Why people are confused about the USAJobs API

USAJobs is operated by the U.S. Office of Personnel Management (OPM), so its data structure and posting conventions follow federal hiring rules - grade levels (GS-9, GS-12), pay plans, security clearance fields - not commercial ATS conventions.

USAJobs salary fields use federal pay scales (GS, WG, SES) rather than free-form salary ranges. JobsPipe normalizes these to min/max/currency where pay is published.

Some USAJobs postings are open-to-public; others are restricted to current federal employees or veterans. JobsPipe surfaces the eligibility audience as a structured field.

Option 1
Call developer.usajobs.gov directly

This actually works - USAJobs has a real, free public API. The catch: the response shape uses federal hiring terminology (PayPlan, GradeFrom, SecurityClearanceRequired) that doesn't match commercial ATS schemas, so you write a custom adapter.

Option 2
Scrape usajobs.gov

Pointless - the public API is better than scraping. Don't do this.

Option 3
Use JobsPipe

USAJobs normalized into the same flat JSON schema as Workday, Greenhouse, and 30+ commercial ATSs. Federal-specific fields (grade, clearance) surface as structured optional fields.

USAJobs API documentation

USAJobs developer documentation lives at developer.usajobs.gov and is the most permissive of any major job-data API in scope. The Search API covers active job announcements, the Code List API covers reference data (pay plans, hiring paths, security clearances), and the historic-data endpoints expose archived announcements. Authentication is via two headers (User-Agent and Authorization-Key) and the API is rate-limited per User-Agent string. JobsPipe's documentation at /docs covers the normalized JSON schema we return for USAJobs alongside 30+ commercial ATSs.

USAJobs API key

USAJobs API keys are free and self-service: register at developer.usajobs.gov with an email address, pick a User-Agent string (typically your contact email), and you receive an Authorization-Key by email. There is no approval process, no tier-gating, and no usage fees. JobsPipe consumes USAJobs through this public API but exposes federal jobs in the same JSON schema as commercial sources, so you can query both with one JobsPipe key.

USAJobs API integration

Direct USAJobs API integration works well if federal jobs are your only target - the docs are good and the free tier is generous. JobsPipe is the better path when you want federal and commercial jobs in one feed: USAJobs normalized into the same flat JSON as Workday, Greenhouse, Lever, and 30+ other ATSs, with federal-specific fields (grade, clearance, eligibility) preserved as optional structured fields.

Sample request

curl "https://api.jobspipe.dev/v1/jobs?source=usajobs" \
     -H "Authorization: Bearer $JOBSPIPE_KEY" \
     -H "Accept: application/json"

Sample response

{
  "id": "usajobs:nasa-langley-aerospace-engineer-789432",
  "source": "usajobs",
  "tenant": "nasa",
  "title": "Aerospace Engineer",
  "company": "National Aeronautics and Space Administration",
  "location": {
    "country": "US",
    "region": "VA",
    "city": "Hampton",
    "formatted": "Hampton, VA"
  },
  "salary": {
    "min": 99908,
    "max": 153354,
    "currency": "USD",
    "period": "yearly"
  },
  "employment_type": "full_time",
  "remote": "on_site",
  "department": "Langley Research Center",
  "posted_at": "2026-05-12T14:00:00Z",
  "expires_at": "2026-05-26T23:59:59Z",
  "apply_url": "https://www.usajobs.gov/job/789432",
  "description": "<p>NASA Langley Research Center seeks an Aerospace Engineer...</p>",
  "federal": {
    "grade": "GS-13",
    "pay_plan": "GS",
    "security_clearance": "Public Trust",
    "eligibility": "open_to_public"
  }
}

Every USAJobs job record is returned in the same JSON shape as every other JobsPipe source. The full schema is documented in the docs.

Fields in every USAJobs job record

idsourcetenanttitlecompanylocationsalaryemployment_typeremoteposted_atexpires_atapply_urldescription

FAQ

Why use JobsPipe instead of the free USAJobs API?+

If federal jobs are your only source, the USAJobs API is genuinely great - use it. JobsPipe is for when you want federal + commercial jobs in the same shape: one endpoint, one schema, USAJobs alongside Workday/Greenhouse/Lever.

Does JobsPipe include the federal-specific fields (grade, pay plan, clearance)?+

Yes. They surface as a federal object on the job record when present - structured, optional, and preserved exactly as USAJobs publishes them.

Are veteran-only and federal-employee-only postings included?+

Yes, but flagged via the federal.eligibility field. Filter ?audience=open_to_public if you only want positions open to civilians.

How is USAJobs salary normalized?+

USAJobs publishes min/max under federal pay scales. JobsPipe maps PayPlan + GradeFrom/GradeTo to a salary {min, max, currency: 'USD', period: 'yearly'} object when the posting has explicit pay.

Try USAJobs data free - 5,000 requests/month, no credit card.

Get a free API key