{"api":"Threads profile","apiRows":{"Employee profile":4602,"Employee email":3864,"Email validation":5041,"Employee phone":1429,"Company profile":1489,"Company headcount":487,"Phone validation":1427,"Post comments":485,"Post reactions":410,"Employee lookalikes":236,"Company lookalikes":768,"Company technologies":510,"Company job count":67,"Employee posts":510,"Company posts":501,"Company funding":313,"Company jobs":405,"Employee search":1531,"Company search":737,"Job search":551,"Reverse email lookup":921,"Post search":401,"Post details":567,"Job details":484,"Employee comments":257,"Employee reactions":210,"Post reposts":120,"Employee recommendations":96,"Job lookalikes":51,"Employee articles":47,"Company enrichment":2362,"People search":1975,"Company discovery":2025,"Job postings":575,"Job posting details":339,"Person enrichment":326,"Leadership changes":131,"Company hierarchy":154,"Web search":901,"SERP":5452,"News search":919,"Web scraping":2233,"Keyword research":89,"Ranked keywords":60,"Related keywords":136,"Backlinks":102,"Domain authority":86,"X profile":478,"X posts":332,"Instagram profile":430,"Instagram posts":257,"TikTok profile":259,"TikTok videos":238,"YouTube channel":288,"YouTube channel videos":179,"Reddit profile":82,"Reddit posts":79,"Facebook page":132,"Facebook posts":117,"Threads profile":65,"Threads posts":67,"Facebook ads":57,"G2 reviews":11,"Capterra reviews":11,"Trustpilot reviews":22,"Glassdoor reviews":22},"treeCounts":{"Employee profile":{"best":156,"top":3},"Employee email":{"best":161,"top":3},"Email validation":{"best":200,"top":3},"Employee phone":{"best":93,"top":3},"Company profile":{"best":87,"top":3},"Company headcount":{"best":28,"top":3},"Phone validation":{"best":64,"top":3},"Post comments":{"best":34,"top":3},"Post reactions":{"best":27,"top":3},"Employee lookalikes":{"best":16,"top":3},"Company lookalikes":{"best":39,"top":3},"Company technologies":{"best":46,"top":3},"Company job count":{"best":7,"top":3},"Employee posts":{"best":42,"top":3},"Company posts":{"best":44,"top":3},"Company funding":{"best":32,"top":3},"Company jobs":{"best":43,"top":3},"Employee search":{"best":51,"top":3},"Company search":{"best":32,"top":3},"Job search":{"best":42,"top":3},"Reverse email lookup":{"best":56,"top":3},"Post search":{"best":35,"top":3},"Post details":{"best":49,"top":3},"Job details":{"best":41,"top":3},"Employee comments":{"best":22,"top":3},"Employee reactions":{"best":16,"top":3},"Post reposts":{"best":9,"top":3},"Employee recommendations":{"best":8,"top":3},"Job lookalikes":{"best":5,"top":3},"Employee articles":{"best":5,"top":3},"Company enrichment":{"best":141,"top":3},"People search":{"best":110,"top":3},"Company discovery":{"best":131,"top":3},"Job postings":{"best":43,"top":3},"Job posting details":{"best":34,"top":3},"Person enrichment":{"best":33,"top":3},"Leadership changes":{"best":11,"top":3},"Company hierarchy":{"best":17,"top":3},"Web search":{"best":67,"top":3},"SERP":{"best":86,"top":3},"News search":{"best":44,"top":3},"Web scraping":{"best":55,"top":3},"Keyword research":{"best":9,"top":3},"Ranked keywords":{"best":7,"top":3},"Related keywords":{"best":9,"top":3},"Backlinks":{"best":7,"top":3},"Domain authority":{"best":8,"top":3},"X profile":{"best":30,"top":3},"X posts":{"best":29,"top":3},"Instagram profile":{"best":25,"top":3},"Instagram posts":{"best":23,"top":3},"TikTok profile":{"best":24,"top":3},"TikTok videos":{"best":24,"top":3},"YouTube channel":{"best":25,"top":3},"YouTube channel videos":{"best":23,"top":3},"Reddit profile":{"best":9,"top":3},"Reddit posts":{"best":10,"top":3},"Facebook page":{"best":12,"top":3},"Facebook posts":{"best":11,"top":3},"Threads profile":{"best":11,"top":3},"Threads posts":{"best":11,"top":3},"Facebook ads":{"best":7,"top":3},"G2 reviews":{"best":1,"top":1},"Capterra reviews":{"best":1,"top":1},"Trustpilot reviews":{"best":2,"top":2},"Glassdoor reviews":{"best":2,"top":2}},"bestPages":{"Employee profile":["/best-linkedin-profile-api","Best LinkedIn profile API in 2026"],"Employee email":["/best-email-finder-api","Best email finder API in 2026"],"Email validation":["/best-email-verification-api","Best email verification API in 2026"],"Employee phone":["/best-phone-finder-api","Best phone finder API in 2026"],"Company profile":["/best-linkedin-company-data-api","Best LinkedIn company data API in 2026"],"Company headcount":["/best-company-headcount-api","Best company headcount API in 2026"],"Phone validation":["/best-phone-validation-api","Best phone validation API in 2026"],"Post comments":["/best-linkedin-post-comment-api","Best LinkedIn post comment API in 2026"],"Post reactions":["/best-linkedin-post-reaction-api","Best LinkedIn post reaction API in 2026"],"Employee lookalikes":["/best-similar-people-api","Best similar people API in 2026"],"Company lookalikes":["/best-similar-companies-api","Best similar companies API in 2026"],"Company technologies":["/best-tech-stack-api","Best tech stack API in 2026"],"Employee posts":["/best-linkedin-profile-post-api","Best LinkedIn profile post API in 2026"],"Company posts":["/best-linkedin-company-post-api","Best LinkedIn company post API in 2026"],"Company funding":["/best-company-funding-api","Best company funding API in 2026"],"Company jobs":["/best-company-open-jobs-api","Best company open jobs API in 2026"],"Employee search":["/best-linkedin-people-search-api","Best LinkedIn people search API in 2026"],"Company search":["/best-linkedin-company-search-api","Best LinkedIn company search API in 2026"],"Job search":["/best-linkedin-job-search-api","Best LinkedIn job search API in 2026"],"Reverse email lookup":["/best-reverse-email-lookup-api","Best reverse email lookup API in 2026"],"Post search":["/best-linkedin-post-search-api","Best LinkedIn post search API in 2026"],"Post details":["/best-linkedin-post-details-api","Best LinkedIn post details API in 2026"],"Job details":["/best-linkedin-job-details-api","Best LinkedIn job details API in 2026"],"Employee comments":["/best-linkedin-profile-comment-api","Best LinkedIn profile comment API in 2026"],"Employee reactions":["/best-linkedin-profile-reaction-api","Best LinkedIn profile reaction API in 2026"],"Post reposts":["/best-linkedin-post-repost-api","Best LinkedIn post repost API in 2026"],"Company enrichment":["/best-company-enrichment-api","Best company enrichment API in 2026"],"People search":["/best-people-search-api","Best people search API in 2026"],"Company discovery":["/best-company-discovery-api","Best company discovery API in 2026"],"Job postings":["/best-job-postings-api","Best job postings API in 2026"],"Job posting details":["/best-job-posting-details-api","Best job posting details API in 2026"],"Person enrichment":["/best-people-enrichment-api","Best people enrichment API in 2026"],"Company hierarchy":["/best-company-hierarchy-api","Best company hierarchy API in 2026"],"Web search":["/best-web-search-api","Best web search API in 2026"],"SERP":["/best-serp-api","Best SERP API in 2026"],"News search":["/best-news-api","Best news API in 2026"],"Web scraping":["/best-web-scraping-api","Best web scraping API in 2026"],"Related keywords":["/best-related-keywords-api","Best related keywords API in 2026"],"X posts":["/best-x-twitter-post-api","Best X (Twitter) post API in 2026"],"Instagram profile":["/best-instagram-profile-api","Best Instagram profile API in 2026"],"Instagram posts":["/best-instagram-post-api","Best Instagram post API in 2026"],"TikTok profile":["/best-tiktok-profile-api","Best TikTok profile API in 2026"],"TikTok videos":["/best-tiktok-video-api","Best TikTok video API in 2026"],"YouTube channel":["/best-youtube-channel-api","Best YouTube channel API in 2026"],"YouTube channel videos":["/best-youtube-channel-video-api","Best YouTube channel video API in 2026"],"Reddit profile":["/best-reddit-profile-api","Best Reddit profile API in 2026"],"Reddit posts":["/best-reddit-post-api","Best Reddit post API in 2026"]},"accuratePages":{"Employee email":["/most-accurate-email-finder-api","Most accurate email finder API in 2026"],"Email validation":["/most-accurate-email-verification-api","Most accurate email verification API in 2026"],"Employee phone":["/most-accurate-phone-finder-api","Most accurate phone finder API in 2026"],"Company headcount":["/most-accurate-company-headcount-api","Most accurate company headcount API in 2026"],"Phone validation":["/most-accurate-phone-validation-api","Most accurate phone validation API in 2026"],"Reverse email lookup":["/most-accurate-reverse-email-lookup-api","Most accurate reverse email lookup API in 2026"]},"familyPages":[["/best-linkedin-api","Best LinkedIn API in 2026"],["/best-phone-api","Best phone API in 2026"],["/best-email-api","Best email API in 2026"]],"first":[{"provider":"AnyAPI","api":"Threads profile","website":"https://getanyapi.com","pricingPage":"https://getanyapi.com/catalog","pitch":"Fetch a Threads user's public profile (bio, follower count, verification, profile picture) by username.","strengths":[],"aggregators":null,"freshness":null,"fieldFreshness":null,"history":null,"countries":null,"fullFamilyTree":null,"checks":null,"searchesIn":null,"keep":"no limit","use":"You are solely responsible for ensuring that your collection and use of Customer Data is lawful. This includes compliance with applicable laws (including data protection, intellectual property, and computer-access laws) and, where they apply to you, the terms of the websites and services from which data originates. [...] Do not collect non-public data (data accessible only behind a login, paywall, or other access control) without authorization from the source. [...] Comply with all data protection and privacy laws that apply to the personal data you collect (including the GDPR and US state privacy laws), including having a legal basis and honoring data-subject rights. Do not collect or use personal data to stalk, harass, dox, surveil, or otherwise harm individuals. Do not build profiles of individuals from sensitive data (such as health, biometric, or precise-location data) without a lawful basis. [...] Do not use the Service to engage in, support, or promote: Any unlawful activity, or any violation of third-party rights. Phishing, malware distribution, or any form of fraud or deception, including advertising or click fraud and obtaining the Service with intent to avoid payment. Spam or unsolicited bulk messaging, or building contact lists for them. Fake engagement: fabricated reviews, votes, followers, accounts, or coordinated disinformation. Harassment, threats, or incitement of violence. Child sexual abuse material in any form: zero tolerance; we report it to the relevant authorities. Violations of export-control or sanctions laws. [...] Do not resell raw access to the Service or operate a service that merely proxies it, without our written agreement.","plan":"Manual top-up","who":"anyone 18 or over, for business or professional use, not in an embargoed jurisdiction or on a restricted-party list","billing":"one-time","charged":null,"topUp":true,"pay":10,"currency":"USD","exchangeRate":1,"termMonths":null,"from":null,"graduated":null,"units":10,"unit":"usd","renews":"never","expires":"never","costUnits":0.0011,"calls":9090.909091,"monthlyCap":null,"perThousand":1.1,"waterfall":null,"listPerThousand":1.1,"overagePerThousand":null,"unitsCap":null,"addons":null,"notFoundPerThousand":null,"catchAllPerThousand":null,"bounceRefund":null,"repeatFree":null,"alsoPaysFor":[],"sharesBudgetWith":["469 other calls"],"startPerCall":null,"startPerCallMax":null,"monthlyFee":null,"monthlyFeePer":null,"extras":[],"per":"call","resultsPerPage":null,"resultsCap":null,"perDay":null,"perSecond":null,"concurrent":null,"batch":1,"minBatch":null,"answer":"in the call","latencyMs":26905,"call":"Threads Profile","method":"POST","path":"/v1/run/threads.profile","send":"username; source, allowFallbacks, ignoreSources, preferLatencyUnderMs","fields":["user ID","username","name","bio","followers","verified","private account","profile picture","found","amount charged","result ID","replayed","serving source","results returned"]},{"provider":"Anysite","api":"Threads profile","website":"https://anysite.io","pricingPage":"https://anysite.io/pricing/api","pitch":"Threads user profile. Accepts a username, profile URL, or numeric user ID.","strengths":[],"aggregators":null,"freshness":"live","fieldFreshness":null,"history":null,"countries":null,"fullFamilyTree":null,"checks":null,"searchesIn":null,"keep":"no limit","use":"lawful, legitimate use only; no unsolicited mass messaging, and no reselling or sublicensing of the API, credits or resources without Anysite's written approval; you answer for your lawful rights to the data, the consents and data protection law, and the source sites' terms","plan":"Scale","who":"anyone at least 18 years old or of the age of majority in their jurisdiction","billing":"monthly","charged":null,"topUp":null,"pay":300,"currency":"USD","exchangeRate":1,"termMonths":1,"from":null,"graduated":null,"units":190000,"unit":"credit","renews":"month","expires":"at every renewal: unused plan credits do not carry over","costUnits":20,"calls":9500,"monthlyCap":null,"perThousand":31.5789,"waterfall":null,"listPerThousand":null,"overagePerThousand":58,"unitsCap":null,"addons":null,"notFoundPerThousand":31.5789,"catchAllPerThousand":null,"bounceRefund":null,"repeatFree":"never","alsoPaysFor":[],"sharesBudgetWith":["6,276 other calls"],"startPerCall":null,"startPerCallMax":null,"monthlyFee":null,"monthlyFeePer":null,"extras":[],"per":"call","resultsPerPage":null,"resultsCap":null,"perDay":null,"perSecond":null,"concurrent":null,"batch":1,"minBatch":null,"answer":"in the call","latencyMs":null,"call":null,"method":"POST","path":"/api/threads/users","send":"user; timeout","fields":["user ID","username","name","profile URL","profile picture","bio","followers","verified","private account","bio links","profile tags"]},{"provider":"API Direct","api":"Threads profile","website":"https://apidirect.io","pricingPage":"https://apidirect.io/docs/pricing","pitch":"Instead of looping an endpoint over a list of IDs, URLs or usernames, send up to 100 requests in a single call","strengths":[],"aggregators":null,"freshness":"live","fieldFreshness":null,"history":null,"countries":null,"fullFamilyTree":null,"checks":null,"searchesIn":null,"keep":"no limit","use":"You agree not to use the Service to: Violate any applicable laws, regulations, or third-party rights; Infringe upon intellectual property rights of others; Engage in any activity that could damage, disable, or impair the Service; Attempt to gain unauthorised access to any part of the Service; Use the Service for any illegal, harmful, or fraudulent purposes; Circumvent or attempt to circumvent any rate limits, usage limits, or security measures; Use automated means to create accounts or generate API keys; Harass, abuse, or harm individuals using data obtained through the Service; Scrape our Service [...] You acknowledge that: [...] You are responsible for complying with the terms of service of the underlying platforms (LinkedIn, Twitter/X, Reddit, YouTube, Instagram, etc.) when using data obtained through our Service [...] You agree that: You have a lawful basis for requesting, receiving, and using the data you obtain through the Service [...] You will comply with applicable data protection law, including providing any notices and honouring any rights owed to individuals by you as controller [...] You will not use the Service to identify or target individuals on the basis of special categories of personal data","plan":"Pay per request","who":"at least 18 years old, with the legal capacity to enter into the Terms","billing":"on-demand","charged":"at a threshold","topUp":null,"pay":0,"currency":"USD","exchangeRate":1,"termMonths":null,"from":null,"graduated":null,"units":null,"unit":"request","renews":null,"expires":null,"costUnits":1,"calls":null,"monthlyCap":null,"perThousand":6,"waterfall":null,"listPerThousand":null,"overagePerThousand":null,"unitsCap":null,"addons":null,"notFoundPerThousand":6,"catchAllPerThousand":null,"bounceRefund":null,"repeatFree":null,"alsoPaysFor":[],"sharesBudgetWith":["143 other calls"],"startPerCall":null,"startPerCallMax":null,"monthlyFee":null,"monthlyFeePer":null,"extras":[],"per":"result","resultsPerPage":null,"resultsCap":null,"perDay":null,"perSecond":1.39,"concurrent":10,"batch":100,"minBatch":null,"answer":"in the call","latencyMs":null,"call":"Batch Requests","method":"POST","path":"/v1/batch","send":"requests[].endpoint \"/v1/threads/user\", requests[].params.username; requests[].tag","fields":["username","name","user ID","bio","followers","verified","private account","profile picture","HD profile picture","bio links","profile tags","profile URL"]},{"provider":"Bright Data","api":"Threads profile","website":"https://brightdata.com","pricingPage":"https://brightdata.com/pricing/web-scraper","pitch":"URL, Profile name, Profile id, About formatted, Number of followers, Website, Instagram profile url, Threads, and more.","strengths":[],"aggregators":null,"freshness":"live","fieldFreshness":null,"history":null,"countries":null,"fullFamilyTree":null,"checks":null,"searchesIn":null,"keep":"no limit","use":"The Client shall not use the Services in violation of applicable law or regulations or any third party rights (including intellectual property rights) and not use the Service in any manner or for any purpose other than as stated in the intended use case provided to Bright Data, if applicable. [...] the Client will only use the Service in accordance with the Acceptable Use Policy, as may be amended from time to time. [...] When using the Data Services, the Client shall not distribute, transmit, reproduce, publish, license, transfer, or sell any Data in order to offer a similar or competitive product. [...] Client’s use of the data collector service is subject to all applicable laws, including without limitation data protection and privacy laws. To the extent applicable to processing of personal data, Client is solely responsible for determining the lawful grounds, providing notices, respecting data subject rights and all other related obligations. [...] Bright Data’s platform, technology, and network (collectively, “Services”) are meant for legitimate and legal purposes only and are subject to the Bright Data Master Service Agreement. [...] Any use of the Bright Data Services for illegal, fraudulent, or abusive activities is strictly prohibited. [...] Forbidden activities include, but are not limited to: Collection of nonpublic information (i.e data behind login); DDoS attacks; Spam: mass posting any mail/message boards/IRC/comments messages and images; Ad fraud or click fraud; Impersonation or spoofing for fraudulent purposes; Creating fake accounts or content; Use of automatic ticket purchasing (ticket-bots); Raffles, lottery, or gambling; Fake engagement (likes, comments, shares, etc.); Gaming or trading of in games items/currency; Reselling of proxies without Bright Data’s prior written approval (see our partners programs); Use of streaming related domains (videos, music or images streaming); Trading crypto/virtual currency or NFT; Any Search Engine Optimization (SEO) manipulation (i.e: fake clicks in search engines results); Posting on classified, used, and resell sites (such as Craig’s list); Completion of surveys in return for a benefit or anything of value; Any form of activity that is in violation of applicable law or regulations or any third party rights","plan":"Pay as you go","who":"anyone 18 or over, not sanctioned or in Russia, Belarus, Syria or Lebanon","billing":"one-time","charged":null,"topUp":true,"pay":null,"currency":"USD","exchangeRate":1,"termMonths":null,"from":null,"graduated":null,"units":null,"unit":"result","renews":null,"expires":null,"costUnits":1,"calls":null,"monthlyCap":null,"perThousand":1.5,"waterfall":null,"listPerThousand":null,"overagePerThousand":null,"unitsCap":null,"addons":null,"notFoundPerThousand":null,"catchAllPerThousand":null,"bounceRefund":null,"repeatFree":null,"alsoPaysFor":[],"sharesBudgetWith":["other scrapers in the Web Scraper API library"],"startPerCall":null,"startPerCallMax":null,"monthlyFee":null,"monthlyFeePer":null,"extras":[],"per":"result","resultsPerPage":null,"resultsCap":null,"perDay":null,"perSecond":null,"concurrent":null,"batch":null,"minBatch":null,"answer":"in the call or by polling","latencyMs":null,"call":null,"method":"POST","path":"/datasets/v3/scrape?dataset_id=gd_mde7jg3ld2h3hnnf2","send":"url; notify, include_errors","fields":["profile URL","name","user ID","bio","followers","website","Instagram profile URL","threads","profile picture","verified"]},{"provider":"Captapi","api":"Threads profile","website":"https://captapi.com","pricingPage":"https://captapi.com/pricing","pitch":"Threads profile — displayName, isPrivate, bioLinks (Meta verified), isThreadsOnlyUser, transparencyLabel, bioFragments, HD avatars (1 credit).","strengths":[],"aggregators":null,"freshness":"live","fieldFreshness":null,"history":null,"countries":null,"fullFamilyTree":null,"checks":null,"searchesIn":null,"keep":"no limit","use":"You agree not to use the Service, or data obtained through it, to: Harm or target individuals — stalking, harassment, doxxing, re-identification of anonymous users, or building profiles used to threaten, intimidate, or discriminate against people. Process personal data unlawfully — in violation of the GDPR, CCPA/CPRA, or other applicable data-protection laws, including using public personal data for a purpose the individual would not reasonably expect without a lawful basis. Enable unlawful discrimination — such as decisions about credit, employment, housing, or insurance based on protected characteristics. Infringe intellectual property — reproduce or redistribute content in violation of copyright, trademark, or database rights. Send spam or run deceptive campaigns — unsolicited bulk messaging, phishing, fraud, or impersonation. Circumvent controls — bypass authentication, rate limits, or access restrictions on any platform, or attempt to access non-public data. Break the law — any use that is illegal in your jurisdiction or that facilitates illegal activity. Resell or clone the Service — resell raw API access as a standalone substitute for Captapi or build a directly competing data API. [...] You must have a lawful basis for your processing, honor deletion and opt-out requests from data subjects, keep appropriate security, and comply with the terms of any platform you interact with.","plan":"Starter","who":"anyone at least 18 years old","billing":"monthly","charged":null,"topUp":null,"pay":9,"currency":"USD","exchangeRate":1,"termMonths":1,"from":null,"graduated":null,"units":2000,"unit":"credit","renews":"month","expires":"when the billing period ends","costUnits":1,"calls":2000,"monthlyCap":null,"perThousand":4.5,"waterfall":null,"listPerThousand":null,"overagePerThousand":null,"unitsCap":null,"addons":null,"notFoundPerThousand":0,"catchAllPerThousand":null,"bounceRefund":null,"repeatFree":"24 hours","alsoPaysFor":[],"sharesBudgetWith":["178 other calls"],"startPerCall":null,"startPerCallMax":null,"monthlyFee":null,"monthlyFeePer":null,"extras":[],"per":"call","resultsPerPage":null,"resultsCap":null,"perDay":null,"perSecond":2,"concurrent":null,"batch":1,"minBatch":null,"answer":"in the call","latencyMs":null,"call":null,"method":"GET","path":"/v1/threads/profile","send":"url; cache","fields":["success","platform","username","profile URL","user ID","name","bio","verified","followers","private account","Threads-only account","bio links","bio fragments","transparency label","HD profile picture","has onboarded","profile picture","media URLs expire at"]},{"provider":"EnsembleData","api":"Threads profile","website":"https://ensembledata.com","pricingPage":"https://ensembledata.com/pricing","pitch":"Retrieve Threads user profile data including followers, bio, and engagement metrics for influencer research and audience analysis.","strengths":[],"aggregators":null,"freshness":"live","fieldFreshness":null,"history":null,"countries":null,"fullFamilyTree":null,"checks":null,"searchesIn":null,"keep":"no limit","use":"Clients may only use the APIs and Data for lawful purposes and in accordance with these Terms and Conditions [...] Clients may not use the APIs or Data for any illegal or unethical purposes, including but not limited to, spamming, hacking, or phishing [...] Clients may not use the APIs or Data to create a product or service that competes directly with EnsembleData’s services [...] Clients may not use the APIs or Data in a manner that would cause harm to EnsembleData, its employees, agents, or any third party","plan":"Silver","who":"anyone","billing":"monthly","charged":null,"topUp":null,"pay":400,"currency":"USD","exchangeRate":1,"termMonths":1,"from":null,"graduated":null,"units":11000,"unit":"credit","renews":"day","expires":"at 00:00 UTC each day, when the daily units are reset","costUnits":4,"calls":2750,"monthlyCap":null,"perThousand":4.8485,"waterfall":null,"listPerThousand":null,"overagePerThousand":null,"unitsCap":"hard","addons":null,"notFoundPerThousand":null,"catchAllPerThousand":null,"bounceRefund":null,"repeatFree":null,"alsoPaysFor":[],"sharesBudgetWith":["57 other calls"],"startPerCall":null,"startPerCallMax":null,"monthlyFee":null,"monthlyFeePer":null,"extras":[],"per":"call","resultsPerPage":null,"resultsCap":null,"perDay":null,"perSecond":null,"concurrent":null,"batch":1,"minBatch":null,"answer":"in the call","latencyMs":null,"call":null,"method":"GET","path":"/threads/user/info","send":"id","fields":["user ID","user primary key","username","name","bio","bio text fragments","bio links","profile picture","HD profile picture","followers","verified","private account","Threads-only account","show text post app badge","friendship status","account badges","transparency label"]},{"provider":"lobstr.io","api":"Threads profile","website":"https://www.lobstr.io","pricingPage":"https://www.lobstr.io/pricing","pitch":"68 data points per post. [...] plus the author's handle, name, avatar, verified badge, follower count and bio on every single row.","strengths":[],"aggregators":null,"freshness":"live","fieldFreshness":null,"history":null,"countries":null,"fullFamilyTree":null,"checks":null,"searchesIn":null,"keep":"no limit; results stay on lobstr.io 7 days on Free, 28 days on paid plans","use":"The User hereby asserts and affirms that the utilization of the Platform is solely for professional activities, thereby exempting the User from being classified as a \"consumer\" under the governing law. [...] Squiders are obligated to: (i) Procure requisite permissions for accessing websites through Squids; (ii) Abstain from extracting substantial portions of databases, whether in terms of quality or quantity; (iii) Refrain from unauthorized access to confidential or proprietary information; (iv) Observe all third-party rights, including but not limited to copyrights, patents, trademarks, trade secrets, and other intellectual property or proprietary rights; (v) Comply with all pertinent laws, statutes, ordinances, and regulations, inclusive of those related to the protection of personal data. [...] a global, non-exclusive, non-transferrable, and non-sublicensable right to employ the Platform for the duration of the User's active account on said Platform [...] Absent express written consent from LOBSTR, the User shall abstain—and shall prohibit any third parties acting on their behalf, including but not limited to employees, agents, affiliates, and subcontractors—from: (i) Decompiling, disassembling, or reverse-engineering the Platform, or attempting to discern its source code, foundational ideas, algorithms, file formats, or interoperability features [...]; (ii) Independently or with third-party assistance, rectifying any Platform defects to render it compliant with its intended use [...]; (iii) Removing or altering any notifications, labels, or references pertaining to the intellectual property rights of LOBSTR or any third parties; (iv) Engaging in the transfer, utilization, or exportation of the Platform in a manner that contravenes applicable laws; (v) Integrating, associating, or amalgamating the Platform with any other software or documents, or generating derivative works based in whole or part on the Platform; (vi) Conducting any activities with the Platform other than those explicitly sanctioned by these Terms and Conditions","plan":"Team","who":"professionals, not consumers","billing":"monthly","charged":null,"topUp":null,"pay":500,"currency":"USD","exchangeRate":1,"termMonths":1,"from":null,"graduated":null,"units":1000000,"unit":"credit","renews":"month","expires":"credits refresh each month and don't roll over at renewal; only a paid billing-cycle reset carries unused credits over, for 30 days","costUnits":1,"calls":1000000,"monthlyCap":null,"perThousand":0.5,"waterfall":null,"listPerThousand":null,"overagePerThousand":null,"unitsCap":null,"addons":null,"notFoundPerThousand":null,"catchAllPerThousand":null,"bounceRefund":null,"repeatFree":null,"alsoPaysFor":[],"sharesBudgetWith":["80 other calls"],"startPerCall":null,"startPerCallMax":null,"monthlyFee":null,"monthlyFeePer":null,"extras":[],"per":"result","resultsPerPage":null,"resultsCap":null,"perDay":null,"perSecond":2,"concurrent":50,"batch":null,"minBatch":null,"answer":"by polling or webhook","latencyMs":null,"call":"Threads Scraper","method":"POST","path":"/v1/runs","send":"squid (a Threads Scraper squid, crawler 7308ae543e6abc70438d6b968d3a1b38, holding the Threads profile URLs or @handles as its tasks (url)), max_results \"1\"; max_unique_results_per_run","fields":["username","user ID","name","profile URL","profile picture","verified","private account","followers","bio","bio links","profile tags","HD profile picture","fediverse enabled"]},{"provider":"ScrapeCreators","api":"Threads profile","website":"https://scrapecreators.com","pricingPage":"https://scrapecreators.com/#pricing","pitch":"Retrieves a Threads user's public profile including username, full_name, biography, profile_pic_url, follower_count, is_verified, bio_links, and hd_profile_pic_versions.","strengths":[],"aggregators":null,"freshness":"live","fieldFreshness":null,"history":null,"countries":null,"fullFamilyTree":null,"checks":null,"searchesIn":null,"keep":"no limit","use":"You agree not to use the Service for: Illegal activities; Harassment or stalking; Surveillance of individuals without lawful basis; Spamming or unsolicited outreach; Political manipulation or disinformation; Violating privacy or data protection laws; Infringing intellectual property rights; Any activity that harms others [...] You are solely responsible for ensuring your use of the Service complies with the terms, policies, and laws applicable to the websites you access.","plan":"Business","who":"anyone legally able to enter into a binding agreement","billing":"one-time","charged":null,"topUp":false,"pay":497,"currency":"USD","exchangeRate":1,"termMonths":null,"from":null,"graduated":null,"units":500000,"unit":"credit","renews":"never","expires":"may expire or be discontinued at its discretion","costUnits":1,"calls":500000,"monthlyCap":null,"perThousand":0.994,"waterfall":null,"listPerThousand":null,"overagePerThousand":null,"unitsCap":null,"addons":null,"notFoundPerThousand":null,"catchAllPerThousand":null,"bounceRefund":null,"repeatFree":null,"alsoPaysFor":[],"sharesBudgetWith":["198 other calls"],"startPerCall":null,"startPerCallMax":null,"monthlyFee":null,"monthlyFeePer":null,"extras":[],"per":"call","resultsPerPage":null,"resultsCap":null,"perDay":null,"perSecond":null,"concurrent":"no limit","batch":1,"minBatch":null,"answer":"in the call","latencyMs":null,"call":null,"method":"GET","path":"/v1/threads/profile","send":"handle; cache_max_age","fields":["success","credits remaining","credits consumed","user ID","user primary key","username","name","bio","bio links","profile picture","HD profile picture","followers","verified","private account","Threads-only account","show text post app badge","friendship status"]},{"provider":"SignalQub","api":"Threads profile","website":"https://signalqub.com","pricingPage":"https://signalqub.com/pricing","pitch":"Get comprehensive Threads profile information including follower counts, verification status, and biography details. Supports dynamic caching.","strengths":[],"aggregators":null,"freshness":"live","fieldFreshness":null,"history":null,"countries":null,"fullFamilyTree":null,"checks":null,"searchesIn":null,"keep":"no limit","use":"You agree to use the Services only for lawful purposes. You shall not: Use the API to extract data that is protected by copyright, trade secret, or other intellectual property laws without the explicit right to do so. Extract sensitive personal data, non-public information, or data behind authenticated login walls where you lack authorization. Attempt to bypass rate limits, manipulate billing, or execute distributed denial-of-service (DDoS) attacks against SignalQub or our target platforms. Resell, sub-license, or redistribute your SignalQub API keys to unauthorized third parties.","plan":"Business","who":"anyone","billing":"one-time","charged":null,"topUp":false,"pay":448,"currency":"USD","exchangeRate":1,"termMonths":null,"from":null,"graduated":null,"units":350000,"unit":"credit","renews":null,"expires":"never","costUnits":1,"calls":350000,"monthlyCap":null,"perThousand":1.28,"waterfall":null,"listPerThousand":null,"overagePerThousand":null,"unitsCap":null,"addons":null,"notFoundPerThousand":0,"catchAllPerThousand":null,"bounceRefund":null,"repeatFree":null,"alsoPaysFor":[],"sharesBudgetWith":["85 other calls"],"startPerCall":null,"startPerCallMax":null,"monthlyFee":null,"monthlyFeePer":null,"extras":[],"per":"call","resultsPerPage":null,"resultsCap":null,"perDay":null,"perSecond":null,"concurrent":null,"batch":1,"minBatch":null,"answer":"in the call","latencyMs":null,"call":null,"method":"GET","path":"/v1/threads/profile","send":"handle; cache_max_age","fields":["success","credits remaining","credits consumed","user primary key","username","name","followers","verified","bio","profile picture","bio links","cached","cached at"]},{"provider":"Social Fetch","api":"Threads profile","website":"https://www.socialfetch.dev","pricingPage":"https://www.socialfetch.dev/pricing","pitch":"Get a Threads profile for a creator or account.","strengths":[],"aggregators":null,"freshness":"live","fieldFreshness":null,"history":null,"countries":null,"fullFamilyTree":null,"checks":null,"searchesIn":null,"keep":"no limit","use":"You agree not to: Use the Services in violation of applicable law. Use outputs to harass, surveil, discriminate against, or harm individuals or groups. Send spam, manipulate platforms, or engage in deceptive or fraudulent activity. Infringe intellectual property or other rights of third parties. Attempt to access non-public data, bypass rate limits or technical controls, or probe our systems in ways that could harm availability or security. Resell or redistribute the Services in ways that misrepresent their source, or use them to build a substantially similar competing API without our written consent. [...] On any plan you may incorporate Social Fetch data outputs into your own products and services, present them under your own brand without attribution to us, and supply them to your own customers. You may not share or resell API keys or other access credentials, expose the Social Fetch API itself as a like-for-like API, or build a substantially similar competing API. This gives you no right beyond what we hold ourselves in the underlying data: the terms of the source platforms, restrictions that apply to us and applicable law, including data-protection law, still apply, and you remain responsible for how your own customers use what you supply. [...] Subject to these Terms, we grant you a limited, non-exclusive, non-transferable right to use the Services for your internal business purposes or to power your applications for your end users, in each case as intended.","plan":"Scale","who":"anyone; for an organisation, someone with the authority to bind it","billing":"monthly","charged":null,"topUp":null,"pay":225,"currency":"USD","exchangeRate":1,"termMonths":1,"from":null,"graduated":null,"units":150000,"unit":"credit","renews":"month","expires":"do not roll over","costUnits":1,"calls":150000,"monthlyCap":null,"perThousand":1.5,"waterfall":null,"listPerThousand":null,"overagePerThousand":null,"unitsCap":null,"addons":null,"notFoundPerThousand":1.5,"catchAllPerThousand":null,"bounceRefund":null,"repeatFree":"never","alsoPaysFor":[],"sharesBudgetWith":["263 other calls"],"startPerCall":null,"startPerCallMax":null,"monthlyFee":null,"monthlyFeePer":null,"extras":[],"per":"call","resultsPerPage":null,"resultsCap":null,"perDay":null,"perSecond":null,"concurrent":200,"batch":1,"minBatch":null,"answer":"in the call","latencyMs":null,"call":null,"method":"GET","path":"/v1/threads/profiles/{handle}","send":"handle","fields":["lookup status","request ID","credits consumed","username","name","bio","profile picture","verified","profile URL","private account","user ID","Threads-only account","bio links","profile picture versions","followers"]},{"provider":"SociaVault","api":"Threads profile","website":"https://sociavault.com","pricingPage":"https://sociavault.com/pricing","pitch":"Get Threads profile info","strengths":[],"aggregators":null,"freshness":"live","fieldFreshness":null,"history":null,"countries":null,"fullFamilyTree":null,"checks":null,"searchesIn":null,"keep":"no limit","use":"Market research and competitive analysis; Academic research and data journalism; Content strategy and social media marketing; Business intelligence and trend analysis; Personal data organization and backup [...] You may NOT use our services for: Harassment, stalking, or invasion of privacy; Spamming or unsolicited communications; Creating fake accounts or impersonation; Violating any platform terms of service; Illegal activities or fraudulent purposes; Attempting to access private or restricted data; Overloading or damaging our systems; Reselling or redistributing data without proper rights [...] Ensure you have the right to collect and use the data you extract; Comply with all applicable laws and regulations; Respect the intellectual property rights of content creators; Use data responsibly and ethically [...] You are responsible for ensuring you have rights to use collected data [...] Respect original creators and platform-specific usage terms [...] You agree to indemnify, defend, and hold harmless Ziddec, Inc. [...] arising out of or related to: [...] Your failure to comply with applicable data protection laws, including GDPR, CCPA, or any other privacy regulations","plan":"Enterprise Pack","who":"anyone","billing":"one-time","charged":null,"topUp":false,"pay":399,"currency":"USD","exchangeRate":1,"termMonths":null,"from":null,"graduated":null,"units":200000,"unit":"credit","renews":"never","expires":"never","costUnits":1,"calls":200000,"monthlyCap":null,"perThousand":1.995,"waterfall":null,"listPerThousand":null,"overagePerThousand":null,"unitsCap":null,"addons":null,"notFoundPerThousand":null,"catchAllPerThousand":null,"bounceRefund":null,"repeatFree":null,"alsoPaysFor":[],"sharesBudgetWith":["114 other calls"],"startPerCall":null,"startPerCallMax":null,"monthlyFee":null,"monthlyFeePer":null,"extras":[],"per":"call","resultsPerPage":null,"resultsCap":null,"perDay":null,"perSecond":null,"concurrent":"no limit","batch":1,"minBatch":null,"answer":"in the call","latencyMs":null,"call":null,"method":"GET","path":"/v1/scrape/threads/profile","send":"handle","fields":["success","credits used","endpoint","user ID","user primary key","username","name","bio","bio links","profile picture","HD profile picture","followers","verified","private account","show text post app badge","friendship status"]}],"total":65,"checked":["2026-10-29","2026-10-29"],"freshness":["Live","Within an hour","Within a day","Within a week","Within a month","Within a year","Stored, age unknown"],"providers":[{"label":"A to E","kids":[{"label":"AnyAPI","value":"AnyAPI on its own site"},{"label":"Anysite","value":"Anysite on its own site"},{"label":"API Direct","value":"API Direct on its own site"},{"label":"Bright Data","value":"Bright Data on its own site"},{"label":"Captapi","value":"Captapi on its own site"},{"label":"EnsembleData","value":"EnsembleData on its own site"}],"range":true},{"label":"L to S","kids":[{"label":"lobstr.io","value":"lobstr.io on its own site"},{"label":"ScrapeCreators","value":"ScrapeCreators on its own site"},{"label":"SignalQub","value":"SignalQub on its own site"},{"label":"Social Fetch","value":"Social Fetch on its own site"},{"label":"SociaVault","value":"SociaVault on its own site"}],"range":true}],"at":[3,7,13,16,20,26,33,41,46,55,64],"fields":{"Threads profile":["bio","followers","name","profile picture","verified","user ID","username","bio links","private account","HD profile picture","profile URL","success","Threads-only account","user primary key","credits consumed","friendship status","profile tags","show text post app badge","credits remaining","transparency label","account badges","amount charged","bio fragments","bio text fragments","cached","cached at","credits used","endpoint","fediverse enabled","found","has onboarded","Instagram profile URL","lookup status","media URLs expire at","platform","profile picture versions","replayed","request ID","result ID","results returned","serving source","threads","website"]},"same":["api","strengths","aggregators","waterfall","resultsCap","startPerCall","monthlyFee","extras","addons","catchAllPerThousand","bounceRefund","history","countries","fullFamilyTree","checks","searchesIn","perDay"],"facets":["defaults","provider","price","fields","billing","who","freshness","answer","paysFor"],"ties":{"Threads profile":{"tied":["API Direct, pay as you go","API Direct, pay as you go, Pay per request"],"movedPages":{},"canonicals":{"AnyAPI":"free-trial-key","Anysite":"free","API Direct":"free-tier-post-v1-batch","Bright Data":"free","Captapi":"free","EnsembleData":"free","lobstr.io":"free","ScrapeCreators":"free","SignalQub":"free","Social Fetch":"free","SociaVault":"free"}}},"shared":[],"notes":{"name":"The sheet's first column gives each row's name. No two rows on the sheet share a name. The name starts with the provider, then the plan's price. Some names: \"API Builderz, $50 monthly\", \"HarvestAPI, $280 pack\", \"Crawlbase, pay as you go\", \"Bright Data, top-up\" (a prepaid balance of any amount), \"AnyAPI, top-up from $10\" (a balance you top up by $10 or more), \"free\" or \"contact us\". Two plans with the same price also get the plan's name. We drop any words in the plan's name that the price already gives. If two rows share a name after that, we add the call's method and path to each name. When two names still match, we add the plan's units. When they still match after that, we add the call's name. The sheet's own CSV and JSON files have no name column. datacircle.json and datacircle.csv have a name column with the same names as the sheets.","api":"This column names each row's API. Each API has a sheet in the GTM APIs list. Most sheets share the API's name. For the rest, we give the sheet's name after the API. \"Employee profile\", on the LinkedIn profiles sheet, returns a person's LinkedIn profile. \"Employee email\", on the Find email sheet, finds a person's work email. \"Email validation\", on the Validate email sheet, checks whether an email address takes mail. \"Employee phone\", on the Find phone sheet, finds a person's phone number. \"Company profile\", on the LinkedIn company profiles sheet, returns a company's LinkedIn page. \"Company headcount\" counts a company's staff. \"Phone validation\", on the Validate phone sheet, checks whether a phone number is valid. \"Post comments\", on the LinkedIn post comments sheet, returns the comments on a LinkedIn post. \"Post reactions\", on the LinkedIn post reactions sheet, returns the reactions to a LinkedIn post, each with the person who reacted. \"Employee lookalikes\", on the Similar people sheet, returns people similar to the person you send. \"Company lookalikes\", on the Similar companies sheet, returns companies similar to the company you send. \"Company technologies\" returns the tools a company uses. \"Company job count\" counts the jobs a company has open on LinkedIn. \"Employee posts\", on the LinkedIn person posts sheet, returns a person's LinkedIn posts. \"Company posts\", on the LinkedIn company posts sheet, returns a company's LinkedIn posts. \"Company funding\" returns a company's funding rounds. \"Company jobs\", on the Company open jobs sheet, returns the jobs a company has open. \"Employee search\", on the LinkedIn people search sheet, finds people by job title, company and place. \"Company search\", on the LinkedIn company search sheet, finds companies by industry, size and place. \"Job search\", on the LinkedIn job search sheet, finds jobs by title, company and place. \"Reverse email lookup\" finds the person behind an email address. \"Post search\", on the LinkedIn post search sheet, finds posts by keyword. \"Post details\", on the LinkedIn post details sheet, returns a post from the post's URL or ID. \"Job details\", on the LinkedIn job details sheet, returns a job from the job's URL or ID. \"Employee comments\", on the LinkedIn person comments sheet, returns the comments a person left on posts. \"Employee reactions\", on the LinkedIn person reactions sheet, returns the posts a person reacted to. \"Post reposts\", on the LinkedIn post reposts sheet, returns the people who reposted a LinkedIn post. \"Employee recommendations\", on the LinkedIn person recommendations sheet, returns the recommendations on a person's LinkedIn profile. \"Job lookalikes\", on the Similar jobs sheet, returns jobs similar to the job you send. \"Employee articles\", on the LinkedIn person articles sheet, returns a person's LinkedIn articles. \"Company enrichment\" returns a company's profile from each seller's own database. \"People search\" finds people in each seller's own database. \"Company discovery\" finds companies in each seller's own database. \"Job postings\" finds job postings in each seller's own database. \"Job posting details\" returns a job posting from the posting's ID. \"Person enrichment\" returns a person's profile. \"Leadership changes\" returns the new hires, promotions and departures in a company's senior roles. \"Company hierarchy\" returns a company's parent companies and subsidiaries. \"Web search\" returns the web pages that match a query. \"SERP\" returns a search engine's results page as data. \"News search\" returns the news articles that match a query. \"Web scraping\" returns a page's content from the page's URL. \"Keyword research\" returns a keyword's search volume, cost per click and competition. \"Ranked keywords\" returns the keywords a domain ranks for in Google, with the domain's position and traffic for each keyword. \"Related keywords\" returns keywords like the keyword you send, with the search volume of each. \"Backlinks\" returns the links that point to a domain. \"Domain authority\" returns a domain's authority score and the number of links to the domain. \"X profile\" returns an X (Twitter) account's profile from the account's handle. \"X posts\" returns an X account's posts. \"Instagram profile\" returns an Instagram account's profile. \"Instagram posts\" returns an Instagram account's posts. \"TikTok profile\" returns a TikTok account's profile. \"TikTok videos\" returns a TikTok account's videos. \"YouTube channel\" returns a YouTube channel's name, subscribers and description. \"YouTube channel videos\" returns a YouTube channel's videos. \"Reddit profile\" returns a Reddit account's profile. \"Reddit posts\" returns a Reddit account's posts. \"Facebook page\" returns a Facebook page's details from the page's URL. \"Facebook posts\" returns a Facebook page's posts. \"Threads profile\" returns a Threads account's profile. \"Threads posts\" returns a Threads account's posts. \"Facebook ads\" returns a company's ads from Meta's Ad Library. \"G2 reviews\" returns a software product's reviews on G2. \"Capterra reviews\" returns a software product's reviews on Capterra. \"Trustpilot reviews\" returns a company's reviews on Trustpilot. \"Glassdoor reviews\" returns a company's reviews on Glassdoor, written by people who work or worked there.","score":"We score each plan out of 100 on five parts: price, data, cost to get started, bundled calls and performance. We score data and performance from our benchmark of the provider's call. Until we benchmark the call, the plan's data, performance and Overall scores are N/A. The data, performance and Overall scores are also N/A on a plan that lacks a check or feature the benchmarked plan has. A plan whose data score is 0 has an Overall score of 0, whatever the plan's other scores. Each API's sheet shows what we measured on each benchmarked plan, in the columns after the price. We rank a plan's price per 1,000 against the other scored plans of the same API. We score cost to get started and bundled calls on the plan alone. We give N/A to yearly plans, contact us plans and plans over $500 to start. We also give N/A to plans bought on a marketplace and plans that need your own LinkedIn or X account. We score a free plan only when the provider has no paid plan for that call. The free plan must never end. Any limit on the plan's calls must reset each day or sooner. Other free plans get N/A. A plan we don't score gets no score for any of the five parts, even when we benchmarked the call. Click Score in the sheet's bar to set the five weights. The JSON, datacircle.json and datacircle.csv give each plan's score at the default weights. A plan with N/A has an empty score in the JSON, datacircle.json and datacircle.csv. The sheet's CSV has no scores.","Price score":"The plan's price score out of 100. We rank the plan's $ per 1,000 against the $ per 1,000 of the other scored plans of the same API. We also count the cost of a call that finds nothing. Some plans give no $ per 1,000. For those plans, when each call returns one result, we use the price our benchmark paid per call. We scale that price by what a credit costs on the plan. We skip our benchmark's price for a plan if another paid plan for the same call lists a $ per 1,000. Plans for one call can each charge a different price per call. On the sheet, click or tap the score to see how we worked out the score.","Data score":"The plan's data score out of 100, from our benchmark of the provider's call. On some APIs, the score measures how complete the call's answer is. On others, the score measures how often the answer is right. We lower the score when we test the call on fewer inputs than the benchmark has. Until we benchmark the call, the score is N/A, and so is the Overall score. The data, performance and Overall scores are also N/A on a plan that lacks a check or feature the benchmarked plan has. On the sheet, click or tap the score to see how we scored the plan. Each API's sheet shows what we measured on each benchmarked plan, in the columns after the price.","Cost to get started score":"The plan's score out of 100 for getting your first result. The score weighs who can get the plan, how you pay, and the least you pay to start. On the sheet, click or tap the score to see why.","Bundle score":"The plan's score out of 100 for the other calls the plan's price gets you. Also pays for lists those calls. On the sheet, click or tap the score to see why.","Performance score":"The plan's performance score out of 100, from our benchmark of the provider's call. We divide the fastest benchmarked provider's median time by this provider's median time. We compare live calls with live calls, and calls that answer from a copy with each other. A median under 0.1 s counts as 0.1 s, since the baseline we take off varies by about that much. The Performance score and the Overall score are N/A until we benchmark the call. The data, performance and Overall scores are also N/A on a plan that lacks a check or feature the benchmarked plan has. If the call gave no answer we could time, the Performance score is N/A. The Overall score then counts Performance as 0. The Performance score is N/A when we timed no other call of the same kind in the same benchmark. The Overall score then leaves Performance out. On the sheet, click or tap the score to see how we scored the plan. Each API's sheet shows what we measured on each benchmarked plan, in the columns after the price.","perThousand":"The price of 1,000 profiles on this plan, in dollars. The price is 0 on a free plan. On a plan that charges by the call, each call asks for one profile. We add the Start fee to each profile's price. On a plan that charges by the page, we divide 1,000 by the most results one page holds. We round that up to whole pages and add up what the pages cost. We leave the price blank when the provider doesn't say how many results a page holds. On a flat fee, we take the most profiles the plan allows in one month. We multiply that by the months the fee covers. We divide the fee by that total. Then we multiply by 1,000. We leave the price blank when the provider doesn't say how many profiles the plan allows. A plan with no end date and only limits per second, minute, hour or day has no cap on profiles. A flat fee with no cap on profiles shows \"no limit\" on the sheet. We leave the price blank in the CSV and JSON. On a waterfall's paid plan, we show the average cost of a call. We take the price of each provider listed under Waterfall. We weight each price by how often a call reaches that provider. We leave the price blank when a provider a call can reach has no hit rate or page size. On a plan with a Monthly fee, we first subtract one month of the fee from the plan's units. Then we divide the plan's price by the number of profiles the remaining units buy. Then we multiply by 1,000. We leave the price blank when the Monthly fee uses up all the plan's units. Some plans limit calls per second, minute, hour, day or month. We divide the price by the profiles the limit allows, if that is fewer than the profiles you pay for. Then we multiply by 1,000. We leave the price blank on a top-up, because a top-up buys no fixed number of profiles. We also leave the price blank when the provider's website doesn't say what a profile costs on this plan. We leave the price blank, too, when the website doesn't say how many profiles the price buys.","per":"The price counts a \"call\" or a \"result\". A call asks for one profile. A result is each profile a call returns. Some calls return a page of profiles. \"result\" means you pay for each result on the page. \"page of 50\" counts each page. You pay for a whole page even when the page holds fewer than 50. In the JSON, resultsPerPage is the most results a page holds. resultsPerPage is null when the price isn't per page or the provider doesn't say the page size. \"page, size not stated\" means the provider doesn't say how many results a page holds.","billing":"How you pay. \"free\": the plan costs nothing. \"on-demand\": you pay for what you use, with nothing to buy first. \"one-time\": a pack or a top-up you pay for first, then use. \"contact\": no public price, so you ask the provider for one. A subscription: \"monthly\", \"quarterly\" (every three months), \"half-yearly\" (every six months) or \"yearly\". The sheet shows \"one-time\" as \"pay first\" and \"on-demand\" as \"pay as you go\".","perMonth":"On a subscription: the plan's price for one month in dollars. We divide the plan's Pay by the months the plan buys (termMonths), 12 on most yearly plans. We work out this price for the sheet, to the cent. The sheet's CSV and JSON leave this price out. datacircle.json and datacircle.csv have this price. Blank (null) on every other plan.","notFoundPerThousand":"What you pay for 1,000 accounts the provider can't find. 0 when the provider charges nothing for them, as on free plans. On a waterfall, the cost of a call when no provider finds the answer. That cost is the sum of the prices of the providers that charge for a miss.","strengths":"The plan's strengths, which we work out from the plan's row. Each strength is a band that many plans of the same API are in. Strengths differ by API. We list and explain them under Strengths on datacircle.dev/fields. Only LinkedIn profiles and Find email have strengths so far. Blank ([] in the JSON) when the plan has none, and then the plan's page leaves Strengths out. Under Filters, you see only the rows with every strength you tick.","aggregators":"Aggregators like treg and Deepline sell the row's call. With one aggregator account, you reach many providers. Each cell gives what a call costs through the aggregator with your own provider key. The cell also gives what 1,000 profiles cost when you pay the aggregator and have no account at the provider: \"treg: your key free, paid $1.50\". We add \"per 1,000 results\" when the aggregator charges per result found. We say \"paid, no fixed price\" when the aggregator publishes no price. Some aggregators charge by the page. For those, we take the largest page size. Then we price the full pages you need for 1,000 results. We write \"paid, page size not stated\" when the aggregator doesn't say how many results a page holds. Some aggregators list the call but don't say whether you pay them or use your own key. For those, we write \"listed, how it's sold not stated\". An aggregator may sell one of the provider's calls without saying which. Then the cell ends with \"this call or another\", the provider's name and \"call\": \"this call or another Pubrio call\". A cell says \"none\" when no aggregator we checked for the row's API sells the call. A blank cell (null in the JSON) means we haven't checked any aggregator for that API. We skip calls an aggregator doesn't list. In the JSON, each aggregator has these keys. aggregator is the aggregator's name. url is the aggregator's page for the call. ownKey is what a call costs there with your own key, or null when you can't use yours. paid is true when you can pay the aggregator. paid and ownKey are both null when the aggregator doesn't say how the call is sold. callStated is false when the aggregator doesn't say whether the call is this one or another of the provider's. usd is the aggregator's price in dollars for one per, or null when the aggregator sets no price. perThousand is the aggregator's price in dollars for 1,000. per is \"call\", \"result\" or \"page\". resultsPerPage is the most results a page holds, or null.","waterfall":"Some routers, like treg's, try one provider after another until one finds the answer. On a router's call, the Waterfall column lists each provider the router tries, in order. Each provider shows the router's name for the provider's call in brackets. Then we give the provider's price per 1,000 on this plan and how often the provider finds the answer. We add \"misses billed\" when the provider charges for a miss. Some providers charge by the page. For those, we count the full pages that hold 1,000 results at the largest page size. We write \"page size not stated\" when the provider doesn't say how many results a page holds. The router publishes how often each provider finds an answer over all the router's calls. We assume each provider finds answers at that same rate on the calls the earlier providers miss. We leave the Waterfall column blank on calls with a single provider. In the JSON, each step has these keys. provider is the provider's name. call is the provider's call, which you can also make alone. perThousand, per and resultsPerPage mean the same as on a plan's row. hitRate is from 0 to 1, or null when the router gives none. missesBilled is true when the provider charges for a miss.","repeatFree":"On a call that costs units: how long you can get a paid profile again for free. On a flat fee with a call limit, the time before the same profile counts toward the limit again. We copy the time from the provider's pages, like \"20 minutes\". \"no limit\" means the provider never charges again for a profile you paid for once. \"never\" means the provider charges each time you get the profile again. Blank when the provider's pages don't say.","resultsCap":"For a search API: the most results one search gets on this plan, however many pages you ask for. \"no limit\" when the provider says you can get every match. Blank (null in the JSON) when the provider's docs don't say, or when the API isn't a search.","startPerCall":"A fee in dollars you pay once for each call, on top of the price per profile. An Apify Actor's start fee is one. You pay the same fee for a call of 1,000 profiles or a call of one profile. On a plan that charges by the call, each call asks for one profile. On that plan, the $ per 1,000, List $ per 1,000, Overage and Enough for columns all count the Start fee. On a plan that charges by the result or the page, a call can return any number of results. On those plans, the $ per 1,000, List $ per 1,000, Overage and Enough for columns leave the Start fee out. The Start fee is $0.00 on a free plan, and blank when the plan has no start fee. A provider's page can give a range, like \"2-3 credits\". startPerCall then holds the lowest fee and startPerCallMax holds the highest. The sheet and the CSV show \"$0.04 to $0.06\". startPerCallMax is blank on a plan with one start fee or none.","monthlyFee":"A monthly fee the call needs. The provider takes the fee from the plan's units. For example, RouterGrowth charges $9.625 a month for each LinkedIn account you connect. monthlyFee is the fee in dollars. monthlyFeePer is what one fee pays for, like \"LinkedIn account\". The Enough for and $ per 1,000 columns count what is left after one month of the fee. Blank (null in the JSON) when the call has no monthly fee.","extras":"Fields that cost more than the row's price. Each group of extra fields has fields and perThousand. perThousand is the price you pay on top of the row's price. Some providers charge for each search and also for the extra fields on each result. For those providers, perThousand is the price for 1,000 searches. We assume each search returns the most results the plan allows.","Also pays for":"The other calls you get for the plan's price. The other calls each have a separate limit. We use the provider's words. When a plan pays for more than 40 other calls, we write their count instead, like \"300 other calls\". We leave out apps, extensions, MCP servers, proxies and storage, since they are not calls. We also leave out features you can use only in the provider's app, like sending the provider's email campaigns. For example, gtm-api.com's account price also buys 100 searches, 50 messages and 25 connection requests a day. \"nothing\" when you get only the row's call. The row's $ per 1,000 is for that call alone, since providers don't say how to split their price. Blank (null in the JSON) until we read the provider's plan. Also blank on a \"contact\" plan whose pages don't say what the price buys.","overagePerThousand":"On a subscription: dollars for each 1,000 profiles you get past the plan's units, when the provider sells extra profiles. On a plan that charges by the call, Overage includes the Start fee.","unitsCap":"\"hard\" means calls stop once the plan's units run out. \"soft\" means calls go on after the plan's units run out. Those calls cost the Overage price when the provider gives one. Blank (null in the JSON) when the provider's pages don't say.","addons":"On an email API's subscription: the packs of units the provider sells on top of the plan. We read them on the pricing page. Each pack has units and pay, in the plan's currency. renews is \"month\" or \"year\" when you pay for the pack again with the plan. renews is \"never\" when you buy the pack once. perThousand is dollars for 1,000 emails at the pack's price. The sheet's CSV says \"500 credits a month for $10 ($20.00 per 1,000)\". An empty list when the provider sells none. Blank (null) on every other plan.","catchAllPerThousand":"On an email API: dollars for 1,000 calls that return an address at a catch-all domain. Such a domain takes mail for any address. So you can't check whether the person's mailbox exists, and the email may bounce. 0 when such calls cost nothing, or when the provider returns no such address. The same as the row's $ per 1,000 when the provider charges for any address found. Blank when the provider's pages don't say.","bounceRefund":"On an email API: the credit or refund the provider gives when a paid address bounces. Also the conditions, in the provider's words, like \"the credit, reported from the dashboard or the API and reviewed\". \"never\" when the provider's pages say a bounced address stays charged. Blank when the pages don't say.","pitch":"How the provider sells the row's call, quoted from the call's own page. When one page covers all the provider's calls, we quote the provider's own pitch. \"[...]\" marks a cut.","freshness":"How old the answer may be, from the provider's pages. \"live\": the provider gets the data at the moment you call. The provider reads sources like LinkedIn, company websites, job boards, search results, keyword data or a page you send. Or the provider finds or checks an email or phone number at the moment you call. Some providers keep each answer for an hour or less. They give the same answer to anyone who asks the same question in that time. We call such a plan \"live\" too. Renidly keeps each answer for 20 minutes. \"1 month\" or \"30 days\": the provider answers from a copy refreshed that often. \"as of 2025-11-13\": from a copy last refreshed that day. \"stored\": from a copy the provider's pages don't date. Some email or phone checks read only the format, the domain's DNS and the provider's own lists. We mark those checks \"stored\" too. Such a check never asks the mail server or the carrier. Freshness is blank (null in the JSON) when the provider's pages don't say how fresh the answer is. Freshness is also blank when the pages don't agree with each other. A plan whose Freshness says a copy is on the API's sheet, beside the plans that read live. In brackets, we list the fields whose freshness differs on the provider's pages. fieldFreshness gives the freshness of each of those fields. Bright Data's LinkedIn profile is \"live (current title, jobs, schools: as of 2025-11-13)\". LinkedIn put those three behind a login wall, so Bright Data serves them from a cache.","history":"How far back the answers reach, on an API whose answers are dated. A company's funding rounds and open jobs are dated. \"since 2016\": back to 2016. \"open only\": only what is open now. \"the last 7 days\": a window that ends today. \"no limit\": every one ever. \", closed only\" after a value: the closed ones alone. Blank (null in the JSON) when the provider's pages don't say, or when the answers aren't dated.","countries":"On Validate phone, the countries whose numbers the call checks, like \"United States\". We take them from the provider's pages. \"Worldwide\": the call checks numbers from any country, or from over 100 countries. Blank (null in the JSON) until we read the countries on the provider's pages. Also blank when the provider's pages don't list the countries. Always blank on every other API.","fullFamilyTree":"On Company hierarchy, this column says whether one call gives the whole family tree. The whole tree runs from the top parent down each branch. \"yes\" (true in the JSON): one call gives the whole tree, counting every page of results the call returns. \"no\" (false): one call gives part of the tree, like the parents or one level of subsidiaries. You call again for each company to get the rest. The column is blank (null in the JSON) until we read the provider's website. The column is also blank when the provider's website doesn't say. Always blank on every other API.","checks":"This column lists the checks each call makes, as the provider's pages describe them. You find this column on the Validate email and Validate phone sheets. On Find email, the column lists the checks a finder makes on an address before giving you the address. A finder that asks the mail server takes longer than a finder that doesn't. On an email, \"format\": the address is well formed. \"mail servers\": the domain has servers that take mail. \"disposable domains\": the call spots a domain on a list of throwaway domains. \"role addresses\": the call spots a shared address, like sales@. \"mailbox\": the call checks with the mail server that the mailbox exists. On a number, \"numbering plan\": the number fits the rules of the number's country. \"carrier\": the call finds the carrier the number is with today. If the owner moved the number to a new carrier, you see the new carrier. \"line in service\": the call checks with the network that the line is live. \"messaging apps\": the call checks with a messaging app, like WhatsApp, that the number has an account there. A call without \"mailbox\" doesn't check the mailbox. Such a call can pass an address that bounces. The column is blank (null in the JSON) until we read the provider's pages. Also blank when the provider's pages don't say. Always blank on every other API.","searchesIn":"This column says where the call looks for posts. We read where the call looks on the provider's pages. You find this column on the LinkedIn post search sheet. \"LinkedIn's search\": the call runs LinkedIn's own search. \"Google's index\": the call searches Google for LinkedIn posts. Google sets how many posts the call can find. New posts show up only after Google indexes them. \"a search engine's index\": the call searches another search engine for LinkedIn posts. We also mark a call \"a search engine's index\" when the provider's pages don't name the search engine. \"the provider's own database\": the call searches a copy of LinkedIn posts the provider keeps. We leave the column blank (null in the JSON) when the provider's pages don't say. We leave the column blank for every other API.","keep":"How long the provider's terms let you keep the API's answers. \"no limit\" when the terms set none. \"no API terms\" when the provider has no API terms.","use":"What the provider's terms let you use the API's answers for. Also what the terms ask in return, like a link back or a credit. \"any\" when the terms limit nothing and ask nothing. \"no API terms\" when the provider has no API terms.","pay":"The plan's price, in the plan's currency. On a subscription, the price covers the months in termMonths. In the sheet's CSV, we write the months after the price. Some examples: \"$39.00/month\", \"€99.00/month\" on a plan in euros, or \"$468.00/15 months\" on gtm-api.com's yearly plan. A pack's Pay is the pack's price. A top-up's Pay is the smallest amount you can top up. On a top-up with no minimum from the provider, Pay is blank (null in the JSON). A free plan's Pay is $0.00. On a usage tier, Pay is what you pay each month for your calls below that tier. Each of those calls costs the price of the tier the call is in. Some tiers have a minimum. If your calls below the tier cost less than the minimum, you pay the minimum. When a usage tier sits on a subscription, you also pay the plan's price. Crawlbase has a tier for the next 10M requests. On that tier, Pay is $583: what you pay each month for your calls below the tier. On Mailgun's Foundation plan, you pay $95 a month for up to 5,000 validations. The $95 is the $35 plan plus $60 for the validations. On a pay-as-you-go plan, the sheet's Pay column shows Charged.","units":"What the plan gives for the price, counted in unit. On a usage tier, where the tier starts: \"from the 51st call a month\".","calls":"The number of profiles you get for the plan's price, counted in per. On a plan that charges by the page, calls and monthlyCap count pages. calls is the number of profiles the plan's units pay for: \"100 calls, once\" for a free trial, \"1,250 results a month\" for an allowance. On a plan that charges by the call, calls is the plan's units divided by the cost of one call. That cost includes the Start fee. A plan can limit calls per day or per month. Then calls is the most calls the limit allows before the units renew. The limit counts each call as one profile. On a plan that charges by the page, the limit counts each call as one page. Say a plan allows 10,000 requests a month and 200 calls a day. You get 6,000 calls a month, because 30 days of 200 calls is 6,000. Some providers count each result toward the limit. A list you send in one call counts one result for each row. When a provider counts results, limitsCountedIn says \"result\", and calls and monthlyCap count results. A limit of 2,000 results a day allows 60,000 results in a month of 30 days. We fill monthlyCap when a call costs 0 units, like a call on a flat fee. monthlyCap is the most profiles you get a month, or \"no limit\". On a plan with a daily or monthly limit, monthlyCap is the most calls in 30 days. 3,000 calls a day make 90,000. The Enough for column shows 3,000 calls a day as \"90,000 calls a month\". Any plan can limit calls per hour, minute or second. calls and monthlyCap also hold the most calls a limit per hour, minute or second allows. A limit of 50 calls an hour allows 36,000 calls in 30 days. We count a call limit in monthlyCap only when each call returns one profile or a fixed-size page. On a free trial shorter than 30 days, monthlyCap is the most calls you get over the whole trial. The trial's calls never renew. A 7-day trial with 1,000 calls a day shows as \"7,000 calls, once\". Enough for shows calls, or monthlyCap when a row has no calls. On a plan with a Monthly fee, the provider first takes one month's fee from the plan's units. calls counts the calls left after the fee. We count the calls again each time the provider refills the plan's units. Enough for says \"0 calls left after the monthly fee\" when the fee uses up all the plan's units. Enough for is blank when the provider doesn't say how many profiles you get. Enough for is also blank on pay as you go plans and on top-ups. Enough for is blank too on subscriptions that charge for each profile on top of the fee. Enough for is also blank when a waterfall's average call costs nothing. calls and monthlyCap are null when Enough for is blank.","expires":"When the units you don't use lapse, in the provider's words: \"never\", \"365 days\", \"at renewal: unused credits do not carry over\". Blank when the provider's pages don't say.","perDay":"The most calls a day. Some providers count each result of a call instead, like each row of a list. limitsCountedIn says what the provider counts: \"call\", \"result\" or \"page\". The provider counts the same unit for this column and for the plan's monthly limit. limitsCountedIn says \"call\" when the provider's docs don't say.","perSecond":"The most calls a second you can keep up. When the provider counts a limit over a longer window, we divide the limit. We divide a limit per minute by 60, per 5 minutes by 300, per hour by 3,600. When the provider sets several limits, we show the tightest: 25 a second and 40 a minute is 0.67. We round to two decimals. A rate under 0.1 keeps two digits past the zeros: 5 an hour is 0.0014.","concurrent":"The most calls running at once, or \"no limit\". \"n/a\" when the provider sets no cap on calls at once but limits calls by the second. Then Per second sets your limit. Blank (null) when the provider's pages don't say.","batch":"The most handles in one call on this plan. 1 when the call takes one at a time. \"no limit\" when the provider says a call takes any number. Blank (null) when a call takes a list and the provider's pages don't say how many. A call that refuses fewer than a set number shows the fewest and the most, like \"2,000 to 2,000,000\". A call that needs at least 2,000 and has no top limit shows \"2,000 or more\". A call that needs at least 2,000 shows \"at least 2,000\" when the provider's pages don't give the top limit.","answer":"The way you get the call's answer. \"in the call\" when the call's response holds the answer. \"by polling or webhook\" when the call returns a job. Once the job is done, you get the answer from another call or at your webhook. \"in the call or by polling\" when the call returns the answer if the answer is ready in time. If the answer isn't ready, the call returns a job you check later. An Apify Actor returns a job when the run goes past 5 minutes. \"in the call or by webhook\" when you choose in your request. \"by polling\" when only another call gets the answer. \"by webhook\" when only a URL you give gets the answer. Blank (null) when the provider's pages don't say.","latencyMs":"The median time a call takes. For a benchmarked call, we show our benchmark's median. The API's benchmark columns show the same median. From each call's time, we subtract the mean time of three free calls to the same provider, made just before. If that mean is longer than the call, we use the provider's median baseline instead. We cap the baseline at the call's time, so no time is below zero. For a call we didn't benchmark, we show the time from the provider's pages. Or we show a time we measured when we added the row. On a plan without a check or feature of the benchmarked plan, we show the provider's time or our own. We leave the median blank (null) when we have no time. We also leave the median blank when the benchmarked call gave no answer we could time. The JSON and datacircle.csv give the time in milliseconds. The sheet and the sheet's CSV give the time in seconds.","send":"What you give the call: an account's handle. The call needs the inputs before \"Optional:\". The optional ones come after \"Optional:\", or after a semicolon in the CSV and the JSON.","method":"The call's HTTP method.","path":"We give the path from the provider's docs. When that path fails, we give the path that works. Each plan of a call has the same path. A plan the provider serves at a separate address has a separate path.","plan":"The plan's name on the provider's pricing page.","who":"Who the provider offers the plan to: \"anyone\", or the condition the provider's pages set, like \"anyone with a work email\" or \"on approval of an application\".","readFrom":"The pages we read the row's values from. They are the sheet's last column: click a cell to see each page, or press ⌘C to copy them all."},"billed":{"free":"Free: nothing to pay","on-demand":"Nothing to buy first: you pay as you go","one-time":"You buy credit first, as a pack or any amount you like, then spend the credit on calls","contact":"No public price: you ask the provider for one","monthly":"A monthly subscription","quarterly":"A quarterly subscription","half-yearly":"A subscription for 6 months","yearly":"A yearly subscription"},"defaults":["No contact us plans","No free plans","No yearly plans","$500 or less to start"],"kept":11,"paid":{"ranked":{"Threads profile":[0.5,0.994,1,1.1,1.1,1.28,1.2995,1.5,1.5,1.58,1.6111,1.6478,1.88,1.995,2,2.15,2.36,2.6533,3.4545,3.95,4.5,4.5,4.5,4.8333,4.8485,5.3333,6,6,8.8889,14,14,31.5789,40,65.3333]},"bench":{}},"alert":true,"more":"/assets/sheet-GZsb-7u4.json"}