Discover/Com API
live

Com APIjiji.com.gh ↗

Search Jiji Ghana classified ads by keyword, category, region, price, and condition. Returns listings with attributes, seller info, and posting dates.

Endpoint health
verified 2h ago
search_listings
1/1 passing latest checkself-healing
Endpoints
1
Updated
2h ago

What is the Com API?

The Jiji Ghana API exposes one endpoint, search_listings, that queries jiji.com.gh classified ads and returns up to 60 enriched records per call. Each record includes 15+ fields: listing ID, title, price in GHS, condition, region, posting date, seller display name, ID-verification status, and ad-specific attributes such as brand, model, storage, RAM, colour, and size. Filters for region, price range, and condition let you narrow results without post-processing.

This call costs10 credits / call— charged only on success
Try it
Upstream result page (20 listings per page) to start from; pass the previous response's next_page to continue.
Result ordering applied by the site.
Maximum number of listings to return; clamped to 80 when include_details is true and to 200 when it is false.
Search keyword(s), e.g. a product name.
Ghana region or area slug as it appears in the site's location URLs (confirmed: greater-accra, accra-metropolitan). Omitted = all of Ghana.
Keep only listings whose Condition attribute maps to this value. Omitted = both.
Maximum price in GHS. Omitted = no upper bound.
Minimum price in GHS. Omitted = no lower bound.
Jiji category slug as it appears in the site's category URLs (confirmed: mobile-phones, cell-phones-tablets-accessories). Omitted = all categories.
Whether to enrich each listing with its detail attributes, posting date and seller name (one extra request per listing, ceiling 80). False reads search pages only, with a ceiling of 200 listings per call.
→ api.parse.bot/scraper/e1d7d5d9-a3b9-4e28-8c5a-b33681be5f71/<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/e1d7d5d9-a3b9-4e28-8c5a-b33681be5f71/search_listings?query=iphone+17' \
  -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 jiji-com-gh-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 Ghana classified-ads search — bounded, re-runnable."""
from parse_apis.jiji_com_gh_api import Jiji, Sort, Condition, InputNotFound

client = Jiji()

# Search for iPhones sorted by newest, capped at 5 results.
for listing in client.listings.search(query="iphone 17", sort=Sort.NEWEST, limit=5):
    print(listing.title, listing.price_display, listing.condition, listing.region)

# Drill into the first used-condition listing under a price ceiling.
cheap = client.listings.search(
    query="samsung tablet",
    condition=Condition.USED,
    max_price=2000,
    limit=1,
).first()

if cheap is not None:
    print(cheap.title, cheap.price, cheap.currency)
    print("seller:", cheap.seller_name, "verified:", cheap.seller_verified)
    print("posted:", cheap.date_posted_relative)
    if cheap.other_attributes:
        print("attrs:", cheap.other_attributes)

# Narrow by category — handle unknown slug gracefully.
try:
    for listing in client.listings.search(
        query="laptop",
        category_slug="computers-and-laptops",
        limit=3,
    ):
        print(listing.title, listing.price_display, listing.brand, listing.storage)
except InputNotFound:
    print("category slug not recognised by the site")

print("exercised: listings.search (with sort / condition / max_price / category_slug filters)")
All endpoints · 1 totalmissing one? ·

Searches Jiji Ghana classified ads by keyword and returns one record per listing. Results are gathered 20 per upstream page starting at `page` and following the site's own continuation, de-duplicated by listing id, until `limit` listings are collected or no more pages exist (at most 10 pages, i.e. 200 listings, are read per call). Two modes: with `include_details` true (the default) every listing is enriched with the ad's detail attributes (brand, model, storage, RAM, size, colour and any other attributes under other_attributes), the posting date and the seller's display name and ID-verification status; each listing then costs one extra detail request (detail requests are fetched a few at a time in parallel so a full call stays within the execution limit), so the per-call ceiling in this mode is 80 (a call at the default limit of 40 performs about 42 requests, at 80 about 84) and larger limits are clamped to 80. With `include_details` false only the search pages are read (one request per 20 listings), the per-call ceiling is 200 (values above 200 are clamped to 200), and the detail-only fields (brand, model, storage, ram, size, colour, other_attributes, date_posted, date_posted_relative) are null; seller_verified is always taken from the search result and seller_name is filled from the search result when the site includes it there (it is sparse in this mode and complete in enriched mode). `details_included` echoes the mode. A listing whose detail request fails keeps its summary fields and carries a `detail_error` message (counted in `detail_failures`). `category_slug`, `region`, `min_price`, `max_price` and `sort` are applied by the site; `condition` is applied locally against the ad's Condition attribute (Brand New -> new; Used/Refurbished/Foreign Used -> used), so a filtered call may read several pages to fill the limit. `total_matches` is the site's count for the keyword plus site-applied filters (not the condition filter). `next_page` is the upstream page to pass as `page` to continue: when a page was only partly consumed because `limit` was reached, `next_page` repeats that page, so use a limit that is a multiple of 20 for gap-free paging. An unknown keyword returns an empty `listings` array; an unknown category_slug or region slug returns a stale_input error. Prices are in Ghanaian cedi (GHS). `date_posted` is an RFC 1123 GMT timestamp from the ad.

Input
ParamTypeDescription
pageintegerUpstream result page (20 listings per page) to start from; pass the previous response's next_page to continue.
sortstringResult ordering applied by the site.
limitintegerMaximum number of listings to return; clamped to 80 when include_details is true and to 200 when it is false.
queryrequiredstringSearch keyword(s), e.g. a product name.
regionstringGhana region or area slug as it appears in the site's location URLs (confirmed: greater-accra, accra-metropolitan). Omitted = all of Ghana.
conditionstringKeep only listings whose Condition attribute maps to this value. Omitted = both.
max_priceintegerMaximum price in GHS. Omitted = no upper bound.
min_priceintegerMinimum price in GHS. Omitted = no lower bound.
category_slugstringJiji category slug as it appears in the site's category URLs (confirmed: mobile-phones, cell-phones-tablets-accessories). Omitted = all categories.
include_detailsbooleanWhether to enrich each listing with its detail attributes, posting date and seller name (one extra request per listing, ceiling 80). False reads search pages only, with a ceiling of 200 listings per call.
Response
{
  "type": "object",
  "fields": {
    "page": "first upstream page read",
    "query": "echo of the search keyword",
    "has_more": "whether more listings exist beyond this response",
    "listings": "array of listing records: id, title, price (number, GHS), currency, price_display, condition (new|used|null), condition_raw, region, parent_region, region_slug, category, category_slug, short_description, main_image_url, image_urls (up to 5), images_count, listing_url, is_promoted, seller_verified, seller_name, and the detail-only fields brand, model, storage, ram, size, colour, other_attributes (object of remaining attribute name -> value), date_posted, date_posted_relative, detail_error (all null when details_included is false)",
    "next_page": "upstream page to pass as page to continue, null when exhausted",
    "pages_fetched": "number of upstream pages read in this call",
    "total_matches": "site-reported number of ads matching the keyword and site-applied filters",
    "detail_failures": "number of listings whose detail request failed (they carry detail_error)",
    "details_included": "whether detail enrichment was performed (echo of include_details)"
  },
  "sample": {
    "data": {
      "page": 1,
      "query": "iphone 17",
      "has_more": true,
      "listings": [
        {
          "id": "uQjricy3B1JA43UEYP5Qm0pB",
          "ram": "8 GB",
          "size": "6.3 inches",
          "brand": "Apple",
          "model": "iPhone 17",
          "price": 10500,
          "title": "New Apple iPhone 17 256 GB White",
          "colour": "White",
          "region": "Dzorwulu",
          "storage": "256 GB",
          "category": "Mobile Phones",
          "currency": "GHS",
          "condition": "new",
          "image_urls": [
            "https://pictures-ghana.jijistatic.net/57592450_MzAwLTQwMC1jMGI4NWI1ZjI2.jpg"
          ],
          "date_posted": "Tue, 17 Feb 2026 15:38:46 GMT",
          "is_promoted": true,
          "listing_url": "https://jiji.com.gh/dzorwulu/mobile-phones/new-apple-iphone-17-256-gb-white-uQjricy3B1JA43UEYP5Qm0pB.html",
          "region_slug": "dzorwulu",
          "seller_name": "Noble King",
          "detail_error": null,
          "images_count": 3,
          "category_slug": "mobile-phones",
          "condition_raw": "Brand New",
          "parent_region": "Greater Accra",
          "price_display": "GH₵ 10,500",
          "main_image_url": "https://pictures-ghana.jijistatic.net/57592450_MzAwLTQwMC1jMGI4NWI1ZjI2.jpg",
          "seller_verified": true,
          "other_attributes": {
            "Battery": "3692 mAh",
            "Card Slot": "No",
            "Display Type": "OLED",
            "Operating System": "IOS",
            "Physical Condition": "No faults"
          },
          "short_description": "Brand new latest :\nApple iPhone 17 \n256GB\neSIM Unlocked",
          "date_posted_relative": "44 min ago"
        }
      ],
      "next_page": 2,
      "pages_fetched": 1,
      "total_matches": 1680,
      "detail_failures": 0,
      "details_included": true
    },
    "status": "success"
  }
}

About the Com API

What the API returns

The search_listings endpoint accepts a required query string and returns an array of listing objects from jiji.com.gh. Each listing carries a numeric price in GHS alongside a price_display string, a normalized condition field (new, used, or null), and a region field populated from the site's location data. Detail-level attributes — brand, model, storage, RAM, screen size, colour, and any other attributes the seller filled in — are merged into the same record, so you don't need a second call to get them.

Filtering and pagination

You can narrow results using min_price and max_price (both in GHS), a region slug (e.g. greater-accra, accra-metropolis), a condition value, and a sort ordering. The limit parameter caps the number of listings returned per call; values above 60 are clamped to 60. Pagination is handled through the page input and the next_page field in the response — pass the returned next_page value as page in your next request to walk through additional results. has_more tells you whether further pages exist, and total_matches reflects the site-reported count for your query.

Seller and data quality signals

Each listing record includes the seller's display name and their ID-verification status, which lets you filter for verified sellers without scraping individual profile pages. The detail_failures count in the response flags how many listings in that batch could not be fully enriched; those records carry a detail_error field instead of attributes.

Coverage scope

The API covers Ghana-specific inventory on jiji.com.gh. Listings span all major categories on the site — electronics, vehicles, property, fashion, and more — but the search results reflect the site's own index and ranking, not a full database export. Category-browsing, seller profile lookups, and saved-search or alert features are not part of the current endpoint set.

Reliability & maintenanceVerified

The Com API is a managed, monitored endpoint for jiji.com.gh — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when jiji.com.gh 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.com.gh 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
2h 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
  • Track price trends for used smartphones in Greater Accra by querying a model name with region=greater-accra and recording price over time
  • Build a price-comparison tool for electronics that normalizes brand, model, and storage attributes across listings
  • Monitor new listings for a specific product keyword daily using sort and posting_date fields
  • Filter verified-seller listings by checking the ID-verification status field in each record
  • Aggregate regional supply data for a product category by running the same query across multiple region slugs
  • Identify condition distribution (new vs. used) for a given search term using the normalized condition field
  • Feed a deal-alert system with min_price/max_price bounds to surface listings below a target price
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 Jiji Ghana have an official developer API?+
Jiji does not publish an official public developer API for jiji.com.gh. There is no documented REST or GraphQL interface available to third-party developers.
What does the `search_listings` endpoint return beyond the basic listing title and price?+
Each record includes the listing ID, title, price (numeric, GHS), price_display string, normalized condition (new/used/null), region, posting date, seller display name, and seller ID-verification status. It also merges in any ad-specific detail attributes the seller provided — common ones include brand, model, storage, RAM, screen size, and colour. The total_matches and has_more fields support pagination.
How does pagination work, and is there a cap on results per call?+
Pass the next_page value from a response back as the page parameter in your next request to fetch the following page. Each upstream page contains 20 listings. The limit parameter controls how many listings are returned in a single API call, with a hard ceiling of 60. has_more indicates whether additional pages remain.
Can I look up a specific seller's profile or all ads from one seller?+
Not currently. The API covers keyword-based ad search across jiji.com.gh and returns the seller's display name and verification status within each listing record, but does not expose a seller-profile or seller-listings endpoint. You can fork the API on Parse and revise it to add a seller-focused endpoint.
Are listing images or contact details (phone numbers) included in the response?+
Contact details such as phone numbers are not included; Jiji gates those behind user actions on the site. Image URLs are not listed among the current response fields either. The API covers structured listing data — price, attributes, condition, region, and seller metadata. You can fork the API on Parse and revise it to add image URL extraction if the listing detail exposes them.
Page content last updated . Spec covers 1 endpoint from jiji.com.gh.
Related APIs in MarketplaceSee all →
jiji.ng API
Access data from jiji.ng.
jumia.com.gh API
Browse and search thousands of products from Jumia Ghana's catalog, view detailed product information, and explore items across different categories. Get real-time search suggestions and instantly access pricing, descriptions, and availability for any item on Ghana's leading e-commerce platform.
kijiji.ca API
Search and browse Kijiji listings across categories like rentals, pets, and jobs, while viewing detailed information about specific ads along with available locations and categories. Filter through thousands of Canadian classifieds to find exactly what you're looking for in your area.
craigslist.org API
Search Craigslist listings across any region and instantly access structured data including prices, locations, coordinates, images, and direct URLs. Find exactly what you're looking for with organized sale listings that are easy to filter and analyze.
kleinanzeigen.de API
Search and retrieve classified ad listings from kleinanzeigen.de. Filter by keyword, category, price range, and sorting order. Supports vehicles, real estate, jobs, electronics, and general products, with full listing details including title, price, description, location, and seller information.
marktplaats.nl API
Access data from marktplaats.nl.
leboncoin.fr API
Search and retrieve detailed listings from Leboncoin across cars, real estate, jobs, and other categories with advanced filtering options. Access seller profiles, pricing analytics, and comprehensive listing details to find exactly what you're looking for on France's leading classifieds platform.
quikr.com API
Search for used products across Quikr by keyword and category with location filtering, then retrieve detailed listing information including prices, descriptions, and seller details. Access product categories and search suggestions to discover exactly what you're looking for in your area.