TypeScript 55.4%
Python 43.2%
SQL 1.2%
1#!/usr/bin/env python32"""Wave 3 of the status-page probe (config/sources.d/58-status-pages-wave3.yaml).34Same engine as scripts/gen-status-probe.py but restricted to machine-readable STATUS pages (Atlassian5Statuspage `/api/v2/summary.json`, Instatus `/summary.json`, incident.io `/api/v1/summary`, Status.io6`api.status.io/1.0/status/<id>` sniffed from the HTML) and fed with a fresh list of ≥ 900 services that7were not probed in waves 1–2 (files 23 / 34 / 41 / 48): Forbes Cloud 100 / YC companies, fintech & brokers,8crypto infrastructure, dev tools, e-commerce & marketplaces, gaming, telecom, media, travel, HR / legal /9health / education SaaS, IoT, government digital services and university IT status pages.1011For every candidate the probe tries, in order: `status.<apex>` (+ the host its root redirects to),12`<domain>/status` (redirect target or embedded Statuspage host), any explicit hosts given in the 5th13column, then `<brand>.statuspage.io` and `<brand>.instatus.com`. Hosts already carrying a STATUSPAGE14sensor anywhere in config/ are never probed again; URLs already in config/ are never emitted.1516Usage:17 python3 scripts/gen-status-probe3.py probe [--out /tmp/probe58.jsonl] [--workers 12] [--only a.com,b.com]18 python3 scripts/gen-status-probe3.py gate [--in /tmp/probe58.jsonl] [--drop /tmp/probe58-drop.json]19 python3 scripts/gen-status-probe3.py emit [--in /tmp/probe58.jsonl] [--drop /tmp/probe58-drop.json] > config/sources.d/58-status-pages-wave3.yaml2021`gate` re-fetches every hit that lives on a `<brand>.statuspage.io` / `<brand>.instatus.com` host and writes the URLs to22drop: pages with 0 components, Statuspage `page.updated_at` older than 2024-09-01 (abandoned pages) or a legacy `page.url`23(e.g. deepl.statuspage.io → old.deeplstatus.com). On 2026-09-13 this removed 153 of 245 such hits — brand hosts are a24weak signal (squatted, test or abandoned pages); `status.<domain>` hosts are taken as authoritative.25Then: node node_modules/tsx/dist/cli.mjs apps/engine/src/validate.ts config/sources.d/58-status-pages-wave3.yaml26 --concurrency 6 --json /tmp/r58.json --quiet && python3 scripts/prune-fragment.py … --drop-warn2728Politeness: global token bucket (≤ 6 req/s across all hosts — every request goes to a different host),2915 s timeout, ≤ 1 MB per body, UA "WebSensor registry probe (contact@websensor.io)".30"""31from __future__ import annotations3233import argparse34import glob35import json36import os37import re38import socket39import sys40import threading41import time42from concurrent.futures import ThreadPoolExecutor, as_completed43from urllib.parse import urlparse4445import requests46import yaml4748UA = "WebSensor registry probe (contact@websensor.io)"49TIMEOUT = 1550MAX_BODY = 1_000_00051RATE = 6.052FRAGMENT = "58-status-pages-wave3.yaml"5354# domain | Name | categories | country (default US) | extra status hosts (comma-separated, optional)55CANDIDATES = """56# ── productivity, notes, time tracking, forms, e-signature, scheduling ──57clockify.me | Clockify | enterprise,saas | RS58toggl.com | Toggl | enterprise,saas | EE59getharvest.com | Harvest | enterprise,saas60hubstaff.com | Hubstaff | enterprise,saas61timedoctor.com | Time Doctor | enterprise,saas62everhour.com | Everhour | enterprise,saas63nuclino.com | Nuclino | enterprise,saas | DE64slite.com | Slite | enterprise,saas | FR65getguru.com | Guru | enterprise,saas66tettra.com | Tettra | enterprise,saas67document360.com | Document360 | enterprise,saas68helpjuice.com | Helpjuice | enterprise,saas69archbee.com | Archbee | developer,saas70tldv.io | tl;dv | enterprise,saas,ai | DE71fathom.video | Fathom | enterprise,saas,ai72avoma.com | Avoma | enterprise,saas,ai73grain.com | Grain | enterprise,saas,ai74reclaim.ai | Reclaim.ai | enterprise,saas,ai75usemotion.com | Motion | enterprise,saas,ai76sunsama.com | Sunsama | consumer-tech,saas77akiflow.com | Akiflow | consumer-tech,saas | IT78getclockwise.com | Clockwise | enterprise,saas79superhuman.com | Superhuman | enterprise,saas80hey.com | HEY | consumer-tech,saas81missiveapp.com | Missive | enterprise,saas | CA82shortwave.com | Shortwave | consumer-tech,saas,ai83mem.ai | Mem | consumer-tech,saas,ai84reflect.app | Reflect | consumer-tech,saas85roamresearch.com | Roam Research | consumer-tech,saas86anytype.io | Anytype | consumer-tech,open-source | CH87capacities.io | Capacities | consumer-tech,saas | DE88tana.inc | Tana | consumer-tech,saas | NO89proofhub.com | ProofHub | enterprise,saas | IN90niftypm.com | Nifty | enterprise,saas91hive.com | Hive | enterprise,saas92zenhub.com | ZenHub | developer,saas | CA93businessmap.io | Businessmap | enterprise,saas | BG94teamgantt.com | TeamGantt | enterprise,saas95float.com | Float | enterprise,saas | GB96resourceguruapp.com | Resource Guru | enterprise,saas | GB97runn.io | Runn | enterprise,saas | NZ98workvivo.com | Workvivo | enterprise,saas | IE99staffbase.com | Staffbase | enterprise,saas | DE100simpplr.com | Simpplr | enterprise,saas101lumapps.com | LumApps | enterprise,saas | FR102happeo.com | Happeo | enterprise,saas | FI103joinblink.com | Blink | enterprise,saas | GB104process.st | Process Street | enterprise,saas105tallyfy.com | Tallyfy | enterprise,saas106kissflow.com | Kissflow | enterprise,saas | IN107pipefy.com | Pipefy | enterprise,saas | BR108nintex.com | Nintex | enterprise,saas109appian.com | Appian | enterprise,saas110pega.com | Pegasystems | enterprise,saas111outsystems.com | OutSystems | developer,saas | PT112mendix.com | Mendix | developer,saas | NL113quickbase.com | Quickbase | enterprise,saas114knack.com | Knack | developer,saas115caspio.com | Caspio | developer,saas116ninox.com | Ninox | developer,saas | DE117stackby.com | Stackby | developer,saas | IN118smartsuite.com | SmartSuite | enterprise,saas119baserow.io | Baserow | developer,open-source,saas | NL120nocodb.com | NocoDB | developer,open-source121seatable.io | SeaTable | developer,saas | DE122jotform.com | Jotform | enterprise,saas123formstack.com | Formstack | enterprise,saas124paperform.co | Paperform | enterprise,saas | AU125fillout.com | Fillout | enterprise,saas126tally.so | Tally | enterprise,saas | BE127cognitoforms.com | Cognito Forms | enterprise,saas128wufoo.com | Wufoo | enterprise,saas129123formbuilder.com | 123FormBuilder | enterprise,saas | RO130formassembly.com | FormAssembly | enterprise,saas131involve.me | involve.me | enterprise,saas | AT132feathery.io | Feathery | developer,saas133proposify.com | Proposify | enterprise,saas | CA134qwilr.com | Qwilr | enterprise,saas | AU135betterproposals.io | Better Proposals | enterprise,saas | GB136conga.com | Conga | enterprise,saas137juro.com | Juro | enterprise,legal,saas | GB138contractbook.com | Contractbook | enterprise,legal,saas | DK139spotdraft.com | SpotDraft | enterprise,legal,saas | IN140signnow.com | SignNow | enterprise,saas141signeasy.com | Signeasy | enterprise,saas142xodo.com | Xodo | enterprise,saas | CA143onespan.com | OneSpan | enterprise,cyber,saas | CA144yousign.com | Yousign | enterprise,saas | FR145oneflow.com | Oneflow | enterprise,saas | SE146scrive.com | Scrive | enterprise,saas | SE147acuityscheduling.com | Acuity Scheduling | enterprise,saas148youcanbook.me | YouCanBookMe | enterprise,saas | GB149setmore.com | Setmore | enterprise,saas150simplybook.me | SimplyBook.me | enterprise,saas | CY151appointlet.com | Appointlet | enterprise,saas152vcita.com | vcita | enterprise,saas | IL153conceptboard.com | Conceptboard | enterprise,saas | DE154stormboard.com | Stormboard | enterprise,saas | CA155klaxoon.com | Klaxoon | enterprise,saas | FR156meister.co | Meister (MindMeister) | enterprise,saas | AT157xmind.app | Xmind | consumer-tech,saas | CN158creately.com | Creately | enterprise,saas | AU159nulab.com | Nulab | developer,saas | JP160vidyard.com | Vidyard | enterprise,media,saas | CA161screencastify.com | Screencastify | education,saas162techsmith.com | TechSmith | consumer-tech,software163descript.com | Descript | media,saas,ai164riverside.fm | Riverside | media,saas | IL165zencastr.com | Zencastr | media,saas166podbean.com | Podbean | media,saas167buzzsprout.com | Buzzsprout | media,saas168transistor.fm | Transistor | media,saas169simplecast.com | Simplecast | media,saas170captivate.fm | Captivate | media,saas | GB171libsyn.com | Libsyn | media,saas172acast.com | Acast | media,saas | SE173megaphone.fm | Megaphone | media,saas174art19.com | ART19 | media,saas175castos.com | Castos | media,saas176redcircle.com | RedCircle | media,saas177spreaker.com | Spreaker | media,saas178audioboom.com | Audioboom | media,saas | GB179quillbot.com | QuillBot | consumer-tech,saas,ai180languagetool.org | LanguageTool | consumer-tech,saas | DE181prowritingaid.com | ProWritingAid | consumer-tech,saas | GB182jasper.ai | Jasper | enterprise,ai,saas183copy.ai | Copy.ai | enterprise,ai,saas184writesonic.com | Writesonic | enterprise,ai,saas185anyword.com | Anyword | enterprise,ai,saas | IL186frase.io | Frase | enterprise,ai,saas187surferseo.com | Surfer | enterprise,saas | PL188clearscope.io | Clearscope | enterprise,saas189marketmuse.com | MarketMuse | enterprise,saas190seranking.com | SE Ranking | enterprise,saas | GB191mangools.com | Mangools | enterprise,saas | SK192spyfu.com | SpyFu | enterprise,saas193serpstat.com | Serpstat | enterprise,saas | UA194screamingfrog.co.uk | Screaming Frog | enterprise,software | GB195botify.com | Botify | enterprise,saas | FR196conductor.com | Conductor | enterprise,saas197brightedge.com | BrightEdge | enterprise,saas198lumar.io | Lumar | enterprise,saas | GB199oncrawl.com | Oncrawl | enterprise,saas | FR200sistrix.com | SISTRIX | enterprise,saas | DE201sembly.ai | Sembly AI | enterprise,ai,saas202read.ai | Read AI | enterprise,ai,saas203krisp.ai | Krisp | consumer-tech,ai,saas204# ── developer tools, CI, testing, observability, incident tooling ──205gitkraken.com | GitKraken | developer,software206zed.dev | Zed | developer,open-source207tabnine.com | Tabnine | developer,ai,saas | IL208supermaven.com | Supermaven | developer,ai,saas209continue.dev | Continue | developer,ai,open-source210gitea.com | Gitea | developer,open-source | CN211codeberg.org | Codeberg | developer,open-source | DE212sr.ht | SourceHut | developer,open-source213launchpad.net | Launchpad | developer,open-source | GB214gocd.org | GoCD | developer,open-source215drone.io | Drone | developer,open-source216woodpecker-ci.org | Woodpecker CI | developer,open-source217tekton.dev | Tekton | developer,open-source218spinnaker.io | Spinnaker | developer,open-source219fluxcd.io | Flux | developer,open-source220dagger.io | Dagger | developer,open-source,saas221earthly.dev | Earthly | developer,saas222nx.dev | Nx | developer,open-source,saas223bazel.build | Bazel | developer,open-source224gradle.com | Gradle Inc. | developer,saas225depot.dev | Depot | developer,saas226blacksmith.sh | Blacksmith | developer,saas227namespace.so | Namespace | developer,saas228ubicloud.com | Ubicloud | cloud,open-source229runs-on.com | RunsOn | developer,saas230warpbuild.com | WarpBuild | developer,saas231cirrus-ci.org | Cirrus CI | developer,saas232appveyor.com | AppVeyor | developer,saas233flagsmith.com | Flagsmith | developer,open-source,saas | GB234getunleash.io | Unleash | developer,open-source,saas | NO235configcat.com | ConfigCat | developer,saas | HU236growthbook.io | GrowthBook | developer,open-source,saas237devcycle.com | DevCycle | developer,saas | CA238geteppo.com | Eppo | developer,saas239kameleoon.com | Kameleoon | enterprise,saas | FR240convert.com | Convert | enterprise,saas241raygun.com | Raygun | developer,saas | NZ242airbrake.io | Airbrake | developer,saas243honeybadger.io | Honeybadger | developer,saas244trackjs.com | TrackJS | developer,saas245appsignal.com | AppSignal | developer,saas | NL246scoutapm.com | Scout APM | developer,saas247instabug.com | Instabug | developer,saas248embrace.io | Embrace | developer,saas249coralogix.com | Coralogix | developer,saas | IL250mezmo.com | Mezmo | developer,saas251solarwinds.com | SolarWinds | enterprise,software252graylog.org | Graylog | developer,open-source,saas253observeinc.com | Observe | developer,saas254groundcover.com | groundcover | developer,saas | IL255middleware.io | Middleware | developer,saas256signoz.io | SigNoz | developer,open-source,saas257uptrace.dev | Uptrace | developer,open-source,saas258hyperdx.io | HyperDX | developer,open-source,saas259openobserve.ai | OpenObserve | developer,open-source,saas260victoriametrics.com | VictoriaMetrics | developer,open-source,saas261last9.io | Last9 | developer,saas | IN262dash0.com | Dash0 | developer,saas | DE263xmatters.com | xMatters | developer,saas264everbridge.com | Everbridge | enterprise,saas265ilert.com | ilert | developer,saas | DE266spike.sh | Spike.sh | developer,saas267zenduty.com | Zenduty | developer,saas | IN268allquiet.app | All Quiet | developer,saas | DE269signl4.com | SIGNL4 | developer,saas | DE270blameless.com | Blameless | developer,saas271instatus.com | Instatus | developer,saas272hund.io | Hund | developer,saas273sorryapp.com | Sorry™ | developer,saas | GB274statusgator.com | StatusGator | developer,saas275ohdear.app | Oh Dear | developer,saas | BE276hyperping.com | Hyperping | developer,saas | FR277freshping.io | Freshping | developer,saas278site24x7.com | Site24x7 | developer,saas | IN279uptime.com | Uptime.com | developer,saas280updown.io | updown.io | developer,saas | FR281insomnia.rest | Insomnia | developer,open-source282hoppscotch.io | Hoppscotch | developer,open-source,saas | IN283rapidapi.com | RapidAPI | developer,saas284apidog.com | Apidog | developer,saas | SG285usebruno.com | Bruno | developer,open-source | IN286redocly.com | Redocly | developer,saas287bump.sh | Bump.sh | developer,saas | FR288scalar.com | Scalar | developer,open-source,saas289smartbear.com | SmartBear | developer,software290mabl.com | mabl | developer,saas291testim.io | Testim | developer,saas | IL292functionize.com | Functionize | developer,saas293katalon.com | Katalon | developer,saas294testrail.com | TestRail | developer,saas295qase.io | Qase | developer,saas296testmo.com | Testmo | developer,saas297getxray.app | Xray | developer,saas | PT298tricentis.com | Tricentis | developer,saas | AT299perforce.com | Perforce | developer,software300headspin.io | HeadSpin | developer,saas301kobiton.com | Kobiton | developer,saas302applitools.com | Applitools | developer,saas303chromatic.com | Chromatic | developer,saas304bun.sh | Bun | developer,open-source305deno.com | Deno | developer,open-source,saas306jsdelivr.com | jsDelivr | developer,open-source | PL307unpkg.com | unpkg | developer,open-source308esm.sh | esm.sh | developer,open-source309dev.to | DEV Community | developer,media310hashnode.com | Hashnode | developer,media311nordpass.com | NordPass | cyber,consumer-tech | PA312enpass.io | Enpass | cyber,consumer-tech | IN313roboform.com | RoboForm | cyber,consumer-tech314passbolt.com | Passbolt | cyber,open-source | LU315clicksend.com | ClickSend | developer,telecom,saas | AU316textmagic.com | Textmagic | developer,telecom,saas | GB317simpletexting.com | SimpleTexting | enterprise,telecom,saas318telesign.com | Telesign | developer,telecom,cyber319resend.com | Resend | developer,saas320loops.so | Loops | developer,saas321mailersend.com | MailerSend | developer,saas | LT322elasticemail.com | Elastic Email | developer,saas | CA323socketlabs.com | SocketLabs | developer,saas324smtp2go.com | SMTP2GO | developer,saas | NZ325sendpulse.com | SendPulse | enterprise,saas | UA326moosend.com | Moosend | enterprise,saas | GR327benchmarkemail.com | Benchmark Email | enterprise,saas328emailoctopus.com | EmailOctopus | enterprise,saas | GB329sender.net | Sender | enterprise,saas | LT330mailmodo.com | Mailmodo | enterprise,saas | IN331onelogin.com | OneLogin | cyber,saas332pingidentity.com | Ping Identity | cyber,saas333jumpcloud.com | JumpCloud | cyber,saas334fusionauth.io | FusionAuth | developer,cyber,saas335ory.sh | Ory | developer,open-source,cyber | DE336goauthentik.io | authentik | developer,open-source,cyber337zitadel.com | Zitadel | developer,open-source,cyber | CH338logto.io | Logto | developer,open-source,cyber339hanko.io | Hanko | developer,open-source,cyber | DE340magic.link | Magic | developer,crypto,saas341dynamic.xyz | Dynamic | developer,crypto,saas342privy.io | Privy | developer,crypto,saas343web3auth.io | Web3Auth | developer,crypto,saas | SG344inngest.com | Inngest | developer,saas345mergent.co | Mergent | developer,saas346lob.com | Lob | developer,saas347postgrid.com | PostGrid | developer,saas | CA348cloudconvert.com | CloudConvert | developer,saas | DE349zamzar.com | Zamzar | consumer-tech,saas | GB350convertio.co | Convertio | consumer-tech,saas351deepl.com | DeepL | ai,consumer-tech,saas | DE352lokalise.com | Lokalise | developer,saas | LV353crowdin.com | Crowdin | developer,saas | EE354phrase.com | Phrase | developer,saas | DE355transifex.com | Transifex | developer,saas356smartling.com | Smartling | enterprise,saas357weglot.com | Weglot | developer,saas | FR358localazy.com | Localazy | developer,saas | CZ359onfleet.com | Onfleet | logistics,saas360bringg.com | Bringg | logistics,saas | IL361certn.co | Certn | enterprise,saas | CA362sterlingcheck.com | Sterling | enterprise,saas363tremendous.com | Tremendous | payments,saas364flatfile.com | Flatfile | developer,saas365oneschema.co | OneSchema | developer,saas366nylas.com | Nylas | developer,saas367merge.dev | Merge | developer,saas368apideck.com | Apideck | developer,saas | BE369tryfinch.com | Finch | developer,saas370rutter.com | Rutter | developer,payments,saas371codat.io | Codat | developer,finance,saas | GB372unified.to | Unified.to | developer,saas | CA373smartcar.com | Smartcar | developer,automotive,saas374ayrshare.com | Ayrshare | developer,saas375bannerbear.com | Bannerbear | developer,saas | SG376liveblocks.io | Liveblocks | developer,saas | FR377partykit.io | PartyKit | developer,open-source378zeplo.io | Zeplo | developer,saas | GB379mux.com | Mux | developer,media,saas380# ── AI infra & ML tooling (status pages only) ──381anyscale.com | Anyscale | ai,developer,saas382deepinfra.com | DeepInfra | ai,developer,saas383hyperbolic.xyz | Hyperbolic | ai,developer,saas384novita.ai | Novita AI | ai,developer,saas385nebius.com | Nebius | ai,cloud | NL386crusoe.ai | Crusoe | ai,cloud387vast.ai | Vast.ai | ai,cloud388paperspace.com | Paperspace | ai,cloud389predibase.com | Predibase | ai,developer,saas390cerebrium.ai | Cerebrium | ai,developer,saas | GB391beam.cloud | Beam | ai,developer,saas392mystic.ai | Mystic | ai,developer,saas | GB393clearml.com | ClearML | ai,developer,saas394valohai.com | Valohai | ai,developer,saas | FI395iterative.ai | Iterative (DVC) | ai,developer,open-source396hopsworks.ai | Hopsworks | ai,developer,saas | SE397arize.com | Arize AI | ai,developer,saas398whylabs.ai | WhyLabs | ai,developer,saas399fiddler.ai | Fiddler AI | ai,developer,saas400rungalileo.io | Galileo | ai,developer,saas401humanloop.com | Humanloop | ai,developer,saas | GB402braintrust.dev | Braintrust | ai,developer,saas403langfuse.com | Langfuse | ai,developer,open-source,saas | DE404helicone.ai | Helicone | ai,developer,open-source,saas405portkey.ai | Portkey | ai,developer,saas406promptlayer.com | PromptLayer | ai,developer,saas407traceloop.com | Traceloop | ai,developer,saas | IL408labelbox.com | Labelbox | ai,developer,saas409snorkel.ai | Snorkel AI | ai,developer,saas410v7labs.com | V7 | ai,developer,saas | GB411encord.com | Encord | ai,developer,saas | GB412superannotate.com | SuperAnnotate | ai,developer,saas413humansignal.com | HumanSignal (Label Studio) | ai,developer,open-source,saas414datasaur.ai | Datasaur | ai,developer,saas415character.ai | Character.AI | ai,consumer-tech416poe.com | Poe | ai,consumer-tech417you.com | You.com | ai,consumer-tech418phind.com | Phind | ai,developer,saas419assemblyai.com | AssemblyAI | ai,developer,saas420deepgram.com | Deepgram | ai,developer,saas421speechmatics.com | Speechmatics | ai,developer,saas | GB422rev.com | Rev | ai,media,saas423play.ht | Play.ht | ai,media,saas424murf.ai | Murf AI | ai,media,saas | IN425synthesia.io | Synthesia | ai,media,saas | GB426heygen.com | HeyGen | ai,media,saas427d-id.com | D-ID | ai,media,saas | IL428pika.art | Pika | ai,media,saas429lumalabs.ai | Luma AI | ai,media,saas430ideogram.ai | Ideogram | ai,media,saas | CA431leonardo.ai | Leonardo.Ai | ai,media,saas | AU432krea.ai | Krea | ai,media,saas433civitai.com | Civitai | ai,media,internet434suno.com | Suno | ai,media,saas435udio.com | Udio | ai,media,saas436voyageai.com | Voyage AI | ai,developer,saas437unstructured.io | Unstructured | ai,developer,saas438llamaindex.ai | LlamaIndex (LlamaCloud) | ai,developer,saas439cognition.ai | Cognition (Devin) | ai,developer,saas440lovable.dev | Lovable | ai,developer,saas | SE441bolt.new | Bolt.new | ai,developer,saas442v0.dev | v0 | ai,developer,saas443glean.com | Glean | ai,enterprise,saas444writer.com | Writer | ai,enterprise,saas445sierra.ai | Sierra | ai,enterprise,saas446decagon.ai | Decagon | ai,enterprise,saas447harvey.ai | Harvey | ai,legal,saas448hebbia.com | Hebbia | ai,finance,saas449abridge.com | Abridge | ai,health,saas450# ── payments, fintech, banking, brokers, crypto ──451marqeta.com | Marqeta | payments,developer452lithic.com | Lithic | payments,developer453galileo-ft.com | Galileo Financial Technologies | payments,developer454highnote.com | Highnote | payments,developer455treasuryprime.com | Treasury Prime | payments,developer456increase.com | Increase | payments,developer457column.com | Column | payments,finance458mercury.com | Mercury | finance,payments459brex.com | Brex | finance,payments460rho.co | Rho | finance,payments461airwallex.com | Airwallex | payments,finance | AU462payoneer.com | Payoneer | payments,finance463currencycloud.com | Currencycloud | payments,developer | GB464ofx.com | OFX | payments,finance | AU465remitly.com | Remitly | payments,finance466mx.com | MX | finance,developer467teller.io | Teller | finance,developer468truelayer.com | TrueLayer | finance,developer | GB469tink.com | Tink | finance,developer | SE470yapily.com | Yapily | finance,developer | GB471saltedge.com | Salt Edge | finance,developer | CA472paysafe.com | Paysafe | payments | GB473payu.com | PayU | payments | NL474sumup.com | SumUp | payments | GB475payplug.com | PayPlug | payments | FR476lydia-app.com | Lydia | payments,finance | FR477interac.ca | Interac | payments | CA478moneris.com | Moneris | payments | CA479helcim.com | Helcim | payments | CA480clover.com | Clover | payments,commerce481tide.co | Tide | finance | GB482qonto.com | Qonto | finance | FR483pennylane.com | Pennylane | finance,saas | FR484agicap.com | Agicap | finance,saas | FR485bunq.com | bunq | finance | NL486nubank.com.br | Nubank | finance | BR487webull.com | Webull | finance488moomoo.com | moomoo | finance | SG489tastytrade.com | tastytrade | finance490tradestation.com | TradeStation | finance491etrade.com | E*TRADE | finance492ally.com | Ally | finance493capitalone.com | Capital One | finance494current.com | Current | finance495varomoney.com | Varo | finance496dave.com | Dave | finance497moneylion.com | MoneyLion | finance498monarchmoney.com | Monarch Money | finance,consumer-tech499rocketmoney.com | Rocket Money | finance,consumer-tech500carta.com | Carta | finance,saas501angellist.com | AngelList | finance,saas502pulley.com | Pulley | finance,saas503ledgy.com | Ledgy | finance,saas | CH504stripe.com | Stripe | payments,developer505crypto-infra-placeholder.invalid | skip | skip506moralis.io | Moralis | crypto,developer | SE507chainstack.com | Chainstack | crypto,developer | SG508ankr.com | Ankr | crypto,developer509thegraph.com | The Graph | crypto,developer510anchorage.com | Anchorage Digital | crypto,finance511bitgo.com | BitGo | crypto,finance512copper.co | Copper | crypto,finance | GB513tether.to | Tether | crypto,finance | HK514paxos.com | Paxos | crypto,finance515magiceden.io | Magic Eden | crypto,internet516phantom.app | Phantom | crypto,consumer-tech517rainbow.me | Rainbow | crypto,consumer-tech518trezor.io | Trezor | crypto,consumer-tech | CZ519uniswap.org | Uniswap | crypto520aave.com | Aave | crypto | GB521lido.fi | Lido | crypto522coingecko.com | CoinGecko | crypto,media | SG523nansen.ai | Nansen | crypto,saas | SG524messari.io | Messari | crypto,media525glassnode.com | Glassnode | crypto,saas | CH526kaiko.com | Kaiko | crypto,finance | FR527bitget.com | Bitget | crypto | SC528gate.io | Gate.io | crypto | KY529htx.com | HTX | crypto | SC530mexc.com | MEXC | crypto | SC531bitpanda.com | Bitpanda | crypto,finance | AT532bitso.com | Bitso | crypto | MX533luno.com | Luno | crypto | GB534coinsquare.com | Coinsquare | crypto | CA535ndax.io | NDAX | crypto | CA536newton.co | Newton | crypto | CA537shakepay.com | Shakepay | crypto | CA538bitbuy.ca | Bitbuy | crypto | CA539wealthsimple.com | Wealthsimple | finance | CA540alpaca.markets | Alpaca | finance,developer541# ── e-commerce platforms, marketplaces, retail tech, logistics ──542bigcommerce.com | BigCommerce | commerce,saas543woocommerce.com | WooCommerce | commerce,open-source544commercetools.com | commercetools | commerce,saas | DE545saleor.io | Saleor | commerce,open-source | PL546medusajs.com | Medusa | commerce,open-source | DK547swell.is | Swell | commerce,saas548elasticpath.com | Elastic Path | commerce,saas | CA549fabric.inc | fabric | commerce,saas550spryker.com | Spryker | commerce,saas | DE551shopware.com | Shopware | commerce,open-source | DE552prestashop.com | PrestaShop | commerce,open-source | FR553ecwid.com | Ecwid | commerce,saas554sellfy.com | Sellfy | commerce,saas | LV555payhip.com | Payhip | commerce,saas | GB556podia.com | Podia | commerce,education,saas557teachable.com | Teachable | education,saas558thinkific.com | Thinkific | education,saas | CA559kajabi.com | Kajabi | education,saas560learnworlds.com | LearnWorlds | education,saas | CY561circle.so | Circle | consumer-tech,saas562mightynetworks.com | Mighty Networks | consumer-tech,saas563memberful.com | Memberful | commerce,saas564drip.com | Drip | commerce,saas565sendlane.com | Sendlane | commerce,saas566listrak.com | Listrak | commerce,saas567bluecore.com | Bluecore | commerce,saas568richpanel.com | Richpanel | commerce,saas569reamaze.com | Re:amaze | commerce,saas570hiverhq.com | Hiver | enterprise,saas | IN571shipstation.com | ShipStation | logistics,saas572goshippo.com | Shippo | logistics,developer573easyship.com | Easyship | logistics,saas | HK574shipbob.com | ShipBob | logistics,saas575shiphero.com | ShipHero | logistics,saas576easypost.com | EasyPost | logistics,developer577aftership.com | AfterShip | logistics,saas | HK578narvar.com | Narvar | logistics,saas579parcellab.com | parcelLab | logistics,saas | DE580route.com | Route | logistics,saas581loopreturns.com | Loop Returns | commerce,saas582coveo.com | Coveo | enterprise,ai,saas | CA583lucidworks.com | Lucidworks | enterprise,saas584searchspring.com | Searchspring | commerce,saas585klevu.com | Klevu | commerce,saas | FI586doofinder.com | Doofinder | commerce,saas | ES587poshmark.com | Poshmark | commerce588depop.com | Depop | commerce | GB589vinted.com | Vinted | commerce | LT590stockx.com | StockX | commerce591goat.com | GOAT | commerce592grailed.com | Grailed | commerce593reverb.com | Reverb | commerce594discogs.com | Discogs | commerce,media595mercari.com | Mercari | commerce | JP596offerup.com | OfferUp | commerce597zalando.com | Zalando | retail,commerce | DE598asos.com | ASOS | retail,commerce | GB599farfetch.com | Farfetch | retail,commerce | GB600overstock.com | Overstock | retail,commerce601chewy.com | Chewy | retail,commerce602boxed.com | Boxed | retail,commerce603thredup.com | thredUP | commerce604therealreal.com | The RealReal | commerce605project44.com | project44 | logistics,saas606fourkites.com | FourKites | logistics,saas607freightos.com | Freightos | logistics,saas | IL608shippeo.com | Shippeo | logistics,saas | FR609sendcloud.com | Sendcloud | logistics,saas | NL610packlink.com | Packlink | logistics,saas | ES611# ── hosting, domains, CDN, cloud, databases, queues ──612koyeb.com | Koyeb | cloud,developer | FR613northflank.com | Northflank | cloud,developer | GB614qovery.com | Qovery | cloud,developer | FR615porter.run | Porter | cloud,developer616zeabur.com | Zeabur | cloud,developer | TW617sevalla.com | Sevalla | cloud,developer | CH618kinsta.com | Kinsta | cloud,developer | CH619wpengine.com | WP Engine | cloud,developer620pantheon.io | Pantheon | cloud,developer621getflywheel.com | Flywheel | cloud,developer622pressable.com | Pressable | cloud,developer623siteground.com | SiteGround | cloud,developer | BG624bluehost.com | Bluehost | cloud,developer625hostgator.com | HostGator | cloud,developer626hover.com | Hover | internet,developer | CA627porkbun.com | Porkbun | internet,developer628dynadot.com | Dynadot | internet,developer629ionos.com | IONOS | cloud,developer | DE630hostinger.com | Hostinger | cloud,developer | LT631dreamhost.com | DreamHost | cloud,developer632a2hosting.com | A2 Hosting | cloud,developer633inmotionhosting.com | InMotion Hosting | cloud,developer634liquidweb.com | Liquid Web | cloud,developer635nexcess.net | Nexcess | cloud,developer636cloudways.com | Cloudways | cloud,developer | MT637rocket.net | Rocket.net | cloud,developer638servebolt.com | Servebolt | cloud,developer | NO639upcloud.com | UpCloud | cloud | FI640exoscale.com | Exoscale | cloud | CH641civo.com | Civo | cloud | GB642kamatera.com | Kamatera | cloud | IL643contabo.com | Contabo | cloud | DE644hostwinds.com | Hostwinds | cloud645binarylane.com.au | BinaryLane | cloud | AU646wasabi.com | Wasabi | cloud647storj.io | Storj | cloud,crypto648filebase.com | Filebase | cloud,crypto649bunny.net | bunny.net | cloud,infrastructure | SI650keycdn.com | KeyCDN | cloud,infrastructure | CH651cdn77.com | CDN77 | cloud,infrastructure | GB652gcore.com | Gcore | cloud,infrastructure | LU653aiven.io | Aiven | cloud,developer | FI654upstash.com | Upstash | cloud,developer655scalegrid.io | ScaleGrid | cloud,developer656crunchydata.com | Crunchy Data | cloud,developer657tembo.io | Tembo | cloud,developer658dragonflydb.io | Dragonfly | developer,open-source | IL659couchbase.com | Couchbase | developer,cloud660datastax.com | DataStax | developer,cloud661scylladb.com | ScyllaDB | developer,cloud | IL662tinybird.co | Tinybird | developer,cloud | ES663materialize.com | Materialize | developer,cloud664risingwave.com | RisingWave | developer,open-source,cloud665trychroma.com | Chroma | ai,developer,open-source666marqo.ai | Marqo | ai,developer,saas | AU667redpanda.com | Redpanda | developer,cloud668cloudamqp.com | CloudAMQP | developer,cloud | SE669streamnative.io | StreamNative | developer,cloud670sigmacomputing.com | Sigma Computing | enterprise,saas671omni.co | Omni | enterprise,saas672holistics.io | Holistics | enterprise,saas | SG673redash.io | Redash | developer,open-source674dnsmadeeasy.com | DNS Made Easy | internet,infrastructure675easydns.com | easyDNS | internet,infrastructure | CA676constellix.com | Constellix | internet,infrastructure677ssl.com | SSL.com | cyber,infrastructure678zerossl.com | ZeroSSL | cyber,infrastructure | AT679# ── security ──680cybereason.com | Cybereason | cyber,saas681eset.com | ESET | cyber,software | SK682bitdefender.com | Bitdefender | cyber,software | RO683kaspersky.com | Kaspersky | cyber,software | RU684avast.com | Avast | cyber,software | CZ685mcafee.com | McAfee | cyber,software686withsecure.com | WithSecure | cyber,saas | FI687trellix.com | Trellix | cyber,saas688tanium.com | Tanium | cyber,saas689automox.com | Automox | cyber,saas690action1.com | Action1 | cyber,saas691wiz.io | Wiz | cyber,saas692orca.security | Orca Security | cyber,saas | IL693aquasec.com | Aqua Security | cyber,saas | IL694sysdig.com | Sysdig | cyber,saas695checkmarx.com | Checkmarx | cyber,developer | IL696veracode.com | Veracode | cyber,developer697contrastsecurity.com | Contrast Security | cyber,developer698semgrep.dev | Semgrep | cyber,developer,open-source699gitguardian.com | GitGuardian | cyber,developer | FR700trufflesecurity.com | Truffle Security | cyber,developer701socket.dev | Socket | cyber,developer702endorlabs.com | Endor Labs | cyber,developer703chainguard.dev | Chainguard | cyber,developer704abnormalsecurity.com | Abnormal Security | cyber,saas705ironscales.com | IRONSCALES | cyber,saas | IL706knowbe4.com | KnowBe4 | cyber,saas707hoxhunt.com | Hoxhunt | cyber,saas | FI708cofense.com | Cofense | cyber,saas709hackerone.com | HackerOne | cyber,saas710bugcrowd.com | Bugcrowd | cyber,saas711intigriti.com | Intigriti | cyber,saas | BE712synack.com | Synack | cyber,saas713yeswehack.com | YesWeHack | cyber,saas | FR714imperva.com | Imperva | cyber,saas715radware.com | Radware | cyber,saas | IL716sucuri.net | Sucuri | cyber,saas717catonetworks.com | Cato Networks | cyber,saas | IL718perimeter81.com | Perimeter 81 | cyber,saas | IL719twingate.com | Twingate | cyber,saas720zerotier.com | ZeroTier | cyber,open-source721nordlayer.com | NordLayer | cyber,saas | PA722bitsight.com | Bitsight | cyber,saas723securityscorecard.com | SecurityScorecard | cyber,saas724upguard.com | UpGuard | cyber,saas | AU725panorays.com | Panorays | cyber,saas | IL726varonis.com | Varonis | cyber,saas727bigid.com | BigID | cyber,saas728onetrust.com | OneTrust | cyber,legal,saas729transcend.io | Transcend | cyber,legal,saas730osano.com | Osano | cyber,legal,saas731usercentrics.com | Usercentrics | cyber,legal,saas | DE732termly.io | Termly | legal,saas733iubenda.com | iubenda | legal,saas | IT734didomi.io | Didomi | legal,saas | FR735ketch.com | Ketch | legal,saas736cloudflare-placeholder.invalid | skip | skip737expel.com | Expel | cyber,saas738redcanary.com | Red Canary | cyber,saas739blumira.com | Blumira | cyber,saas740axonius.com | Axonius | cyber,saas741lansweeper.com | Lansweeper | enterprise,cyber | BE742keepersecurity.com | Keeper Security | cyber,saas743# ── HR, payroll, recruiting, learning, expenses ──744adp.com | ADP | enterprise,payments,saas745paycor.com | Paycor | enterprise,saas746ukg.com | UKG | enterprise,saas747dayforce.com | Dayforce | enterprise,saas748namely.com | Namely | enterprise,saas749hirevue.com | HireVue | enterprise,labour,saas750sparkhire.com | Spark Hire | enterprise,labour,saas751codility.com | Codility | developer,labour,saas | GB752hackerrank.com | HackerRank | developer,labour,saas753hackerearth.com | HackerEarth | developer,labour,saas | IN754coderpad.io | CoderPad | developer,labour,saas755codesignal.com | CodeSignal | developer,labour,saas756karat.com | Karat | developer,labour,saas757testgorilla.com | TestGorilla | enterprise,labour,saas | NL758vervoe.com | Vervoe | enterprise,labour,saas | AU759harver.com | Harver | enterprise,labour,saas | NL760oysterhr.com | Oyster | enterprise,labour,saas761papayaglobal.com | Papaya Global | enterprise,labour,saas | IL762velocityglobal.com | Velocity Global | enterprise,labour,saas763usemultiplier.com | Multiplier | enterprise,labour,saas | SG764workleap.com | Workleap | enterprise,saas | CA765cornerstoneondemand.com | Cornerstone | enterprise,education,saas766docebo.com | Docebo | enterprise,education,saas | IT767litmos.com | Litmos | enterprise,education,saas768talentlms.com | TalentLMS | enterprise,education,saas769learnupon.com | LearnUpon | enterprise,education,saas | IE770absorblms.com | Absorb LMS | enterprise,education,saas | CA771360learning.com | 360Learning | enterprise,education,saas | FR772workramp.com | WorkRamp | enterprise,education,saas773expensify.com | Expensify | finance,saas774concur.com | SAP Concur | finance,saas775rydoo.com | Rydoo | finance,saas | BE776emburse.com | Emburse | finance,saas777airbase.com | Airbase | finance,saas778payfit.com | PayFit | enterprise,payments,saas | FR779factorialhr.com | Factorial | enterprise,saas | ES780lucca.fr | Lucca | enterprise,saas | FR781humaans.io | Humaans | enterprise,saas | GB782charliehr.com | CharlieHR | enterprise,saas | GB783breathehr.com | Breathe | enterprise,saas | GB784employmenthero.com | Employment Hero | enterprise,saas | AU785keypay.com | KeyPay | enterprise,payments,saas | AU786wagepoint.com | Wagepoint | enterprise,payments,saas | CA787humi.ca | Humi | enterprise,saas | CA788collage.co | Collage HR | enterprise,saas | CA789# ── legal, real-estate, construction, field service, health, education ──790mycase.com | MyCase | legal,saas791practicepanther.com | PracticePanther | legal,saas792smokeball.com | Smokeball | legal,saas | AU793filevine.com | Filevine | legal,saas794litify.com | Litify | legal,saas795lawpay.com | LawPay | legal,payments,saas796appfolio.com | AppFolio | real-estate,saas797buildium.com | Buildium | real-estate,saas798yardi.com | Yardi | real-estate,saas799realpage.com | RealPage | real-estate,saas800entrata.com | Entrata | real-estate,saas801rentmanager.com | Rent Manager | real-estate,saas802doorloop.com | DoorLoop | real-estate,saas803turbotenant.com | TurboTenant | real-estate,saas804buildertrend.com | Buildertrend | enterprise,saas805fieldwire.com | Fieldwire | enterprise,saas806housecallpro.com | Housecall Pro | enterprise,saas807workiz.com | Workiz | enterprise,saas | IL808simprogroup.com | Simpro | enterprise,saas | AU809athenahealth.com | athenahealth | health,saas810drchrono.com | DrChrono | health,saas811tebra.com | Tebra | health,saas812nextgen.com | NextGen Healthcare | health,saas813eclinicalworks.com | eClinicalWorks | health,saas814practicefusion.com | Practice Fusion | health,saas815simplepractice.com | SimplePractice | health,saas816therapynotes.com | TherapyNotes | health,saas817jane.app | Jane | health,saas | CA818zocdoc.com | Zocdoc | health,consumer-tech819doximity.com | Doximity | health,saas820teladoc.com | Teladoc Health | health821amwell.com | Amwell | health822hims.com | Hims & Hers | health,consumer-tech823ro.co | Ro | health,consumer-tech824onemedical.com | One Medical | health825carbonhealth.com | Carbon Health | health826zochealth-placeholder.invalid | skip | skip827powerschool.com | PowerSchool | education,saas828nearpod.com | Nearpod | education,saas829seesaw.com | Seesaw | education,saas830udacity.com | Udacity | education831memrise.com | Memrise | education,consumer-tech | GB832busuu.com | Busuu | education,consumer-tech | GB833brainly.com | Brainly | education,consumer-tech | PL834course-hero-placeholder.invalid | skip | skip835gradescope.com | Gradescope | education,saas836turnitin.com | Turnitin | education,saas837proctorio.com | Proctorio | education,saas838examity.com | Examity | education,saas839zybooks.com | zyBooks | education,saas840mheducation.com | McGraw Hill | education,media841pearson.com | Pearson | education,media | GB842cengage.com | Cengage | education,media843wiley.com | Wiley | education,media844labster.com | Labster | education,saas | DK845codecombat.com | CodeCombat | education,developer846replit-placeholder.invalid | skip | skip847# ── gaming, esports, game infrastructure ──848activision.com | Activision | gaming8492k.com | 2K | gaming850take2games.com | Take-Two Interactive | gaming851bandainamcoent.com | Bandai Namco Entertainment | gaming | JP852capcom.com | Capcom | gaming | JP853sega.com | Sega | gaming | JP854konami.com | Konami | gaming | JP855guilded.gg | Guilded | gaming,consumer-tech856teamspeak.com | TeamSpeak | gaming,consumer-tech | DE857fanatical.com | Fanatical | gaming | GB858greenmangaming.com | Green Man Gaming | gaming | GB859hypixel.net | Hypixel | gaming860curseforge.com | CurseForge | gaming861modrinth.com | Modrinth | gaming,open-source862nexusmods.com | Nexus Mods | gaming | GB863playfab.com | PlayFab | gaming,developer864photonengine.com | Photon Engine | gaming,developer | DE865heroiclabs.com | Heroic Labs (Nakama) | gaming,developer | GB866accelbyte.io | AccelByte | gaming,developer867pragma.gg | Pragma | gaming,developer868wargaming.net | Wargaming | gaming | CY869gaijin.net | Gaijin Entertainment | gaming | HU870ncsoft.com | NCSoft | gaming | KR871netmarble.com | Netmarble | gaming | KR872pearlabyss.com | Pearl Abyss | gaming | KR873rovio.com | Rovio | gaming | FI874chess.com | Chess.com | gaming,consumer-tech875lichess.org | Lichess | gaming,open-source | FR876faceit.com | FACEIT | gaming,sports | GB877streamlabs.com | Streamlabs | gaming,media878streamelements.com | StreamElements | gaming,media | IL879restream.io | Restream | media,saas880overwolf.com | Overwolf | gaming,developer | IL881gamesight-placeholder.invalid | skip | skip882enad-placeholder.invalid | skip | skip883embracer.com | Embracer Group | gaming | SE884focus-entmt.com | Focus Entertainment | gaming | FR885devolverdigital.com | Devolver Digital | gaming886team17.com | Team17 | gaming | GB887kongregate.com | Kongregate | gaming888armorgames.com | Armor Games | gaming889poki.com | Poki | gaming | NL890crazygames.com | CrazyGames | gaming | BE891geforcenow-placeholder.invalid | skip | skip892shadow.tech | Shadow | gaming,cloud | FR893boosteroid.com | Boosteroid | gaming,cloud | UA894parsec.app | Parsec | gaming,developer895opgg-placeholder.invalid | skip | skip896gamersclub-placeholder.invalid | skip | skip897skinport-placeholder.invalid | skip | skip898pokemon.com | The Pokémon Company | gaming,entertainment | JP899pokemongolive.com | Pokémon GO (Niantic) | gaming900nianticlabs.com | Niantic | gaming901jagex.com | Jagex | gaming | GB902runescape.com | RuneScape | gaming | GB903warframe.com | Warframe (Digital Extremes) | gaming | CA904pathofexile.com | Path of Exile (Grinding Gear Games) | gaming | NZ905worldofwarships.com | World of Warships | gaming | CY906eveonline.com | EVE Online (CCP Games) | gaming | IS907finalfantasyxiv.com | Final Fantasy XIV | gaming | JP908robloxdev-placeholder.invalid | skip | skip909# ── streaming, music, media platforms, publishing ──910roku.com | Roku | media,consumer-tech911scribd.com | Scribd | media,consumer-tech912kobo.com | Kobo | media,consumer-tech | CA913tunein.com | TuneIn | media914iheart.com | iHeartMedia | media915siriusxm.com | SiriusXM | media916viki.com | Rakuten Viki | media | US917philo.com | Philo | media918sling.com | Sling TV | media919fubo.tv | Fubo | media920plutotv-placeholder.invalid | skip | skip921tubitv.com | Tubi | media922vudu-placeholder.invalid | skip | skip923curiositystream.com | CuriosityStream | media924mubi.com | MUBI | media | GB925britbox.com | BritBox | media | GB926hayu.com | hayu | media | GB927crave.ca | Crave | media | CA928cbc-gem-placeholder.invalid | skip | skip929stan.com.au | Stan | media | AU930binge.com.au | Binge | media | AU931hotstar.com | Disney+ Hotstar | media | IN932jiocinema-placeholder.invalid | skip | skip933zee5.com | ZEE5 | media | IN934sonyliv.com | SonyLIV | media | IN935iqiyi.com | iQIYI | media | CN936viu.com | Viu | media | HK937wetv-placeholder.invalid | skip | skip938napster.com | Napster | media939qobuz.com | Qobuz | media | FR940audiomack.com | Audiomack | media941mixcloud.com | Mixcloud | media | GB942bandlab.com | BandLab | media,consumer-tech | SG943splice.com | Splice | media,saas944distrokid.com | DistroKid | media,saas945tunecore.com | TuneCore | media,saas946cdbaby.com | CD Baby | media,saas947ditto-placeholder.invalid | skip | skip948epidemicsound.com | Epidemic Sound | media,saas | SE949artlist.io | Artlist | media,saas | IL950storyblocks.com | Storyblocks | media,saas951shutterstock.com | Shutterstock | media,saas952gettyimages.com | Getty Images | media953pond5-placeholder.invalid | skip | skip954envato.com | Envato | media,saas | AU955creativemarket.com | Creative Market | media,saas956issuu.com | Issuu | media,saas957readwise.io | Readwise | consumer-tech,saas958pocket-placeholder.invalid | skip | skip959feedly.com | Feedly | consumer-tech,saas960inoreader.com | Inoreader | consumer-tech,saas | BG961flipboard.com | Flipboard | media,consumer-tech962goodreads-placeholder.invalid | skip | skip963storygraph-placeholder.invalid | skip | skip964webtoons.com | WEBTOON | media | KR965tapas.io | Tapas | media966wattpad-placeholder.invalid | skip | skip967royalroad.com | Royal Road | media968archiveofourown.org | Archive of Our Own | media,ngo969# ── telecom, ISPs, connectivity, MVNO ──970xfinity.com | Xfinity (Comcast) | telecom971spectrum.com | Spectrum (Charter) | telecom972cox.com | Cox Communications | telecom973frontier.com | Frontier Communications | telecom974lumen.com | Lumen | telecom975windstream.com | Windstream | telecom976rogers.com | Rogers | telecom | CA977bell.ca | Bell Canada | telecom | CA978videotron.com | Vidéotron | telecom | CA979freedommobile.ca | Freedom Mobile | telecom | CA980fizz.ca | Fizz | telecom | CA981koodomobile.com | Koodo | telecom | CA982virginplus.ca | Virgin Plus | telecom | CA983sasktel.com | SaskTel | telecom | CA984eastlink.ca | Eastlink | telecom | CA985cogeco.ca | Cogeco | telecom | CA986teksavvy.com | TekSavvy | telecom | CA987ee.co.uk | EE | telecom | GB988o2.co.uk | O2 UK | telecom | GB989three.co.uk | Three UK | telecom | GB990sky.com | Sky | telecom,media | GB991virginmedia.com | Virgin Media | telecom | GB992talktalk.co.uk | TalkTalk | telecom | GB993giffgaff.com | giffgaff | telecom | GB994orange.com | Orange | telecom | FR995sfr.fr | SFR | telecom | FR996bouyguestelecom.fr | Bouygues Telecom | telecom | FR997free.fr | Free | telecom | FR998telekom.de | Deutsche Telekom | telecom | DE999o2online.de | O2 Germany | telecom | DE1000vodafone.de | Vodafone Germany | telecom | DE1001telefonica.com | Telefónica | telecom | ES1002movistar.es | Movistar | telecom | ES1003tim.it | TIM | telecom | IT1004kpn.com | KPN | telecom | NL1005proximus.be | Proximus | telecom | BE1006swisscom.ch | Swisscom | telecom | CH1007telia.se | Telia | telecom | SE1008telenor.com | Telenor | telecom | "NO"1009elisa.fi | Elisa | telecom | FI1010telstra.com.au | Telstra | telecom | AU1011optus.com.au | Optus | telecom | AU1012spark.co.nz | Spark NZ | telecom | NZ1013one.nz | One NZ | telecom | NZ1014singtel.com | Singtel | telecom | SG1015fi.google.com | Google Fi | telecom1016mintmobile.com | Mint Mobile | telecom1017visible.com | Visible | telecom1018usmobile.com | US Mobile | telecom1019boostmobile.com | Boost Mobile | telecom1020cricketwireless.com | Cricket Wireless | telecom1021viasat.com | Viasat | telecom,space1022hughesnet.com | HughesNet | telecom,space1023twilio-placeholder.invalid | skip | skip1024grasshopper.com | Grasshopper | telecom,saas1025ooma.com | Ooma | telecom1026nextiva.com | Nextiva | telecom,saas1027vonage-placeholder.invalid | skip | skip1028justcall.io | JustCall | telecom,saas | IN1029cloudtalk.io | CloudTalk | telecom,saas | SK1030talkdesk.com | Talkdesk | telecom,saas1031five9.com | Five9 | telecom,saas1032nice.com | NICE | telecom,saas | IL1033genesys.com | Genesys | telecom,saas1034# ── travel, hospitality, mobility, events, ticketing ──1035travelport.com | Travelport | travel,saas | GB1036avis.com | Avis Budget Group | travel,transport1037enterprise.com | Enterprise Mobility | travel,transport1038sixt.com | Sixt | travel,transport | DE1039cloudbeds.com | Cloudbeds | travel,saas1040mews.com | Mews | travel,saas | NL1041guesty.com | Guesty | travel,saas | IL1042hostaway.com | Hostaway | travel,saas | FI1043lodgify.com | Lodgify | travel,saas | ES1044siteminder.com | SiteMinder | travel,saas | AU1045eventbrite.com | Eventbrite | entertainment,saas1046cvent.com | Cvent | enterprise,saas1047bizzabo.com | Bizzabo | enterprise,saas | IL1048splashthat.com | Splash | enterprise,saas1049lu.ma | Luma | consumer-tech,saas1050ticketmaster.com | Ticketmaster | entertainment1051axs.com | AXS | entertainment1052seatgeek.com | SeatGeek | entertainment1053stubhub.com | StubHub | entertainment1054dice.fm | DICE | entertainment | GB1055ticketek.com.au | Ticketek | entertainment | AU1056ticketleap-placeholder.invalid | skip | skip1057universe-placeholder.invalid | skip | skip1058tixr.com | Tixr | entertainment1059showpass.com | Showpass | entertainment | CA1060opentable.com | OpenTable | food,consumer-tech1061resy.com | Resy | food,consumer-tech1062sevenrooms.com | SevenRooms | food,saas1063yelp.com | Yelp | consumer-tech,internet1064tock.com | Tock | food,saas1065toast-placeholder.invalid | skip | skip1066touchbistro.com | TouchBistro | food,saas | CA1067olo.com | Olo | food,saas1068chownow.com | ChowNow | food,saas1069mindbodyonline.com | Mindbody | health,saas1070classpass.com | ClassPass | health,consumer-tech1071glofox.com | Glofox | health,saas | IE1072zenoti.com | Zenoti | health,saas1073booksy.com | Booksy | consumer-tech,saas | PL1074fresha.com | Fresha | consumer-tech,saas | GB1075vagaro.com | Vagaro | consumer-tech,saas1076# ── marketing, CRM, support, CX, analytics, ad tech ──1077moengage.com | MoEngage | enterprise,saas | IN1078clevertap.com | CleverTap | enterprise,saas | IN1079airship.com | Airship | enterprise,saas1080batch.com | Batch | enterprise,saas | FR1081mparticle.com | mParticle | developer,saas1082tealium.com | Tealium | enterprise,saas1083rudderstack.com | RudderStack | developer,open-source,saas1084snowplow.io | Snowplow | developer,open-source,saas | GB1085criteo.com | Criteo | enterprise,media | FR1086taboola.com | Taboola | enterprise,media | IL1087outbrain.com | Outbrain | enterprise,media1088pubmatic.com | PubMatic | enterprise,media1089magnite.com | Magnite | enterprise,media1090indexexchange.com | Index Exchange | enterprise,media | CA1091openx.com | OpenX | enterprise,media1092adroll.com | AdRoll | enterprise,saas1093stackadapt.com | StackAdapt | enterprise,saas | CA1094branch.io | Branch | developer,saas1095appsflyer.com | AppsFlyer | developer,saas | IL1096adjust.com | Adjust | developer,saas | DE1097singular.net | Singular | developer,saas1098kochava.com | Kochava | developer,saas1099close.com | Close | enterprise,saas1100copper.com | Copper | enterprise,saas1101insightly.com | Insightly | enterprise,saas1102nutshell.com | Nutshell | enterprise,saas1103keap.com | Keap | enterprise,saas1104ontraport.com | Ontraport | enterprise,saas1105qualified.com | Qualified | enterprise,saas1106kayako.com | Kayako | enterprise,saas1107happyfox.com | HappyFox | enterprise,saas1108gainsight.com | Gainsight | enterprise,saas1109churnzero.com | ChurnZero | enterprise,saas1110totango.com | Totango | enterprise,saas1111vitally.io | Vitally | enterprise,saas1112planhat.com | Planhat | enterprise,saas | SE1113baremetrics.com | Baremetrics | finance,saas1114chartmogul.com | ChartMogul | finance,saas | DE1115alchemer.com | Alchemer | enterprise,saas1116delighted.com | Delighted | enterprise,saas1117medallia.com | Medallia | enterprise,saas1118qualaroo.com | Qualaroo | enterprise,saas1119bazaarvoice.com | Bazaarvoice | commerce,saas1120trustpilot.com | Trustpilot | consumer-tech,internet | DK1121reviews.io | REVIEWS.io | commerce,saas | GB1122okendo.io | Okendo | commerce,saas | AU1123judge.me | Judge.me | commerce,saas | GB1124g2.com | G2 | enterprise,internet1125agorapulse.com | Agorapulse | enterprise,saas | FR1126sendible.com | Sendible | enterprise,saas | GB1127socialbee.com | SocialBee | enterprise,saas | RO1128planoly.com | Planoly | enterprise,saas1129sketch.com | Sketch | developer,software | NL1130invisionapp.com | InVision | developer,saas1131zeplin.io | Zeplin | developer,saas1132marvelapp.com | Marvel | developer,saas | GB1133imagekit.io | ImageKit | developer,saas | IN1134sirv.com | Sirv | developer,saas | GB1135bynder.com | Bynder | enterprise,saas | NL1136brandfolder.com | Brandfolder | enterprise,saas1137canto.com | Canto | enterprise,saas1138frontify.com | Frontify | enterprise,saas | CH1139brightcove.com | Brightcove | media,saas1140jwplayer.com | JW Player | media,saas1141kaltura.com | Kaltura | media,saas1142acquia.com | Acquia | developer,saas1143higherlogic.com | Higher Logic | enterprise,saas1144khoros.com | Khoros | enterprise,saas1145on24.com | ON24 | enterprise,saas1146livestorm.co | Livestorm | enterprise,saas | FR1147demio.com | Demio | enterprise,saas1148bigmarker.com | BigMarker | enterprise,saas1149airmeet.com | Airmeet | enterprise,saas | IN1150seismic.com | Seismic | enterprise,saas1151highspot.com | Highspot | enterprise,saas1152showpad.com | Showpad | enterprise,saas | BE11536sense.com | 6sense | enterprise,saas1154demandbase.com | Demandbase | enterprise,saas1155bombora.com | Bombora | enterprise,saas1156cognism.com | Cognism | enterprise,saas | GB1157chilipiper.com | Chili Piper | enterprise,saas1158celonis.com | Celonis | enterprise,saas | DE1159planful.com | Planful | finance,saas1160venasolutions.com | Vena | finance,saas | CA1161mosaic.tech | Mosaic | finance,saas1162pigment.com | Pigment | finance,saas | FR1163blackline.com | BlackLine | finance,saas1164floqast.com | FloQast | finance,saas1165sovos.com | Sovos | finance,saas1166jaggaer.com | JAGGAER | enterprise,saas1167ivalua.com | Ivalua | enterprise,saas | FR1168ziphq.com | Zip | enterprise,saas1169egnyte.com | Egnyte | enterprise,saas1170citrix.com | Citrix | enterprise,software1171uipath.com | UiPath | enterprise,ai,saas1172automationanywhere.com | Automation Anywhere | enterprise,ai,saas1173c3.ai | C3 AI | enterprise,ai,saas1174palantir.com | Palantir | enterprise,ai1175sap-placeholder.invalid | skip | skip1176freshworks-placeholder.invalid | skip | skip1177# ── IoT, hardware, consumer devices, smart home ──1178particle.io | Particle | developer,infrastructure1179balena.io | balena | developer,infrastructure | GB1180losant.com | Losant | developer,infrastructure1181blynk.io | Blynk | developer,infrastructure1182thingsboard.io | ThingsBoard | developer,open-source1183ubidots.com | Ubidots | developer,infrastructure1184golioth.io | Golioth | developer,infrastructure1185memfault.com | Memfault | developer,infrastructure1186ring.com | Ring | consumer-tech1187arlo.com | Arlo | consumer-tech1188wyze.com | Wyze | consumer-tech1189ecobee.com | ecobee | consumer-tech | CA1190smartthings.com | SmartThings | consumer-tech1191philips-hue.com | Philips Hue | consumer-tech | NL1192tile.com | Tile | consumer-tech1193eufy.com | eufy | consumer-tech1194govee.com | Govee | consumer-tech | CN1195tp-link.com | TP-Link | consumer-tech,telecom | CN1196netgear.com | Netgear | consumer-tech,telecom1197ubnt.com | Ubiquiti | telecom,infrastructure | | status.ui.com1198eero.com | eero | consumer-tech,telecom1199meraki.com | Cisco Meraki | telecom,infrastructure1200tesla-placeholder.invalid | skip | skip1201rivian-placeholder.invalid | skip | skip1202chargepoint.com | ChargePoint | automotive,energy1203evgo.com | EVgo | automotive,energy1204electrifyamerica.com | Electrify America | automotive,energy1205flo.com | FLO | automotive,energy | CA1206enphase.com | Enphase | energy,consumer-tech1207solaredge.com | SolarEdge | energy | IL1208tado.com | tado° | energy,consumer-tech | DE1209octopus.energy | Octopus Energy | energy | GB1210ovoenergy.com | OVO Energy | energy | GB1211bulb-placeholder.invalid | skip | skip1212# ── weather, maps, geodata APIs ──1213openweathermap.org | OpenWeather | weather,developer | GB1214tomorrow.io | Tomorrow.io | weather,developer1215weatherapi.com | WeatherAPI | weather,developer1216here.com | HERE Technologies | transport,developer | NL1217tomtom.com | TomTom | transport,developer | NL1218maptiler.com | MapTiler | developer,saas | CH1219radar.com | Radar | developer,saas1220foursquare.com | Foursquare | developer,consumer-tech1221what3words.com | what3words | developer | GB1222smartystreets.com | Smarty | developer,saas1223loqate.com | Loqate | developer,saas | GB1224# ── government digital services, universities IT ──1225cloud.gov | cloud.gov (GSA) | government,cloud | | cloudgov.statuspage.io1226login.gov | Login.gov (GSA) | government,cyber1227payments.service.gov.uk | GOV.UK Pay | government,payments | GB | status.payments.service.gov.uk1228notifications.service.gov.uk | GOV.UK Notify | government | GB | status.notifications.service.gov.uk1229canada.ca | Government of Canada digital services | government | CA | status.canada.ca1230digital.canada.ca | Canadian Digital Service | government | CA | status.notification.canada.ca1231service.nsw.gov.au | Service NSW | government | AU1232digital.gov.au | Digital Transformation Agency | government | AU | status.digital.gov.au1233mygov.au-placeholder.invalid | skip | skip1234usds-placeholder.invalid | skip | skip1235grants.gov | Grants.gov | government1236sam.gov | SAM.gov | government1237nasa-placeholder.invalid | skip | skip1238huit.harvard.edu | Harvard University IT | education | | status.huit.harvard.edu1239its.umich.edu | University of Michigan ITS | education | | status.its.umich.edu1240it.cornell.edu | Cornell IT | education | | it.cornell.edu1241princeton.edu | Princeton University OIT | education | | status.princeton.edu1242yale.edu | Yale ITS | education | | status.yale.edu1243columbia.edu | Columbia University IT | education | | status.cuit.columbia.edu1244nyu.edu | NYU IT | education | | status.nyu.edu1245upenn.edu | Penn ISC | education | | status.upenn.edu1246cmu.edu | Carnegie Mellon Computing Services | education | | status.cmu.edu1247ucla.edu | UCLA IT Services | education | | status.it.ucla.edu1248ucsd.edu | UC San Diego ITS | education | | status.ucsd.edu1249ucdavis.edu | UC Davis IET | education | | status.ucdavis.edu1250uw.edu | University of Washington IT | education | | status.uw.edu1251utoronto.ca | University of Toronto ITS | education | CA | status.utoronto.ca1252ubc.ca | UBC IT | education | CA | status.it.ubc.ca1253mcgill.ca | McGill IT | education | CA | status.mcgill.ca1254uwaterloo.ca | University of Waterloo IST | education | CA | status.uwaterloo.ca1255ualberta.ca | University of Alberta IST | education | CA | status.ualberta.ca1256umontreal.ca | Université de Montréal TI | education | CA | statut.umontreal.ca1257uqam.ca | UQAM | education | CA | statut.uqam.ca1258ulaval.ca | Université Laval | education | CA | etat.ulaval.ca1259concordia.ca | Concordia University | education | CA | status.concordia.ca1260yorku.ca | York University UIT | education | CA | status.yorku.ca1261uottawa.ca | University of Ottawa | education | CA | status.uottawa.ca1262sfu.ca | Simon Fraser University IT | education | CA | status.sfu.ca1263ucalgary.ca | University of Calgary IT | education | CA | status.ucalgary.ca1264mun.ca | Memorial University | education | CA | status.mun.ca1265dal.ca | Dalhousie University | education | CA | status.dal.ca1266queensu.ca | Queen's University ITS | education | CA | status.queensu.ca1267uwo.ca | Western University | education | CA | status.uwo.ca1268mcmaster.ca | McMaster University | education | CA | status.mcmaster.ca1269ox.ac.uk | University of Oxford IT Services | education | GB | status.it.ox.ac.uk1270cam.ac.uk | University of Cambridge UIS | education | GB | status.uis.cam.ac.uk1271imperial.ac.uk | Imperial College London ICT | education | GB | status.imperial.ac.uk1272ucl.ac.uk | UCL ISD | education | GB | status.ucl.ac.uk1273ed.ac.uk | University of Edinburgh IS | education | GB | status.is.ed.ac.uk1274manchester.ac.uk | University of Manchester IT | education | GB | status.itservices.manchester.ac.uk1275kcl.ac.uk | King's College London IT | education | GB | status.kcl.ac.uk1276bristol.ac.uk | University of Bristol IT | education | GB | status.bristol.ac.uk1277gatech.edu | Georgia Tech OIT | education | | status.gatech.edu1278purdue.edu | Purdue IT | education | | status.purdue.edu1279wisc.edu | UW–Madison DoIT | education | | status.doit.wisc.edu1280illinois.edu | University of Illinois Technology Services | education | | status.illinois.edu1281umn.edu | University of Minnesota OIT | education | | status.umn.edu1282osu.edu | Ohio State OTDI | education | | status.osu.edu1283psu.edu | Penn State IT | education | | status.psu.edu1284utexas.edu | UT Austin ITS | education | | status.utexas.edu1285tamu.edu | Texas A&M Technology Services | education | | status.tamu.edu1286ufl.edu | University of Florida IT | education | | status.it.ufl.edu1287asu.edu | Arizona State University UTO | education | | status.asu.edu1288arizona.edu | University of Arizona UITS | education | | status.arizona.edu1289colorado.edu | CU Boulder OIT | education | | status.colorado.edu1290duke.edu | Duke OIT | education | | status.oit.duke.edu1291unc.edu | UNC ITS | education | | status.unc.edu1292virginia.edu | UVA ITS | education | | status.its.virginia.edu1293northwestern.edu | Northwestern IT | education | | status.northwestern.edu1294uchicago.edu | UChicago IT Services | education | | status.uchicago.edu1295jhu.edu | Johns Hopkins IT | education | | status.it.johnshopkins.edu1296bu.edu | Boston University IS&T | education | | status.bu.edu1297northeastern.edu | Northeastern ITS | education | | status.northeastern.edu1298rutgers.edu | Rutgers OIT | education | | status.rutgers.edu1299umd.edu | University of Maryland DIT | education | | status.umd.edu1300usc.edu | USC ITS | education | | status.usc.edu1301uci.edu | UC Irvine OIT | education | | status.uci.edu1302berkeley.edu | UC Berkeley IT | education | | status.berkeley.edu1303indiana.edu | Indiana University UITS | education | | status.iu.edu1304msu.edu | Michigan State IT | education | | status.msu.edu1305unimelb.edu.au | University of Melbourne | education | AU | status.unimelb.edu.au1306sydney.edu.au | University of Sydney ICT | education | AU | status.sydney.edu.au1307monash.edu | Monash University eSolutions | education | AU | status.monash.edu1308unsw.edu.au | UNSW IT | education | AU | status.unsw.edu.au1309uq.edu.au | University of Queensland ITS | education | AU | status.uq.edu.au1310auckland.ac.nz | University of Auckland | education | NZ | status.auckland.ac.nz1311ethz.ch | ETH Zurich IT Services | education | CH | status.ethz.ch1312epfl.ch | EPFL | education | CH | status.epfl.ch1313tum.de | TU Munich IT | education | DE | status.tum.de1314kuleuven.be | KU Leuven ICTS | education | BE | status.kuleuven.be1315tudelft.nl | TU Delft | education | NL | status.tudelft.nl1316uva.nl | University of Amsterdam | education | NL | status.uva.nl1317nus.edu.sg | National University of Singapore | education | SG | status.nus.edu.sg1318# ── misc SaaS long tail (Cloud 100 / YC) ──1319airtable-placeholder.invalid | skip | skip1320gong-placeholder.invalid | skip | skip1321verkada.com | Verkada | cyber,infrastructure1322samsara.com | Samsara | logistics,infrastructure1323motive.com | Motive | logistics,infrastructure1324geotab.com | Geotab | logistics,infrastructure | CA1325flock-placeholder.invalid | skip | skip1326scale-placeholder.invalid | skip | skip1327faire-placeholder.invalid | skip | skip1328whatnot.com | Whatnot | commerce,media1329flexport-placeholder.invalid | skip | skip1330convoy-placeholder.invalid | skip | skip1331loadsmart.com | Loadsmart | logistics,saas1332uberfreight-placeholder.invalid | skip | skip1333gem.com | Gem | enterprise,labour,saas1334rippling-placeholder.invalid | skip | skip1335lattice-placeholder.invalid | skip | skip1336vercel-placeholder.invalid | skip | skip1337webflow-placeholder.invalid | skip | skip1338grafana-placeholder.invalid | skip | skip1339redis-placeholder.invalid | skip | skip1340kong-placeholder.invalid | skip | skip1341apollo-placeholder.invalid | skip | skip1342cribl.io | Cribl | developer,saas1343teleport-placeholder.invalid | skip | skip1344tines.com | Tines | cyber,saas | IE1345torq.io | Torq | cyber,saas | IL1346swimlane.com | Swimlane | cyber,saas1347opal.dev | Opal | cyber,saas1348conductorone.com | ConductorOne | cyber,saas1349veza.com | Veza | cyber,saas1350oso-placeholder.invalid | skip | skip1351cerbos.dev | Cerbos | developer,cyber | GB1352permit.io | Permit.io | developer,cyber | IL1353warrant-placeholder.invalid | skip | skip1354descript-placeholder.invalid | skip | skip1355runway-placeholder.invalid | skip | skip1356gamma-placeholder.invalid | skip | skip1357tome.app | Tome | enterprise,ai,saas1358beautiful.ai | Beautiful.ai | enterprise,ai,saas1359notion-placeholder.invalid | skip | skip1360coda-placeholder.invalid | skip | skip1361clay.com | Clay | enterprise,ai,saas1362instantly.ai | Instantly | enterprise,saas1363lemlist.com | lemlist | enterprise,saas | FR1364smartlead.ai | Smartlead | enterprise,saas1365reply.io | Reply.io | enterprise,saas1366mailshake.com | Mailshake | enterprise,saas1367woodpecker.co | Woodpecker | enterprise,saas | PL1368hunter.io | Hunter | enterprise,saas | FR1369snov.io | Snov.io | enterprise,saas | UA1370seamless.ai | Seamless.AI | enterprise,saas1371rocketreach.co | RocketReach | enterprise,saas1372peopledatalabs.com | People Data Labs | enterprise,developer1373fullcontact-placeholder.invalid | skip | skip1374brandwatch-placeholder.invalid | skip | skip1375mention.com | Mention | enterprise,saas | FR1376awario.com | Awario | enterprise,saas1377talkwalker.com | Talkwalker | enterprise,saas | LU1378cision.com | Cision | enterprise,media1379prnewswire.com | PR Newswire | media,enterprise1380businesswire.com | Business Wire | media,enterprise1381globenewswire.com | GlobeNewswire | media,enterprise1382prweb.com | PRWeb | media,enterprise1383muckrack.com | Muck Rack | media,saas1384prezly.com | Prezly | media,saas | BE1385harmonic-placeholder.invalid | skip | skip1386crunchbase.com | Crunchbase | finance,internet1387pitchbook.com | PitchBook | finance,saas1388cbinsights.com | CB Insights | finance,saas1389dealroom.co | Dealroom | finance,saas | NL1390tegus-placeholder.invalid | skip | skip1391alphasense.com | AlphaSense | finance,saas1392kensho-placeholder.invalid | skip | skip1393docsend-placeholder.invalid | skip | skip1394carta-placeholder.invalid | skip | skip1395vanta-placeholder.invalid | skip | skip1396thoropass.com | Thoropass | cyber,saas1397sprinto.com | Sprinto | cyber,saas | IN1398scrut.io | Scrut Automation | cyber,saas | IN1399hyperproof.com | Hyperproof | cyber,saas1400auditboard.com | AuditBoard | enterprise,saas1401workiva.com | Workiva | enterprise,saas1402diligent.com | Diligent | enterprise,saas1403boardable-placeholder.invalid | skip | skip1404navex.com | NAVEX | enterprise,saas1405logicgate.com | LogicGate | enterprise,saas1406archer-placeholder.invalid | skip | skip1407riskonnect-placeholder.invalid | skip | skip1408resolver.com | Resolver | enterprise,saas | CA1409ideagen.com | Ideagen | enterprise,saas | GB1410intelex.com | Intelex | enterprise,saas | CA1411cority.com | Cority | enterprise,saas | CA1412benchling.com | Benchling | science,saas1413dotmatics.com | Dotmatics | science,saas1414labarchives.com | LabArchives | science,saas1415scispot-placeholder.invalid | skip | skip1416protocols.io | protocols.io | science,saas1417biorender.com | BioRender | science,saas | CA1418labguru-placeholder.invalid | skip | skip1419quartzy.com | Quartzy | science,saas1420opentrons.com | Opentrons | science1421strateos-placeholder.invalid | skip | skip1422emeraldcloudlab-placeholder.invalid | skip | skip1423veeva.com | Veeva Systems | pharma,saas1424medidata.com | Medidata | pharma,saas1425iqvia.com | IQVIA | pharma,saas1426castoredc.com | Castor | pharma,saas | NL1427florence-placeholder.invalid | skip | skip1428komodohealth.com | Komodo Health | health,saas1429flatiron.com | Flatiron Health | health,saas1430tempus.com | Tempus | health,ai1431color.com | Color | health143223andme.com | 23andMe | health,consumer-tech1433ancestry.com | Ancestry | consumer-tech1434myheritage.com | MyHeritage | consumer-tech | IL1435findagrave-placeholder.invalid | skip | skip1436familysearch.org | FamilySearch | consumer-tech,ngo1437# ── crypto exchanges & wallets (Canada / EU / Asia) & web3 infra ──1438coinhako.com | Coinhako | crypto | SG1439independentreserve.com | Independent Reserve | crypto | AU1440btcmarkets.net | BTC Markets | crypto | AU1441coinjar.com | CoinJar | crypto | AU1442swyftx.com | Swyftx | crypto | AU1443coinspot.com.au | CoinSpot | crypto | AU1444bitvavo.com | Bitvavo | crypto | NL1445bitstamp-placeholder.invalid | skip | skip1446zonda-placeholder.invalid | skip | skip1447upbit.com | Upbit | crypto | KR1448bithumb.com | Bithumb | crypto | KR1449bitflyer.com | bitFlyer | crypto | JP1450coincheck.com | Coincheck | crypto | JP1451wazirx.com | WazirX | crypto | IN1452coindcx.com | CoinDCX | crypto | IN1453coinswitch.co | CoinSwitch | crypto | IN1454alchemypay-placeholder.invalid | skip | skip1455moonpay.com | MoonPay | crypto,payments1456ramp.network | Ramp Network | crypto,payments | PL1457transak.com | Transak | crypto,payments1458banxa.com | Banxa | crypto,payments | AU1459simplex-placeholder.invalid | skip | skip1460bitpay.com | BitPay | crypto,payments1461coinpayments.net | CoinPayments | crypto,payments1462nowpayments.io | NOWPayments | crypto,payments1463blockdaemon.com | Blockdaemon | crypto,infrastructure1464figment.io | Figment | crypto,infrastructure | CA1465kiln.fi | Kiln | crypto,infrastructure | FR1466p2p.org | P2P.org | crypto,infrastructure1467stakefish-placeholder.invalid | skip | skip1468allnodes.com | Allnodes | crypto,infrastructure1469getblock.io | GetBlock | crypto,developer1470nownodes.io | NOWNodes | crypto,developer1471blockdaemon-placeholder.invalid | skip | skip1472helius.dev | Helius | crypto,developer1473triton-placeholder.invalid | skip | skip1474alchemy-placeholder.invalid | skip | skip1475tenderly.co | Tenderly | crypto,developer | RS1476blocknative.com | Blocknative | crypto,developer1477biconomy.io | Biconomy | crypto,developer1478gelato.network | Gelato | crypto,developer | CH1479pimlico.io | Pimlico | crypto,developer | GB1480zerodev-placeholder.invalid | skip | skip1481thirdweb.com | thirdweb | crypto,developer1482crossmint.com | Crossmint | crypto,developer1483reservoir.tools | Reservoir | crypto,developer1484zora.co | Zora | crypto,internet1485rarible.com | Rarible | crypto,internet1486looksrare-placeholder.invalid | skip | skip1487sound.xyz | Sound.xyz | crypto,media1488mirror.xyz | Mirror | crypto,media1489paragraph.xyz | Paragraph | crypto,media1490farcaster.xyz | Farcaster | crypto,consumer-tech1491lens.xyz | Lens Protocol | crypto,consumer-tech1492dydx.exchange | dYdX | crypto1493gmx.io | GMX | crypto1494curve.fi | Curve | crypto1495balancer.fi | Balancer | crypto1496pancakeswap.finance | PancakeSwap | crypto1497sushi.com | Sushi | crypto14981inch.io | 1inch | crypto1499paraswap.io | ParaSwap | crypto1500cowswap-placeholder.invalid | skip | skip1501makerdao-placeholder.invalid | skip | skip1502sky.money | Sky (MakerDAO) | crypto1503frax.finance | Frax | crypto1504rocketpool.net | Rocket Pool | crypto1505eigenlayer.xyz | EigenLayer | crypto1506across.to | Across | crypto1507stargate.finance | Stargate | crypto1508layerzero.network | LayerZero | crypto1509wormhole.com | Wormhole | crypto1510axelar.network | Axelar | crypto1511hop.exchange | Hop Protocol | crypto1512synapseprotocol.com | Synapse | crypto1513safe.global | Safe | crypto,developer | DE1514snapshot.org | Snapshot | crypto,developer1515tally.xyz | Tally | crypto,developer1516gitcoin.co | Gitcoin | crypto,open-source1517optimism.io | Optimism | crypto1518arbitrum.io | Arbitrum | crypto1519base.org | Base | crypto1520zksync.io | ZKsync | crypto1521starknet.io | Starknet | crypto1522scroll.io | Scroll | crypto1523linea.build | Linea | crypto1524mantle.xyz | Mantle | crypto1525blast.io | Blast | crypto1526polygon.technology | Polygon | crypto1527avax.network | Avalanche | crypto1528solana.com | Solana | crypto1529near.org | NEAR | crypto1530sui.io | Sui | crypto1531aptosfoundation.org | Aptos | crypto1532sei.io | Sei | crypto1533celestia.org | Celestia | crypto1534cosmos.network | Cosmos | crypto1535polkadot.network | Polkadot | crypto | CH1536cardano.org | Cardano | crypto1537algorand.co | Algorand | crypto1538tezos.com | Tezos | crypto | CH1539hedera.com | Hedera | crypto1540stellar.org | Stellar | crypto1541ripple.com | Ripple | crypto1542tron.network | TRON | crypto1543tonkeeper-placeholder.invalid | skip | skip1544ton.org | TON | crypto | CH1545internetcomputer.org | Internet Computer (DFINITY) | crypto | CH1546filecoin.io | Filecoin | crypto1547arweave.org | Arweave | crypto1548flow.com | Flow | crypto1549immutable.com | Immutable | crypto,gaming | AU1550ronin.network | Ronin | crypto,gaming1551# ── consumer apps, social, dating, fitness, misc ──1552bumble.com | Bumble | consumer-tech1553hinge.co | Hinge | consumer-tech1554match.com | Match | consumer-tech1555grindr.com | Grindr | consumer-tech1556nextdoor.com | Nextdoor | consumer-tech,internet1557meetup.com | Meetup | consumer-tech,internet1558strava-placeholder.invalid | skip | skip1559fitbit-placeholder.invalid | skip | skip1560trainerroad.com | TrainerRoad | health,consumer-tech1561wahoofitness.com | Wahoo | health,consumer-tech1562polar.com | Polar | health,consumer-tech | FI1563suunto.com | Suunto | health,consumer-tech | FI1564coros.com | COROS | health,consumer-tech1565eightsleep.com | Eight Sleep | health,consumer-tech1566tonal.com | Tonal | health,consumer-tech1567hydrow.com | Hydrow | health,consumer-tech1568ifit.com | iFIT | health,consumer-tech1569lifesum.com | Lifesum | health,consumer-tech | SE1570flo.health | Flo | health,consumer-tech | GB1571clue-placeholder.invalid | skip | skip1572betterhelp.com | BetterHelp | health,consumer-tech1573talkspace.com | Talkspace | health,consumer-tech1574cerebral.com | Cerebral | health,consumer-tech1575lyrahealth.com | Lyra Health | health,saas1576springhealth.com | Spring Health | health,saas1577modernhealth.com | Modern Health | health,saas1578ginger-placeholder.invalid | skip | skip1579omadahealth.com | Omada Health | health1580livongo-placeholder.invalid | skip | skip1581goodrx.com | GoodRx | health,consumer-tech1582capsule.com | Capsule | health,consumer-tech1583altoids-placeholder.invalid | skip | skip1584pillpack-placeholder.invalid | skip | skip1585rover.com | Rover | consumer-tech1586wag.co | Wag! | consumer-tech1587thumbtack.com | Thumbtack | consumer-tech1588angi.com | Angi | consumer-tech1589taskrabbit.com | Taskrabbit | consumer-tech1590care.com | Care.com | consumer-tech1591handy-placeholder.invalid | skip | skip1592houzz.com | Houzz | consumer-tech,real-estate1593apartments.com | Apartments.com | real-estate1594rentcafe-placeholder.invalid | skip | skip1595zumper.com | Zumper | real-estate1596opendoor.com | Opendoor | real-estate1597offerpad.com | Offerpad | real-estate1598compass.com | Compass | real-estate1599realtor.com | Realtor.com | real-estate1600rightmove.co.uk | Rightmove | real-estate | GB1601zoopla.co.uk | Zoopla | real-estate | GB1602realestate.com.au | realestate.com.au (REA) | real-estate | AU1603domain.com.au | Domain | real-estate | AU1604immobilienscout24.de | ImmoScout24 | real-estate | DE1605seloger.com | SeLoger | real-estate | FR1606idealista.com | idealista | real-estate | ES1607funda.nl | Funda | real-estate | NL1608carvana.com | Carvana | automotive,commerce1609carmax.com | CarMax | automotive,commerce1610vroom-placeholder.invalid | skip | skip1611autotrader.com | Autotrader | automotive,commerce1612cars.com | Cars.com | automotive,commerce1613cargurus.com | CarGurus | automotive,commerce1614copart.com | Copart | automotive,commerce1615kbb.com | Kelley Blue Book | automotive,media1616edmunds.com | Edmunds | automotive,media1617indeed.com | Indeed | labour,internet1618glassdoor.com | Glassdoor | labour,internet1619ziprecruiter.com | ZipRecruiter | labour,internet1620monster.com | Monster | labour,internet1621dice.com | Dice | labour,internet1622welcometothejungle.com | Welcome to the Jungle | labour,internet | FR1623seek.com.au | SEEK | labour,internet | AU1624reed.co.uk | Reed | labour,internet | GB1625totaljobs.com | Totaljobs | labour,internet | GB1626stepstone.de | StepStone | labour,internet | DE1627naukri.com | Naukri | labour,internet | IN1628upwork.com | Upwork | labour,internet1629fiverr.com | Fiverr | labour,internet | IL1630toptal.com | Toptal | labour,internet1631freelancer.com | Freelancer.com | labour,internet | AU1632peopleperhour.com | PeoplePerHour | labour,internet | GB1633malt.com | Malt | labour,internet | FR1634contra.com | Contra | labour,internet1635wetransfer.com | WeTransfer | consumer-tech,saas | NL1636fromsmash.com | Smash | consumer-tech,saas | FR1637filemail.com | Filemail | consumer-tech,saas | "NO"1638hightail.com | Hightail | enterprise,saas1639send-anywhere.com | Send Anywhere | consumer-tech,saas | KR1640visme.co | Visme | enterprise,saas1641piktochart.com | Piktochart | enterprise,saas | MY1642snappa.com | Snappa | enterprise,saas | CA1643kapwing.com | Kapwing | media,saas1644veed.io | VEED | media,saas | GB1645invideo.io | InVideo | media,saas,ai | IN1646animoto.com | Animoto | media,saas1647lumen5.com | Lumen5 | media,saas | CA1648pictory.ai | Pictory | media,saas,ai1649opus.pro | OpusClip | media,saas,ai1650capcut.com | CapCut | media,consumer-tech | SG1651canva-placeholder.invalid | skip | skip1652remove.bg | remove.bg | media,saas,ai | AT1653photoroom.com | Photoroom | media,saas,ai | FR1654cleanup-placeholder.invalid | skip | skip1655picsart.com | Picsart | media,consumer-tech1656befunky.com | BeFunky | media,consumer-tech1657pixlr.com | Pixlr | media,consumer-tech | SG1658fotor.com | Fotor | media,consumer-tech | CN1659# ── enterprise infrastructure & IT (Statuspage-heavy) ──1660solarwinds-placeholder.invalid | skip | skip1661manageengine.com | ManageEngine | enterprise,software | IN1662freshservice-placeholder.invalid | skip | skip1663sysaid.com | SysAid | enterprise,saas | IL1664ivanti.com | Ivanti | enterprise,cyber,software1665bmc.com | BMC Software | enterprise,software1666cherwell-placeholder.invalid | skip | skip1667topdesk.com | TOPdesk | enterprise,saas | NL1668halopsa.com | HaloPSA | enterprise,saas | GB1669syncromsp.com | Syncro | enterprise,saas1670pulseway.com | Pulseway | enterprise,saas | IE1671n-able.com | N-able | enterprise,saas1672auvik.com | Auvik | enterprise,saas | CA1673domotz.com | Domotz | enterprise,saas | GB1674liongard.com | Liongard | enterprise,saas1675itglue.com | IT Glue | enterprise,saas | CA1676hudu.com | Hudu | enterprise,saas1677passportal-placeholder.invalid | skip | skip1678scalepad.com | ScalePad | enterprise,saas | CA1679cove-placeholder.invalid | skip | skip1680axcient.com | Axcient | enterprise,saas1681acronis.com | Acronis | enterprise,cyber,software | CH1682arcserve.com | Arcserve | enterprise,software1683commvault.com | Commvault | enterprise,software1684rubrik.com | Rubrik | enterprise,cyber,software1685cohesity.com | Cohesity | enterprise,software1686zerto-placeholder.invalid | skip | skip1687nakivo.com | NAKIVO | enterprise,software1688msp360.com | MSP360 | enterprise,software1689spanning.com | Spanning | enterprise,saas1690afi.ai | Afi | enterprise,saas1691keepit.com | Keepit | enterprise,saas | DK1692avepoint.com | AvePoint | enterprise,saas1693sharegate.com | ShareGate | enterprise,saas | CA1694bittitan.com | BitTitan | enterprise,saas1695cloudm.io | CloudM | enterprise,saas | GB1696quest.com | Quest Software | enterprise,software1697sailpoint.com | SailPoint | cyber,saas1698saviynt.com | Saviynt | cyber,saas1699oktane-placeholder.invalid | skip | skip1700secret-double-octopus-placeholder.invalid | skip | skip1701hypr.com | HYPR | cyber,saas1702transmitsecurity.com | Transmit Security | cyber,saas | IL1703silverfort.com | Silverfort | cyber,saas | IL1704authomize-placeholder.invalid | skip | skip1705appomni.com | AppOmni | cyber,saas1706obsidiansecurity.com | Obsidian Security | cyber,saas1707valence-placeholder.invalid | skip | skip1708nudgesecurity.com | Nudge Security | cyber,saas1709grip-placeholder.invalid | skip | skip1710zluri.com | Zluri | enterprise,saas | IN1711torii.ai | Torii | enterprise,saas | IL1712productiv.com | Productiv | enterprise,saas1713vendr.com | Vendr | enterprise,saas1714tropic.app | Tropic | enterprise,saas1715cledara.com | Cledara | enterprise,saas | GB1716spendflo-placeholder.invalid | skip | skip1717"""17181719STATUS_JSON_PATHS = ["/api/v2/summary.json", "/summary.json", "/api/v1/summary"]1720CHALLENGE = re.compile(r"just a moment|cf-chl|attention required|access denied|captcha|enable javascript and cookies|verify you are human|ddos-guard|incapsula|_incapsula", re.I)172117221723class Bucket:1724 def __init__(self, rate: float) -> None:1725 self.rate, self.tokens, self.t, self.lock = rate, 1.0, time.monotonic(), threading.Lock()17261727 def take(self) -> None:1728 while True:1729 with self.lock:1730 now = time.monotonic()1731 self.tokens = min(1.0 + self.rate, self.tokens + (now - self.t) * self.rate)1732 self.t = now1733 if self.tokens >= 1:1734 self.tokens -= 11735 return1736 wait = (1 - self.tokens) / self.rate1737 time.sleep(wait)173817391740BUCKET = Bucket(RATE)1741_local = threading.local()1742_dns_cache: dict[str, bool] = {}1743_dns_lock = threading.Lock()174417451746def session() -> requests.Session:1747 s = getattr(_local, "s", None)1748 if s is None:1749 s = requests.Session()1750 s.headers.update({"User-Agent": UA, "Accept": "application/json, text/html;q=0.9, */*;q=0.8", "Accept-Language": "en"})1751 _local.s = s1752 return s175317541755def resolves(host: str) -> bool:1756 with _dns_lock:1757 if host in _dns_cache:1758 return _dns_cache[host]1759 try:1760 socket.getaddrinfo(host, 443, proto=socket.IPPROTO_TCP)1761 ok = True1762 except OSError:1763 ok = False1764 with _dns_lock:1765 _dns_cache[host] = ok1766 return ok176717681769def get(url: str) -> dict | None:1770 host = urlparse(url).hostname or ""1771 if not resolves(host):1772 return None1773 BUCKET.take()1774 try:1775 r = session().get(url, timeout=TIMEOUT, allow_redirects=True, stream=True)1776 body = b""1777 for chunk in r.iter_content(65536):1778 body += chunk1779 if len(body) > MAX_BODY:1780 break1781 r.close()1782 text = body.decode(r.encoding or "utf-8", errors="replace") if body else ""1783 return {"status": r.status_code, "ct": (r.headers.get("content-type") or "").lower(), "final": r.url, "text": text, "len": len(body)}1784 except requests.RequestException:1785 return None178617871788def json_shape(text: str) -> tuple[str, dict] | None:1789 t = text.lstrip(" \n\r\t")1790 if not t.startswith("{"):1791 return None1792 try:1793 j = json.loads(t)1794 except ValueError:1795 return None1796 if not isinstance(j, dict):1797 return None1798 page = j.get("page")1799 if isinstance(page, dict) and isinstance(j.get("status"), dict) and ("components" in j or "incidents" in j) and "id" in page:1800 return "statuspage", j1801 if isinstance(j.get("subpages"), list) and any(isinstance(p, dict) and "summary" in p for p in j["subpages"]):1802 return "incidentio", j1803 if isinstance(page, dict) and ("activeIncidents" in j or "activeMaintenances" in j or isinstance(page.get("status"), str)):1804 return "instatus", j1805 if "ongoing_incidents" in j or "page_title" in j:1806 return "incidentio", j1807 if isinstance(j.get("result"), dict) and "status_overall" in j["result"]:1808 return "statusio", j1809 return None181018111812def parse_candidates() -> list[dict]:1813 out, seen = [], set()1814 for ln in CANDIDATES.strip().splitlines():1815 ln = ln.strip()1816 if not ln or ln.startswith("#"):1817 continue1818 parts = [p.strip() for p in ln.split("|")]1819 domain = parts[0].lower()1820 if domain.endswith(".invalid") or domain in seen or len(parts) < 3:1821 continue1822 seen.add(domain)1823 country = (parts[3].strip('"') if len(parts) > 3 and parts[3] else "US")1824 hosts = [h.strip() for h in parts[4].split(",") if h.strip()] if len(parts) > 4 else []1825 out.append({"domain": domain, "name": parts[1], "categories": [c.strip() for c in parts[2].split(",")], "country": country, "hosts": hosts})1826 return out182718281829def load_registry() -> tuple[dict[str, str], set[str], set[str], set[str]]:1830 """id→domain, all sensor URLs, hosts of existing status sensors, all ids."""1831 id_domain: dict[str, str] = {}1832 urls: set[str] = set()1833 status_hosts: set[str] = set()1834 ids: set[str] = set()1835 for f in ["config/sources.yaml"] + sorted(glob.glob("config/sources.d/*.yaml")):1836 if f.endswith(FRAGMENT):1837 continue1838 d = yaml.safe_load(open(f)) or {}1839 for s in d.get("sources", []):1840 ids.add(s["id"])1841 if s.get("domain") and not s.get("extend"):1842 id_domain[s["id"]] = s["domain"].lower()1843 for sen in s.get("sensors", []) or []:1844 u = sen.get("url", "")1845 urls.add(u.rstrip("/"))1846 if sen.get("type") == "STATUSPAGE" or sen.get("connector") in ("statuspage", "statusjson"):1847 h = urlparse(u).hostname1848 if h:1849 status_hosts.add(h)1850 return id_domain, urls, status_hosts, ids185118521853def apex(host: str) -> str:1854 parts = host.split(".")1855 if len(parts) >= 3 and parts[-2] in ("co", "com", "org", "gov", "ac", "net", "edu") and len(parts[-1]) == 2:1856 return ".".join(parts[-3:])1857 return ".".join(parts[-2:])185818591860def brand(domain: str) -> str:1861 return apex(domain).split(".")[0]186218631864def probe_domain(c: dict, existing_urls: set[str], status_hosts: set[str]) -> dict:1865 d = c["domain"]1866 hits: list[dict] = []1867 notes: list[str] = []1868 probed_hosts: set[str] = set()18691870 def try_status_host(host: str, label: str) -> bool:1871 if host in probed_hosts:1872 return False1873 if host in status_hosts:1874 notes.append(f"{host}: already covered")1875 return True1876 probed_hosts.add(host)1877 if not resolves(host):1878 return False1879 for p in STATUS_JSON_PATHS:1880 url = f"https://{host}{p}"1881 if url in existing_urls:1882 return True1883 r = get(url)1884 if not r:1885 continue1886 if r["status"] == 200:1887 sh = json_shape(r["text"])1888 if sh:1889 flavor, j = sh1890 title = (j.get("page") or {}).get("name") if isinstance(j.get("page"), dict) else j.get("page_title", "")1891 hits.append({"kind": "status", "flavor": flavor, "url": url, "final": r["final"], "title": title or "", "via": label})1892 return True1893 r = get(f"https://{host}/")1894 if r and r["status"] == 200:1895 body = r["text"]1896 m = re.search(r"statusio_page_id['\"]?\s*[:=]\s*['\"]([0-9a-f]{20,})", body) or re.search(r"api\.status\.io/1\.0/status/([0-9a-f]{20,})", body)1897 if m:1898 url = f"https://api.status.io/1.0/status/{m.group(1)}"1899 if url in existing_urls:1900 return True1901 rr = get(url)1902 if rr and rr["status"] == 200 and json_shape(rr["text"]):1903 hits.append({"kind": "status", "flavor": "statusio", "url": url, "final": rr["final"], "title": "", "via": label})1904 return True1905 # Statuspage / Instatus embedded under another host (e.g. custom domain proxying)1906 m = re.search(r"https://([a-z0-9.-]+)/api/v2/summary\.json", body)1907 if m and m.group(1) not in probed_hosts:1908 return try_status_host(m.group(1), f"embedded in {host}")1909 fh = urlparse(r["final"]).hostname or host1910 if fh != host and fh not in probed_hosts:1911 return try_status_host(fh, f"redirect from {host}")1912 prov = "hund" if "hund.io" in body else "sorry" if "sorryapp" in body else "firehydrant" if "firehydrant" in body else "betterstack" if ("betteruptime" in body or "betterstack" in body) else "freshstatus" if "freshstatus" in body else "statuspage-html" if "statuspage.io" in body else "custom"1913 if CHALLENGE.search(body[:6000]):1914 prov = "challenge"1915 notes.append(f"{host}: {prov} status page, no machine-readable endpoint")1916 elif r and r["status"] in (403, 429, 503):1917 notes.append(f"{host}: http {r['status']}")1918 return False19191920 found = False1921 # 0. explicit hosts1922 for h in c.get("hosts", []):1923 if try_status_host(h, "explicit host"):1924 found = True1925 break1926 # 1. status.<apex>1927 if not found:1928 sh = f"status.{apex(d)}"1929 if sh in status_hosts:1930 notes.append(f"{sh}: already covered")1931 found = True1932 elif resolves(sh):1933 found = try_status_host(sh, "status host")1934 # 2. <domain>/status1935 if not found:1936 r = get(f"https://{d}/status") or get(f"https://www.{d}/status")1937 if r and r["status"] == 200:1938 fh = urlparse(r["final"]).hostname or d1939 if fh not in (d, f"www.{d}") and fh not in probed_hosts:1940 found = try_status_host(fh, f"redirect from {d}/status")1941 elif "text/html" in r["ct"]:1942 m = re.search(r"https://([a-z0-9.-]+)/api/v2/", r["text"])1943 if m and m.group(1) not in probed_hosts:1944 found = try_status_host(m.group(1), f"embedded in {d}/status")1945 # 3. <brand>.statuspage.io / <brand>.instatus.com1946 if not found:1947 b = brand(d)1948 for h in (f"{b}.statuspage.io", f"{b}.instatus.com"):1949 if try_status_host(h, "brand host"):1950 found = True1951 break1952 return {"domain": d, "hits": hits, "notes": notes}195319541955def cmd_probe(args: argparse.Namespace) -> None:1956 id_domain, urls, status_hosts, _ids = load_registry()1957 cands = parse_candidates()1958 if args.only:1959 only = set(args.only.split(","))1960 cands = [c for c in cands if c["domain"] in only]1961 done: set[str] = set()1962 if os.path.exists(args.out) and not args.fresh:1963 for ln in open(args.out):1964 try:1965 done.add(json.loads(ln)["domain"])1966 except ValueError:1967 pass1968 todo = [c for c in cands if c["domain"] not in done]1969 print(f"{len(cands)} candidates, {len(done)} already probed, {len(todo)} to go · ≤ {RATE} req/s", file=sys.stderr)1970 lock = threading.Lock()1971 t0 = time.time()1972 with open(args.out, "a") as out, ThreadPoolExecutor(max_workers=args.workers) as ex:1973 futs = {ex.submit(probe_domain, c, urls, status_hosts): c for c in todo}1974 for i, fut in enumerate(as_completed(futs), 1):1975 c = futs[fut]1976 try:1977 res = fut.result()1978 except Exception as e: # noqa: BLE0011979 res = {"domain": c["domain"], "hits": [], "notes": [f"probe error: {e}"]}1980 res.update({"name": c["name"], "categories": c["categories"], "country": c["country"]})1981 with lock:1982 out.write(json.dumps(res) + "\n")1983 out.flush()1984 kinds = ",".join(sorted({h["kind"] + (":" + h["flavor"] if h.get("flavor") else "") for h in res["hits"]})) or "-"1985 print(f"[{i}/{len(todo)} {time.time() - t0:5.0f}s] {c['domain']:28s} {kinds}", file=sys.stderr)198619871988def slug(s: str) -> str:1989 s = s.lower().replace("&", " and ")1990 s = re.sub(r"\(.*?\)", "", s)1991 s = re.sub(r"[^a-z0-9]+", "-", s).strip("-")1992 return s199319941995# Same organization declared earlier under another domain → extend instead of redeclaring.1996EXTEND_OVERRIDE: dict[str, str] = {}1997# Natural slug already taken by a different organization.1998NEW_ID_OVERRIDE: dict[str, str] = {"notifications.service.gov.uk": "govuk-notify", "payments.service.gov.uk": "govuk-pay", "ubnt.com": "ubiquiti", "sky.money": "sky-money", "flow.com": "flow-blockchain", "base.org": "base-chain", "sei.io": "sei-network",1999 "zip.co": "zip-au", "ziphq.com": "zip-procurement", "tally.so": "tally-forms", "tally.xyz": "tally-governance", "radar.com": "radar-geofencing",2000 "flo.com": "flo-ev", "flo.health": "flo-health", "color.com": "color-health", "column.com": "column-bank", "increase.com": "increase-bank",2001 "float.com": "float-scheduling", "hive.com": "hive-pm", "current.com": "current-bank", "dave.com": "dave-app", "route.com": "route-app",2002 "copper.com": "copper-crm", "copper.co": "copper-custody", "close.com": "close-crm", "grain.com": "grain-ai", "mention.com": "mention-app",2003 "clay.com": "clay-ai", "gem.com": "gem-recruiting", "one.nz": "one-nz", "free.fr": "free-mobile", "three.co.uk": "three-uk",2004 "o2.co.uk": "o2-uk", "ee.co.uk": "ee-uk", "sky.com": "sky-uk", "orange.com": "orange-telecom", "tim.it": "tim-italia", "match.com": "match-group"}200520062007# `<brand>.statuspage.io` / `<brand>.instatus.com` hits whose page title is generic or belongs to another company2008# (checked by hand on 2026-09-13): nx → "Nexo Systems", scylladb → "TestApp", phantom → "PhantomPay", workramp →2009# "Confirm LearnUp", copper / play / you / ally / dave / stripe / rainbow / route / fabric / rocket / convert / continue /2010# unified / ssl / launchpad / tally / hey / runn / sr / quillbot / leonardo / orca / jane → ambiguous one-word titles.2011DROP_BRAND_HOSTS = {"nx", "scylladb", "phantom", "workramp", "copper", "play", "you", "ally", "dave", "stripe", "rainbow", "route", "fabric",2012 "rocket", "convert", "continue", "unified", "ssl", "launchpad", "tally", "hey", "runn", "sr", "quillbot", "leonardo", "orca", "jane"}201320142015def cmd_gate(args: argparse.Namespace) -> None:2016 rows = [json.loads(ln) for ln in open(args.inp) if ln.strip()]2017 targets = [h["url"] for r in rows for h in r["hits"] if re.search(r"\.(statuspage\.io|instatus\.com)/", h["url"])]2018 drop: list[str] = []2019 for u in targets:2020 r = get(u)2021 if not r or r["status"] != 200:2022 drop.append(u)2023 continue2024 try:2025 j = json.loads(r["text"])2026 except ValueError:2027 drop.append(u)2028 continue2029 pg = j.get("page") or {}2030 comps = len(j.get("components") or [])2031 upd = str(pg.get("updated_at") or "")2032 legacy = "old" in (pg.get("url") or "").split("//")[-1].split("/")[0].split(".")[0]2033 if comps == 0 or (upd[:4].isdigit() and upd[:10] < "2024-09-01") or legacy:2034 drop.append(u)2035 print(f"drop {u} components={comps} updated_at={upd[:10]} url={pg.get('url', '')}", file=sys.stderr)2036 json.dump(drop, open(args.drop, "w"))2037 print(f"{len(drop)} of {len(targets)} brand-host hits dropped → {args.drop}", file=sys.stderr)203820392040def cmd_emit(args: argparse.Namespace) -> None:2041 id_domain, urls, status_hosts, ids = load_registry()2042 gated: set[str] = set(json.load(open(args.drop))) if args.drop and os.path.exists(args.drop) else set()2043 domain_id = dict(EXTEND_OVERRIDE)2044 for i, dom in id_domain.items():2045 domain_id.setdefault(dom, i)2046 domain_id.setdefault(apex(dom), i)2047 rows = [json.loads(ln) for ln in open(args.inp) if ln.strip()]2048 rows.sort(key=lambda r: r["domain"])2049 used_urls: set[str] = set()2050 new_ids: set[str] = set()2051 entries: dict[str, tuple[list[str], list[str]]] = {}2052 n_status = 02053 for r in rows:2054 if not r["hits"]:2055 continue2056 d = r["domain"]2057 existing = domain_id.get(d) or domain_id.get(f"www.{d}") or (domain_id.get(apex(d)) if apex(d) not in ("service.gov.uk", "gov.uk", "gc.ca", "canada.ca") else None)2058 sensors: list[str] = []2059 for h in r["hits"]:2060 u = h["url"].rstrip("/")2061 if u in urls or u in used_urls or h["final"].rstrip("/") in urls:2062 continue2063 if urlparse(u).hostname in status_hosts:2064 continue2065 if h.get("via") == "brand host" and (urlparse(u).hostname or "").split(".")[0] in DROP_BRAND_HOSTS:2066 continue2067 if h["url"] in gated:2068 continue2069 used_urls.add(u)2070 if h["kind"] == "status":2071 n_status += 12072 if h["flavor"] == "statuspage":2073 sensors.append(f' - {{ name: status, url: "{h["url"]}", type: STATUSPAGE, connector: statuspage, tier: S }}')2074 else:2075 label = {"instatus": "instatus", "incidentio": "incident.io", "statusio": "status.io"}[h["flavor"]]2076 sensors.append(f' - {{ name: status ({label}), url: "{h["url"]}", type: STATUSPAGE, connector: statusjson, tier: S }}')2077 if not sensors:2078 continue2079 seen_names: dict[str, int] = {}2080 fixed = []2081 for s in sensors:2082 m = re.match(r" - \{ name: ([^,]+),", s)2083 nm = m.group(1)2084 if nm in seen_names:2085 seen_names[nm] += 12086 s = s.replace(f"name: {nm},", f"name: {nm} {seen_names[nm]},", 1)2087 else:2088 seen_names[nm] = 12089 fixed.append(s)2090 if existing:2091 head = [f" - id: {existing}", " extend: true"]2092 if r.get("country"):2093 cc = r["country"]2094 head.append(f' country: {json.dumps(cc) if cc in ("NO",) else cc}')2095 head.append(" sensors:")2096 key = existing2097 else:2098 sid = NEW_ID_OVERRIDE.get(d) or slug(r["name"]) or slug(d.split(".")[0])2099 if sid in ids or sid in new_ids:2100 sid = slug(d.replace(".", "-"))2101 if sid in ids or sid in new_ids:2102 sid = f"{sid}-status"2103 new_ids.add(sid)2104 cats = ", ".join(r["categories"])2105 cc = r["country"]2106 head = [f" - id: {sid}", f" name: {r['name']}", f" domain: {d}", f" categories: [{cats}]", " tier: S",2107 f" country: {json.dumps(cc) if cc in ('NO',) else cc}", " discover: { rss: true, status: true }", " sensors:"]2108 key = sid2109 if key in entries:2110 entries[key][1].extend(fixed)2111 else:2112 entries[key] = (head, list(fixed))2113 print(f"# config/sources.d/{FRAGMENT} — HEADER TO BE WRITTEN BY HAND ({n_status} status sensors, {len(entries)} organizations)")2114 print("sources:")2115 for head, sens in entries.values():2116 for ln in head:2117 print(ln)2118 for s in sens:2119 print(s)2120 blocked = [n for r in rows for n in r["notes"] if "already covered" not in n]2121 print("# ── probe notes (not sensors) ──", file=sys.stderr)2122 for n in sorted(set(blocked)):2123 print(f"# {n}", file=sys.stderr)212421252126def main() -> None:2127 ap = argparse.ArgumentParser()2128 sub = ap.add_subparsers(dest="cmd", required=True)2129 p = sub.add_parser("probe")2130 p.add_argument("--out", default="/tmp/probe58.jsonl")2131 p.add_argument("--only")2132 p.add_argument("--fresh", action="store_true")2133 p.add_argument("--workers", type=int, default=12)2134 p.set_defaults(fn=cmd_probe)2135 g = sub.add_parser("gate")2136 g.add_argument("--in", dest="inp", default="/tmp/probe58.jsonl")2137 g.add_argument("--drop", default="/tmp/probe58-drop.json")2138 g.set_defaults(fn=cmd_gate)2139 e = sub.add_parser("emit")2140 e.add_argument("--in", dest="inp", default="/tmp/probe58.jsonl")2141 e.add_argument("--drop", default="/tmp/probe58-drop.json")2142 e.set_defaults(fn=cmd_emit)2143 a = ap.parse_args()2144 a.fn(a)214521462147if __name__ == "__main__":2148 main()2149