USAJOBS Federal Jobs: Open and Historic Postings, No API Key
Pricing
from $1.00 / 1,000 job postings
USAJOBS Federal Jobs: Open and Historic Postings, No API Key
US federal jobs from the public USAJOBS API, no key needed: open jobs and postings back to 2017 with salary, grade, occupation series, hiring paths and locations. Filter by keyword, location, agency or pay. Commercial reuse allowed by the API terms.
Pricing
from $1.00 / 1,000 job postings
Rating
0.0
(0)
Developer
JP Data Lab
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
2 days ago
Last modified
Share
Get US federal government jobs from the public USAJOBS Historic JOA API that the Office of Personnel Management (OPM) documents for developers. It needs no API key, no account and no browser. The same Actor returns jobs open right now and about 3.2 million past announcements going back to 2017, including what happened to them: Candidate selected, Job canceled or Job closed.
Use it to feed a job board or an alert, to find federal roles for a client or for veterans and military spouses, to study federal pay and hiring by occupation, agency or state, or to give an AI agent a way to answer "what federal IT jobs are open in Texas?". The API terms allow commercial reuse, so you can build on the results.
Two ways to use it
Open jobs. This is the default. Filter by anything below. Results are newest first:
{ "keywords": ["nurse"], "locations": ["Texas"], "hiringPaths": ["The public"], "maxItems": 50 }
For a weekly alert, schedule a run with openedWithinDays set to 7 and use id to skip jobs you have already seen.
Past jobs. Turn off acceptingOnly and give a date range. This is what the live USAJOBS search does not offer:
{ "acceptingOnly": false, "openedFrom": "2024-01-01", "openedTo": "2024-12-31", "occupationSeries": ["2210"], "maxItems": 10000 }
One run reads up to 100,000 jobs before your filters, which is 2 to 3 months of all federal jobs in a busy year. A wider range stops at once with a message and costs nothing in results. Narrow it with occupationSeries or departmentCodes, which the API filters for you, or split it into several runs.
The history shows real shifts. USAJOBS has 367,055 announcements opened in 2024 and 168,222 opened in 2025.
Output
One item per announcement:
{"id": "usajobs:861843400","source": "usajobs","controlNumber": "861843400","announcementNumber": "UDB-26-Q2-UDO-ICTAP","title": "Police Officer (Secret Service Police) CTAP, ICTAP","url": "https://www.usajobs.gov/job/861843400","attribution": "Source: USAJOBS, U.S. Office of Personnel Management, https://www.usajobs.gov. Unofficial copy, not endorsed by OPM. Confirm details in the official announcement.","department": "Department of Homeland Security","departmentCode": "HS","agency": "U.S. Secret Service","agencyCode": "HSAD","subAgency": null,"status": null,"acceptingApplications": true,"openDate": "2026-10-31","closeDate": "2026-11-05","hiringPaths": ["Career transition (CTAP, ICTAP, RPL)", "Veterans"],"occupationSeries": ["0083"],"occupationNames": ["Police"],"appointmentType": "Permanent","workSchedule": "Full-time","serviceType": "Competitive","payScale": "LE","minGrade": "1","maxGrade": "1","promotionPotential": "None","minSalary": 77987.0,"maxSalary": 134165.0,"salaryType": "Per Year","openings": "MANY","location": "Washington, District of Columbia","locationCount": 1,"locations": [{ "city": "Washington", "state": "District of Columbia", "country": "United States" }],"remote": false,"supervisory": false,"clearanceRequired": true,"securityClearance": "Top Secret","travel": "Occasional travel","drugTestRequired": false,"relocationReimbursed": false,"scrapedAt": "2026-11-01T00:00:00+00:00"}
| Field | Meaning |
|---|---|
id | Stable key. Use it to remove repeats between runs |
source | Always usajobs |
controlNumber, announcementNumber | The two numbers on the official announcement |
url | The official announcement. Apply there, and read the duties and requirements there |
attribution | The credit line to keep when you pass the data on |
department, agency, subAgency | Who is hiring. departmentCode and agencyCode are the source's codes |
status | The source's wording. Often null on a job posted in the last few days |
acceptingApplications | true if the close date has not passed and status is Accepting applications or null |
openDate, closeDate | When the announcement opens and closes |
hiringPaths | Who can apply. The public means anyone |
occupationSeries, occupationNames | The federal occupation code and its name from the official code list |
appointmentType, workSchedule, serviceType | For example Permanent, Full-time, Competitive |
payScale, minGrade, maxGrade, promotionPotential | For example GS, 09, 12 |
minSalary, maxSalary, salaryType | Pay and its basis, such as Per Year or Per Hour. null if the source gives none |
openings | The source's text: a number, or a word such as Many or Few |
location | One line for reading. locations has every city, state and country |
remote | true if a location is Anywhere in the U.S. (remote job) |
supervisory, clearanceRequired, drugTestRequired, relocationReimbursed | true, false, or null if not stated |
securityClearance, travel | The source's wording |
scrapedAt | When this run produced the item. This is also the retrieval date to cite |
RUN_SUMMARY in the key-value store gives the jobs read and matched for each query, and the newest opening date seen.
Input
| Field | Default | |
|---|---|---|
keywords | none | Title or occupation name contains any of these |
locations | none | City, state or country equals one of these, e.g. Texas, Seattle, Japan. Use full state names |
agencies | none | Department, agency or sub-agency name contains any of these, e.g. Veterans |
hiringPaths | all | Who can apply, e.g. The public, Veterans |
remoteOnly | false | Only Anywhere in the U.S. (remote job) |
minAnnualSalary | 0 | Top pay reaches this per year. Hourly pay is multiplied by 2,087 hours. Daily and fee-based jobs are left out |
acceptingOnly | true | Only jobs still taking applications. Turn off for past jobs |
openedWithinDays | 0 | Opened in the last N days |
openedFrom, openedTo | none | Opening date range, such as 2024-01-01. Required for past jobs |
occupationSeries | none | 4-digit codes, such as 2210 for IT or 0610 for nursing |
departmentCodes | none | 2-letter codes, such as VA, AR, AF, NV, DD or HS |
maxItems | 100 | Total for the run, newest first. You pay per result |
The default run reads all jobs closing today or later, about 8,500, and returns the 100 newest.
Limitations
- No job description text. This API has titles, pay, requirements and locations, but not the duties or qualifications.
keywordstherefore looks at the title and occupation name only.urlhas the full text. - Open jobs are close to live, not live. A status can trail the official site, and
acceptingOnlyleaves out jobs markedApplications under revieweven if their close date is still ahead, because some have stopped taking applications. Turn it off to see them. - Past announcements can be removed. The API keeps a past job's data, but
urlmay stop showing the full announcement. - No contact details. This API has no HR contact names, emails or phone numbers.
- The API has no telework field in use.
remoteshows only jobs listed as remote. A job that allows telework from a duty station is not marked. - Before 2017 is sparse. Only about 4,000 announcements have earlier opening dates.
- Pool announcements are broad. Some list more than 100 locations and stay open for a year, so they match many location filters.
- If a query fails, the run continues with the others and
RUN_SUMMARYshowsincomplete: truewith the error. - Not affiliated with or endorsed by USAJOBS, the Office of Personnel Management or any federal agency. This is an unofficial product. Check the official announcement before you apply or rely on a detail.
Data source and terms
The data comes from the Historic JOA API, which OPM documents as open without authentication, and from the public occupation code list. The USAJOBS API Terms of Service name this endpoint as Public Data, which may be copied, published, redistributed and used for lawful commercial purposes without prior approval. OPM encourages you to name USAJOBS as the source, link to the current announcement, give the retrieval date, and say that your product is unofficial. Each item carries what you need in attribution, url and scrapedAt. The terms also forbid presenting altered data as official, claiming OPM endorsement, and using official seals or logos.
日本語
米国連邦政府の求人を、人事管理局(OPM)が開発者向けに公開している USAJOBS の Historic JOA API から取得します。API キーもログインも不要です。募集中の求人に加えて、2017 年以降の過去の求人約 320 万件も、採用結果(Candidate selected など)とともに取れます。出力は職名・省庁・状態・募集期間・応募資格・職種・給与・勤務地などで、職務内容の本文と人事担当者の連絡先はありません。公式の規約は、この API のデータの商用利用と再配布を事前の承認なしで認めています。