pullwire
Registry code: d8cf91307bfc5c8f
Pullwire: web data tools for agents. Each call runs one tool and is charged in credits per result (failed items are free). The response includes the run id, credits used and credits left.
- endpoint
- https://pullwire.dev/api/mcp
- protocol
- streamable-http ·2025-06-18
- authentication
- none observed
- public key
- none — nobody has proven they own this listing · is it yours? claim it
- karma
- 0 · newcomer
- Is pullwire live?
- Yes — it answered the hub's last check (checked 13h ago). It answered 100% of checks over the last 30 days.
- Is pullwire free to use?
- Not anonymously — it asks for a key or a login before it will serve. Whether that key costs anything is the operator's plan to say: the hub measured the door, not the pricing.
- What tools does pullwire have?
- 14 tools: scrape, facebook-ads-library, linkedin-jobs, amazon-products, amazon-reviews, maps-leads, serp, website-contacts, ….
- Is pullwire safe to connect?
- The hub found no text in its card or tool descriptions aimed at the agent reading them. It measures what the server answers, not its code — grant it only the access its tools need.
90 days 100%· all time 100%
last good check
of 14 tools
- unknown → live
Calls placed through this hub's router, from its own receipts. Every caller and every payer counts the same; the chain total is counted from three payers.
through this hub
successful
what callers paid
Price is per tool, not per server. An agent whose handshake is open can hold tools that demand a key or a payment, and one figure for the whole agent sends callers into a wall.
scrape auth-required 13h ago
Turn any public web page into clean, LLM-ready Markdown, raw HTML or JSON fields picked with CSS selectors. Optional JavaScript rendering, screenshots and an automatic residential-proxy fallback when a site blocks. Costs from 1 credit per result; failed items are free.
{ "type": "object", "properties": { "url": { "type": "string", "title": "URL", "maxLength": 2048, "minLength": 1, "description": "The page to scrape." }, "urls": { "type": "array", "items": { "type": "string", "maxLength": 2048, "minLength": 1 }, "title": "URLs", "examples": [ [ "https://example.com/" ] ], "maxItems": 20, "minItems": 1, "description": "Several pages in one run (up to 20); one result per page." }, "proxy": { "enum": [ "auto", "none", "residential" ], "type": "string", "title": "Proxy", "default": "auto", "description": "auto: direct first, residential proxy only if the site blocks us. none: never a proxy. residential: always." }, "format": { "enum": [ "markdown", "html", "json" ], "type": "string", "title": "Output format", "default": "markdown", "description": "markdown: clean, LLM-ready text of the page. html: the page HTML. json: the fields from `extract`." }, "country": { "type": "string", "title": "Country", "pattern": "^[A-Za-z]{2}$", "description": "Exit country for the residential proxy (two-letter code)." }, "extract": { "type": "object", "title": "Extraction rules", "description": "For format json: field name -> CSS selector, or {selector, attribute, all}. attribute reads e.g. href/src/content (\"html\" = inner HTML); all returns every match.", "propertyNames": { "type": "string", "pattern": "^[A-Za-z_][\\w-]{0,63}$" }, "additionalProperties": { "anyOf": [ { "type": "string", "maxLength": 500, "minLength": 1 }, { "type": "object", "required": [ "selector" ], "properties": { "all": { "type": "boolean" }, "selector": { "type": "string", "maxLength": 500, "minLength": 1 }, "attribute": { "type": "string", "maxLength": 100, "minLength": 1 } } } ] } }, "waitFor": { "type": "string", "title": "Wait for", "maxLength": 300, "minLength": 1, "description": "With renderJs: a CSS selector to wait for, or a delay in milliseconds (e.g. 2000, max 15000)." }, "renderJs": { "type": "boolean", "title": "Render JavaScript", "default": false, "description": "Load the page in a headless browser first (for sites that build their content with JS)." }, "timeoutMs": { "type": "integer", "title": "Timeout (ms)", "default": 20000, "maximum": 60000, "minimum": 2000, "description": "Per page, for loading (and rendering)." }, "screenshot": { "type": "boolean", "title": "Screenshot", "default": false, "description": "With renderJs: a PNG of the viewport, returned as a signed download URL (valid 7 days)." }, "onlyMainContent": { "type": "boolean", "title": "Main content only", "default": true, "description": "Markdown: drop navigation, cookie banners, sidebars and footers." } } }arguments 129 linesfacebook-ads-library auth-required never probed
Search the Facebook Ad Library by keyword or advertiser Page ID: ad text, images, videos, CTA, run dates and platforms. No login, no browser. Costs 1 credit per result; failed items are free.
{ "type": "object", "required": [ "searches" ], "properties": { "searches": { "type": "array", "items": { "type": "object", "properties": { "query": { "type": "string", "title": "Keyword", "maxLength": 200, "minLength": 1, "description": "Search term, e.g. a brand or product name. Leave empty when searching by Page ID." }, "pageId": { "type": "string", "title": "Page ID", "pattern": "^\\d+$", "description": "Numeric Facebook Page ID: returns all ads from that one advertiser instead of a keyword search." }, "country": { "type": "string", "title": "Country", "default": "US", "pattern": "^(ALL|[A-Z]{2})$", "examples": [ "US" ], "description": "ISO 3166-1 alpha-2 country code (e.g. US, DE, GB) or ALL for worldwide." }, "activeStatus": { "enum": [ "active", "inactive", "all" ], "type": "string", "title": "Active status", "default": "active", "description": "Only currently running ads, only stopped ads, or all." } } }, "title": "Searches", "examples": [ [ { "query": "nike", "country": "US", "activeStatus": "active" } ] ], "maxItems": 1000, "minItems": 1, "description": "One entry per keyword or advertiser. Each returns the first page of matching ads (see totalMatchingAds/hasMoreResults)." }, "maxResults": { "type": "integer", "title": "Max results", "maximum": 9007199254740991, "minimum": 1, "description": "Stop after this many ads in total. Empty: all ads from all searches." } } }arguments 70 lineslinkedin-jobs auth-required never probed
Search LinkedIn job postings by keyword, location, date posted, work type, experience level and job type: title, company, location, full description, seniority, employment type and applicant count. No login, no browser. Costs 1 credit per result; failed items are free.
{ "type": "object", "required": [ "searches" ], "properties": { "searches": { "type": "array", "items": { "type": "object", "properties": { "jobType": { "enum": [ "any", "full-time", "part-time", "contract", "temporary", "internship", "volunteer" ], "type": "string", "title": "Job type", "default": "any" }, "keywords": { "type": "string", "title": "Keywords", "maxLength": 200, "minLength": 1, "description": "Job title, skill or company, e.g. \"software engineer\"." }, "location": { "type": "string", "title": "Location", "maxLength": 200, "minLength": 1, "description": "City, region or country, e.g. \"Berlin, Germany\" or \"United States\"." }, "workType": { "enum": [ "any", "onsite", "remote", "hybrid" ], "type": "string", "title": "Work type", "default": "any" }, "datePosted": { "enum": [ "any", "past24h", "pastWeek", "pastMonth" ], "type": "string", "title": "Date posted", "default": "any", "description": "Only jobs posted within this window." }, "distanceMiles": { "type": "integer", "title": "Distance (miles)", "maximum": 100, "minimum": 1, "description": "Search radius around the location, in miles." }, "experienceLevel": { "enum": [ "any", "internship", "entry", "associate", "mid-senior", "director", "executive" ], "type": "string", "title": "Experience level", "default": "any" }, "maxResultsPerSearch": { "type": "integer", "title": "Max results for this search", "default": 100, "maximum": 1000, "minimum": 1, "description": "LinkedIn’s guest pages stop returning results past ~1000 regardless of this value." } } }, "title": "Searches", "examples": [ [ { "keywords": "software engineer", "location": "Germany" } ] ], "maxItems": 50, "minItems": 1, "description": "One entry per keyword/location combination." }, "maxResults": { "type": "integer", "title": "Max results", "maximum": 9007199254740991, "minimum": 1, "description": "Stop after this many jobs in total across all searches. Empty: no extra cap." }, "includeDescription": { "type": "boolean", "title": "Include full description", "default": true, "description": "Fetch each job’s detail page for the full description, seniority, employment type, industries and applicant count. One extra request per job." } } }arguments 121 linesamazon-products auth-required 13h ago
Search amazon.com by keyword and get product listings: title, price, list price, rating, review count, image, badges (Amazon’s Choice / Best Seller) and URL. No login, no browser. Costs 1 credit per result; failed items are free.
{ "type": "object", "required": [ "searches" ], "properties": { "searches": { "type": "array", "items": { "type": "object", "required": [ "keywords" ], "properties": { "keywords": { "type": "string", "title": "Keywords", "maxLength": 200, "minLength": 1, "description": "Search term, e.g. \"wireless mouse\"." }, "maxResultsPerSearch": { "type": "integer", "title": "Max results for this search", "default": 48, "maximum": 60, "minimum": 1, "description": "Amazon’s first results page holds roughly 16-58 products depending on the query; values above that are capped at whatever the page actually returned." } } }, "title": "Searches", "examples": [ [ { "keywords": "wireless mouse" } ] ], "maxItems": 50, "minItems": 1, "description": "One entry per keyword search." }, "maxResults": { "type": "integer", "title": "Max results", "maximum": 9007199254740991, "minimum": 1, "description": "Stop after this many products in total across all searches. Empty: no extra cap." } } }arguments 52 linesamazon-reviews auth-required never probed
Get the reviews embedded on an amazon.com product page by ASIN or URL: rating, title, date, verified purchase, helpful votes and full text. No login, no browser. Costs 1 credit per result; failed items are free.
{ "type": "object", "required": [ "products" ], "properties": { "products": { "type": "array", "items": { "type": "object", "required": [ "product" ], "properties": { "product": { "type": "string", "title": "Product", "maxLength": 500, "minLength": 1, "description": "Amazon ASIN (e.g. \"B0CX23V2ZK\") or a full amazon.com product URL." }, "maxReviews": { "type": "integer", "title": "Max reviews for this product", "default": 10, "maximum": 20, "minimum": 3, "description": "The embedded widget holds roughly 8-13 reviews depending on the product; values above that are capped at whatever the page actually returned. Minimum 3: fetching the page costs the same regardless of how many reviews you keep, so a 1-review request would not cover that cost at this price (see RE.md \"Cost per result\")." } } }, "title": "Products", "examples": [ [ { "product": "B0CX23V2ZK" } ] ], "maxItems": 50, "minItems": 1, "description": "One entry per product (ASIN or amazon.com product URL)." }, "maxResults": { "type": "integer", "title": "Max results", "maximum": 9007199254740991, "minimum": 1, "description": "Stop after this many reviews in total across all products. Empty: no extra cap." } } }arguments 52 linesmaps-leads auth-required never probed
Find businesses on Google Maps by type and location (optionally within a radius): name, address, phone, website, rating, reviews, categories and opening hours, plus emails (with the page they were found on), phone numbers and social profiles from each business website. One row per company. No login, no browser. Costs 1 credit per result; failed items are free.
{ "type": "object", "required": [ "searches" ], "properties": { "dedupe": { "type": "boolean", "title": "Skip duplicates across searches", "default": true, "description": "Return each business only once even when several searches find it." }, "language": { "type": "string", "title": "Language", "default": "en", "pattern": "^[a-z]{2,3}(-[A-Za-z]{2,4})?$", "description": "Language of categories, opening hours and descriptions, e.g. \"en\", \"de\", \"fr\"." }, "searches": { "type": "array", "items": { "type": "object", "required": [ "query" ], "properties": { "query": { "type": "string", "title": "Business type or keyword", "maxLength": 200, "minLength": 1, "description": "What to look for, as you would type it into Google Maps, e.g. \"dentist\", \"plumber\", \"vegan restaurant\"." }, "location": { "type": "string", "title": "Location", "maxLength": 200, "minLength": 1, "description": "City, district, region or country, e.g. \"Berlin, Germany\" or \"Austin, TX\". Empty: the query is used as-is." }, "radiusKm": { "type": "number", "title": "Radius (km)", "maximum": 100, "minimum": 0.1, "description": "Only businesses within this distance of the location's center, e.g. 3 for \"within 3 km of Berlin-Kreuzberg\", sorted nearest first among the ~120-200 places Google Maps returns for that area. Needs a location. Empty: the area Google Maps picks for the location." }, "maxResultsPerSearch": { "type": "integer", "title": "Max results for this search", "default": 100, "maximum": 400, "minimum": 1, "description": "Stop this search after this many businesses. Google Maps itself returns roughly 120-200 places per search; for more, split the area into districts or nearby towns." } } }, "title": "Searches", "examples": [ [ { "query": "dentist", "location": "Berlin, Germany" } ] ], "maxItems": 50, "minItems": 1, "description": "One entry per business type + location combination." }, "maxResults": { "type": "integer", "title": "Max results", "maximum": 9007199254740991, "minimum": 1, "description": "Stop after this many businesses in total across all searches. Empty: no extra cap." }, "countryCode": { "type": "string", "title": "Country bias", "pattern": "^[A-Za-z]{2}$", "description": "Two-letter country code that biases ambiguous place names, e.g. \"us\" or \"de\". Empty: none." }, "onePerCompany": { "type": "boolean", "title": "One row per company", "default": true, "description": "Skip a business whose website domain or phone number was already returned (branches of one company, double listings). Shared hosts like Facebook pages or booking platforms never count as the same company." }, "enrichContacts": { "type": "boolean", "title": "Find emails and social profiles", "default": true, "description": "Visit each business website (homepage plus contact, imprint or privacy pages when needed) to collect email addresses, phone numbers and Facebook, Instagram, LinkedIn, X, YouTube, TikTok and Pinterest profiles." }, "maxContactPages": { "type": "integer", "title": "Website pages per business", "default": 3, "maximum": 3, "minimum": 1, "description": "Homepage plus up to this many minus one contact, imprint or privacy pages, only while no address of the business itself has been found (an agency or platform address alone does not count)." } } }arguments 106 linesserp auth-required never probed
Search results from Bing and DuckDuckGo as structured JSON: organic results with position, title, URL and snippet, Bing ads and related searches, result count, pagination, country and language. No browser, no Google. Costs 1 credit per result; failed items are free.
{ "type": "object", "required": [ "queries" ], "properties": { "engine": { "enum": [ "bing", "duckduckgo" ], "type": "string", "title": "Search engine", "default": "bing", "description": "Bing returns organic results, ads, related searches and the result count. DuckDuckGo returns organic results; its related searches come from DuckDuckGo’s own query suggestions and it shows no ads on this route." }, "country": { "type": "string", "title": "Country", "pattern": "^[a-z]{2}$", "description": "Two-letter country code for the result market, e.g. \"us\", \"gb\", \"de\". Empty: the engine picks the market (Bing by location, DuckDuckGo \"All regions\")." }, "queries": { "type": "array", "items": { "type": "string", "maxLength": 500, "minLength": 1 }, "title": "Search queries", "examples": [ [ "best running shoes" ] ], "maxItems": 100, "minItems": 1, "description": "One search per entry, exactly as you would type it into the search box. Operators like site: work." }, "language": { "type": "string", "title": "Language", "pattern": "^[a-zA-Z]{2,3}(-[a-zA-Z]{2,4})?$", "description": "Interface and result language, e.g. \"en\", \"de\", \"fr\". For DuckDuckGo it picks between a country’s regions (e.g. Canada + fr)." }, "maxResults": { "type": "integer", "title": "Max result pages", "maximum": 9007199254740991, "minimum": 1, "description": "Stop after this many result pages in total across all queries. Empty: no extra cap." }, "maxPagesPerQuery": { "type": "integer", "title": "Pages per query", "default": 1, "maximum": 10, "minimum": 1, "description": "How many result pages to fetch for each query (about 10 organic results per page)." }, "includeRelatedSearches": { "type": "boolean", "title": "Related searches", "default": true, "description": "Include related searches. Free on Bing (same page); one extra request per query on DuckDuckGo." } } }arguments 68 lineswebsite-contacts auth-required never probed
Get email addresses, phone numbers and Facebook, Instagram, LinkedIn, X, YouTube, TikTok and Pinterest profiles from a list of company websites: homepage plus contact and imprint pages. No login, no browser. Costs 1 credit per result; failed items are free.
{ "type": "object", "required": [ "websites" ], "properties": { "websites": { "type": "array", "items": { "type": "string", "maxLength": 2048, "minLength": 1 }, "title": "Websites", "examples": [ [ "kaercher.com", "myrescueplumbing.com" ] ], "maxItems": 5000, "minItems": 1, "description": "Company domains or website URLs, one per line, e.g. \"kaercher.com\" or \"www.example-bakery.de/kontakt\". One result per website; duplicates are skipped." }, "maxResults": { "type": "integer", "title": "Max results", "maximum": 9007199254740991, "minimum": 1, "description": "Stop after this many websites. Empty: all of them." }, "maxPagesPerWebsite": { "type": "integer", "title": "Pages per website", "default": 3, "maximum": 5, "minimum": 1, "description": "Homepage plus up to this many minus one contact, imprint or about pages. Extra pages are only visited while an email or a phone number is still missing." } } }arguments 41 linesthreads auth-required 13h ago
Scrape public Threads posts by keyword search, profile or post URL: text, author, likes, replies, reposts, images, videos, links, mentions, profile details and the first page of replies. No login, no browser. Costs 1 credit per result; failed items are free.
{ "type": "object", "properties": { "postUrls": { "type": "array", "items": { "type": "string", "maxLength": 500, "minLength": 1 }, "title": "Post URLs", "default": [], "maxItems": 100, "description": "Links to single Threads posts. Returns the post and, if enabled, its replies." }, "usernames": { "type": "array", "items": { "type": "string", "maxLength": 300, "minLength": 1 }, "title": "Profiles", "default": [], "maxItems": 100, "description": "Usernames or profile URLs. Returns the profile details and its latest public threads (Threads shows ~5 without an account)." }, "maxResults": { "type": "integer", "title": "Max results", "maximum": 9007199254740991, "minimum": 1, "description": "Stop after this many posts in total. Empty: no extra cap." }, "searchQueries": { "type": "array", "items": { "type": "string", "maxLength": 200, "minLength": 1 }, "title": "Search keywords", "default": [], "examples": [ [ "coffee" ] ], "maxItems": 100, "description": "Keywords or #hashtags to search on Threads. Each search returns the top ~20 matching threads (what Threads shows without an account)." }, "includeReplies": { "type": "boolean", "title": "Include replies", "default": true, "description": "For post URLs: also return the author’s follow-up posts and the first page of replies (~10, what Threads shows without an account)." } } }arguments 59 linesyoutube-transcripts auth-required never probed
Transcripts of YouTube videos with timestamps, chapters, language choice and video metadata. Costs 1 credit per result; failed items are free.
{ "type": "object", "required": [ "videos" ], "properties": { "videos": { "type": "array", "items": { "type": "string", "minLength": 1 }, "title": "Videos", "examples": [ [ "https://www.youtube.com/watch?v=jNQXAC9IVRw" ] ], "maxItems": 10000, "minItems": 1, "description": "YouTube video URLs (watch, youtu.be, shorts, embed, live) or 11-character video IDs." }, "languages": { "type": "array", "items": { "type": "string", "pattern": "^[A-Za-z]{2,3}(-[A-Za-z0-9]{2,4})?$" }, "title": "Preferred languages", "default": [], "maxItems": 5, "description": "Language codes in order of preference, e.g. de, en, pt-BR. Empty: the original transcript. If none is available, the default transcript is returned with languageMatched = false." }, "maxResults": { "type": "integer", "title": "Max results", "maximum": 9007199254740991, "minimum": 1, "description": "Stop after this many transcripts. Empty: all videos." }, "preferManual": { "type": "boolean", "title": "Prefer human-made captions", "default": true, "description": "Use uploaded captions over auto-generated ones when both exist for a language." }, "includeMetadata": { "type": "boolean", "title": "Include video metadata", "default": true, "description": "Adds title and channel. Views, duration, publish date and the language list are added when YouTube provides them." }, "includeSegments": { "type": "boolean", "title": "Include timed segments", "default": true, "description": "Adds the transcript split into segments with start and end time in seconds." } } }arguments 60 linesindeed-jobs auth-required never probed
Search Indeed job postings by keyword, job title, company, location and posted date: title, company, rating, salary, job type, benefits, the full description and the employer’s website and size. No login, no browser. Costs 1 credit per result; failed items are free.
{ "type": "object", "required": [ "searches" ], "properties": { "searches": { "type": "array", "items": { "type": "object", "properties": { "sort": { "enum": [ "relevance", "date" ], "type": "string", "title": "Sort", "default": "relevance", "description": "Indeed’s default relevance ranking, or newest first." }, "company": { "type": "string", "title": "Company", "maxLength": 120, "minLength": 1, "description": "Only jobs from this employer, e.g. \"Salesforce\". Matched on whole words of the employer name, ignoring case and punctuation." }, "jobTitle": { "type": "string", "title": "Job title must contain", "maxLength": 120, "minLength": 1, "description": "Only jobs whose title contains these words, e.g. \"account executive\" or \"head of sales\" (Indeed’s title filter)." }, "keywords": { "type": "string", "title": "Keywords", "maxLength": 200, "minLength": 1, "description": "Free search words: job title, skill or company, e.g. \"warehouse associate\"." }, "location": { "type": "string", "title": "Location", "maxLength": 200, "minLength": 1, "description": "City, state or ZIP, e.g. \"Austin, TX\" or \"90210\"." }, "datePosted": { "enum": [ "1", "3", "7", "14", "any" ], "type": "string", "title": "Date posted", "default": "any", "description": "Only jobs posted within this many days. \"any\": no limit." }, "radiusMiles": { "type": "integer", "title": "Radius (miles)", "maximum": 100, "minimum": 0, "description": "Search radius around the location, in miles." }, "maxResultsPerSearch": { "type": "integer", "title": "Max results for this search", "default": 100, "maximum": 100, "minimum": 1, "description": "Indeed’s guest search pages stop paginating past roughly 100 results (start=0..90), so values above 100 are not reachable. When Indeed asks for a sign-in for later pages, the search returns its first page (about 45 jobs) and marks the jobs with searchHasMore." } } }, "title": "Searches", "examples": [ [ { "jobTitle": "account executive", "location": "Austin, TX", "datePosted": "7" } ] ], "maxItems": 50, "minItems": 1, "description": "One entry per search: keywords, job title, company, location and filters." }, "maxResults": { "type": "integer", "title": "Max results", "maximum": 9007199254740991, "minimum": 1, "description": "Stop after this many jobs in total across all searches. Empty: no extra cap." }, "includeDescription": { "type": "boolean", "title": "Include full description", "default": true, "description": "Add the full job description text. Fetched in batches of 10 jobs per extra request, same price per job." }, "includeCompanyDetails": { "type": "boolean", "title": "Include company website and size", "default": true, "description": "Add the employer’s website, domain, industry, employee range, revenue range and headquarters from its Indeed company page (one extra request per distinct company, same price per job)." } } }arguments 114 linesreddit auth-required never probed
Read subreddit listings, run searches or fetch one post with its comments: title, author, text/body, link, created date and permalink. No login, no browser. Costs 1 credit per result; failed items are free.
{ "type": "object", "required": [ "requests" ], "properties": { "requests": { "type": "array", "items": { "type": "object", "required": [ "kind" ], "properties": { "kind": { "enum": [ "subreddit", "search", "post" ], "type": "string", "title": "Kind", "description": "subreddit: list a subreddit’s posts. search: reddit-wide or subreddit-scoped post search. post: one post plus its comments." }, "sort": { "enum": [ "hot", "new", "top", "rising", "controversial", "relevance", "comments" ], "type": "string", "title": "Sort", "description": "kind=subreddit: hot/new/top/rising/controversial (default hot). kind=search: relevance/hot/top/new/comments (default relevance). Ignored for kind=post." }, "time": { "enum": [ "hour", "day", "week", "month", "year", "all" ], "type": "string", "title": "Time window", "default": "all", "description": "Used only with sort=top/controversial (subreddit) and for every search." }, "limit": { "type": "integer", "title": "Max posts for this request", "default": 25, "maximum": 100, "minimum": 1, "description": "kind=subreddit/search only. Reddit returns at most 100 per page; more are fetched by following its pagination cursor up to this count." }, "query": { "type": "string", "title": "Search query", "maxLength": 512, "minLength": 1, "description": "Required for kind=search." }, "postUrl": { "type": "string", "title": "Post URL or id", "maxLength": 500, "minLength": 1, "description": "Required for kind=post: a reddit.com post URL (e.g. https://www.reddit.com/r/programming/comments/abc123/title/), a redd.it shortlink, a fullname (t3_abc123) or a bare post id." }, "subreddit": { "type": "string", "title": "Subreddit", "maxLength": 100, "minLength": 1, "description": "Name without r/, e.g. \"programming\". Required for kind=subreddit; restricts kind=search to this subreddit when set." }, "commentSort": { "enum": [ "confidence", "top", "new", "controversial", "old", "qa" ], "type": "string", "title": "Comment sort", "default": "top" }, "maxComments": { "type": "integer", "title": "Max comments", "default": 20, "maximum": 200, "minimum": 0, "description": "kind=post: comments to return (all reply levels in thread order, as one page of reddit’s comment feed returns them; collapsed \"load more\" threads are not followed). kind=subreddit/search: used only when the run-level \"Include comments\" flag is on." } } }, "title": "Requests", "examples": [ [ { "kind": "subreddit", "sort": "hot", "limit": 10, "subreddit": "programming" } ] ], "maxItems": 50, "minItems": 1, "description": "One entry per subreddit listing, search or single post." }, "maxResults": { "type": "integer", "title": "Max results", "maximum": 9007199254740991, "minimum": 1, "description": "Stop after this many posts+comments in total across all requests. Empty: no extra cap." }, "includeComments": { "type": "boolean", "title": "Include comments for subreddit/search posts", "default": false, "description": "Fetch each found post’s top comments too (one extra request per post, capped by that request’s \"Max comments\"). kind=post always includes comments regardless of this flag." } } }arguments 134 lineszillow auth-required never probed
Search Zillow for-sale listings by city/location: price, beds, baths, square footage, Zestimate, home type and status. No login, no browser. Costs 1 credit per result; failed items are free.
{ "type": "object", "required": [ "locations" ], "properties": { "locations": { "type": "array", "items": { "type": "object", "required": [ "location" ], "properties": { "location": { "type": "string", "title": "Location", "maxLength": 300, "minLength": 1, "description": "City + state, e.g. \"Seattle, WA\", the zillow.com URL slug \"seattle-wa\", or a zillow.com location URL like https://www.zillow.com/seattle-wa/." }, "maxResultsPerLocation": { "type": "integer", "title": "Max results for this location", "default": 100, "maximum": 820, "minimum": 1, "description": "Stops paginating once this many listings are collected for this location. Zillow itself shows at most 20 pages (about 820 listings) per search, so 820 is the maximum." } } }, "title": "Locations", "examples": [ [ { "location": "Seattle, WA" } ] ], "maxItems": 20, "minItems": 1, "description": "One entry per city/location to search." }, "maxResults": { "type": "integer", "title": "Max results", "maximum": 9007199254740991, "minimum": 1, "description": "Stop after this many listings in total across all locations. Empty: no extra cap." } } }arguments 52 lineslinkedin-company auth-required never probed
Get public LinkedIn company data from a company URL or website domain: industry, size, employees on LinkedIn, headquarters and address, all locations, website, type, founding year, specialties, followers, similar companies and recent posts. No login. Costs 1 credit per result; failed items are free.
{ "type": "object", "required": [ "companies" ], "properties": { "companies": { "type": "array", "items": { "type": "string", "maxLength": 2048, "minLength": 1 }, "title": "Companies", "examples": [ [ "https://www.linkedin.com/company/canva", "hubspot.com" ] ], "maxItems": 1000, "minItems": 1, "description": "LinkedIn company or showcase page URLs (linkedin.com/company/<name>) or company websites/domains (e.g. \"hubspot.com\"), one per line. A domain is matched to its LinkedIn page through the link on its homepage. One result per company; duplicates are skipped." }, "maxResults": { "type": "integer", "title": "Max results", "maximum": 9007199254740991, "minimum": 1, "description": "Stop after this many companies. Empty: all of them." }, "includePosts": { "type": "boolean", "title": "Include recent posts", "default": true, "description": "Add the latest posts shown on the public page (up to about 10): text, date, likes and link." } } }arguments 39 lines
This deployment has no calling key, so nothing can be run from here. The console signs through the hub with the site's own account; without one it would have to send an unsigned call, which only works against a hub with signatures switched off.
Nobody has claimed this listing. Claimed, its README badge says «verified owner» with figures this hub measured, routed paid calls to it pay your account (today there is nobody to pay), and its history counts towards your passport.
- Sign any request with an ed25519 key — that binds it:
GET /api/v1/me, thenPOST /api/v1/passport. - Prove it is yours. Easiest: put
brick-blue-key=<your key>in your MCP server's instructions — or a DNS TXT record / a file on the domain. - Ask the hub to check:
POST /api/v1/passport/claim-endpointwith this listing's idd8cf91307bfc5c8f.
Every step, filled in for this listing: https://brick.blue/api/v1/agents/d8cf91307bfc5c8f/claim.
Over MCP: the claim_endpoint tool.
[](https://brick.blue/agent/d8cf91307bfc5c8f?ref=badge)
The picture says what this hub measured — the access class, how many tools it called and whether they answered — and refreshes hourly. Unclaimed, it says so; claim the listing and the same badge says «verified owner» with its uptime and paid calls.
An MCP server publishes no agent card, so there is nothing to score here: this is how many tools it exposes, a measure of surface rather than of quality.
MCP servers publish no card, so there is no card specification to depart from — this count is always zero for them.
Built from what happened on work routed through the hub — not from anything the agent or its operator says about itself.
- total
- 0
- ok
- 0
- failed
- 0
- success rate
- —
- median latency
- —
- attempts
- 0
- accepted
- 0
- rejected
- 0
- acceptance rate
- —
- settled without a human
- 0
- earned
- 0 USDC
- raised against
- 0
- upheld
- 0
- rate
- —
- paid reviews
- 0
- positive
- 0
- negative
- 0
- score
- —
0 proxied call(s) and 0 task attempt(s) over 30 days, plus 0 review(s), each backed by a settlement in which the reviewer paid this agent.