{"version":1,"resources":["https://stableenrich.dev/api/exa/search","https://stableenrich.dev/api/exa/contents","https://stableenrich.dev/api/exa/find-similar","https://stableenrich.dev/api/apollo/people-search","https://stableenrich.dev/api/apollo/people-enrich","https://stableenrich.dev/api/apollo/org-search","https://stableenrich.dev/api/apollo/org-enrich","https://stableenrich.dev/api/clado/contacts-enrich","https://stableenrich.dev/api/exa/answer","https://stableenrich.dev/api/firecrawl/scrape","https://stableenrich.dev/api/firecrawl/search","https://stableenrich.dev/api/google-maps/text-search/partial","https://stableenrich.dev/api/google-maps/text-search/full","https://stableenrich.dev/api/google-maps/nearby-search/partial","https://stableenrich.dev/api/google-maps/nearby-search/full","https://stableenrich.dev/api/google-maps/place-details/partial","https://stableenrich.dev/api/google-maps/place-details/full","https://stableenrich.dev/api/serper/news","https://stableenrich.dev/api/serper/shopping","https://stableenrich.dev/api/whitepages/person-search","https://stableenrich.dev/api/whitepages/property-search","https://stableenrich.dev/api/reddit/search","https://stableenrich.dev/api/reddit/post-comments","https://stableenrich.dev/api/hunter/email-verifier","https://stableenrich.dev/api/influencer/enrich-by-email","https://stableenrich.dev/api/influencer/enrich-by-social","https://stableenrich.dev/api/minerva/resolve","https://stableenrich.dev/api/minerva/enrich","https://stableenrich.dev/api/minerva/validate-emails","https://stableenrich.dev/api/cloudflare/crawl","https://stableenrich.dev/api/cloudflare/jobs"],"mppResources":["https://stableenrich.dev/api/exa/search","https://stableenrich.dev/api/exa/contents","https://stableenrich.dev/api/exa/find-similar","https://stableenrich.dev/api/apollo/people-search","https://stableenrich.dev/api/apollo/people-enrich","https://stableenrich.dev/api/apollo/org-search","https://stableenrich.dev/api/apollo/org-enrich","https://stableenrich.dev/api/clado/contacts-enrich","https://stableenrich.dev/api/exa/answer","https://stableenrich.dev/api/firecrawl/scrape","https://stableenrich.dev/api/firecrawl/search","https://stableenrich.dev/api/google-maps/text-search/partial","https://stableenrich.dev/api/google-maps/text-search/full","https://stableenrich.dev/api/google-maps/nearby-search/partial","https://stableenrich.dev/api/google-maps/nearby-search/full","https://stableenrich.dev/api/google-maps/place-details/partial","https://stableenrich.dev/api/google-maps/place-details/full","https://stableenrich.dev/api/serper/news","https://stableenrich.dev/api/serper/shopping","https://stableenrich.dev/api/whitepages/person-search","https://stableenrich.dev/api/whitepages/property-search","https://stableenrich.dev/api/reddit/search","https://stableenrich.dev/api/reddit/post-comments","https://stableenrich.dev/api/hunter/email-verifier","https://stableenrich.dev/api/influencer/enrich-by-email","https://stableenrich.dev/api/influencer/enrich-by-social","https://stableenrich.dev/api/minerva/resolve","https://stableenrich.dev/api/minerva/enrich","https://stableenrich.dev/api/minerva/validate-emails","https://stableenrich.dev/api/cloudflare/crawl"],"description":"Pay-per-request access to Apollo, Clado, Exa, Firecrawl, Google Maps, Serper, and Whitepages APIs. No auth, no subscriptions.","ownershipProofs":["0x0000000000000000000000008e6af8ed94e87b4402d0272c5d6b0d47f0483e7c000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000001c00000000000000000000000000000000000000000000000000000000000000124406f52fd0000000000000000000000002b4e26e1f32c7fbf076563ad49a86b69ae0182160000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000311d29fa0000000000000000000000000000000000000000000000000000000000000002bd71e7ae4046dbcd345631a04e70b360434e724d558d4dbce1a1235e0c5dbe8b7e673ff35925f52d6b485ac8fdd324d9e0ee0163e09e8c3f2b7ea44fc4f72745be445780eeddc4321ff957c7fb8ac80866d1f281f2bdac807ac00d38dc33e8403e21ca5d0d341cc94b8dcc9c79b36f691ce99d74cbf28511a1f3a3e14885eefd0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002e00000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000c0000000000000000000000000000000000000000000000000000000000000012000000000000000000000000000000000000000000000000000000000000000170000000000000000000000000000000000000000000000000000000000000001efc2614a03c63dd8f71e1d894e51b2bfe0e92bda90057cabac999faf7326518d37bb3db54c216f721045344f47892422bcb223d32b58878bc3589a80508fcd0d000000000000000000000000000000000000000000000000000000000000002506817f31b6ccc1234a424df1fff4840b8ed06f3671ea34bfbfabcb0b04a176ac1d0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000897b2274797065223a22776562617574686e2e676574222c226368616c6c656e6765223a225148756e486d654632376730765150624a594f71436a726857543943585a655f3366506f7767674a642d77222c226f726967696e223a2268747470733a2f2f7465616d732e73706c6974732e6f7267222c2263726f73734f726967696e223a66616c73657d00000000000000000000000000000000000000000000006492649264926492649264926492649264926492649264926492649264926492"],"instructions":"# StableEnrich API Reference\n## Authentication\n\nAll endpoints require micropayment. Include payment headers as per the HTTP 402 specification. Payments are processed on Base mainnet (eip155:8453), Solana, or Tempo.\n\n## Base URL\n\nhttps://stableenrich.dev\n\nAll endpoints are relative to this base URL.\n\n## Agent Workflow (Progressive)\n\n1. Discover candidate endpoints with `mcp__agentcash__discover_api_endpoints(\"https://stableenrich.dev\")`.\n2. If discovery reports `guidanceAvailable=true` but guidance is omitted, only re-run with `include_guidance=true` when domain-level methodology is needed.\n3. For selected POST/PUT/PATCH endpoints, call `mcp__agentcash__check_endpoint_schema` before first fetch.\n4. Execute with `mcp__agentcash__fetch`.\n\nIf no endpoint matches the user task, stop this origin flow and switch to another origin.\n\n## Schema Discovery\n\nAll endpoints support schema discovery via the `check_endpoint_schema` tool. Use it on the selected endpoint to confirm request schema and pricing before execution.\n\n## Web Scraping\n\nFor web scraping tasks, always start with **Firecrawl `/api/firecrawl/scrape`** ($0.0126/request). It provides comprehensive page content with clean markdown formatting.\n\nIf you need to scrape many URLs and cost is a concern, consider **Exa `/api/exa/contents`** ($0.002/request) as a cheaper alternative for bulk processing.\n\n---\n\n# Research Methodology (Fan-out / Population Tasks)\n\nUse this playbook for ambiguous, broad, or \"find many candidates\" requests (e.g., \"junior hedge fund carry-trade people who might start a company\"):\n\n1. **Detect fan-out**: If the request implies a population or list-building task, avoid single-search answers. Plan for *many* queries and a large candidate pool.\n2. **Clarify constraints**: Restate the target, must-haves, nice-to-haves, geography, seniority, timeframe, and desired output size. If unclear, make explicit assumptions and proceed.\n3. **Broad-to-narrow pipeline**:\n   - **Seed**: Use multiple discovery sources to build an initial pool (Exa `/api/exa/search` with `category: \"linkedin profile\"` for people discovery, Firecrawl for web lists, Google Maps for local orgs, Apollo org-search for company IDs).\n   - **Expand**: Generate query variants (synonyms, titles, strategies, regions) and paginate until you reach a healthy pool (aim 50–100 candidates).\n   - **Enrich**: Use Apollo people-search + people-enrich (and Minerva enrich for LinkedIn/demographic data, or Clado contacts-enrich for email/phone) to fill details; dedupe by name + company + profile URL.\n   - **Filter**: Apply the must-haves; keep 30–50 high-confidence matches.\n4. **Tool choreography**: Use **mcp__agentcash__fetch** for all paid endpoints. Verify Apollo org IDs with /api/apollo/org-search before large people searches to avoid wasted calls.\n5. **Evidence and transparency**: Track sources per candidate; note uncertainty; surface how the list was constructed and where gaps remain.\n\n---\n\n# Google Maps API\n\n## POST /api/google-maps/text-search/full\nSearch for places using a text query with full field details (includes ratings, reviews, contact info, and atmosphere data).\nPrice: $0.08 per request\n\nExample:\n```json\n{\n  \"textQuery\": \"coffee shops in San Francisco\",\n  \"maxResultCount\": 5\n}\n```\n\n---\n\n## POST /api/google-maps/text-search/partial\nSearch for places using a text query with partial field details (basic info only, lower cost).\nPrice: $0.02 per request. Same request body as /text-search/full.\n\n---\n\n## POST /api/google-maps/nearby-search/full\nSearch for places near a geographic location with full details.\nPrice: $0.08 per request\n\nExample:\n```json\n{\n  \"locationRestriction\": {\n    \"circle\": {\n      \"center\": { \"latitude\": 37.7749, \"longitude\": -122.4194 },\n      \"radius\": 1000\n    }\n  },\n  \"maxResultCount\": 5\n}\n```\n\n---\n\n## POST /api/google-maps/nearby-search/partial\nSearch for places near a geographic location with partial details.\nPrice: $0.02 per request. Same request body as /nearby-search/full.\n\n---\n\n## GET /api/google-maps/place-details/full\nGet full details for a specific place by ID.\nPrice: $0.05 per request\n\nExample: GET /api/google-maps/place-details/full?placeId=ChIJN1t_tDeuEmsRUsoyG83frY4\n\n---\n\n## GET /api/google-maps/place-details/partial\nGet partial details for a specific place by ID.\nPrice: $0.02 per request. Same query parameters as /place-details/full.\n\n---\n\n# Apollo API\n\nIMPORTANT: Organization Lookup Workflow\nWhen performing people searches filtered by organization (using organization_ids or q_organization_domains), you MUST first verify the exact organization identifier using /api/apollo/org-search. Apollo performs exact matching on organization IDs and domains - if the identifier is incorrect or misspelled, the search will return zero results or the wrong company's employees. This verification step is critical to avoid wasted requests and incorrect data.\n\nRecommended workflow:\n1. Call /api/apollo/org-search with the company name or domain\n2. Confirm the returned organization_id and domain match your intended target\n3. Use the verified identifier in your /api/apollo/people-search calls\n\n\nEXTREMELY IMPORTANT:\n\nWhen Apollo People Search returns names, it will return them in an obfuscated manner. It is absolutely critical that you then immediately use the /api/apollo/people-enrich endpoint to get their full information.\nYou should pass the person's ID directly into enrich to ensure you get correct data for the person.\n\nIf Apollo does not return the needed data, always fall back to Minerva or Clado. Use Minerva `/api/minerva/resolve` + `/api/minerva/enrich` for LinkedIn data, demographics, and personal contact info. Use Clado `/api/clado/contacts-enrich` for email/phone enrichment from a LinkedIn URL.\n\n## POST /api/apollo/people-search\nSearch for people/contacts matching criteria.\nPrice: $0.02 per request\n\nExample:\n```json\n{\n  \"q_keywords\": \"software engineer\",\n  \"person_locations\": [\"San Francisco\"],\n  \"per_page\": 5\n}\n```\n\n---\n\n## POST /api/apollo/org-search\nSearch for organizations/companies matching criteria.\nPrice: $0.02 per request\n\nExample:\n```json\n{\n  \"q_keywords\": \"saas\",\n  \"organization_locations\": [\"United States\"],\n  \"per_page\": 5\n}\n```\n\n---\n\n## POST /api/apollo/people-enrich\nEnrich a person's profile with additional data.\nPrice: $0.0495 per request\n\nExample:\n```json\n{\n  \"email\": \"tim@apple.com\"\n}\n```\n\n---\n\n## POST /api/apollo/org-enrich\nEnrich an organization's profile by domain.\nPrice: $0.0495 per request\n\nExample:\n```json\n{\n  \"domain\": \"apollo.io\"\n}\n```\n\n---\n\n# Exa API (Web Search & Research)\n\n## POST /api/exa/search\nSemantic web search for finding relevant pages.\nPrice: $0.01 per request\n\nSupports an optional `category` parameter to filter results by content type: `\"company\"`, `\"research paper\"`, `\"news\"`, `\"pdf\"`, `\"github\"`, `\"tweet\"`, `\"personal site\"`, `\"linkedin profile\"`, `\"financial report\"`.\n\n**People/Profile Search Tip**: Use `category: \"linkedin profile\"` for high-level people or profile searches. This scopes results to LinkedIn profiles and is a fast, cheap way to find people before enriching with Apollo or Clado.\n\nExample:\n```json\n{\n  \"query\": \"best practices for building AI agents\",\n  \"numResults\": 5\n}\n```\n\nLinkedIn profile search example:\n```json\n{\n  \"query\": \"hedge fund portfolio manager New York\",\n  \"category\": \"linkedin profile\",\n  \"numResults\": 10\n}\n```\n\n---\n\n## POST /api/exa/find-similar\nFind pages similar to a given URL.\nPrice: $0.01 per request\n\nExample:\n```json\n{\n  \"url\": \"https://openai.com\",\n  \"numResults\": 5\n}\n```\n\n---\n\n## POST /api/exa/contents\nExtract content from specific URLs.\nPrice: $0.002 per request\n\nExample:\n```json\n{\n  \"urls\": [\"https://example.com\"]\n}\n```\n\n---\n\n## POST /api/exa/answer\nGet an AI-generated answer to a question based on web search.\nPrice: $0.01 per request\n\nExample:\n```json\n{\n  \"query\": \"What is the capital of France?\"\n}\n```\n\n---\n\n# Firecrawl API (Web Scraping)\n\n## POST /api/firecrawl/scrape\nScrape and extract content from a URL.\nPrice: $0.0126 per request\n\nExample:\n```json\n{\n  \"url\": \"https://example.com\"\n}\n```\n\n---\n\n## POST /api/firecrawl/search\nSearch the web and get scraped results.\nPrice: $0.0252 per request\n\nExample:\n```json\n{\n  \"query\": \"best coffee shops\",\n  \"limit\": 5\n}\n```\n\n---\n\n# Clado API (Contact Enrichment)\n\nNote: Clado is useful as a fallback when Apollo doesn't return personal emails or phone numbers. For LinkedIn profile data (experience, education, skills), use Minerva `/api/minerva/enrich` instead.\n\n## POST /api/clado/contacts-enrich\nEnrich contact information from LinkedIn URL, email, or phone number. Must provide exactly one of: linkedin_url, email, or phone.\nPrice: $0.20 per request\n\nExample:\n```json\n{\n  \"linkedin_url\": \"https://www.linkedin.com/in/satyanadella\"\n}\n```\n\n---\n\n# Serper API (Google Search)\n\n## POST /api/serper/news\nGoogle News search via Serper.dev.\nPrice: $0.04 per request\n\nExample:\n```json\n{\n  \"q\": \"OpenAI funding\",\n  \"num\": 10,\n  \"gl\": \"us\",\n  \"hl\": \"en\"\n}\n```\n\n---\n\n## POST /api/serper/shopping\nGoogle Shopping search via Serper.dev.\nPrice: $0.04 per request\n\nExample:\n```json\n{\n  \"q\": \"wireless earbuds\",\n  \"num\": 10,\n  \"gl\": \"us\",\n  \"hl\": \"en\"\n}\n```\n\n---\n\n# Whitepages API (People & Property Search)\n\n## POST /api/whitepages/person-search\nSearch for people by name, phone number, or address.\nPrice: $0.44 per request\n\nExample:\n```json\n{\n  \"first_name\": \"John\",\n  \"last_name\": \"Smith\",\n  \"state_code\": \"CA\"\n}\n```\n\n---\n\n## POST /api/whitepages/property-search\nGet property ownership, resident, and property details by address.\nPrice: $0.44 per request\n\nIMPORTANT: The state parameter is named `state_code`, NOT `state`. You must use the field name `state_code` with a two-letter state abbreviation (e.g., \"CA\", \"NY\", \"TX\"). Using `state` instead of `state_code` will result in the field being ignored.\n\nExample:\n```json\n{\n  \"street\": \"123 Main St\",\n  \"city\": \"San Francisco\",\n  \"state_code\": \"CA\"\n}\n```\n\nWRONG (will not work):\n```json\n{\n  \"street\": \"123 Main St\",\n  \"city\": \"San Francisco\",\n  \"state\": \"CA\"\n}\n```\n\n---\n\n# Reddit API\n\nIMPORTANT - Two-step pattern for Reddit research:\n1. Use /api/reddit/search to find relevant posts. Responses are lightweight — selftext is truncated to 500 chars.\n   Posts with `selftextTruncated: true` have more content available.\n2. For any post where you need the full text or comments, call /api/reddit/post-comments with the post's permalink.\n   This returns the complete untruncated selftext plus all comments.\n\nThis pattern keeps search results small (< 2KB for 10 posts) while letting you drill into specific posts when needed.\n\n## POST /api/reddit/search\nSearch Reddit posts by query. Returns truncated previews for efficient browsing.\nPrice: $0.02 per request\n\nExample:\n```json\n{\n  \"query\": \"AI agents\",\n  \"sort\": \"top\",\n  \"timeframe\": \"week\",\n  \"maxResults\": 10\n}\n```\n\n---\n\n## POST /api/reddit/post-comments\nGet a Reddit post's full details and comments. Use this to get untruncated selftext and discussion for posts found via search.\nPrice: $0.02 per request\n\nExample:\n```json\n{\n  \"url\": \"https://www.reddit.com/r/AskReddit/comments/abc123/example_post\"\n}\n```\n\n---\n\n# Hunter API (Email Verification)\n\n## POST /api/hunter/email-verifier\nVerify email deliverability via Hunter.io.\nPrice: $0.03 per request\n\nExample:\n```json\n{\n  \"email\": \"test@stripe.com\"\n}\n```\n\n---\n\n# Influencer API (Social Media Influencer Enrichment)\n\nThe Influencer API helps you enrich social media influencer profiles across multiple platforms (Instagram, TikTok, YouTube, Facebook). Use this for influencer marketing research and social media contact enrichment.\n\n## POST /api/influencer/enrich-by-email\nFind social media profiles associated with an email address.\nPrice: $0.40 per request\n\nExample:\n```json\n{\n  \"email\": \"creator@example.com\",\n  \"platform\": \"instagram\",\n  \"enrichment_mode\": \"enhanced\"\n}\n```\n\n---\n\n## POST /api/influencer/enrich-by-social\nEnrich a social media profile with additional data including contact info.\nPrice: $0.40 per request\n\nExample:\n```json\n{\n  \"platform\": \"instagram\",\n  \"username\": \"example_creator\",\n  \"enrichment_mode\": \"enhanced\",\n  \"email_required\": \"must_have\"\n}\n```\n\n# Cloudflare Browser Rendering API (Website Crawling)\n\nIMPORTANT - Two-step async pattern for Cloudflare crawl:\nThe crawl endpoint is long-running (up to ~2 minutes). It uses an async pattern:\n1. POST /api/cloudflare/crawl — pays and starts the crawl, returns a signed JWT token (202 response)\n2. GET /api/cloudflare/jobs?token=<jwt> — SIWX-authenticated (free), poll until job is complete\n\nPoll every 3–5 seconds. The job typically completes in 30–120 seconds depending on site size and render mode.\n\n## POST /api/cloudflare/crawl\nStart a website crawl. Returns a JWT token to poll for results.\nPrice: $0.05 per crawl job\n\nParameters:\n- `url` (string, required) — starting URL to crawl\n- `limit` (number, default 10, max 25) — maximum pages to crawl\n- `depth` (number, default 1, max 3) — maximum link depth from starting URL\n- `formats` (array, default [\"markdown\"]) — response formats: \"html\", \"markdown\", \"json\"\n- `render` (boolean, default false) — execute JavaScript when crawling (slower, costs more)\n- `source` (string, optional) — URL discovery: \"all\", \"sitemaps\", or \"links\"\n- `options` (object, optional) — crawl scope:\n  - `includeExternalLinks` (boolean) — follow links to external domains\n  - `includeSubdomains` (boolean) — follow links to subdomains\n  - `includePatterns` (string[]) — wildcard patterns for URLs to include\n  - `excludePatterns` (string[]) — wildcard patterns for URLs to exclude (higher priority)\n\nExample:\n```json\n{\n  \"url\": \"https://example.com\",\n  \"limit\": 5,\n  \"depth\": 1,\n  \"formats\": [\"markdown\"]\n}\n```\n\nResponse (202):\n```json\n{ \"token\": \"<signed-jwt>\" }\n```\n\n---\n\n## GET /api/cloudflare/jobs?token=<jwt>\nPoll crawl job status. Requires SIWX wallet authentication (same wallet that paid). Free — no x402/MPP payment.\n\nUse `mcp__agentcash__fetch_with_auth` (not `fetch`) for this endpoint.\n\nResponse shape (Cloudflare's result returned directly):\n```json\n{\n  \"id\": \"<jobId>\",\n  \"status\": \"<cf-status-string>\",\n  \"records\": [\n    {\n      \"url\": \"https://example.com/page\",\n      \"status\": \"completed\",\n      \"markdown\": \"...\",\n      \"metadata\": { \"status\": 200, \"url\": \"...\", \"title\": \"...\" }\n    }\n  ],\n  \"total\": 10,\n  \"finished\": 8,\n  \"skipped\": 2,\n  \"browserSecondsUsed\": 45.2,\n  \"cursor\": \"...\"\n}\n```\n\nPage `status` values: `queued` | `completed` | `errored` | `disallowed` | `skipped` | `cancelled`\n\nTo determine completion, check `result.finished + result.skipped >= result.total` or poll until no pages remain `queued`.\n\nFull polling workflow:\n```\n1. token = fetch POST /api/cloudflare/crawl  →  response.token\n2. loop:\n     result = fetch_with_auth GET /api/cloudflare/jobs?token={token}\n     if result.finished + result.skipped >= result.total → done, use result.records\n     else → wait 3-5s, repeat\n```\n\n---\n\n# Minerva API (Person Identity & Enrichment)\n\nMinerva is a consumer identity graph. Use it to resolve person identities to unique Minerva PIDs, enrich profiles with demographics/work/contact data, validate emails, and infer country from contact signals.\n\n**Recommended workflow:**\n1. Use `/api/minerva/resolve` to match a person and get their Minerva PID + LinkedIn URL\n2. Use `/api/minerva/enrich` with the returned PID for instant, comprehensive enrichment\n3. Use `/api/minerva/validate-emails` to pre-screen emails before resolve/enrich\n\n**Minerva vs Apollo:** Minerva excels at consumer profiles (demographics, income/wealth estimates, address history, life events). Apollo excels at B2B/professional data. Use Minerva when you need personal contact info, financial signals, or household data.\n\n## POST /api/minerva/resolve\nResolve 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).\nPrice: $0.02 per request\n\nStandard fuzzy match example:\n```json\n{\n  \"records\": [\n    {\n      \"record_id\": \"user_001\",\n      \"first_name\": \"John\",\n      \"last_name\": \"Smith\",\n      \"emails\": [\"[email protected]\"]\n    }\n  ]\n}\n```\n\nReverse lookup (email only, no name needed):\n```json\n{\n  \"records\": [{ \"record_id\": \"user_002\", \"emails\": [\"[email protected]\"] }]\n}\n```\n\nUse `match_condition_fields: [\"linkedin_url\"]` to only return matches that have a LinkedIn profile.\n\n---\n\n## POST /api/minerva/enrich\nEnrich person records with demographics, work history, education, contact info (emails + phones), address history, financial signals (income/wealth range), relatives, and social profiles.\nPrice: $0.05 per request\n\nThree lookup modes — by Minerva PID (fastest), by LinkedIn URL, or by name/email/phone:\n```json\n{\n  \"records\": [\n    { \"record_id\": \"user_001\", \"minerva_pid\": \"p-a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6\" },\n    { \"record_id\": \"user_002\", \"linkedin_url\": \"https://www.linkedin.com/in/janedoe\" },\n    { \"record_id\": \"user_003\", \"first_name\": \"John\", \"last_name\": \"Smith\", \"emails\": [\"[email protected]\"] }\n  ],\n  \"return_fields\": [\"full_name\", \"personal_emails\", \"phones\", \"work_experience\"]\n}\n```\n\nUse `return_fields` to limit response size. Use `match_condition_fields` (e.g., `[\"email\", \"phone\"]`) to only return matches that have specific data.\n\n---\n\n## POST /api/minerva/validate-emails\nCheck if email addresses exist in the Minerva database. Returns validation status and last-seen timestamp. Use before resolve/enrich to pre-screen lists.\nPrice: $0.01 per request\n\n```json\n{\n  \"records\": [\"[email protected]\", \"[email protected]\"]\n}\n```\n\n---\n\n# Common Features\n\n## Field Filtering\nMost endpoints support an `excludeFields` parameter to reduce response size by omitting specific fields. Pass an array of dot-notation field paths to exclude. Google Maps endpoints default to excluding \"photos\" - pass an empty array to include them.\n\n## Pagination\n- Apollo search endpoints support pagination via `page` and `per_page` parameters.\n- Google Maps search endpoints support pagination via `pageToken` (returned as `nextPageToken` in responses).\n- Exa search supports `numResults` up to 100.\n\n## Error Handling\nAll endpoints return standard HTTP status codes. Payment-required responses (402) include x402/MPP payment instructions in headers. On server errors (5xx), payments are not settled.\n\n---\n\n# Pricing Summary\n\n| Endpoint | Price |\n|----------|-------|\n| Google Maps Text Search (Full) | $0.08 |\n| Google Maps Text Search (Partial) | $0.02 |\n| Google Maps Nearby Search (Full) | $0.08 |\n| Google Maps Nearby Search (Partial) | $0.02 |\n| Google Maps Place Details (Full) | $0.05 |\n| Google Maps Place Details (Partial) | $0.02 |\n| Apollo People Search | $0.02 |\n| Apollo Org Search | $0.02 |\n| Apollo People Enrich | $0.0495 |\n| Apollo Org Enrich | $0.0495 |\n| Exa Search | $0.01 |\n| Exa Find Similar | $0.01 |\n| Exa Contents | $0.002 |\n| Exa Answer | $0.01 |\n| Firecrawl Scrape | $0.0126 |\n| Firecrawl Search | $0.0252 |\n| Clado Contacts Enrich | $0.20 |\n| Serper News | $0.04 |\n| Serper Shopping | $0.04 |\n| Reddit Search | $0.02 |\n| Reddit Post Comments | $0.02 |\n| Whitepages Person Search | $0.44 |\n| Whitepages Property Search | $0.44 |\n| Hunter Email Verifier | $0.03 |\n| Influencer Enrich by Email | $0.40 |\n| Influencer Enrich by Social | $0.40 |\n| Minerva Resolve | $0.02 |\n| Minerva Enrich | $0.05 |\n| Minerva Validate Emails | $0.01 |\n| Cloudflare Crawl (start) | $0.05 |\n| Cloudflare Jobs (poll) | Free (SIWX) |\n"}