Discover/NairaGig API
live

NairaGig APInairagig.com

Access NairaGig job board data via API. Retrieve open freelance gigs, projects, and recruiter postings with pay ranges, skills, and experience levels.

Endpoint health
verified 10h ago
list_jobs
1/1 passing latest checkself-healing
Endpoints
1
Updated
10h ago

What is the NairaGig API?

The NairaGig API exposes one endpoint — list_jobs — that returns up to 50 open postings per page from NairaGig's freelance and job board, covering native gigs, projects, and recruiter listings. Each posting includes at least 10 structured fields: pay range (budget_min, budget_max, currency), employment type, salary cycle, experience level, posting source, and a direct application link. Pagination, keyword search, job type, and experience level filters are all supported.

This call costs1 credit / call— charged only on success
Try it
1-based page number.
Rows per page; values above 50 are clamped to 50.
Keyword(s) to match locally against posting text; all words must appear. Omitted = no keyword matching.
Posting type filter applied by the site: jobs & projects, or local service requests. Omitted = both.
Experience level filter applied by the site. Omitted = all levels.
api.parse.bot/scraper/1e2b1628-1d4b-4208-99d8-79c415f6ff5f/<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/1e2b1628-1d4b-4208-99d8-79c415f6ff5f/list_jobs?job_type=SERVICE' \
  -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 nairagig-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: NairaGig Jobs SDK — browse the public job board with filters."""
from parse_apis.nairagig_com_api import NairaGig, JobType, ExperienceLevel, InputFormatInvalid

client = NairaGig()

# Browse the newest open postings, capped at 5 total items.
for job in client.jobs.list(limit=5):
    print(job.title, f"{job.budget_min}–{job.budget_max} {job.currency}")

# Filter to intermediate-level jobs and grab the first match.
hit = client.jobs.list(experience_level=ExperienceLevel.INTERMEDIATE, limit=1).first()
if hit is not None:
    print(hit.title, hit.company, hit.work_mode)
    print("skills:", ", ".join(hit.required_skills))
    print("apply →", hit.apply_url)

# Keyword search scoped to service requests.
try:
    for gig in client.jobs.list(search="design", job_type=JobType.SERVICE, limit=3):
        print(gig.title, gig.experience_level, gig.applications_count, "applicants")
except InputFormatInvalid as e:
    # Raised when the site rejects a filter value.
    print("invalid filter:", e.message)

print("exercised: jobs.list (browse / filter / search) + InputFormatInvalid")
All endpoints · 1 totalmissing one? ·

Returns one page of currently open job, project and recruiter postings from the NairaGig job board, newest first. Each row is one posting with its pay range (budget_min/budget_max in `currency`, plus salary_cycle and employment_type for recruiter postings), experience level, required/preferred skills, free-text requirements and deliverables, duration, application counts and an apply_url (the NairaGig job page for native postings, the recruiter application page for partner postings). Filtering by experience_level or job_type is applied by the site itself; note the site excludes partner recruiter postings when experience_level is set. Keyword `search` is not supported by the site, so when it is given the scraper reads the full stream (at most 500 postings) and matches every whitespace-separated word case-insensitively against title, description, requirements, skills, core features, category and company; pagination then applies to the matched set and `total`/`pages`/`has_more` describe it. `source_total` is always the site's own count of postings before any keyword matching. Pagination is caller-controlled through `page` (default 1) and `limit` (default 20, clamped to 50). An empty `jobs` array with total 0 is a valid result when nothing matches.

Input
ParamTypeDescription
pageinteger1-based page number.
limitintegerRows per page; values above 50 are clamped to 50.
searchstringKeyword(s) to match locally against posting text; all words must appear. Omitted = no keyword matching.
job_typestringPosting type filter applied by the site: jobs & projects, or local service requests. Omitted = both.
experience_levelstringExperience level filter applied by the site. Omitted = all levels.
Response
{
  "type": "object",
  "fields": {
    "jobs": "array of posting objects: id, title, description, source (native|recruiter), job_type, status, budget_type, budget_min, budget_max (numbers or null), currency, salary_cycle, employment_type, work_mode, experience_level, location, required_skills, preferred_skills, core_features (arrays of strings), requirements, deliverables, estimated_duration, duration_type, application_deadline, applications_count, company, category, created_at, published_at, apply_url",
    "page": "integer, the page returned",
    "limit": "integer, rows per page applied",
    "pages": "integer, number of pages for `total` at this limit",
    "total": "integer, postings matching the request (after keyword matching when search is given)",
    "has_more": "boolean, whether a later page exists",
    "source_total": "integer, the site's own count of postings for the site-applied filters, before keyword matching"
  },
  "sample": {
    "data": {
      "jobs": [
        {
          "id": "81c31eeb-a081-4d1b-9865-326efbb0595b",
          "title": "Java Developer for a backend project",
          "source": "native",
          "status": "OPEN",
          "company": "Chidiebere Edeh",
          "category": "Software Developement",
          "currency": "NGN",
          "job_type": "JOB",
          "location": null,
          "apply_url": "https://nairagig.com/jobs/81c31eeb-a081-4d1b-9865-326efbb0595b",
          "work_mode": "REMOTE",
          "budget_max": 500000,
          "budget_min": 250000,
          "created_at": "2026-06-10T11:55:03.273Z",
          "budget_type": "FIXED",
          "description": "I need an experienced java developer to complete the backend of an admin side of an ongoing project.",
          "deliverables": null,
          "published_at": null,
          "requirements": null,
          "salary_cycle": null,
          "core_features": [
            "Experience java developer",
            "2 to 3 years working experience",
            "Ability to work unsupervised."
          ],
          "duration_type": "WEEKS",
          "employment_type": null,
          "required_skills": [
            "Java developer",
            "Backend development"
          ],
          "experience_level": "INTERMEDIATE",
          "preferred_skills": [],
          "applications_count": 13,
          "estimated_duration": 2,
          "application_deadline": "2026-07-30T23:59:59.999Z"
        }
      ],
      "page": 1,
      "limit": 20,
      "pages": 1,
      "total": 2,
      "has_more": false,
      "source_total": 25
    },
    "status": "success"
  }
}

About the NairaGig API

What the API Returns

The list_jobs endpoint returns a paginated array of job and project postings from NairaGig's public board, ordered newest first. Each object in the jobs array includes id, title, description, source (either native for direct gigs/projects or recruiter for employer-submitted roles), job_type, status, budget_type, budget_min, budget_max, and currency. Recruiter postings additionally carry salary_cycle and employment_type fields. Alongside the jobs array, the response returns pagination metadata: page, limit, pages, total, has_more, and source_total.

Filtering and Pagination

Requests accept four optional parameters. job_type filters by posting category — jobs and projects vs. local service requests — applied at the source level, reflected in source_total. experience_level similarly narrows results at the source level. The search parameter performs keyword matching against posting text on all supplied words; when used, total reflects the post-keyword count while source_total reflects the unfiltered site count. Page size is controlled by limit (clamped at 50) and page (1-based); has_more indicates whether additional pages exist.

Coverage and Scope

NairaGig is a Nigerian freelance and job marketplace, so postings are predominantly Nigeria-focused, with pay amounts in Nigerian Naira (NGN) by default. The board mixes short-term freelance gigs, ongoing projects, and salaried recruiter postings in a single feed, distinguished by the source field. The budget_min/budget_max pair covers both fixed-price budgets and salary bands depending on the posting type.

Reliability & maintenanceVerified

The NairaGig API is a managed, monitored endpoint for nairagig.com — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when nairagig.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 nairagig.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.

Last verified
10h ago
Latest check
1/1 endpoint 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 Nigerian freelance gigs by experience level to build a localized job alert service.
  • Compare budget_min/budget_max ranges across job_type categories to analyze Nigerian freelance market rates.
  • Filter recruiter postings by employment_type and salary_cycle to surface full-time salaried roles separately from gig work.
  • Keyword-search postings using the search param to find tech-stack-specific gigs (e.g., 'React', 'Django').
  • Track source_total over time to monitor the growth or contraction of active listings on NairaGig.
  • Ingest newest-first postings via has_more pagination to maintain a near-real-time gig feed for a job board aggregator.
Pricing & limitsSee full pricing →
TierPriceCredits/monthRate limit
Free$0/mo2005 req/min
Hobby$30/mo1,00020 req/min
Developer$100/mo5,000100 req/min
Team$300/mo20,000300 req/min
Company$1,000/mo100,000500 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.

Frequently asked questions
Does NairaGig have an official developer API?+
NairaGig does not publish an official public developer API or documented API portal. This Parse API is the structured way to access NairaGig job board data programmatically.
How does the source field distinguish posting types?+
Each posting object includes a source field set to either native (gigs and projects posted directly by freelancers or clients on NairaGig) or recruiter (employer-submitted job listings). Recruiter postings also carry salary_cycle and employment_type fields that native postings omit.
Does the search parameter match against all posting fields?+
The search parameter matches keywords against posting text. All words in the search string must appear for a posting to be included. The response's total reflects the keyword-filtered count, while source_total shows the site's unfiltered count for any site-level filters (job_type, experience_level) that were applied.
Are individual posting detail pages or applicant counts available?+
Not currently. The list_jobs endpoint returns listing-level fields including description, pay range, and experience level, but does not expose individual posting detail pages, applicant counts, or skills tag lists as separate structured fields. You can fork this API on Parse and revise it to add a detail endpoint that surfaces those fields.
Is this API limited to Nigeria, and are other currencies supported?+
NairaGig is a Nigeria-focused platform, so the vast majority of postings carry NGN (Nigerian Naira) as the currency. The currency field is returned per posting, so if a listing specifies a different currency that information will be present, but non-NGN postings are rare. The API covers only NairaGig's board and does not aggregate other regional freelance platforms. You can fork it on Parse and revise to add coverage from additional sources.
Page content last updated . Spec covers 1 endpoint from nairagig.com.
Related APIs in JobsSee all →