Jiji APIjiji.ng ↗
Search and retrieve listings from Jiji.ng, Nigeria's largest classifieds platform. Get prices, categories, regions, conditions, and full listing details via 2 endpoints.
What is the Jiji API?
The Jiji.ng API provides access to Nigeria's largest online classifieds marketplace through 2 endpoints. Use search_listings to query listings by keyword, category slug, price range, and page, or use get_listing to pull full details on a single item — including description, images, view count, favorites, and all product attributes — identified by a GUID returned from search results.
curl -X GET 'https://api.parse.bot/scraper/3c1966cf-1249-4b20-932b-376b70c04ea2/search_listings?page=1&query=iphone&price_max=500000&price_min=50000&category_slug=mobile-phones' \ -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 jiji-ng-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: Jiji Nigeria SDK — bounded, re-runnable; every call capped."""
from parse_apis.jiji_ng_api import Jiji, ListingNotFound
client = Jiji()
# Search for iphone listings with price constraints
for listing in client.listings.search(query="iphone", price_min="100000", limit=3):
print(listing.title, listing.price_formatted, listing.region)
# Drill-down: take one result and fetch full details
item = client.listings.search(query="samsung phone", limit=1).first()
try:
full = item.details()
print(full.title, full.price_formatted, full.description[:80])
except ListingNotFound as e:
print("listing gone:", e.listing_id)
print("exercised: listings.search, ListingSummary.details")
Search Jiji.ng marketplace listings. Returns paginated results with prices, categories, regions, and condition. When no query is provided but a category_slug is given, lists all items in that category. Results are ordered by relevance by default. Each listing carries a GUID usable with the detail endpoint.
| Param | Type | Description |
|---|---|---|
| page | integer | Page number for pagination (1-based). |
| query | string | Free-text search query (e.g. 'iphone', 'samsung phone'). Omit to browse by category. |
| price_max | string | Maximum price filter in Naira (e.g. '500000'). |
| price_min | string | Minimum price filter in Naira (e.g. '50000'). |
| category_slug | string | Category slug to filter listings (e.g. 'mobile-phones', 'computers-and-laptops'). Obtainable from search results' category_slug field. |
{
"type": "object",
"fields": {
"page": "integer current page number",
"listings": "array of listing summaries with id, title, price, region, category, condition",
"total_count": "integer total number of matching listings"
},
"sample": {
"data": {
"page": 1,
"listings": [
{
"id": "nJus0i5BbzFQchV0ZxuCnC58",
"url": "/isolo/cell-phones-tablets-accessories/iphone-screen-guard-for-iphone-6-6s-7-8-nJus0i5BbzFQchV0ZxuCnC58.html",
"price": 3000,
"title": "iPhone Screen Guard for iPhone 6/6s/7/8",
"region": "Lagos State, Isolo",
"category": "Accessories for Phones & Tablets",
"condition": "Brand New",
"image_url": "https://pictures-nigeria.jijistatic.net/201565729_MzAwLTMwMC1lMjVmZjYxNDYw.jpg",
"category_slug": "cell-phones-tablets-accessories",
"price_formatted": "₦ 3,000"
}
],
"total_count": 18436
},
"status": "success"
}
}About the Jiji API
Searching Listings
The search_listings endpoint accepts a free-text query (e.g., 'iphone', 'toyota corolla'), an optional category_slug (e.g., 'mobile-phones', 'computers-and-laptops'), and Naira-denominated price filters via price_min and price_max. Pagination is 1-based via the page parameter. Each call returns a listings array of summary objects — each carrying an id (GUID), title, price, region, category, and condition — plus total_count for the full result set and the current page number. If you omit query and supply only a category_slug, the endpoint browses all items in that category ordered by relevance.
Retrieving Full Listing Details
The get_listing endpoint takes a single required input: listing_id, the GUID from a search_listings result. It returns the complete listing record: title, price in Naira (integer), region, category, status, url, views, favorites, an images array of image URLs, and the full set of seller-provided product attributes and description. This makes it the right call when you need data beyond the search summary — for example, the images or exact item specifications.
Coverage and Scope
Listings span the full range of Jiji.ng categories: electronics, vehicles, real estate, fashion, services, and more. Regional data reflects Nigeria's states and cities as sellers enter them. Prices are in Naira as listed by sellers and are not normalized or verified. The condition field in search results distinguishes new from used goods where sellers have specified it.
The Jiji API is a managed, monitored endpoint for jiji.ng — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when jiji.ng 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 jiji.ng 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?+
- Track Naira price trends for a specific product category (e.g., used smartphones) by polling
search_listingswithprice_min/price_maxfilters over time. - Build a price comparison tool for Nigerian consumers by aggregating
search_listingsresults across multiple category slugs. - Populate a regional market research dashboard using the
regionfield returned in listing summaries. - Monitor new listings for a specific keyword by checking
total_countand first-page results fromsearch_listingson a schedule. - Extract product images and full descriptions via
get_listingto build a curated product catalog from classifieds data. - Filter listings by condition (new vs. used) and price band to surface deal alerts for specific goods.
- Analyze category depth by browsing
category_slugwithout a query to count active listings per category usingtotal_count.
| Tier | Price | Credits/month | Rate limit |
|---|---|---|---|
| Free | $0/mo | 100 | 5 req/min |
| Hobby | $30/mo | 1,000 | 20 req/min |
| Developer | $100/mo | 5,000 | 100 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.
Does Jiji.ng have an official developer API?+
What does `get_listing` return beyond what `search_listings` provides?+
search_listings returns summary fields: id, title, price, region, category, and condition. get_listing adds the full listing description, all seller-specified product attributes, an images array, views (view count), favorites count, status, and the url path. If you only need to scan or filter listings, search_listings is sufficient; use get_listing when you need the complete record.How does pagination work in `search_listings`?+
page parameter is 1-based. Each response includes the current page and a total_count of matching listings, which lets you calculate the number of pages. There is no explicit page-size parameter exposed; the number of results per page is fixed by the endpoint.Does the API expose seller contact information or chat history?+
Are saved search alerts or listing change notifications available?+
search_listings and get_listing; there is no webhook or push-notification mechanism for listing changes. You can fork this API on Parse and revise it to add a polling-based change-detection endpoint.