### Place Details Full Request Example Source: https://stableenrich.dev/llms.txt Example of a GET request to retrieve full details for a specific place using its unique place ID. ```http GET /api/google-maps/place-details/full?placeId=ChIJN1t_tDeuEmsRUsoyG83frY4 ``` -------------------------------- ### Solar API Building Insights Request Example Source: https://stableenrich.dev/llms.txt Example GET request to the Google Solar API to get building insights for a given latitude and longitude. It includes an optional parameter to specify the required data quality. ```http GET /api/google-maps/solar/building-insights?latitude=37.4220&longitude=-122.0841&requiredQuality=LOW ``` -------------------------------- ### Cloudflare Website Crawl Request Source: https://stableenrich.dev/llms.txt Initiate a website crawl by sending a POST request with crawl parameters. This example specifies the URL, limit, depth, and desired format. ```json { "url": "https://example.com", "limit": 5, "depth": 1, "formats": ["markdown"] } ``` -------------------------------- ### People Search with Employment History Source: https://stableenrich.dev/llms.txt Example of a people search query that includes an option to expand results to show full employment history. This requires setting `include_employment_history` to true. ```json { "current_company_domains": [{ "value": "stripe.com" }], "current_position_seniority_level": [{ "value": "VP" }], "include_employment_history": true } ``` -------------------------------- ### Render Google Aerial View Video Source: https://stableenrich.dev/llms.txt Request the asynchronous rendering of a flyover video for a given address. Poll the lookup endpoint to get the finished URIs when the state is ACTIVE. ```json { "address": "1600 Amphitheatre Parkway, Mountain View, CA" } ``` -------------------------------- ### Hunter Email Verification Request Source: https://stableenrich.dev/llms.txt Send a POST request to verify email deliverability. This example shows the request body format. ```json { "email": "test@stripe.com" } ``` -------------------------------- ### Search Property with Legacy State Field (Incorrect) Source: https://stableenrich.dev/llms.txt This example shows an incorrect way to search for property using the legacy 'state' field instead of 'state_code'. ```json { "street": "123 Main St", "city": "San Francisco", "state": "CA" } ``` -------------------------------- ### Scrape Web Page with Firecrawl Source: https://stableenrich.dev/llms.txt Use Firecrawl for comprehensive web page scraping, providing clean markdown formatting. This is the recommended starting point for web scraping tasks. ```bash POST /api/firecrawl/scrape ``` -------------------------------- ### GET /api/google-maps/place-details/partial Source: https://stableenrich.dev/llms.txt Retrieve basic details for a specific place using its unique ID. This is a more economical choice. ```APIDOC ## GET /api/google-maps/place-details/partial ### Description Get partial details for a specific place by ID. ### Method GET ### Endpoint /api/google-maps/place-details/partial ### Query Parameters #### Path Parameters - **placeId** (string) - Required - The unique identifier of the place. (Same query parameters as /place-details/full) ``` -------------------------------- ### GET /api/google-maps/place-details/full Source: https://stableenrich.dev/llms.txt Retrieve comprehensive details for a specific place using its unique ID. ```APIDOC ## GET /api/google-maps/place-details/full ### Description Get full details for a specific place by ID. ### Method GET ### Endpoint /api/google-maps/place-details/full ### Query Parameters #### Path Parameters - **placeId** (string) - Required - The unique identifier of the place. ``` -------------------------------- ### GET /api/google-maps/solar/building-insights Source: https://stableenrich.dev/llms.txt Access Google Solar API to get building insights, including roof segments and sunshine hours, for a given latitude and longitude. Useful for checking solar coverage and imagery dates. ```APIDOC ## GET /api/google-maps/solar/building-insights ### Description Google Solar API — closest building insights for a lat/lng. Use this as a cheap probe to confirm Solar coverage for an address and to read the imagery capture date (`imageryDate`) before fetching the full data layers. ### Method GET ### Endpoint /api/google-maps/solar/building-insights ### Query Parameters - **latitude** (number) - Required - building latitude - **longitude** (number) - Required - building longitude - **requiredQuality** (string) - Optional - `LOW` | `MEDIUM` | `HIGH` (default `HIGH`) ``` -------------------------------- ### GET /api/google-maps/solar/data-layers Source: https://stableenrich.dev/llms.txt Retrieves aerial GeoTIFF data layers for a building, including signed URLs for photographs, digital surface models, and shade/flux maps. ```APIDOC ## GET /api/google-maps/solar/data-layers ### Description Google Solar API — aerial GeoTIFF data layers for a building. Returns signed URLs for the actual aerial RGB photograph (`rgbUrl`), digital surface model (`dsmUrl`), shade/flux maps, and a building mask, along with `imageryDate` (the capture date of the photo). Price: $0.08 per request ### Method GET ### Endpoint /api/google-maps/solar/data-layers ### Parameters #### Query Parameters - **latitude** (string) - Required - Latitude coordinate. - **longitude** (string) - Required - Longitude coordinate. - **radiusMeters** (integer) - Optional - Radius around the lat/lng to include. Default: `50`, Max: `175`. - **view** (string) - Optional - Specifies the layers to retrieve. Enum: `DSM_LAYER`, `IMAGERY_LAYERS`, `IMAGERY_AND_ANNUAL_FLUX_LAYERS`, `IMAGERY_AND_ALL_FLUX_LAYERS`, `FULL_LAYERS`. Default: `FULL_LAYERS`. - **requiredQuality** (string) - Optional - Specifies the required quality of the data. Enum: `LOW`, `MEDIUM`, `HIGH`. Default: `HIGH`. - **pixelSizeMeters** (number) - Optional - The desired pixel size in meters. Allowed values: `0.1`, `0.25`, `0.5`, `1.0`. Default: `0.25`. - **exactQualityRequired** (boolean) - Optional - If true, only data with the exact quality specified by `requiredQuality` will be returned. Default: `false`. ### Request Example ``` GET /api/google-maps/solar/data-layers?latitude=37.4220&longitude=-122.0841&radiusMeters=50&view=IMAGERY_LAYERS ``` ### Response #### Success Response (200) - **rgbUrl** (string) - Signed URL for the aerial RGB photograph. - **dsmUrl** (string) - Signed URL for the digital surface model. - **shadeUrl** (string) - Signed URL for the shade map. - **fluxUrl** (string) - Signed URL for the flux map. - **buildingMaskUrl** (string) - Signed URL for the building mask. - **imageryDate** (string) - The capture date of the aerial photograph. ### Notes The returned URLs are signed and expire. Fetch the GeoTIFFs promptly. To convert a GeoTIFF to PNG/JPEG use `gdal_translate` or any image library that reads TIFF. ``` -------------------------------- ### People Search by Seniority Level Source: https://stableenrich.dev/llms.txt An example of a people search query that filters by a specific seniority level within a company domain. This is recommended over using exact job titles for broader queries. ```json { "current_company_domains": [{ "value": "stripe.com" }], "current_position_seniority_level": [{ "value": "C-level" }] } ``` -------------------------------- ### POST /api/firecrawl/search Source: https://stableenrich.dev/llms.txt Search the web and get scraped results using the Firecrawl API. ```APIDOC ## POST /api/firecrawl/search ### Description Search the web and get scraped results. ### Method POST ### Endpoint /api/firecrawl/search ### Parameters #### Query Parameters - **limit** (integer) - Optional - Maximum number of results to return. Max is 10. ### Request Body - **query** (string) - Required - The search query. - **limit** (integer) - Optional - The number of results to return. ``` -------------------------------- ### Exa Answer API Request Source: https://stableenrich.dev/llms.txt Get an AI-generated answer to a question based on web search results. ```json { "query": "What is the capital of France?" } ``` -------------------------------- ### GET /api/hunter/email-verifier/jobs/{jobId} Source: https://stableenrich.dev/llms.txt Polls the status of a previously initiated Hunter email verification job. This endpoint is free and requires SIWX authentication. ```APIDOC ## GET /api/hunter/email-verifier/jobs/{jobId} ### Description Poll a pending Hunter verification job. This endpoint is free but requires SIWX authentication from the same wallet that paid for the POST. ### Method GET ### Endpoint /api/hunter/email-verifier/jobs/{jobId} ### Parameters #### Path Parameters - **jobId** (string) - Required - The ID of the job to poll. ### Response #### Success Response - **status** (string) - The current status of the job ('pending', 'completed', 'failed'). - **result** (object) - The final verification result if status is 'completed'. **Note:** Poll every `retryAfterSeconds` while status is "pending". When status is "completed", read the final verification object from `result`. ``` -------------------------------- ### GET /api/google-maps/aerial-view/lookup-video Source: https://stableenrich.dev/llms.txt Looks up a previously rendered 3D flyover video for a given address or video ID, returning video URIs and metadata. ```APIDOC ## GET /api/google-maps/aerial-view/lookup-video ### Description Google Aerial View API — look up a previously rendered 3D flyover video for an address (or by `videoId`). Returns video URIs (landscape, portrait, thumbnail) and metadata. Returns `state: PROCESSING` if a video has been requested but not finished rendering. Price: $0.01 per request ### Method GET ### Endpoint /api/google-maps/aerial-view/lookup-video ### Parameters #### Query Parameters - **address** (string) - Required (provide one of `address` or `videoId`) - Street address to look up. - **videoId** (string) - Required (provide one of `address` or `videoId`) - Existing video ID. ### Request Example ``` GET /api/google-maps/aerial-view/lookup-video?address=1600+Amphitheatre+Parkway+Mountain+View+CA ``` ### Response #### Success Response (200) - **landscapeUri** (string) - URI for the landscape video. - **portraitUri** (string) - URI for the portrait video. - **thumbnailUri** (string) - URI for the video thumbnail. - **state** (string) - The current state of the video rendering. Possible values: `PROCESSING`, `RENDERED`. - **metadata** (object) - Additional metadata about the video. ``` -------------------------------- ### Get Reddit Post Comments Source: https://stableenrich.dev/llms.txt Use this JSON payload with a post's URL to retrieve its full text content and all associated comments. ```json { "url": "https://www.reddit.com/r/AskReddit/comments/abc123/example_post" } ``` -------------------------------- ### GET /api/cloudflare/jobs?token= Source: https://stableenrich.dev/llms.txt Polls the status and results of a Cloudflare website crawl job using a JWT token. This endpoint is free and requires SIWX authentication. ```APIDOC ## GET /api/cloudflare/jobs?token= ### Description Poll crawl job status. Requires SIWX wallet authentication (same wallet that paid). Free — no x402/MPP payment. ### Method GET ### Endpoint /api/cloudflare/jobs?token= ### Parameters #### Query Parameters - **token** (string) - Required - The JWT token obtained from the POST /api/cloudflare/crawl request. ### Response #### Success Response - **id** (string) - The job ID. - **status** (string) - The Cloudflare job status string (e.g., `queued`, `completed`, `errored`). - **records** (array) - An array of crawl records for each page. - **url** (string) - The URL of the crawled page. - **status** (string) - The status for this specific page record. - **markdown** (string) - The crawled content in markdown format (if requested). - **metadata** (object) - Metadata about the crawled page. - **total** (number) - Total number of pages to crawl. - **finished** (number) - Number of pages finished. - **skipped** (number) - Number of pages skipped. - **browserSecondsUsed** (number) - Total browser seconds used for the crawl. - **cursor** (string) - A cursor for pagination (if applicable). **Note:** Poll every 3–5 seconds. Determine completion by checking if `result.finished + result.skipped >= result.total` or when no pages remain `queued`. ``` -------------------------------- ### Bulk Web Scraping with Exa Source: https://stableenrich.dev/llms.txt Consider Exa for cheaper bulk web scraping when cost is a concern. It is an alternative to Firecrawl for processing many URLs. ```bash POST /api/exa/contents ``` -------------------------------- ### POST /api/serper/shopping Source: https://stableenrich.dev/llms.txt Perform a Google Shopping search via Serper.dev. ```APIDOC ## POST /api/serper/shopping ### Description Google Shopping search via Serper.dev. ### Method POST ### Endpoint /api/serper/shopping ### Request Body - **q** (string) - Required - The search query. - **num** (integer) - Optional - The number of results to return. - **gl** (string) - Optional - The Google country to search from. - **hl** (string) - Optional - The Google language to search from. ``` -------------------------------- ### Exa Find Similar Pages Request Source: https://stableenrich.dev/llms.txt Find web pages that are similar to a given URL. Specify the target URL and the number of similar pages to retrieve. ```json { "url": "https://openai.com", "numResults": 5 } ``` -------------------------------- ### Cloudflare Website Crawl Polling Workflow Source: https://stableenrich.dev/llms.txt Illustrates the complete asynchronous workflow for Cloudflare website crawling, from initiating the crawl to polling for results. ```bash 1. token = fetch POST /api/cloudflare/crawl → response.token 2. loop: result = fetch_with_auth GET /api/cloudflare/jobs?token={token} if result.finished + result.skipped >= result.total → done, use result.records else → wait 3-5s, repeat ``` -------------------------------- ### POST /api/serper/images Source: https://stableenrich.dev/llms.txt Perform a Google Images search via Serper.dev for general public image discovery. ```APIDOC ## POST /api/serper/images ### Description Google Images search via Serper.dev. Generic public image discovery — products, places, screenshots, anything visual. ### Method POST ### Endpoint /api/serper/images ### Request Body - **q** (string) - Required - The search query. - **num** (integer) - Optional - The number of results to return. - **gl** (string) - Optional - The Google country to search from. - **hl** (string) - Optional - The Google language to search from. ``` -------------------------------- ### POST /api/serper/people-image-search Source: https://stableenrich.dev/llms.txt Perform a Google Images search tuned for finding a specific person's headshot/profile photo via Serper.dev. ```APIDOC ## POST /api/serper/people-image-search ### Description Google Images search tuned for finding a specific person — headshot/profile-photo candidates when LinkedIn/profile-photo APIs return null or a default avatar. ### Method POST ### Endpoint /api/serper/people-image-search ### Request Body - **q** (string) - Required - The search query, including person's name and company. - **num** (integer) - Optional - The number of results to return (recommended 5-10). - **gl** (string) - Optional - The Google country to search from (default 'us'). - **hl** (string) - Optional - The Google language to search from (default 'en'). ``` -------------------------------- ### Google Shopping Search Source: https://stableenrich.dev/llms.txt Perform a Google Shopping search for products using the Serper API. Customize with query, number of results, and locale. ```json { "q": "wireless earbuds", "num": 10, "gl": "us", "hl": "en" } ``` -------------------------------- ### Fetch Data with AgentCash Source: https://stableenrich.dev/llms.txt Execute data fetches using the AgentCash tool. Successful responses include a success flag and the data payload within an envelope. ```python mcp__agentcash__fetch ``` -------------------------------- ### POST /api/exa/find-similar Source: https://stableenrich.dev/llms.txt Finds web pages that are similar to a given URL. ```APIDOC ## POST /api/exa/find-similar ### Description Find pages similar to a given URL. ### Method POST ### Endpoint /api/exa/find-similar ### Parameters #### Request Body - **url** (string) - Required - The URL to find similar pages for. - **numResults** (integer) - Optional - The number of similar results to return. ### Request Example ```json { "url": "https://openai.com", "numResults": 5 } ``` ### Response #### Success Response (200) - **results** (array) - A list of similar pages found. ``` -------------------------------- ### POST /api/serper/lens Source: https://stableenrich.dev/llms.txt Perform a Google Lens reverse image search via Serper.dev. ```APIDOC ## POST /api/serper/lens ### Description Google Lens reverse image search via Serper.dev. Pass a public image URL and get visually similar pages, products, and sources. ### Method POST ### Endpoint /api/serper/lens ### Request Body - **url** (string) - Required - The public image URL to search. - **gl** (string) - Optional - The Google country to search from. - **hl** (string) - Optional - The Google language to search from. ``` -------------------------------- ### Check Endpoint Schema Source: https://stableenrich.dev/llms.txt Before fetching data from POST/PUT/PATCH endpoints, use this function to confirm the request schema and pricing. This is crucial for agent workflows. ```python mcp__agentcash__check_endpoint_schema ``` -------------------------------- ### Basic People Search Filters Source: https://stableenrich.dev/llms.txt Demonstrates the basic structure for filtering people search queries using company domains and seniority levels. Both string and object formats for filter values are accepted. ```json { "current_company_domains": ["stripe.com"], "current_position_seniority_level": ["VP"] } ``` ```json { "current_company_domains": [{ "value": "stripe.com" }], "current_position_seniority_level": [{ "value": "VP" }] } ``` -------------------------------- ### POST /api/google-maps/aerial-view/render-video Source: https://stableenrich.dev/llms.txt Requests the rendering of a new flyover video for a given address. The rendering process is asynchronous, and users should poll the /api/google-maps/aerial-view/lookup-video endpoint to check for completion. ```APIDOC ## POST /api/google-maps/aerial-view/render-video ### Description Requests the rendering of a new flyover video for a given address. The rendering process is asynchronous, and users should poll the `/api/google-maps/aerial-view/lookup-video` endpoint until `state: ACTIVE` to retrieve the finished URIs. ### Method POST ### Endpoint /api/google-maps/aerial-view/render-video ### Parameters #### Request Body - **address** (string) - Required - The address for which to render the aerial view video. ### Request Example ```json { "address": "1600 Amphitheatre Parkway, Mountain View, CA" } ``` ``` -------------------------------- ### Cloudflare Website Crawl JWT Token Response Source: https://stableenrich.dev/llms.txt A successful POST request to start a Cloudflare crawl returns a JWT token in the response body. This token is used to poll for the crawl job status. ```json { "token": "" } ``` -------------------------------- ### POST /api/exa/contents Source: https://stableenrich.dev/llms.txt Extracts the main content from a list of specified URLs. ```APIDOC ## POST /api/exa/contents ### Description Extract content from specific URLs. ### Method POST ### Endpoint /api/exa/contents ### Parameters #### Request Body - **urls** (array of strings) - Required - A list of URLs from which to extract content. ### Request Example ```json { "urls": ["https://example.com"] } ``` ### Response #### Success Response (200) - **contents** (object) - An object where keys are the input URLs and values are the extracted content from each URL. ``` -------------------------------- ### POST /api/serper/news Source: https://stableenrich.dev/llms.txt Perform a Google News search via Serper.dev. ```APIDOC ## POST /api/serper/news ### Description Google News search via Serper.dev. ### Method POST ### Endpoint /api/serper/news ### Request Body - **q** (string) - Required - The search query. - **num** (integer) - Optional - The number of results to return. - **gl** (string) - Optional - The Google country to search from. - **hl** (string) - Optional - The Google language to search from. ``` -------------------------------- ### Search People with Exa Source: https://stableenrich.dev/llms.txt Use Exa to search for people, particularly for seeding broad research tasks. This can be used with the 'people' category. ```bash POST /api/exa/search ``` -------------------------------- ### Reverse Image Search with Google Lens Source: https://stableenrich.dev/llms.txt Perform a reverse image search using Google Lens via the Serper API. Provide a public image URL to find visually similar content. ```json { "url": "https://example.com/photo.jpg", "gl": "us", "hl": "en" } ``` -------------------------------- ### Search Companies by Industry and Location (Next Page) Source: https://stableenrich.dev/llms.txt Retrieve the next page of company search results using the `search_after` cursor token obtained from the previous response's metadata. This ensures reliable pagination. ```json { "search_after": "", "industries": [{ "value": "Research Services" }], "headquarters_locations": [{ "value": "United States" }] } ``` -------------------------------- ### Exa Extract Content Request Source: https://stableenrich.dev/llms.txt Extract content from a list of specified URLs. ```json { "urls": ["https://example.com"] } ``` -------------------------------- ### Search People by Name and State Source: https://stableenrich.dev/llms.txt Use this JSON payload to search for people by their first name, last name, and state code. ```json { "first_name": "John", "last_name": "Smith", "state_code": "CA" } ``` -------------------------------- ### Search Companies with FullEnrich Source: https://stableenrich.dev/llms.txt Perform company searches using FullEnrich. This can be used to verify company domains before large people searches. ```bash POST /api/fullenrich/company-search ``` -------------------------------- ### Exa Search API Request Source: https://stableenrich.dev/llms.txt Perform a semantic web search using a query and specify the number of results. ```json { "query": "best practices for building AI agents", "numResults": 5 } ``` -------------------------------- ### POST /api/exa/search Source: https://stableenrich.dev/llms.txt Performs a semantic web search to find relevant pages. Supports optional category filtering and domain restrictions. ```APIDOC ## POST /api/exa/search ### Description Semantic web search for finding relevant pages. Supports optional `category` parameter to filter results by content type (e.g., "company", "people", "news"). Domain filters (`includeDomains`, `excludeDomains`) require full hostnames. ### Method POST ### Endpoint /api/exa/search ### Parameters #### Query Parameters - **query** (string) - Required - The search query. - **numResults** (integer) - Optional - The number of results to return. - **category** (string) - Optional - Filters results by content type (e.g., "company", "people", "research paper", "news", "pdf", "personal site", "financial report"). - **includeDomains** (array of strings) - Optional - List of full hostnames to include in the search. - **excludeDomains** (array of strings) - Optional - List of full hostnames to exclude from the search. ### Request Example ```json { "query": "best practices for building AI agents", "numResults": 5 } ``` ### Request Example (People Search) ```json { "query": "hedge fund portfolio manager New York", "category": "people", "numResults": 10 } ``` ### Response #### Success Response (200) - **results** (array) - A list of search results, each containing details about a found page. ``` -------------------------------- ### Discover API Endpoints Source: https://stableenrich.dev/llms.txt Use this function to discover candidate endpoints for agent workflows. Ensure the base URL is correctly provided. ```python mcp__agentcash__discover_api_endpoints("https://stableenrich.dev") ``` -------------------------------- ### Standard Fuzzy Match for Person Identity Resolution Source: https://stableenrich.dev/llms.txt Use this snippet to resolve a person's identity using their name and email address. It returns a Minerva PID and LinkedIn URL. ```json { "records": [ { "record_id": "user_001", "first_name": "John", "last_name": "Smith", "emails": ["[email protected]"] } ] } ``` -------------------------------- ### Person Image Search Source: https://stableenrich.dev/llms.txt Search for headshots and profile photos of specific individuals using Google Images via the Serper API. Query syntax and source credibility are important for accurate results. ```json { "q": "\"Ryan Sproule\" \"Merit Systems\" LinkedIn headshot", "num": 10, "gl": "us", "hl": "en" } ``` -------------------------------- ### POST /api/cloudflare/crawl Source: https://stableenrich.dev/llms.txt Initiates a website crawl using Cloudflare's rendering service. This is a long-running operation that returns a JWT token for polling results. ```APIDOC ## POST /api/cloudflare/crawl ### Description Start a website crawl. Returns a JWT token to poll for results. ### Method POST ### Endpoint /api/cloudflare/crawl ### Parameters #### Request Body - **url** (string) - Required - Starting URL to crawl. - **limit** (number) - Optional - Maximum pages to crawl (default 10, max 25). - **depth** (number) - Optional - Maximum link depth from starting URL (default 1, max 3). - **formats** (array) - Optional - Response formats: "html", "markdown", "json" (default ["markdown"]). - **render** (boolean) - Optional - Execute JavaScript when crawling (default false). - **source** (string) - Optional - URL discovery: "all", "sitemaps", or "links". - **options** (object) - Optional - Crawl scope: - **includeExternalLinks** (boolean) - Follow links to external domains. - **includeSubdomains** (boolean) - Follow links to subdomains. - **includePatterns** (string[]) - Wildcard patterns for URLs to include. - **excludePatterns** (string[]) - Wildcard patterns for URLs to exclude (higher priority). ### Request Example ```json { "url": "https://example.com", "limit": 5, "depth": 1, "formats": ["markdown"] } ``` ### Response #### Success Response (202) - **token** (string) - A signed JWT token to poll for crawl results. ``` -------------------------------- ### Enrich Organization Properties Source: https://stableenrich.dev/llms.txt Verify company domains using organization enrichment properties. Use this when you only have a company name or social URLs. ```bash POST /api/companyenrich/properties-enrich ``` -------------------------------- ### Enrich Person by Name and Company Domain (Fallback) Source: https://stableenrich.dev/llms.txt This fallback snippet enriches person data using first name, last name, and company domain. It has similar coverage to a LinkedIn profile but is not a substitute when the person is absent from PDL. ```json { "first_name": "Patrick", "last_name": "Collison", "company_domain": "stripe.com" } ``` -------------------------------- ### Search Property by Address Source: https://stableenrich.dev/llms.txt Use this JSON payload to search for property details using street, city, and state code. Ensure to use the correct field names like 'state_code' and 'zipcode'. ```json { "street": "123 Main St", "city": "San Francisco", "state_code": "CA" } ``` -------------------------------- ### Google News Search Source: https://stableenrich.dev/llms.txt Conduct a Google News search using the Serper API. Specify the query, number of results, and locale. ```json { "q": "OpenAI funding", "num": 10, "gl": "us", "hl": "en" } ``` -------------------------------- ### POST /api/google-maps/text-search/partial Source: https://stableenrich.dev/llms.txt Search for places using a text query with partial field details. This endpoint provides basic information and is more cost-effective. ```APIDOC ## POST /api/google-maps/text-search/partial ### Description Search for places using a text query with partial field details (basic info only, lower cost). ### Method POST ### Endpoint /api/google-maps/text-search/partial ### Request Body (Same request body as /text-search/full) ``` -------------------------------- ### POST /api/hunter/email-verifier Source: https://stableenrich.dev/llms.txt Initiates an email verification process using Hunter.io. This endpoint can return immediate results or a pending job ID for asynchronous polling. ```APIDOC ## POST /api/hunter/email-verifier ### Description Verify email deliverability via Hunter.io. Returns either the final verification result or a pending job response. ### Method POST ### Endpoint /api/hunter/email-verifier ### Parameters #### Request Body - **email** (string) - Required - The email address to verify. ### Request Example ```json { "email": "test@stripe.com" } ``` ### Response #### Success Response (200) - **status** (string) - The verification status ('completed', 'failed'). - **result** (object) - The final verification result if status is 'completed'. #### Pending Response (202) - **jobId** (string) - The ID for the pending job. - **status** (string) - The status of the job ('pending'). - **pollUrl** (string) - The URL to poll for job status updates. - **retryAfterSeconds** (number) - The recommended time in seconds to wait before polling again. ``` -------------------------------- ### POST /api/fullenrich/people-search Source: https://stableenrich.dev/llms.txt Searches for people or contacts based on specified criteria. Returns up to 10 people per query. Pricing is $0.14 per query when results are found, and free when no matches are returned. Upstream bills 0.25 FullEnrich credits per person returned. ```APIDOC ## POST /api/fullenrich/people-search ### Description Search for people/contacts matching criteria. ### Method POST ### Endpoint /api/fullenrich/people-search ### Parameters #### Query Parameters - **offset** (integer) - Optional - Offset for pagination. Note: `offset` alone always returns 400. Include at least one search filter. - **include_employment_history** (boolean) - Optional - If true, includes `employment.all` with `company_id` references and all referenced employers in `companies`. - **verbose** (boolean) - Optional - If true, returns the raw FullEnrich shape with inline company objects, full `employment.all`, and no top-level `companies` map. #### Request Body - **current_company_domains** (array) - Optional - Array of company domains to filter by. Accepts plain strings or `{"value":"..."}` objects. - **current_position_seniority_level** (array) - Optional - Array of seniority levels to filter by. Accepts plain strings or `{"value":"..."}` objects. Use exact FullEnrich filter values (e.g., `C-level`, `VP`, `Head`, `Founder`). - **current_position_titles** (array) - Optional - Array of exact job titles to filter by. Returns fewer results than seniority levels. - **person_locations** (array) - Optional - Array of person locations to filter by. - **current_company_days_since_last_job_change** (object) - Optional - Filter by days since the last job change. Accepts an object with `min` and `max` properties (e.g., `{"min": 500, "max": 1000}`). ### Request Example (Basic Search) ```json { "current_company_domains": [{ "value": "stripe.com" }], "current_position_seniority_level": [{ "value": "VP" }] } ``` ### Request Example (Include Employment History) ```json { "current_company_domains": [{ "value": "stripe.com" }], "current_position_seniority_level": [{ "value": "VP" }], "include_employment_history": true } ``` ### Request Example (Recency + Domain) ```json { "current_company_domains": [{ "value": "stripe.com" }], "current_company_days_since_last_job_change": [{ "min": 500, "max": 1000 }] } ``` ### Response #### Success Response (200) - **people** (array) - List of people matching the search criteria. - **companies** (object) - A map of company details, keyed by `company_id`. - **metadata** (object) - Metadata about the search results. #### Response Example (Default Lean) ```json { "people": [ { "id": "person_id_1", "employment": { "current": { "company_id": "company_id_1", "seniority": "VP" } } } ], "companies": { "company_id_1": { "name": "Stripe" } }, "metadata": { "query_id": "query_id_abc" } } ``` #### Response Example (Verbose) ```json { "people": [ { "id": "person_id_1", "employment": { "current": { "company_id": "company_id_1", "seniority": "VP" }, "all": [ { "company_id": "company_id_1", "seniority": "VP" } ] } } ], "companies": { "company_id_1": { "name": "Stripe" } }, "metadata": { "query_id": "query_id_abc" } } ``` ``` -------------------------------- ### Enrich Contacts with Clado Source: https://stableenrich.dev/llms.txt Use Clado for contacts enrichment, specifically for email and phone data, when PDL is insufficient. Deduplication by name, company, and profile URL is advised. ```bash POST /api/clado/contacts-enrich ``` -------------------------------- ### POST /api/whitepages/property-search Source: https://stableenrich.dev/llms.txt Retrieve property ownership, resident, and property details using a valid address. An empty result is indicated by a 200 status with `{"result": null}`. ```APIDOC ## POST /api/whitepages/property-search ### Description Get property ownership, resident, and property details by address. Empty results are not errors and return a 200 status with `{"result": null}`. ### Method POST ### Endpoint /api/whitepages/property-search ### Parameters #### Query Parameters - **street** (string) - Required - The street address. Aliases: `address`, `street_line`, `street_line_1`, `street_address`. - **city** (string) - Required - The city of the address. - **state_code** (string) - Required - The state code. Use `state_code`, not `state`. - **zipcode** (string) - Required - The zip code. Aliases: `zip`, `zip_code`, `postal_code`. ### Request Example ```json { "street": "123 Main St", "city": "San Francisco", "state_code": "CA" } ``` ``` -------------------------------- ### POST /api/exa/answer Source: https://stableenrich.dev/llms.txt Provides an AI-generated answer to a question, based on web search results. ```APIDOC ## POST /api/exa/answer ### Description Get an AI-generated answer to a question based on web search. ### Method POST ### Endpoint /api/exa/answer ### Parameters #### Request Body - **query** (string) - Required - The question to be answered. ### Request Example ```json { "query": "What is the capital of France?" } ``` ### Response #### Success Response (200) - **answer** (string) - The AI-generated answer to the query. ``` -------------------------------- ### Enrich People Data with PDL Source: https://stableenrich.dev/llms.txt Enrich people data using PDL, prioritizing enrichment by profile URL. This is recommended after resolving LinkedIn URLs. ```bash POST /api/pdl/people-enrich ``` -------------------------------- ### Enrich Company Profile by Name Source: https://stableenrich.dev/llms.txt Use this snippet to enrich a company profile when you only have the company name. Verify the returned domain and name to ensure they match your intended company. ```json { "name": "Stripe" } ``` -------------------------------- ### POST /api/google-maps/nearby-search/partial Source: https://stableenrich.dev/llms.txt Search for places near a geographic location and retrieve partial details for each place. This is a cost-effective option. ```APIDOC ## POST /api/google-maps/nearby-search/partial ### Description Search for places near a geographic location with partial details. ### Method POST ### Endpoint /api/google-maps/nearby-search/partial ### Request Body (Same request body as /nearby-search/full) ``` -------------------------------- ### Enrich Person by Email Source: https://stableenrich.dev/llms.txt Use this snippet when you have a known work email for the highest reliability enrichment. This is the preferred input method. ```json { "email": "patrick@stripe.com" } ``` -------------------------------- ### Google Images Search Source: https://stableenrich.dev/llms.txt Discover general public images using Google Images search via the Serper API. Specify query, number of results, and locale. ```json { "q": "eiffel tower at night", "num": 10, "gl": "us", "hl": "en" } ``` -------------------------------- ### POST /api/google-maps/nearby-search/full Source: https://stableenrich.dev/llms.txt Search for places near a geographic location and retrieve full details for each place. ```APIDOC ## POST /api/google-maps/nearby-search/full ### Description Search for places near a geographic location with full details. ### Method POST ### Endpoint /api/google-maps/nearby-search/full ### Request Body ```json { "locationRestriction": { "circle": { "center": { "latitude": 37.7749, "longitude": -122.4194 }, "radius": 1000 } }, "maxResultCount": 5 } ``` ``` -------------------------------- ### People Search by Recency and Domain Source: https://stableenrich.dev/llms.txt This query searches for people within a specific company domain and filters by the time since their last job change. It avoids specifying a job title to broaden results. ```json { "current_company_domains": [{ "value": "stripe.com" }], "current_company_days_since_last_job_change": [{ "min": 500, "max": 1000 }] } ``` -------------------------------- ### POST /api/companyenrich/org-enrich Source: https://stableenrich.dev/llms.txt Enriches a company profile by its domain. It provides details like employee count, revenue, and funding information. Note that 'employees' and 'revenue' are range strings. ```APIDOC ## POST /api/companyenrich/org-enrich ### Description Enrich a company profile by domain. This endpoint provides company details such as employee range, revenue range, and funding information. Note that `employees` and `revenue` are range strings and should not be numerically compared. ### Method POST ### Endpoint /api/companyenrich/org-enrich ### Parameters #### Request Body - **domain** (string) - Required - The domain of the company to enrich. - **expand** (string) - Optional - Use `"workforce"` to expand workforce data. Verify the returned `domain` matches your input before using this. ### Request Example ```json { "domain": "stripe.com" } ``` ### Response #### Success Response (200) - **domain** (string) - The canonical domain of the company. - **employees** (string) - The range of employees (e.g., "5K-10K"). - **revenue** (string) - The range of revenue (e.g., "over-1b"). - **total_funding** (number) - The total funding amount. - **funding** (array) - An array of funding round objects, with the most current round first. #### Response Example ```json { "domain": "stripe.com", "employees": "5000-10000", "revenue": "100m-500m", "total_funding": 123456789, "funding": [ { "round": "Series E", "amount": 600000000, "date": "2021-04-26" } ] } ``` ``` -------------------------------- ### POST /api/firecrawl/scrape Source: https://stableenrich.dev/llms.txt Scrape and extract content from a URL using the Firecrawl API. ```APIDOC ## POST /api/firecrawl/scrape ### Description Scrape and extract content from a URL. ### Method POST ### Endpoint /api/firecrawl/scrape ### Request Body - **url** (string) - Required - The URL to scrape. ``` -------------------------------- ### Exa Search API Request with Category Filter Source: https://stableenrich.dev/llms.txt Search for people or profiles by specifying the 'people' category and the number of results. ```json { "query": "hedge fund portfolio manager New York", "category": "people", "numResults": 10 } ``` -------------------------------- ### Enrich Company Profile by Domain Source: https://stableenrich.dev/llms.txt Use this snippet to enrich a company profile when you have the company's domain. Ensure the returned domain matches your intent, especially when using expansion parameters. ```json { "domain": "stripe.com" } ``` -------------------------------- ### Search Companies by Industry and Location Source: https://stableenrich.dev/llms.txt Search for companies using industry and headquarters location filters. This is the first page of results. ```json { "industries": [{ "value": "Research Services" }], "headquarters_locations": [{ "value": "United States" }] } ``` -------------------------------- ### POST /api/minerva/resolve Source: https://stableenrich.dev/llms.txt Resolves a person's identity to a unique Minerva PID and LinkedIn URL. It supports fuzzy matching using name and contact information, as well as reverse lookups using only email or phone. ```APIDOC ## POST /api/minerva/resolve ### Description Resolve person identity to a Minerva PID and LinkedIn URL. Supports fuzzy matching (name + contact info) and reverse lookup (email or phone only, no name required). ### Method POST ### Endpoint /api/minerva/resolve ### Parameters #### Request Body - **records** (array) - Required - An array of records to resolve. Each record can contain `record_id`, `first_name`, `last_name`, `emails`, `phone`, `linkedin_url`. - **match_condition_fields** (array) - Optional - Fields to use for matching conditions, e.g., `["linkedin_url"]` to only return matches with a LinkedIn profile. ### Request Example ```json { "records": [ { "record_id": "user_001", "first_name": "John", "last_name": "Smith", "emails": ["[email protected]"] } ] } ``` ### Response #### Success Response (200) - **record_id** (string) - The identifier for the record. - **minerva_pid** (string) - The unique Minerva Persistent Digital Identifier. - **linkedin_url** (string) - The LinkedIn profile URL if found. #### Response Example ```json { "records": [ { "record_id": "user_001", "minerva_pid": "p-a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6", "linkedin_url": "https://www.linkedin.com/in/johnsmith" } ] } ``` ``` -------------------------------- ### Search Reddit Posts Source: https://stableenrich.dev/llms.txt Use this JSON payload to search for Reddit posts based on a query, sort order, timeframe, and maximum number of results. ```json { "query": "AI agents", "sort": "top", "timeframe": "week", "maxResults": 10 } ``` -------------------------------- ### Person Record Enrichment by Various Identifiers Source: https://stableenrich.dev/llms.txt Enrich person records using their Minerva PID, LinkedIn URL, or name/email/phone. Specify desired return fields to control response size. ```json { "records": [ { "record_id": "user_001", "minerva_pid": "p-a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6" }, { "record_id": "user_002", "linkedin_url": "https://www.linkedin.com/in/janedoe" }, { "record_id": "user_003", "first_name": "John", "last_name": "Smith", "emails": ["[email protected]"] } ], "return_fields": ["full_name", "personal_emails", "phones", "work_experience"] } ``` -------------------------------- ### POST /api/reddit/search Source: https://stableenrich.dev/llms.txt Search for Reddit posts based on a query. This endpoint returns truncated previews for efficient browsing and is priced at $0.02 per request. ```APIDOC ## POST /api/reddit/search ### Description Search Reddit posts by query. Returns truncated previews for efficient browsing. ### Method POST ### Endpoint /api/reddit/search ### Parameters #### Query Parameters - **query** (string) - Required - The search query. - **sort** (string) - Optional - How to sort the results (e.g., `top`). - **timeframe** (string) - Optional - The time frame for the search (e.g., `week`). - **maxResults** (integer) - Optional - The maximum number of results to return. ### Request Example ```json { "query": "AI agents", "sort": "top", "timeframe": "week", "maxResults": 10 } ``` ``` -------------------------------- ### Reverse Lookup by Email for Person Identity Resolution Source: https://stableenrich.dev/llms.txt Perform a reverse lookup using only an email address to find a person's identity and associated Minerva PID. No name is required. ```json { "records": [{ "record_id": "user_002", "emails": ["[email protected]"] }] } ``` -------------------------------- ### Search Web Content Source: https://stableenrich.dev/llms.txt Perform a web search and retrieve scraped results with the Firecrawl API. The 'limit' parameter is capped at 10. ```json { "query": "best coffee shops", "limit": 5 } ```