App Logo

Official scripts

Explore our curated collection of scripts

linkedin.com

Search LinkedIn people

Search LinkedIn people by keywords with optional title, name, company, school, currentCompanyIds/pastCompanyIds (numeric ids from get_company_info), connectionDegrees, connectionOf, geoUrn, and a page number (10 people per page). Returns page, total, hasNextPage and people (name, url, publicId, memberUrn, degree, headline, location, snippet, followers, the mutual-connections line, and the members in common as data: up to two named mutuals with their profile, and mutualCount). Members in common: each 2nd-degree card names up to two of the people who connect you, and mutualCount says how many there are. To list them all, pass the card's memberUrn as connectionOf. Works alone or with any other filter. Empty results: people is [] and total is 0 only when LinkedIn shows its empty state. When LinkedIn shows another page instead of results (the monthly search limit of a free account, a security check), the run fails and names what the page showed. Location: this script takes LinkedIn geo ids only. To search a place, call suggest_locations with the place name first, then pass the geoUrn of the suggestion you want.

x.com

X (Twitter) search unofficial API: search tweets, no API key

Search X (Twitter) for tweets with every X search operator, from the Top tab (a ranked sample, the default) or the Latest tab (chronological), picked by the tab arg. Returns per tweet a canonical record: id, url, author {id, handle, name}, text, created_at, lang, likes, retweets, replies, quotes, bookmarks, views, is_retweet, is_quote, plus followers (the author's follower count, a search-only enrichment), and the top-level query and count. Top is a ranked sample, not exhaustive.

discord.com

Discord login

Opens the Discord web app in the browser and reports whether the account is signed in, together with the username and display name it is signed in as. Run this first: the other Discord scripts need the web app open on a signed-in session.

reddit.com

Get Reddit thread

Fetch a Reddit thread by its id or URL: the post (title, text, author, score, upvote ratio, comment count, type, link) and its comments in thread order, each with author, text, score, date, permalink and nesting depth. Needs a browser signed in to Reddit. By default it returns the first page of comments Reddit shows when the thread opens; set all_comments to expand every "more replies" and get the whole tree. num_comments counts deleted and removed comments too, so the list can be shorter than that number even when it is complete. sort picks Reddit's own comment order (best, top, new, controversial, old, Q&A).

linkedin.com

Get LinkedIn profile

Get one LinkedIn profile by its public id or profile URL: name, headline, location and its geo id, current company, About text, photo, connection degree, follower and connection counts, the stable member id, and the full lists of experience, education, languages, certifications and honors, in the order the profile shows them, with LinkedIn's ids for companies and schools and dates as month and year. A role's location is the text the member saved, which can be translated or misspelled. Skills are in linkedin.com/get_profile_skills and contact details in linkedin.com/get_profile_contact_info. A field is null and a list is empty when the profile does not show it. Fails with a clear message when the browser is not signed in to LinkedIn, when the profile does not exist, or when LinkedIn limits the account.

google.com

Search Google

Run a Google search and return the page's organic result cards (title, url, site, byline, meta, snippet), with redirect wrappers already cleaned from urls. Runs logged out by default; if the browser happens to carry Google cookies, results are personalized to that account/IP. Google serves result links as redirects rather than destination addresses, so each one is followed far enough to read the address it points at before the results are returned. That adds a fraction of a second per result, and each destination site sees one request. Supports full Google query syntax: site:, quoted "exact phrases", OR, -exclude, intitle:. Quoted phrases return a smaller, more precise set; dropping quotes broadens recall with some near-miss results mixed in. Use site: to scope a domain/path, e.g. site:www.linkedin.com/in. Each call returns one results page (up to ~10 organic cards, no per-call count option). Use `page` (0-based) to move through further pages, mirroring the search results pager. Pages are reproducible on the same account/IP and are largely non-overlapping (occasional overlap of one result at page boundaries), so different pages can be fetched concurrently and unioned — always dedupe by canonical url. Narrow queries return the same results in the same order across replays on one account/IP; very broad, high-volume queries may reorder between runs. For broader coverage, fetch multiple pages concurrently and/or split the query itself — vary the site: path, phrases/OR-terms, or use `freshness` for disjoint date-bounded windows. Always dedupe by url.

search.brave.com

Brave search

Search the web on Brave, one page of results at a time. Returns each result's title, url, snippet and date, plus the query it actually ran. An empty result list means Brave itself found nothing, and the reason is returned in emptyBecause; if the page cannot be read, the script fails with an error instead of returning an empty list. Search operators (site:, quoted phrases, OR) are supported. site:domain also covers subdomains, and site:domain/path narrows to a path prefix. When too few pages match, Brave drops the operators and runs a looser query; operatorsApplied is then false and the results are not filtered. Paging: each query has a limited pool of results, and past its end Brave repeats earlier pages. Page while hasMore is true, dedupe by url, and use more specific queries rather than more pages to widen coverage. If Brave keeps rate-limiting, the script fails with an error; wait 30–60 seconds before retrying.

discord.com

List Discord servers

Lists the Discord servers the logged-in account has access to (name + guildId), read from the server sidebar. Requires being logged in.

amazon.com

Get Amazon product reviews

Fetch Amazon customer reviews for a product by ASIN. With a signed-in Amazon session it returns one page of 10 reviews, with sort, star, media, verified-purchase and keyword filters, up to Amazon's 10-page limit. Without a session it returns the top reviews shown on the product page (page 1 only, no filters, reviews from other Amazon countries included), says so in the result, and fails with a clear error instead of ignoring a filter or page it cannot serve, or when Amazon hides the reviews from the visitor. Returns the product's rating summary and each review's rating, title, text, date, reviewer, country, variation, helpful votes, verified badge, Vine badge, images and videos. With sortBy=recent a page can change between calls as new reviews arrive; sortBy=helpful is more stable.

google.com

Search Google Maps places

Search Google Maps for places, optionally near a location, and get the list Maps shows, in its order: name, address, phone, website, main category and all categories, star rating, number of reviews, price range, coordinates and the Google place id. Use the place id with get_place for the opening hours and with get_place_reviews for the reviews. Google Maps lists at most 120 places for one search; complete is true when that list ended, false when cap stopped it first. A precise query that Maps opens as one place returns that one place. Category names follow hl, or the browser's language when hl is empty.

docs.google.com

Sheets: read tab values

Read one tab of a Google Spreadsheet as a 2D array of display values. Returns values (row-major, '' for empty and non-top-left merged cells), nRows, nCols. Values are display strings after formatting (a date may read as "1.5").

chatgpt.com

ChatGPT billing: list your ChatGPT subscription invoices

ChatGPT subscription invoices, not the OpenAI API platform (that is platform.openai.com/list_invoices). List the billing history of every ChatGPT account the signed-in user belongs to — the personal account and each Business, Team or Enterprise workspace — whichever one the browser currently has open. Each invoice comes with its date, amount, currency, payment status, the plan it paid for, a link to the receipt, and the account it belongs to; a separate accounts list shows each account, how many invoices it has, and whether its billing could be read. The full history is returned, not only the most recent entries. Amounts come back in the currency's smallest unit, so 1917 means 19.17 EUR. When the browser is not signed in to ChatGPT, the result says so with signed_in set to false and empty lists; check it before reading an empty list as an account that was never billed. Feed hosted_invoice_url to invoice.stripe.com/download_invoice_pdf to get the PDF.

linkedin.com

Search LinkedIn posts

Search LinkedIn posts by keyword, newest-first or by relevance. Returns each post's permalink (a lnkd.in short link) and activity urn, author name, profile URL and headline, full text, relative age, and reaction/comment/repost counts. Accepts limit (default 10) and sortBy ("relevance" | "date_posted"). Empty results: posts is [] and total is 0 only when LinkedIn shows its empty state. LinkedIn matches a single unknown word loosely and can still return posts; put a phrase in quotes for an exact match. When LinkedIn shows another page instead of results (the monthly search limit of a free account, a security check), the run fails and names what the page showed.

discord.com

Search Discord server messages

Search one Discord server's message history with Discord's own search, as the signed-in account, newest first. Search by words (content), and narrow by authors, channels, mentioned users and content type, each given as ids: get user ids from discord.com/get_member_list and channel ids from discord.com/list_channels. Returns one page of up to 25 matching messages with their author, text, time and link, Discord's total count of matches, and next_offset to read the next page (null on the last one). Fails with a clear error when the browser is not signed in to Discord, when the account is not a member of the server or can see no text channel in it, or when Discord is still indexing the server. Direct messages are not searched.

docs.google.com

Sheets: list tabs

List the tabs of a Google Spreadsheet. Returns sheets (name, gid) and the spreadsheet title. gid feeds sheets_read_tab / sheets_write_cells / the edit?gid= URL.

amazon.com

Search Amazon products

Search Amazon by free-text query and return one page of results. Returns query, page, zip, url, has_next_page and items (asin, title, url, price, list_price, rating, review_count, image_url, sponsored, formats). formats lists each edition a result links to (for example Hardcover, Kindle and Audiobook for a book), with its own ASIN, URL and price when shown. has_next_page is false on the last page, on a page past the last one (Amazon stops near page 20) and when nothing matches the query; then Amazon can still show a few unrelated sponsored products. Organic results are stable per page but sponsored slots rotate between fetches.

linkedin.com

Get LinkedIn post reactors

Get who reacted to a LinkedIn post from its URL: returns the post's total reaction count and the list of reactors (name, profile URL, headline, connection degree, and person vs company), in the order LinkedIn shows them. Use `limit` to cap how many reactors come back. The specific reaction type each person gave (like/celebrate/…) isn't available, and a `reactors` list shorter than `total` means your `limit` was reached.

discord.com

List Discord channels

Lists a Discord server's channels and categories from its sidebar (name, channelId, category, channel URL). Takes a guildId. Requires being logged in.

meteoblue.com

Get 14-day weather forecast

14-day weather forecast for any city worldwide (meteoblue): per-day condition, min/max temp, predictability. Optional date filter (YYYY-MM-DD).

invoice.stripe.com

Download Stripe invoice/receipt PDF

Download a Stripe-hosted invoice or payment receipt PDF from its hosted_invoice_url. Returns the file's real name and the path where the browser saved it (or a url to it on a managed browser), so you can read or move the PDF directly. Vendor-agnostic and login-free: the hosted_invoice_url is a public tokenized link, so it works for any Stripe-billed service (Claude, ChatGPT, X, Notion, Slack, Lovable, ...). An expired or dead URL fails cleanly.

x.com

Get a tweet and its replies on X (Twitter)

Fetch a tweet by URL — the focal post plus the surrounding conversation. Returns `tweet` (the focal post; null if deleted/tombstoned) and `replies[]`, which holds every other tweet on the conversation page: both the focal's ancestors (the thread above it, present when the focal is itself a reply; each has `in_reply_to` null or pointing above the focal) and the replies below it (`in_reply_to` points at the focal or a sibling reply). Use `in_reply_to` to tell ancestors from replies and rebuild the thread — the array is not filtered to descendants of the focal. Each entry is a canonical tweet record: id, url, author {id, handle, name}, text, created_at, lang, likes, retweets, replies, quotes, bookmarks, views, is_retweet, is_quote, in_reply_to {id, author_handle}. Scrolls the main thread until `count` is met (then complete=false — more may exist) or it drains (complete=true). Replies behind a "Show more replies"/hidden/probable-spam cursor are not expanded, so even complete=true is a floor, not a guarantee every nested reply was seen.

reddit.com

Search Reddit

Search posts across all of Reddit (no subreddit restriction), with optional sort and time window. Returns count and threads (each with id, url, title, author, subreddit, score, num_comments, created, nsfw, preview_text). `limit` is a maximum: fewer matching posts than requested returns however many exist. Useful to discover which subreddits discuss a topic. The sort changes how relevant the results are: `top` orders Reddit's matches by score, and because Reddit matches loosely, a heavily upvoted post only tangentially related to the query can outrank the genuine matches. That is Reddit's own ranking, returned as-is. Use the default `relevance` sort when on-topic results matter, and treat a non-zero count under `top` as "Reddit returned something", not as proof the posts are about the topic. Reddit refuses connections from datacenter addresses, so this works as-is on your own browser; on a hosted cloud browser the session has to be given a country so it exits through a residential address, otherwise Reddit blocks it and the script says so.

docs.google.com

Sheets: write cells

Write a 2D block of values into one tab of a Google Spreadsheet, top-left at startCell, like the Sheets API: null leaves a cell as it is, "" clears it, anything else replaces it as if typed (dropdown rules and formatting stay; clearing a dropdown cell removes its dropdown). Returns range, rows, cols, saved once every edit is saved. A value the sheet refuses (data validation, outside the grid) stops the run with the sheet's own message. Values are parsed per the spreadsheet locale ("1.5" in a FR sheet becomes 1 May; prefix ' to force text); leading = enters a formula; needs edit rights.

news.ycombinator.com

Top Hacker News stories

Read the top N stories from the Hacker News front page: rank, title, url, points, comments_count and a link to the discussion. The front page lists about 30 stories, so an n above that caps out rather than paginating. A story nobody has commented on yet reports 0 comments; YC job posts carry neither a score nor a discussion, so their points and comments_count are null. If Hacker News is throttling requests from your address, the script says so instead of returning a partial list.

linkedin.com

Get LinkedIn company info

Get a LinkedIn company's full profile from its URL or bare slug. employeeCount is LinkedIn members associated with the page, not declared size, and can wildly exceed employeeCountRange; use employeeCountRange for self-declared size. websiteUrl is verbatim and can be a linkedin.com self-link. Returns companyId, universalName, name, tagline, description, websiteUrl, industries, specialities, employeeCount, employeeCountRange, followerCount, foundedYear, phone, headquarters, locations, and logoUrl.