Shopify Store Finder — Discover & Verify Stores by Niche avatar

Shopify Store Finder — Discover & Verify Stores by Niche

Pricing

from $3.00 / 1,000 verified shopify stores

Go to Apify Store
Shopify Store Finder — Discover & Verify Stores by Niche

Shopify Store Finder — Discover & Verify Stores by Niche

Which Shopify stores sell candles, skincare or dog gear? Search the open web by niche and country, verify every candidate against the store's own meta.json and products.json, and get product count, currency, country, price range and sample products per store. No key.

Pricing

from $3.00 / 1,000 verified shopify stores

Rating

0.0

(0)

Developer

Insight Solutions

Insight Solutions

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

2 days ago

Last modified

Security

Limited permissions

Share

Which Shopify stores sell candles, organic skincare or dog accessories — in the US, in Germany, anywhere? Give this Actor a list of niches and get back one row per verified Shopify store: its domain and *.myshopify.com handle, name, city and country, currency, how many products and collections it publishes, the countries it ships to, a price range and a sample of its newest products. Optionally its theme, the apps it loads and its social profiles. JSON, CSV or Excel.

Every candidate is verified against the store's own Shopify storefront — meta.json, then products.json, then the page's own Shopify markers — not looked up in a database. A domain that turns out not to be Shopify costs nothing. $5.00 per 1,000 verified stores on the FREE tier, plus $0.001 per run. HTTP only: no browser, no login, no API key.

Company-level data only. A store row is what the store publishes about itself as a business. No e-mail addresses, no phone numbers, no people.

Found a store? Pull its whole catalogue with Shopify Products API, or watch it for price drops, restocks and new products with Shopify Store Monitor — both take the domain this Actor returns.

Try it in 30 seconds

This is the Store prefill; paste it and run:

{ "queries": ["candles", "organic skincare", "dog accessories"], "maxStoresPerQuery": 20, "sampleSize": 5 }

Three niches, up to 20 verified stores each, five sample products per store. The search runs through DuckDuckGo on Apify's datacenter proxy; a live run is expected to return at least 25 verified stores in under two minutes. In our offline test suite — the real DuckDuckGo results for candles site:myshopify.com from a live run on 2026-11-03, plus synthetic result pages for the other two niches — it returns 45 stores for $0.226.

If DuckDuckGo challenges the run's datacenter address (it sometimes answers with an image CAPTCHA, which this Actor never tries to solve), the run still finishes SUCCEEDED: it verifies any domains you gave, asks Bing the one plain-text search Bing can answer, and writes a free search-blocked row saying so.

US stores only, with theme, apps and socials:

{ "queries": ["yoga apparel", "home fragrance", "specialty coffee"], "country": "US", "countries": ["US"], "includeTech": true }

Verify a list you already have (no search at all):

{ "domains": ["allbirds.com", "https://www.brooklinen.com/", "farnacandles.myshopify.com", "nike.com"] }

From code — client.actor("insight.solutions/shopify-store-finder").call(run_input={"queries": ["candles"]}) with apify-client, or POST https://api.apify.com/v2/acts/insight.solutions~shopify-store-finder/run-sync-get-dataset-items.

What comes back

A store row (Allbirds, verified offline against its captured meta.json and products.json; sampleSize: 2, null columns cut):

{
"ok": true,
"rowType": "store",
"domain": "allbirds.com",
"url": "https://www.allbirds.com",
"myshopifyDomain": "weareallbirds.myshopify.com",
"shopId": 11044168,
"name": "Allbirds",
"description": "The world’s most comfortable shoes, made with natural materials like merino wool, eucalyptus tree fiber, and sugar cane, Allbirds has created the comfiest shoes on the planet.",
"status": "open",
"country": "US",
"province": "California",
"city": "Beverly Hills",
"currency": "USD",
"moneyFormat": "${{amount}}",
"shipsToCountries": ["US"],
"shipsToCountryCount": 1,
"productCount": 338,
"collectionCount": 1346,
"shopPayEnabled": true,
"offersShopPayInstallments": true,
"sampleProducts": [
{
"title": "Men's Cruiser - Buoy Yellow (Natural White Sole)",
"handle": "mens-cruiser-buoy-yellow-natural-white-sole",
"url": "https://www.allbirds.com/products/mens-cruiser-buoy-yellow-natural-white-sole",
"vendor": "Allbirds",
"productType": "Shoes",
"priceMin": 120,
"priceMax": 120,
"available": true,
"image": "https://cdn.shopify.com/s/files/1/1104/4168/files/A12825M090-BUOY_YELLOW_SIDE_TRANSPARENT.png?v=1793735209",
"publishedAt": "2026-11-03T11:48:32-08:00",
"createdAt": "2026-02-04T17:03:24-08:00"
},
{ "title": "Women's Allbirds Flip Flop - Dusty Pink", "priceMin": 50, "priceMax": 50, "…": "…" }
],
"priceRange": { "min": 50, "max": 120, "currency": "USD" },
"topVendors": ["Allbirds"],
"topProductTypes": ["Shoes"],
"newestProductAt": "2026-11-03T11:48:32-08:00",
"verifiedBy": "meta.json",
"foundVia": { "query": null, "engine": null, "position": 1, "kind": "input", "rung": null, "sourceUrl": "allbirds.com" }
}

A store found by search carries where it was found: "foundVia": { "query": "candles site:myshopify.com", "engine": "duckduckgo", "position": 3, "kind": "serp", "rung": "site", "sourceUrl": "https://farnacandles.myshopify.com/collections/all" }.

With includeTech: true the same row adds (from Allbirds' captured home page):

{
"theme": { "name": "[DNAM Theme July 2026]", "id": 130450260048, "themeStoreId": null, "schemaName": "allbirds-theme" },
"apps": ["Google Tag Manager", "Shop Pay", "Attentive", "Triple Whale", "Elevar", "Redo"],
"socials": { "instagram": "https://www.instagram.com/allbirds", "facebook": "https://www.facebook.com/weareallbirds", "tiktok": "https://www.tiktok.com/@weareallbirds", "pinterest": "https://www.pinterest.com/weareallbirds", "youtube": "https://www.youtube.com/channel/UCnGErLCau5qNJ0Xwe6uEyTw", "x": "https://x.com/allbirds" },
"hasBlog": true,
"locale": "en-US"
}

A store whose meta.json and products.json are switched off — Gymshark's headless storefront answers 404 and 403 — is still verified, from its own page: "verifiedBy": "html-markers", "evidence": "Shopify markers: cdn.shopify.com", "myshopifyDomain": "gymsharkusa.myshopify.com", and nulls where meta.json would have answered.

A candidate that is not Shopify is a free diagnostic row:

{ "rowType": "diagnostic", "errorType": "not-shopify", "domain": "nike.com", "error": "nike.com answered, and not as a Shopify store. Not charged.", "evidence": "meta.json: HTTP 404; products.json: HTTP 404; home page: HTTP 200" }

The last row of every run is a free summary: queries run, SERP pages read, candidates, verified, not-shopify, unreachable, duplicates, stores filtered out, and counts by country, currency, verification method and query.

Use cases

  • Agencies and Shopify app vendors prospecting by niche — every candle, coffee or pet store the open web knows about, with its size (productCount), its market (country, currency, shipsToCountries) and, with includeTech, the apps it already runs and the theme it is on.
  • Suppliers and wholesalers looking for retailers — stores that carry your category, sized and located, with a sample of what they sell and at what prices.
  • Market and category analysts — how many independent stores sell a niche, in which countries and currencies, at which price points, from one run per niche.
  • Competitive research — the stores that rank for your category, verified, with their catalogue size and newest product date, ready to hand to Shopify Products API for the full catalogue.
  • Cleaning a list — paste 5,000 domains into domains: the Shopify ones come back as rows with their facts, the rest as free not-shopify rows.

How it compares

  • Verified against the storefront, not a database. Every row is a store that answered as a Shopify store on the day of the run, and its numbers are the store's own — not a snapshot from a crawl months ago.
  • Pay for stores, not for guesses. Candidates that are not Shopify, sites that cannot be reached and stores below your minProducts are free rows. Only a verified store is a paid row.
  • Real numbers on every row. Product and collection counts, currency, country, ship-to countries, a price range and sample products — enough to qualify a store without opening it.
  • One run from niche to list. Search, listicle expansion, verification, filters and dedupe in one Actor; no export from one tool into another.
  • No login, no key, no browser. Public search pages and public storefront endpoints, read over plain HTTP.

How stores are found and verified

1. Search, per niche, cheapest and best first. Each niche walks a fixed ladder of searches, page by page, and stops as soon as it has maxStoresPerQuery verified stores:

RungQueryEngine
sitecandles site:myshopify.comDuckDuckGo
country (only with country)candles shop United States site:myshopify.comDuckDuckGo
inurlcandles inurl:myshopify.comDuckDuckGo
powered-by"candles" "powered by shopify"DuckDuckGo; Bing only when DuckDuckGo refuses the run

DuckDuckGo honours site: — a live run on 2026-11-03 returned ten real *.myshopify.com candle stores from a datacenter address — and Bing does not (its answer to the same query was Amazon, Walmart, Target and big brands), so Bing is never asked an operator query. DuckDuckGo's no-JavaScript endpoints are read through the run's proxy (Apify datacenter by default), one proxy session per search, at least 2 seconds between two requests on one exit and at most six per exit. A second page is asked for only after the first page's candidates are verified, and only with the values in the page's own Next form; a search stops at maxSerpPagesPerQuery pages, at an empty page, or at a page that adds nothing new. On the plain-text rung, a page whose results do not mention the niche is a decoy and nothing on it is verified.

When DuckDuckGo refuses. DuckDuckGo answers some datacenter addresses with an image CAPTCHA (HTTP 202). The challenge is recognised, the search is retried once from a fresh exit and once on DuckDuckGo's lite endpoint, and then DuckDuckGo is not asked again for the rest of the run — never a loop, never a CAPTCHA solver. The operator rungs cannot run without it; the plain-text rung goes to Bing (direct, one page); domains are verified as usual; and one free search-blocked row explains what happened.

2. The host filter. DuckDuckGo's ad rows are dropped, and so are marketplaces, social networks, directories, review sites, app stores, search engines and Shopify's own corporate and help sites (shopify.com, apps.shopify.com, help.shopify.com) — *.myshopify.com stores are always kept. One candidate per registrable domain.

3. Listicles. A result that is an article about stores — "12 best organic skincare Shopify stores", "16 places to buy candles in NYC" — is read for its outbound links (with expandListicles, the default): at most 50 outbound links per page and 3 listicles per niche, the page's robots.txt honoured, aggregators dropped. Each linked site is a candidate with foundVia.kind: "listicle".

4. Verification — at most three requests per candidate, one at a time per domain:

  1. GET /meta.json — Shopify's storefront summary (about 1 KB). JSON with myshopify_domain is a verified store (verifiedBy: "meta.json") and gives the shop id, name, description, city, province, country, currency, money format, product and collection counts, ship-to countries and Shop Pay facts. A redirect to /password is a password-protected store: verified, status: "password-protected", no product sample.
  2. GET /products.json?limit=<sampleSize> — the sample (and the proof, verifiedBy: "products.json", when meta.json did not answer).
  3. The home page — only when both failed, or with includeTech — read for Shopify's own markers (cdn.shopify.com, Shopify.theme, shopify-section, the X-ShopId header …; verifiedBy: "html-markers") and, with includeTech, the theme, apps, socials, blog and locale.

Nothing Shopify-shaped answers: a free not-shopify row with what each request returned. A bot wall on meta.json or the home page — an HTTP 429, a Vercel, Cloudflare or CloudFront interstitial — is a free unreachable row, never not-shopify (the wall says nothing about what is behind it), and it is never retried or worked around. A 403 on products.json alone is not a wall: headless storefronts refuse that one path, so the home page is still asked. A myshopify.com handle no store owns ({"errors":"Not Found"}) is not-shopify after one request.

5. Dedupe, filters, caps. A candidate whose registrable domain was already taken is skipped before any request; a verified store whose myshopify_domain was already returned is skipped too (a custom domain and its myshopify host are one store, billed once). Then minProducts, countries and currencies are applied, and maxStores caps the run.

Input reference

FieldTypeDefaultWhat it does
queriesarray— (prefill: candles, organic skincare, dog accessories)Niches or keywords, one per line. Each walks the search ladder above. Up to 200.
domainsarray[]Stores to verify with no search: a domain, any URL on the site, or a *.myshopify.com host. Up to 5,000.
countrystring""Two-letter code. Regionalises the search (DuckDuckGo region, Bing market) and adds the country rung. Not a filter — see countries.
languagestringenBing's interface language; with no country, en uses DuckDuckGo's US-English region and any other language lets DuckDuckGo choose.
maxStoresinteger200The run stops at this many verified stores (1–5,000).
maxStoresPerQueryinteger50 (prefill 20)A niche stops at this many verified stores (1–500). Candidates are verified in batches no larger than what the niche still needs.
maxSerpPagesPerQueryinteger3DuckDuckGo result pages per search (1–10).
expandListiclesbooleantrueRead "best stores" articles for their outbound links.
minProductsinteger1Stores publishing fewer products are a free below-min-products row. 0 keeps all. A store verified by markers alone (no count) is kept.
includeSampleProductsbooleantrueRead products.json for the sample, price range, top vendors and types. Off: one request fewer per store.
sampleSizeinteger5Products sampled per store (1–50).
includeTechbooleanfalseAlso read the home page: theme, apps (a table of 46), socials, blog, locale. One request more per store.
countriesarray[]Keep only stores whose meta.json country is listed. A store that does not say is not a match.
currenciesarray[]Keep only stores whose shop currency is listed.
maxConcurrencyinteger8Stores verified in parallel (1–20). One store is never asked two things at once.
maxRunSecsinteger240Wall-clock budget (30–3,600). Everything written before it is kept and billed; one free timeout row says what was not reached.
proxyConfigurationobject{ "useApifyProxy": true }DuckDuckGo, the stores and listicle pages go through it (Apify datacenter is all they need). Bing goes direct.

A run with nothing usable — no niche and no domain, an unknown country, a malformed countries or currencies code, more than 200 queries or 5,000 domains — finishes FAILED before a single request, with a free invalid-input row saying why. A single domains line that is not a domain is a free invalid-input row and the rest of the run carries on.

Output reference

Every row has the same columns, null where a column does not apply, so the dataset exports as one table. rowType is store, diagnostic or summary.

Store rows (paid, one per verified store): ok, rowType, domain (primary domain, no www.), url, myshopifyDomain, shopId, name, description (≤ 500 characters, e-mail addresses and phone numbers removed), status (open · password-protected), country, province, city, currency, moneyFormat, shipsToCountries[] (* is Shopify's rest-of-world zone), shipsToCountryCount (* not counted), productCount, collectionCount, shopPayEnabled, offersShopPayInstallments, verifiedBy (meta.json · products.json · html-markers), foundVia{query, engine, position, kind, rung, sourceUrl} (kind: serp · listicle · input), evidence (on an html-markers row, the markers it rests on), scrapedAt.

From the sample (includeSampleProducts): sampleProducts[] — title, handle, url, vendor, productType, priceMin, priceMax, available (any variant), image, publishedAt, createdAt — and priceRange{min, max, currency}, topVendors[], topProductTypes[], newestProductAt.

With includeTech: theme{name, id, themeStoreId, schemaName}, apps[], socials{} (the store's own profile URLs: instagram, facebook, tiktok, pinterest, youtube, x), hasBlog, locale.

Diagnostic rows (free): errorType, error, evidence, and domain, url, foundVia where they apply. The types:

errorTypeWhat it means
not-shopifyThe candidate answered, and not as a Shopify store. evidence lists what each request returned.
unreachableRefused (HTTP 429, a bot-protection page) or unreachable. Says nothing about whether it is Shopify; not retried.
below-min-productsA Shopify store below your minProducts.
search-blockedDuckDuckGo challenged the run and was not asked again; what still ran is in the message.
timeoutmaxRunSecs ran out. Everything before it was kept.
invalid-inputA field or a domains line that could not be used.

The summary row (free, last): summary — queriesRun, rungsRun, serpPages, domainsGiven, candidates, verified, notShopify, unreachable, belowMinProducts, duplicates, filteredOut{country, currency}, listiclesExpanded, adsDropped, aggregatorsDropped, searchBlocked, byCountry, byCurrency, byVerifiedBy, byQuery, requests, budgetStopped, maxStoresReached, deadlineHit, statusMessage.

Pricing

EventWhat it isFREEBRONZESILVERGOLD
storeOne verified Shopify store returned$0.005$0.005$0.004$0.003
actor-startOnce per run, only after the first store$0.001$0.001$0.001$0.001

$5.00 per 1,000 verified stores.

RunCost
The prefill as the offline test suite runs it — 45 verified stores$0.226
The prefill live at its expected minimum — 25 stores$0.126
maxStores: 1000 across a few dozen niches$5.00 (+ $0.001)
The same at GOLD$3.00 (+ $0.001)
5,000 domains to clean, 1,200 of them Shopify$6.00 — the other 3,800 rows are free
A run where nothing verifies$0.00, SUCCEEDED

Charging is charge-after-push: a store row is in your dataset before its event is recorded, and it is pushed only when the remaining ACTOR_MAX_TOTAL_CHARGE_USD covers it, so a run never bills past your ceiling — it stops verifying, finishes SUCCEEDED and says so. Never charged: candidates that are not Shopify, unreachable ones, stores below minProducts or outside countries / currencies, duplicates, diagnostics, the summary row, and a run that returns no store (start fee included).

Limits

  • Search engines rank what they rank. The stores you get are the ones DuckDuckGo returns for the niche, a few pages deep; it is not a census of every Shopify store, and a store with no search footprint is not found. More niches, synonyms and country find more.
  • DuckDuckGo may refuse a datacenter address. Then the operator searches cannot run for the rest of that run (Bing ignores site: and inurl:), and the run returns what domains, Bing's plain-text answer and listicles give, with a free search-blocked row. Run again later, or pass known domains.
  • Password-protected stores are verified and returned with status: "password-protected", but have no product sample.
  • meta.json can be switched off by a store, or answered by a headless front end. Such a store is still verified by products.json or by its page's markers, with nulls for the meta.json fields — and with minProducts, a store with no known count is kept.
  • Filters read the store's own word. countries is the country the store gives in meta.json, not where it ships or where its customers are.
  • Apps are what the home page loads, matched against a table of 46. An app that loads only on product pages, only after consent, or is not in the table is not listed.
  • Per run: up to 200 queries or 5,000 domains, at most three requests per candidate store, at most 50 outbound links per listicle and 3 listicles per niche, maxSerpPagesPerQuery result pages per search.
  • Not affiliated with Shopify, DuckDuckGo, Microsoft Bing, or any store named in the output. Names are used descriptively.

Use it from an AI agent, or from code

One JSON object in, one flat array out — the shape agent runtimes want. The Actor runs with limited permissions and pay-per-event pricing, so it works over the Apify MCP server (mcp.apify.com) and with agentic (x402) payments. The Integrations tab pushes results to Slack, a webhook, Zapier, Make, Google Sheets, Snowflake or BigQuery, and Apify Schedules run it unattended — a weekly run per niche, deduplicated on myshopifyDomain, is a list of new stores.

curl -X POST "https://api.apify.com/v2/acts/insight.solutions~shopify-store-finder/run-sync-get-dataset-items?token=$APIFY_TOKEN" \
-H "Content-Type: application/json" \
-d '{"queries":["candles","soy wax melts"],"maxStoresPerQuery":20,"countries":["US"]}'
# pip install apify-client
from apify_client import ApifyClient
client = ApifyClient("<APIFY_TOKEN>")
run = client.actor("insight.solutions/shopify-store-finder").call(run_input={
"queries": ["organic skincare", "clean beauty"],
"country": "GB",
"countries": ["GB"],
"minProducts": 20,
})
for row in client.dataset(run["defaultDatasetId"]).iterate_items():
if row["rowType"] == "store":
print(row["domain"], row["name"], row["productCount"], row["currency"], row["priceRange"], sep=" | ")

Building an app with Lovable? Apify's Lovable connector runs any Actor from inside a Lovable project with your Apify token. Connect Apify in Lovable once, then ask it: "Use Apify to run insight.solutions/shopify-store-finder for my niche and build a prospect list around the results." A run of a few niches finishes well inside Lovable's 300-second synchronous limit at the default settings, and every result is one JSON object per row, so the generated app needs no extra parsing. Usage bills to the Apify account whose token is connected.

FAQ

How is a store "verified"? It answered as a Shopify store on the day of the run: its meta.json named its myshopify_domain, or its products.json returned products, or its own page carried Shopify's markers. verifiedBy says which.

Why fewer stores than maxStoresPerQuery? The search ran out first — DuckDuckGo returned fewer stores for that niche across the ladder's pages — or candidates were not Shopify, or minProducts, countries or currencies removed them. The summary row counts each.

Why did a store I know is on Shopify come back not-shopify or unreachable? unreachable is a refusal (a 429 or a bot-protection page): it says nothing about the platform and is never billed. not-shopify means none of the three requests answered like Shopify — a store behind a fully custom headless front end can look like that.

Can I get the stores' e-mail addresses? No — this Actor is company-level and returns no contact details. For a business's published contact channels, see Website Contact Extractor or Company Contact Finder.

Is a *.myshopify.com result the store's real address? It is its permanent Shopify handle. domain and url are the custom domain the store gives in meta.json when it has one; the handle stays in myshopifyDomain.

What do I do with the list? Hand the domain to Shopify Products API for the full catalogue, or to Shopify Store Monitor to watch it for price drops, restocks and new products.

  • Public sources only. DuckDuckGo's and Bing's public result pages, and each store's public storefront endpoints (meta.json, products.json, its home page) that Shopify serves to every anonymous visitor. It never logs in, never supplies cookies or credentials, never enters a store password, and never solves or bypasses a CAPTCHA or a bot wall: a refusal is recorded as a free row and left alone. Listicle pages are read only where their robots.txt allows it.
  • Companies, not people. A row describes a store as a business — its name, location, currency and products, as the store itself publishes them. No e-mail address, phone number or person is extracted; any that a merchant typed into the shop description or a product title is removed before the row is written. socials holds the store's own brand profiles.
  • No profiling of individuals. There is no person search and no input that names a person.
  • We are not a data broker. This Actor holds no database and sells no list. It searches and checks public pages on demand and writes the result to your dataset on your account.
  • Not affiliated with, endorsed by or sponsored by Shopify, DuckDuckGo, Microsoft, or any store named. Names and trademarks are used descriptively.
  • You are responsible for how you use the output, including any outreach to the stores it names, under the GDPR, the CCPA, ePrivacy, CAN-SPAM and other applicable law.

Our other Actors

Every Insight Solutions Actor is pay-per-result with no browser, no login and no API key, and every one of them returns free diagnostic rows instead of billing for failures. Prices are per 1,000 results.

Video, audio & social

News, documents & the web

  • Google News Search, Topics & Real Article URLs — news search and topic feeds with the publisher's real URL decoded.
  • Website to Markdown — Content Extractor for LLMs & RAG — any site as clean Markdown, text and heading-aware chunks.
  • WordPress Posts & Pages API — posts and pages from any WordPress site as clean text or Markdown, with categories, tags and images.
  • Website Metadata API — any URL's meta tags, Open Graph, Twitter cards, hreflang, feeds, JSON-LD and microdata, with normalised Product, Article, Event and FAQ entities.
  • Subdomain Finder API — every subdomain of a domain from certificate-transparency logs, resolved over DNS, with an optional live HTTP check.
  • Internet Archive API — archive.org search, item metadata, files and reviews.
  • Wayback Machine Toolkit — archived URL inventories, snapshots and text diffs between dates.
  • Website Technology Detector — the tech stack behind any site, with the evidence for each detection.
  • Domain Intelligence API — DNS, RDAP registration, TLS certificate and HTTP facts in one row per domain.
  • SEO Page Audit — sitemap crawl with on-page checks, structured data and broken-link reports.
  • Keyword Suggestions API — Google, YouTube, Bing, Amazon and eBay autocomplete with alphabet and question expansions.
  • Website Contact Extractor — emails, phone numbers and social profiles from any list of websites.
  • Company Contact Finder — company names in, each one's verified website with its business emails, phone numbers and social profiles out.
  • Web Search Results API — Bing and DuckDuckGo organic results with snippets, no key, no browser.
  • Company Enrichment API — a domain in, a company profile out: firmographics, contacts, tech stack, DNS and hiring signal.
  • Company Dossier API — one company in, twelve sections out: profile, tech, contacts, DNS, open roles, news, SEC filings, federal awards, recalls, YC batch and apps.
  • Press Releases API — GlobeNewswire and PR Newswire releases plus any newsroom feed, by keyword, company, ticker or subject.
  • Federal Register API — rules, proposed rules, notices and the Public Inspection desk with dockets, comment deadlines and CFR references.
  • Academic Papers Search API — OpenAlex, Crossref, arXiv and PubMed in one row per paper: abstract, citations, open-access PDF, authors and venue.
  • RSS & Atom Feed Monitor — any RSS, Atom or JSON feed (or an OPML file) in, only the new items out, with keyword filters and a webhook.
  • Website Change Monitor — watch any pages, diff the text between runs, get change rows with added/removed lines, keyword alerts and a webhook.
  • Wikipedia & Wikidata API — article text, search, daily pageviews and Wikidata entity facts, any language edition.

Business, finance & jobs

Apps & games