Discover/Com API
live

Com APIyellowpages.com.eg

Search yellowpages.com.eg business listings by keyword and location. Returns company name, address, phone numbers, website, WhatsApp, and categories for Egyptian businesses.

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

What is the Com API?

The yellowpages.com.eg API provides a single search_listings endpoint that queries Egypt's Yellow Pages directory and returns up to 20 business listings per page, each carrying up to 12 fields including company title, address, phone numbers, website, WhatsApp availability, business categories, and keywords. One request resolves your location input against the site's known cities, areas, and districts and returns the normalised heading, pagination state, and total result count.

This call costs10 credits / call— charged only on success
Try it
1-based results page number; the site serves 20 listings per page.
What to search for: a business category, company name, brand or keyword, at least 2 characters (e.g. one shape: a category name such as a machinery-and-supplies category).
City, area or district name in Egypt as the site knows it (e.g. a city name or an area name), at least 2 characters. Resolved against the site's place suggestions; the resolved place is echoed in the response.
When true, phone numbers are looked up for every listing on the page (one extra request each). When false, `phones` and `other_numbers` are null and the call is much cheaper.
api.parse.bot/scraper/5005270d-dc2b-4f8f-a413-008d066d17e7/<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/5005270d-dc2b-4f8f-a413-008d066d17e7/search_listings?keyword=advertising+machinery+%26+supplies&location=Cairo' \
  -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 yellowpages-com-eg-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: Egypt Yellow Pages — search listings by keyword and location."""
from parse_apis.yellowpages_com_eg_api import YellowPages, InputNotFound

client = YellowPages()

# Get the full search result wrapper to inspect metadata first.
result = client.search_results.search(keyword="restaurants", location="Cairo")
print(f"{result.heading} — {result.total_results} results found")
print(f"Location resolved: {result.location.label} ({result.location.type})")

# Iterate listings with automatic pagination; limit= caps total items fetched.
for listing in client.listings.search(keyword="restaurants", location="Cairo", limit=5):
    print(f"{listing.title} — {listing.address}")
    if listing.phones:
        print(f"  Phones: {', '.join(listing.phones)}")
    if listing.website:
        print(f"  Website: {listing.website}")

# Drill-down: grab one listing to inspect its full details.
hit = client.listings.search(keyword="printing", location="Maadi", limit=1).first()
if hit is not None:
    print(f"\n{hit.title} (ID: {hit.company_id})")
    print(f"  Categories: {', '.join(hit.categories)}")
    if hit.whatsapp:
        print(f"  WhatsApp: {hit.whatsapp}")

# Handle a location the site cannot resolve.
try:
    client.search_results.search(keyword="plumbing", location="xx")
except InputNotFound as e:
    print(f"Not found: {e.message}")

print("exercised: search_results.search / listings.search / InputNotFound")
All endpoints · 1 totalmissing one? ·

Searches the Egypt Yellow Pages directory for businesses matching a keyword (company name, category, brand or keyword) in a city, area or district, and returns one page of listings (20 per page) exactly as the site's search results page shows them. The location is resolved against the site's own place suggestions: an exact (case-insensitive) label match is preferred, otherwise the first suggestion is used, and the resolved place is reported in `location` (with `matched_exactly`); a location the site does not know at all is rejected with stale_input. Each listing carries the business title, its `company_id` (the stable site identifier), profile URL, street address, categories, keywords, website, WhatsApp number, logo, whether it has additional branches and whether the site offers an email contact form for it. The site does not publish business email addresses (only a contact form), so no email address is returned. Phone numbers are not embedded in the results page; when `include_phones` is true (the default) one extra lightweight lookup is made per listing (up to 20 per page), so a call costs about 22 requests; with `include_phones=false` the call costs 2 requests and `phones`/`other_numbers` are null. Any listing whose phone lookup failed is listed in `phone_lookup_failures`. `total_results` and `has_next` come from the site; paginate with `page` while `has_next` is true. Note: requesting a page beyond the last one makes the site broaden the search to related results (with a much larger `total_results`), mirroring the website's behaviour, so stop at `has_next=false`. A keyword the site cannot match still returns the site's closest fuzzy matches rather than an empty list.

Input
ParamTypeDescription
pageinteger1-based results page number; the site serves 20 listings per page.
keywordrequiredstringWhat to search for: a business category, company name, brand or keyword, at least 2 characters (e.g. one shape: a category name such as a machinery-and-supplies category).
locationrequiredstringCity, area or district name in Egypt as the site knows it (e.g. a city name or an area name), at least 2 characters. Resolved against the site's place suggestions; the resolved place is echoed in the response.
include_phonesbooleanWhen true, phone numbers are looked up for every listing on the page (one extra request each). When false, `phones` and `other_numbers` are null and the call is much cheaper.
Response
{
  "type": "object",
  "fields": {
    "page": "integer, the requested page number",
    "heading": "the results page heading, e.g. '<keyword> in <place>'",
    "keyword": "the search term as the site normalised it (category/keyword label when it recognised one)",
    "has_next": "boolean, true when the site offers a next page",
    "listings": "array of listing objects: company_id (string, stable site id), title, profile_url, address (string or null), has_branches (boolean), categories (array of strings), keywords (array of strings), website (string or null), has_email_contact (boolean; the site exposes only a contact form, never the address), whatsapp (string or null, international format), logo_url (string or null), phones (array of strings, or null when include_phones=false), other_numbers (array of additional numbers the site lists separately from the main phones, e.g. fax; null when include_phones=false)",
    "location": "object: resolved place with label, type (City | Area | District as reported by the site) and matched_exactly (true when the label equals the supplied location, case-insensitively)",
    "page_size": "integer, listings per page (20)",
    "total_results": "integer, total matching listings reported by the site for this search",
    "phone_lookup_failures": "array of company_id values whose phone lookup did not return numbers (empty when all succeeded or when include_phones=false)"
  },
  "sample": {
    "data": {
      "page": 1,
      "heading": "Advertising Machinery & Supplies in Cairo",
      "keyword": "Advertising Machinery & Supplies",
      "has_next": true,
      "listings": [
        {
          "title": "Mak Printing Solutions",
          "phones": [
            "+1 (555) 012-3456",
            "+1 (555) 012-3456",
            "+1 (555) 012-3456"
          ],
          "address": "123 Main St, Springfield, IL 62704",
          "website": "http://www.makprinteg.com/",
          "keywords": [
            "Indoor Printers",
            "Printing Machine",
            "Outdoor Printing Machine"
          ],
          "logo_url": "https://cdn.yellowpages.com.eg/static/modules/uploads/logos/mak-printing-solutions-logo_474418_2022_sh_3477_36348.jpg?25",
          "whatsapp": "+1 (555) 012-3456",
          "categories": [
            "Advertising Machinery & Supplies",
            "Printing & Equipment"
          ],
          "company_id": "708198",
          "profile_url": "https://yellowpages.com.eg/en/profile/mak-printing-solutions/708198",
          "has_branches": true,
          "other_numbers": [],
          "has_email_contact": true
        },
        {
          "title": "24 Support - VASE",
          "phones": [
            "+1 (555) 012-3456",
            "+1 (555) 012-3456",
            "+1 (555) 012-3456"
          ],
          "address": "123 Main St, Springfield, IL 62704",
          "website": null,
          "keywords": [],
          "logo_url": null,
          "whatsapp": null,
          "categories": [
            "Advertising Machinery & Supplies",
            "Printing & Equipment"
          ],
          "company_id": "489051",
          "profile_url": "https://yellowpages.com.eg/en/profile/24-support-_-vase/489051",
          "has_branches": false,
          "other_numbers": [],
          "has_email_contact": true
        }
      ],
      "location": {
        "type": "City",
        "label": "CAIRO",
        "matched_exactly": true
      },
      "page_size": 20,
      "total_results": 38,
      "phone_lookup_failures": []
    },
    "status": "success"
  }
}

About the Com API

What the API Returns

The search_listings endpoint accepts a keyword (business category, company name, brand, or search term) and a location (city, area, or district in Egypt) and returns one page of 20 listings matching that query. Each listing object includes company_id, title, profile_url, address, has_branches, and availability of contact channels such as website, WhatsApp, and phone. The response also exposes a location object that tells you the resolved place label, its type (City, Area, or District), and whether it was matched exactly.

Phone Number Lookup

Phone numbers are not returned by default. Set include_phones=true to trigger a per-listing lookup that populates the phones field on each listing. Any company IDs where the lookup did not return numbers are collected in the phone_lookup_failures array so you know exactly which records are incomplete. Be aware that enabling phone lookup increases response time proportionally to the number of listings on the page.

Pagination and Result Metadata

Use the page parameter (1-based) to walk through result sets. The response includes total_results (the site's reported count for the query), page_size (always 20), and has_next (a boolean indicating whether a subsequent page exists). The keyword field in the response reflects how the site normalised your input — for example, it may return a recognised category label rather than the raw string you submitted.

Coverage and Limitations

Coverage is limited to businesses listed on yellowpages.com.eg. Location resolution depends on the site's own place index, so obscure sub-areas may not match exactly — check matched_exactly on the location object to verify. The API returns data for search result pages only; individual business profile pages (full descriptions, photos, reviews) are not included in the current response shape.

Reliability & maintenanceVerified

The Com API is a managed, monitored endpoint for yellowpages.com.eg — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when yellowpages.com.eg 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 yellowpages.com.eg 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
3h 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
  • Build a supplier discovery tool for Egyptian businesses by searching categories like 'logistics' or 'manufacturing' in specific cities
  • Collect phone numbers and WhatsApp availability for sales outreach lists using include_phones=true
  • Verify whether a company has branches in multiple locations using the has_branches field
  • Aggregate business counts by category and area using total_results across multiple location queries
  • Enrich a CRM with Egyptian company addresses, websites, and contact channels from profile_url data
  • Monitor which businesses appear for a given keyword-and-location pair over time using company_id as a stable identifier
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 yellowpages.com.eg have an official developer API?+
No. yellowpages.com.eg does not publish a public developer API or documented data access program. This Parse API is the structured way to query the directory programmatically.
What does the location object tell me, and what happens if my location string is not recognised exactly?+
The location object returns the resolved place label, its type (City, Area, or District as reported by the site), and a matched_exactly boolean. When matched_exactly is false, the site matched your input to a nearby or approximate place — results may cover a broader area than intended. Using well-known city names like 'Cairo' or 'Alexandria' produces the most reliable matches.
Are phone numbers returned by default?+
No. The phones field is null unless you pass include_phones=true. When enabled, a lookup runs for each listing on the page, and any company IDs that return no numbers are listed in phone_lookup_failures. This lets you distinguish between a business with no listed number and one where the lookup failed.
Does the API return full business profile details like descriptions, photos, or customer reviews?+
Not currently. The API covers search result data: title, address, categories, keywords, phone numbers, website, WhatsApp availability, and branch status. Full profile pages with descriptions, photos, and reviews are not included. You can fork this API on Parse and revise it to add an endpoint that fetches individual profile pages using the profile_url field.
How does pagination work and is there a way to get more than 20 listings per request?+
The site serves exactly 20 listings per page. The page_size field in the response always reflects 20, and there is no parameter to change it. Use the page parameter to step through result sets and check has_next to know when you have reached the last page. To collect all results for a query, iterate page from 1 until has_next is false.
Page content last updated . Spec covers 1 endpoint from yellowpages.com.eg.
Related APIs in B2b DirectorySee all →
yellowpages.com API
Search and retrieve business listings, contact info, hours, categories, and customer reviews from YellowPages.com. Browse by category or location across the US.
yellowpages.com.au API
Search Australian businesses by category to find contact details, addresses, and emails, then retrieve comprehensive business information for any listing. Perfect for building lead lists, verifying business information, or discovering local service providers across Australia.
yellowpages-uae.com API
Search and discover UAE businesses with instant access to contact details, locations, and branch information from the Yellow Pages UAE directory. Find companies by name, get detailed business profiles, explore multiple branches, and browse available cities all in one place.
yellowpages.in API
Search for businesses across India and discover detailed information like contact details, addresses, and services from YellowPages.in's comprehensive business directory. Find relevant business categories with autocomplete suggestions to quickly locate the leads and companies you're looking for.
yellowpages.ca API
Search for businesses across Canada and retrieve detailed information including contact details, ratings, reviews, and website data. Supports keyword and location-based discovery of local businesses for research, analysis, and data enrichment use cases.
paginasamarillas.com.pe API
Search and discover Peruvian businesses with instant access to their contact details, including phone numbers, emails, WhatsApp, websites, social media profiles, addresses, and operating hours. Find verified reviews and comprehensive business information all in one place to easily connect with companies across Peru.
pagesjaunes.fr API
Search for business listings across France on PagesJaunes.fr and access customer reviews and detailed location information. Find businesses by keyword and location, and retrieve comprehensive details including addresses, ratings, and reviews.
paginasamarillas.com.mx API
Access Mexico's largest business directory to find company profiles, browse business categories, search for specific services, and discover industry insights from curated blog content. Build applications that help users discover and learn about Mexican businesses all in one place.