{
  "openapi": "3.0.1",
  "info": {
    "title": "Multi-Source Business Verification",
    "description": "Confirms qualified business leads using ordinary Google Search, with optional Yelp and BBB evidence.",
    "version": "0.2",
    "x-build-id": "gdrqFlxwdsTNgqAaa"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/enc_motion_outdoor~multi-source-business-verification/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-enc_motion_outdoor-multi-source-business-verification",
        "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/enc_motion_outdoor~multi-source-business-verification/runs": {
      "post": {
        "operationId": "runs-sync-enc_motion_outdoor-multi-source-business-verification",
        "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/enc_motion_outdoor~multi-source-business-verification/run-sync": {
      "post": {
        "operationId": "run-sync-enc_motion_outdoor-multi-source-business-verification",
        "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": [
          "leads",
          "maximumLeads",
          "maximumSourceChecks"
        ],
        "properties": {
          "leads": {
            "title": "Qualified business leads",
            "type": "array",
            "description": "Lead objects passed directly from a discovery workflow.",
            "items": {
              "type": "object"
            },
            "default": []
          },
          "reviewSources": {
            "title": "Sources to check",
            "uniqueItems": true,
            "type": "array",
            "description": "Choose Google identity verification, website with Facebook fallback, or optional review sources.",
            "items": {
              "type": "string",
              "enum": [
                "google",
                "website",
                "facebook",
                "yelp",
                "bbb",
                "houzz",
                "trustpilot",
                "registry"
              ],
              "enumTitles": [
                "Google business confirmation and reviews",
                "Official website lead evidence",
                "Facebook public evidence fallback",
                "Yelp evidence",
                "Better Business Bureau evidence",
                "Houzz evidence",
                "Trustpilot evidence",
                "Company registry evidence"
              ]
            },
            "default": [
              "google"
            ]
          },
          "productCategories": {
            "title": "Product categories to verify",
            "type": "array",
            "description": "Website and Facebook evidence is evaluated only for these requested product categories.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "verificationModules": {
            "title": "Optional lead-strength modules",
            "uniqueItems": true,
            "type": "array",
            "description": "Records which optional analyses were requested so completed checks can be reused safely.",
            "items": {
              "type": "string"
            },
            "default": []
          },
          "analysisVersion": {
            "title": "Lead analysis version",
            "type": "string",
            "description": "Invalidates older checkpoints when lead scoring or evidence rules change.",
            "default": "2026-08-05.1"
          },
          "googleMapsActorId": {
            "title": "Google Maps verification actor",
            "type": "string",
            "description": "Downstream actor used for Google business-profile categories, ratings, and identity evidence.",
            "default": "compass/crawler-google-places"
          },
          "googleSearchActorId": {
            "title": "Google Search evidence actor",
            "type": "string",
            "description": "Official Google Search Actor used for profile discovery, Facebook fallback discovery, and optional rating sources.",
            "default": "apify/google-search-scraper"
          },
          "googleSearchRuntimeMode": {
            "title": "Google Search runtime",
            "enum": [
              "official_actor",
              "legacy_crawler"
            ],
            "type": "string",
            "description": "Uses the official Actor by default and keeps the internal crawler as an automatic operational fallback.",
            "default": "official_actor"
          },
          "googleSearchHardCapUsd": {
            "title": "Google Search evidence hard cap",
            "minimum": 0,
            "maximum": 1,
            "type": "number",
            "description": "Maximum charge guard for the single batched Google Search evidence run.",
            "default": 0.5
          },
          "googleMapsHardCapUsd": {
            "title": "Google Maps reserved hard cap",
            "minimum": 0,
            "maximum": 1,
            "type": "number",
            "description": "Portion of the combined run cap reserved for Google Maps verification.",
            "default": 0.5
          },
          "facebookPagesActorId": {
            "title": "Facebook page evidence actor",
            "type": "string",
            "description": "Dedicated page actor used only after Google Search finds and identity-matches a Facebook page.",
            "default": "apify/facebook-pages-scraper"
          },
          "facebookDeepEvidence": {
            "title": "Inspect the matched Facebook page",
            "type": "boolean",
            "description": "When Facebook verification is selected, inspect the matched page for categories, contact details, recommendations, and product evidence.",
            "default": true
          },
          "facebookPagesHardCapUsd": {
            "title": "Facebook page evidence hard cap",
            "minimum": 0.05,
            "maximum": 1,
            "type": "number",
            "description": "Maximum charge guard for the batched second-stage Facebook page run.",
            "default": 0.25
          },
          "parentHardCapUsd": {
            "title": "Parent worker hard cap",
            "minimum": 0.01,
            "maximum": 1,
            "type": "number",
            "description": "Portion of the combined run cap reserved for this orchestration actor.",
            "default": 0.5
          },
          "combinedHardCapUsd": {
            "title": "Combined workflow hard cap",
            "minimum": 0.01,
            "maximum": 1,
            "type": "number",
            "description": "User-approved maximum for the complete verification workflow, including the parent and downstream Actors."
          },
          "hardCapPlanVersion": {
            "title": "Hard-cap allocation plan",
            "type": "string",
            "description": "Internal version label for the workflow's combined-cap allocation rules."
          },
          "maximumLeads": {
            "title": "Maximum businesses",
            "minimum": 1,
            "maximum": 10000,
            "type": "integer",
            "description": "Maximum businesses considered in this run.",
            "default": 100
          },
          "maximumSourceChecks": {
            "title": "Maximum paid searches",
            "minimum": 1,
            "maximum": 30000,
            "type": "integer",
            "description": "Hard stop on new source checks across all optional modules.",
            "default": 100
          },
          "acceptedLeadStatuses": {
            "title": "Lead statuses to verify",
            "type": "array",
            "description": "Only leads with these discovery statuses are eligible. Leads without a status remain eligible for direct testing.",
            "default": [
              "good_lead_candidate",
              "plausible_needs_verification"
            ],
            "items": {
              "type": "string"
            }
          },
          "onlyUnverified": {
            "title": "Skip recently completed checks",
            "type": "boolean",
            "description": "Prevents repeat search charges while a saved source check is still fresh.",
            "default": true
          },
          "freshnessDays": {
            "title": "Days before checking again",
            "minimum": 1,
            "maximum": 365,
            "type": "integer",
            "description": "A completed source check is reused for this many days.",
            "default": 30
          },
          "sourceFreshnessDays": {
            "title": "Source-specific freshness overrides",
            "type": "object",
            "description": "Optional days-to-reuse by source, for example {\"google\":30,\"website\":30,\"facebook\":14}. Unlisted sources use the versioned Actor registry default.",
            "default": {}
          },
          "tenantKey": {
            "title": "Account or workspace key",
            "type": "string",
            "description": "Separates checkpoints for different customers or workspaces.",
            "default": "default"
          },
          "registryStoreName": {
            "title": "Checkpoint storage",
            "type": "string",
            "description": "Persistent storage used to prevent duplicate source checks.",
            "default": "multi-source-business-verification-registry"
          },
          "seededCheckpoints": {
            "title": "Shared reusable checkpoints",
            "type": "array",
            "description": "Internal evidence checkpoints supplied by the Furniture Retail Intelligence workflow to prevent duplicate paid checks.",
            "items": {
              "type": "object"
            },
            "default": []
          },
          "maxConcurrency": {
            "title": "Concurrent searches",
            "minimum": 1,
            "maximum": 50,
            "type": "integer",
            "description": "Higher values finish faster; lower values are gentler and easier to monitor.",
            "default": 3
          },
          "websiteConcurrency": {
            "title": "Concurrent website checks",
            "minimum": 1,
            "maximum": 3,
            "type": "integer",
            "description": "A conservative limit protects memory and avoids overwhelming retailer websites.",
            "default": 2
          },
          "websiteEvidenceActorId": {
            "title": "Website evidence actor",
            "type": "string",
            "description": "Dedicated staged Actor used for cached HTTP, browser, and optional residential website evidence.",
            "default": "MJkf4SeVEdE49Lxde"
          },
          "brandScope": {
            "title": "Brand verification scope",
            "enum": [
              "selected_categories",
              "all_brands"
            ],
            "type": "string",
            "description": "Limit brands to selected product categories or return all supported brands found.",
            "default": "selected_categories"
          },
          "enableBrandVerificationBilling": {
            "title": "Enable Brand Verification billing events",
            "type": "boolean",
            "description": "Internal request flag. Charges remain disabled unless the Actor owner also enables the protected environment switch after Apify prices are configured.",
            "default": false
          },
          "enableCreatorBilling": {
            "title": "Enable approved creator billing events",
            "type": "boolean",
            "description": "Internal request flag. Charges remain disabled unless the Actor owner also enables the protected environment switch after every event price is configured in Apify.",
            "default": false
          },
          "websiteEvidenceHardCapUsd": {
            "title": "Website evidence reserved hard cap",
            "minimum": 0,
            "maximum": 1,
            "type": "number",
            "description": "Maximum charge guard passed to the website Actor; lead and page limits also bound compute use.",
            "default": 0.5
          },
          "websiteMaxPages": {
            "title": "Maximum website pages",
            "minimum": 1,
            "maximum": 5,
            "type": "integer",
            "description": "Maximum targeted pages checked per business, including the home page.",
            "default": 3
          },
          "websiteBrowserFallback": {
            "title": "Website browser fallback",
            "type": "boolean",
            "description": "Render JavaScript-heavy or inconclusive sites in a browser after the inexpensive request.",
            "default": true
          },
          "websiteResidentialRetry": {
            "title": "Residential website retry",
            "type": "boolean",
            "description": "Optional paid last retry for a site still blocked after normal browser rendering.",
            "default": false
          },
          "maxRetriesPerSource": {
            "title": "Retries for a failed search",
            "minimum": 0,
            "maximum": 2,
            "type": "integer",
            "description": "Retries one transient timeout or network failure before marking the source incomplete. Set to zero for the strictest cost behavior.",
            "default": 1
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}