Yelp B2b Lead Extractor
Pricing
from $2.99 / 1,000 business leads
Go to Apify Store
Yelp B2b Lead Extractor
Extract publicly visible Yelp business fields without bypassing access controls.
Yelp B2b Lead Extractor
Pricing
from $2.99 / 1,000 business leads
Extract publicly visible Yelp business fields without bypassing access controls.
You can access the Yelp B2b Lead Extractor 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 API & Integrations in Apify Console.
{ "openapi": "3.0.1", "info": { "version": "1.3", "x-build-id": "LaKhIFN4KaceRqAhg" }, "servers": [ { "url": "https://api.apify.com/v2" } ], "paths": { "/acts/w3crawler~yelp-b2b-lead-extractor/run-sync-get-dataset-items": { "post": { "operationId": "run-sync-get-dataset-items-w3crawler-yelp-b2b-lead-extractor", "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/w3crawler~yelp-b2b-lead-extractor/runs": { "post": { "operationId": "runs-sync-w3crawler-yelp-b2b-lead-extractor", "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/w3crawler~yelp-b2b-lead-extractor/run-sync": { "post": { "operationId": "run-sync-w3crawler-yelp-b2b-lead-extractor", "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": { "query": { "title": "Search keyword", "maxLength": 300, "type": "string", "description": "Keyword used with location when startUrls is omitted.", "default": "restaurants" }, "location": { "title": "Search location", "maxLength": 300, "type": "string", "description": "City, region, or locality used with query when startUrls is omitted.", "default": "New York, NY" }, "sourceMode": { "title": "Source mode", "enum": [ "public", "yelpFusionApi" ], "type": "string", "description": "Use public for Yelp page extraction, or yelpFusionApi for the official Yelp Places/Fusion API. API mode never falls back to public pages.", "default": "public" }, "yelpApiKey": { "title": "Yelp Fusion API key", "type": "string", "description": "Optional secret Yelp Places/Fusion API key. Required when sourceMode is yelpFusionApi; it is sent only as an Authorization header and never written to output or logs. Fusion does not provide email addresses." }, "startUrls": { "title": "Yelp search or business URLs", "minItems": 1, "maxItems": 20, "type": "array", "description": "Optional public Yelp search, city/location, or business-profile URLs. When supplied, these URLs control the source pages; query and location remain search-context values.", "items": { "type": "object", "properties": { "url": { "title": "URL", "type": "string", "description": "HTTPS URL on yelp.com." } }, "required": [ "url" ] } }, "keyword": { "title": "Record keyword filter", "maxLength": 300, "type": "string", "description": "Optional case-insensitive filter over business name, description, categories, and address. It does not change the Yelp source query.", "default": "" }, "minRating": { "title": "Minimum rating", "minimum": 0, "maximum": 5, "type": "number", "description": "Keep records with an observed rating at or above this value. Missing ratings do not pass a positive minimum.", "default": 0 }, "minReviewCount": { "title": "Minimum review count", "minimum": 0, "maximum": 1000000000, "type": "integer", "description": "Keep records with an observed Yelp review count at or above this value.", "default": 0 }, "hasWebsite": { "title": "Require public website", "type": "boolean", "description": "Keep only businesses with an explicitly published non-Yelp website URL.", "default": false }, "hasPhone": { "title": "Require public phone", "type": "boolean", "description": "Keep only businesses with an explicitly published phone number.", "default": false }, "hasEmail": { "title": "Require public email", "type": "boolean", "description": "Keep only businesses with an explicitly published email address. The Actor never infers or guesses email addresses.", "default": false }, "sortBy": { "title": "Sort records", "enum": [ "relevance", "name_asc", "rating_desc", "reviews_desc" ], "type": "string", "description": "Sort the collected, filtered records across the bounded page set before maxItems is applied.", "default": "relevance" }, "maxItems": { "title": "Maximum businesses", "minimum": 1, "maximum": 100, "type": "integer", "description": "Global maximum number of normal business records emitted across all sources and pages.", "default": 20 }, "maxPages": { "title": "Maximum pages per source", "minimum": 1, "maximum": 20, "type": "integer", "description": "Maximum number of source pages requested for each start URL. Yelp next links are preferred; a bounded start-offset fallback is used only for search pages.", "default": 1 }, "deduplicate": { "title": "Deduplicate businesses", "type": "boolean", "description": "Deduplicate across pages and start URLs by Yelp business ID, alias, or canonical business URL.", "default": true }, "includeDetails": { "title": "Enrich business details", "type": "boolean", "description": "Fetch bounded public business-profile pages for selected records and merge fields that are explicitly available there.", "default": true }, "maxDetailItems": { "title": "Maximum detail pages", "minimum": 0, "maximum": 20, "type": "integer", "description": "Maximum selected business profiles to request for detail enrichment. 0 disables detail requests.", "default": 5 }, "includeDiagnostics": { "title": "Include diagnostic rows", "type": "boolean", "description": "Emit minimal {url,error,errorCode,scrapedAt} rows for blocks, request failures, redirects, or no public data. Operational counts remain in OUTPUT_SUMMARY.", "default": true }, "requestDelayMs": { "title": "Delay between requests (ms)", "minimum": 0, "maximum": 5000, "type": "integer", "description": "Respectful delay before each public request. Use 0 only for fixture QA or carefully bounded testing.", "default": 250 }, "maxRequestRetries": { "title": "Maximum retries", "minimum": 0, "maximum": 3, "type": "integer", "description": "Bounded retries for network failures only; access blocks are not retried indefinitely.", "default": 1 }, "timeoutMs": { "title": "Request timeout (ms)", "minimum": 5000, "maximum": 120000, "type": "integer", "description": "Maximum time for each public request.", "default": 30000 }, "proxyConfiguration": { "title": "Proxy configuration", "type": "object", "description": "Optional Apify Proxy configuration wired to got-scraping. It does not bypass access controls; direct access is used by default.", "default": { "useApifyProxy": false } }, "fixturePath": { "title": "Local fixture path", "maxLength": 500, "type": "string", "description": "Repository-relative HTML fixture for deterministic QA. Fixture mode makes no network request and must never be used as a silent live fallback.", "default": "" } } }, "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 } } } } } } } } }}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 Yelp B2b Lead Extractor 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: