{
  "openapi": "3.0.1",
  "info": {
    "title": "Ultimate Leads — Get Everything with 1 keyword",
    "description": "One Apify run: B2B sites + Google Maps + deep contacts, merged by domain. Keywords + ISO country; city or top-city lists (50+ countries). Toggle B2B/Maps/contact. Residential proxy recommended. One JSON dataset via API—no wiring 3 Actors. Pay per run. Export CSV/JSON from the dataset.",
    "version": "1.5",
    "x-build-id": "Dvbz5osZBaKUwRc4n"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/rp_openpro.ai~ultimate-leads/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-rp_openpro.ai-ultimate-leads",
        "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/rp_openpro.ai~ultimate-leads/runs": {
      "post": {
        "operationId": "runs-sync-rp_openpro.ai-ultimate-leads",
        "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/rp_openpro.ai~ultimate-leads/run-sync": {
      "post": {
        "operationId": "run-sync-rp_openpro.ai-ultimate-leads",
        "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",
        "required": [
          "keywords"
        ],
        "properties": {
          "keywords": {
            "title": "Keywords",
            "type": "array",
            "description": "Base search terms. With geo (country), each term is expanded per city/location variant for Maps and B2B.",
            "items": {
              "type": "string"
            }
          },
          "locationQuery": {
            "title": "Maps location (manual override)",
            "type": "string",
            "description": "If set, ignores country/city/top-cities logic. Maps uses \"{keyword} in {locationQuery}\". Use for a single custom area (e.g. \"Paris, France\")."
          },
          "country": {
            "title": "Country (ISO 3166-1 alpha-2)",
            "type": "string",
            "description": "Two-letter code (e.g. fr, us, de). When set (and locationQuery empty), searches target this country. Passed to B2B engines. If city is empty, up to maxCitiesPerCountry major cities in this country are used."
          },
          "city": {
            "title": "City (optional)",
            "type": "string",
            "description": "Single city name within country (e.g. Lyon). If empty and country is set, the actor uses curated top cities for that country (default 20). Ignored if locationQuery is set."
          },
          "maxCitiesPerCountry": {
            "title": "Max cities when city is empty",
            "minimum": 1,
            "maximum": 30,
            "type": "integer",
            "description": "If country is set and city is empty, search in this many major cities (1–30). Default 20. Countries without a curated list fall back to country-wide search only.",
            "default": 20
          },
          "maxResults": {
            "title": "Max total results (merged leads)",
            "minimum": 0,
            "type": "integer",
            "description": "Cap the total number of merged leads in the final dataset. 0 = unlimited (default). Set to 50 or 100 for quick test runs or to control cost.",
            "default": 0
          },
          "enableB2b": {
            "title": "Enable B2B URL finder",
            "type": "boolean",
            "description": "Run multi-source B2B URL discovery (search engines + maps SERP).",
            "default": true
          },
          "enableMaps": {
            "title": "Enable Google Maps",
            "type": "boolean",
            "description": "Run Puppeteer-based Google Maps business scraping.",
            "default": true
          },
          "enableContact": {
            "title": "Enable contact deep crawl",
            "type": "boolean",
            "description": "After merge, crawl merged domains for emails, phones, social, scoring.",
            "default": true
          },
          "mapsScrapeContacts": {
            "title": "Maps: enrich websites (emails/social)",
            "type": "boolean",
            "description": "When contact stage is enabled, this defaults to false to avoid crawling the same sites twice. Set true only if you skip contact or want Maps-only enrichment."
          },
          "maxResultsPerKeyword": {
            "title": "B2B max results per keyword",
            "minimum": 0,
            "type": "integer",
            "description": "Cap unique URLs per expanded B2B keyword; 0 means unlimited (subject to actor limits).",
            "default": 0
          },
          "language": {
            "title": "B2B language (ISO 639-1)",
            "type": "string",
            "description": "Language hint for B2B search APIs (e.g. en, fr)."
          },
          "excludeDomains": {
            "title": "B2B exclude domains",
            "type": "array",
            "description": "Extra domains to exclude from B2B results (in addition to built-in filters).",
            "items": {
              "type": "string"
            }
          },
          "maxConcurrencyB2b": {
            "title": "B2B concurrent keywords",
            "minimum": 1,
            "maximum": 10,
            "type": "integer",
            "description": "Parallel B2B keyword workers (expanded keyword list when geo mode is on).",
            "default": 3
          },
          "maxCrawledPlacesPerSearch": {
            "title": "Maps max places per search",
            "minimum": 0,
            "type": "integer",
            "description": "Max places per Maps search string; 0 = no cap per search.",
            "default": 50
          },
          "mapsLanguage": {
            "title": "Maps UI language",
            "type": "string",
            "description": "Google Maps hl parameter for result language.",
            "default": "en"
          },
          "maxConcurrencyContact": {
            "title": "Contact concurrent domains",
            "minimum": 1,
            "maximum": 30,
            "type": "integer",
            "description": "Parallel domains during contact crawl phase.",
            "default": 15
          },
          "maxPagesPerDomain": {
            "title": "Contact pages per domain",
            "minimum": 1,
            "maximum": 20,
            "type": "integer",
            "description": "Max HTML pages fetched per domain for contact extraction.",
            "default": 5
          },
          "verifyEmails": {
            "title": "Verify emails (MX/SMTP)",
            "type": "boolean",
            "description": "Run MX/SMTP checks on discovered emails in contact phase.",
            "default": true
          },
          "skipLeadScoring": {
            "title": "Skip lead scoring",
            "type": "boolean",
            "description": "Skip scoring step in contact phase for faster runs.",
            "default": false
          },
          "skipWhois": {
            "title": "Skip WHOIS",
            "type": "boolean",
            "description": "Skip WHOIS lookup in contact phase.",
            "default": false
          },
          "minScore": {
            "title": "Minimum lead score",
            "minimum": 0,
            "maximum": 100,
            "type": "integer",
            "description": "Filter contact results below this score when scoring is enabled.",
            "default": 0
          },
          "proxyConfiguration": {
            "title": "Proxy configuration",
            "type": "object",
            "description": "Forwarded to all stages. Residential recommended for B2B and Maps."
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}