{
  "openapi": "3.0.1",
  "info": {
    "title": "Online Business Scraper for Flippa - Websites, SaaS & Domains",
    "description": "Scrape Flippa listings for sale or recently sold: websites, SaaS, e-commerce stores, apps and domains with price, monthly revenue and profit, multiples, auction data, Flippa verification and broker record. Monitor new deals, pull business contact leads. Independent tool, not affiliated with Flippa.",
    "version": "0.1",
    "x-build-id": "q9bPiFv9rCXo5dtVU"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/scrapesage~flippa-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-scrapesage-flippa-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/scrapesage~flippa-scraper/runs": {
      "post": {
        "operationId": "runs-sync-scrapesage-flippa-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/scrapesage~flippa-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-scrapesage-flippa-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": {
          "searchQuery": {
            "title": "🔎 Search keyword",
            "type": "string",
            "description": "Free-text keyword, exactly like Flippa's own search box (e.g. \"ai\", \"newsletter\", \"shopify\", \"amazon fba\"). Leave empty to browse by the filters below."
          },
          "propertyTypes": {
            "title": "🏷️ Property types",
            "type": "array",
            "description": "Restrict to these asset types (Flippa's own category filter). Leave empty for every type except domains (Flippa lists 10,000+ domains separately - pick \"Domains\" to get them).",
            "items": {
              "type": "string",
              "enum": [
                "ecommerce",
                "saas",
                "content",
                "ai_tools",
                "apps",
                "domains",
                "marketplace",
                "amazon_fba",
                "amazon_kdp",
                "agency_service",
                "youtube_social",
                "newsletter",
                "plugins_extensions",
                "crypto_blockchain",
                "projects_concepts",
                "other"
              ],
              "enumTitles": [
                "E-commerce store (ecommerce)",
                "SaaS & software (saas)",
                "Content / blog site (content)",
                "AI apps & tools (ai_tools)",
                "Apps - iOS / Android (apps)",
                "Domains (domains)",
                "Marketplace (marketplace)",
                "Amazon FBA store (amazon_fba)",
                "Amazon KDP (amazon_kdp)",
                "Agency / service business (agency_service)",
                "YouTube / social media account (youtube_social)",
                "Newsletter (newsletter)",
                "Plugin / extension (plugins_extensions)",
                "Crypto & blockchain (crypto_blockchain)",
                "Starter project / concept (projects_concepts)",
                "Other (other)"
              ]
            }
          },
          "industries": {
            "title": "🏭 Industries / niches",
            "type": "array",
            "description": "Restrict to these industries (Flippa's niche filter). Leave empty for all industries.",
            "items": {
              "type": "string",
              "enum": [
                "internet",
                "business",
                "health-and-beauty",
                "lifestyle",
                "food-and-drink",
                "home-and-garden",
                "entertainment",
                "hobbies-and-games",
                "general-knowledge",
                "sports-and-outdoor",
                "electronics",
                "design-and-style",
                "travel",
                "education",
                "automotive"
              ],
              "enumTitles": [
                "Internet",
                "Business",
                "Health & beauty",
                "Lifestyle",
                "Food & drink",
                "Home & garden",
                "Entertainment",
                "Hobbies & games",
                "General knowledge",
                "Sports & outdoor",
                "Electronics",
                "Design & style",
                "Travel",
                "Education",
                "Automotive"
              ]
            }
          },
          "listingStatus": {
            "title": "📦 Listings to scrape",
            "enum": [
              "open",
              "sold"
            ],
            "type": "string",
            "description": "Businesses for sale now, or recently SOLD listings (sold comps: final auction price or last asking price, with the financials they sold on).",
            "default": "open"
          },
          "saleMethod": {
            "title": "💼 Sale method",
            "enum": [
              "any",
              "classified",
              "auction"
            ],
            "type": "string",
            "description": "Auction, fixed price (classified, incl. open-to-offers listings), or any.",
            "default": "any"
          },
          "managedBy": {
            "title": "🤝 Listed by",
            "type": "array",
            "description": "Only listings sold by these kinds of seller. Leave empty for all.",
            "items": {
              "type": "string",
              "enum": [
                "flippa_broker",
                "partner_broker",
                "owner"
              ],
              "enumTitles": [
                "Brokered by Flippa (flippa_broker)",
                "Partner broker (partner_broker)",
                "Listed by the owner (owner)"
              ]
            }
          },
          "priceMin": {
            "title": "💲 Min asking price (USD)",
            "minimum": 0,
            "type": "integer",
            "description": "Only listings priced at or above this amount (auctions: the current bid)."
          },
          "priceMax": {
            "title": "💲 Max asking price (USD)",
            "minimum": 0,
            "type": "integer",
            "description": "Only listings priced at or below this amount (auctions: the current bid)."
          },
          "revenueMin": {
            "title": "📈 Min monthly revenue (USD)",
            "minimum": 0,
            "type": "integer",
            "description": "Only businesses with at least this monthly revenue."
          },
          "revenueMax": {
            "title": "📈 Max monthly revenue (USD)",
            "minimum": 0,
            "type": "integer",
            "description": "Only businesses with at most this monthly revenue."
          },
          "profitMin": {
            "title": "💰 Min monthly profit (USD)",
            "type": "integer",
            "description": "Only businesses with at least this monthly net profit."
          },
          "profitMax": {
            "title": "💰 Max monthly profit (USD)",
            "type": "integer",
            "description": "Only businesses with at most this monthly net profit."
          },
          "profitMultipleMin": {
            "title": "🧮 Min profit multiple",
            "minimum": 0,
            "type": "number",
            "description": "Flippa's own profit multiple, exactly as Flippa shows it (e.g. 2 = 2.0x). Flippa works it out on its own basis, so it can differ from asking price ÷ (monthly profit × 12), most for businesses under a year old. Listings without a profit multiple are left out when this is set."
          },
          "profitMultipleMax": {
            "title": "🧮 Max profit multiple",
            "minimum": 0,
            "type": "number",
            "description": "E.g. 3 = listings whose Flippa profit multiple is at most 3.0x. Listings without a profit multiple are left out when this is set."
          },
          "revenueMultipleMin": {
            "title": "🧮 Min revenue multiple",
            "minimum": 0,
            "type": "number",
            "description": "Flippa's own revenue multiple, exactly as Flippa shows it on the listing page (e.g. 1 = 1.0x). Listings without one are left out when this is set."
          },
          "revenueMultipleMax": {
            "title": "🧮 Max revenue multiple",
            "minimum": 0,
            "type": "number",
            "description": "E.g. 1 = listings whose Flippa revenue multiple is at most 1.0x. Listings without one are left out when this is set."
          },
          "ageMinYears": {
            "title": "⏳ Min business age (years)",
            "minimum": 0,
            "type": "number",
            "description": "Only businesses at least this old (e.g. 2)."
          },
          "ageMaxYears": {
            "title": "⏳ Max business age (years)",
            "minimum": 0,
            "type": "number",
            "description": "Only businesses at most this old."
          },
          "revenueGeneratingOnly": {
            "title": "📈 Revenue-generating only",
            "type": "boolean",
            "description": "Only businesses that currently make money (monthly revenue above zero).",
            "default": false
          },
          "verifiedOnly": {
            "title": "✅ Verified revenue / traffic only",
            "type": "boolean",
            "description": "Only listings whose revenue or traffic Flippa has verified (vetted listings, or connected Stripe / PayPal / Shopify / Google Analytics... data).",
            "default": false
          },
          "sort": {
            "title": "↕️ Sort by",
            "enum": [
              "newest",
              "ending_soon",
              "price_low",
              "price_high",
              "most_profitable",
              "most_bids",
              "most_relevant"
            ],
            "type": "string",
            "description": "Order of the returned listings (Flippa's own sort).",
            "default": "newest"
          },
          "maxResults": {
            "title": "🔢 Max listings",
            "minimum": 0,
            "type": "integer",
            "description": "Maximum number of listings to return. 0 = no limit (everything matching, up to the run time limit).",
            "default": 100
          },
          "includeDetails": {
            "title": "📄 Read each listing page (full details)",
            "type": "boolean",
            "description": "Open every listing's page for the exact monthly profit, profit margin, revenue multiple, page views, auction details (reserve, Buy It Now, bids), Flippa's vetting results, broker + seller record, views / watchers and the business description. Off = search-card data only (faster, fewer fields). Same price either way.",
            "default": true
          },
          "includeContactLeads": {
            "title": "📧 Enrich business contact leads",
            "type": "boolean",
            "description": "For listings that publish their business name as a website (e.g. \"BabyKidWorld.com\"), visit that site (home + contact / about pages) and extract the business's own e-mail, phone numbers and social profiles. Charged only when the site gives an e-mail on its own domain or a phone number. Confidential listings hide their website, so they get no contact data (use contactSellerUrl to reach the seller on Flippa).",
            "default": false
          },
          "maxLeadPagesPerSite": {
            "title": "📄 Max pages per website (contact leads)",
            "minimum": 1,
            "maximum": 6,
            "type": "integer",
            "description": "How many pages of each business website to read for contact details (home page + contact / about pages).",
            "default": 3
          },
          "onlyNewListings": {
            "title": "🆕 Monitoring mode - only new listings",
            "type": "boolean",
            "description": "Remember the listings this search has already seen and return ONLY listings that are new since the last run (first run = the current listings). Searches are read newest first. Pair it with an Apify Schedule for a deal-flow feed. Nothing is billed twice.",
            "default": false
          },
          "monitorStoreName": {
            "title": "🗄️ Monitor memory name",
            "type": "string",
            "description": "The key-value store (in your Apify account) where monitoring mode remembers what it has seen. Use a new name to start a monitor from scratch.",
            "default": "flippa-monitor"
          },
          "startUrls": {
            "title": "🔗 Start URLs (optional)",
            "type": "array",
            "description": "Paste Flippa search URLs (their filters are kept), category pages (flippa.com/buy/...) or listing URLs. When given, they replace the keyword / property-type / industry search above.",
            "items": {
              "type": "string"
            }
          },
          "urlsFromFile": {
            "title": "Import URLs from a file",
            "type": "string",
            "description": "Paste a list of URLs (one per line), OR one link to a .txt/.csv file, Google Sheet or Google Drive file containing them. Lets you import many Start URLs at once instead of typing each. Google Sheet/Drive share links are handled automatically."
          },
          "listingIds": {
            "title": "🆔 Listing IDs (optional)",
            "type": "array",
            "description": "Scrape specific Flippa listings by their numeric ID (e.g. \"12682724\") - open or sold.",
            "items": {
              "type": "string"
            }
          },
          "proxyConfiguration": {
            "title": "🌐 Proxy configuration",
            "type": "object",
            "description": "Leave as is: the Actor uses Apify's datacenter proxy (Flippa answers it) and falls back to residential only when needed. Your own proxies replace both.",
            "default": {
              "useApifyProxy": true
            }
          }
        }
      },
      "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
                  },
                  "PROXY_UNBLOCKER_UNITS": {
                    "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
                  },
                  "PROXY_UNBLOCKER_UNITS": {
                    "type": "integer",
                    "example": 0
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}