Skip to content
    ↑↓ to choose · Enter to open

    · 13 min read

    Jordan Business Directory Scraper: 300+ Categories Covered (2026)

    By CrawlerBros Engineering Team

    Each record carries 29 output fields, providing structured details on Jordanian businesses including direct phone numbers, coordinates, categories, and physical addresses. At the free-plan price of $5.00 per 1,000 results, this collector queries JordanYP across 20 cities and 300+ categories. Every item links back to its canonical sourceUrl and carries a scrapedAt timestamp. This scraper is built for sales teams and market researchers looking for public business contacts and sector density in Jordan. It is not for anyone who needs email addresses, which JordanYP gates behind an interactive sign-in action on the source page.

    Try it: open Jordan Business Directory Scraper on Apify, sign in on the free plan and run the prefilled example.

    Can you try Jordan Business Directory Scraper before paying?

    Yes. Apify's free plan includes $5.00 of prepaid usage every month and asks for no credit card. At $0.005 per result, that covers up to 1,000 results of Jordan Business Directory Scraper a month, before run-start charges and platform usage.

    The example request further down caps maxItems at 20, so a first run returns at most 20 results and costs at most $0.10 in result charges. That is enough to see the real shape of the data before deciding anything.

    Jordan Business Directory Scraper was last updated on 2026-08-07. It is one of 1,725 Actors CrawlerBros publishes on Apify, which together have 686,269 lifetime public runs and an average rating of 4.63 out of 5 across 416 reviews.

    What does it cost to run Jordan Business Directory Scraper?

    Each result costs $0.005 on Apify's free plan, which is $5.00 per 1,000 results. Starting a run is charged separately at $0.005 per GB of Actor memory. Apify also bills the platform usage each run consumes, at the rates of your Apify plan, on top of these charges.

    Apify plan Per result Per 1,000 results
    FREE $0.005 $5.00
    BRONZE $0.00433 $4.33
    SILVER $0.00367 $3.67
    GOLD $0.003 $3.00
    PLATINUM $0.003 $3.00
    DIAMOND $0.003 $3.00

    The maxItems parameter is the primary driver of your bill because result charges apply to every record written to the dataset. Apify also bills the platform usage each run consumes on top of these charges, alongside the run-start fee. To test extraction logic at low cost, stick with the default maxItems of 20, which incurs at most $0.10 in result charges.

    How do you run Jordan Business Directory Scraper from the API?

    The schema marks 1 of its 13 controls as required: mode. Every value in the payload below comes from the published schema's own prefills, which means you can paste it, swap the token, and get a real result.

    Call the synchronous endpoint to start a run and receive dataset items in one request:

    curl -X POST "https://api.apify.com/v2/acts/crawlerbros~jordan-business-directory-scraper/run-sync-get-dataset-items?token=$APIFY_TOKEN" \
      -H "Content-Type: application/json" \
      -d '{"mode":"search","searchQuery":"restaurant","city":"Amman","category":"restaurants","companyUrls":[],"verifiedOnly":false,"hasWebsite":false,"maxItems":20}'
    

    The same run from Python, using the official client:

    from apify_client import ApifyClient
    
    client = ApifyClient("<YOUR_APIFY_TOKEN>")
    
    run_input = {
      "mode": "search",
      "searchQuery": "restaurant",
      "city": "Amman",
      "category": "restaurants",
      "companyUrls": [],
      "verifiedOnly": False,
      "hasWebsite": False,
      "maxItems": 20
    }
    
    run = client.actor("crawlerbros~jordan-business-directory-scraper").call(run_input=run_input)
    
    for item in client.dataset(run["defaultDatasetId"]).iterate_items():
        print(item)
    

    And from Node.js:

    import { ApifyClient } from 'apify-client'
    
    const client = new ApifyClient({ token: '<YOUR_APIFY_TOKEN>' })
    
    const input = {
      "mode": "search",
      "searchQuery": "restaurant",
      "city": "Amman",
      "category": "restaurants",
      "companyUrls": [],
      "verifiedOnly": false,
      "hasWebsite": false,
      "maxItems": 20
    }
    
    const run = await client.actor('crawlerbros~jordan-business-directory-scraper').call(input)
    const { items } = await client.dataset(run.defaultDatasetId).listItems()
    console.log(items)
    

    That endpoint blocks until the run completes. Fine while you are testing a handful of records, risky once a run takes minutes: a dropped connection loses the response even though the run itself finished. Switch to an asynchronous start with polling or a webhook before you schedule anything.

    Which Jordan Business Directory Scraper inputs matter, and which can you skip?

    The mode parameter is the only required control, selecting between keyword search, category browsing, city browsing, or explicit URL lookup. For initial evaluations, keep optional filters like minEstablishmentYear, minRating, and containsKeyword empty and focus on setting searchQuery or category alongside city.

    • mode (string): What to fetch from JordanYP. Default: "search".
    • searchQuery (string): Free-text keyword to search JordanYP for (business name, service, or category term), e.g. restaurant, lawyer, hotel.
    • city (string): City to filter/browse. Required for mode=byCity. Optional narrowing filter for mode=search and mode=byCategory. Default: "".
    • category (string): Business category to browse. Required for mode=byCategory. Default: "".
    • companyUrls (array): JordanYP company profile URLs (e.g. https://www.jordanyp.com/company/373584/Arida_Law_Firm) or bare numeric company IDs (e.g. 373584). Default: [].
    • verifiedOnly (boolean): Only emit businesses with a JordanYP-verified listing badge. Default: false.
    • hasWebsite (boolean): Only emit businesses that list a website address. Default: false.
    • maxItems (integer): Hard cap on emitted records. Default: 20.
    • minRating (number): Drop businesses with a review rating below this (0-5). Businesses with no reviews are always kept.
    • minReviews (integer): Drop businesses with fewer reviews than this.
    • minEstablishmentYear (integer): Drop businesses established before this year.
    • maxEstablishmentYear (integer): Drop businesses established after this year.

    The other 1 controls, with their defaults, are listed in the input schema on Jordan Business Directory Scraper on Apify.

    Fixed-choice controls: mode accepts search (Search by keyword (+ optional city)), byCategory (Browse a business category), byCity (Browse all businesses in a city), byUrls (Fetch specific businesses by URL/ID); city accepts 21 values (default ""), including Amman, "" ((none - all cities)), Ajloun, Al_Dlail (Al Dlail); category accepts 303 values (default ""), including restaurants, "" ((none - required for mode=byCategory)), 3d_technology (3D Technology), advertising.

    What does Jordan Business Directory Scraper return?

    Returned records provide actionable contact points like phone, mobilePhone, website, and GPS coordinates suitable for local directory aggregation. The records conspicuously lack email addresses, which the directory requires a user login to view and this Actor intentionally omits.

    • companyId: JordanYP's internal numeric business ID
    • name: Business name
    • tagline: Short one-line business summary
    • description: Full business description
    • city: City in Jordan
    • address: Full street address
    • country: Always Jordan
    • phone: Primary contact number
    • mobilePhone: Mobile contact number (when listed)
    • website: Business website (resolved to the real external URL)
    • companyManager: Listed company manager / owner name
    • establishmentYear: Year the business was established
    • employees: Employee count range (e.g. 1-5, 11-50)
    • workingHours: Opening hours per day of the week
    • categories: JordanYP categories the business is listed under
    • verified: Whether JordanYP has verified this listing
    • yearsListed: How many years the business has been listed on JordanYP
    • recentlyUpdated: Whether the listing was recently refreshed by its owner
    • reviewCount: Number of JordanYP reviews
    • rating: Average review rating (0-5), only present when reviewCount > 0
    • latitude / longitude: GPS coordinates (when the business has a map pin)
    • logoImageUrl: Main business photo/logo
    • photoUrls: All gallery photos for the business
    • registeredAt: When the listing was first registered on JordanYP
    • lastUpdatedAt: When the listing was last updated
    • sourceUrl: Canonical JordanYP profile URL
    • scrapedAt: UTC timestamp of when the record was scraped
    • recordType: Always business

    These are the documented fields. Optional ones can be empty on a given record, so measure how often each field your deliverable depends on is populated across a real sample before automating the handoff.

    How do you build the workflow end to end?

    Open Jordan Business Directory Scraper and work through these in order. Each step ends with something to check, so a bad configuration surfaces on a small run rather than a scheduled one.

    1. Set mode to search to verify the visibility of your target keywords across JordanYP listings.
    2. Enter a term into searchQuery and select a municipality like Amman in city to establish your initial test slice.
    3. Adjust maxItems to 20 for a first evaluation run to restrict result fees to at most $0.10.
    4. Inspect the resulting records to confirm the presence of phone, address, and city fields before expanding scope.
    5. Switch mode to byCategory, set category to one of the 300+ options such as lawyers or restaurants, and set verifiedOnly to true if you require verified badges.
    6. Examine scrapedAt and lastUpdatedAt to verify the temporal freshness of the records.
    7. Pass identified profile URLs or bare IDs into companyUrls under mode set to byUrls when targeted enrichment is needed.
    8. Check dataset item counts against your item cap to ensure pagination fetched all available businesses for the filter combination.

    How do you apply it? Three worked playbooks

    These are Jordan Business Directory Scraper's own documented use cases, each worked through as an operating pattern rather than a description.

    Use case 1: Lead generation

    Outcome: Build targeted contact lists of Jordanian businesses by category and city

    Configure: mode="byCategory", category="lawyers", city="Amman", maxItems=100

    Working method: Execute a run restricted to a specific category and city slice to evaluate phone listing rates. Inspect companyManager and mobilePhone on the output objects to assess outreach viability. Expand to additional cities like Irbid and Zarqa in successive runs once structure is validated.

    Deliverable: A dataset containing companyId, name, phone, mobilePhone, and address for targeted prospects.

    Stop condition: The returned records systematically omit the phone field across the initial batch.

    Use case 2: Market research

    Outcome: Analyze business density, categories, and coverage across Jordan's cities

    Configure: mode="byCity", city="Aqaba", maxItems=300

    Working method: Run by city to collect municipal directory records up to the schema ceiling. Aggregate occurrences of values within the categories arrays to map commercial distribution across sectors. Cross-reference records containing latitude and longitude to visualize geographic density.

    Deliverable: A municipal dataset mapping local sector density, establishmentYear distribution, and location coordinates.

    Stop condition: The city property on returned items does not match the requested input city.

    Use case 3: Data enrichment

    Outcome: Attach verified phone numbers, websites, and coordinates to an existing business dataset

    Configure: mode="byUrls", companyUrls=["https://www.jordanyp.com/company/373584/Arida_Law_Firm", "349701"]

    Working method: Populate companyUrls with targeted directory URLs or numeric IDs from an internal tracking list. Fetch the live profiles and join them against internal records using companyId as the match key. Append workingHours, verified, and external website properties to the existing store.

    Deliverable: Enriched internal records updated with verified flags, GPS coordinates, websites, and operational hours.

    Stop condition: Output items fail to emit matching companyId numbers corresponding to the submitted inputs.

    What breaks, and how do you design around it?

    The Actor schema imposes a hard ceiling of 300 on maxItems for a single run. To scrape broad categories or entire cities that exceed this limit, split your workload into multiple runs across distinct city values or specific category selections.

    When should you not use Jordan Business Directory Scraper?

    Do not use this Actor if your campaign mandates acquiring verified email addresses, because JordanYP does not expose emails in public page markup without an authenticated session. For research targeting neighboring regional markets, this scraper will not assist; choose the Yello UAE Scraper - UAE Business Directory for operations centered in the Emirates, or the Egypt Yellow Pages Scraper - Business Directory when mapping firms in Egypt. If your team only needs high-level business entity verification without contact scraping, check government registry portals directly rather than directory listings.

    What should you check before trusting the output?

    • The phone and mobilePhone fields are absent when the business profile does not publish contact numbers.
    • The rating field is omitted entirely whenever reviewCount is 0.
    • GPS fields latitude and longitude are missing if the profile lacks an active map pin.
    • The website field is absent when the listing does not provide an external link.
    • Zero results emitted when strict filters like minRating or minEstablishmentYear match no directory entries.

    None of this proves a record is correct. It gives a scheduled Jordan Business Directory Scraper run defined points where it should stop instead of quietly passing bad data downstream.

    Frequently asked questions

    What does a scraping run cost on Apify's free plan?

    Results are billed at $0.005 per result, which is $5.00 per 1,000 results on the free-plan price. The run-start fee is charged every time a run starts, whether or not it returns results, and Apify also bills the platform usage each run consumes on top of these charges. The default maxItems setting of 20 caps result charges at at most $0.10 on your first run.

    Why are email addresses omitted from dataset records?

    JordanYP keeps business email addresses behind an interactive login wall requiring a visitor account. This Actor is strictly login-free and operates without cookies or private credentials, pulling only public page markup. Because emails are not present in the public HTML, they are omitted from the output fields, though phone, mobilePhone, and website remain available.

    Why do some business records lack a rating or phone field?

    Data is pulled live from JordanYP, where listings are self-reported by business owners. When a listing does not include a phone number or map coordinates, the Actor omits those keys rather than emitting empty strings or placeholder nulls. Additionally, the rating field is only emitted if reviewCount is greater than zero.

    Can I query business names using Arabic characters?

    Yes. The searchQuery control accepts Arabic text as well as English keyword phrases, passing the Unicode characters directly into the JordanYP search interface. You can combine an Arabic keyword query with the city filter dropdown to narrow matches to a particular municipal area.

    What is the maximum number of items a single execution can return?

    The input schema limits maxItems to a maximum value of 300 per execution. If your target category or city contains more businesses than this limit allows, you will need to organize multiple runs, segmenting your queries across specific categories or narrowing them by individual cities.

    Where to go next

    When you are ready to run it, open Jordan Business Directory Scraper on Apify; the free plan covers up to 1,000 results a month.

    Start with the Jordan Business Directory Scraper Actor page for the current input schema, pricing tier, and run history.

    Other Actors we maintain for related data:

    Related guides:

    Resources

    • Actor documentation, input schema, and pricing: verified against the published Actor on 2026-09-28.

    • Actor last updated by its maintainers on 2026-08-07.

    • Run outcome figures cover the 30 day public window ending 2026-09-28.

    • Jordan Business Directory Scraper on Apify

    Featured actors

    Jordan Business Directory Scraper

    Scrape JordanYP (jordanyp.com) - Jordan's online business directory. Search by keyword, browse any of 300+ categories or 20 cities, or fetch specific business profiles by URL/ID. Get phone numbers, addresses, websites, working hours, ratings, coordinates, and photos.

    Run on Apify ↗