How to scrape software and SaaS data from Alternative.to using the Minexa API
- Minexa.ai

- 3 days ago
- 3 min read
Alternative.to lists software alternatives organized by category, platform, and language. Every listing card contains a product name, description, external website link, feature count, social profiles, and platform metadata. Pulling that data manually across dozens of pages is slow. The Minexa API makes it programmable.
The workflow has two phases: train a scraper once using the Minexa Chrome extension, then call the API to extract data at scale from any number of Alternative.to listing pages.
Training the scraper
Navigate to your target Alternative.to page, then open the Minexa extension. The extension detects the page automatically.
The extension identifies pagination across the listing pages. Review the detected pages and click Continue to proceed.
Choose whether to scrape the list only or follow each product link to extract detail page data as well. For most software intelligence use cases, the list is sufficient.
Select advanced mode to get full control over which fields are captured, then highlight the repeating product card container on the page.
After the scraper is created, review all extracted data points. Then click API Request to get your scraper ID and the ready-to-run code.
API request structure
Once the scraper is trained, call the https://api.minexa.ai/data endpoint with your scraper ID and the target URLs. Here is a minimal Python example:
import requests
headers = {"Authorization": "Bearer YOUR_API_KEY"}
payload = {
"scraper_id": 6214,
"columns": "top_40",
"urls": [
"https://get.alternative.to/itvt-forecasting-tool?page=1",
"https://get.alternative.to/itvt-forecasting-tool?page=2"
]
}
response = requests.post(
"https://api.minexa.ai/data",
json=payload,
headers=headers
)
print(response.json())Pagination is not handled automatically when using the API. You need to pass each page URL explicitly in the urls array, or write a JS code scenario that defines what to click. For recurring runs across many pages, a cron job that builds and submits URL batches is the practical approach.
What the extracted data looks like
Each row in the response corresponds to one product card. Here are two example records:
[
{
"product_names": "Insightly",
"external_links": "https://useinsightly.com",
"internal_links": "/insightly",
"feature_links": "/insightly/overview#features",
"features_list": [{"value": "1", "tag": "a", "type": "text"}],
"sales_app_description": "A web-based CRM tool that integrates with Google Apps.",
"twitter_profile": "https://twitter.com/insightlyapp",
"linkedin_facebook_profile": "https://www.facebook.com/Insightly",
"logo_alt_text": "Insightly logo"
},
{
"product_names": "StockIQ",
"external_links": "http://www.stockiqtech.com/",
"internal_links": "/stockiq",
"feature_links": "/stockiq/overview#features",
"features_list": [{"value": "5", "tag": "a", "type": "text"}],
"sales_app_description": "Streamlined supply chain management for informed decision-making.",
"twitter_profile": "https://twitter.com/StockIQ",
"linkedin_facebook_profile": "https://www.linkedin.com/showcase/company/stockiq-technologies/",
"logo_alt_text": "StockIQ logo"
}
]Key fields reference
social_media_links_2 returns a structured array per product. Each object in the array carries a display label (X, Facebook, Linkedin), the href attribute, and a CSS class string. This lets you extract all social handles for a product in one pass without any secondary requests.
website_categories is a single traversable array that encodes platform types (Cloud, SaaS, Desktop Windows, Mobile Android, and more), supported languages, and social profile links. Each item in the array carries a tag type, value, and CSS class so you can filter by tag to isolate platform entries from language entries programmatically.
features_list contains two objects per product: the integer feature count and the relative path to the features overview page on Alternative.to. Use the count for quick filtering and the path to build deep-extraction URLs if you need the full feature list.
image_source returns a Next.js responsive srcset string with multiple image optimization URLs at widths from 640px to 3840px. Parse the srcset to extract the base image URL from the Alternative.to image CDN for logo download or visual enrichment pipelines.
The Minexa API documentation covers all supported request parameters, credit consumption by scraping mode, and response pagination handling. Start at minexa.ai to create an account and get your API key.

Comments