{"items":[{"capability":"contact.find","title":"Find & verify work email","category":"enrichment","status":"live","sandbox":true,"description":"Find a professional email from a person and company.","input_schema":{"type":"object","required":["first_name","last_name","company_domain"],"properties":{"first_name":{"type":"string"},"last_name":{"type":"string"},"company_domain":{"type":"string"}}},"output_fields":["email","status","employment_verified","mx_provider","person","company"],"billing":{"unit":"per_match","bill_on_no_match":false,"note":"Charged only when a valid email is found; a miss is free. Government staff match too: pass the domain of the office the person sits in (a member's own domain, the committee's, the agency's). When it misses, take the point of contact printed on the notice or agency page and contact.verify it; .mil coverage is thinner."},"providers":["leadmagic","apollo","tomba","icypeas","hunter","findymail","peopledatalabs"],"live_providers":["leadmagic","apollo","icypeas","findymail"],"platforms":[],"offers":[{"provider":"leadmagic","mode":"platform_prepaid","provider_status":"live","executable":true,"wired":true,"verified":true,"platforms":[],"verified_platforms":["*"],"price":{"amount":"0.04375","currency":"USD","note":"measured margin over provider cost"},"health":{"status":"stable","latency_ms_p50":6201},"pricing":{"currency":"USD","base":"0.04375","per_result":"0","default_limit":null}},{"provider":"apollo","mode":"platform_prepaid","provider_status":"live","executable":true,"wired":true,"verified":true,"platforms":[],"verified_platforms":["*"],"price":{"amount":"0.042","currency":"USD","note":"measured margin over provider cost"},"health":{"status":"stable","latency_ms_p50":527},"pricing":{"currency":"USD","base":"0.042","per_result":"0","default_limit":null}},{"provider":"tomba","mode":"platform_prepaid","provider_status":"ready","executable":false,"wired":true,"verified":false,"platforms":[],"verified_platforms":[],"price":{"amount":"0.015575","currency":"USD","note":"provisional: set from the provider's published rates, measured on first smoke run"},"health":{"status":"unknown","latency_ms_p50":null},"pricing":{"currency":"USD","base":"0.015575","per_result":"0","default_limit":null}},{"provider":"icypeas","mode":"platform_prepaid","provider_status":"live","executable":true,"wired":true,"verified":true,"platforms":[],"verified_platforms":["*"],"price":{"amount":"0.01869","currency":"USD","note":"measured margin over provider cost"},"health":{"status":"stable","latency_ms_p50":6511},"pricing":{"currency":"USD","base":"0.01869","per_result":"0","default_limit":null}},{"provider":"hunter","mode":"platform_prepaid","provider_status":"ready","executable":false,"wired":true,"verified":true,"platforms":[],"verified_platforms":["*"],"price":{"amount":"0.02625","currency":"USD","note":"measured margin over provider cost"},"health":{"status":"unknown","latency_ms_p50":null},"pricing":{"currency":"USD","base":"0.02625","per_result":"0","default_limit":null}},{"provider":"findymail","mode":"platform_prepaid","provider_status":"live","executable":true,"wired":true,"verified":true,"platforms":[],"verified_platforms":["*"],"price":{"amount":"0.08575","currency":"USD","note":"measured margin over provider cost"},"health":{"status":"stable","latency_ms_p50":3107},"pricing":{"currency":"USD","base":"0.08575","per_result":"0","default_limit":null}},{"provider":"peopledatalabs","mode":"platform_prepaid","provider_status":"planned","executable":false,"wired":false,"verified":false,"platforms":[],"verified_platforms":[],"price":{"amount":"0.04","currency":"USD","note":"placeholder until this provider's adapter and terms exist"},"health":{"status":"unknown","latency_ms_p50":null}}],"starting_price":{"amount":"0.01869","currency":"USD"},"waterfall":{"providers":["icypeas","apollo","leadmagic"],"max_cost_for_all":{"amount":"0.04375","currency":"USD"},"note":"A miss is not charged: with max_cost at max_cost_for_all, each provider in turn tries until one finds, and you pay that one provider's price only when it finds."},"hints":["Use provider=\"auto\" for capabilities unless you deliberately need one provider. Pinning a provider disables cross-provider fallback even when allow_fallback=true. max_cost must cover each alternative’s full input-specific quote; a cheapest-route cap can exclude fallback."]},{"capability":"contact.verify","title":"Email deliverability check","category":"enrichment","status":"live","sandbox":true,"description":"Verify deliverability of a professional email: valid, invalid, or unknown, with catch-all and mail-server details.","input_schema":{"type":"object","required":["email"],"properties":{"email":{"type":"string"}}},"output_fields":["email","status","catch_all","mx_provider","company"],"billing":{"unit":"per_verdict","bill_on_no_match":false,"note":"Charged for a valid or invalid verdict. Unknown (mail server unreachable) is free and the router tries the next verifier."},"providers":["leadmagic","millionverifier","tomba","icypeas","hunter","findymail","zerobounce","neverbounce"],"live_providers":["leadmagic","icypeas","findymail"],"platforms":[],"offers":[{"provider":"leadmagic","mode":"platform_prepaid","provider_status":"live","executable":true,"wired":true,"verified":true,"platforms":[],"verified_platforms":["*"],"price":{"amount":"0.010938","currency":"USD","note":"measured margin over provider cost"},"health":{"status":"stable","latency_ms_p50":3986},"pricing":{"currency":"USD","base":"0.010938","per_result":"0","default_limit":null}},{"provider":"millionverifier","mode":"platform_prepaid","provider_status":"ready","executable":false,"wired":true,"verified":false,"platforms":[],"verified_platforms":[],"price":{"amount":"0.006475","currency":"USD","note":"provisional: set from the provider's published rates, measured on first smoke run"},"health":{"status":"unknown","latency_ms_p50":null},"pricing":{"currency":"USD","base":"0.006475","per_result":"0","default_limit":null}},{"provider":"tomba","mode":"platform_prepaid","provider_status":"ready","executable":false,"wired":true,"verified":false,"platforms":[],"verified_platforms":[],"price":{"amount":"0.002","currency":"USD","note":"provisional: set from the provider's published rates, measured on first smoke run"},"health":{"status":"unknown","latency_ms_p50":null},"pricing":{"currency":"USD","base":"0.002","per_result":"0","default_limit":null}},{"provider":"icypeas","mode":"platform_prepaid","provider_status":"live","executable":true,"wired":true,"verified":true,"platforms":[],"verified_platforms":["*"],"price":{"amount":"0.002","currency":"USD","note":"measured margin over provider cost"},"health":{"status":"stable","latency_ms_p50":3386},"pricing":{"currency":"USD","base":"0.002","per_result":"0","default_limit":null}},{"provider":"hunter","mode":"platform_prepaid","provider_status":"ready","executable":false,"wired":true,"verified":true,"platforms":[],"verified_platforms":["*"],"price":{"amount":"0.00875","currency":"USD","note":"measured margin over provider cost"},"health":{"status":"unknown","latency_ms_p50":null},"pricing":{"currency":"USD","base":"0.00875","per_result":"0","default_limit":null}},{"provider":"findymail","mode":"platform_prepaid","provider_status":"live","executable":true,"wired":true,"verified":true,"platforms":[],"verified_platforms":["*"],"price":{"amount":"0.00875","currency":"USD","note":"measured margin over provider cost"},"health":{"status":"stable","latency_ms_p50":618},"pricing":{"currency":"USD","base":"0.00875","per_result":"0","default_limit":null}},{"provider":"zerobounce","mode":"platform_prepaid","provider_status":"planned","executable":false,"wired":false,"verified":false,"platforms":[],"verified_platforms":[],"price":{"amount":"0.004","currency":"USD","note":"placeholder until this provider's adapter and terms exist"},"health":{"status":"unknown","latency_ms_p50":null}},{"provider":"neverbounce","mode":"platform_prepaid","provider_status":"planned","executable":false,"wired":false,"verified":false,"platforms":[],"verified_platforms":[],"price":{"amount":"0.004","currency":"USD","note":"placeholder until this provider's adapter and terms exist"},"health":{"status":"unknown","latency_ms_p50":null}}],"starting_price":{"amount":"0.002","currency":"USD"},"waterfall":{"providers":["icypeas","findymail","leadmagic"],"max_cost_for_all":{"amount":"0.010938","currency":"USD"},"note":"A miss is not charged: with max_cost at max_cost_for_all, each provider in turn tries until one finds, and you pay that one provider's price only when it finds."},"hints":["Use provider=\"auto\" for capabilities unless you deliberately need one provider. Pinning a provider disables cross-provider fallback even when allow_fallback=true. max_cost must cover each alternative’s full input-specific quote; a cheapest-route cap can exclude fallback."]},{"capability":"company.enrich","title":"Company firmographics","category":"enrichment","status":"live","sandbox":true,"description":"Firmographics for a company from its domain.","input_schema":{"type":"object","required":["domain"],"properties":{"domain":{"type":"string"},"linkedin_url":{"type":"string","description":"Optional LinkedIn company page URL; skips the name lookup on the Apify route"}}},"output_fields":["company","industry","employee_range","employee_count","founded","location","revenue","funding","specialties","competitors"],"billing":{"unit":"per_match","bill_on_no_match":false,"note":"Charged only when the company is found."},"providers":["leadmagic","hunter","apify","apollo","peopledatalabs","crustdata","coresignal"],"live_providers":["leadmagic","apify","apollo"],"platforms":[],"offers":[{"provider":"leadmagic","mode":"platform_prepaid","provider_status":"live","executable":true,"wired":true,"verified":true,"platforms":[],"verified_platforms":["*"],"price":{"amount":"0.04375","currency":"USD","note":"measured margin over provider cost"},"health":{"status":"stable","latency_ms_p50":2379},"pricing":{"currency":"USD","base":"0.04375","per_result":"0","default_limit":null}},{"provider":"hunter","mode":"platform_prepaid","provider_status":"ready","executable":false,"wired":true,"verified":true,"platforms":[],"verified_platforms":["*"],"price":{"amount":"0.00525","currency":"USD","note":"measured margin over provider cost"},"health":{"status":"unknown","latency_ms_p50":null},"pricing":{"currency":"USD","base":"0.00525","per_result":"0","default_limit":null}},{"provider":"apify","mode":"platform_prepaid","provider_status":"live","executable":true,"wired":true,"verified":true,"platforms":[],"verified_platforms":["*"],"price":{"amount":"0.007088","currency":"USD","note":"from $0.007088: varies by platform, see pricing.by_platform; the quote is max(minimum, base + per_result x limit), and run refuses it above max_cost"},"health":{"status":"stable","latency_ms_p50":8757},"pricing":{"currency":"USD","by_platform":{"*":{"base":"0.000088","per_result":"0.007","minimum":"0.002"}}}},{"provider":"apollo","mode":"platform_prepaid","provider_status":"live","executable":true,"wired":true,"verified":true,"platforms":[],"verified_platforms":["*"],"price":{"amount":"0.042","currency":"USD","note":"measured margin over provider cost"},"health":{"status":"stable","latency_ms_p50":611},"pricing":{"currency":"USD","base":"0.042","per_result":"0","default_limit":null}},{"provider":"peopledatalabs","mode":"platform_prepaid","provider_status":"planned","executable":false,"wired":false,"verified":false,"platforms":[],"verified_platforms":[],"price":{"amount":"0.012","currency":"USD","note":"placeholder until this provider's adapter and terms exist"},"health":{"status":"unknown","latency_ms_p50":null}},{"provider":"crustdata","mode":"platform_prepaid","provider_status":"planned","executable":false,"wired":false,"verified":false,"platforms":[],"verified_platforms":[],"price":{"amount":"0.014","currency":"USD","note":"placeholder until this provider's adapter and terms exist"},"health":{"status":"unknown","latency_ms_p50":null}},{"provider":"coresignal","mode":"platform_prepaid","provider_status":"planned","executable":false,"wired":false,"verified":false,"platforms":[],"verified_platforms":[],"price":{"amount":"0.01","currency":"USD","note":"placeholder until this provider's adapter and terms exist"},"health":{"status":"unknown","latency_ms_p50":null}}],"starting_price":{"amount":"0.007088","currency":"USD"},"waterfall":{"providers":["apify","apollo","leadmagic"],"max_cost_for_all":{"amount":"0.04375","currency":"USD"},"note":"A miss is not charged: with max_cost at max_cost_for_all, each provider in turn tries until one finds, and you pay that one provider's price only when it finds."},"hints":["Use provider=\"auto\" for capabilities unless you deliberately need one provider. Pinning a provider disables cross-provider fallback even when allow_fallback=true. max_cost must cover each alternative’s full input-specific quote; a cheapest-route cap can exclude fallback."]},{"capability":"company.search","title":"Company search","category":"enrichment","status":"live","sandbox":true,"description":"Companies matching a keyword, optionally filtered by location: name, website, industry, size, headquarters and description. A company database answers first; a live LinkedIn company search follows when it finds nothing.","input_schema":{"type":"object","required":["query"],"properties":{"query":{"type":"string","description":"Keyword or phrase, e.g. \"marketing agency\""},"location":{"type":"string","description":"Location filter, e.g. \"Lyon\""},"limit":{"type":"integer","default":10}}},"output_fields":["companies"],"billing":{"unit":"per_search","bill_on_no_match":false,"note":"The company database (icypeas) runs first: $0.002 a search plus $0.000374 a company returned ($0.00574 at the default 10), settled on the companies that come back. The live LinkedIn search (apify) follows when it finds nothing, or pin it: priced per search ($0.00175) plus $0.007 a company at the requested limit: $0.07175 at the default 10, $0.03675 at 5, $0.01575 at 2. Pass location with the name; a bare name matches homonyms worldwide. The exact quote is reserved before execution. If the provider's actual cost overruns the estimate, the run bills the overrun at the same per-call rate, capped by the hold."},"providers":["apify","apollo","icypeas"],"live_providers":["apify","apollo","icypeas"],"platforms":[],"offers":[{"provider":"apify","mode":"platform_prepaid","provider_status":"live","executable":true,"wired":true,"verified":true,"platforms":[],"verified_platforms":["*"],"price":{"amount":"0.00875","currency":"USD","note":"from $0.00875: varies by platform, see pricing.by_platform; the quote is max(minimum, base + per_result x limit), and run refuses it above max_cost"},"health":{"status":"stable","latency_ms_p50":5627},"pricing":{"currency":"USD","by_platform":{"*":{"base":"0.00175","per_result":"0.007","minimum":"0.002"}}}},{"provider":"apollo","mode":"platform_prepaid","provider_status":"live","executable":true,"wired":true,"verified":true,"platforms":[],"verified_platforms":["*"],"price":{"amount":"0.042","currency":"USD","note":"measured margin over provider cost"},"health":{"status":"stable","latency_ms_p50":343},"pricing":{"currency":"USD","base":"0.042","per_result":"0","default_limit":null}},{"provider":"icypeas","mode":"platform_prepaid","provider_status":"live","executable":true,"wired":true,"verified":true,"platforms":[],"verified_platforms":["*"],"price":{"amount":"0.002374","currency":"USD","note":"measured margin over provider cost; the quote is base + per_result x limit (default limit 10)"},"health":{"status":"stable","latency_ms_p50":288},"pricing":{"currency":"USD","base":"0.002","per_result":"0.000374","default_limit":10}}],"starting_price":{"amount":"0.002374","currency":"USD"},"waterfall":{"providers":["icypeas","apify","apollo"],"max_cost_for_all":{"amount":"0.042","currency":"USD"},"note":"A miss is not charged: with max_cost at max_cost_for_all, each provider in turn tries until one finds, and you pay that one provider's price only when it finds. Prices are for one result or call; a larger limit quotes more."},"hints":["Use provider=\"auto\" for capabilities unless you deliberately need one provider. Pinning a provider disables cross-provider fallback even when allow_fallback=true. max_cost must cover each alternative’s full input-specific quote; a cheapest-route cap can exclude fallback."]},{"capability":"company.signals","title":"Hiring & funding signals","category":"signals","status":"coming_soon","sandbox":true,"description":"Hiring, funding and news signals for a company, merged into one dated timeline.","input_schema":{"type":"object","required":["domain"],"properties":{"domain":{"type":"string"}}},"output_fields":["signals","company"],"billing":{"unit":"per_match","bill_on_no_match":false},"providers":["predictleads"],"live_providers":[],"platforms":[],"offers":[{"provider":"predictleads","mode":"platform_prepaid","provider_status":"ready","executable":false,"wired":true,"verified":false,"platforms":[],"verified_platforms":[],"price":{"amount":"0.0525","currency":"USD","note":"provisional: set from the provider's published rates, measured on first smoke run"},"health":{"status":"unknown","latency_ms_p50":null},"pricing":{"currency":"USD","base":"0.0525","per_result":"0","default_limit":null}}],"starting_price":{"amount":"0.0525","currency":"USD"},"waterfall":null,"hints":["Use provider=\"auto\" for capabilities unless you deliberately need one provider. Pinning a provider disables cross-provider fallback even when allow_fallback=true. max_cost must cover each alternative’s full input-specific quote; a cheapest-route cap can exclude fallback."]},{"capability":"company.technologies","title":"Technology stack lookup","category":"signals","status":"live","sandbox":true,"description":"Technology stack detected for a company.","input_schema":{"type":"object","required":["domain"],"properties":{"domain":{"type":"string"}}},"output_fields":["company","technologies","last_visited"],"billing":{"unit":"per_match","bill_on_no_match":false},"providers":["dataforseo","predictleads","builtwith","wappalyzer"],"live_providers":["dataforseo"],"platforms":[],"offers":[{"provider":"dataforseo","mode":"platform_prepaid","provider_status":"live","executable":true,"wired":true,"verified":true,"platforms":[],"verified_platforms":["*"],"price":{"amount":"0.021","currency":"USD","note":"measured margin over provider cost"},"health":{"status":"stable","latency_ms_p50":553},"pricing":{"currency":"USD","base":"0.021","per_result":"0","default_limit":null}},{"provider":"predictleads","mode":"platform_prepaid","provider_status":"ready","executable":false,"wired":true,"verified":false,"platforms":[],"verified_platforms":[],"price":{"amount":"0.0175","currency":"USD","note":"provisional: set from the provider's published rates, measured on first smoke run"},"health":{"status":"unknown","latency_ms_p50":null},"pricing":{"currency":"USD","base":"0.0175","per_result":"0","default_limit":null}},{"provider":"builtwith","mode":"platform_prepaid","provider_status":"planned","executable":false,"wired":false,"verified":false,"platforms":[],"verified_platforms":[],"price":{"amount":"0.012","currency":"USD","note":"placeholder until this provider's adapter and terms exist"},"health":{"status":"unknown","latency_ms_p50":null}},{"provider":"wappalyzer","mode":"platform_prepaid","provider_status":"planned","executable":false,"wired":false,"verified":false,"platforms":[],"verified_platforms":[],"price":{"amount":"0.01","currency":"USD","note":"placeholder until this provider's adapter and terms exist"},"health":{"status":"unknown","latency_ms_p50":null}}],"starting_price":{"amount":"0.021","currency":"USD"},"waterfall":{"providers":["dataforseo"],"max_cost_for_all":{"amount":"0.021","currency":"USD"},"note":"A miss is not charged: with max_cost at max_cost_for_all, each provider in turn tries until one finds, and you pay that one provider's price only when it finds."},"hints":["Use provider=\"auto\" for capabilities unless you deliberately need one provider. Pinning a provider disables cross-provider fallback even when allow_fallback=true. max_cost must cover each alternative’s full input-specific quote; a cheapest-route cap can exclude fallback."]},{"capability":"seo.serp","title":"Live SERP results","category":"seo","status":"live","sandbox":true,"description":"Live Google or Bing results for a keyword and location, with SERP features and AI Overview presence.","input_schema":{"type":"object","required":["keyword"],"properties":{"keyword":{"type":"string"},"location":{"type":"string","description":"City and country (\"Lisbon, Portugal\"), a country (\"France\") or a DataForSEO location code; default United States"},"language":{"type":"string","description":"Two-letter code or language name; default en"},"engine":{"type":"string","enum":["google","bing"],"default":"google"}}},"output_fields":["keyword","engine","results","total_results","serp_features","ai_overview_present"],"billing":{"unit":"per_search","bill_on_no_match":false},"providers":["dataforseo","apify"],"live_providers":["dataforseo","apify"],"platforms":["bing","google"],"offers":[{"provider":"dataforseo","mode":"platform_prepaid","provider_status":"live","executable":true,"wired":true,"verified":true,"platforms":["google","bing"],"verified_platforms":["google","bing"],"price":{"amount":"0.0035","currency":"USD","note":"measured margin over provider cost"},"health":{"status":"healthy","latency_ms_p50":5127},"pricing":{"currency":"USD","base":"0.0035","per_result":"0","default_limit":10}},{"provider":"apify","mode":"platform_prepaid","provider_status":"live","executable":true,"wired":true,"verified":true,"platforms":[],"verified_platforms":["*"],"price":{"amount":"0.006125","currency":"USD","note":"from $0.006125: varies by platform, see pricing.by_platform; the quote is max(minimum, base + per_result x limit), and run refuses it above max_cost"},"health":{"status":"stable","latency_ms_p50":20880},"pricing":{"currency":"USD","by_platform":{"*":{"base":"0.006125","per_result":"0","minimum":"0.002"}}}}],"starting_price":{"amount":"0.0035","currency":"USD"},"waterfall":{"providers":["dataforseo","apify"],"max_cost_for_all":{"amount":"0.006125","currency":"USD"},"note":"A miss is not charged: with max_cost at max_cost_for_all, each provider in turn tries until one finds, and you pay that one provider's price only when it finds. Prices are for one result or call; a larger limit quotes more."},"hints":["Use provider=\"auto\" for capabilities unless you deliberately need one provider. Pinning a provider disables cross-provider fallback even when allow_fallback=true. max_cost must cover each alternative’s full input-specific quote; a cheapest-route cap can exclude fallback."]},{"capability":"seo.keywords","title":"Keyword volume & ideas","category":"seo","status":"live","sandbox":true,"description":"Search volume and keyword ideas for a seed keyword.","input_schema":{"type":"object","required":["keyword"],"properties":{"keyword":{"type":"string"},"location":{"type":"string","description":"City and country (\"Lisbon, Portugal\"), a country (\"France\") or a DataForSEO location code; default United States"},"language":{"type":"string"},"limit":{"type":"integer"}}},"output_fields":["keyword","volume","cpc","competition","ideas"],"billing":{"unit":"per_search","bill_on_no_match":false,"note":"Priced per search plus a small per-idea amount, scaling with limit (default 20). The exact quote is reserved before execution. If the provider's actual cost overruns the estimate, the run bills the overrun at the same per-call rate, capped by the hold."},"providers":["dataforseo"],"live_providers":["dataforseo"],"platforms":[],"offers":[{"provider":"dataforseo","mode":"platform_prepaid","provider_status":"live","executable":true,"wired":true,"verified":true,"platforms":[],"verified_platforms":["*"],"price":{"amount":"0.02121","currency":"USD","note":"measured margin over provider cost; the quote is base + per_result x limit (default limit 20)"},"health":{"status":"stable","latency_ms_p50":282},"pricing":{"currency":"USD","base":"0.021","per_result":"0.00021","default_limit":20}}],"starting_price":{"amount":"0.02121","currency":"USD"},"waterfall":{"providers":["dataforseo"],"max_cost_for_all":{"amount":"0.02121","currency":"USD"},"note":"A miss is not charged: with max_cost at max_cost_for_all, each provider in turn tries until one finds, and you pay that one provider's price only when it finds. Prices are for one result or call; a larger limit quotes more."},"hints":["Use provider=\"auto\" for capabilities unless you deliberately need one provider. Pinning a provider disables cross-provider fallback even when allow_fallback=true. max_cost must cover each alternative’s full input-specific quote; a cheapest-route cap can exclude fallback."]},{"capability":"seo.backlinks","title":"Backlinks & referring domains","category":"seo","status":"live","sandbox":true,"description":"Backlinks and referring domains for a target domain.","input_schema":{"type":"object","required":["domain"],"properties":{"domain":{"type":"string"},"limit":{"type":"integer"}}},"output_fields":["domain","rank","backlinks","backlinks_total","referring_domains"],"billing":{"unit":"per_search","bill_on_no_match":false,"note":"Priced per lookup plus a small per-row amount, scaling with limit (default 20, one row per referring domain). The exact quote is reserved before execution. If the provider's actual cost overruns the estimate, the run bills the overrun at the same per-call rate, capped by the hold."},"providers":["dataforseo"],"live_providers":["dataforseo"],"platforms":[],"offers":[{"provider":"dataforseo","mode":"platform_prepaid","provider_status":"live","executable":true,"wired":true,"verified":true,"platforms":[],"verified_platforms":["*"],"price":{"amount":"0.08407","currency":"USD","note":"measured margin over provider cost; the quote is base + per_result x limit (default limit 20)"},"health":{"status":"stable","latency_ms_p50":883},"pricing":{"currency":"USD","base":"0.084","per_result":"0.00007","default_limit":20}}],"starting_price":{"amount":"0.08407","currency":"USD"},"waterfall":{"providers":["dataforseo"],"max_cost_for_all":{"amount":"0.08407","currency":"USD"},"note":"A miss is not charged: with max_cost at max_cost_for_all, each provider in turn tries until one finds, and you pay that one provider's price only when it finds. Prices are for one result or call; a larger limit quotes more."},"hints":["Use provider=\"auto\" for capabilities unless you deliberately need one provider. Pinning a provider disables cross-provider fallback even when allow_fallback=true. max_cost must cover each alternative’s full input-specific quote; a cheapest-route cap can exclude fallback."]},{"capability":"social.profile","title":"Social profile lookup","category":"social","status":"live","sandbox":true,"description":"Public profile data for a social handle: name, followers, bio, verified, plus the bio link, every listed link, the person's own domain (link hubs such as Linktree excluded), a public or business email when the profile exposes one, profile URL, business flag, category and location when the platform provides them.","input_schema":{"type":"object","required":["platform","handle"],"properties":{"platform":{"type":"string","enum":["x","instagram","tiktok","youtube","linkedin","facebook","douyin","threads","weibo","xiaohongshu"]},"handle":{"type":"string"}}},"output_fields":["platform","handle","profile"],"billing":{"unit":"per_match","bill_on_no_match":false},"providers":["scrapecreators","apify","scrapin","tikhub"],"live_providers":["apify"],"platforms":["douyin","facebook","instagram","linkedin","threads","tiktok","weibo","x","xiaohongshu","youtube"],"offers":[{"provider":"scrapecreators","mode":"platform_prepaid","provider_status":"ready","executable":false,"wired":true,"verified":false,"platforms":["x","instagram","tiktok","youtube","linkedin"],"verified_platforms":[],"price":{"amount":"0.0035","currency":"USD","note":"provisional: set from the provider's published rates, measured on first smoke run"},"health":{"status":"unknown","latency_ms_p50":null},"pricing":{"currency":"USD","base":"0.0035","per_result":"0","default_limit":null}},{"provider":"apify","mode":"platform_prepaid","provider_status":"live","executable":true,"wired":true,"verified":true,"platforms":["x","instagram","tiktok","linkedin","youtube","facebook"],"verified_platforms":["x","instagram","tiktok","linkedin","youtube","facebook"],"price":{"amount":"0.002","currency":"USD","note":"from $0.002: varies by platform, see pricing.by_platform; the quote is max(minimum, base + per_result x limit), and run refuses it above max_cost"},"health":{"status":"stable","latency_ms_p50":14397},"pricing":{"currency":"USD","by_platform":{"x":{"base":"0","per_result":"0.0007","minimum":"0.002"},"instagram":{"base":"0","per_result":"0.004025","minimum":"0.002"},"tiktok":{"base":"0.00175","per_result":"0.00525","minimum":"0.002"},"linkedin":{"base":"0.000088","per_result":"0.0035","minimum":"0.002"},"youtube":{"base":"0","per_result":"0.00525","minimum":"0.002"},"facebook":{"base":"0","per_result":"0.01435","minimum":"0.002"}}}},{"provider":"scrapin","mode":"platform_prepaid","provider_status":"planned","executable":false,"wired":false,"verified":false,"platforms":[],"verified_platforms":[],"price":{"amount":"0.012","currency":"USD","note":"placeholder until this provider's adapter and terms exist"},"health":{"status":"unknown","latency_ms_p50":null}},{"provider":"tikhub","mode":"platform_prepaid","provider_status":"ready","executable":false,"wired":true,"verified":false,"platforms":["tiktok","douyin","instagram","x","youtube","threads","weibo","xiaohongshu"],"verified_platforms":[],"price":{"amount":"0.00525","currency":"USD","note":"provisional: set from the provider's published rates, measured on first smoke run"},"health":{"status":"unknown","latency_ms_p50":null},"pricing":{"currency":"USD","base":"0.00525","per_result":"0","default_limit":null}}],"starting_price":{"amount":"0.002","currency":"USD"},"waterfall":{"providers":["apify"],"max_cost_for_all":{"amount":"0.002","currency":"USD"},"note":"A miss is not charged: with max_cost at max_cost_for_all, each provider in turn tries until one finds, and you pay that one provider's price only when it finds."},"hints":["Use provider=\"auto\" for capabilities unless you deliberately need one provider. Pinning a provider disables cross-provider fallback even when allow_fallback=true. max_cost must cover each alternative’s full input-specific quote; a cheapest-route cap can exclude fallback."]},{"capability":"social.posts","title":"Social posts & content","category":"social","status":"live","sandbox":true,"description":"Recent public posts for a social handle.","input_schema":{"type":"object","required":["platform","handle"],"properties":{"platform":{"type":"string","enum":["x","reddit","linkedin","instagram","tiktok","youtube","facebook","douyin","threads","weibo","xiaohongshu"]},"handle":{"type":"string","description":"@handle, profile or page URL, LinkedIn company page (company/name), subreddit (r/name) or channel"},"limit":{"type":"integer","default":5}}},"output_fields":["posts"],"billing":{"unit":"per_result","bill_on_no_match":false,"note":"Priced per result by platform: X $0.0007 a post, LinkedIn $0.0035, Reddit $0.00245 a post in search, $0.07 a run plus $0.00665 a post for a subreddit or user (inspect lists every platform). The hold covers the requested limit; the charge covers the results returned, so fewer results cost less, and failures and empty results release the hold. No date filter: filter on created_at after the call. If the provider's actual cost overruns the estimate, the run bills the overrun at the same per-call rate, capped by the hold."},"providers":["scrapecreators","apify","twitterapiio","tikhub"],"live_providers":["apify"],"platforms":["douyin","facebook","instagram","linkedin","reddit","threads","tiktok","weibo","x","xiaohongshu","youtube"],"offers":[{"provider":"scrapecreators","mode":"platform_prepaid","provider_status":"ready","executable":false,"wired":true,"verified":false,"platforms":["x","instagram","tiktok","youtube","reddit"],"verified_platforms":[],"price":{"amount":"0.0035","currency":"USD","note":"provisional: set from the provider's published rates, measured on first smoke run"},"health":{"status":"unknown","latency_ms_p50":null},"pricing":{"currency":"USD","base":"0.0035","per_result":"0","default_limit":null}},{"provider":"apify","mode":"platform_prepaid","provider_status":"live","executable":true,"wired":true,"verified":true,"platforms":["x","reddit","linkedin","instagram","tiktok","youtube","facebook"],"verified_platforms":["x","reddit","linkedin","instagram","tiktok","youtube","facebook"],"price":{"amount":"0.002","currency":"USD","note":"from $0.002: varies by platform, see pricing.by_platform; the quote is max(minimum, base + per_result x limit), and run refuses it above max_cost"},"health":{"status":"stable","latency_ms_p50":7816},"pricing":{"currency":"USD","by_platform":{"x":{"base":"0","per_result":"0.0007","minimum":"0.002"},"reddit":{"base":"0.07","per_result":"0.00665","minimum":"0.002"},"linkedin":{"base":"0.000088","per_result":"0.0035","minimum":"0.002"},"instagram":{"base":"0","per_result":"0.004025","minimum":"0.002"},"tiktok":{"base":"0.00175","per_result":"0.00525","minimum":"0.002"},"youtube":{"base":"0","per_result":"0.00525","minimum":"0.002"},"facebook":{"base":"0.00175","per_result":"0.007","minimum":"0.002"}}}},{"provider":"twitterapiio","mode":"platform_prepaid","provider_status":"planned","executable":false,"wired":false,"verified":false,"platforms":[],"verified_platforms":[],"price":{"amount":"0.00015","currency":"USD","note":"placeholder until this provider's adapter and terms exist"},"health":{"status":"unknown","latency_ms_p50":null}},{"provider":"tikhub","mode":"platform_prepaid","provider_status":"ready","executable":false,"wired":true,"verified":false,"platforms":["tiktok","douyin","instagram","x","youtube","threads","reddit","weibo","xiaohongshu"],"verified_platforms":[],"price":{"amount":"0.00525","currency":"USD","note":"provisional: set from the provider's published rates, measured on first smoke run"},"health":{"status":"unknown","latency_ms_p50":null},"pricing":{"currency":"USD","base":"0.00525","per_result":"0","default_limit":null}}],"starting_price":{"amount":"0.002","currency":"USD"},"waterfall":{"providers":["apify"],"max_cost_for_all":{"amount":"0.002","currency":"USD"},"note":"A miss is not charged: with max_cost at max_cost_for_all, each provider in turn tries until one finds, and you pay that one provider's price only when it finds. Prices are for one result or call; a larger limit quotes more."},"hints":["Use provider=\"auto\" for capabilities unless you deliberately need one provider. Pinning a provider disables cross-provider fallback even when allow_fallback=true. max_cost must cover each alternative’s full input-specific quote; a cheapest-route cap can exclude fallback."]},{"capability":"ads.search","title":"Competitor ad creatives","category":"ads","status":"live","sandbox":true,"description":"Public ad creatives from the Meta Ad Library (advertiser or keyword) or the Google Ads Transparency Center (advertiser domain).","input_schema":{"type":"object","required":["query"],"properties":{"query":{"type":"string","description":"Advertiser name or keyword (Meta); advertiser domain such as hubspot.com (Google)"},"platform":{"type":"string","enum":["meta","google","tiktok"],"default":"meta"},"limit":{"type":"integer","default":20}}},"output_fields":["ads"],"billing":{"unit":"per_search","bill_on_no_match":false},"providers":["scrapecreators","apify","adyntel","tikhub"],"live_providers":["apify"],"platforms":["google","meta","tiktok"],"offers":[{"provider":"scrapecreators","mode":"platform_prepaid","provider_status":"ready","executable":false,"wired":true,"verified":false,"platforms":["meta"],"verified_platforms":[],"price":{"amount":"0.0035","currency":"USD","note":"provisional: set from the provider's published rates, measured on first smoke run"},"health":{"status":"unknown","latency_ms_p50":null},"pricing":{"currency":"USD","base":"0.0035","per_result":"0","default_limit":null}},{"provider":"apify","mode":"platform_prepaid","provider_status":"live","executable":true,"wired":true,"verified":true,"platforms":["meta","google"],"verified_platforms":["meta","google"],"price":{"amount":"0.002888","currency":"USD","note":"from $0.002888: varies by platform, see pricing.by_platform; the quote is max(minimum, base + per_result x limit), and run refuses it above max_cost"},"health":{"status":"stable","latency_ms_p50":11643},"pricing":{"currency":"USD","by_platform":{"*":{"base":"0","per_result":"0.00875","minimum":"0.002"},"meta":{"base":"0","per_result":"0.00875","minimum":"0.002"},"google":{"base":"0.000088","per_result":"0.0028","minimum":"0.002"}}}},{"provider":"adyntel","mode":"platform_prepaid","provider_status":"planned","executable":false,"wired":false,"verified":false,"platforms":[],"verified_platforms":[],"price":{"amount":"0.01","currency":"USD","note":"placeholder until this provider's adapter and terms exist"},"health":{"status":"unknown","latency_ms_p50":null}},{"provider":"tikhub","mode":"platform_prepaid","provider_status":"ready","executable":false,"wired":true,"verified":false,"platforms":["tiktok"],"verified_platforms":[],"price":{"amount":"0.002625","currency":"USD","note":"provisional: set from the provider's published rates, measured on first smoke run"},"health":{"status":"unknown","latency_ms_p50":null},"pricing":{"currency":"USD","base":"0.002625","per_result":"0","default_limit":null}}],"starting_price":{"amount":"0.002888","currency":"USD"},"waterfall":{"providers":["apify"],"max_cost_for_all":{"amount":"0.002888","currency":"USD"},"note":"A miss is not charged: with max_cost at max_cost_for_all, each provider in turn tries until one finds, and you pay that one provider's price only when it finds. Prices are for one result or call; a larger limit quotes more."},"hints":["Use provider=\"auto\" for capabilities unless you deliberately need one provider. Pinning a provider disables cross-provider fallback even when allow_fallback=true. max_cost must cover each alternative’s full input-specific quote; a cheapest-route cap can exclude fallback."]},{"capability":"person.enrich","title":"Person enrichment","category":"enrichment","status":"live","sandbox":true,"description":"Full professional profile from a public LinkedIn profile URL or a work email: name, headline, about, location and the complete role history.","input_schema":{"type":"object","properties":{"profile_url":{"type":"string","description":"Public LinkedIn profile URL (https://www.linkedin.com/in/<name>); required on the Apify route, accepted on Apollo"},"email":{"type":"string","description":"Work email; served by the Apollo route only, so max_cost must cover its price"}}},"output_fields":["person","role_history","company"],"billing":{"unit":"per_match","bill_on_no_match":false},"providers":["apify","apollo","hunter","peopledatalabs","crustdata","scrapin","coresignal"],"live_providers":["apify","apollo"],"platforms":[],"offers":[{"provider":"apify","mode":"platform_prepaid","provider_status":"live","executable":true,"wired":true,"verified":true,"platforms":[],"verified_platforms":["*"],"price":{"amount":"0.007","currency":"USD","note":"from $0.007: varies by platform, see pricing.by_platform; the quote is max(minimum, base + per_result x limit), and run refuses it above max_cost"},"health":{"status":"stable","latency_ms_p50":6385},"pricing":{"currency":"USD","by_platform":{"*":{"base":"0","per_result":"0.007","minimum":"0.002"}}}},{"provider":"apollo","mode":"platform_prepaid","provider_status":"live","executable":true,"wired":true,"verified":true,"platforms":[],"verified_platforms":["*"],"price":{"amount":"0.042","currency":"USD","note":"measured margin over provider cost"},"health":{"status":"stable","latency_ms_p50":489},"pricing":{"currency":"USD","base":"0.042","per_result":"0","default_limit":null}},{"provider":"hunter","mode":"platform_prepaid","provider_status":"ready","executable":false,"wired":true,"verified":true,"platforms":[],"verified_platforms":["*"],"price":{"amount":"0.00525","currency":"USD","note":"measured margin over provider cost"},"health":{"status":"unknown","latency_ms_p50":null},"pricing":{"currency":"USD","base":"0.00525","per_result":"0","default_limit":null}},{"provider":"peopledatalabs","mode":"platform_prepaid","provider_status":"planned","executable":false,"wired":false,"verified":false,"platforms":[],"verified_platforms":[],"price":{"amount":"0.04","currency":"USD","note":"placeholder until this provider's adapter and terms exist"},"health":{"status":"unknown","latency_ms_p50":null}},{"provider":"crustdata","mode":"platform_prepaid","provider_status":"planned","executable":false,"wired":false,"verified":false,"platforms":[],"verified_platforms":[],"price":{"amount":"0.035","currency":"USD","note":"placeholder until this provider's adapter and terms exist"},"health":{"status":"unknown","latency_ms_p50":null}},{"provider":"scrapin","mode":"platform_prepaid","provider_status":"planned","executable":false,"wired":false,"verified":false,"platforms":[],"verified_platforms":[],"price":{"amount":"0.03","currency":"USD","note":"placeholder until this provider's adapter and terms exist"},"health":{"status":"unknown","latency_ms_p50":null}},{"provider":"coresignal","mode":"platform_prepaid","provider_status":"planned","executable":false,"wired":false,"verified":false,"platforms":[],"verified_platforms":[],"price":{"amount":"0.025","currency":"USD","note":"placeholder until this provider's adapter and terms exist"},"health":{"status":"unknown","latency_ms_p50":null}}],"starting_price":{"amount":"0.007","currency":"USD"},"waterfall":{"providers":["apify","apollo"],"max_cost_for_all":{"amount":"0.042","currency":"USD"},"note":"A miss is not charged: with max_cost at max_cost_for_all, each provider in turn tries until one finds, and you pay that one provider's price only when it finds."},"hints":["Use provider=\"auto\" for capabilities unless you deliberately need one provider. Pinning a provider disables cross-provider fallback even when allow_fallback=true. max_cost must cover each alternative’s full input-specific quote; a cheapest-route cap can exclude fallback."]},{"capability":"contact.phone","title":"Phone number lookup","category":"enrichment","status":"live","sandbox":true,"description":"Mobile or direct number for a professional contact from a work email or a LinkedIn profile URL, tried on up to three providers in turn; charged only when found.","input_schema":{"type":"object","properties":{"email":{"type":"string","description":"Work email"},"profile_url":{"type":"string","description":"LinkedIn profile URL"}}},"output_fields":["phone","type","confidence"],"billing":{"unit":"per_match","bill_on_no_match":false,"note":"Charged only when a number comes back, at the price of the provider that found it; a miss is free and moves to the next provider. Set max_cost to the dearest provider you accept, or the waterfall stops before it."},"providers":["leadmagic","apollo","findymail","lusha","kaspr"],"live_providers":["leadmagic","apollo","findymail"],"platforms":[],"offers":[{"provider":"leadmagic","mode":"platform_prepaid","provider_status":"live","executable":true,"wired":true,"verified":true,"platforms":[],"verified_platforms":["*"],"price":{"amount":"0.21875","currency":"USD","note":"measured margin over provider cost"},"health":{"status":"stable","latency_ms_p50":2640},"pricing":{"currency":"USD","base":"0.21875","per_result":"0","default_limit":null}},{"provider":"apollo","mode":"platform_prepaid","provider_status":"live","executable":true,"wired":true,"verified":true,"platforms":[],"verified_platforms":["*"],"price":{"amount":"0.378","currency":"USD","note":"measured margin over provider cost"},"health":{"status":"degraded","latency_ms_p50":3265},"pricing":{"currency":"USD","base":"0.378","per_result":"0","default_limit":null}},{"provider":"findymail","mode":"platform_prepaid","provider_status":"live","executable":true,"wired":true,"verified":false,"platforms":[],"verified_platforms":[],"price":{"amount":"0.8575","currency":"USD","note":"provisional: set from the provider's published rates, measured on first smoke run"},"health":{"status":"stable","latency_ms_p50":8466},"pricing":{"currency":"USD","base":"0.8575","per_result":"0","default_limit":null}},{"provider":"lusha","mode":"platform_prepaid","provider_status":"planned","executable":false,"wired":false,"verified":false,"platforms":[],"verified_platforms":[],"price":{"amount":"0.12","currency":"USD","note":"placeholder until this provider's adapter and terms exist"},"health":{"status":"unknown","latency_ms_p50":null}},{"provider":"kaspr","mode":"platform_prepaid","provider_status":"planned","executable":false,"wired":false,"verified":false,"platforms":[],"verified_platforms":[],"price":{"amount":"0.11","currency":"USD","note":"placeholder until this provider's adapter and terms exist"},"health":{"status":"unknown","latency_ms_p50":null}}],"starting_price":{"amount":"0.21875","currency":"USD"},"waterfall":{"providers":["leadmagic","apollo","findymail"],"max_cost_for_all":{"amount":"0.8575","currency":"USD"},"note":"A miss is not charged: with max_cost at max_cost_for_all, each provider in turn tries until one finds, and you pay that one provider's price only when it finds."},"hints":["Use provider=\"auto\" for capabilities unless you deliberately need one provider. Pinning a provider disables cross-provider fallback even when allow_fallback=true. max_cost must cover each alternative’s full input-specific quote; a cheapest-route cap can exclude fallback."]},{"capability":"ads.spend_estimate","title":"Ad spend estimate","category":"ads","status":"coming_soon","sandbox":false,"description":"Estimated advertising budget for a domain across networks.","input_schema":{"type":"object","required":["domain"],"properties":{"domain":{"type":"string"}}},"output_fields":["domain","estimated_monthly_spend","networks"],"billing":{"unit":"per_lookup","bill_on_no_match":false},"providers":["adyntel"],"live_providers":[],"platforms":[],"offers":[{"provider":"adyntel","mode":"platform_prepaid","provider_status":"planned","executable":false,"wired":false,"verified":false,"platforms":[],"verified_platforms":[],"price":{"amount":"0.008","currency":"USD","note":"placeholder until this provider's adapter and terms exist"},"health":{"status":"unknown","latency_ms_p50":null}}],"starting_price":{"amount":"0.008","currency":"USD"},"waterfall":null,"hints":["Use provider=\"auto\" for capabilities unless you deliberately need one provider. Pinning a provider disables cross-provider fallback even when allow_fallback=true. max_cost must cover each alternative’s full input-specific quote; a cheapest-route cap can exclude fallback."]},{"capability":"web.search","title":"Agent web search","category":"web","status":"live","sandbox":true,"description":"Semantic or keyword web search returning sources an agent can cite.","input_schema":{"type":"object","required":["query"],"properties":{"query":{"type":"string","description":"Search words. site:, after: and before: in the query are read as include_domains, start_date and end_date."},"limit":{"type":"integer"},"include_domains":{"type":"array","items":{"type":"string"},"description":"Only results on these domains or their subdomains (ssc.spaceforce.mil, diu.mil), up to 10. Results elsewhere are removed whichever provider answers."},"start_date":{"type":"string","description":"YYYY-MM-DD. Results dated before it are removed; undated results are kept and counted in filters.kept_undated."},"end_date":{"type":"string","description":"YYYY-MM-DD. Results dated after it are removed."}}},"output_fields":["query","results","filters"],"billing":{"unit":"per_search","bill_on_no_match":false,"note":"Priced per search, whatever the limit. With include_domains or dates, a provider whose results all fall outside them is a free miss and the next provider runs; the result's filters block says what was removed. To locate a named person or their email, call person.enrich (a profile URL) or contact.find (name plus company domain), not a name query here: a search returns pages, never an email."},"providers":["dataforseo","firecrawl","exa","tavily","brave","apify"],"live_providers":["dataforseo","firecrawl","apify"],"platforms":[],"offers":[{"provider":"dataforseo","mode":"platform_prepaid","provider_status":"live","executable":true,"wired":true,"verified":true,"platforms":[],"verified_platforms":["*"],"price":{"amount":"0.0035","currency":"USD","note":"measured margin over provider cost"},"health":{"status":"degraded","latency_ms_p50":5095},"pricing":{"currency":"USD","base":"0.0035","per_result":"0","default_limit":10}},{"provider":"firecrawl","mode":"platform_prepaid","provider_status":"live","executable":true,"wired":true,"verified":true,"platforms":[],"verified_platforms":["*"],"price":{"amount":"0.0112","currency":"USD","note":"measured margin over provider cost"},"health":{"status":"stable","latency_ms_p50":943},"pricing":{"currency":"USD","base":"0.0112","per_result":"0","default_limit":null}},{"provider":"exa","mode":"platform_prepaid","provider_status":"ready","executable":false,"wired":true,"verified":false,"platforms":[],"verified_platforms":[],"price":{"amount":"0.0105","currency":"USD","note":"provisional: set from the provider's published rates, measured on first smoke run; the quote is base + per_result x limit (default limit 1)"},"health":{"status":"unknown","latency_ms_p50":null},"pricing":{"currency":"USD","base":"0.00875","per_result":"0.00175","default_limit":null}},{"provider":"tavily","mode":"platform_prepaid","provider_status":"planned","executable":false,"wired":false,"verified":false,"platforms":[],"verified_platforms":[],"price":{"amount":"0.008","currency":"USD","note":"placeholder until this provider's adapter and terms exist"},"health":{"status":"unknown","latency_ms_p50":null}},{"provider":"brave","mode":"platform_prepaid","provider_status":"planned","executable":false,"wired":false,"verified":false,"platforms":[],"verified_platforms":[],"price":{"amount":"0.005","currency":"USD","note":"placeholder until this provider's adapter and terms exist"},"health":{"status":"unknown","latency_ms_p50":null}},{"provider":"apify","mode":"platform_prepaid","provider_status":"live","executable":true,"wired":true,"verified":true,"platforms":[],"verified_platforms":["*"],"price":{"amount":"0.006125","currency":"USD","note":"from $0.006125: varies by platform, see pricing.by_platform; the quote is max(minimum, base + per_result x limit), and run refuses it above max_cost"},"health":{"status":"stable","latency_ms_p50":28143},"pricing":{"currency":"USD","by_platform":{"*":{"base":"0.006125","per_result":"0","minimum":"0.002"}}}}],"starting_price":{"amount":"0.0035","currency":"USD"},"waterfall":{"providers":["dataforseo","apify","firecrawl"],"max_cost_for_all":{"amount":"0.0112","currency":"USD"},"note":"A miss is not charged: with max_cost at max_cost_for_all, each provider in turn tries until one finds, and you pay that one provider's price only when it finds. Prices are for one result or call; a larger limit quotes more."},"hints":["Use provider=\"auto\" for capabilities unless you deliberately need one provider. Pinning a provider disables cross-provider fallback even when allow_fallback=true. max_cost must cover each alternative’s full input-specific quote; a cheapest-route cap can exclude fallback."]},{"capability":"creative.image","title":"Image generation","category":"creative","status":"live","sandbox":false,"description":"Ad creatives, social visuals and thumbnails from a text prompt.","input_schema":{"type":"object","required":["prompt"],"properties":{"prompt":{"type":"string"},"aspect_ratio":{"type":"string","enum":["1:1","16:9","9:16","4:3","3:4"],"default":"1:1"},"model":{"type":"string","enum":["flux-schnell","flux-pro","flux-pro-ultra","nano-banana","recraft-v3"],"default":"flux-schnell","description":"flux-schnell $0.00525 (fast drafts, per megapixel), flux-pro $0.07, flux-pro-ultra $0.105 (up to 4MP), nano-banana $0.06825 (Google; strong text rendering), recraft-v3 $0.07 ($0.14 in vector styles; brand illustration); per image, times count"},"style":{"type":"string","enum":["realistic_image","digital_illustration","vector_illustration"],"description":"recraft-v3 only"},"count":{"type":"integer","default":1,"description":"1 to 4 images"}}},"output_fields":["prompt","model","images"],"billing":{"unit":"per_image","bill_on_no_match":false,"note":"Priced per image by model. Image URLs are temporary; store what you keep."},"providers":["fal"],"live_providers":["fal"],"platforms":["flux-pro","flux-pro-ultra","flux-schnell","nano-banana","recraft-v3"],"offers":[{"provider":"fal","mode":"platform_prepaid","provider_status":"live","executable":true,"wired":true,"verified":true,"platforms":["flux-schnell","flux-pro","flux-pro-ultra","nano-banana","recraft-v3"],"verified_platforms":["flux-schnell","flux-pro","flux-pro-ultra","nano-banana","recraft-v3"],"price":{"amount":"0.00525","currency":"USD","note":"measured margin over provider cost; the quote is base + per_result x limit (default limit 1)"},"health":{"status":"stable","latency_ms_p50":4877},"pricing":{"currency":"USD","base":"0","per_result":"0.00525","default_limit":1}}],"starting_price":{"amount":"0.00525","currency":"USD"},"waterfall":{"providers":["fal"],"max_cost_for_all":{"amount":"0.00525","currency":"USD"},"note":"A miss is not charged: with max_cost at max_cost_for_all, each provider in turn tries until one finds, and you pay that one provider's price only when it finds."},"hints":["Use provider=\"auto\" for capabilities unless you deliberately need one provider. Pinning a provider disables cross-provider fallback even when allow_fallback=true. max_cost must cover each alternative’s full input-specific quote; a cheapest-route cap can exclude fallback."]},{"capability":"creative.image_edit","title":"Image edit","category":"creative","status":"live","sandbox":false,"description":"Edit an existing image with a text instruction: swap backgrounds, change products, restyle, add or remove elements.","input_schema":{"type":"object","required":["prompt","image_url"],"properties":{"prompt":{"type":"string","description":"The edit instruction"},"image_url":{"type":"string","description":"Public URL of the source image"},"model":{"type":"string","enum":["nano-banana-edit","flux-kontext"],"default":"nano-banana-edit","description":"nano-banana-edit (Google) $0.06825 or flux-kontext (Black Forest Labs) $0.07, per output image"},"count":{"type":"integer","default":1,"description":"1 to 4 variations"}}},"output_fields":["prompt","model","images"],"billing":{"unit":"per_image","bill_on_no_match":false,"note":"Priced per output image. Image URLs are temporary; store what you keep."},"providers":["fal"],"live_providers":["fal"],"platforms":["flux-kontext","nano-banana-edit"],"offers":[{"provider":"fal","mode":"platform_prepaid","provider_status":"live","executable":true,"wired":true,"verified":true,"platforms":["nano-banana-edit","flux-kontext"],"verified_platforms":["nano-banana-edit","flux-kontext"],"price":{"amount":"0.06825","currency":"USD","note":"measured margin over provider cost; the quote is base + per_result x limit (default limit 1)"},"health":{"status":"stable","latency_ms_p50":9158},"pricing":{"currency":"USD","base":"0","per_result":"0.06825","default_limit":1}}],"starting_price":{"amount":"0.06825","currency":"USD"},"waterfall":{"providers":["fal"],"max_cost_for_all":{"amount":"0.06825","currency":"USD"},"note":"A miss is not charged: with max_cost at max_cost_for_all, each provider in turn tries until one finds, and you pay that one provider's price only when it finds."},"hints":["Use provider=\"auto\" for capabilities unless you deliberately need one provider. Pinning a provider disables cross-provider fallback even when allow_fallback=true. max_cost must cover each alternative’s full input-specific quote; a cheapest-route cap can exclude fallback."]},{"capability":"creative.upscale","title":"Image upscale","category":"creative","status":"live","sandbox":false,"description":"Upscale an image 2x or 4x with detail enhancement, for print, hero images and ad placements.","input_schema":{"type":"object","required":["image_url"],"properties":{"image_url":{"type":"string","description":"Public URL of the source image"},"upscale_factor":{"type":"integer","enum":[2,4],"default":2}}},"output_fields":["model","image"],"billing":{"unit":"per_image","bill_on_no_match":false,"note":"2x $0.21, 4x $0.84, quoted for a source of about 1 megapixel; the provider bills per output megapixel, so a larger source settles above the quote. If the provider's actual cost overruns the estimate, the run bills the overrun at the same per-call rate, capped by the hold."},"providers":["fal"],"live_providers":["fal"],"platforms":[],"offers":[{"provider":"fal","mode":"platform_prepaid","provider_status":"live","executable":true,"wired":true,"verified":true,"platforms":[],"verified_platforms":["*"],"price":{"amount":"0.21","currency":"USD","note":"measured margin over provider cost"},"health":{"status":"unknown","latency_ms_p50":null},"pricing":{"currency":"USD","base":"0.21","per_result":"0","default_limit":null}}],"starting_price":{"amount":"0.21","currency":"USD"},"waterfall":{"providers":["fal"],"max_cost_for_all":{"amount":"0.21","currency":"USD"},"note":"A miss is not charged: with max_cost at max_cost_for_all, each provider in turn tries until one finds, and you pay that one provider's price only when it finds."},"hints":["Use provider=\"auto\" for capabilities unless you deliberately need one provider. Pinning a provider disables cross-provider fallback even when allow_fallback=true. max_cost must cover each alternative’s full input-specific quote; a cheapest-route cap can exclude fallback."]},{"capability":"creative.remove_background","title":"Background removal","category":"creative","status":"live","sandbox":false,"description":"Cut a subject out of its background: a transparent PNG for product shots, ads and thumbnails.","input_schema":{"type":"object","required":["image_url"],"properties":{"image_url":{"type":"string","description":"Public URL of the source image"}}},"output_fields":["model","image"],"billing":{"unit":"per_image","bill_on_no_match":false,"note":"Flat per image. Output is a PNG with alpha, up to 1024 pixels on the long side."},"providers":["fal"],"live_providers":["fal"],"platforms":[],"offers":[{"provider":"fal","mode":"platform_prepaid","provider_status":"live","executable":true,"wired":true,"verified":true,"platforms":[],"verified_platforms":["*"],"price":{"amount":"0.0315","currency":"USD","note":"measured margin over provider cost"},"health":{"status":"unknown","latency_ms_p50":null},"pricing":{"currency":"USD","base":"0.0315","per_result":"0","default_limit":null}}],"starting_price":{"amount":"0.0315","currency":"USD"},"waterfall":{"providers":["fal"],"max_cost_for_all":{"amount":"0.0315","currency":"USD"},"note":"A miss is not charged: with max_cost at max_cost_for_all, each provider in turn tries until one finds, and you pay that one provider's price only when it finds."},"hints":["Use provider=\"auto\" for capabilities unless you deliberately need one provider. Pinning a provider disables cross-provider fallback even when allow_fallback=true. max_cost must cover each alternative’s full input-specific quote; a cheapest-route cap can exclude fallback."]},{"capability":"creative.video","title":"Video generation","category":"creative","status":"live","sandbox":false,"description":"Short-form video for content and ads, from a prompt or a source image.","input_schema":{"type":"object","required":["prompt"],"properties":{"prompt":{"type":"string"},"image_url":{"type":"string","description":"Optional public image to animate (image-to-video)"},"duration_seconds":{"type":"integer","default":6,"description":"Snapped to the model's options: hailuo-02 6 or 10, kling-2.5 and kling-2.1 5 or 10, wan-2.2 5, veo3 and veo3-fast 4, 6 or 8"},"aspect_ratio":{"type":"string","enum":["16:9","9:16","1:1"],"default":"16:9","description":"Text-to-video on kling, wan and veo3 (veo3: 16:9 or 9:16); image-to-video follows the image"},"audio":{"type":"boolean","default":false,"description":"veo3 and veo3-fast only: generate a soundtrack and speech"},"model":{"type":"string","enum":["hailuo-02","kling-2.5","kling-2.1","wan-2.2","veo3-fast","veo3"],"default":"hailuo-02","description":"per second of output: hailuo-02 $0.07875, kling-2.5 $0.1225, wan-2.2 $0.14, kling-2.1 $0.49; veo3-fast $0.4375 ($0.70 with audio) from a prompt, $0.175 ($0.2625 with audio) from an image; veo3 $0.875 ($1.3125 with audio) from a prompt, $0.35 ($0.70 with audio) from an image; the quote is the rate times the snapped duration (hailuo-02 at 6 s: $0.4725)"}}},"output_fields":["model","video"],"billing":{"unit":"per_video","bill_on_no_match":false,"note":"Priced per second of output by model (hailuo-02 $0.07875/s up to veo3 $1.3125/s with audio), times the duration after snapping to the model's options: the default hailuo-02 6-second clip quotes $0.4725. Veo 3 from an image (image_url) costs less than from a prompt: veo3 $0.35/s ($0.70 with audio), veo3-fast $0.175/s ($0.2625 with audio). The quote is reserved before execution and shown on the submit receipt. Image-to-video keeps the source image's aspect ratio. Generation takes 1 to 4 minutes. If the provider's actual cost overruns the estimate, the run bills the overrun at the same per-call rate, capped by the hold."},"providers":["fal"],"live_providers":["fal"],"platforms":["hailuo-02","kling-2.1","kling-2.5","veo3","veo3-fast","wan-2.2"],"offers":[{"provider":"fal","mode":"platform_prepaid","provider_status":"live","executable":true,"wired":true,"verified":true,"platforms":["hailuo-02","kling-2.5","kling-2.1","wan-2.2","veo3-fast","veo3"],"verified_platforms":["hailuo-02","kling-2.5","kling-2.1","wan-2.2","veo3-fast","veo3"],"price":{"amount":"0.07875","currency":"USD","note":"measured margin over provider cost; the quote is base + per_result x limit (default limit 1)"},"health":{"status":"unknown","latency_ms_p50":68020},"pricing":{"currency":"USD","base":"0","per_result":"0.07875","default_limit":null}}],"starting_price":{"amount":"0.07875","currency":"USD"},"waterfall":{"providers":["fal"],"max_cost_for_all":{"amount":"0.07875","currency":"USD"},"note":"A miss is not charged: with max_cost at max_cost_for_all, each provider in turn tries until one finds, and you pay that one provider's price only when it finds."},"hints":["Use provider=\"auto\" for capabilities unless you deliberately need one provider. Pinning a provider disables cross-provider fallback even when allow_fallback=true. max_cost must cover each alternative’s full input-specific quote; a cheapest-route cap can exclude fallback."]},{"capability":"creative.speech","title":"Voiceover","category":"creative","status":"live","sandbox":false,"description":"Turn a script into a natural voiceover for ads, product videos and prospect films, with ElevenLabs voices.","input_schema":{"type":"object","required":["text"],"properties":{"text":{"type":"string","description":"The script to speak, up to 5,000 characters per call"},"voice":{"type":"string","description":"A voice name: Aria, Roger, Sarah, Laura, Charlie, George, Callum, River, Liam, Charlotte, Alice, Matilda, Will, Jessica, Eric, Chris, Brian, Daniel, Lily or Bill. Omit for the model's default voice."},"model":{"type":"string","enum":["eleven-turbo","eleven-v3"],"default":"eleven-turbo","description":"per 1,000 characters: eleven-turbo $0.0875 (fast, takes speed), eleven-v3 $0.175 (most expressive)"},"language":{"type":"string","description":"Two-letter ISO 639-1 code to force the language, for example en or fr. Omit to let the model detect it."},"speed":{"type":"number","description":"eleven-turbo only: 0.7 (slower) to 1.2 (faster), default 1"},"stability":{"type":"number","description":"0 (more expressive) to 1 (more even), default 0.5"},"timestamps":{"type":"boolean","default":false,"description":"Return per-word timings, for captions synced to the voice"}}},"output_fields":["model","characters","audio","timestamps"],"billing":{"unit":"per_1k_characters","bill_on_no_match":false,"note":"Priced by the length of the text, pro rata: eleven-turbo $0.0875 per 1,000 characters, eleven-v3 $0.175. A 600-character script (about 40 seconds of speech) quotes $0.0525 on eleven-turbo. The exact quote is reserved before execution. The audio URL is temporary; store what you keep."},"providers":["fal"],"live_providers":["fal"],"platforms":["eleven-turbo","eleven-v3"],"offers":[{"provider":"fal","mode":"platform_prepaid","provider_status":"live","executable":true,"wired":true,"verified":true,"platforms":["eleven-turbo","eleven-v3"],"verified_platforms":["eleven-turbo","eleven-v3"],"price":{"amount":"0.0875","currency":"USD","note":"measured margin over provider cost; the quote is base + per_result x limit (default limit 1)"},"health":{"status":"unknown","latency_ms_p50":2366},"pricing":{"currency":"USD","base":"0","per_result":"0.0875","default_limit":null}}],"starting_price":{"amount":"0.0875","currency":"USD"},"waterfall":{"providers":["fal"],"max_cost_for_all":{"amount":"0.0875","currency":"USD"},"note":"A miss is not charged: with max_cost at max_cost_for_all, each provider in turn tries until one finds, and you pay that one provider's price only when it finds."},"hints":["Use provider=\"auto\" for capabilities unless you deliberately need one provider. Pinning a provider disables cross-provider fallback even when allow_fallback=true. max_cost must cover each alternative’s full input-specific quote; a cheapest-route cap can exclude fallback."]},{"capability":"web.scrape","title":"Website scrape","category":"web","status":"live","sandbox":true,"description":"Clean markdown of a page or site for agent context.","input_schema":{"type":"object","required":["url"],"properties":{"url":{"type":"string"}}},"output_fields":["url","title","markdown"],"billing":{"unit":"per_page","bill_on_no_match":false},"providers":["firecrawl","apify"],"live_providers":["firecrawl","apify"],"platforms":[],"offers":[{"provider":"firecrawl","mode":"platform_prepaid","provider_status":"live","executable":true,"wired":true,"verified":true,"platforms":[],"verified_platforms":["*"],"price":{"amount":"0.0056","currency":"USD","note":"measured margin over provider cost"},"health":{"status":"healthy","latency_ms_p50":1684},"pricing":{"currency":"USD","base":"0.0056","per_result":"0","default_limit":null}},{"provider":"apify","mode":"platform_prepaid","provider_status":"live","executable":true,"wired":true,"verified":true,"platforms":[],"verified_platforms":["*"],"price":{"amount":"0.0175","currency":"USD","note":"from $0.0175: varies by platform, see pricing.by_platform; the quote is max(minimum, base + per_result x limit), and run refuses it above max_cost"},"health":{"status":"stable","latency_ms_p50":7465},"pricing":{"currency":"USD","by_platform":{"*":{"base":"0.0175","per_result":"0","minimum":"0.002"}}}}],"starting_price":{"amount":"0.0056","currency":"USD"},"waterfall":{"providers":["firecrawl","apify"],"max_cost_for_all":{"amount":"0.0175","currency":"USD"},"note":"A miss is not charged: with max_cost at max_cost_for_all, each provider in turn tries until one finds, and you pay that one provider's price only when it finds. Prices are for one result or call; a larger limit quotes more."},"hints":["Use provider=\"auto\" for capabilities unless you deliberately need one provider. Pinning a provider disables cross-provider fallback even when allow_fallback=true. max_cost must cover each alternative’s full input-specific quote; a cheapest-route cap can exclude fallback."]},{"capability":"web.extract","title":"Page to records","category":"web","status":"live","sandbox":true,"description":"One page in, dated records out: a leadership page, an official bio, an org chart, a press release or a job listing extracted against a template (or your own JSON schema), each record with the sentence on the page that supports it, the page date and the source URL. Watch-friendly: records key on the person or posting, so a weekly refresh reports who joined, left or changed title.","input_schema":{"type":"object","required":["url"],"properties":{"url":{"type":"string","description":"Absolute URL of the page"},"template":{"type":"string","enum":["leadership_page","official_bio","org_chart","press_release","job_posting"],"description":"What kind of page it is; decides the record shape"},"schema":{"type":"object","description":"Your own JSON schema (type: object) instead of a template; put the list under a `records` array so watches can diff it"},"prompt":{"type":"string","description":"Extra guidance for the extractor; the template carries a default"}}},"output_fields":["url","title","template","page_date","records","markdown"],"billing":{"unit":"per_page","bill_on_no_match":false,"note":"Priced per page at the extraction rate, about five times a plain scrape. A page that yields no records is a miss and releases the hold. Every record carries source_url, source_date (the page date when stated) and evidence_text, the line on the page behind it."},"providers":["firecrawl"],"live_providers":["firecrawl"],"platforms":[],"offers":[{"provider":"firecrawl","mode":"platform_prepaid","provider_status":"live","executable":true,"wired":true,"verified":true,"platforms":[],"verified_platforms":["*"],"price":{"amount":"0.028","currency":"USD","note":"measured margin over provider cost"},"health":{"status":"stable","latency_ms_p50":4636},"pricing":{"currency":"USD","base":"0.028","per_result":"0","default_limit":null}}],"starting_price":{"amount":"0.028","currency":"USD"},"waterfall":{"providers":["firecrawl"],"max_cost_for_all":{"amount":"0.028","currency":"USD"},"note":"A miss is not charged: with max_cost at max_cost_for_all, each provider in turn tries until one finds, and you pay that one provider's price only when it finds. Prices are for one result or call; a larger limit quotes more."},"hints":["Use provider=\"auto\" for capabilities unless you deliberately need one provider. Pinning a provider disables cross-provider fallback even when allow_fallback=true. max_cost must cover each alternative’s full input-specific quote; a cheapest-route cap can exclude fallback."]},{"capability":"seo.domain_overview","title":"Domain organic overview","category":"seo","status":"live","sandbox":true,"description":"Organic and paid footprint of a domain: ranking keywords, estimated traffic and its value, top-3 and top-10 counts.","input_schema":{"type":"object","required":["domain"],"properties":{"domain":{"type":"string"},"location":{"type":"string","description":"City and country (\"Lisbon, Portugal\"), a country (\"France\") or a DataForSEO location code; default United States"},"language":{"type":"string"}}},"output_fields":["domain","organic","paid"],"billing":{"unit":"per_lookup","bill_on_no_match":false},"providers":["dataforseo"],"live_providers":["dataforseo"],"platforms":[],"offers":[{"provider":"dataforseo","mode":"platform_prepaid","provider_status":"live","executable":true,"wired":true,"verified":true,"platforms":[],"verified_platforms":["*"],"price":{"amount":"0.021","currency":"USD","note":"measured margin over provider cost"},"health":{"status":"stable","latency_ms_p50":163},"pricing":{"currency":"USD","base":"0.021","per_result":"0","default_limit":null}}],"starting_price":{"amount":"0.021","currency":"USD"},"waterfall":{"providers":["dataforseo"],"max_cost_for_all":{"amount":"0.021","currency":"USD"},"note":"A miss is not charged: with max_cost at max_cost_for_all, each provider in turn tries until one finds, and you pay that one provider's price only when it finds."},"hints":["Use provider=\"auto\" for capabilities unless you deliberately need one provider. Pinning a provider disables cross-provider fallback even when allow_fallback=true. max_cost must cover each alternative’s full input-specific quote; a cheapest-route cap can exclude fallback."]},{"capability":"seo.ranked_keywords","title":"Keywords a domain ranks for","category":"seo","status":"live","sandbox":true,"description":"The keywords a domain ranks for on Google, with position, volume, CPC and estimated traffic per keyword.","input_schema":{"type":"object","required":["domain"],"properties":{"domain":{"type":"string"},"location":{"type":"string","description":"City and country (\"Lisbon, Portugal\"), a country (\"France\") or a DataForSEO location code; default United States"},"language":{"type":"string"},"limit":{"type":"integer","default":20}}},"output_fields":["domain","total","keywords"],"billing":{"unit":"per_search","bill_on_no_match":false,"note":"Priced per search plus a small per-keyword amount, scaling with limit (default 20). The exact quote is reserved before execution. If the provider's actual cost overruns the estimate, the run bills the overrun at the same per-call rate, capped by the hold."},"providers":["dataforseo"],"live_providers":["dataforseo"],"platforms":[],"offers":[{"provider":"dataforseo","mode":"platform_prepaid","provider_status":"live","executable":true,"wired":true,"verified":true,"platforms":[],"verified_platforms":["*"],"price":{"amount":"0.02121","currency":"USD","note":"measured margin over provider cost; the quote is base + per_result x limit (default limit 20)"},"health":{"status":"stable","latency_ms_p50":491},"pricing":{"currency":"USD","base":"0.021","per_result":"0.00021","default_limit":20}}],"starting_price":{"amount":"0.02121","currency":"USD"},"waterfall":{"providers":["dataforseo"],"max_cost_for_all":{"amount":"0.02121","currency":"USD"},"note":"A miss is not charged: with max_cost at max_cost_for_all, each provider in turn tries until one finds, and you pay that one provider's price only when it finds. Prices are for one result or call; a larger limit quotes more."},"hints":["Use provider=\"auto\" for capabilities unless you deliberately need one provider. Pinning a provider disables cross-provider fallback even when allow_fallback=true. max_cost must cover each alternative’s full input-specific quote; a cheapest-route cap can exclude fallback."]},{"capability":"seo.competitors","title":"Organic competitors","category":"seo","status":"live","sandbox":true,"description":"Domains competing for the same Google keywords, with shared-keyword counts, average position and their organic footprint.","input_schema":{"type":"object","required":["domain"],"properties":{"domain":{"type":"string"},"location":{"type":"string","description":"City and country (\"Lisbon, Portugal\"), a country (\"France\") or a DataForSEO location code; default United States"},"language":{"type":"string"},"limit":{"type":"integer","default":10}}},"output_fields":["domain","competitors"],"billing":{"unit":"per_search","bill_on_no_match":false,"note":"Priced per search plus a small per-row amount, scaling with limit (default 10). The provider counts the domain itself as one row, so a search is limit + 1 rows."},"providers":["dataforseo"],"live_providers":["dataforseo"],"platforms":[],"offers":[{"provider":"dataforseo","mode":"platform_prepaid","provider_status":"live","executable":true,"wired":true,"verified":true,"platforms":[],"verified_platforms":["*"],"price":{"amount":"0.02142","currency":"USD","note":"measured margin over provider cost; the quote is base + per_result x limit (default limit 10)"},"health":{"status":"stable","latency_ms_p50":449},"pricing":{"currency":"USD","base":"0.021","per_result":"0.00021","default_limit":10}}],"starting_price":{"amount":"0.02142","currency":"USD"},"waterfall":{"providers":["dataforseo"],"max_cost_for_all":{"amount":"0.02142","currency":"USD"},"note":"A miss is not charged: with max_cost at max_cost_for_all, each provider in turn tries until one finds, and you pay that one provider's price only when it finds. Prices are for one result or call; a larger limit quotes more."},"hints":["Use provider=\"auto\" for capabilities unless you deliberately need one provider. Pinning a provider disables cross-provider fallback even when allow_fallback=true. max_cost must cover each alternative’s full input-specific quote; a cheapest-route cap can exclude fallback."]},{"capability":"seo.page_audit","title":"On-page audit","category":"seo","status":"live","sandbox":true,"description":"Instant on-page audit of one URL: status, title, description, headings, links, timing, on-page score and the failing checks.","input_schema":{"type":"object","required":["url"],"properties":{"url":{"type":"string","description":"Absolute URL"}}},"output_fields":["url","status_code","score","title","description","h1","links","timing_ms","issues"],"billing":{"unit":"per_page","bill_on_no_match":false},"providers":["dataforseo"],"live_providers":["dataforseo"],"platforms":[],"offers":[{"provider":"dataforseo","mode":"platform_prepaid","provider_status":"live","executable":true,"wired":true,"verified":true,"platforms":[],"verified_platforms":["*"],"price":{"amount":"0.002","currency":"USD","note":"measured margin over provider cost"},"health":{"status":"unknown","latency_ms_p50":2798},"pricing":{"currency":"USD","base":"0.002","per_result":"0","default_limit":null}}],"starting_price":{"amount":"0.002","currency":"USD"},"waterfall":{"providers":["dataforseo"],"max_cost_for_all":{"amount":"0.002","currency":"USD"},"note":"A miss is not charged: with max_cost at max_cost_for_all, each provider in turn tries until one finds, and you pay that one provider's price only when it finds. Prices are for one result or call; a larger limit quotes more."},"hints":["Use provider=\"auto\" for capabilities unless you deliberately need one provider. Pinning a provider disables cross-provider fallback even when allow_fallback=true. max_cost must cover each alternative’s full input-specific quote; a cheapest-route cap can exclude fallback."]},{"capability":"aeo.answer","title":"AI assistant answer","category":"aeo","status":"live","sandbox":true,"description":"What ChatGPT, Claude, Gemini or Perplexity answers for a prompt, with web search on, and every source it cites. The building block of an AI visibility audit.","input_schema":{"type":"object","required":["prompt"],"properties":{"prompt":{"type":"string","description":"The buyer question, up to 500 characters"},"assistant":{"type":"string","enum":["chatgpt","claude","gemini","perplexity"],"default":"chatgpt"},"model":{"type":"string","description":"Optional exact model name; the assistant's current default otherwise"},"location":{"type":"string","description":"Country for the assistant's web search: a two-letter code (US) or a country name; not applied on gemini, whose endpoint refuses it"}}},"output_fields":["prompt","model","answer","sources","source_domains"],"billing":{"unit":"per_answer","bill_on_no_match":false,"note":"Priced per answer, by assistant: perplexity $0.0175, chatgpt $0.07, gemini $0.08925, claude $0.12075 (inspect lists them under pricing.by_platform; set max_cost from the assistant you call). The exact quote is reserved before execution. If the provider's actual cost overruns the estimate, the run bills the overrun at the same per-call rate, capped by the hold."},"providers":["dataforseo"],"live_providers":["dataforseo"],"platforms":["chatgpt","claude","gemini","perplexity"],"offers":[{"provider":"dataforseo","mode":"platform_prepaid","provider_status":"live","executable":true,"wired":true,"verified":true,"platforms":["chatgpt","claude","gemini","perplexity"],"verified_platforms":["chatgpt","claude","gemini","perplexity"],"price":{"amount":"0.0175","currency":"USD","note":"from $0.0175: varies by platform, see pricing.by_platform; the quote is max(minimum, base + per_result x limit), and run refuses it above max_cost"},"health":{"status":"stable","latency_ms_p50":4597},"pricing":{"currency":"USD","by_platform":{"chatgpt":{"base":"0.07","per_result":"0"},"claude":{"base":"0.12075","per_result":"0"},"gemini":{"base":"0.08925","per_result":"0"},"perplexity":{"base":"0.0175","per_result":"0"}}}}],"starting_price":{"amount":"0.0175","currency":"USD"},"waterfall":{"providers":["dataforseo"],"max_cost_for_all":{"amount":"0.0175","currency":"USD"},"note":"A miss is not charged: with max_cost at max_cost_for_all, each provider in turn tries until one finds, and you pay that one provider's price only when it finds."},"hints":["Use provider=\"auto\" for capabilities unless you deliberately need one provider. Pinning a provider disables cross-provider fallback even when allow_fallback=true. max_cost must cover each alternative’s full input-specific quote; a cheapest-route cap can exclude fallback."]},{"capability":"local.places","title":"Google Maps places","category":"local","status":"live","sandbox":true,"description":"Businesses on Google Maps for a query and location: name, category, address, phone, website, rating and review count.","input_schema":{"type":"object","required":["query"],"properties":{"query":{"type":"string","description":"e.g. \"dentist\", \"coworking space\""},"location":{"type":"string","description":"City and country (\"Lisbon, Portugal\"), a country (\"France\") or a DataForSEO location code; default United States"},"language":{"type":"string"},"limit":{"type":"integer","default":20}}},"output_fields":["query","places"],"billing":{"unit":"per_search","bill_on_no_match":false,"note":"Priced per search; the Apify route adds a per-place amount scaling with limit (default 20). The exact quote is reserved before execution. If the provider's actual cost overruns the estimate, the run bills the overrun at the same per-call rate, capped by the hold."},"providers":["dataforseo","apify"],"live_providers":["dataforseo","apify"],"platforms":[],"offers":[{"provider":"dataforseo","mode":"platform_prepaid","provider_status":"live","executable":true,"wired":true,"verified":true,"platforms":[],"verified_platforms":["*"],"price":{"amount":"0.0035","currency":"USD","note":"measured margin over provider cost"},"health":{"status":"stable","latency_ms_p50":10485},"pricing":{"currency":"USD","base":"0.0035","per_result":"0","default_limit":20}},{"provider":"apify","mode":"platform_prepaid","provider_status":"live","executable":true,"wired":true,"verified":true,"platforms":[],"verified_platforms":["*"],"price":{"amount":"0.005338","currency":"USD","note":"from $0.005338: varies by platform, see pricing.by_platform; the quote is max(minimum, base + per_result x limit), and run refuses it above max_cost"},"health":{"status":"unknown","latency_ms_p50":null},"pricing":{"currency":"USD","by_platform":{"*":{"base":"0.000088","per_result":"0.00525","minimum":"0.002"}}}}],"starting_price":{"amount":"0.0035","currency":"USD"},"waterfall":{"providers":["dataforseo","apify"],"max_cost_for_all":{"amount":"0.005338","currency":"USD"},"note":"A miss is not charged: with max_cost at max_cost_for_all, each provider in turn tries until one finds, and you pay that one provider's price only when it finds. Prices are for one result or call; a larger limit quotes more."},"hints":["Use provider=\"auto\" for capabilities unless you deliberately need one provider. Pinning a provider disables cross-provider fallback even when allow_fallback=true. max_cost must cover each alternative’s full input-specific quote; a cheapest-route cap can exclude fallback."]},{"capability":"news.search","title":"News search","category":"news","status":"live","sandbox":true,"description":"Google News articles for a query and location: title, source, snippet, URL and publication time.","input_schema":{"type":"object","required":["query"],"properties":{"query":{"type":"string"},"location":{"type":"string","description":"City and country (\"Lisbon, Portugal\"), a country (\"France\") or a DataForSEO location code; default United States"},"language":{"type":"string"},"limit":{"type":"integer","default":10}}},"output_fields":["query","articles"],"billing":{"unit":"per_search","bill_on_no_match":false},"providers":["dataforseo","firecrawl"],"live_providers":["dataforseo","firecrawl"],"platforms":[],"offers":[{"provider":"dataforseo","mode":"platform_prepaid","provider_status":"live","executable":true,"wired":true,"verified":true,"platforms":[],"verified_platforms":["*"],"price":{"amount":"0.0035","currency":"USD","note":"measured margin over provider cost"},"health":{"status":"degraded","latency_ms_p50":9836},"pricing":{"currency":"USD","base":"0.0035","per_result":"0","default_limit":10}},{"provider":"firecrawl","mode":"platform_prepaid","provider_status":"live","executable":true,"wired":true,"verified":true,"platforms":[],"verified_platforms":["*"],"price":{"amount":"0.0112","currency":"USD","note":"measured margin over provider cost"},"health":{"status":"stable","latency_ms_p50":1458},"pricing":{"currency":"USD","base":"0.0112","per_result":"0","default_limit":null}}],"starting_price":{"amount":"0.0035","currency":"USD"},"waterfall":{"providers":["dataforseo","firecrawl"],"max_cost_for_all":{"amount":"0.0112","currency":"USD"},"note":"A miss is not charged: with max_cost at max_cost_for_all, each provider in turn tries until one finds, and you pay that one provider's price only when it finds. Prices are for one result or call; a larger limit quotes more."},"hints":["Use provider=\"auto\" for capabilities unless you deliberately need one provider. Pinning a provider disables cross-provider fallback even when allow_fallback=true. max_cost must cover each alternative’s full input-specific quote; a cheapest-route cap can exclude fallback."]},{"capability":"social.search","title":"Social post search","category":"social","status":"live","sandbox":true,"description":"Public posts matching a keyword on X, LinkedIn, Reddit, YouTube, TikTok, Instagram or Facebook: brand mentions, category conversations, competitor chatter.","input_schema":{"type":"object","required":["platform","query"],"properties":{"platform":{"type":"string","enum":["x","linkedin","reddit","youtube","tiktok","instagram","facebook","hackernews","douyin","threads","weibo","xiaohongshu"]},"query":{"type":"string","description":"Keyword, phrase or hashtag (Instagram searches hashtags)"},"limit":{"type":"integer","default":5}}},"output_fields":["posts"],"billing":{"unit":"per_result","bill_on_no_match":false,"note":"Priced per result by platform: X $0.0007 a post, LinkedIn $0.0035, Reddit $0.00245 a post in search, $0.07 a run plus $0.00665 a post for a subreddit or user (inspect lists every platform). The hold covers the requested limit; the charge covers the results returned, so fewer results cost less, and failures and empty results release the hold. No date filter: filter on created_at after the call. If the provider's actual cost overruns the estimate, the run bills the overrun at the same per-call rate, capped by the hold."},"providers":["hnsearch","apify","scrapecreators","twitterapiio","tikhub"],"live_providers":["hnsearch","apify"],"platforms":["douyin","facebook","hackernews","instagram","linkedin","reddit","threads","tiktok","weibo","x","xiaohongshu","youtube"],"offers":[{"provider":"hnsearch","mode":"platform_prepaid","provider_status":"live","executable":true,"wired":true,"verified":true,"platforms":["hackernews"],"verified_platforms":["hackernews"],"price":{"amount":"0.002","currency":"USD","note":"measured margin over provider cost"},"health":{"status":"unknown","latency_ms_p50":380},"pricing":{"currency":"USD","base":"0.002","per_result":"0","default_limit":null}},{"provider":"apify","mode":"platform_prepaid","provider_status":"live","executable":true,"wired":true,"verified":true,"platforms":["x","linkedin","reddit","youtube","tiktok","instagram","facebook"],"verified_platforms":["x","linkedin","reddit","youtube","tiktok","instagram","facebook"],"price":{"amount":"0.002","currency":"USD","note":"from $0.002: varies by platform, see pricing.by_platform; the quote is max(minimum, base + per_result x limit), and run refuses it above max_cost"},"health":{"status":"healthy","latency_ms_p50":8528},"pricing":{"currency":"USD","by_platform":{"x":{"base":"0","per_result":"0.0007","minimum":"0.002"},"linkedin":{"base":"0.000088","per_result":"0.0035","minimum":"0.002"},"reddit":{"base":"0","per_result":"0.002432","minimum":"0.002"},"youtube":{"base":"0","per_result":"0.00525","minimum":"0.002"},"tiktok":{"base":"0.00175","per_result":"0.00525","minimum":"0.002"},"instagram":{"base":"0","per_result":"0.004025","minimum":"0.002"},"facebook":{"base":"0.000088","per_result":"0.007","minimum":"0.002"}}}},{"provider":"scrapecreators","mode":"platform_prepaid","provider_status":"ready","executable":false,"wired":true,"verified":false,"platforms":["x","tiktok","youtube","reddit"],"verified_platforms":[],"price":{"amount":"0.0035","currency":"USD","note":"provisional: set from the provider's published rates, measured on first smoke run"},"health":{"status":"unknown","latency_ms_p50":null},"pricing":{"currency":"USD","base":"0.0035","per_result":"0","default_limit":null}},{"provider":"twitterapiio","mode":"platform_prepaid","provider_status":"planned","executable":false,"wired":false,"verified":false,"platforms":[],"verified_platforms":[],"price":{"amount":"0.00015","currency":"USD","note":"placeholder until this provider's adapter and terms exist"},"health":{"status":"unknown","latency_ms_p50":null}},{"provider":"tikhub","mode":"platform_prepaid","provider_status":"ready","executable":false,"wired":true,"verified":false,"platforms":["tiktok","douyin","instagram","x","youtube","threads","reddit","weibo","xiaohongshu"],"verified_platforms":[],"price":{"amount":"0.002625","currency":"USD","note":"provisional: set from the provider's published rates, measured on first smoke run"},"health":{"status":"unknown","latency_ms_p50":null},"pricing":{"currency":"USD","base":"0.002625","per_result":"0","default_limit":null}}],"starting_price":{"amount":"0.002","currency":"USD"},"waterfall":{"providers":["hnsearch","apify"],"max_cost_for_all":{"amount":"0.002","currency":"USD"},"note":"A miss is not charged: with max_cost at max_cost_for_all, each provider in turn tries until one finds, and you pay that one provider's price only when it finds. Prices are for one result or call; a larger limit quotes more."},"hints":["Use provider=\"auto\" for capabilities unless you deliberately need one provider. Pinning a provider disables cross-provider fallback even when allow_fallback=true. max_cost must cover each alternative’s full input-specific quote; a cheapest-route cap can exclude fallback."]},{"capability":"social.comments","title":"Post comments","category":"social","status":"live","sandbox":true,"description":"Comments on one public post URL (YouTube, TikTok, Instagram, LinkedIn, Reddit, and replies to a post on X): text, author, likes, replies, time.","input_schema":{"type":"object","required":["url"],"properties":{"url":{"type":"string","description":"The post, video, thread or X status URL; the platform is inferred"},"platform":{"type":"string","enum":["youtube","tiktok","instagram","linkedin","reddit","x","threads"]},"limit":{"type":"integer","default":5}}},"output_fields":["comments"],"billing":{"unit":"per_result","bill_on_no_match":false,"note":"Priced per comment by platform: Reddit $0.07 a thread plus $0.00665 a comment, LinkedIn $0.0035 a comment, X $0.0245 a thread plus $0.0007 a reply (inspect lists every platform). The hold covers the requested limit; the charge covers the comments returned. Reddit returns the comments only, not the post: read the post itself with social.post. If the provider's actual cost overruns the estimate, the run bills the overrun at the same per-call rate, capped by the hold."},"providers":["apify","scrapecreators","tikhub"],"live_providers":["apify"],"platforms":["instagram","linkedin","reddit","threads","tiktok","x","youtube"],"offers":[{"provider":"apify","mode":"platform_prepaid","provider_status":"live","executable":true,"wired":true,"verified":true,"platforms":["youtube","tiktok","instagram","linkedin","reddit","x"],"verified_platforms":["youtube","tiktok","instagram","linkedin","reddit"],"price":{"amount":"0.002","currency":"USD","note":"from $0.002: varies by platform, see pricing.by_platform; the quote is max(minimum, base + per_result x limit), and run refuses it above max_cost"},"health":{"status":"stable","latency_ms_p50":13212},"pricing":{"currency":"USD","by_platform":{"youtube":{"base":"0","per_result":"0.002625","minimum":"0.002"},"tiktok":{"base":"0","per_result":"0.00175","minimum":"0.002"},"instagram":{"base":"0","per_result":"0.004025","minimum":"0.002"},"linkedin":{"base":"0","per_result":"0.0035","minimum":"0.002"},"reddit":{"base":"0.07","per_result":"0.00665","minimum":"0.002"},"x":{"base":"0.0245","per_result":"0.0007","minimum":"0.002"}}}},{"provider":"scrapecreators","mode":"platform_prepaid","provider_status":"ready","executable":false,"wired":false,"verified":false,"platforms":[],"verified_platforms":[],"price":{"amount":"0.008","currency":"USD","note":"placeholder until this provider's adapter and terms exist"},"health":{"status":"unknown","latency_ms_p50":null}},{"provider":"tikhub","mode":"platform_prepaid","provider_status":"ready","executable":false,"wired":true,"verified":false,"platforms":["tiktok","instagram","youtube","reddit","threads"],"verified_platforms":[],"price":{"amount":"0.00525","currency":"USD","note":"provisional: set from the provider's published rates, measured on first smoke run"},"health":{"status":"unknown","latency_ms_p50":null},"pricing":{"currency":"USD","base":"0.00525","per_result":"0","default_limit":null}}],"starting_price":{"amount":"0.002","currency":"USD"},"waterfall":{"providers":["apify"],"max_cost_for_all":{"amount":"0.002","currency":"USD"},"note":"A miss is not charged: with max_cost at max_cost_for_all, each provider in turn tries until one finds, and you pay that one provider's price only when it finds. Prices are for one result or call; a larger limit quotes more."},"hints":["Use provider=\"auto\" for capabilities unless you deliberately need one provider. Pinning a provider disables cross-provider fallback even when allow_fallback=true. max_cost must cover each alternative’s full input-specific quote; a cheapest-route cap can exclude fallback."]},{"capability":"reviews.search","title":"Business reviews","category":"reviews","status":"live","sandbox":true,"description":"Recent reviews for a place on Google Maps or Yelp: rating, text, author, date and the owner's reply, plus the place's overall score.","input_schema":{"type":"object","required":["place"],"properties":{"place":{"type":"string","description":"Google Maps URL or place ID (ChIJ...) or Yelp business URL; the platform is inferred"},"platform":{"type":"string","enum":["google_maps","yelp"],"default":"google_maps"},"language":{"type":"string","default":"en"},"limit":{"type":"integer","default":5}}},"output_fields":["place","reviews"],"billing":{"unit":"per_result","bill_on_no_match":false,"note":"Priced per review returned. The exact quote is computed from your request and reserved before execution. If the provider's actual cost overruns the estimate, the run bills the overrun at the same per-call rate, capped by the hold."},"providers":["apify"],"live_providers":["apify"],"platforms":["google_maps","yelp"],"offers":[{"provider":"apify","mode":"platform_prepaid","provider_status":"live","executable":true,"wired":true,"verified":true,"platforms":["google_maps","yelp"],"verified_platforms":["google_maps","yelp"],"price":{"amount":"0.004288","currency":"USD","note":"from $0.004288: varies by platform, see pricing.by_platform; the quote is max(minimum, base + per_result x limit), and run refuses it above max_cost"},"health":{"status":"stable","latency_ms_p50":7874},"pricing":{"currency":"USD","by_platform":{"*":{"base":"0.0035","per_result":"0.000788","minimum":"0.002"},"google_maps":{"base":"0.0035","per_result":"0.000788","minimum":"0.002"},"yelp":{"base":"0.00525","per_result":"0.002625","minimum":"0.002"}}}}],"starting_price":{"amount":"0.004288","currency":"USD"},"waterfall":{"providers":["apify"],"max_cost_for_all":{"amount":"0.004288","currency":"USD"},"note":"A miss is not charged: with max_cost at max_cost_for_all, each provider in turn tries until one finds, and you pay that one provider's price only when it finds. Prices are for one result or call; a larger limit quotes more."},"hints":["Use provider=\"auto\" for capabilities unless you deliberately need one provider. Pinning a provider disables cross-provider fallback even when allow_fallback=true. max_cost must cover each alternative’s full input-specific quote; a cheapest-route cap can exclude fallback."]},{"capability":"people.search","title":"People search","category":"enrichment","status":"live","sandbox":true,"description":"Build a people list from filters: titles, seniority, company headcount, location, industry keywords. Returns profiles with current role and company. The lead database answers first, from a fraction of a cent a person and without emails: find them with contact.find, or pin the route that returns a known company's people with their work email.","input_schema":{"type":"object","properties":{"query":{"type":"string","description":"Free-text search, e.g. \"head of sales SaaS\""},"titles":{"type":"array","items":{"type":"string"},"description":"Current job titles"},"seniority":{"type":"array","items":{"type":"string","enum":["entry","senior","manager","director","vp","cxo","partner","owner"]}},"company_headcount":{"type":"array","items":{"type":"string","enum":["1-10","11-50","51-200","201-500","501-1000","1001-5000","5001-10000","10001+"]}},"locations":{"type":"array","items":{"type":"string"},"description":"Countries, regions or cities"},"industries":{"type":"array","items":{"type":"string"},"description":"Industry keywords, matched fuzzily"},"companies":{"type":"array","items":{"type":"string"},"description":"Current company names or LinkedIn URLs. When also supplying company_domains, pair them in the same order. The LinkedIn route resolves exact employer identities before searching; ambiguous names return no match."},"company_domains":{"type":"array","items":{"type":"string"},"description":"Employer domains, e.g. [\"galois.com\"]: the precise way to name a company; every route takes them. For a known company's people with their work email in one call, set routing.prefer \"apollo\" (it runs first, the other routes stay behind it) with a domain, or up to 3 company names, and a limit of 25 or less: the search is free, each person returned costs $0.042 and comes with a work email when one is known. A name shared by two companies is not served there"},"detail":{"type":"string","enum":["full","short"],"default":"full","description":"full returns names, current role and company (on the LinkedIn route also experience and skills; on the apollo route the work email, $0.042 a person). short is the cheap look at a known company: a masked preview at the platform floor (first name, masked last name, title, company, whether an email exists, a person_id) with nobody revealed; on LinkedIn, truncated names and no titles. The lead database returns the same full row either way"},"person_ids":{"type":"array","items":{"type":"string"},"description":"person_id values from a short preview: reveals exactly those people, $0.042 each, up to 25. No other filter is needed"},"limit":{"type":"integer","default":25,"description":"Up to 200 per call"},"cursor":{"type":"string","description":"next_cursor from the previous page (a short cur_ id, kept 7 days), with the same filters: returns the next page of the lead database's results, none repeated, billed like any page. Only the lead database pages, so a run with a cursor stays on it (routing.provider auto or icypeas). A cursor from other filters, or one that does not parse, fails with invalid_cursor and charges nothing"}}},"output_fields":["people","total","next_cursor","has_more"],"billing":{"unit":"per_result","bill_on_no_match":false,"note":"Three routes, cheapest first. The lead database (icypeas) runs first on every search it can serve: $0.002 a call plus $0.000374 a person returned, up to 200 a call (25 people quote $0.01135, 200 quote $0.0768), settled on the people that come back. Its rows carry the name, current title, company, company domain and LinkedIn URL, and no email: run contact.find on the rows you keep. It is a database, not a live search, and it cannot combine titles with seniority or take headcount ranges with a gap; those searches, and the ones it finds nobody for, go to the next route. For a known company's people with their work email in one call, set routing.prefer apollo (it runs first and the other routes stay behind it; pinning it with routing.provider stops there) (company_domains, or up to 3 names in companies, limit 25 or less): $0.042 a person actually returned (4 asked, 1 found, $0.042), email included when available; a company it does not know, or a name two companies share, is not served there. On that route detail short previews who holds the titles for the platform floor and reveals nobody, and person_ids then pays only for the people you pick. The live LinkedIn search (apify) is the last route, or pin it: priced per 25-result search page ($0.175) plus $0.007 a profile in full mode (nothing extra in short mode): 3 full profiles quote $0.196, 25 quote $0.35, 200 quote $2.80, and a limit under 25 still pays the whole page. Company-constrained LinkedIn searches add up to $0.035087 per employer to the quote for identity resolution (a capped lookup); only profiles with matching current-employer ID or URL evidence are returned; this is not independent employment verification. Profiles without employer evidence are excluded, and the matched role plus all current positions are preserved. No emails are included on the LinkedIn route. The exact quote is reserved before execution; empty or unresolved searches release the hold. max_cost admits a route by its own quote, so a cap under the next route's quote ends the waterfall at the database. If the provider's actual cost overruns the estimate, the run bills the overrun at the same per-call rate, capped by the hold."},"providers":["apify","apollo","icypeas","peopledatalabs","crustdata"],"live_providers":["apify","apollo","icypeas"],"platforms":[],"offers":[{"provider":"apify","mode":"platform_prepaid","provider_status":"live","executable":true,"wired":true,"verified":true,"platforms":[],"verified_platforms":["*"],"price":{"amount":"0.182","currency":"USD","note":"from $0.182: varies by platform, see pricing.by_platform; the quote is max(minimum, base + per_result x limit), and run refuses it above max_cost"},"health":{"status":"stable","latency_ms_p50":18111},"pricing":{"currency":"USD","by_platform":{"*":{"base":"0.175","per_result":"0.007","minimum":"0.002"}}}},{"provider":"apollo","mode":"platform_prepaid","provider_status":"live","executable":true,"wired":true,"verified":true,"platforms":[],"verified_platforms":["*"],"price":{"amount":"0.042","currency":"USD","note":"measured margin over provider cost; the quote is base + per_result x limit (default limit 1)"},"health":{"status":"stable","latency_ms_p50":662},"pricing":{"currency":"USD","base":"0","per_result":"0.042","default_limit":null}},{"provider":"icypeas","mode":"platform_prepaid","provider_status":"live","executable":true,"wired":true,"verified":true,"platforms":[],"verified_platforms":["*"],"price":{"amount":"0.002374","currency":"USD","note":"measured margin over provider cost; the quote is base + per_result x limit (default limit 25)"},"health":{"status":"stable","latency_ms_p50":361},"pricing":{"currency":"USD","base":"0.002","per_result":"0.000374","default_limit":25}},{"provider":"peopledatalabs","mode":"platform_prepaid","provider_status":"planned","executable":false,"wired":false,"verified":false,"platforms":[],"verified_platforms":[],"price":{"amount":"0.03","currency":"USD","note":"placeholder until this provider's adapter and terms exist"},"health":{"status":"unknown","latency_ms_p50":null}},{"provider":"crustdata","mode":"platform_prepaid","provider_status":"planned","executable":false,"wired":false,"verified":false,"platforms":[],"verified_platforms":[],"price":{"amount":"0.03","currency":"USD","note":"placeholder until this provider's adapter and terms exist"},"health":{"status":"unknown","latency_ms_p50":null}}],"starting_price":{"amount":"0.002374","currency":"USD"},"waterfall":{"providers":["icypeas","apollo","apify"],"max_cost_for_all":{"amount":"0.182","currency":"USD"},"note":"A miss is not charged: with max_cost at max_cost_for_all, each provider in turn tries until one finds, and you pay that one provider's price only when it finds. Prices are for one result or call; a larger limit quotes more."},"hints":["Use provider=\"auto\" for capabilities unless you deliberately need one provider. Pinning a provider disables cross-provider fallback even when allow_fallback=true. max_cost must cover each alternative’s full input-specific quote; a cheapest-route cap can exclude fallback.","For a target-company list, first discover and qualify company domains against every required criterion (industry, size, technology, location). A generic company search does not prove those criteria.","On auto routing the lead database answers first: cheap rows (name, title, company, LinkedIn URL) without emails. Pinning apollo returns a known company's people with their work email; it needs company_domains, company names, or person_ids from a preview.","Search relevant title variants together. Broaden seniority only if the targeting permits it; keep the employer constraint and do not infer employee location from company headquarters.","An email is returned only by the apollo route, when available. Review the role, use contact.find only for missing emails with real names and the employer domain, then contact.verify before outreach. A profile is not a verified email."]},{"capability":"company.jobs","title":"Open jobs","category":"signals","status":"live","sandbox":true,"description":"Job postings for a company, or matching a title and location: the hiring signal behind most buying intent.","input_schema":{"type":"object","properties":{"company":{"type":"string","description":"Company name, domain or LinkedIn URL"},"query":{"type":"string","description":"Job title to match, e.g. contracts manager. Every route filters on posting titles, so a word found only in the posting text (an agency or program name) returns nothing"},"location":{"type":"string"},"posted_within":{"type":"string","enum":["24h","week","month"]},"domain":{"type":"string","description":"Company domain (PredictLeads route)"},"limit":{"type":"integer","default":20}}},"output_fields":["jobs"],"billing":{"unit":"per_result","bill_on_no_match":false,"note":"Priced per posting returned: LinkedIn postings $0.00175 each plus $0.00175 a search ($0.03675 at the default 20); inspect lists every provider. The hold covers the requested limit; no postings at all releases the hold. Postings carry no headcount or industry; size the account with company.search. If the provider's actual cost overruns the estimate, the run bills the overrun at the same per-call rate, capped by the hold."},"providers":["apify","leadmagic","predictleads"],"live_providers":["apify","leadmagic"],"platforms":[],"offers":[{"provider":"apify","mode":"platform_prepaid","provider_status":"live","executable":true,"wired":true,"verified":true,"platforms":[],"verified_platforms":["*"],"price":{"amount":"0.0035","currency":"USD","note":"from $0.0035: varies by platform, see pricing.by_platform; the quote is max(minimum, base + per_result x limit), and run refuses it above max_cost"},"health":{"status":"stable","latency_ms_p50":5878},"pricing":{"currency":"USD","by_platform":{"*":{"base":"0.00175","per_result":"0.00175","minimum":"0.002"}}}},{"provider":"leadmagic","mode":"platform_prepaid","provider_status":"live","executable":true,"wired":true,"verified":true,"platforms":[],"verified_platforms":["*"],"price":{"amount":"0.04375","currency":"USD","note":"measured margin over provider cost; the quote is base + per_result x limit (default limit 1)"},"health":{"status":"stable","latency_ms_p50":3073},"pricing":{"currency":"USD","base":"0","per_result":"0.04375","default_limit":null}},{"provider":"predictleads","mode":"platform_prepaid","provider_status":"ready","executable":false,"wired":true,"verified":false,"platforms":[],"verified_platforms":[],"price":{"amount":"0.0175","currency":"USD","note":"provisional: set from the provider's published rates, measured on first smoke run"},"health":{"status":"unknown","latency_ms_p50":null},"pricing":{"currency":"USD","base":"0.0175","per_result":"0","default_limit":null}}],"starting_price":{"amount":"0.0035","currency":"USD"},"waterfall":{"providers":["apify","leadmagic"],"max_cost_for_all":{"amount":"0.04375","currency":"USD"},"note":"A miss is not charged: with max_cost at max_cost_for_all, each provider in turn tries until one finds, and you pay that one provider's price only when it finds. Prices are for one result or call; a larger limit quotes more."},"hints":["Use provider=\"auto\" for capabilities unless you deliberately need one provider. Pinning a provider disables cross-provider fallback even when allow_fallback=true. max_cost must cover each alternative’s full input-specific quote; a cheapest-route cap can exclude fallback."]},{"capability":"company.funding","title":"Funding rounds","category":"signals","status":"live","sandbox":true,"description":"Funding history for a company: rounds, amounts, dates, investors and the latest round. The database route also lists the government awards it has detected as events (a grant, a sole-source contract, an SBIR) with the news link.","input_schema":{"type":"object","required":["domain"],"properties":{"domain":{"type":"string"}}},"output_fields":["total_funding","latest_round","funding_rounds","investors"],"billing":{"unit":"per_match","bill_on_no_match":false,"note":"Charged only when funding data exists."},"providers":["leadmagic","apollo","predictleads"],"live_providers":["leadmagic","apollo"],"platforms":[],"offers":[{"provider":"leadmagic","mode":"platform_prepaid","provider_status":"live","executable":true,"wired":true,"verified":true,"platforms":[],"verified_platforms":["*"],"price":{"amount":"0.175","currency":"USD","note":"measured margin over provider cost"},"health":{"status":"unknown","latency_ms_p50":null},"pricing":{"currency":"USD","base":"0.175","per_result":"0","default_limit":null}},{"provider":"apollo","mode":"platform_prepaid","provider_status":"live","executable":true,"wired":true,"verified":true,"platforms":[],"verified_platforms":["*"],"price":{"amount":"0.042","currency":"USD","note":"measured margin over provider cost"},"health":{"status":"stable","latency_ms_p50":305},"pricing":{"currency":"USD","base":"0.042","per_result":"0","default_limit":null}},{"provider":"predictleads","mode":"platform_prepaid","provider_status":"ready","executable":false,"wired":true,"verified":false,"platforms":[],"verified_platforms":[],"price":{"amount":"0.0175","currency":"USD","note":"provisional: set from the provider's published rates, measured on first smoke run"},"health":{"status":"unknown","latency_ms_p50":null},"pricing":{"currency":"USD","base":"0.0175","per_result":"0","default_limit":null}}],"starting_price":{"amount":"0.042","currency":"USD"},"waterfall":{"providers":["apollo","leadmagic"],"max_cost_for_all":{"amount":"0.175","currency":"USD"},"note":"A miss is not charged: with max_cost at max_cost_for_all, each provider in turn tries until one finds, and you pay that one provider's price only when it finds."},"hints":["Use provider=\"auto\" for capabilities unless you deliberately need one provider. Pinning a provider disables cross-provider fallback even when allow_fallback=true. max_cost must cover each alternative’s full input-specific quote; a cheapest-route cap can exclude fallback."]},{"capability":"funding.rounds","title":"Recent funding rounds feed","category":"signals","status":"live","sandbox":true,"description":"Who just raised: announced funding rounds across the market for a date window, with stage, amount, lead and other investors, company domain and the source articles. Fireround's verified sweep of news, wires and company pages is the base; Signalbase adds rounds from the last 48 hours before the press picks them up. A round both report is one row, confirmed_by both.","input_schema":{"type":"object","properties":{"days":{"type":"integer","default":7,"minimum":1,"maximum":365,"description":"Rounds announced in the last N days, today included."},"since":{"type":"string","description":"Or a first day, YYYY-MM-DD; wins over days."},"stages":{"type":"array","items":{"type":"string","enum":["pre_seed","seed","pre_a","series_a","series_b","series_c","series_d_plus","growth","bridge","debt","grant","convertible","other"]}},"min_amount_usd":{"type":"number","minimum":0,"description":"Smallest round, in US dollars."},"sector":{"type":"string","description":"One sector, e.g. ai, cybersecurity, fintech, healthtech, biotech."},"query":{"type":"string","description":"Free text over company names, descriptions and investors."},"limit":{"type":"integer","default":25,"minimum":1,"maximum":200,"description":"Verified rounds from Fireround, read 50 to a page."},"live_limit":{"type":"integer","default":5,"minimum":0,"maximum":50,"description":"Same-day rounds from Signalbase, last 48 hours only; 0 turns it off."}}},"output_fields":["rounds","counts"],"billing":{"unit":"per_call","bill_on_no_match":false,"note":"$0.028 a page of up to 50 verified rounds (5 Firecrawl credits), plus $0.0525 a same-day round Signalbase returns (merged or not). No rounds in the window is free. If the provider's actual cost overruns the estimate, the run bills the overrun at the same per-call rate, capped by the hold."},"providers":["fireround"],"live_providers":["fireround"],"platforms":[],"offers":[{"provider":"fireround","mode":"platform_prepaid","provider_status":"live","executable":true,"wired":true,"verified":true,"platforms":[],"verified_platforms":["*"],"price":{"amount":"0.028","currency":"USD","note":"measured margin over provider cost"},"health":{"status":"stable","latency_ms_p50":3580},"pricing":{"currency":"USD","base":"0.028","per_result":"0","default_limit":null}}],"starting_price":{"amount":"0.028","currency":"USD"},"waterfall":{"providers":["fireround"],"max_cost_for_all":{"amount":"0.028","currency":"USD"},"note":"A miss is not charged: with max_cost at max_cost_for_all, each provider in turn tries until one finds, and you pay that one provider's price only when it finds."},"hints":["Use provider=\"auto\" for capabilities unless you deliberately need one provider. Pinning a provider disables cross-provider fallback even when allow_fallback=true. max_cost must cover each alternative’s full input-specific quote; a cheapest-route cap can exclude fallback."]},{"capability":"domain.search","title":"Domain search","category":"outbound","status":"live","sandbox":true,"description":"Check which domains are available and what they cost to register through RouterGrowth: a name across common TLDs, or one exact domain.","input_schema":{"type":"object","required":["name"],"properties":{"name":{"type":"string","description":"\"acme\" to try common TLDs, or \"acme.com\" for one"},"tlds":{"type":"array","items":{"type":"string"},"description":"Default: com, io, co, ai, app, dev"}}},"output_fields":["results"],"billing":{"unit":"per_search","bill_on_no_match":false},"providers":["namecom"],"live_providers":["namecom"],"platforms":[],"offers":[{"provider":"namecom","mode":"platform_prepaid","provider_status":"live","executable":true,"wired":true,"verified":true,"platforms":[],"verified_platforms":["*"],"price":{"amount":"0.002","currency":"USD","note":"measured margin over provider cost"},"health":{"status":"stable","latency_ms_p50":909},"pricing":{"currency":"USD","base":"0.002","per_result":"0","default_limit":null}}],"starting_price":{"amount":"0.002","currency":"USD"},"waterfall":{"providers":["namecom"],"max_cost_for_all":{"amount":"0.002","currency":"USD"},"note":"A miss is not charged: with max_cost at max_cost_for_all, each provider in turn tries until one finds, and you pay that one provider's price only when it finds. Prices are for one result or call; a larger limit quotes more."},"hints":["Use provider=\"auto\" for capabilities unless you deliberately need one provider. Pinning a provider disables cross-provider fallback even when allow_fallback=true. max_cost must cover each alternative’s full input-specific quote; a cheapest-route cap can exclude fallback."]},{"capability":"domain.register","title":"Register a domain","category":"outbound","status":"live","sandbox":true,"description":"Buy a domain for outbound sending. Registered in RouterGrowth's registrar account with you as the registrant contact; WHOIS privacy on; transferable to you on request.","input_schema":{"type":"object","required":["domain","registrant"],"properties":{"domain":{"type":"string"},"years":{"type":"integer","default":1},"privacy":{"type":"boolean","default":true},"auto_renew":{"type":"boolean","default":false},"registrant":{"type":"object","required":["first_name","last_name","email","phone","address1","city","zip","country"],"properties":{"first_name":{"type":"string"},"last_name":{"type":"string"},"company":{"type":"string"},"email":{"type":"string"},"phone":{"type":"string","description":"E.164, e.g. +33612345678"},"address1":{"type":"string"},"city":{"type":"string"},"state":{"type":"string"},"zip":{"type":"string"},"country":{"type":"string","description":"ISO 2-letter"}}}}},"output_fields":["domain","order","paid","expires_at","nameservers","next_step"],"billing":{"unit":"per_domain","bill_on_no_match":false,"note":"The exact price (registrar price × 1.15 + $3, times years) is quoted from the registrar at run time and reserved before purchase. Renewals are not automatic unless auto_renew is set."},"providers":["namecom"],"live_providers":["namecom"],"platforms":[],"offers":[{"provider":"namecom","mode":"platform_prepaid","provider_status":"live","executable":true,"wired":true,"verified":false,"platforms":[],"verified_platforms":[],"price":{"amount":"21","currency":"USD","note":"provisional: set from the provider's published rates, measured on first smoke run"},"health":{"status":"stable","latency_ms_p50":5767},"pricing":{"currency":"USD","base":"21","per_result":"0","default_limit":null}}],"starting_price":{"amount":"21","currency":"USD"},"waterfall":{"providers":["namecom"],"max_cost_for_all":{"amount":"21","currency":"USD"},"note":"A miss is not charged: with max_cost at max_cost_for_all, each provider in turn tries until one finds, and you pay that one provider's price only when it finds."},"hints":["Use provider=\"auto\" for capabilities unless you deliberately need one provider. Pinning a provider disables cross-provider fallback even when allow_fallback=true. max_cost must cover each alternative’s full input-specific quote; a cheapest-route cap can exclude fallback."]},{"capability":"domain.dns","title":"Write DNS records","category":"outbound","status":"live","sandbox":true,"description":"Create DNS records on a domain registered through RouterGrowth: the records email.domain asks for, or anything else.","input_schema":{"type":"object","required":["domain","records"],"properties":{"domain":{"type":"string"},"records":{"type":"array","items":{"type":"object","properties":{"type":{"type":"string","enum":["A","AAAA","CNAME","MX","TXT","NS","SRV"]},"host":{"type":"string","description":"Subdomain label; empty for the apex"},"answer":{"type":"string"},"ttl":{"type":"integer","default":300},"priority":{"type":"integer"}}}}}},"output_fields":["created","failed"],"billing":{"unit":"per_call","bill_on_no_match":false},"providers":["namecom"],"live_providers":["namecom"],"platforms":[],"offers":[{"provider":"namecom","mode":"platform_prepaid","provider_status":"live","executable":true,"wired":true,"verified":false,"platforms":[],"verified_platforms":[],"price":{"amount":"0.002","currency":"USD","note":"provisional: set from the provider's published rates, measured on first smoke run"},"health":{"status":"stable","latency_ms_p50":1332},"pricing":{"currency":"USD","base":"0.002","per_result":"0","default_limit":null}}],"starting_price":{"amount":"0.002","currency":"USD"},"waterfall":{"providers":["namecom"],"max_cost_for_all":{"amount":"0.002","currency":"USD"},"note":"A miss is not charged: with max_cost at max_cost_for_all, each provider in turn tries until one finds, and you pay that one provider's price only when it finds."},"hints":["Use provider=\"auto\" for capabilities unless you deliberately need one provider. Pinning a provider disables cross-provider fallback even when allow_fallback=true. max_cost must cover each alternative’s full input-specific quote; a cheapest-route cap can exclude fallback."]},{"capability":"email.domain","title":"Your sending domain","category":"outbound","status":"live","sandbox":true,"description":"Bring your own domain for outbound: registers it, returns the DNS records and a one-click setup link, and reports verification status. Run again to re-check. Rented monthly; delete: true hands back one you no longer use (delete its inboxes first).","input_schema":{"type":"object","required":["domain"],"properties":{"domain":{"type":"string","description":"A domain or subdomain you own, e.g. mail.example.com"},"tracking":{"type":"boolean","default":false,"description":"Enable open tracking (adds a link.<domain> CNAME)"},"delete":{"type":"boolean","description":"Hand the domain back: it stops renewing and can no longer send. Free; delete its inboxes first."}}},"output_fields":["domain_id","domain","status","records","setup_url","next_step","deleted"],"billing":{"unit":"per_domain","bill_on_no_match":false,"note":"Adding a domain charges its first 30 days ($2.3275); it then renews every 30 days from your balance until you delete it (delete: true, free). Status checks and verification re-runs are free. Domains are not sold here: bring one you own, or buy one with domain.register."},"providers":["agentmail"],"live_providers":["agentmail"],"platforms":[],"offers":[{"provider":"agentmail","mode":"platform_prepaid","provider_status":"live","executable":true,"wired":true,"verified":true,"platforms":[],"verified_platforms":["*"],"price":{"amount":"2.3275","currency":"USD","note":"measured margin over provider cost"},"health":{"status":"stable","latency_ms_p50":1173},"pricing":{"currency":"USD","base":"2.3275","per_result":"0","default_limit":null}}],"starting_price":{"amount":"2.3275","currency":"USD"},"waterfall":{"providers":["agentmail"],"max_cost_for_all":{"amount":"2.3275","currency":"USD"},"note":"A miss is not charged: with max_cost at max_cost_for_all, each provider in turn tries until one finds, and you pay that one provider's price only when it finds."},"hints":["Use provider=\"auto\" for capabilities unless you deliberately need one provider. Pinning a provider disables cross-provider fallback even when allow_fallback=true. max_cost must cover each alternative’s full input-specific quote; a cheapest-route cap can exclude fallback."]},{"capability":"email.inbox","title":"Agent inbox","category":"outbound","status":"live","sandbox":true,"description":"Create (or fetch) a sending inbox owned by your organization on a domain you verified with email.domain: name + domain, idempotent. Or rename one you own: inbox_id + display_name sets the From name on everything it sends (free), or delete it: inbox_id + delete: true (free). Rented monthly. Run email.inboxes first to see what you already own.","input_schema":{"type":"object","properties":{"name":{"type":"string","description":"Create: the address's local part, e.g. \"alex\" (with domain)"},"domain":{"type":"string","description":"Create: a domain you verified with email.domain (buy one with domain.register if you have none)"},"display_name":{"type":"string","description":"The From name shown to recipients, e.g. \"Alex Rivera\". With inbox_id alone it renames an existing inbox."},"inbox_id":{"type":"string","description":"Rename: an inbox you own (from email.inboxes), with the new display_name. Delete: with delete: true"},"delete":{"type":"boolean","description":"With inbox_id: hand the inbox back. It stops renewing, sending and receiving. Free."}}},"output_fields":["inbox_id","address","display_name","created","renamed","deleted"],"billing":{"unit":"per_inbox","bill_on_no_match":false,"note":"Creating an inbox charges its first 30 days ($2.3275); it then renews every 30 days from your balance until you delete it (inbox_id + delete: true, free). Calling again with the same name and domain returns the existing inbox free, and renaming (inbox_id + display_name) is free. No shared-domain inboxes: every inbox sits on a domain you own."},"providers":["agentmail"],"live_providers":["agentmail"],"platforms":[],"offers":[{"provider":"agentmail","mode":"platform_prepaid","provider_status":"live","executable":true,"wired":true,"verified":true,"platforms":[],"verified_platforms":["*"],"price":{"amount":"2.3275","currency":"USD","note":"measured margin over provider cost"},"health":{"status":"degraded","latency_ms_p50":334},"pricing":{"currency":"USD","base":"2.3275","per_result":"0","default_limit":null}}],"starting_price":{"amount":"2.3275","currency":"USD"},"waterfall":{"providers":["agentmail"],"max_cost_for_all":{"amount":"2.3275","currency":"USD"},"note":"A miss is not charged: with max_cost at max_cost_for_all, each provider in turn tries until one finds, and you pay that one provider's price only when it finds."},"hints":["Use provider=\"auto\" for capabilities unless you deliberately need one provider. Pinning a provider disables cross-provider fallback even when allow_fallback=true. max_cost must cover each alternative’s full input-specific quote; a cheapest-route cap can exclude fallback."]},{"capability":"email.inboxes","title":"Your inboxes and domains","category":"outbound","status":"live","sandbox":true,"description":"The sending domains and inboxes this workspace already owns, with each domain's verification status and each inbox's inbox_id. Free. Run it before creating an inbox or sending, so you reuse what exists.","input_schema":{"type":"object","properties":{}},"output_fields":["inboxes","domains","count","next_step"],"billing":{"unit":"per_call","bill_on_no_match":false,"note":"Free: no provider call, read from your workspace's registry."},"providers":["agentmail"],"live_providers":["agentmail"],"platforms":[],"offers":[{"provider":"agentmail","mode":"platform_prepaid","provider_status":"live","executable":true,"wired":true,"verified":false,"platforms":[],"verified_platforms":[],"price":{"amount":"0","currency":"USD","note":"provisional: set from the provider's published rates, measured on first smoke run"},"health":{"status":"stable","latency_ms_p50":43},"pricing":{"currency":"USD","base":"0","per_result":"0","default_limit":null}}],"starting_price":{"amount":"0","currency":"USD"},"waterfall":{"providers":["agentmail"],"max_cost_for_all":{"amount":"0","currency":"USD"},"note":"A miss is not charged: with max_cost at max_cost_for_all, each provider in turn tries until one finds, and you pay that one provider's price only when it finds."},"hints":["Use provider=\"auto\" for capabilities unless you deliberately need one provider. Pinning a provider disables cross-provider fallback even when allow_fallback=true. max_cost must cover each alternative’s full input-specific quote; a cheapest-route cap can exclude fallback."]},{"capability":"email.send","title":"Send email","category":"outbound","status":"live","sandbox":true,"description":"Send an email from one of your inboxes, or reply within a thread, with file attachments when needed (a deck, a PDF: by public https url, or inline as base64). You are the sender of record: consent and unsubscribe handling are yours.","input_schema":{"type":"object","required":["inbox_id","to"],"properties":{"inbox_id":{"type":"string","description":"From email.inbox or email.inboxes. The From name is the inbox's display_name; change it with email.inbox (inbox_id + display_name), there is no per-email override"},"to":{"type":"array","items":{"type":"string"},"description":"Up to 50 recipients"},"subject":{"type":"string"},"text":{"type":"string"},"html":{"type":"string"},"cc":{"type":"array","items":{"type":"string"}},"bcc":{"type":"array","items":{"type":"string"}},"reply_to":{"type":"string"},"in_reply_to":{"type":"string","description":"message_id to reply to; keeps the thread"},"unsubscribe_url":{"type":"string","description":"Adds a List-Unsubscribe header"},"attachments":{"type":"array","maxItems":10,"description":"Files to attach, 10 at most and 10 MB in total per message. Each carries the file one of two ways: url, a public https URL the provider downloads (a pre-signed or redirecting URL works; the way to send anything above 4 MB), or data_base64, the file inline (4 MB of file data in total per message). Works on replies too.","items":{"type":"object","required":["filename"],"properties":{"filename":{"type":"string","description":"Plain file name shown to the recipient, e.g. deck.pdf"},"content_type":{"type":"string","description":"Media type, e.g. application/pdf; guessed from the filename when omitted"},"url":{"type":"string","description":"Public https URL of the file; exactly one of url or data_base64"},"data_base64":{"type":"string","description":"The file's bytes as standard base64; exactly one of url or data_base64"},"size_bytes":{"type":"integer","description":"Optional with url: the file's size, counted toward the 10 MB total"}}}}}},"output_fields":["message_id","thread_id","attachments"],"billing":{"unit":"per_email","bill_on_no_match":false,"note":"Priced per email sent."},"providers":["agentmail"],"live_providers":["agentmail"],"platforms":[],"offers":[{"provider":"agentmail","mode":"platform_prepaid","provider_status":"live","executable":true,"wired":true,"verified":true,"platforms":[],"verified_platforms":["*"],"price":{"amount":"0.0035","currency":"USD","note":"measured margin over provider cost"},"health":{"status":"stable","latency_ms_p50":536},"pricing":{"currency":"USD","base":"0.0035","per_result":"0","default_limit":null}}],"starting_price":{"amount":"0.0035","currency":"USD"},"waterfall":{"providers":["agentmail"],"max_cost_for_all":{"amount":"0.0035","currency":"USD"},"note":"A miss is not charged: with max_cost at max_cost_for_all, each provider in turn tries until one finds, and you pay that one provider's price only when it finds."},"hints":["Use provider=\"auto\" for capabilities unless you deliberately need one provider. Pinning a provider disables cross-provider fallback even when allow_fallback=true. max_cost must cover each alternative’s full input-specific quote; a cheapest-route cap can exclude fallback."]},{"capability":"email.messages","title":"Read inbox","category":"outbound","status":"live","sandbox":true,"description":"Messages in one of your inboxes, newest first, sent and received alike: a 200-character preview each, with direction and a bounced flag (a hard bounce is a label on your own sent message). Pass message_id to read one message in full. Poll it after a send.","input_schema":{"type":"object","required":["inbox_id"],"properties":{"inbox_id":{"type":"string","description":"From email.inbox or email.inboxes"},"limit":{"type":"integer","default":20},"after":{"type":"string","description":"ISO 8601 timestamp with a timezone, e.g. 2026-09-04T13:17:00Z. UTC offsets are accepted and normalized to UTC milliseconds."},"labels":{"type":"array","items":{"type":"string"},"description":"e.g. [\"received\"] for what came in, [\"sent\"] for your own mail (where a bounce shows as \"bounced\")"},"from":{"type":"array","items":{"type":"string"},"description":"Sender substring filters"},"message_id":{"type":"string","description":"Read this one message in full (text) instead of listing"}}},"output_fields":["messages","count"],"billing":{"unit":"per_read","bill_on_no_match":false},"providers":["agentmail"],"live_providers":["agentmail"],"platforms":[],"offers":[{"provider":"agentmail","mode":"platform_prepaid","provider_status":"live","executable":true,"wired":true,"verified":true,"platforms":[],"verified_platforms":["*"],"price":{"amount":"0.002","currency":"USD","note":"measured margin over provider cost"},"health":{"status":"healthy","latency_ms_p50":243},"pricing":{"currency":"USD","base":"0.002","per_result":"0","default_limit":null}}],"starting_price":{"amount":"0.002","currency":"USD"},"waterfall":{"providers":["agentmail"],"max_cost_for_all":{"amount":"0.002","currency":"USD"},"note":"A miss is not charged: with max_cost at max_cost_for_all, each provider in turn tries until one finds, and you pay that one provider's price only when it finds."},"hints":["Use provider=\"auto\" for capabilities unless you deliberately need one provider. Pinning a provider disables cross-provider fallback even when allow_fallback=true. max_cost must cover each alternative’s full input-specific quote; a cheapest-route cap can exclude fallback."]},{"capability":"email.warmup","title":"Inbox warm-up","category":"outbound","status":"live","sandbox":true,"description":"Warm up one of your inboxes before cold sending: a network of real mailboxes sends to it, opens, replies and pulls its mail out of spam, on a ramp to the daily volume you set, weekdays 8am to 6pm. action start (run it again to change volume, ramp or timezone), pause, resume or stop. Charged per inbox per 30 days by daily volume; progress is free with email.warmup_status.","input_schema":{"type":"object","required":["inbox_id"],"properties":{"inbox_id":{"type":"string","description":"From email.inbox or email.inboxes: an inbox on a domain you own. With action connect: the address of a mailbox hosted elsewhere"},"action":{"type":"string","enum":["start","pause","resume","stop","connect"],"default":"start","description":"start begins warm-up or retunes a running one; resume also reconnects an inbox the network lost; stop disconnects it and ends billing; connect returns a one-time link where the owner of a Google Workspace, Microsoft 365 or other SMTP mailbox signs it in on Mailivery's form (RouterGrowth never sees its password), then start it like any inbox"},"emails_per_day":{"type":"integer","default":20,"minimum":1,"maximum":50,"description":"Target warm-up emails a day: the cold volume you plan to send from this inbox, 50 at most"},"ramp_up":{"type":"string","enum":["slow","normal","fast"],"default":"slow","description":"How fast volume climbs to the target: slow for a domain registered in the last few weeks, fast for one already sending"},"timezone":{"type":"string","default":"America/New_York","description":"IANA timezone of the sending window, e.g. Europe/Paris"},"first_name":{"type":"string","description":"Signs the warm-up emails; defaults to the inbox's display_name"},"last_name":{"type":"string","description":"Defaults to the inbox's display_name"}}},"output_fields":["inbox_id","action","status","emails_per_day","ramp_up","filter_id","charged_through","next_step"],"billing":{"unit":"per_inbox_month","bill_on_no_match":false,"note":"Starting warm-up charges the first 30 days, priced by emails_per_day: from $0.22 (one email a day on a connected mailbox). An inbox RouterGrowth hosts is about $0.36 per daily email (20 a day is $7.22); a connected mailbox hosted elsewhere sends through its own host, so about $0.22 (20 a day is $4.49); connect itself is free. Running warm-ups renew every 30 days from your balance; raising the volume mid-period charges the prorated difference; pause and stop refund nothing, and resuming after the paid period ends starts a new one."},"providers":["mailivery"],"live_providers":["mailivery"],"platforms":[],"offers":[{"provider":"mailivery","mode":"platform_prepaid","provider_status":"live","executable":true,"wired":true,"verified":true,"platforms":[],"verified_platforms":["*"],"price":{"amount":"0.224656","currency":"USD","note":"measured margin over provider cost"},"health":{"status":"stable","latency_ms_p50":2769},"pricing":{"currency":"USD","base":"0.224656","per_result":"0","default_limit":null}}],"starting_price":{"amount":"0.224656","currency":"USD"},"waterfall":{"providers":["mailivery"],"max_cost_for_all":{"amount":"0.224656","currency":"USD"},"note":"A miss is not charged: with max_cost at max_cost_for_all, each provider in turn tries until one finds, and you pay that one provider's price only when it finds."},"hints":["Use provider=\"auto\" for capabilities unless you deliberately need one provider. Pinning a provider disables cross-provider fallback even when allow_fallback=true. max_cost must cover each alternative’s full input-specific quote; a cheapest-route cap can exclude fallback."]},{"capability":"email.warmup_status","title":"Warm-up progress","category":"outbound","status":"live","sandbox":true,"description":"How your inbox warm-ups are doing. Without inbox_id: every warm-up with its status, daily volume and ramp-up day. With inbox_id: that inbox's health grade (SPF, DMARC, MX, domain age) and where its warm-up mail landed over the last 14 days, inbox or spam. Free.","input_schema":{"type":"object","properties":{"inbox_id":{"type":"string","description":"One warmed inbox, for its health grade and 14-day inbox placement"}}},"output_fields":["warmups","count","next_step"],"billing":{"unit":"per_call","bill_on_no_match":false,"note":"Free."},"providers":["mailivery"],"live_providers":["mailivery"],"platforms":[],"offers":[{"provider":"mailivery","mode":"platform_prepaid","provider_status":"live","executable":true,"wired":true,"verified":true,"platforms":[],"verified_platforms":["*"],"price":{"amount":"0","currency":"USD","note":"measured margin over provider cost"},"health":{"status":"stable","latency_ms_p50":1336},"pricing":{"currency":"USD","base":"0","per_result":"0","default_limit":null}}],"starting_price":{"amount":"0","currency":"USD"},"waterfall":{"providers":["mailivery"],"max_cost_for_all":{"amount":"0","currency":"USD"},"note":"A miss is not charged: with max_cost at max_cost_for_all, each provider in turn tries until one finds, and you pay that one provider's price only when it finds."},"hints":["Use provider=\"auto\" for capabilities unless you deliberately need one provider. Pinning a provider disables cross-provider fallback even when allow_fallback=true. max_cost must cover each alternative’s full input-specific quote; a cheapest-route cap can exclude fallback."]},{"capability":"linkedin.accounts","title":"Your LinkedIn accounts","category":"outbound","status":"live","sandbox":true,"description":"Every LinkedIn account this workspace has connected: how many, which profile each one is (linkedin.com/in/...), its live status, and the name to pass as account_id. With inmail_credits it also returns the InMail credits each account has left in every LinkedIn product (Premium, Recruiter, Sales Navigator), so you know before sending. Free. Run it before linkedin.account, so you never mint a link for an account that is already connected.","input_schema":{"type":"object","properties":{"inmail_credits":{"type":"boolean","default":false,"description":"Also return inmail_credits on each connected account: the InMail credits left, keyed by the api value linkedin.message takes (classic is Premium, recruiter, sales_navigator); null for a product the account does not have"}}},"output_fields":["accounts","count","total","next_step"],"billing":{"unit":"per_call","bill_on_no_match":false,"note":"Free: read from your workspace's registry, with each connected account's status refreshed from the provider."},"providers":["unipile"],"live_providers":["unipile"],"platforms":[],"offers":[{"provider":"unipile","mode":"platform_prepaid","provider_status":"live","executable":true,"wired":true,"verified":false,"platforms":[],"verified_platforms":[],"price":{"amount":"0","currency":"USD","note":"provisional: set from the provider's published rates, measured on first smoke run"},"health":{"status":"stable","latency_ms_p50":198},"pricing":{"currency":"USD","base":"0","per_result":"0","default_limit":null}}],"starting_price":{"amount":"0","currency":"USD"},"waterfall":{"providers":["unipile"],"max_cost_for_all":{"amount":"0","currency":"USD"},"note":"A miss is not charged: with max_cost at max_cost_for_all, each provider in turn tries until one finds, and you pay that one provider's price only when it finds."},"hints":["Use provider=\"auto\" for capabilities unless you deliberately need one provider. Pinning a provider disables cross-provider fallback even when allow_fallback=true. max_cost must cover each alternative’s full input-specific quote; a cheapest-route cap can exclude fallback."]},{"capability":"linkedin.account","title":"Your LinkedIn account","category":"outbound","status":"live","sandbox":true,"description":"Connect a LinkedIn account for outbound: returns a hosted sign-in link the account holder opens once (the password never touches RouterGrowth), then reports the connection status. Without a name it reports the account already connected instead of minting a link. Run again with the name to confirm or to get a reconnect link. Free to run; a connected account rents a seat billed monthly.","input_schema":{"type":"object","properties":{"name":{"type":"string","description":"Label for this account inside your workspace, e.g. \"alex\". Omit it to check what is already connected (see linkedin.accounts); give one to connect a new account (\"main\" when nothing is connected yet)."},"return_url":{"type":"string","description":"Where the hosted page sends the person after a successful sign-in"}}},"output_fields":["account_id","name","status","connected","connect_url","accounts","count","charged_through","next_step"],"billing":{"unit":"per_call","bill_on_no_match":false,"note":"Free: connecting, status checks and reconnect links cost nothing. Each connected account then rents a seat at $9.625 a month: the first month is charged to the wallet the moment it connects, then every 30 days until you disconnect it (dashboard, or DELETE /v1/linkedin/accounts/<name>). The account holder is the sender of record and accepts LinkedIn's terms on automation."},"providers":["unipile"],"live_providers":["unipile"],"platforms":[],"offers":[{"provider":"unipile","mode":"platform_prepaid","provider_status":"live","executable":true,"wired":true,"verified":false,"platforms":[],"verified_platforms":[],"price":{"amount":"0","currency":"USD","note":"provisional: set from the provider's published rates, measured on first smoke run"},"health":{"status":"stable","latency_ms_p50":209},"pricing":{"currency":"USD","base":"0","per_result":"0","default_limit":null}}],"starting_price":{"amount":"0","currency":"USD"},"waterfall":{"providers":["unipile"],"max_cost_for_all":{"amount":"0","currency":"USD"},"note":"A miss is not charged: with max_cost at max_cost_for_all, each provider in turn tries until one finds, and you pay that one provider's price only when it finds."},"hints":["Use provider=\"auto\" for capabilities unless you deliberately need one provider. Pinning a provider disables cross-provider fallback even when allow_fallback=true. max_cost must cover each alternative’s full input-specific quote; a cheapest-route cap can exclude fallback."]},{"capability":"linkedin.search","title":"LinkedIn people search","category":"outbound","status":"live","sandbox":true,"description":"Search people from your connected LinkedIn account (classic search, or Sales Navigator when the account has it): keywords, location, company, industry, connection degree. Returns provider ids ready for linkedin.invite.","input_schema":{"type":"object","properties":{"keywords":{"type":"string","description":"e.g. \"head of growth fintech\""},"url":{"type":"string","description":"A LinkedIn people-search URL pasted from the browser; replaces the filters"},"location":{"type":"array","items":{"type":"string"},"description":"Place names (\"Lisbon\", \"France\") or LinkedIn location ids"},"company":{"type":"array","items":{"type":"string"},"description":"Current company names or LinkedIn company ids"},"industry":{"type":"array","items":{"type":"string"}},"network_distance":{"type":"array","items":{"type":"integer"},"description":"1, 2 and/or 3"},"api":{"type":"string","enum":["classic","sales_navigator"],"default":"classic"},"account_id":{"type":"string","description":"The account name (or id) from linkedin.accounts; optional when you have one account"},"limit":{"type":"integer","default":10,"description":"Up to 100 (classic search returns 10 per page)"},"cursor":{"type":"string","description":"From the previous page"}}},"output_fields":["people","cursor"],"billing":{"unit":"per_search","bill_on_no_match":false,"note":"LinkedIn's own search caps apply: about 1,000 profiles a day on a standard account."},"providers":["unipile"],"live_providers":["unipile"],"platforms":[],"offers":[{"provider":"unipile","mode":"platform_prepaid","provider_status":"live","executable":true,"wired":true,"verified":false,"platforms":[],"verified_platforms":[],"price":{"amount":"0.002","currency":"USD","note":"provisional: set from the provider's published rates, measured on first smoke run"},"health":{"status":"stable","latency_ms_p50":1474},"pricing":{"currency":"USD","base":"0.002","per_result":"0","default_limit":null}}],"starting_price":{"amount":"0.002","currency":"USD"},"waterfall":{"providers":["unipile"],"max_cost_for_all":{"amount":"0.002","currency":"USD"},"note":"A miss is not charged: with max_cost at max_cost_for_all, each provider in turn tries until one finds, and you pay that one provider's price only when it finds. Prices are for one result or call; a larger limit quotes more."},"hints":["Use provider=\"auto\" for capabilities unless you deliberately need one provider. Pinning a provider disables cross-provider fallback even when allow_fallback=true. max_cost must cover each alternative’s full input-specific quote; a cheapest-route cap can exclude fallback."]},{"capability":"linkedin.profile","title":"LinkedIn profile","category":"outbound","status":"live","sandbox":true,"description":"One LinkedIn profile as your connected account sees it: name, headline, location, current role, connection degree (1 means the invitation was accepted), open-profile flag. Use it to check acceptance before messaging.","input_schema":{"type":"object","properties":{"profile_url":{"type":"string","description":"https://www.linkedin.com/in/<name>"},"provider_id":{"type":"string","description":"LinkedIn internal id from linkedin.search"},"full":{"type":"boolean","default":false,"description":"Also fetch experience, education and skills (heavier: LinkedIn throttles it)"},"notify":{"type":"boolean","default":false,"description":"Show the visit to the person"},"account_id":{"type":"string","description":"The account name (or id) from linkedin.accounts; optional when you have one account"}}},"output_fields":["provider_id","name","headline","location","degree","connected","work_experience"],"billing":{"unit":"per_profile","bill_on_no_match":false,"note":"About 100 profile views a day per account before LinkedIn throttles."},"providers":["unipile"],"live_providers":["unipile"],"platforms":[],"offers":[{"provider":"unipile","mode":"platform_prepaid","provider_status":"live","executable":true,"wired":true,"verified":false,"platforms":[],"verified_platforms":[],"price":{"amount":"0.002","currency":"USD","note":"provisional: set from the provider's published rates, measured on first smoke run"},"health":{"status":"stable","latency_ms_p50":1254},"pricing":{"currency":"USD","base":"0.002","per_result":"0","default_limit":null}}],"starting_price":{"amount":"0.002","currency":"USD"},"waterfall":{"providers":["unipile"],"max_cost_for_all":{"amount":"0.002","currency":"USD"},"note":"A miss is not charged: with max_cost at max_cost_for_all, each provider in turn tries until one finds, and you pay that one provider's price only when it finds."},"hints":["Use provider=\"auto\" for capabilities unless you deliberately need one provider. Pinning a provider disables cross-provider fallback even when allow_fallback=true. max_cost must cover each alternative’s full input-specific quote; a cheapest-route cap can exclude fallback."]},{"capability":"linkedin.invite","title":"LinkedIn connection request","category":"outbound","status":"live","sandbox":true,"description":"Send a LinkedIn invitation (a connection request) from your connected account, with an optional personalized note (200 characters, 300 on a Premium account; a free account gets about 5 noted invitations a month, then send without a note). Already connected, already invited, or an invitation LinkedIn will not let you resend yet (withdrawn in the last few weeks) comes back as a miss for that person, never as a duplicate send.","input_schema":{"type":"object","properties":{"profile_url":{"type":"string"},"provider_id":{"type":"string","description":"From linkedin.search or linkedin.profile"},"message":{"type":"string","description":"Invitation note: up to 200 characters, 300 when the account has Premium"},"email":{"type":"string","description":"The person's email, when LinkedIn requires it to invite them"},"account_id":{"type":"string","description":"The account name (or id) from linkedin.accounts; optional when you have one account"}}},"output_fields":["invitation_id","provider_id"],"billing":{"unit":"per_invitation","bill_on_no_match":false,"note":"Priced per request sent. LinkedIn pauses an account that sends in bursts or too many, so RouterGrowth paces sends itself: at least 60 s apart per account and never more than 30 a day (20 on an account connected under a week), 180 a week; a send past that is blocked with `paced` and retry_after. The day starts again at 00:00 UTC. Refusals bill nothing."},"providers":["unipile"],"live_providers":["unipile"],"platforms":[],"offers":[{"provider":"unipile","mode":"platform_prepaid","provider_status":"live","executable":true,"wired":true,"verified":false,"platforms":[],"verified_platforms":[],"price":{"amount":"0.00875","currency":"USD","note":"provisional: set from the provider's published rates, measured on first smoke run"},"health":{"status":"stable","latency_ms_p50":1951},"pricing":{"currency":"USD","base":"0.00875","per_result":"0","default_limit":null}}],"starting_price":{"amount":"0.00875","currency":"USD"},"waterfall":{"providers":["unipile"],"max_cost_for_all":{"amount":"0.00875","currency":"USD"},"note":"A miss is not charged: with max_cost at max_cost_for_all, each provider in turn tries until one finds, and you pay that one provider's price only when it finds."},"hints":["Use provider=\"auto\" for capabilities unless you deliberately need one provider. Pinning a provider disables cross-provider fallback even when allow_fallback=true. max_cost must cover each alternative’s full input-specific quote; a cheapest-route cap can exclude fallback."]},{"capability":"linkedin.invitations_sent","title":"LinkedIn invitations sent","category":"outbound","status":"live","sandbox":true,"description":"The pending connection requests on your connected account, counted today (the day starts again at 00:00 UTC) and over the last 7 days against the caps (30 a day on RouterGrowth, 20 in the account's first week connected; roughly 200 a week on LinkedIn; about 5 with a note a month on a free account), with how many more to send now and the recent invitations with their notes. Free. Run it before a batch of linkedin.invite.","input_schema":{"type":"object","properties":{"account_id":{"type":"string","description":"The account name (or id) from linkedin.accounts; optional when you have one account"}}},"output_fields":["pending","sent_today","last_24h","last_7d","remaining_today","resets_at","remaining_this_week","invitations","next_step"],"billing":{"unit":"per_call","bill_on_no_match":false,"note":"Free. Counts are a floor: accepted and withdrawn invitations leave LinkedIn's pending list, and LinkedIn does not publish its caps."},"providers":["unipile"],"live_providers":["unipile"],"platforms":[],"offers":[{"provider":"unipile","mode":"platform_prepaid","provider_status":"live","executable":true,"wired":true,"verified":false,"platforms":[],"verified_platforms":[],"price":{"amount":"0","currency":"USD","note":"provisional: set from the provider's published rates, measured on first smoke run"},"health":{"status":"stable","latency_ms_p50":2119},"pricing":{"currency":"USD","base":"0","per_result":"0","default_limit":null}}],"starting_price":{"amount":"0","currency":"USD"},"waterfall":{"providers":["unipile"],"max_cost_for_all":{"amount":"0","currency":"USD"},"note":"A miss is not charged: with max_cost at max_cost_for_all, each provider in turn tries until one finds, and you pay that one provider's price only when it finds."},"hints":["Use provider=\"auto\" for capabilities unless you deliberately need one provider. Pinning a provider disables cross-provider fallback even when allow_fallback=true. max_cost must cover each alternative’s full input-specific quote; a cheapest-route cap can exclude fallback."]},{"capability":"linkedin.message","title":"LinkedIn message","category":"outbound","status":"live","sandbox":true,"description":"Message a connection from your account, reply in an existing thread, or send an InMail to someone you are not connected to. InMail credits belong to one LinkedIn product: inmail:true draws on the Premium credits, api recruiter or sales_navigator sends through that seat and its credits. linkedin.accounts with inmail_credits:true shows each balance before you send. You are the sender of record.","input_schema":{"type":"object","required":["text"],"properties":{"text":{"type":"string"},"chat_id":{"type":"string","description":"From linkedin.messages: reply in that thread"},"profile_url":{"type":"string","description":"Start a new conversation with this person"},"provider_id":{"type":"string"},"inmail":{"type":"boolean","default":false,"description":"Send as InMail on the account's Premium credits (needs a subject). For a Recruiter or Sales Navigator seat, pass api instead"},"api":{"type":"string","enum":["classic","recruiter","sales_navigator"],"default":"classic","description":"The LinkedIn product a new conversation is sent through, and whose InMail credits it uses: classic (Premium, with inmail:true), recruiter or sales_navigator. Outside classic the message is an InMail and needs a subject. Ignored on a reply (chat_id)"},"subject":{"type":"string"},"account_id":{"type":"string","description":"The account name (or id) from linkedin.accounts; optional when you have one account"}}},"output_fields":["chat_id","message_id"],"billing":{"unit":"per_message","bill_on_no_match":false,"note":"Priced per message sent; a refused send bills nothing."},"providers":["unipile"],"live_providers":["unipile"],"platforms":[],"offers":[{"provider":"unipile","mode":"platform_prepaid","provider_status":"live","executable":true,"wired":true,"verified":false,"platforms":[],"verified_platforms":[],"price":{"amount":"0.00875","currency":"USD","note":"provisional: set from the provider's published rates, measured on first smoke run"},"health":{"status":"stable","latency_ms_p50":1102},"pricing":{"currency":"USD","base":"0.00875","per_result":"0","default_limit":null}}],"starting_price":{"amount":"0.00875","currency":"USD"},"waterfall":{"providers":["unipile"],"max_cost_for_all":{"amount":"0.00875","currency":"USD"},"note":"A miss is not charged: with max_cost at max_cost_for_all, each provider in turn tries until one finds, and you pay that one provider's price only when it finds."},"hints":["Use provider=\"auto\" for capabilities unless you deliberately need one provider. Pinning a provider disables cross-provider fallback even when allow_fallback=true. max_cost must cover each alternative’s full input-specific quote; a cheapest-route cap can exclude fallback."]},{"capability":"linkedin.messages","title":"Read LinkedIn inbox","category":"outbound","status":"live","sandbox":true,"description":"Conversations on your connected account, newest first, with unread counts; pass chat_id to read one thread. Poll it after invitations and messages to catch replies.","input_schema":{"type":"object","properties":{"chat_id":{"type":"string","description":"Read this thread's messages"},"unread":{"type":"boolean","default":false,"description":"Only conversations with new replies"},"after":{"type":"string","description":"ISO timestamp"},"limit":{"type":"integer","default":20},"cursor":{"type":"string"},"account_id":{"type":"string","description":"The account name (or id) from linkedin.accounts; optional when you have one account"}}},"output_fields":["chats","messages","cursor"],"billing":{"unit":"per_read","bill_on_no_match":false},"providers":["unipile"],"live_providers":["unipile"],"platforms":[],"offers":[{"provider":"unipile","mode":"platform_prepaid","provider_status":"live","executable":true,"wired":true,"verified":false,"platforms":[],"verified_platforms":[],"price":{"amount":"0.002","currency":"USD","note":"provisional: set from the provider's published rates, measured on first smoke run"},"health":{"status":"stable","latency_ms_p50":136},"pricing":{"currency":"USD","base":"0.002","per_result":"0","default_limit":null}}],"starting_price":{"amount":"0.002","currency":"USD"},"waterfall":{"providers":["unipile"],"max_cost_for_all":{"amount":"0.002","currency":"USD"},"note":"A miss is not charged: with max_cost at max_cost_for_all, each provider in turn tries until one finds, and you pay that one provider's price only when it finds."},"hints":["Use provider=\"auto\" for capabilities unless you deliberately need one provider. Pinning a provider disables cross-provider fallback even when allow_fallback=true. max_cost must cover each alternative’s full input-specific quote; a cheapest-route cap can exclude fallback."]},{"capability":"instagram.accounts","title":"Your Instagram accounts","category":"outbound","status":"live","sandbox":true,"description":"Every Instagram account this workspace has connected: how many, which handle each one is, its live status, and the name to pass as account_id. Free. Run it before instagram.account, so you never mint a link for an account that is already connected.","input_schema":{"type":"object","properties":{}},"output_fields":["accounts","count","total","next_step"],"billing":{"unit":"per_call","bill_on_no_match":false,"note":"Free: read from your workspace's registry, with each connected account's status refreshed from the provider."},"providers":["unipile"],"live_providers":["unipile"],"platforms":[],"offers":[{"provider":"unipile","mode":"platform_prepaid","provider_status":"live","executable":true,"wired":true,"verified":false,"platforms":[],"verified_platforms":[],"price":{"amount":"0","currency":"USD","note":"provisional: set from the provider's published rates, measured on first smoke run"},"health":{"status":"unknown","latency_ms_p50":43},"pricing":{"currency":"USD","base":"0","per_result":"0","default_limit":null}}],"starting_price":{"amount":"0","currency":"USD"},"waterfall":{"providers":["unipile"],"max_cost_for_all":{"amount":"0","currency":"USD"},"note":"A miss is not charged: with max_cost at max_cost_for_all, each provider in turn tries until one finds, and you pay that one provider's price only when it finds."},"hints":["Use provider=\"auto\" for capabilities unless you deliberately need one provider. Pinning a provider disables cross-provider fallback even when allow_fallback=true. max_cost must cover each alternative’s full input-specific quote; a cheapest-route cap can exclude fallback."]},{"capability":"instagram.account","title":"Your Instagram account","category":"outbound","status":"live","sandbox":true,"description":"Connect an Instagram account for DMs: returns a hosted sign-in link the account holder opens once (username, password and the two-factor code go to the provider's page, never to RouterGrowth), then reports the connection status. Without a name it reports the account already connected instead of minting a link. Run again with the name to confirm or to get a reconnect link. Free to run; a connected account rents a seat billed monthly.","input_schema":{"type":"object","properties":{"name":{"type":"string","description":"Label for this account inside your workspace, e.g. \"studio\". Omit it to check what is already connected (see instagram.accounts); give one to connect a new account (\"main\" when nothing is connected yet)."},"return_url":{"type":"string","description":"Where the hosted page sends the person after a successful sign-in"}}},"output_fields":["account_id","name","status","connected","connect_url","accounts","count","charged_through","next_step"],"billing":{"unit":"per_call","bill_on_no_match":false,"note":"Free: connecting, status checks and reconnect links cost nothing. Each connected account then rents a seat at $9.625 a month: the first month is charged to the wallet the moment it connects, then every 30 days until you disconnect it (dashboard, or DELETE /v1/instagram/accounts/<name>). The account holder is the sender of record and accepts Instagram's terms on automation."},"providers":["unipile"],"live_providers":["unipile"],"platforms":[],"offers":[{"provider":"unipile","mode":"platform_prepaid","provider_status":"live","executable":true,"wired":true,"verified":false,"platforms":[],"verified_platforms":[],"price":{"amount":"0","currency":"USD","note":"provisional: set from the provider's published rates, measured on first smoke run"},"health":{"status":"unknown","latency_ms_p50":null},"pricing":{"currency":"USD","base":"0","per_result":"0","default_limit":null}}],"starting_price":{"amount":"0","currency":"USD"},"waterfall":{"providers":["unipile"],"max_cost_for_all":{"amount":"0","currency":"USD"},"note":"A miss is not charged: with max_cost at max_cost_for_all, each provider in turn tries until one finds, and you pay that one provider's price only when it finds."},"hints":["Use provider=\"auto\" for capabilities unless you deliberately need one provider. Pinning a provider disables cross-provider fallback even when allow_fallback=true. max_cost must cover each alternative’s full input-specific quote; a cheapest-route cap can exclude fallback."]},{"capability":"instagram.profile","title":"Instagram profile","category":"outbound","status":"live","sandbox":true,"description":"One Instagram account as your connected account sees it: name, handle, bio, followers, category, the links in the bio with the person's own domain resolved, the business email, phone and address when the account exposes them, whether they follow you, and the messaging_id a new DM needs. The enrichment step between finding a handle and writing to it.","input_schema":{"type":"object","properties":{"handle":{"type":"string","description":"@handle or bare username"},"profile_url":{"type":"string","description":"https://www.instagram.com/<handle>/"},"provider_id":{"type":"string","description":"Instagram numeric id from a previous lookup"},"account_id":{"type":"string","description":"The account name (or id) from instagram.accounts; optional when you have one account"}}},"output_fields":["handle","name","bio","followers","category","website","links","domain","email","phone","is_business","follows_you","messaging_id"],"billing":{"unit":"per_profile","bill_on_no_match":false,"note":"Unlimited upstream, so it bills the floor. Instagram counts profile views as actions: stay inside about 100 actions a day per account."},"providers":["unipile"],"live_providers":["unipile"],"platforms":[],"offers":[{"provider":"unipile","mode":"platform_prepaid","provider_status":"live","executable":true,"wired":true,"verified":false,"platforms":[],"verified_platforms":[],"price":{"amount":"0.002","currency":"USD","note":"provisional: set from the provider's published rates, measured on first smoke run"},"health":{"status":"unknown","latency_ms_p50":null},"pricing":{"currency":"USD","base":"0.002","per_result":"0","default_limit":null}}],"starting_price":{"amount":"0.002","currency":"USD"},"waterfall":{"providers":["unipile"],"max_cost_for_all":{"amount":"0.002","currency":"USD"},"note":"A miss is not charged: with max_cost at max_cost_for_all, each provider in turn tries until one finds, and you pay that one provider's price only when it finds."},"hints":["Use provider=\"auto\" for capabilities unless you deliberately need one provider. Pinning a provider disables cross-provider fallback even when allow_fallback=true. max_cost must cover each alternative’s full input-specific quote; a cheapest-route cap can exclude fallback."]},{"capability":"instagram.message","title":"Instagram DM","category":"outbound","status":"live","sandbox":true,"description":"Send a direct message from your connected Instagram account: open a new conversation with a handle (or the messaging_id from instagram.profile), or reply in an existing thread by chat_id. You are the sender of record. A first message to someone who does not follow you lands in their requests folder.","input_schema":{"type":"object","required":["text"],"properties":{"text":{"type":"string"},"chat_id":{"type":"string","description":"From instagram.messages: reply in that thread"},"handle":{"type":"string","description":"Start a new conversation with this account (@handle)"},"profile_url":{"type":"string"},"messaging_id":{"type":"string","description":"From instagram.profile; skips the lookup"},"account_id":{"type":"string","description":"The account name (or id) from instagram.accounts; optional when you have one account"}}},"output_fields":["chat_id","message_id","messaging_id","handle"],"billing":{"unit":"per_message","bill_on_no_match":false,"note":"Priced per message sent; a refused send bills nothing. Instagram tolerates about 100 actions a day and 10 an hour per account; new accounts start lower."},"providers":["unipile"],"live_providers":["unipile"],"platforms":[],"offers":[{"provider":"unipile","mode":"platform_prepaid","provider_status":"live","executable":true,"wired":true,"verified":false,"platforms":[],"verified_platforms":[],"price":{"amount":"0.00875","currency":"USD","note":"provisional: set from the provider's published rates, measured on first smoke run"},"health":{"status":"unknown","latency_ms_p50":null},"pricing":{"currency":"USD","base":"0.00875","per_result":"0","default_limit":null}}],"starting_price":{"amount":"0.00875","currency":"USD"},"waterfall":{"providers":["unipile"],"max_cost_for_all":{"amount":"0.00875","currency":"USD"},"note":"A miss is not charged: with max_cost at max_cost_for_all, each provider in turn tries until one finds, and you pay that one provider's price only when it finds."},"hints":["Use provider=\"auto\" for capabilities unless you deliberately need one provider. Pinning a provider disables cross-provider fallback even when allow_fallback=true. max_cost must cover each alternative’s full input-specific quote; a cheapest-route cap can exclude fallback."]},{"capability":"instagram.messages","title":"Read Instagram inbox","category":"outbound","status":"live","sandbox":true,"description":"Conversations on your connected Instagram account, newest first, with unread counts; pass chat_id to read one thread. Poll it after DMs to catch replies.","input_schema":{"type":"object","properties":{"chat_id":{"type":"string","description":"Read this thread's messages"},"unread":{"type":"boolean","default":false,"description":"Only conversations with new replies"},"after":{"type":"string","description":"ISO timestamp"},"limit":{"type":"integer","default":20},"cursor":{"type":"string"},"account_id":{"type":"string","description":"The account name (or id) from instagram.accounts; optional when you have one account"}}},"output_fields":["chats","messages","cursor"],"billing":{"unit":"per_read","bill_on_no_match":false},"providers":["unipile"],"live_providers":["unipile"],"platforms":[],"offers":[{"provider":"unipile","mode":"platform_prepaid","provider_status":"live","executable":true,"wired":true,"verified":false,"platforms":[],"verified_platforms":[],"price":{"amount":"0.002","currency":"USD","note":"provisional: set from the provider's published rates, measured on first smoke run"},"health":{"status":"unknown","latency_ms_p50":null},"pricing":{"currency":"USD","base":"0.002","per_result":"0","default_limit":null}}],"starting_price":{"amount":"0.002","currency":"USD"},"waterfall":{"providers":["unipile"],"max_cost_for_all":{"amount":"0.002","currency":"USD"},"note":"A miss is not charged: with max_cost at max_cost_for_all, each provider in turn tries until one finds, and you pay that one provider's price only when it finds."},"hints":["Use provider=\"auto\" for capabilities unless you deliberately need one provider. Pinning a provider disables cross-provider fallback even when allow_fallback=true. max_cost must cover each alternative’s full input-specific quote; a cheapest-route cap can exclude fallback."]},{"capability":"whatsapp.accounts","title":"Your WhatsApp accounts","category":"outbound","status":"live","sandbox":true,"description":"List this workspace's connected WhatsApp accounts, identity and live status. Free; run before connecting another account.","input_schema":{"type":"object","properties":{}},"output_fields":["accounts","count","total","next_step"],"billing":{"unit":"per_call","bill_on_no_match":false,"note":"Free account listing; refreshes connected account statuses."},"providers":["unipile"],"live_providers":["unipile"],"platforms":[],"offers":[{"provider":"unipile","mode":"platform_prepaid","provider_status":"live","executable":true,"wired":true,"verified":false,"platforms":[],"verified_platforms":[],"price":{"amount":"0","currency":"USD","note":"provisional: set from the provider's published rates, measured on first smoke run"},"health":{"status":"unknown","latency_ms_p50":174},"pricing":{"currency":"USD","base":"0","per_result":"0","default_limit":null}}],"starting_price":{"amount":"0","currency":"USD"},"waterfall":{"providers":["unipile"],"max_cost_for_all":{"amount":"0","currency":"USD"},"note":"A miss is not charged: with max_cost at max_cost_for_all, each provider in turn tries until one finds, and you pay that one provider's price only when it finds."},"hints":["Use provider=\"auto\" for capabilities unless you deliberately need one provider. Pinning a provider disables cross-provider fallback even when allow_fallback=true. max_cost must cover each alternative’s full input-specific quote; a cheapest-route cap can exclude fallback."]},{"capability":"whatsapp.account","title":"Connect WhatsApp","category":"outbound","status":"live","sandbox":true,"description":"Connect, reconnect or check an existing WhatsApp account: scan a QR code or use a pairing code on the hosted page. Without a name, reports connected accounts first. Connection and status checks are free; connected accounts are billed monthly.","input_schema":{"type":"object","properties":{"name":{"type":"string","description":"Workspace label, such as sales. Reuse the same name to confirm or reconnect."},"return_url":{"type":"string","description":"Redirect after successful connection."}}},"output_fields":["account_id","name","status","connected","connect_url","username","accounts","count","next_step"],"billing":{"unit":"per_call","bill_on_no_match":false,"note":"Connection/status checks settle free. Each connected account costs $9.625 per 30 days, the first period charged the moment it connects, until disconnected in the dashboard or DELETE /v1/whatsapp/accounts/<name>."},"providers":["unipile"],"live_providers":["unipile"],"platforms":[],"offers":[{"provider":"unipile","mode":"platform_prepaid","provider_status":"live","executable":true,"wired":true,"verified":false,"platforms":[],"verified_platforms":[],"price":{"amount":"0","currency":"USD","note":"provisional: set from the provider's published rates, measured on first smoke run"},"health":{"status":"stable","latency_ms_p50":192},"pricing":{"currency":"USD","base":"0","per_result":"0","default_limit":null}}],"starting_price":{"amount":"0","currency":"USD"},"waterfall":{"providers":["unipile"],"max_cost_for_all":{"amount":"0","currency":"USD"},"note":"A miss is not charged: with max_cost at max_cost_for_all, each provider in turn tries until one finds, and you pay that one provider's price only when it finds."},"hints":["Use provider=\"auto\" for capabilities unless you deliberately need one provider. Pinning a provider disables cross-provider fallback even when allow_fallback=true. max_cost must cover each alternative’s full input-specific quote; a cheapest-route cap can exclude fallback."]},{"capability":"whatsapp.profile","title":"WhatsApp profile","category":"outbound","status":"live","sandbox":true,"description":"Check whether an international phone number uses WhatsApp and retrieve the available profile through your connected account.","input_schema":{"type":"object","properties":{"account_id":{"type":"string","description":"Account name or ID from whatsapp.accounts. Optional when exactly one account is connected."},"phone":{"type":"string","description":"International phone number with + and country code, e.g. +14155550123."},"provider_id":{"type":"string","description":"WhatsApp user ID returned by Unipile (@s.whatsapp.net or @lid). Reuse unchanged."}}},"output_fields":["provider_id","name","phone","picture_url"],"billing":{"unit":"per_call","bill_on_no_match":false,"note":"Profile lookup; a missing WhatsApp user is an unbilled no-match."},"providers":["unipile"],"live_providers":["unipile"],"platforms":[],"offers":[{"provider":"unipile","mode":"platform_prepaid","provider_status":"live","executable":true,"wired":true,"verified":false,"platforms":[],"verified_platforms":[],"price":{"amount":"0.002","currency":"USD","note":"provisional: set from the provider's published rates, measured on first smoke run"},"health":{"status":"unknown","latency_ms_p50":null},"pricing":{"currency":"USD","base":"0.002","per_result":"0","default_limit":null}}],"starting_price":{"amount":"0.002","currency":"USD"},"waterfall":{"providers":["unipile"],"max_cost_for_all":{"amount":"0.002","currency":"USD"},"note":"A miss is not charged: with max_cost at max_cost_for_all, each provider in turn tries until one finds, and you pay that one provider's price only when it finds."},"hints":["Use provider=\"auto\" for capabilities unless you deliberately need one provider. Pinning a provider disables cross-provider fallback even when allow_fallback=true. max_cost must cover each alternative’s full input-specific quote; a cheapest-route cap can exclude fallback."]},{"capability":"whatsapp.message","title":"Send WhatsApp message","category":"outbound","status":"live","sandbox":true,"description":"Send text to a phone number or provider_id, or reply in an existing chat by chat_id, from your connected WhatsApp account.","input_schema":{"type":"object","properties":{"account_id":{"type":"string","description":"Account name or ID from whatsapp.accounts. Optional when exactly one account is connected."},"phone":{"type":"string","description":"International phone number with + and country code, e.g. +14155550123."},"provider_id":{"type":"string","description":"WhatsApp user ID returned by Unipile (@s.whatsapp.net or @lid). Reuse unchanged."},"chat_id":{"type":"string","description":"Existing chat from whatsapp.messages; must belong to the selected account."},"text":{"type":"string","minLength":1}},"required":["text"]},"output_fields":["chat_id","message_id","provider_id"],"billing":{"unit":"per_message","bill_on_no_match":false,"note":"Charged per successful send. WhatsApp account restrictions apply. Text only; attachments and broadcast campaigns are not exposed."},"providers":["unipile"],"live_providers":["unipile"],"platforms":[],"offers":[{"provider":"unipile","mode":"platform_prepaid","provider_status":"live","executable":true,"wired":true,"verified":false,"platforms":[],"verified_platforms":[],"price":{"amount":"0.00875","currency":"USD","note":"provisional: set from the provider's published rates, measured on first smoke run"},"health":{"status":"unknown","latency_ms_p50":4469},"pricing":{"currency":"USD","base":"0.00875","per_result":"0","default_limit":null}}],"starting_price":{"amount":"0.00875","currency":"USD"},"waterfall":{"providers":["unipile"],"max_cost_for_all":{"amount":"0.00875","currency":"USD"},"note":"A miss is not charged: with max_cost at max_cost_for_all, each provider in turn tries until one finds, and you pay that one provider's price only when it finds."},"hints":["Use provider=\"auto\" for capabilities unless you deliberately need one provider. Pinning a provider disables cross-provider fallback even when allow_fallback=true. max_cost must cover each alternative’s full input-specific quote; a cheapest-route cap can exclude fallback."]},{"capability":"whatsapp.messages","title":"Read WhatsApp inbox","category":"outbound","status":"live","sandbox":true,"description":"List conversations or pass chat_id to read a thread. Supports pagination, unread conversations and an after timestamp. Channels, Communities and Broadcasts are not supported.","input_schema":{"type":"object","properties":{"account_id":{"type":"string","description":"Account name or ID from whatsapp.accounts. Optional when exactly one account is connected."},"chat_id":{"type":"string"},"unread":{"type":"boolean","default":false},"after":{"type":"string","description":"ISO 8601 timestamp with timezone."},"limit":{"type":"integer","minimum":1,"maximum":100,"default":20},"cursor":{"type":"string"}}},"output_fields":["chats","messages","cursor"],"billing":{"unit":"per_call","bill_on_no_match":false,"note":"Charged per read; an empty inbox is a successful read."},"providers":["unipile"],"live_providers":["unipile"],"platforms":[],"offers":[{"provider":"unipile","mode":"platform_prepaid","provider_status":"live","executable":true,"wired":true,"verified":false,"platforms":[],"verified_platforms":[],"price":{"amount":"0.002","currency":"USD","note":"provisional: set from the provider's published rates, measured on first smoke run"},"health":{"status":"stable","latency_ms_p50":250},"pricing":{"currency":"USD","base":"0.002","per_result":"0","default_limit":null}}],"starting_price":{"amount":"0.002","currency":"USD"},"waterfall":{"providers":["unipile"],"max_cost_for_all":{"amount":"0.002","currency":"USD"},"note":"A miss is not charged: with max_cost at max_cost_for_all, each provider in turn tries until one finds, and you pay that one provider's price only when it finds."},"hints":["Use provider=\"auto\" for capabilities unless you deliberately need one provider. Pinning a provider disables cross-provider fallback even when allow_fallback=true. max_cost must cover each alternative’s full input-specific quote; a cheapest-route cap can exclude fallback."]},{"capability":"gmail.accounts","title":"Your Gmail accounts","category":"outbound","status":"live","sandbox":true,"description":"List this workspace's connected Gmail accounts, identity and live status. Free; run before connecting another account.","input_schema":{"type":"object","properties":{}},"output_fields":["accounts","count","total","next_step"],"billing":{"unit":"per_call","bill_on_no_match":false,"note":"Free account listing; refreshes connected account statuses."},"providers":["unipile"],"live_providers":["unipile"],"platforms":[],"offers":[{"provider":"unipile","mode":"platform_prepaid","provider_status":"live","executable":true,"wired":true,"verified":false,"platforms":[],"verified_platforms":[],"price":{"amount":"0","currency":"USD","note":"provisional: set from the provider's published rates, measured on first smoke run"},"health":{"status":"stable","latency_ms_p50":120},"pricing":{"currency":"USD","base":"0","per_result":"0","default_limit":null}}],"starting_price":{"amount":"0","currency":"USD"},"waterfall":{"providers":["unipile"],"max_cost_for_all":{"amount":"0","currency":"USD"},"note":"A miss is not charged: with max_cost at max_cost_for_all, each provider in turn tries until one finds, and you pay that one provider's price only when it finds."},"hints":["Use provider=\"auto\" for capabilities unless you deliberately need one provider. Pinning a provider disables cross-provider fallback even when allow_fallback=true. max_cost must cover each alternative’s full input-specific quote; a cheapest-route cap can exclude fallback."]},{"capability":"gmail.account","title":"Connect Gmail","category":"outbound","status":"live","sandbox":true,"description":"Connect, reconnect or check an existing Gmail account: authorize your existing Gmail or Google Workspace mailbox through Google OAuth. Without a name, reports connected accounts first. Connection and status checks are free; connected accounts are billed monthly.","input_schema":{"type":"object","properties":{"name":{"type":"string","description":"Workspace label, such as sales. Reuse the same name to confirm or reconnect."},"return_url":{"type":"string","description":"Redirect after successful connection."}}},"output_fields":["account_id","name","status","connected","connect_url","username","accounts","count","next_step"],"billing":{"unit":"per_call","bill_on_no_match":false,"note":"Connection/status checks settle free. Each connected account costs $9.625 per 30 days, the first period charged the moment it connects, until disconnected in the dashboard or DELETE /v1/gmail/accounts/<name>."},"providers":["unipile"],"live_providers":["unipile"],"platforms":[],"offers":[{"provider":"unipile","mode":"platform_prepaid","provider_status":"live","executable":true,"wired":true,"verified":false,"platforms":[],"verified_platforms":[],"price":{"amount":"0","currency":"USD","note":"provisional: set from the provider's published rates, measured on first smoke run"},"health":{"status":"unknown","latency_ms_p50":185},"pricing":{"currency":"USD","base":"0","per_result":"0","default_limit":null}}],"starting_price":{"amount":"0","currency":"USD"},"waterfall":{"providers":["unipile"],"max_cost_for_all":{"amount":"0","currency":"USD"},"note":"A miss is not charged: with max_cost at max_cost_for_all, each provider in turn tries until one finds, and you pay that one provider's price only when it finds."},"hints":["Use provider=\"auto\" for capabilities unless you deliberately need one provider. Pinning a provider disables cross-provider fallback even when allow_fallback=true. max_cost must cover each alternative’s full input-specific quote; a cheapest-route cap can exclude fallback."]},{"capability":"gmail.send","title":"Send or reply through Gmail","category":"outbound","status":"live","sandbox":true,"description":"Send email from an existing Gmail or Google Workspace mailbox connected with gmail.account. Pass in_reply_to from gmail.messages to reply in a thread. This does not provision an AgentMail inbox.","input_schema":{"type":"object","properties":{"account_id":{"type":"string","description":"Account name or ID from gmail.accounts. Optional when exactly one account is connected."},"to":{"type":"array","items":{"type":"string"},"description":"Email addresses. At most 50 recipients total across to, cc and bcc."},"cc":{"type":"array","items":{"type":"string"},"description":"Email addresses. At most 50 recipients total across to, cc and bcc."},"bcc":{"type":"array","items":{"type":"string"},"description":"Email addresses. At most 50 recipients total across to, cc and bcc."},"subject":{"type":"string"},"text":{"type":"string"},"html":{"type":"string","description":"HTML body; takes precedence over text when both are supplied."},"in_reply_to":{"type":"string","description":"message_id from gmail.messages in the selected mailbox. The original subject is reused if omitted."}},"required":["to"]},"output_fields":["tracking_id","provider_id","note"],"billing":{"unit":"per_message","bill_on_no_match":false,"note":"Charged per successful send; text or html required. Gmail sending limits apply. Use a RouterGrowth Idempotency-Key for retries. Tracking IDs are not email message IDs."},"providers":["unipile"],"live_providers":["unipile"],"platforms":[],"offers":[{"provider":"unipile","mode":"platform_prepaid","provider_status":"live","executable":true,"wired":true,"verified":false,"platforms":[],"verified_platforms":[],"price":{"amount":"0.00875","currency":"USD","note":"provisional: set from the provider's published rates, measured on first smoke run"},"health":{"status":"stable","latency_ms_p50":484},"pricing":{"currency":"USD","base":"0.00875","per_result":"0","default_limit":null}}],"starting_price":{"amount":"0.00875","currency":"USD"},"waterfall":{"providers":["unipile"],"max_cost_for_all":{"amount":"0.00875","currency":"USD"},"note":"A miss is not charged: with max_cost at max_cost_for_all, each provider in turn tries until one finds, and you pay that one provider's price only when it finds."},"hints":["Use provider=\"auto\" for capabilities unless you deliberately need one provider. Pinning a provider disables cross-provider fallback even when allow_fallback=true. max_cost must cover each alternative’s full input-specific quote; a cheapest-route cap can exclude fallback."]},{"capability":"gmail.messages","title":"Read Gmail email","category":"outbound","status":"live","sandbox":true,"description":"Read sent and received emails in a connected Gmail or Google Workspace mailbox, newest first. Search, filter, paginate, or fetch one message_id with its text and HTML body.","input_schema":{"type":"object","properties":{"account_id":{"type":"string","description":"Account name or ID from gmail.accounts. Optional when exactly one account is connected."},"message_id":{"type":"string","description":"Read a single email in the selected mailbox; returned IDs can be used as gmail.send in_reply_to."},"cursor":{"type":"string"},"search":{"type":"string","description":"Free-text search in subject and body."},"from":{"type":"string"},"to":{"type":"string"},"folder":{"type":"string"},"thread_id":{"type":"string"},"after":{"type":"string","description":"ISO 8601 timestamp with timezone."},"limit":{"type":"integer","minimum":1,"maximum":100,"default":20}}},"output_fields":["messages","count","cursor"],"billing":{"unit":"per_call","bill_on_no_match":false,"note":"Charged per read; an empty mailbox is a successful read."},"providers":["unipile"],"live_providers":["unipile"],"platforms":[],"offers":[{"provider":"unipile","mode":"platform_prepaid","provider_status":"live","executable":true,"wired":true,"verified":false,"platforms":[],"verified_platforms":[],"price":{"amount":"0.002","currency":"USD","note":"provisional: set from the provider's published rates, measured on first smoke run"},"health":{"status":"stable","latency_ms_p50":738},"pricing":{"currency":"USD","base":"0.002","per_result":"0","default_limit":null}}],"starting_price":{"amount":"0.002","currency":"USD"},"waterfall":{"providers":["unipile"],"max_cost_for_all":{"amount":"0.002","currency":"USD"},"note":"A miss is not charged: with max_cost at max_cost_for_all, each provider in turn tries until one finds, and you pay that one provider's price only when it finds."},"hints":["Use provider=\"auto\" for capabilities unless you deliberately need one provider. Pinning a provider disables cross-provider fallback even when allow_fallback=true. max_cost must cover each alternative’s full input-specific quote; a cheapest-route cap can exclude fallback."]},{"capability":"memory.add","title":"Remember","category":"memory","status":"coming_soon","sandbox":true,"description":"Give your agent a memory. Send text, a URL, a conversation or plain facts; learner-1 extracts what matters, links it to what it already knows and updates facts that changed. Scope it with a namespace (\"lead:acme\", \"campaign:q4\", a user id) so each subject keeps its own memory inside your workspace.","input_schema":{"type":"object","properties":{"content":{"type":"string","description":"Text to remember, or a URL to fetch (page, PDF, image, video). One of content, messages or facts."},"messages":{"type":"array","items":{"type":"object"},"description":"A conversation: [{\"role\": \"user\"|\"assistant\"|\"system\"|\"tool\", \"content\": \"...\"}]. Send the same conversation_id again to extend it."},"facts":{"type":"array","items":{"type":"string"},"description":"Statements to store as-is, searchable at once: [\"Acme runs on HubSpot\", \"Maria owns the SDR budget\"]"},"namespace":{"type":"string","description":"Memory scope inside your workspace, e.g. \"lead:acme\" or \"campaign:q4\"; omit for the workspace-wide memory"},"conversation_id":{"type":"string","description":"With messages: your id for the thread, so later calls extend it instead of duplicating it"},"custom_id":{"type":"string","description":"Your id for this content; re-adding the same custom_id updates it instead of billing again"},"metadata":{"type":"object","description":"Flat key-value tags (strings, numbers, booleans) attached to the memories"},"document_date":{"type":"string","description":"When the content is from (YYYY-MM-DD or ISO 8601), for backfills"},"static":{"type":"boolean","default":false,"description":"With facts: mark them permanent traits (name, role, company)"},"instant":{"type":"boolean","default":false,"description":"Process this content right away instead of batching it with related content"}}},"output_fields":["mode","document_id","status","memories","conversation_id","next_step"],"billing":{"unit":"per_add","bill_on_no_match":false,"note":"Priced by size: $0.00875 per 1,000 tokens of text, $0.0175 per 1,000 for PDFs, images and media, floor $0.002. A URL is quoted as about 3,000 tokens. Facts add $0.000175 each; instant processing adds $0.000175. Supermemory only meters new content, so re-adding the same custom_id costs nothing upstream. If the provider's actual cost overruns the estimate, the run bills the overrun at the same per-call rate, capped by the hold."},"providers":["supermemory"],"live_providers":[],"platforms":[],"offers":[{"provider":"supermemory","mode":"platform_prepaid","provider_status":"ready","executable":false,"wired":true,"verified":false,"platforms":[],"verified_platforms":[],"price":{"amount":"0.002","currency":"USD","note":"provisional: set from the provider's published rates, measured on first smoke run"},"health":{"status":"unknown","latency_ms_p50":null},"pricing":{"currency":"USD","base":"0.002","per_result":"0","default_limit":null}}],"starting_price":{"amount":"0.002","currency":"USD"},"waterfall":null,"hints":["Use provider=\"auto\" for capabilities unless you deliberately need one provider. Pinning a provider disables cross-provider fallback even when allow_fallback=true. max_cost must cover each alternative’s full input-specific quote; a cheapest-route cap can exclude fallback."]},{"capability":"memory.search","title":"Recall","category":"memory","status":"coming_soon","sandbox":true,"description":"Ask the memory a question in plain language and get the memories that answer it, ranked by similarity, with the facts they superseded and the ones they relate to. Search memories (fast, conversational), the source documents (chunks with citations), or both.","input_schema":{"type":"object","required":["query"],"properties":{"query":{"type":"string","description":"e.g. \"what tools does Acme use\""},"namespace":{"type":"string","description":"Same value you gave memory.add; omit for the workspace-wide memory"},"mode":{"type":"string","enum":["memories","hybrid","documents"],"default":"memories","description":"memories: extracted facts. documents: chunks of the sources. hybrid: both."},"limit":{"type":"integer","default":10,"description":"Up to 50"},"threshold":{"type":"number","default":0.6,"description":"0 returns the most, 1 only near-exact matches"},"rerank":{"type":"boolean","default":false,"description":"Rerank the results against the query (slower, more precise)"},"rewrite":{"type":"boolean","default":false,"description":"Let Supermemory rewrite the query first (adds about 400 ms)"},"include_related":{"type":"boolean","default":false,"description":"Attach the memories each result extends or derives from"}}},"output_fields":["results","count","timing_ms"],"billing":{"unit":"per_search","bill_on_no_match":false},"providers":["supermemory"],"live_providers":[],"platforms":[],"offers":[{"provider":"supermemory","mode":"platform_prepaid","provider_status":"ready","executable":false,"wired":true,"verified":false,"platforms":[],"verified_platforms":[],"price":{"amount":"0.002","currency":"USD","note":"provisional: set from the provider's published rates, measured on first smoke run"},"health":{"status":"unknown","latency_ms_p50":null},"pricing":{"currency":"USD","base":"0.002","per_result":"0","default_limit":null}}],"starting_price":{"amount":"0.002","currency":"USD"},"waterfall":null,"hints":["Use provider=\"auto\" for capabilities unless you deliberately need one provider. Pinning a provider disables cross-provider fallback even when allow_fallback=true. max_cost must cover each alternative’s full input-specific quote; a cheapest-route cap can exclude fallback."]},{"capability":"memory.profile","title":"Memory profile","category":"memory","status":"coming_soon","sandbox":true,"description":"Everything the memory knows about a namespace, pre-computed by learner-1: the permanent facts, the recent ones, and a ready-to-paste context block for your prompt. Add a query to get the memories relevant to what you are about to do in the same call.","input_schema":{"type":"object","properties":{"namespace":{"type":"string","description":"Same value you gave memory.add; omit for the workspace-wide memory"},"query":{"type":"string","description":"Optional: also return the memories relevant to this, e.g. \"drafting a follow-up about pricing\""},"sections":{"type":"array","items":{"type":"string","enum":["static","dynamic","buckets"]},"description":"Subset of the profile to return; omit for all"},"limit":{"type":"integer","default":10,"description":"With query: up to 50 results"},"threshold":{"type":"number","default":0.6}}},"output_fields":["static","dynamic","buckets","results","context","count"],"billing":{"unit":"per_profile","bill_on_no_match":false},"providers":["supermemory"],"live_providers":[],"platforms":[],"offers":[{"provider":"supermemory","mode":"platform_prepaid","provider_status":"ready","executable":false,"wired":true,"verified":false,"platforms":[],"verified_platforms":[],"price":{"amount":"0.002","currency":"USD","note":"provisional: set from the provider's published rates, measured on first smoke run"},"health":{"status":"unknown","latency_ms_p50":null},"pricing":{"currency":"USD","base":"0.002","per_result":"0","default_limit":null}}],"starting_price":{"amount":"0.002","currency":"USD"},"waterfall":null,"hints":["Use provider=\"auto\" for capabilities unless you deliberately need one provider. Pinning a provider disables cross-provider fallback even when allow_fallback=true. max_cost must cover each alternative’s full input-specific quote; a cheapest-route cap can exclude fallback."]},{"capability":"memory.list","title":"List memories","category":"memory","status":"coming_soon","sandbox":true,"description":"What is stored in a namespace, newest first, with each memory's version, whether it is a permanent trait or an inference, and the documents it came from. Use it to audit what the agent believes before it acts.","input_schema":{"type":"object","properties":{"namespace":{"type":"string","description":"Same value you gave memory.add; omit for the workspace-wide memory"},"limit":{"type":"integer","default":20,"description":"Up to 100 per page"},"page":{"type":"integer","default":1},"sort":{"type":"string","enum":["createdAt","updatedAt"],"default":"createdAt"},"order":{"type":"string","enum":["asc","desc"],"default":"desc"}}},"output_fields":["memories","count","page","total","total_pages"],"billing":{"unit":"per_page","bill_on_no_match":false},"providers":["supermemory"],"live_providers":[],"platforms":[],"offers":[{"provider":"supermemory","mode":"platform_prepaid","provider_status":"ready","executable":false,"wired":true,"verified":false,"platforms":[],"verified_platforms":[],"price":{"amount":"0.002","currency":"USD","note":"provisional: set from the provider's published rates, measured on first smoke run"},"health":{"status":"unknown","latency_ms_p50":null},"pricing":{"currency":"USD","base":"0.002","per_result":"0","default_limit":null}}],"starting_price":{"amount":"0.002","currency":"USD"},"waterfall":null,"hints":["Use provider=\"auto\" for capabilities unless you deliberately need one provider. Pinning a provider disables cross-provider fallback even when allow_fallback=true. max_cost must cover each alternative’s full input-specific quote; a cheapest-route cap can exclude fallback."]},{"capability":"memory.forget","title":"Forget","category":"memory","status":"coming_soon","sandbox":true,"description":"Forget one memory by id, remove a source document (and what was extracted from it), or forget everything matching a plain-language instruction (\"everything about Project Titan\"). Run the instruction with dry_run first to see what would go.","input_schema":{"type":"object","properties":{"memory_id":{"type":"string","description":"From memory.search, memory.profile or memory.list"},"document_id":{"type":"string","description":"From memory.add: removes the document and its memories"},"query":{"type":"string","description":"Plain-language target, e.g. \"forget everything about Acme's old pricing\""},"namespace":{"type":"string","description":"Same value you gave memory.add; omit for the workspace-wide memory"},"dry_run":{"type":"boolean","default":false,"description":"With query: preview the matches without forgetting anything"},"threshold":{"type":"number","default":0.5,"description":"With query: lower casts a wider net"},"max_forget":{"type":"integer","default":100,"description":"With query: cap on memories forgotten in one call, up to 500"},"reason":{"type":"string","description":"Stored on each forgotten memory"}}},"output_fields":["forgotten","dry_run","matched","summary","memories","memory_id","document_id"],"billing":{"unit":"per_forget","bill_on_no_match":false,"note":"Forgetting by id is the floor; a plain-language forget runs a small agent upstream and is priced as one operation."},"providers":["supermemory"],"live_providers":[],"platforms":[],"offers":[{"provider":"supermemory","mode":"platform_prepaid","provider_status":"ready","executable":false,"wired":true,"verified":false,"platforms":[],"verified_platforms":[],"price":{"amount":"0.002","currency":"USD","note":"provisional: set from the provider's published rates, measured on first smoke run"},"health":{"status":"unknown","latency_ms_p50":null},"pricing":{"currency":"USD","base":"0.002","per_result":"0","default_limit":null}}],"starting_price":{"amount":"0.002","currency":"USD"},"waterfall":null,"hints":["Use provider=\"auto\" for capabilities unless you deliberately need one provider. Pinning a provider disables cross-provider fallback even when allow_fallback=true. max_cost must cover each alternative’s full input-specific quote; a cheapest-route cap can exclude fallback."]},{"capability":"aeo.keywords","title":"AI search volume","category":"aeo","status":"live","sandbox":true,"description":"How often keywords are asked to AI assistants, with a monthly trend: the demand side of AI search.","input_schema":{"type":"object","properties":{"keywords":{"type":"array","items":{"type":"string"},"description":"Up to 100 keywords"},"keyword":{"type":"string"},"location":{"type":"string","description":"City and country (\"Lisbon, Portugal\"), a country (\"France\") or a DataForSEO location code; default United States"},"language":{"type":"string"}}},"output_fields":["keywords"],"billing":{"unit":"per_search","bill_on_no_match":false,"note":"Priced per search plus a small per-keyword amount."},"providers":["dataforseo"],"live_providers":["dataforseo"],"platforms":[],"offers":[{"provider":"dataforseo","mode":"platform_prepaid","provider_status":"live","executable":true,"wired":true,"verified":true,"platforms":[],"verified_platforms":["*"],"price":{"amount":"0.017675","currency":"USD","note":"measured margin over provider cost; the quote is base + per_result x limit (default limit 1)"},"health":{"status":"unknown","latency_ms_p50":1169},"pricing":{"currency":"USD","base":"0.0175","per_result":"0.000175","default_limit":null}}],"starting_price":{"amount":"0.017675","currency":"USD"},"waterfall":{"providers":["dataforseo"],"max_cost_for_all":{"amount":"0.017675","currency":"USD"},"note":"A miss is not charged: with max_cost at max_cost_for_all, each provider in turn tries until one finds, and you pay that one provider's price only when it finds. Prices are for one result or call; a larger limit quotes more."},"hints":["Use provider=\"auto\" for capabilities unless you deliberately need one provider. Pinning a provider disables cross-provider fallback even when allow_fallback=true. max_cost must cover each alternative’s full input-specific quote; a cheapest-route cap can exclude fallback."]},{"capability":"aeo.mentions","title":"AI mentions","category":"aeo","status":"live","sandbox":true,"description":"Where a domain or keyword appears in AI answers (Google AI Mode, ChatGPT): the questions, the answers, the cited sources and the brands named alongside.","input_schema":{"type":"object","properties":{"domain":{"type":"string","description":"Find answers that cite or name this domain"},"keyword":{"type":"string","description":"Find answers containing this phrase (word match). One target per search: ignored when domain is given"},"platform":{"type":"string","enum":["google","chatgpt"],"default":"google","description":"chatgpt is held for United States / English only: leave location and language out"},"location":{"type":"string","description":"City and country (\"Lisbon, Portugal\"), a country (\"France\") or a DataForSEO location code; default United States"},"language":{"type":"string"},"limit":{"type":"integer","default":10}}},"output_fields":["target","platform","total","mentions"],"billing":{"unit":"per_search","bill_on_no_match":true,"note":"Priced per search: $0.175 plus $0.00175 a row, $0.1925 at the default 10 rows, $0.2625 at 50. Each row is a full AI answer with its sources. A search that finds no recorded answer is still a search: the index is queried and billed either way, so a no_match settles at the base $0.175 and is a finding (nothing cites the target yet), not a released miss. If the provider's actual cost overruns the estimate, the run bills the overrun at the same per-call rate, capped by the hold."},"providers":["dataforseo"],"live_providers":["dataforseo"],"platforms":["chatgpt","google"],"offers":[{"provider":"dataforseo","mode":"platform_prepaid","provider_status":"live","executable":true,"wired":true,"verified":true,"platforms":["google","chatgpt"],"verified_platforms":["google","chatgpt"],"price":{"amount":"0.17675","currency":"USD","note":"measured margin over provider cost; the quote is base + per_result x limit (default limit 10)"},"health":{"status":"degraded","latency_ms_p50":768},"pricing":{"currency":"USD","base":"0.175","per_result":"0.00175","default_limit":10}}],"starting_price":{"amount":"0.17675","currency":"USD"},"waterfall":{"providers":["dataforseo"],"max_cost_for_all":{"amount":"0.17675","currency":"USD"},"note":"Each provider in turn tries until one answers; max_cost_for_all lets every one of them run. Prices are for one result or call; a larger limit quotes more."},"hints":["Use provider=\"auto\" for capabilities unless you deliberately need one provider. Pinning a provider disables cross-provider fallback even when allow_fallback=true. max_cost must cover each alternative’s full input-specific quote; a cheapest-route cap can exclude fallback."]}]}