Discover/Gov API
live

Gov APIcivilservicejobs.service.gov.uk

Search and retrieve UK Civil Service job listings by keyword, location, and grade. Access titles, salaries, departments, closing dates, and full vacancy details.

Endpoint health
verified 5d ago
search_jobs
get_job_details
2/2 passing latest checkself-healing
Endpoints
2
Updated
21d ago

What is the Gov API?

The Civil Service Jobs API provides 2 endpoints to search and retrieve UK public sector vacancies from civilservicejobs.service.gov.uk. The search_jobs endpoint returns paginated job listings with titles, departments, salaries, locations, and closing dates, while get_job_details returns full vacancy information including civil service grade, security requirements, benefits, and a job summary for a specific listing identified by its reference number.

Try it
Page number for pagination
Search keyword (job title, skill, or keywords). Leave empty to browse all jobs.
Location filter (postcode, town, or region)
api.parse.bot/scraper/d7734b85-2dcc-4952-b455-218ca45215cb/<endpoint>
Ready to send
Fill in the parameters and hit sign in to send to see live response data here.
Call it over HTTPgrab a free API key at signup
curl -X GET 'https://api.parse.bot/scraper/d7734b85-2dcc-4952-b455-218ca45215cb/search_jobs?page=1&query=analyst&location=London' \
  -H 'X-API-Key: $PARSE_API_KEY'
Python SDK · recommended

Typed, relational, agent-ready

A generated client with real types, enums, and the links between objects — the structure a flat JSON response can't carry. Autocompletes in your editor and reads cleanly to coding agents.

  • Fully typed · autocompletes
  • Objects link to objects
  • Typed errors & pagination

Typed Python client. Set up the SDK in your uv project, then pull this API’s typed client:

uv add parse-sdk
uv run parse init
uv run parse add --marketplace civilservicejobs-service-gov-uk-api

uv run parse add --marketplace pulls a pinned snapshot of this canonical API — it won’t change underneath you. To customize it, subscribe and swap to your own copy.

"""Walkthrough: Civil Service Jobs SDK — search vacancies and drill into details."""
from parse_apis.civil_service_jobs_api import CivilServiceJobs, JobNotFound

client = CivilServiceJobs()

# Search for analyst roles in London — limit caps total items fetched.
for job in client.jobsummaries.search(query="analyst", location="London", limit=3):
    print(job.title, job.department, job.salary)

# Drill down: take ONE result with .first(), then fetch full details.
result = client.jobsummaries.search(query="project manager", limit=1).first()
if result:
    detail = result.details()
    print(detail.title, detail.job_grade, detail.contract_type, detail.working_pattern)

# Direct get by jcode when you already know the reference number.
job = client.jobs.get(jcode="463414")
print(job.title, job.salary, job.closing_date)

# Typed error handling: catch JobNotFound for an invalid reference.
try:
    client.jobs.get(jcode="000000")
except JobNotFound as exc:
    print(f"Job not found: jcode={exc.jcode}")

print("exercised: jobsummaries.search / jobsummary.details / jobs.get / JobNotFound")
All endpoints · 2 totalmissing one? ·

Full-text search over UK Civil Service job listings by keyword and/or location. Returns a paginated list of matching vacancies with summary information (title, department, location, salary, closing date, reference number). Omitting both query and location returns all current vacancies. Each page returns up to 25 results. Use the jcode from results to fetch full details via get_job_details.

Input
ParamTypeDescription
pageintegerPage number for pagination
querystringSearch keyword (job title, skill, or keywords). Leave empty to browse all jobs.
locationstringLocation filter (postcode, town, or region)
Response
{
  "type": "object",
  "fields": {
    "jobs": "array of job objects with title, url, jcode, department, location, salary, and closing_date",
    "total_count": "integer - total number of matching jobs"
  },
  "sample": {
    "data": {
      "jobs": [
        {
          "url": "https://www.civilservicejobs.service.gov.uk/csr/index.cgi?SID=abc123",
          "jcode": "463414",
          "title": "Data Security Analyst",
          "salary": "£43,760 to £51,690",
          "location": "London",
          "department": "Cabinet Office",
          "closing_date": "11:55 pm on Tuesday 23rd June 2026"
        }
      ],
      "total_count": 3
    },
    "status": "success"
  }
}

About the Gov API

Searching Jobs

The search_jobs endpoint accepts a query string (job title, skill, or keyword), a location filter (postcode, town, or region), and a page integer for pagination. Leaving query empty returns all current listings. Each result in the jobs array includes title, url, jcode (the vacancy reference number), department, location, salary, and closing_date. The total_count field indicates how many vacancies matched the search, which is useful for building pagination logic.

Retrieving Full Vacancy Details

The get_job_details endpoint takes a single required input — jcode — taken directly from a search_jobs result. It returns the complete vacancy record: title, salary, benefits, location, department, job_grade (the Civil Service pay band or grade), security (security clearance level required), job_summary (the full descriptive text of the role), and closing_date. This is the primary endpoint for building a job detail page or extracting structured requirements from a listing.

Coverage and Scope

All data reflects current live vacancies on the Civil Service Jobs board, which spans departments, agencies, and arm's-length bodies across the UK government. Listings include central government roles, HMRC, DVLA, the Home Office, and many others. The location filter supports standard UK location strings, and results are UK-only given the nature of the source.

Reliability & maintenanceVerified

The Gov API is a managed, monitored endpoint for civilservicejobs.service.gov.uk — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when civilservicejobs.service.gov.uk changes and a check fails, the API is automatically queued for repair and re-verified. It is built to keep working as the site underneath it changes.

This isn't an official civilservicejobs.service.gov.uk API — it's an independent, maintained REST wrapper over public data. Where the source has no official API (or only a limited one), Parse gives you a stable contract over a source that never promised one, and keeps it current. Need a new endpoint or field? You can revise it yourself in plain English and the agent rebuilds it against the live site in minutes — contributing the change back to the shared API is free.

Last verified
5d ago
Latest check
2/2 endpoints passing
Maintenance
Monitored & self-healing
Will this API break when the source site changes?+
It's built not to. Every endpoint is health-checked on a schedule with automated test probes. When the source site changes and a check fails, the API is automatically queued for repair and re-verified — that's the self-healing layer. Each API page shows when its endpoints were last verified. And because marketplace APIs are shared, any fix reaches everyone using it.
Is this an official API from the source site?+
No — Parse APIs are independent, managed REST wrappers over publicly available data. That is the point: where a site has no official API (or only a limited one), Parse gives you a maintained, monitored endpoint for that data and keeps it working as the site changes — so you get a stable contract over a source that never promised one.
Can I fix or extend this API myself if I need a new endpoint or field?+
Yes — and you don't have to wait on us. This API was generated by the Parse agent, which stays attached. Describe the change in plain English ("add an endpoint that returns reviews", "fix the price field") in the revise box on the API page or via the revise_api MCP tool, and the agent rebuilds it against the live site in minutes. Contributing the change back to the public API is free.
What happens if I call an endpoint that has an issue?+
Errors are machine-readable: a bad call returns a clean status with the list of available endpoints and a repair hint, so an agent (or you) can recover or trigger a fix instead of failing silently. Confirmed failures feed the automatic repair queue.
Common use cases
  • Aggregate UK public sector job listings filtered by region or keyword for a government careers portal
  • Monitor closing dates on civil service vacancies to trigger alerts before application deadlines
  • Extract job_grade and salary fields to analyse pay band distribution across departments
  • Pull department and location data to map civil service hiring activity by region
  • Build a job recommendation feed by querying search_jobs with role-specific keywords
  • Track vacancy counts over time by storing total_count responses from repeated searches
  • Display full vacancy descriptions and security clearance requirements in a third-party HR tool using get_job_details
Pricing & limitsSee full pricing →
TierPriceCredits/monthRate limit
Free$0/mo1005 req/min
Hobby$30/mo1,00020 req/min
Developer$100/mo5,000100 req/min

One credit = one API call regardless of which marketplace API you call. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.

Frequently asked questions
Does civilservicejobs.service.gov.uk have an official developer API?+
No. The Civil Service Jobs website does not publish an official public API for accessing vacancy data programmatically.
What does get_job_details return beyond what search_jobs provides?+
The search_jobs endpoint returns a summary record per vacancy: title, department, location, salary, closing_date, and jcode. The get_job_details endpoint adds job_summary (the full role description), benefits, job_grade (Civil Service pay band), and security (the clearance level required). These fields are only available by calling get_job_details with a specific jcode.
Can I filter search results by department or job grade?+
The search_jobs endpoint currently supports filtering by query keyword and location. Department and job_grade filters are not exposed as input parameters. The department and job_grade values are returned in responses, so you can filter results client-side after retrieval. You can fork this API on Parse and revise it to add department or grade as filterable inputs if your use case requires server-side filtering.
Does the API return application form links or support submitting applications?+
The API returns a url field per vacancy pointing to the listing page, and get_job_details includes closing_date and application-related information in the job_summary field. It does not expose a direct application submission endpoint or form data. You can fork this API on Parse and revise it to extract additional application-related fields if the listing page exposes them.
How fresh is the vacancy data, and do closed roles appear in results?+
Results reflect the live state of the Civil Service Jobs board at the time of the request. The board typically shows only currently open vacancies, so roles past their closing_date are generally not returned in search results. There is no historical archive of closed roles exposed through these endpoints.
Page content last updated . Spec covers 2 endpoints from civilservicejobs.service.gov.uk.
Related APIs in JobsSee all →
usajobs.gov API
Search federal job openings and view detailed job announcements from USAJobs.gov, plus access historical job data and reference codes to help you find the right government position. Filter and explore thousands of federal career opportunities with comprehensive job details all in one place.
totaljobs.com API
Search and browse job listings from across the UK on TotalJobs, then access detailed information about specific positions including requirements, salary, and application details. Quickly compare opportunities and find roles that match your criteria.
uk.indeed.com API
Search for job listings across Indeed UK and retrieve complete job details including descriptions, requirements, salary information, and application links. Filter by job type, experience level, location, remote preference, and more to find relevant opportunities.
indeed.co.uk API
Search for jobs across Indeed UK and retrieve detailed information including job listings, application links, and company profiles. Access comprehensive job data to compare opportunities, learn about employers, and find direct application pathways.
caljobs.ca.gov API
Search and discover job listings from California's official CalJOBS database, with the ability to filter results by posting date and specific employers to find opportunities that match your needs. View detailed information about individual positions to learn more about roles that interest you.
amazon.jobs API
Search and browse Amazon job openings by keywords, location, and category, then view detailed information about specific positions. Filter results across multiple job categories and locations with easy pagination.
cvshealth.com API
Search and apply for CVS Health job openings across multiple categories, locations, and roles. Filter positions by keyword, category, or location to find relevant opportunities and get direct links to submit your application.
findapprenticeship.service.gov.uk API
Search and browse live apprenticeship vacancies across the UK, filter opportunities by location and job type, and view detailed information about specific positions to find the right apprenticeship match. Access comprehensive listing counts and filter options to narrow down your search.