How to scrape franchise and business opportunities data from Seek Business using the Minexa API
- Minexa.ai

- 13 hours ago
- 4 min read
Franchise and business opportunity data changes constantly. Listings appear, prices shift, categories expand. If your pipeline depends on that data being current and structured, manually checking Seek Business page by page is not a sustainable approach.
This guide walks through how to extract franchise and business listing data from Seek Business (seekbusiness.com.au) using the Minexa API — a two-phase workflow where you train a scraper once using the Minexa Chrome extension, then call the API programmatically to pull structured data at scale.
Stage 1: understanding what the source page contains
The starting URL for this extraction is the Seek Business listings page filtered by keyword — for example, print-related businesses for sale. Each listing on the page contains a business name, asking price, location, category, a link to the full detail page, and at least one image. These fields repeat across every result row, which is exactly the kind of page structure Minexa is built to handle.
Because the listings are paginated, a developer building a pipeline here needs to account for multiple pages of results. With the Minexa API, pagination is not automatically handled — you define the page navigation logic as part of your scraper configuration during the training phase in the extension, and then manage URL iteration in your own code when calling the API.
Once you have confirmed the target page, open the Minexa Chrome extension. It detects the repeating listing structure on the page automatically.
Stage 2: training the scraper
Training happens entirely inside the Minexa Chrome extension and only needs to happen once. Open the extension on the Seek Business listings page, confirm you are on the right page, and let Minexa detect the data structure.
The extension then surfaces pagination options. For Seek Business, a next-page button is detected. You confirm the pagination logic here before moving forward.
Next, choose whether to scrape the list only or the list plus each linked detail page. For a pipeline focused on listing-level data, the list option is sufficient. For richer datasets that include full business descriptions and financials, the list-and-detail option follows each link automatically during training.
Select simple scraping mode for standard listing extraction, then confirm the container Minexa highlights automatically.
After confirming the container, Minexa generates all extracted data points and shows a preview. You can navigate through the detected columns before finalising the scraper.
At this point the scraper is created and assigned a stable scraper_id. This ID is the key to everything that follows — every API call you make references it, and the trained structure is reused without any additional setup.
Stage 3: generating the API request
Once the scraper is trained, the extension shows the API request configuration including a ready-to-run Python code sample. This is where the developer workflow begins.
The API endpoint is https://api.minexa.ai/data. A typical request looks like this:
import requests
url = "https://api.minexa.ai/data"
headers = {"x-api-key": "YOUR_API_KEY"}
payload = {
"scraper_id": 3812,
"columns": "top_40"
}
response = requests.post(url, json=payload, headers=headers)
print(response.json())
The columns parameter accepts either a top_N value (such as top_40) to return the most relevant fields automatically ranked by Minexa, or a named list of specific fields if you want to control exactly what comes back. This is useful when your downstream schema only needs a subset of what the page contains.
Stage 4: what the extracted data looks like
Here is a representative sample of what the Minexa API returns for Seek Business listings. Column name prefixes have been removed for readability:
[
{
"business_title": "Print and Sign Franchise",
"asking_price": "$85,000",
"location": "Melbourne VIC",
"category": "Franchise",
"listing_url": "https://www.seekbusiness.com.au/business-for-sale/...",
"image_src": "https://cdn.seekbusiness.com.au/images/listing/..."
},
{
"business_title": "Commercial Print Business",
"asking_price": "$220,000",
"location": "Sydney NSW",
"category": "Business For Sale",
"listing_url": "https://www.seekbusiness.com.au/business-for-sale/...",
"image_src": "https://cdn.seekbusiness.com.au/images/listing/..."
}
]
The listing_url field returns a direct absolute URL per result, enabling programmatic deep-linking to individual business detail pages without secondary navigation. The asking_price field captures the displayed price string per listing as-is, preserving the original formatting for downstream parsing. The image_src field surfaces the primary listing image URL per row, enabling asset retrieval or visual rendering in downstream interfaces without additional lookups.
Stage 5: running the job and exporting results
Once the scraper is configured, you can run it from the jobs dashboard. The job appears at the top of the list with a run button visible. Results populate in real time as pages are processed.
When the run completes, the full dataset is available in a structured table. Export options include Excel and JSON directly from the results view.
For recurring extraction across multiple keyword searches or category filters on Seek Business, the recommended approach is to set up a cron job on your own infrastructure and pass different URLs to the API on each run. The scraper_id stays the same across all calls — only the target URL changes.
The full API reference is available at minexa.ai/redirect?r=api_docs. To get your API key and start building, visit the developer getting started page.
For a related example using the same API workflow on a different data source, see: Scraping hotel listings for OTA builders: a practical guide with Minexa API.

Comments