· 14 min read
Kiwi Directory Scraper - New Zealand Business Directory: Setup, Cost
Each business record carries 28 output fields, including phone numbers, street addresses, GPS coordinates, social links, and structured opening hours. Up to 1,000 results a month are covered on Apify's free plan, with results costing $5.00 per 1,000 items thereafter. The scraper handles full Māori macron support for business names and location text like Whāngārei. This Actor is built for sales teams needing local B2B leads and developers populating local search directories, but it is not for users who require contact email addresses on every business, as email fields are omitted when not published on the directory.
Try it: open Kiwi Directory Scraper - New Zealand Business Directory on Apify, sign in on the free plan and run the prefilled example.
Can you try Kiwi Directory Scraper - New Zealand Business Directory 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 Kiwi Directory Scraper - New Zealand Business Directory a month, before run-start charges and platform usage.
Kiwi Directory Scraper - New Zealand Business Directory was last updated on 2026-07-21. 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 Kiwi Directory Scraper - New Zealand Business Directory?
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 control has the single largest effect on your run cost because dataset charges apply to every written record. To verify your filter criteria before running full extractions, start with a low maxItems cap of 10 to 20 records. Testing a small query first ensures you do not consume your result budget on unwanted categories.
How do you run Kiwi Directory Scraper - New Zealand Business Directory from the API?
The schema marks 1 of its 10 controls as required: mode. Nothing in the payload below is illustrative. Those are the schema's prefilled defaults for Kiwi Directory Scraper - New Zealand Business Directory, so the request works once your token is in place.
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~kiwi-directory-scraper/run-sync-get-dataset-items?token=$APIFY_TOKEN" \
-H "Content-Type: application/json" \
-d '{"mode":"search"}'
The same run from Python, using the official client:
from apify_client import ApifyClient
client = ApifyClient("<YOUR_APIFY_TOKEN>")
run_input = {
"mode": "search"
}
run = client.actor("crawlerbros~kiwi-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"
}
const run = await client.actor('crawlerbros~kiwi-directory-scraper').call(input)
const { items } = await client.dataset(run.defaultDatasetId).listItems()
console.log(items)
Because the call is synchronous, your client waits for the whole run. Keep it for exploration. For scheduled work, start the run without waiting and collect the dataset afterwards, so network trouble costs you a retry rather than the results.
Which Kiwi Directory Scraper - New Zealand Business Directory inputs matter, and which can you skip?
The mode control dictates how the Actor navigates the directory, offering options for general search, browsing by category, browsing by region, or fetching specific listing URLs. For most initial runs, set mode to search or byCategory and select a single target category like professional or automotive. Leave client-side filtering controls like featuredOnly or hasWebsiteOnly disabled at first to avoid over-filtering your initial sample.
mode(string): What to fetch: a general search (category and/or region and/or keyword), browse one category, browse one region, or fetch full business profiles from direct listing URLs. Default:"search".category(string): Business category to browse (mode=search or mode=byCategory). Leave as 'All categories' to not filter by category. Default:"".region(string): New Zealand region to browse or filter by (mode=search or mode=byRegion). Leave as 'All regions' to not filter by region. Default:"".keyword(string): Free-text keyword to search business names/descriptions for, e.g. 'plumber' or 'cafe' (mode=search, used only when 'Category' is 'All categories'). Matches kiwidirectory.co.nz's own search index. Default:"".businessUrls(array): Direct kiwidirectory.co.nz listing URLs to fetch, e.g. https://kiwidirectory.co.nz/listings/some-business/. Use the 'sourceUrl' field from search results. Default:[].sortBy(string): How to order results after fetching (mode=search, byCategory, byRegion). The site itself only returns its own listing order, so 'name' and 'region' are applied client-side across the fetched batch. Default:"relevance".hasWebsiteOnly(boolean): Only return businesses that have a website link on their listing. Default:false.hasPhoneOnly(boolean): Only return businesses that have a phone number on their listing. Default:false.featuredOnly(boolean): Only return businesses that kiwidirectory.co.nz marks with its own 'Featured' badge on the listing/browse pages (mode=search, byCategory, byRegion). Default:false.maxItems(integer): Hard cap on the number of business records to return. Default:20.
Fixed-choice controls: mode accepts search (category / region / keyword), byCategory (Browse by category), byRegion (Browse by region), byUrl (Fetch business profiles by URL); category accepts 10 values (default ""), including "" (All categories), automotive, entertainment, health; region accepts "" (All regions), auckland, canterbury, northland, wellington, waikato, marlborough, manawatu-whanganui; sortBy accepts relevance (site's own order), name (A-Z), region (A-Z).
What does Kiwi Directory Scraper - New Zealand Business Directory return?
Returned business records are well-suited for regional B2B prospecting, local service mapping, and mapping location markers via latitude and longitude. The output explicitly omits missing attributes, meaning fields like email, rating, or social links are left out entirely rather than returned as null strings when they are not found in the source directory.
name- business namedescription- business descriptionsearchCategory- the category this business was found under (mode=search / byCategory)region,subRegion- New Zealand region and sub-region/city, from the business's own addresssearchRegion- the region this business was found under (mode=search / byRegion)street,city,postalCode,countrylatitude,longitude- GPS coordinatesphone,email,websitefacebookUrl,instagramUrl,linkedinUrl,twitterUrl,youtubeUrl- social links the business has publishedrating,reviewCount- when the business has received at least one reviewfeatured-truewhen kiwidirectory.co.nz marks the listing with its own "Featured" badge on browse pages (omitted, notfalse, otherwise)openingHours[]- structured opening hours ({day, opens, closes}per slot), when publishedimages[]- business photossourceUrl- canonical kiwidirectory.co.nz listing URL for the businessrecordType: "business",scrapedAt
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 Kiwi Directory Scraper - New Zealand Business Directory 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.
- Select the mode control to define your run type, choosing search for keyword queries, byCategory to browse a single trade, byRegion for a local area, or byUrl to target specific profiles.
- Pick a category such as automotive, health, or real-estate if using search or byCategory, or leave as All categories to run a keyword search.
- Set the region parameter to a target territory like auckland or canterbury if you want to apply a client-side location filter to your fetched records.
- Enter a free-text string in the keyword field when mode is set to search and category is left as All categories.
- Toggle hasPhoneOnly or hasWebsiteOnly to true if your downstream process requires valid contact metadata on every output item.
- Set maxItems between 1 and 500 to cap the number of records returned and fix your maximum dataset cost.
- Execute the run and check the dataset tab to ensure returned records contain non-null values for sourceUrl and name.
- Inspect the returned JSON object for a record containing special characters to verify that Māori macrons like Whāngārei are present.
How do you apply it? Three worked playbooks
These are Kiwi Directory Scraper - New Zealand Business Directory's own documented use cases, each worked through as an operating pattern rather than a description.
Use case 1: Local lead generation
Outcome: Build a prospect list of New Zealand businesses by trade and region for B2B outreach
Configure: Set mode to search, select category as professional, set region to auckland, set hasPhoneOnly to true, and maxItems to 100.
Working method: Run a search targeting a single region first to verify contact field population. Check the returned phone and website fields against your CRM requirements, then expand to other regions across sequential runs.
Deliverable: A dataset of New Zealand business records containing populated phone numbers, addresses, and website links for sales outreach.
Stop condition: The run writes items to the dataset where the phone field is missing despite enabling hasPhoneOnly.
Use case 2: Market research
Outcome: See business density and coverage for a category across NZ regions
Configure: Set mode to byCategory, set category to health, set sortBy to region, and maxItems to 500.
Working method: Execute a category browse with regional sorting to group returned businesses. Count records per region in the output dataset to assess geographic concentration across major commercial zones.
Deliverable: A structured JSON feed of business profiles sorted by region, including latitude and longitude coordinates for density mapping.
Stop condition: The output dataset returns zero records for a primary metropolitan region like auckland.
Use case 3: Directory aggregation
Outcome: Feed structured New Zealand business data into your own local-search product
Configure: Set mode to search, category to All categories, leave keyword blank, and set maxItems to 500.
Working method: Iterate through the directory using broad search settings to pull published listings into your staging database. Map the structured openingHours array and image URLs into your target schema.
Deliverable: A dataset containing 28 possible fields per business, including full category, address, and social link structures.
Stop condition: The dataset contains items missing both sourceUrl and recordType fields.
What breaks, and how do you design around it?
- Directory size. kiwidirectory.co.nz is a boutique NZ directory, not a nationwide index - expect roughly 5-25 listings per category and a total in the low hundreds. Every returned record is real, verified data; this actor never fabricates or pads results to reach
maxItems. - No combined category + region URL. The site itself doesn't expose a single URL that filters by both category and region at once. When both are set in
searchmode, the actor crawls the category's listing pages and applies the region as a client-side filter, so total matches can be smaller than either dimension alone. sortBy,hasWebsiteOnly,hasPhoneOnly,featuredOnlyare applied client-side. The site's own listing pages don't support a sort or has-website/has-phone/featured query parameter, so these are applied across the batch of records this run actually fetched.- Ratings. Most listings currently have zero reviews, so
rating/reviewCountare present only on the (currently few) businesses that have received at least one review - this is expected and not a bug.
Because kiwidirectory.co.nz is a boutique directory with a total size in the low hundreds, expect roughly 5 to 25 listings per category rather than thousands of records. When setting both a category and a region in search mode, the Actor crawls category pages first and applies region filtering client-side, which can produce smaller result sets than expected. If you hit item limits, widen your search by setting category to All categories and removing optional filters.
When should you not use Kiwi Directory Scraper - New Zealand Business Directory?
Do not use this Actor if you require a massive nationwide directory of hundreds of thousands of New Zealand businesses, as kiwidirectory.co.nz hosts a boutique collection of listings. It will not scrape yellow.co.nz, which blocks cloud request IP addresses at the network edge. If you need local directory data for other countries instead, consider using Vrisko Scraper - Greek Business Directory (vrisko.gr) for Greek listings, local.ch Scraper - Swiss Business Directory for Switzerland, or FreeIndex Scraper - UK Business Directory for the United Kingdom.
What should you check before trusting the output?
- Verify that the phone field is present on every item when hasPhoneOnly is set to true.
- Confirm that names containing special characters like Whāngārei retain their Māori macrons in the output JSON.
- Check that latitude and longitude contain numeric GPS coordinates when present.
- Ensure openingHours contains an array of objects with day, opens, and closes keys when business hours are populated.
- Stop the scheduled run if the recordType field in the returned dataset does not equal business.
None of this proves a record is correct. It gives a scheduled Kiwi Directory Scraper - New Zealand Business Directory run defined points where it should stop instead of quietly passing bad data downstream.
Frequently asked questions
How much does it cost to scrape 1,000 results on the free plan?
On Apify's free plan, 1,000 results cost $5.00, calculated at $0.005 per output item written to the dataset. Apify also bills platform usage each run consumes on top of these charges, which includes memory and CPU time.
Does this Actor scrape yellow.co.nz?
No. Yellow.co.nz returns a static network-edge 403 error to requests from outside New Zealand. This Actor is built specifically for kiwidirectory.co.nz, an accessible directory that provides clean structured data without requiring paid proxies or credentials.
Why are some output fields like email or rating missing from my JSON?
The Actor omits empty fields entirely rather than returning empty strings or null values. If a business on kiwidirectory.co.nz has no published email address or review score, those keys will not appear in that business's dataset item.
How does searching by category and region simultaneously work?
Because the source site lacks a combined category and region landing page, setting both in search mode tells the Actor to crawl the selected category's pages and filter out non-matching regions client-side before writing to the dataset.
Are Māori macrons preserved in the business listings?
Yes. The Actor fully supports UTF-8 encoding for Māori macrons in both input query parameters and dataset output, preserving location names like Whāngārei.
Where to go next
When you are ready to run it, open Kiwi Directory Scraper - New Zealand Business Directory on Apify; the free plan covers up to 1,000 results a month.
Start with the Kiwi Directory Scraper - New Zealand Business Directory Actor page for the current input schema, pricing tier, and run history.
Other Actors we maintain for related data:
- Vrisko Scraper - Greek Business Directory (vrisko.gr): Scrape vrisko.gr, Greece's leading business directory.
- local.ch Scraper - Swiss Business Directory: Scrape local.ch, Switzerland's leading business directory.
- Gulesider Scraper - Norwegian Business Directory: Scrape Gulesider.no (Norway's leading business directory) listings.
- FreeIndex Scraper - UK Business Directory: Scrape FreeIndex, a UK business directory with 450,000+ reviews.
- Gelbe Seiten Scraper - German Yellow Pages Business Directory: Scrape Gelbe Seiten (German Yellow Pages) business listings.
- 11880.com Scraper - German Business Directory: Scrape 11880.com (Germany's business directory) listings.
- 1188.lv Scraper - Latvia Business Directory: Scrape 1188.lv, Latvia's leading business directory.
- PaginiAurii Scraper - Romania Business Directory: Scrape PaginiAurii.ro (Pagini Aurii), Romania's leading business directory.
Related guides:
- Gulesider Scraper: Practical Guide for Norwegian Directory Workflows
- FreeIndex Scraper - UK Business Directory: 3 Practical Use Cases
- DasTelefonbuch Scraper: German Business Directory Playbooks
- PagineGialle Scraper: Italian Business Listings Guide
Resources
Actor documentation, input schema, and pricing: verified against the published Actor on 2026-09-27.
Actor last updated by its maintainers on 2026-07-21.
Run outcome figures cover the 30 day public window ending 2026-09-27.
Kiwi Directory Scraper - New Zealand Business Directory on Apify
Featured actors
Kiwi Directory Scraper - New Zealand Business Directory
Scrape kiwidirectory.co.nz, a New Zealand business directory. Search by category and region, or fetch full business profiles by URL. Get names, addresses, phone numbers, categories, opening hours, websites, social links, images and geo-coordinates.
Run on Apify ↗