Flippa Marketplace Scraper
Pricing
$0.01 / listing scraped
Flippa Marketplace Scraper
Scrape Flippa.com listings — price, revenue, profit, multiples, traffic, monetization, niche, and more. Perfect for deal sourcing and market research.
Flippa Marketplace Scraper
Pricing
$0.01 / listing scraped
Scrape Flippa.com listings — price, revenue, profit, multiples, traffic, monetization, niche, and more. Perfect for deal sourcing and market research.
You can access the Flippa Marketplace Scraper programmatically from your own applications by using the Apify API. You can also choose the language preference from below. To use the Apify API, you’ll need an Apify account and your API token, found in Integrations settings in Apify Console.
{ "openapi": "3.0.1", "info": { "version": "1.0", "x-build-id": "1YO0PEVXZhkj7ZsDq" }, "servers": [ { "url": "https://api.apify.com/v2" } ], "paths": { "/acts/texmt~flippa-marketplace-scraper/run-sync-get-dataset-items": { "post": { "operationId": "run-sync-get-dataset-items-texmt-flippa-marketplace-scraper", "x-openai-isConsequential": false, "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.", "tags": [ "Run Actor" ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/inputSchema" } } } }, "parameters": [ { "name": "token", "in": "query", "required": true, "schema": { "type": "string" }, "description": "Enter your Apify token here" } ], "responses": { "200": { "description": "OK" } } } }, "/acts/texmt~flippa-marketplace-scraper/runs": { "post": { "operationId": "runs-sync-texmt-flippa-marketplace-scraper", "x-openai-isConsequential": false, "summary": "Executes an Actor and returns information about the initiated run in response.", "tags": [ "Run Actor" ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/inputSchema" } } } }, "parameters": [ { "name": "token", "in": "query", "required": true, "schema": { "type": "string" }, "description": "Enter your Apify token here" } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/runsResponseSchema" } } } } } } }, "/acts/texmt~flippa-marketplace-scraper/run-sync": { "post": { "operationId": "run-sync-texmt-flippa-marketplace-scraper", "x-openai-isConsequential": false, "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.", "tags": [ "Run Actor" ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/inputSchema" } } } }, "parameters": [ { "name": "token", "in": "query", "required": true, "schema": { "type": "string" }, "description": "Enter your Apify token here" } ], "responses": { "200": { "description": "OK" } } } } }, "components": { "schemas": { "inputSchema": { "type": "object", "properties": { "listingUrls": { "title": "Direct Listing URLs", "type": "array", "description": "Paste individual Flippa listing URLs or IDs to enrich directly (e.g. \"https://flippa.com/12345678\" or just \"12345678\"). Can be used alone or combined with category filters in one run. All listings return the same schema.", "default": [], "items": { "type": "string" } }, "outputMode": { "title": "Output Mode", "enum": [ "full", "etl", "alerts" ], "type": "string", "description": "Controls what gets saved to the dataset. 'full' = every listing with all fields. 'etl' = same listings but null/empty fields stripped (clean for Sheets/Airtable/Postgres). 'alerts' = only listings with at least one flaggedReason (undervalued, price_drop, new_listing, sold, low_confidence).", "default": "full" }, "propertyType": { "title": "Property Type", "type": "array", "description": "Filter by type of business/asset. Leave empty to scrape all categories.", "items": { "type": "string", "enum": [ "website", "fba", "ios_app", "android_app", "domain", "business", "newsletter" ], "enumTitles": [ "Website", "Amazon FBA", "iOS App", "Android App", "Domain", "Business", "Newsletter" ] }, "default": [] }, "siteType": { "title": "Site Type / Business Model", "type": "array", "description": "Filter by business model. Multiple selections each scrape their own category page.", "items": { "type": "string", "enum": [ "saas", "ecommerce", "content", "blog", "dropship", "digital-products", "shopify", "affiliate", "marketplace", "forum-community", "directory", "services" ], "enumTitles": [ "SaaS", "Ecommerce", "Content", "Blog", "Dropshipping", "Digital Products", "Shopify", "Affiliate", "Marketplace", "Forum / Community", "Directory", "Services" ] }, "default": [] }, "minPrice": { "title": "Minimum Asking Price (USD)", "minimum": 0, "type": "integer", "description": "Only return listings at or above this asking price" }, "maxPrice": { "title": "Maximum Asking Price (USD)", "minimum": 0, "type": "integer", "description": "Only return listings at or below this asking price" }, "minMonthlyProfit": { "title": "Minimum Monthly Profit (USD)", "minimum": 0, "type": "integer", "description": "Only return listings with at least this monthly net profit" }, "maxMonthlyProfit": { "title": "Maximum Monthly Profit (USD)", "minimum": 0, "type": "integer", "description": "Only return listings with at most this monthly net profit" }, "minRoiScore": { "title": "Minimum ROI Score (0–100)", "minimum": 0, "maximum": 100, "type": "integer", "description": "Only return listings at or above this ROI score. 100 = best deal (fastest payback), 0 = worst. Requires ROI Scoring to be enabled." }, "titleKeywords": { "title": "Title Keywords", "type": "array", "description": "Only return listings whose title contains at least one of these keywords (case-insensitive). E.g. [\"AI\", \"SaaS\", \"recurring\"]. Leave empty to match all titles.", "default": [], "items": { "type": "string" } }, "descriptionKeywords": { "title": "Description Keywords", "type": "array", "description": "Only return listings whose description contains at least one of these keywords (case-insensitive). Useful for niche targeting. Leave empty to match all.", "default": [], "items": { "type": "string" } }, "maxResults": { "title": "Max Results", "minimum": 1, "maximum": 1000, "type": "integer", "description": "Maximum total listings to scrape across all selected categories", "default": 50 }, "roiScoring": { "title": "ROI Scoring", "type": "boolean", "description": "Add roiScore (0–100), paybackYears, and isUndervalued to every listing.", "default": true }, "onlyUndervalued": { "title": "Only Return Undervalued Listings", "type": "boolean", "description": "When enabled, only listings flagged as undervalued (payback period below the threshold) are saved. Ideal for alert-style scheduled runs.", "default": false }, "undervaluedMultipleThreshold": { "title": "Undervalued Threshold — Global Override (Years Payback)", "minimum": 0.5, "maximum": 10, "type": "number", "description": "If set, ALL business types use this payback threshold. Leave empty to use per-type thresholds (SaaS, Ecommerce, Content) set below." }, "saasBenchmarkYears": { "title": "SaaS Undervalued Threshold (Years Payback)", "minimum": 0.5, "maximum": 10, "type": "number", "description": "Payback threshold for SaaS businesses. Default: 3.5 years. Ignored if Global Override is set.", "default": 3.5 }, "ecommerceBenchmarkYears": { "title": "Ecommerce / FBA Undervalued Threshold (Years Payback)", "minimum": 0.5, "maximum": 10, "type": "number", "description": "Payback threshold for Ecommerce and Amazon FBA businesses. Default: 2.5 years. Ignored if Global Override is set.", "default": 2.5 }, "contentBenchmarkYears": { "title": "Content / Blog / Affiliate Undervalued Threshold (Years Payback)", "minimum": 0.5, "maximum": 10, "type": "number", "description": "Payback threshold for content, blog, affiliate, and newsletter businesses. Default: 3.0 years. Ignored if Global Override is set.", "default": 3 }, "defaultBenchmarkYears": { "title": "Default Undervalued Threshold (Years Payback)", "minimum": 0.5, "maximum": 10, "type": "number", "description": "Fallback payback threshold for business types not matched above. Default: 3.0 years. Ignored if Global Override is set.", "default": 3 }, "onlyNewListings": { "title": "Only New Listings (Alert Mode)", "type": "boolean", "description": "Skip listings seen in previous runs. Uses a persistent store to track seen listing IDs across runs. Perfect for scheduled daily/weekly alerts.", "default": false }, "includeSoldListings": { "title": "Include Sold Listings", "type": "boolean", "description": "Also scrape Flippa's /sold pages alongside active listings. Sold listings are tagged with isSold: true. Useful for market research on actual transaction prices.", "default": false }, "trackPriceDrops": { "title": "Track Price Drops", "type": "boolean", "description": "Compare each listing's current asking price against the price stored from previous runs. Listings with a lower price are flagged with priceDropped: true and priceDrop: <USD amount dropped>. Best combined with scheduled runs.", "default": false }, "scrapeDetailPages": { "title": "Scrape Detail Pages", "type": "boolean", "description": "Visit each listing's page for extra fields: verified status, editor's choice badge, seller rating, year established, monthly visitors.", "default": false }, "webhookUrl": { "title": "Webhook URL (n8n / Zapier / Make / custom)", "type": "string", "description": "POST all saved listings to this URL at the end of each run. Works with Zapier, Make, n8n, or any HTTP endpoint." }, "slackWebhookUrl": { "title": "Slack Webhook URL", "type": "string", "description": "Incoming Webhook URL from Slack. Sends a formatted Block Kit deal report at the end of each run. Get yours at api.slack.com/messaging/webhooks." }, "airtableApiKey": { "title": "Airtable API Key", "type": "string", "description": "Personal Access Token from airtable.com/account. Required for Airtable export." }, "airtableBaseId": { "title": "Airtable Base ID", "type": "string", "description": "The Base ID from your Airtable URL (e.g. appXXXXXXXXXXXXXX)." }, "airtableTableName": { "title": "Airtable Table Name", "type": "string", "description": "Name of the table in your Airtable base where listings will be written.", "default": "Flippa Listings" }, "notionApiKey": { "title": "Notion Integration Token", "type": "string", "description": "Internal Integration Token from notion.so/my-integrations. The integration must have access to your target database." }, "notionDatabaseId": { "title": "Notion Database ID", "type": "string", "description": "The 32-character ID from your Notion database URL. Share the database with your integration first." }, "googleServiceAccountJson": { "title": "Google Service Account JSON", "type": "string", "description": "Full JSON contents of a Google service account key file with Sheets API access. Create at console.cloud.google.com → IAM → Service Accounts → Keys. Share your sheet with the service account email." }, "googleSheetsId": { "title": "Google Sheets Spreadsheet ID", "type": "string", "description": "The ID from your Google Sheets URL: docs.google.com/spreadsheets/d/<ID>/edit" }, "googleSheetName": { "title": "Google Sheet Tab Name", "type": "string", "description": "Name of the tab/sheet within the spreadsheet where data will be appended.", "default": "Flippa Listings" }, "proxyConfiguration": { "title": "Proxy Configuration", "type": "object", "description": "Residential proxies are required — Flippa blocks datacenter IPs on its search routes." } } }, "runsResponseSchema": { "type": "object", "properties": { "data": { "type": "object", "properties": { "id": { "type": "string" }, "actId": { "type": "string" }, "userId": { "type": "string" }, "startedAt": { "type": "string", "format": "date-time", "example": "2025-01-08T00:00:00.000Z" }, "finishedAt": { "type": "string", "format": "date-time", "example": "2025-01-08T00:00:00.000Z" }, "status": { "type": "string", "example": "READY" }, "meta": { "type": "object", "properties": { "origin": { "type": "string", "example": "API" }, "userAgent": { "type": "string" } } }, "stats": { "type": "object", "properties": { "inputBodyLen": { "type": "integer", "example": 2000 }, "rebootCount": { "type": "integer", "example": 0 }, "restartCount": { "type": "integer", "example": 0 }, "resurrectCount": { "type": "integer", "example": 0 }, "computeUnits": { "type": "integer", "example": 0 } } }, "options": { "type": "object", "properties": { "build": { "type": "string", "example": "latest" }, "timeoutSecs": { "type": "integer", "example": 300 }, "memoryMbytes": { "type": "integer", "example": 1024 }, "diskMbytes": { "type": "integer", "example": 2048 } } }, "buildId": { "type": "string" }, "defaultKeyValueStoreId": { "type": "string" }, "defaultDatasetId": { "type": "string" }, "defaultRequestQueueId": { "type": "string" }, "buildNumber": { "type": "string", "example": "1.0.0" }, "containerUrl": { "type": "string" }, "usage": { "type": "object", "properties": { "ACTOR_COMPUTE_UNITS": { "type": "integer", "example": 0 }, "DATASET_READS": { "type": "integer", "example": 0 }, "DATASET_WRITES": { "type": "integer", "example": 0 }, "KEY_VALUE_STORE_READS": { "type": "integer", "example": 0 }, "KEY_VALUE_STORE_WRITES": { "type": "integer", "example": 1 }, "KEY_VALUE_STORE_LISTS": { "type": "integer", "example": 0 }, "REQUEST_QUEUE_READS": { "type": "integer", "example": 0 }, "REQUEST_QUEUE_WRITES": { "type": "integer", "example": 0 }, "DATA_TRANSFER_INTERNAL_GBYTES": { "type": "integer", "example": 0 }, "DATA_TRANSFER_EXTERNAL_GBYTES": { "type": "integer", "example": 0 }, "PROXY_RESIDENTIAL_TRANSFER_GBYTES": { "type": "integer", "example": 0 }, "PROXY_SERPS": { "type": "integer", "example": 0 } } }, "usageTotalUsd": { "type": "number", "example": 0.00005 }, "usageUsd": { "type": "object", "properties": { "ACTOR_COMPUTE_UNITS": { "type": "integer", "example": 0 }, "DATASET_READS": { "type": "integer", "example": 0 }, "DATASET_WRITES": { "type": "integer", "example": 0 }, "KEY_VALUE_STORE_READS": { "type": "integer", "example": 0 }, "KEY_VALUE_STORE_WRITES": { "type": "number", "example": 0.00005 }, "KEY_VALUE_STORE_LISTS": { "type": "integer", "example": 0 }, "REQUEST_QUEUE_READS": { "type": "integer", "example": 0 }, "REQUEST_QUEUE_WRITES": { "type": "integer", "example": 0 }, "DATA_TRANSFER_INTERNAL_GBYTES": { "type": "integer", "example": 0 }, "DATA_TRANSFER_EXTERNAL_GBYTES": { "type": "integer", "example": 0 }, "PROXY_RESIDENTIAL_TRANSFER_GBYTES": { "type": "integer", "example": 0 }, "PROXY_SERPS": { "type": "integer", "example": 0 } } } } } } } } }}OpenAPI is a standard for designing and describing RESTful APIs, allowing developers to define API structure, endpoints, and data formats in a machine-readable way. It simplifies API development, integration, and documentation.
OpenAPI is effective when used with AI agents and GPTs by standardizing how these systems interact with various APIs, for reliable integrations and efficient communication.
By defining machine-readable API specifications, OpenAPI allows AI models like GPTs to understand and use varied data sources, improving accuracy. This accelerates development, reduces errors, and provides context-aware responses, making OpenAPI a core component for AI applications.
You can download the OpenAPI definitions for Flippa Marketplace Scraper from the options below:
If you’d like to learn more about how OpenAPI powers GPTs, read our blog post.
You can also check out our other API clients: