nigeriajob APInigeriajob.com ↗
Fetch structured job posting data from nigeriajob.com: title, company, salary, deadline, location, open/closed status, and full description via one endpoint.
What is the nigeriajob API?
The nigeriajob.com API exposes 1 endpoint and returns 9 structured fields per call from individual job postings on Nigeria's job board. The get_job_posting endpoint accepts a full posting URL and returns the job title, hiring company, salary text, application deadline as an ISO-8601 timestamp, geographic location, open/closed status, and the plain-text job description — everything needed to track or aggregate Nigerian job market listings programmatically.
curl -X GET 'https://api.parse.bot/scraper/362d05c4-1118-4dbd-ab6b-ced3c80505c4/get_job_posting?job_url=https%3A%2F%2Fwww.nigeriajob.com%2Fjob-vacancies-nigeria%2Fwebsite-developer-remote-264184' \ -H 'X-API-Key: $PARSE_API_KEY'
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 nigeriajob-com-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: NigeriaJob SDK — fetch and inspect a job posting."""
from parse_apis.nigeriajob_com_api import NigeriaJob, JobPostingNotFound
client = NigeriaJob()
# Fetch a single job posting by its URL.
try:
job = client.job_postings.get(
job_url="https://www.nigeriajob.com/job-vacancies-nigeria/website-developer-remote-264184"
)
except JobPostingNotFound:
print("posting not found or no longer public")
else:
print(job.title, "at", job.company)
print("open:", job.is_open, "| status:", job.status)
if job.salary is not None:
print("salary:", job.salary)
if job.deadline is not None:
print("deadline:", job.deadline)
print("location:", job.location)
print("positions:", job.number_of_positions)
print("exercised: job_postings.get")
Returns one job posting from nigeriajob.com identified by its posting URL. One page fetch per call. Returns the posting date and application deadline as ISO-8601 timestamps as stated by the site, the salary expectation text as the site shows it (null when the posting does not state one), the age requirement sentence quoted from the posting text (null when the posting mentions none), the application URL (the posting's own on-site application form; nigeriajob.com applications are submitted on the site, so an external employer URL is not exposed) and any employer email found in the posting text (null when none), plus is_open, which is true when the application form is present and the deadline has not passed. A posting the site no longer shows publicly is returned with status "not_public", is_open false and all other fields null; a URL the site reports as not found yields a stale_input error.
| Param | Type | Description |
|---|---|---|
| job_urlrequired | string | Full nigeriajob.com posting URL or its path, of the form https://www.nigeriajob.com/job-vacancies-nigeria/<slug>-<id>. |
{
"type": "object",
"fields": {
"url": "canonical posting URL",
"title": "job title",
"job_id": "numeric posting id as a string, taken from the URL",
"salary": "salary expectation text as shown by the site (currency symbol included), null if not stated",
"status": "open | closed | not_public",
"company": "hiring company name",
"is_open": "boolean: application form present and deadline not passed",
"deadline": "ISO-8601 application deadline stated by the site, null if absent",
"location": "city and region",
"description": "plain-text job description and required profile",
"remote_work": "site's remote-work value (e.g. Yes), null if not stated",
"posting_date": "ISO-8601 timestamp the site states as the publication date",
"age_requirement": "sentence from the posting text mentioning an age requirement, null if none",
"application_url": "URL of the on-site application form for this posting, null when the form is absent",
"employment_type": "contract types offered, dash-separated as shown on the site",
"experience_level": "accepted experience bands, dash-separated",
"application_email": "employer email found in the posting text, null if none",
"educational_level": "accepted education levels, dash-separated",
"number_of_positions": "integer count of open positions, null if not stated"
},
"sample": {
"data": {
"url": "https://www.nigeriajob.com/job-vacancies-nigeria/website-developer-remote-264184",
"title": "Website Developer - Remote",
"job_id": "264184",
"salary": "> ₦ 6,000,000",
"status": "open",
"company": "ANTRAVIA ADVISORY",
"is_open": true,
"deadline": "2026-11-13T16:21:09+01:00",
"location": "Remote, International",
"description": "We are looking for a reliable Website Developer to join our small, growing international business on a remote basis. ...",
"remote_work": "Yes",
"posting_date": "2026-10-09T14:55:02+01:00",
"age_requirement": null,
"application_url": "https://www.nigeriajob.com/job-vacancies-nigeria/website-developer-remote-264184#form-express-application",
"employment_type": "Permanent contract - Fixed-term contract - Temporary work - Internship - Freelance - Cooperative Education Program - Part-time work",
"experience_level": "No experience - Less than 2 years - 2 to 5 years - 5 to 10 years - More than 10 years",
"application_email": null,
"educational_level": "High school - Technical school - College - HND - Bachelor - Master - Doctorate",
"number_of_positions": 2
},
"status": "success"
}
}About the nigeriajob API
What the API Returns
The get_job_posting endpoint takes a single required input — job_url — which should be the full nigeriajob.com posting URL or its path, following the pattern https://www.nigeriajob.com/job-vacancies-nigeria/<slug>. The numeric posting identifier (job_id) is extracted directly from that URL slug, so you don't need to supply it separately.
Key Response Fields
Each response includes title and company for the role and hiring organization, location for city and region, and salary for the compensation text exactly as the site displays it (including currency symbol). When a posting does not state salary, salary returns null. The deadline field returns an ISO-8601 timestamp for the application closing date if stated, otherwise null. The status field returns one of open, closed, or not_public, while the boolean is_open confirms whether the application form is active and the deadline has not passed.
Description and Coverage
The description field returns the plain-text body of the posting, covering the job summary, responsibilities, and required profile as written by the employer. The API covers publicly accessible postings on nigeriajob.com. One call retrieves one posting — there is no batch or search endpoint in the current build.
Scope and Limitations
Because each call maps to a single posting URL, bulk retrieval requires iterating over known URLs. Postings that are set to private or removed will return status: not_public. Age requirements mentioned in the posting body appear within the description field as free text rather than as a dedicated structured field.
The nigeriajob API is a managed, monitored endpoint for nigeriajob.com — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when nigeriajob.com 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 nigeriajob.com 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.
Will this API break when the source site changes?+
Is this an official API from the source site?+
Can I fix or extend this API myself if I need a new endpoint or field?+
What happens if I call an endpoint that has an issue?+
- Monitor whether a specific Nigerian job posting is still open before directing applicants to it, using the
is_openboolean anddeadlinefields. - Aggregate salary data across Nigerian tech and web development roles by collecting the
salaryfield from multiple postings. - Build a job alert system that checks
statusanddeadlinefor a watchlist of nigeriajob.com posting URLs. - Enrich an internal ATS or recruiter tool with structured posting metadata — company, location, title — pulled directly from nigeriajob.com URLs.
- Archive job descriptions over time by storing the
descriptionfield, tracking changes in requirements for repeated postings. - Validate job board links in newsletters or job digests by checking
is_openbefore each send.
| Tier | Price | Credits/month | Rate limit |
|---|---|---|---|
| Free | $0/mo | 200 | 5 req/min |
| Hobby | $30/mo | 1,000 | 20 req/min |
| Developer | $100/mo | 5,000 | 100 req/min |
| Team | $300/mo | 20,000 | 300 req/min |
| Company | $1,000/mo | 100,000 | 500 req/min |
Each endpoint has a fixed posted price per successful call — most fall between 1 and 10 credits — shown on this API's page before you run it. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.
Does nigeriajob.com have an official developer API?+
What does the `status` field return and how does it differ from `is_open`?+
status returns a string — open, closed, or not_public — reflecting the posting's stated state on the site. is_open is a boolean that combines both status and deadline: it is true only when the application form is present and the deadline has not yet passed. A posting could have status: open but is_open: false if the deadline has already elapsed.Can I search for multiple job postings at once or filter by category, location, or keyword?+
Is age requirement data returned as a structured field?+
description field rather than as a separate structured value. You can fork this API on Parse and revise it to extract age requirements into their own field.How fresh is the data returned for a given posting URL?+
status, deadline, or is_open fields to reflect stale data — if a posting is taken down between two calls, the second call will return status: not_public.