#!/usr/bin/env python3 """Wave 3 of the status-page probe (config/sources.d/58-status-pages-wave3.yaml). Same engine as scripts/gen-status-probe.py but restricted to machine-readable STATUS pages (Atlassian Statuspage `/api/v2/summary.json`, Instatus `/summary.json`, incident.io `/api/v1/summary`, Status.io `api.status.io/1.0/status/` sniffed from the HTML) and fed with a fresh list of ≥ 900 services that were not probed in waves 1–2 (files 23 / 34 / 41 / 48): Forbes Cloud 100 / YC companies, fintech & brokers, crypto infrastructure, dev tools, e-commerce & marketplaces, gaming, telecom, media, travel, HR / legal / health / education SaaS, IoT, government digital services and university IT status pages. For every candidate the probe tries, in order: `status.` (+ the host its root redirects to), `/status` (redirect target or embedded Statuspage host), any explicit hosts given in the 5th column, then `.statuspage.io` and `.instatus.com`. Hosts already carrying a STATUSPAGE sensor anywhere in config/ are never probed again; URLs already in config/ are never emitted. Usage: python3 scripts/gen-status-probe3.py probe [--out /tmp/probe58.jsonl] [--workers 12] [--only a.com,b.com] python3 scripts/gen-status-probe3.py gate [--in /tmp/probe58.jsonl] [--drop /tmp/probe58-drop.json] python3 scripts/gen-status-probe3.py emit [--in /tmp/probe58.jsonl] [--drop /tmp/probe58-drop.json] > config/sources.d/58-status-pages-wave3.yaml `gate` re-fetches every hit that lives on a `.statuspage.io` / `.instatus.com` host and writes the URLs to drop: pages with 0 components, Statuspage `page.updated_at` older than 2024-09-01 (abandoned pages) or a legacy `page.url` (e.g. deepl.statuspage.io → old.deeplstatus.com). On 2026-09-13 this removed 153 of 245 such hits — brand hosts are a weak signal (squatted, test or abandoned pages); `status.` hosts are taken as authoritative. Then: node node_modules/tsx/dist/cli.mjs apps/engine/src/validate.ts config/sources.d/58-status-pages-wave3.yaml --concurrency 6 --json /tmp/r58.json --quiet && python3 scripts/prune-fragment.py … --drop-warn Politeness: global token bucket (≤ 6 req/s across all hosts — every request goes to a different host), 15 s timeout, ≤ 1 MB per body, UA "WebSensor registry probe (contact@websensor.io)". """ from __future__ import annotations import argparse import glob import json import os import re import socket import sys import threading import time from concurrent.futures import ThreadPoolExecutor, as_completed from urllib.parse import urlparse import requests import yaml UA = "WebSensor registry probe (contact@websensor.io)" TIMEOUT = 15 MAX_BODY = 1_000_000 RATE = 6.0 FRAGMENT = "58-status-pages-wave3.yaml" # domain | Name | categories | country (default US) | extra status hosts (comma-separated, optional) CANDIDATES = """ # ── productivity, notes, time tracking, forms, e-signature, scheduling ── clockify.me | Clockify | enterprise,saas | RS toggl.com | Toggl | enterprise,saas | EE getharvest.com | Harvest | enterprise,saas hubstaff.com | Hubstaff | enterprise,saas timedoctor.com | Time Doctor | enterprise,saas everhour.com | Everhour | enterprise,saas nuclino.com | Nuclino | enterprise,saas | DE slite.com | Slite | enterprise,saas | FR getguru.com | Guru | enterprise,saas tettra.com | Tettra | enterprise,saas document360.com | Document360 | enterprise,saas helpjuice.com | Helpjuice | enterprise,saas archbee.com | Archbee | developer,saas tldv.io | tl;dv | enterprise,saas,ai | DE fathom.video | Fathom | enterprise,saas,ai avoma.com | Avoma | enterprise,saas,ai grain.com | Grain | enterprise,saas,ai reclaim.ai | Reclaim.ai | enterprise,saas,ai usemotion.com | Motion | enterprise,saas,ai sunsama.com | Sunsama | consumer-tech,saas akiflow.com | Akiflow | consumer-tech,saas | IT getclockwise.com | Clockwise | enterprise,saas superhuman.com | Superhuman | enterprise,saas hey.com | HEY | consumer-tech,saas missiveapp.com | Missive | enterprise,saas | CA shortwave.com | Shortwave | consumer-tech,saas,ai mem.ai | Mem | consumer-tech,saas,ai reflect.app | Reflect | consumer-tech,saas roamresearch.com | Roam Research | consumer-tech,saas anytype.io | Anytype | consumer-tech,open-source | CH capacities.io | Capacities | consumer-tech,saas | DE tana.inc | Tana | consumer-tech,saas | NO proofhub.com | ProofHub | enterprise,saas | IN niftypm.com | Nifty | enterprise,saas hive.com | Hive | enterprise,saas zenhub.com | ZenHub | developer,saas | CA businessmap.io | Businessmap | enterprise,saas | BG teamgantt.com | TeamGantt | enterprise,saas float.com | Float | enterprise,saas | GB resourceguruapp.com | Resource Guru | enterprise,saas | GB runn.io | Runn | enterprise,saas | NZ workvivo.com | Workvivo | enterprise,saas | IE staffbase.com | Staffbase | enterprise,saas | DE simpplr.com | Simpplr | enterprise,saas lumapps.com | LumApps | enterprise,saas | FR happeo.com | Happeo | enterprise,saas | FI joinblink.com | Blink | enterprise,saas | GB process.st | Process Street | enterprise,saas tallyfy.com | Tallyfy | enterprise,saas kissflow.com | Kissflow | enterprise,saas | IN pipefy.com | Pipefy | enterprise,saas | BR nintex.com | Nintex | enterprise,saas appian.com | Appian | enterprise,saas pega.com | Pegasystems | enterprise,saas outsystems.com | OutSystems | developer,saas | PT mendix.com | Mendix | developer,saas | NL quickbase.com | Quickbase | enterprise,saas knack.com | Knack | developer,saas caspio.com | Caspio | developer,saas ninox.com | Ninox | developer,saas | DE stackby.com | Stackby | developer,saas | IN smartsuite.com | SmartSuite | enterprise,saas baserow.io | Baserow | developer,open-source,saas | NL nocodb.com | NocoDB | developer,open-source seatable.io | SeaTable | developer,saas | DE jotform.com | Jotform | enterprise,saas formstack.com | Formstack | enterprise,saas paperform.co | Paperform | enterprise,saas | AU fillout.com | Fillout | enterprise,saas tally.so | Tally | enterprise,saas | BE cognitoforms.com | Cognito Forms | enterprise,saas wufoo.com | Wufoo | enterprise,saas 123formbuilder.com | 123FormBuilder | enterprise,saas | RO formassembly.com | FormAssembly | enterprise,saas involve.me | involve.me | enterprise,saas | AT feathery.io | Feathery | developer,saas proposify.com | Proposify | enterprise,saas | CA qwilr.com | Qwilr | enterprise,saas | AU betterproposals.io | Better Proposals | enterprise,saas | GB conga.com | Conga | enterprise,saas juro.com | Juro | enterprise,legal,saas | GB contractbook.com | Contractbook | enterprise,legal,saas | DK spotdraft.com | SpotDraft | enterprise,legal,saas | IN signnow.com | SignNow | enterprise,saas signeasy.com | Signeasy | enterprise,saas xodo.com | Xodo | enterprise,saas | CA onespan.com | OneSpan | enterprise,cyber,saas | CA yousign.com | Yousign | enterprise,saas | FR oneflow.com | Oneflow | enterprise,saas | SE scrive.com | Scrive | enterprise,saas | SE acuityscheduling.com | Acuity Scheduling | enterprise,saas youcanbook.me | YouCanBookMe | enterprise,saas | GB setmore.com | Setmore | enterprise,saas simplybook.me | SimplyBook.me | enterprise,saas | CY appointlet.com | Appointlet | enterprise,saas vcita.com | vcita | enterprise,saas | IL conceptboard.com | Conceptboard | enterprise,saas | DE stormboard.com | Stormboard | enterprise,saas | CA klaxoon.com | Klaxoon | enterprise,saas | FR meister.co | Meister (MindMeister) | enterprise,saas | AT xmind.app | Xmind | consumer-tech,saas | CN creately.com | Creately | enterprise,saas | AU nulab.com | Nulab | developer,saas | JP vidyard.com | Vidyard | enterprise,media,saas | CA screencastify.com | Screencastify | education,saas techsmith.com | TechSmith | consumer-tech,software descript.com | Descript | media,saas,ai riverside.fm | Riverside | media,saas | IL zencastr.com | Zencastr | media,saas podbean.com | Podbean | media,saas buzzsprout.com | Buzzsprout | media,saas transistor.fm | Transistor | media,saas simplecast.com | Simplecast | media,saas captivate.fm | Captivate | media,saas | GB libsyn.com | Libsyn | media,saas acast.com | Acast | media,saas | SE megaphone.fm | Megaphone | media,saas art19.com | ART19 | media,saas castos.com | Castos | media,saas redcircle.com | RedCircle | media,saas spreaker.com | Spreaker | media,saas audioboom.com | Audioboom | media,saas | GB quillbot.com | QuillBot | consumer-tech,saas,ai languagetool.org | LanguageTool | consumer-tech,saas | DE prowritingaid.com | ProWritingAid | consumer-tech,saas | GB jasper.ai | Jasper | enterprise,ai,saas copy.ai | Copy.ai | enterprise,ai,saas writesonic.com | Writesonic | enterprise,ai,saas anyword.com | Anyword | enterprise,ai,saas | IL frase.io | Frase | enterprise,ai,saas surferseo.com | Surfer | enterprise,saas | PL clearscope.io | Clearscope | enterprise,saas marketmuse.com | MarketMuse | enterprise,saas seranking.com | SE Ranking | enterprise,saas | GB mangools.com | Mangools | enterprise,saas | SK spyfu.com | SpyFu | enterprise,saas serpstat.com | Serpstat | enterprise,saas | UA screamingfrog.co.uk | Screaming Frog | enterprise,software | GB botify.com | Botify | enterprise,saas | FR conductor.com | Conductor | enterprise,saas brightedge.com | BrightEdge | enterprise,saas lumar.io | Lumar | enterprise,saas | GB oncrawl.com | Oncrawl | enterprise,saas | FR sistrix.com | SISTRIX | enterprise,saas | DE sembly.ai | Sembly AI | enterprise,ai,saas read.ai | Read AI | enterprise,ai,saas krisp.ai | Krisp | consumer-tech,ai,saas # ── developer tools, CI, testing, observability, incident tooling ── gitkraken.com | GitKraken | developer,software zed.dev | Zed | developer,open-source tabnine.com | Tabnine | developer,ai,saas | IL supermaven.com | Supermaven | developer,ai,saas continue.dev | Continue | developer,ai,open-source gitea.com | Gitea | developer,open-source | CN codeberg.org | Codeberg | developer,open-source | DE sr.ht | SourceHut | developer,open-source launchpad.net | Launchpad | developer,open-source | GB gocd.org | GoCD | developer,open-source drone.io | Drone | developer,open-source woodpecker-ci.org | Woodpecker CI | developer,open-source tekton.dev | Tekton | developer,open-source spinnaker.io | Spinnaker | developer,open-source fluxcd.io | Flux | developer,open-source dagger.io | Dagger | developer,open-source,saas earthly.dev | Earthly | developer,saas nx.dev | Nx | developer,open-source,saas bazel.build | Bazel | developer,open-source gradle.com | Gradle Inc. | developer,saas depot.dev | Depot | developer,saas blacksmith.sh | Blacksmith | developer,saas namespace.so | Namespace | developer,saas ubicloud.com | Ubicloud | cloud,open-source runs-on.com | RunsOn | developer,saas warpbuild.com | WarpBuild | developer,saas cirrus-ci.org | Cirrus CI | developer,saas appveyor.com | AppVeyor | developer,saas flagsmith.com | Flagsmith | developer,open-source,saas | GB getunleash.io | Unleash | developer,open-source,saas | NO configcat.com | ConfigCat | developer,saas | HU growthbook.io | GrowthBook | developer,open-source,saas devcycle.com | DevCycle | developer,saas | CA geteppo.com | Eppo | developer,saas kameleoon.com | Kameleoon | enterprise,saas | FR convert.com | Convert | enterprise,saas raygun.com | Raygun | developer,saas | NZ airbrake.io | Airbrake | developer,saas honeybadger.io | Honeybadger | developer,saas trackjs.com | TrackJS | developer,saas appsignal.com | AppSignal | developer,saas | NL scoutapm.com | Scout APM | developer,saas instabug.com | Instabug | developer,saas embrace.io | Embrace | developer,saas coralogix.com | Coralogix | developer,saas | IL mezmo.com | Mezmo | developer,saas solarwinds.com | SolarWinds | enterprise,software graylog.org | Graylog | developer,open-source,saas observeinc.com | Observe | developer,saas groundcover.com | groundcover | developer,saas | IL middleware.io | Middleware | developer,saas signoz.io | SigNoz | developer,open-source,saas uptrace.dev | Uptrace | developer,open-source,saas hyperdx.io | HyperDX | developer,open-source,saas openobserve.ai | OpenObserve | developer,open-source,saas victoriametrics.com | VictoriaMetrics | developer,open-source,saas last9.io | Last9 | developer,saas | IN dash0.com | Dash0 | developer,saas | DE xmatters.com | xMatters | developer,saas everbridge.com | Everbridge | enterprise,saas ilert.com | ilert | developer,saas | DE spike.sh | Spike.sh | developer,saas zenduty.com | Zenduty | developer,saas | IN allquiet.app | All Quiet | developer,saas | DE signl4.com | SIGNL4 | developer,saas | DE blameless.com | Blameless | developer,saas instatus.com | Instatus | developer,saas hund.io | Hund | developer,saas sorryapp.com | Sorry™ | developer,saas | GB statusgator.com | StatusGator | developer,saas ohdear.app | Oh Dear | developer,saas | BE hyperping.com | Hyperping | developer,saas | FR freshping.io | Freshping | developer,saas site24x7.com | Site24x7 | developer,saas | IN uptime.com | Uptime.com | developer,saas updown.io | updown.io | developer,saas | FR insomnia.rest | Insomnia | developer,open-source hoppscotch.io | Hoppscotch | developer,open-source,saas | IN rapidapi.com | RapidAPI | developer,saas apidog.com | Apidog | developer,saas | SG usebruno.com | Bruno | developer,open-source | IN redocly.com | Redocly | developer,saas bump.sh | Bump.sh | developer,saas | FR scalar.com | Scalar | developer,open-source,saas smartbear.com | SmartBear | developer,software mabl.com | mabl | developer,saas testim.io | Testim | developer,saas | IL functionize.com | Functionize | developer,saas katalon.com | Katalon | developer,saas testrail.com | TestRail | developer,saas qase.io | Qase | developer,saas testmo.com | Testmo | developer,saas getxray.app | Xray | developer,saas | PT tricentis.com | Tricentis | developer,saas | AT perforce.com | Perforce | developer,software headspin.io | HeadSpin | developer,saas kobiton.com | Kobiton | developer,saas applitools.com | Applitools | developer,saas chromatic.com | Chromatic | developer,saas bun.sh | Bun | developer,open-source deno.com | Deno | developer,open-source,saas jsdelivr.com | jsDelivr | developer,open-source | PL unpkg.com | unpkg | developer,open-source esm.sh | esm.sh | developer,open-source dev.to | DEV Community | developer,media hashnode.com | Hashnode | developer,media nordpass.com | NordPass | cyber,consumer-tech | PA enpass.io | Enpass | cyber,consumer-tech | IN roboform.com | RoboForm | cyber,consumer-tech passbolt.com | Passbolt | cyber,open-source | LU clicksend.com | ClickSend | developer,telecom,saas | AU textmagic.com | Textmagic | developer,telecom,saas | GB simpletexting.com | SimpleTexting | enterprise,telecom,saas telesign.com | Telesign | developer,telecom,cyber resend.com | Resend | developer,saas loops.so | Loops | developer,saas mailersend.com | MailerSend | developer,saas | LT elasticemail.com | Elastic Email | developer,saas | CA socketlabs.com | SocketLabs | developer,saas smtp2go.com | SMTP2GO | developer,saas | NZ sendpulse.com | SendPulse | enterprise,saas | UA moosend.com | Moosend | enterprise,saas | GR benchmarkemail.com | Benchmark Email | enterprise,saas emailoctopus.com | EmailOctopus | enterprise,saas | GB sender.net | Sender | enterprise,saas | LT mailmodo.com | Mailmodo | enterprise,saas | IN onelogin.com | OneLogin | cyber,saas pingidentity.com | Ping Identity | cyber,saas jumpcloud.com | JumpCloud | cyber,saas fusionauth.io | FusionAuth | developer,cyber,saas ory.sh | Ory | developer,open-source,cyber | DE goauthentik.io | authentik | developer,open-source,cyber zitadel.com | Zitadel | developer,open-source,cyber | CH logto.io | Logto | developer,open-source,cyber hanko.io | Hanko | developer,open-source,cyber | DE magic.link | Magic | developer,crypto,saas dynamic.xyz | Dynamic | developer,crypto,saas privy.io | Privy | developer,crypto,saas web3auth.io | Web3Auth | developer,crypto,saas | SG inngest.com | Inngest | developer,saas mergent.co | Mergent | developer,saas lob.com | Lob | developer,saas postgrid.com | PostGrid | developer,saas | CA cloudconvert.com | CloudConvert | developer,saas | DE zamzar.com | Zamzar | consumer-tech,saas | GB convertio.co | Convertio | consumer-tech,saas deepl.com | DeepL | ai,consumer-tech,saas | DE lokalise.com | Lokalise | developer,saas | LV crowdin.com | Crowdin | developer,saas | EE phrase.com | Phrase | developer,saas | DE transifex.com | Transifex | developer,saas smartling.com | Smartling | enterprise,saas weglot.com | Weglot | developer,saas | FR localazy.com | Localazy | developer,saas | CZ onfleet.com | Onfleet | logistics,saas bringg.com | Bringg | logistics,saas | IL certn.co | Certn | enterprise,saas | CA sterlingcheck.com | Sterling | enterprise,saas tremendous.com | Tremendous | payments,saas flatfile.com | Flatfile | developer,saas oneschema.co | OneSchema | developer,saas nylas.com | Nylas | developer,saas merge.dev | Merge | developer,saas apideck.com | Apideck | developer,saas | BE tryfinch.com | Finch | developer,saas rutter.com | Rutter | developer,payments,saas codat.io | Codat | developer,finance,saas | GB unified.to | Unified.to | developer,saas | CA smartcar.com | Smartcar | developer,automotive,saas ayrshare.com | Ayrshare | developer,saas bannerbear.com | Bannerbear | developer,saas | SG liveblocks.io | Liveblocks | developer,saas | FR partykit.io | PartyKit | developer,open-source zeplo.io | Zeplo | developer,saas | GB mux.com | Mux | developer,media,saas # ── AI infra & ML tooling (status pages only) ── anyscale.com | Anyscale | ai,developer,saas deepinfra.com | DeepInfra | ai,developer,saas hyperbolic.xyz | Hyperbolic | ai,developer,saas novita.ai | Novita AI | ai,developer,saas nebius.com | Nebius | ai,cloud | NL crusoe.ai | Crusoe | ai,cloud vast.ai | Vast.ai | ai,cloud paperspace.com | Paperspace | ai,cloud predibase.com | Predibase | ai,developer,saas cerebrium.ai | Cerebrium | ai,developer,saas | GB beam.cloud | Beam | ai,developer,saas mystic.ai | Mystic | ai,developer,saas | GB clearml.com | ClearML | ai,developer,saas valohai.com | Valohai | ai,developer,saas | FI iterative.ai | Iterative (DVC) | ai,developer,open-source hopsworks.ai | Hopsworks | ai,developer,saas | SE arize.com | Arize AI | ai,developer,saas whylabs.ai | WhyLabs | ai,developer,saas fiddler.ai | Fiddler AI | ai,developer,saas rungalileo.io | Galileo | ai,developer,saas humanloop.com | Humanloop | ai,developer,saas | GB braintrust.dev | Braintrust | ai,developer,saas langfuse.com | Langfuse | ai,developer,open-source,saas | DE helicone.ai | Helicone | ai,developer,open-source,saas portkey.ai | Portkey | ai,developer,saas promptlayer.com | PromptLayer | ai,developer,saas traceloop.com | Traceloop | ai,developer,saas | IL labelbox.com | Labelbox | ai,developer,saas snorkel.ai | Snorkel AI | ai,developer,saas v7labs.com | V7 | ai,developer,saas | GB encord.com | Encord | ai,developer,saas | GB superannotate.com | SuperAnnotate | ai,developer,saas humansignal.com | HumanSignal (Label Studio) | ai,developer,open-source,saas datasaur.ai | Datasaur | ai,developer,saas character.ai | Character.AI | ai,consumer-tech poe.com | Poe | ai,consumer-tech you.com | You.com | ai,consumer-tech phind.com | Phind | ai,developer,saas assemblyai.com | AssemblyAI | ai,developer,saas deepgram.com | Deepgram | ai,developer,saas speechmatics.com | Speechmatics | ai,developer,saas | GB rev.com | Rev | ai,media,saas play.ht | Play.ht | ai,media,saas murf.ai | Murf AI | ai,media,saas | IN synthesia.io | Synthesia | ai,media,saas | GB heygen.com | HeyGen | ai,media,saas d-id.com | D-ID | ai,media,saas | IL pika.art | Pika | ai,media,saas lumalabs.ai | Luma AI | ai,media,saas ideogram.ai | Ideogram | ai,media,saas | CA leonardo.ai | Leonardo.Ai | ai,media,saas | AU krea.ai | Krea | ai,media,saas civitai.com | Civitai | ai,media,internet suno.com | Suno | ai,media,saas udio.com | Udio | ai,media,saas voyageai.com | Voyage AI | ai,developer,saas unstructured.io | Unstructured | ai,developer,saas llamaindex.ai | LlamaIndex (LlamaCloud) | ai,developer,saas cognition.ai | Cognition (Devin) | ai,developer,saas lovable.dev | Lovable | ai,developer,saas | SE bolt.new | Bolt.new | ai,developer,saas v0.dev | v0 | ai,developer,saas glean.com | Glean | ai,enterprise,saas writer.com | Writer | ai,enterprise,saas sierra.ai | Sierra | ai,enterprise,saas decagon.ai | Decagon | ai,enterprise,saas harvey.ai | Harvey | ai,legal,saas hebbia.com | Hebbia | ai,finance,saas abridge.com | Abridge | ai,health,saas # ── payments, fintech, banking, brokers, crypto ── marqeta.com | Marqeta | payments,developer lithic.com | Lithic | payments,developer galileo-ft.com | Galileo Financial Technologies | payments,developer highnote.com | Highnote | payments,developer treasuryprime.com | Treasury Prime | payments,developer increase.com | Increase | payments,developer column.com | Column | payments,finance mercury.com | Mercury | finance,payments brex.com | Brex | finance,payments rho.co | Rho | finance,payments airwallex.com | Airwallex | payments,finance | AU payoneer.com | Payoneer | payments,finance currencycloud.com | Currencycloud | payments,developer | GB ofx.com | OFX | payments,finance | AU remitly.com | Remitly | payments,finance mx.com | MX | finance,developer teller.io | Teller | finance,developer truelayer.com | TrueLayer | finance,developer | GB tink.com | Tink | finance,developer | SE yapily.com | Yapily | finance,developer | GB saltedge.com | Salt Edge | finance,developer | CA paysafe.com | Paysafe | payments | GB payu.com | PayU | payments | NL sumup.com | SumUp | payments | GB payplug.com | PayPlug | payments | FR lydia-app.com | Lydia | payments,finance | FR interac.ca | Interac | payments | CA moneris.com | Moneris | payments | CA helcim.com | Helcim | payments | CA clover.com | Clover | payments,commerce tide.co | Tide | finance | GB qonto.com | Qonto | finance | FR pennylane.com | Pennylane | finance,saas | FR agicap.com | Agicap | finance,saas | FR bunq.com | bunq | finance | NL nubank.com.br | Nubank | finance | BR webull.com | Webull | finance moomoo.com | moomoo | finance | SG tastytrade.com | tastytrade | finance tradestation.com | TradeStation | finance etrade.com | E*TRADE | finance ally.com | Ally | finance capitalone.com | Capital One | finance current.com | Current | finance varomoney.com | Varo | finance dave.com | Dave | finance moneylion.com | MoneyLion | finance monarchmoney.com | Monarch Money | finance,consumer-tech rocketmoney.com | Rocket Money | finance,consumer-tech carta.com | Carta | finance,saas angellist.com | AngelList | finance,saas pulley.com | Pulley | finance,saas ledgy.com | Ledgy | finance,saas | CH stripe.com | Stripe | payments,developer crypto-infra-placeholder.invalid | skip | skip moralis.io | Moralis | crypto,developer | SE chainstack.com | Chainstack | crypto,developer | SG ankr.com | Ankr | crypto,developer thegraph.com | The Graph | crypto,developer anchorage.com | Anchorage Digital | crypto,finance bitgo.com | BitGo | crypto,finance copper.co | Copper | crypto,finance | GB tether.to | Tether | crypto,finance | HK paxos.com | Paxos | crypto,finance magiceden.io | Magic Eden | crypto,internet phantom.app | Phantom | crypto,consumer-tech rainbow.me | Rainbow | crypto,consumer-tech trezor.io | Trezor | crypto,consumer-tech | CZ uniswap.org | Uniswap | crypto aave.com | Aave | crypto | GB lido.fi | Lido | crypto coingecko.com | CoinGecko | crypto,media | SG nansen.ai | Nansen | crypto,saas | SG messari.io | Messari | crypto,media glassnode.com | Glassnode | crypto,saas | CH kaiko.com | Kaiko | crypto,finance | FR bitget.com | Bitget | crypto | SC gate.io | Gate.io | crypto | KY htx.com | HTX | crypto | SC mexc.com | MEXC | crypto | SC bitpanda.com | Bitpanda | crypto,finance | AT bitso.com | Bitso | crypto | MX luno.com | Luno | crypto | GB coinsquare.com | Coinsquare | crypto | CA ndax.io | NDAX | crypto | CA newton.co | Newton | crypto | CA shakepay.com | Shakepay | crypto | CA bitbuy.ca | Bitbuy | crypto | CA wealthsimple.com | Wealthsimple | finance | CA alpaca.markets | Alpaca | finance,developer # ── e-commerce platforms, marketplaces, retail tech, logistics ── bigcommerce.com | BigCommerce | commerce,saas woocommerce.com | WooCommerce | commerce,open-source commercetools.com | commercetools | commerce,saas | DE saleor.io | Saleor | commerce,open-source | PL medusajs.com | Medusa | commerce,open-source | DK swell.is | Swell | commerce,saas elasticpath.com | Elastic Path | commerce,saas | CA fabric.inc | fabric | commerce,saas spryker.com | Spryker | commerce,saas | DE shopware.com | Shopware | commerce,open-source | DE prestashop.com | PrestaShop | commerce,open-source | FR ecwid.com | Ecwid | commerce,saas sellfy.com | Sellfy | commerce,saas | LV payhip.com | Payhip | commerce,saas | GB podia.com | Podia | commerce,education,saas teachable.com | Teachable | education,saas thinkific.com | Thinkific | education,saas | CA kajabi.com | Kajabi | education,saas learnworlds.com | LearnWorlds | education,saas | CY circle.so | Circle | consumer-tech,saas mightynetworks.com | Mighty Networks | consumer-tech,saas memberful.com | Memberful | commerce,saas drip.com | Drip | commerce,saas sendlane.com | Sendlane | commerce,saas listrak.com | Listrak | commerce,saas bluecore.com | Bluecore | commerce,saas richpanel.com | Richpanel | commerce,saas reamaze.com | Re:amaze | commerce,saas hiverhq.com | Hiver | enterprise,saas | IN shipstation.com | ShipStation | logistics,saas goshippo.com | Shippo | logistics,developer easyship.com | Easyship | logistics,saas | HK shipbob.com | ShipBob | logistics,saas shiphero.com | ShipHero | logistics,saas easypost.com | EasyPost | logistics,developer aftership.com | AfterShip | logistics,saas | HK narvar.com | Narvar | logistics,saas parcellab.com | parcelLab | logistics,saas | DE route.com | Route | logistics,saas loopreturns.com | Loop Returns | commerce,saas coveo.com | Coveo | enterprise,ai,saas | CA lucidworks.com | Lucidworks | enterprise,saas searchspring.com | Searchspring | commerce,saas klevu.com | Klevu | commerce,saas | FI doofinder.com | Doofinder | commerce,saas | ES poshmark.com | Poshmark | commerce depop.com | Depop | commerce | GB vinted.com | Vinted | commerce | LT stockx.com | StockX | commerce goat.com | GOAT | commerce grailed.com | Grailed | commerce reverb.com | Reverb | commerce discogs.com | Discogs | commerce,media mercari.com | Mercari | commerce | JP offerup.com | OfferUp | commerce zalando.com | Zalando | retail,commerce | DE asos.com | ASOS | retail,commerce | GB farfetch.com | Farfetch | retail,commerce | GB overstock.com | Overstock | retail,commerce chewy.com | Chewy | retail,commerce boxed.com | Boxed | retail,commerce thredup.com | thredUP | commerce therealreal.com | The RealReal | commerce project44.com | project44 | logistics,saas fourkites.com | FourKites | logistics,saas freightos.com | Freightos | logistics,saas | IL shippeo.com | Shippeo | logistics,saas | FR sendcloud.com | Sendcloud | logistics,saas | NL packlink.com | Packlink | logistics,saas | ES # ── hosting, domains, CDN, cloud, databases, queues ── koyeb.com | Koyeb | cloud,developer | FR northflank.com | Northflank | cloud,developer | GB qovery.com | Qovery | cloud,developer | FR porter.run | Porter | cloud,developer zeabur.com | Zeabur | cloud,developer | TW sevalla.com | Sevalla | cloud,developer | CH kinsta.com | Kinsta | cloud,developer | CH wpengine.com | WP Engine | cloud,developer pantheon.io | Pantheon | cloud,developer getflywheel.com | Flywheel | cloud,developer pressable.com | Pressable | cloud,developer siteground.com | SiteGround | cloud,developer | BG bluehost.com | Bluehost | cloud,developer hostgator.com | HostGator | cloud,developer hover.com | Hover | internet,developer | CA porkbun.com | Porkbun | internet,developer dynadot.com | Dynadot | internet,developer ionos.com | IONOS | cloud,developer | DE hostinger.com | Hostinger | cloud,developer | LT dreamhost.com | DreamHost | cloud,developer a2hosting.com | A2 Hosting | cloud,developer inmotionhosting.com | InMotion Hosting | cloud,developer liquidweb.com | Liquid Web | cloud,developer nexcess.net | Nexcess | cloud,developer cloudways.com | Cloudways | cloud,developer | MT rocket.net | Rocket.net | cloud,developer servebolt.com | Servebolt | cloud,developer | NO upcloud.com | UpCloud | cloud | FI exoscale.com | Exoscale | cloud | CH civo.com | Civo | cloud | GB kamatera.com | Kamatera | cloud | IL contabo.com | Contabo | cloud | DE hostwinds.com | Hostwinds | cloud binarylane.com.au | BinaryLane | cloud | AU wasabi.com | Wasabi | cloud storj.io | Storj | cloud,crypto filebase.com | Filebase | cloud,crypto bunny.net | bunny.net | cloud,infrastructure | SI keycdn.com | KeyCDN | cloud,infrastructure | CH cdn77.com | CDN77 | cloud,infrastructure | GB gcore.com | Gcore | cloud,infrastructure | LU aiven.io | Aiven | cloud,developer | FI upstash.com | Upstash | cloud,developer scalegrid.io | ScaleGrid | cloud,developer crunchydata.com | Crunchy Data | cloud,developer tembo.io | Tembo | cloud,developer dragonflydb.io | Dragonfly | developer,open-source | IL couchbase.com | Couchbase | developer,cloud datastax.com | DataStax | developer,cloud scylladb.com | ScyllaDB | developer,cloud | IL tinybird.co | Tinybird | developer,cloud | ES materialize.com | Materialize | developer,cloud risingwave.com | RisingWave | developer,open-source,cloud trychroma.com | Chroma | ai,developer,open-source marqo.ai | Marqo | ai,developer,saas | AU redpanda.com | Redpanda | developer,cloud cloudamqp.com | CloudAMQP | developer,cloud | SE streamnative.io | StreamNative | developer,cloud sigmacomputing.com | Sigma Computing | enterprise,saas omni.co | Omni | enterprise,saas holistics.io | Holistics | enterprise,saas | SG redash.io | Redash | developer,open-source dnsmadeeasy.com | DNS Made Easy | internet,infrastructure easydns.com | easyDNS | internet,infrastructure | CA constellix.com | Constellix | internet,infrastructure ssl.com | SSL.com | cyber,infrastructure zerossl.com | ZeroSSL | cyber,infrastructure | AT # ── security ── cybereason.com | Cybereason | cyber,saas eset.com | ESET | cyber,software | SK bitdefender.com | Bitdefender | cyber,software | RO kaspersky.com | Kaspersky | cyber,software | RU avast.com | Avast | cyber,software | CZ mcafee.com | McAfee | cyber,software withsecure.com | WithSecure | cyber,saas | FI trellix.com | Trellix | cyber,saas tanium.com | Tanium | cyber,saas automox.com | Automox | cyber,saas action1.com | Action1 | cyber,saas wiz.io | Wiz | cyber,saas orca.security | Orca Security | cyber,saas | IL aquasec.com | Aqua Security | cyber,saas | IL sysdig.com | Sysdig | cyber,saas checkmarx.com | Checkmarx | cyber,developer | IL veracode.com | Veracode | cyber,developer contrastsecurity.com | Contrast Security | cyber,developer semgrep.dev | Semgrep | cyber,developer,open-source gitguardian.com | GitGuardian | cyber,developer | FR trufflesecurity.com | Truffle Security | cyber,developer socket.dev | Socket | cyber,developer endorlabs.com | Endor Labs | cyber,developer chainguard.dev | Chainguard | cyber,developer abnormalsecurity.com | Abnormal Security | cyber,saas ironscales.com | IRONSCALES | cyber,saas | IL knowbe4.com | KnowBe4 | cyber,saas hoxhunt.com | Hoxhunt | cyber,saas | FI cofense.com | Cofense | cyber,saas hackerone.com | HackerOne | cyber,saas bugcrowd.com | Bugcrowd | cyber,saas intigriti.com | Intigriti | cyber,saas | BE synack.com | Synack | cyber,saas yeswehack.com | YesWeHack | cyber,saas | FR imperva.com | Imperva | cyber,saas radware.com | Radware | cyber,saas | IL sucuri.net | Sucuri | cyber,saas catonetworks.com | Cato Networks | cyber,saas | IL perimeter81.com | Perimeter 81 | cyber,saas | IL twingate.com | Twingate | cyber,saas zerotier.com | ZeroTier | cyber,open-source nordlayer.com | NordLayer | cyber,saas | PA bitsight.com | Bitsight | cyber,saas securityscorecard.com | SecurityScorecard | cyber,saas upguard.com | UpGuard | cyber,saas | AU panorays.com | Panorays | cyber,saas | IL varonis.com | Varonis | cyber,saas bigid.com | BigID | cyber,saas onetrust.com | OneTrust | cyber,legal,saas transcend.io | Transcend | cyber,legal,saas osano.com | Osano | cyber,legal,saas usercentrics.com | Usercentrics | cyber,legal,saas | DE termly.io | Termly | legal,saas iubenda.com | iubenda | legal,saas | IT didomi.io | Didomi | legal,saas | FR ketch.com | Ketch | legal,saas cloudflare-placeholder.invalid | skip | skip expel.com | Expel | cyber,saas redcanary.com | Red Canary | cyber,saas blumira.com | Blumira | cyber,saas axonius.com | Axonius | cyber,saas lansweeper.com | Lansweeper | enterprise,cyber | BE keepersecurity.com | Keeper Security | cyber,saas # ── HR, payroll, recruiting, learning, expenses ── adp.com | ADP | enterprise,payments,saas paycor.com | Paycor | enterprise,saas ukg.com | UKG | enterprise,saas dayforce.com | Dayforce | enterprise,saas namely.com | Namely | enterprise,saas hirevue.com | HireVue | enterprise,labour,saas sparkhire.com | Spark Hire | enterprise,labour,saas codility.com | Codility | developer,labour,saas | GB hackerrank.com | HackerRank | developer,labour,saas hackerearth.com | HackerEarth | developer,labour,saas | IN coderpad.io | CoderPad | developer,labour,saas codesignal.com | CodeSignal | developer,labour,saas karat.com | Karat | developer,labour,saas testgorilla.com | TestGorilla | enterprise,labour,saas | NL vervoe.com | Vervoe | enterprise,labour,saas | AU harver.com | Harver | enterprise,labour,saas | NL oysterhr.com | Oyster | enterprise,labour,saas papayaglobal.com | Papaya Global | enterprise,labour,saas | IL velocityglobal.com | Velocity Global | enterprise,labour,saas usemultiplier.com | Multiplier | enterprise,labour,saas | SG workleap.com | Workleap | enterprise,saas | CA cornerstoneondemand.com | Cornerstone | enterprise,education,saas docebo.com | Docebo | enterprise,education,saas | IT litmos.com | Litmos | enterprise,education,saas talentlms.com | TalentLMS | enterprise,education,saas learnupon.com | LearnUpon | enterprise,education,saas | IE absorblms.com | Absorb LMS | enterprise,education,saas | CA 360learning.com | 360Learning | enterprise,education,saas | FR workramp.com | WorkRamp | enterprise,education,saas expensify.com | Expensify | finance,saas concur.com | SAP Concur | finance,saas rydoo.com | Rydoo | finance,saas | BE emburse.com | Emburse | finance,saas airbase.com | Airbase | finance,saas payfit.com | PayFit | enterprise,payments,saas | FR factorialhr.com | Factorial | enterprise,saas | ES lucca.fr | Lucca | enterprise,saas | FR humaans.io | Humaans | enterprise,saas | GB charliehr.com | CharlieHR | enterprise,saas | GB breathehr.com | Breathe | enterprise,saas | GB employmenthero.com | Employment Hero | enterprise,saas | AU keypay.com | KeyPay | enterprise,payments,saas | AU wagepoint.com | Wagepoint | enterprise,payments,saas | CA humi.ca | Humi | enterprise,saas | CA collage.co | Collage HR | enterprise,saas | CA # ── legal, real-estate, construction, field service, health, education ── mycase.com | MyCase | legal,saas practicepanther.com | PracticePanther | legal,saas smokeball.com | Smokeball | legal,saas | AU filevine.com | Filevine | legal,saas litify.com | Litify | legal,saas lawpay.com | LawPay | legal,payments,saas appfolio.com | AppFolio | real-estate,saas buildium.com | Buildium | real-estate,saas yardi.com | Yardi | real-estate,saas realpage.com | RealPage | real-estate,saas entrata.com | Entrata | real-estate,saas rentmanager.com | Rent Manager | real-estate,saas doorloop.com | DoorLoop | real-estate,saas turbotenant.com | TurboTenant | real-estate,saas buildertrend.com | Buildertrend | enterprise,saas fieldwire.com | Fieldwire | enterprise,saas housecallpro.com | Housecall Pro | enterprise,saas workiz.com | Workiz | enterprise,saas | IL simprogroup.com | Simpro | enterprise,saas | AU athenahealth.com | athenahealth | health,saas drchrono.com | DrChrono | health,saas tebra.com | Tebra | health,saas nextgen.com | NextGen Healthcare | health,saas eclinicalworks.com | eClinicalWorks | health,saas practicefusion.com | Practice Fusion | health,saas simplepractice.com | SimplePractice | health,saas therapynotes.com | TherapyNotes | health,saas jane.app | Jane | health,saas | CA zocdoc.com | Zocdoc | health,consumer-tech doximity.com | Doximity | health,saas teladoc.com | Teladoc Health | health amwell.com | Amwell | health hims.com | Hims & Hers | health,consumer-tech ro.co | Ro | health,consumer-tech onemedical.com | One Medical | health carbonhealth.com | Carbon Health | health zochealth-placeholder.invalid | skip | skip powerschool.com | PowerSchool | education,saas nearpod.com | Nearpod | education,saas seesaw.com | Seesaw | education,saas udacity.com | Udacity | education memrise.com | Memrise | education,consumer-tech | GB busuu.com | Busuu | education,consumer-tech | GB brainly.com | Brainly | education,consumer-tech | PL course-hero-placeholder.invalid | skip | skip gradescope.com | Gradescope | education,saas turnitin.com | Turnitin | education,saas proctorio.com | Proctorio | education,saas examity.com | Examity | education,saas zybooks.com | zyBooks | education,saas mheducation.com | McGraw Hill | education,media pearson.com | Pearson | education,media | GB cengage.com | Cengage | education,media wiley.com | Wiley | education,media labster.com | Labster | education,saas | DK codecombat.com | CodeCombat | education,developer replit-placeholder.invalid | skip | skip # ── gaming, esports, game infrastructure ── activision.com | Activision | gaming 2k.com | 2K | gaming take2games.com | Take-Two Interactive | gaming bandainamcoent.com | Bandai Namco Entertainment | gaming | JP capcom.com | Capcom | gaming | JP sega.com | Sega | gaming | JP konami.com | Konami | gaming | JP guilded.gg | Guilded | gaming,consumer-tech teamspeak.com | TeamSpeak | gaming,consumer-tech | DE fanatical.com | Fanatical | gaming | GB greenmangaming.com | Green Man Gaming | gaming | GB hypixel.net | Hypixel | gaming curseforge.com | CurseForge | gaming modrinth.com | Modrinth | gaming,open-source nexusmods.com | Nexus Mods | gaming | GB playfab.com | PlayFab | gaming,developer photonengine.com | Photon Engine | gaming,developer | DE heroiclabs.com | Heroic Labs (Nakama) | gaming,developer | GB accelbyte.io | AccelByte | gaming,developer pragma.gg | Pragma | gaming,developer wargaming.net | Wargaming | gaming | CY gaijin.net | Gaijin Entertainment | gaming | HU ncsoft.com | NCSoft | gaming | KR netmarble.com | Netmarble | gaming | KR pearlabyss.com | Pearl Abyss | gaming | KR rovio.com | Rovio | gaming | FI chess.com | Chess.com | gaming,consumer-tech lichess.org | Lichess | gaming,open-source | FR faceit.com | FACEIT | gaming,sports | GB streamlabs.com | Streamlabs | gaming,media streamelements.com | StreamElements | gaming,media | IL restream.io | Restream | media,saas overwolf.com | Overwolf | gaming,developer | IL gamesight-placeholder.invalid | skip | skip enad-placeholder.invalid | skip | skip embracer.com | Embracer Group | gaming | SE focus-entmt.com | Focus Entertainment | gaming | FR devolverdigital.com | Devolver Digital | gaming team17.com | Team17 | gaming | GB kongregate.com | Kongregate | gaming armorgames.com | Armor Games | gaming poki.com | Poki | gaming | NL crazygames.com | CrazyGames | gaming | BE geforcenow-placeholder.invalid | skip | skip shadow.tech | Shadow | gaming,cloud | FR boosteroid.com | Boosteroid | gaming,cloud | UA parsec.app | Parsec | gaming,developer opgg-placeholder.invalid | skip | skip gamersclub-placeholder.invalid | skip | skip skinport-placeholder.invalid | skip | skip pokemon.com | The Pokémon Company | gaming,entertainment | JP pokemongolive.com | Pokémon GO (Niantic) | gaming nianticlabs.com | Niantic | gaming jagex.com | Jagex | gaming | GB runescape.com | RuneScape | gaming | GB warframe.com | Warframe (Digital Extremes) | gaming | CA pathofexile.com | Path of Exile (Grinding Gear Games) | gaming | NZ worldofwarships.com | World of Warships | gaming | CY eveonline.com | EVE Online (CCP Games) | gaming | IS finalfantasyxiv.com | Final Fantasy XIV | gaming | JP robloxdev-placeholder.invalid | skip | skip # ── streaming, music, media platforms, publishing ── roku.com | Roku | media,consumer-tech scribd.com | Scribd | media,consumer-tech kobo.com | Kobo | media,consumer-tech | CA tunein.com | TuneIn | media iheart.com | iHeartMedia | media siriusxm.com | SiriusXM | media viki.com | Rakuten Viki | media | US philo.com | Philo | media sling.com | Sling TV | media fubo.tv | Fubo | media plutotv-placeholder.invalid | skip | skip tubitv.com | Tubi | media vudu-placeholder.invalid | skip | skip curiositystream.com | CuriosityStream | media mubi.com | MUBI | media | GB britbox.com | BritBox | media | GB hayu.com | hayu | media | GB crave.ca | Crave | media | CA cbc-gem-placeholder.invalid | skip | skip stan.com.au | Stan | media | AU binge.com.au | Binge | media | AU hotstar.com | Disney+ Hotstar | media | IN jiocinema-placeholder.invalid | skip | skip zee5.com | ZEE5 | media | IN sonyliv.com | SonyLIV | media | IN iqiyi.com | iQIYI | media | CN viu.com | Viu | media | HK wetv-placeholder.invalid | skip | skip napster.com | Napster | media qobuz.com | Qobuz | media | FR audiomack.com | Audiomack | media mixcloud.com | Mixcloud | media | GB bandlab.com | BandLab | media,consumer-tech | SG splice.com | Splice | media,saas distrokid.com | DistroKid | media,saas tunecore.com | TuneCore | media,saas cdbaby.com | CD Baby | media,saas ditto-placeholder.invalid | skip | skip epidemicsound.com | Epidemic Sound | media,saas | SE artlist.io | Artlist | media,saas | IL storyblocks.com | Storyblocks | media,saas shutterstock.com | Shutterstock | media,saas gettyimages.com | Getty Images | media pond5-placeholder.invalid | skip | skip envato.com | Envato | media,saas | AU creativemarket.com | Creative Market | media,saas issuu.com | Issuu | media,saas readwise.io | Readwise | consumer-tech,saas pocket-placeholder.invalid | skip | skip feedly.com | Feedly | consumer-tech,saas inoreader.com | Inoreader | consumer-tech,saas | BG flipboard.com | Flipboard | media,consumer-tech goodreads-placeholder.invalid | skip | skip storygraph-placeholder.invalid | skip | skip webtoons.com | WEBTOON | media | KR tapas.io | Tapas | media wattpad-placeholder.invalid | skip | skip royalroad.com | Royal Road | media archiveofourown.org | Archive of Our Own | media,ngo # ── telecom, ISPs, connectivity, MVNO ── xfinity.com | Xfinity (Comcast) | telecom spectrum.com | Spectrum (Charter) | telecom cox.com | Cox Communications | telecom frontier.com | Frontier Communications | telecom lumen.com | Lumen | telecom windstream.com | Windstream | telecom rogers.com | Rogers | telecom | CA bell.ca | Bell Canada | telecom | CA videotron.com | Vidéotron | telecom | CA freedommobile.ca | Freedom Mobile | telecom | CA fizz.ca | Fizz | telecom | CA koodomobile.com | Koodo | telecom | CA virginplus.ca | Virgin Plus | telecom | CA sasktel.com | SaskTel | telecom | CA eastlink.ca | Eastlink | telecom | CA cogeco.ca | Cogeco | telecom | CA teksavvy.com | TekSavvy | telecom | CA ee.co.uk | EE | telecom | GB o2.co.uk | O2 UK | telecom | GB three.co.uk | Three UK | telecom | GB sky.com | Sky | telecom,media | GB virginmedia.com | Virgin Media | telecom | GB talktalk.co.uk | TalkTalk | telecom | GB giffgaff.com | giffgaff | telecom | GB orange.com | Orange | telecom | FR sfr.fr | SFR | telecom | FR bouyguestelecom.fr | Bouygues Telecom | telecom | FR free.fr | Free | telecom | FR telekom.de | Deutsche Telekom | telecom | DE o2online.de | O2 Germany | telecom | DE vodafone.de | Vodafone Germany | telecom | DE telefonica.com | Telefónica | telecom | ES movistar.es | Movistar | telecom | ES tim.it | TIM | telecom | IT kpn.com | KPN | telecom | NL proximus.be | Proximus | telecom | BE swisscom.ch | Swisscom | telecom | CH telia.se | Telia | telecom | SE telenor.com | Telenor | telecom | "NO" elisa.fi | Elisa | telecom | FI telstra.com.au | Telstra | telecom | AU optus.com.au | Optus | telecom | AU spark.co.nz | Spark NZ | telecom | NZ one.nz | One NZ | telecom | NZ singtel.com | Singtel | telecom | SG fi.google.com | Google Fi | telecom mintmobile.com | Mint Mobile | telecom visible.com | Visible | telecom usmobile.com | US Mobile | telecom boostmobile.com | Boost Mobile | telecom cricketwireless.com | Cricket Wireless | telecom viasat.com | Viasat | telecom,space hughesnet.com | HughesNet | telecom,space twilio-placeholder.invalid | skip | skip grasshopper.com | Grasshopper | telecom,saas ooma.com | Ooma | telecom nextiva.com | Nextiva | telecom,saas vonage-placeholder.invalid | skip | skip justcall.io | JustCall | telecom,saas | IN cloudtalk.io | CloudTalk | telecom,saas | SK talkdesk.com | Talkdesk | telecom,saas five9.com | Five9 | telecom,saas nice.com | NICE | telecom,saas | IL genesys.com | Genesys | telecom,saas # ── travel, hospitality, mobility, events, ticketing ── travelport.com | Travelport | travel,saas | GB avis.com | Avis Budget Group | travel,transport enterprise.com | Enterprise Mobility | travel,transport sixt.com | Sixt | travel,transport | DE cloudbeds.com | Cloudbeds | travel,saas mews.com | Mews | travel,saas | NL guesty.com | Guesty | travel,saas | IL hostaway.com | Hostaway | travel,saas | FI lodgify.com | Lodgify | travel,saas | ES siteminder.com | SiteMinder | travel,saas | AU eventbrite.com | Eventbrite | entertainment,saas cvent.com | Cvent | enterprise,saas bizzabo.com | Bizzabo | enterprise,saas | IL splashthat.com | Splash | enterprise,saas lu.ma | Luma | consumer-tech,saas ticketmaster.com | Ticketmaster | entertainment axs.com | AXS | entertainment seatgeek.com | SeatGeek | entertainment stubhub.com | StubHub | entertainment dice.fm | DICE | entertainment | GB ticketek.com.au | Ticketek | entertainment | AU ticketleap-placeholder.invalid | skip | skip universe-placeholder.invalid | skip | skip tixr.com | Tixr | entertainment showpass.com | Showpass | entertainment | CA opentable.com | OpenTable | food,consumer-tech resy.com | Resy | food,consumer-tech sevenrooms.com | SevenRooms | food,saas yelp.com | Yelp | consumer-tech,internet tock.com | Tock | food,saas toast-placeholder.invalid | skip | skip touchbistro.com | TouchBistro | food,saas | CA olo.com | Olo | food,saas chownow.com | ChowNow | food,saas mindbodyonline.com | Mindbody | health,saas classpass.com | ClassPass | health,consumer-tech glofox.com | Glofox | health,saas | IE zenoti.com | Zenoti | health,saas booksy.com | Booksy | consumer-tech,saas | PL fresha.com | Fresha | consumer-tech,saas | GB vagaro.com | Vagaro | consumer-tech,saas # ── marketing, CRM, support, CX, analytics, ad tech ── moengage.com | MoEngage | enterprise,saas | IN clevertap.com | CleverTap | enterprise,saas | IN airship.com | Airship | enterprise,saas batch.com | Batch | enterprise,saas | FR mparticle.com | mParticle | developer,saas tealium.com | Tealium | enterprise,saas rudderstack.com | RudderStack | developer,open-source,saas snowplow.io | Snowplow | developer,open-source,saas | GB criteo.com | Criteo | enterprise,media | FR taboola.com | Taboola | enterprise,media | IL outbrain.com | Outbrain | enterprise,media pubmatic.com | PubMatic | enterprise,media magnite.com | Magnite | enterprise,media indexexchange.com | Index Exchange | enterprise,media | CA openx.com | OpenX | enterprise,media adroll.com | AdRoll | enterprise,saas stackadapt.com | StackAdapt | enterprise,saas | CA branch.io | Branch | developer,saas appsflyer.com | AppsFlyer | developer,saas | IL adjust.com | Adjust | developer,saas | DE singular.net | Singular | developer,saas kochava.com | Kochava | developer,saas close.com | Close | enterprise,saas copper.com | Copper | enterprise,saas insightly.com | Insightly | enterprise,saas nutshell.com | Nutshell | enterprise,saas keap.com | Keap | enterprise,saas ontraport.com | Ontraport | enterprise,saas qualified.com | Qualified | enterprise,saas kayako.com | Kayako | enterprise,saas happyfox.com | HappyFox | enterprise,saas gainsight.com | Gainsight | enterprise,saas churnzero.com | ChurnZero | enterprise,saas totango.com | Totango | enterprise,saas vitally.io | Vitally | enterprise,saas planhat.com | Planhat | enterprise,saas | SE baremetrics.com | Baremetrics | finance,saas chartmogul.com | ChartMogul | finance,saas | DE alchemer.com | Alchemer | enterprise,saas delighted.com | Delighted | enterprise,saas medallia.com | Medallia | enterprise,saas qualaroo.com | Qualaroo | enterprise,saas bazaarvoice.com | Bazaarvoice | commerce,saas trustpilot.com | Trustpilot | consumer-tech,internet | DK reviews.io | REVIEWS.io | commerce,saas | GB okendo.io | Okendo | commerce,saas | AU judge.me | Judge.me | commerce,saas | GB g2.com | G2 | enterprise,internet agorapulse.com | Agorapulse | enterprise,saas | FR sendible.com | Sendible | enterprise,saas | GB socialbee.com | SocialBee | enterprise,saas | RO planoly.com | Planoly | enterprise,saas sketch.com | Sketch | developer,software | NL invisionapp.com | InVision | developer,saas zeplin.io | Zeplin | developer,saas marvelapp.com | Marvel | developer,saas | GB imagekit.io | ImageKit | developer,saas | IN sirv.com | Sirv | developer,saas | GB bynder.com | Bynder | enterprise,saas | NL brandfolder.com | Brandfolder | enterprise,saas canto.com | Canto | enterprise,saas frontify.com | Frontify | enterprise,saas | CH brightcove.com | Brightcove | media,saas jwplayer.com | JW Player | media,saas kaltura.com | Kaltura | media,saas acquia.com | Acquia | developer,saas higherlogic.com | Higher Logic | enterprise,saas khoros.com | Khoros | enterprise,saas on24.com | ON24 | enterprise,saas livestorm.co | Livestorm | enterprise,saas | FR demio.com | Demio | enterprise,saas bigmarker.com | BigMarker | enterprise,saas airmeet.com | Airmeet | enterprise,saas | IN seismic.com | Seismic | enterprise,saas highspot.com | Highspot | enterprise,saas showpad.com | Showpad | enterprise,saas | BE 6sense.com | 6sense | enterprise,saas demandbase.com | Demandbase | enterprise,saas bombora.com | Bombora | enterprise,saas cognism.com | Cognism | enterprise,saas | GB chilipiper.com | Chili Piper | enterprise,saas celonis.com | Celonis | enterprise,saas | DE planful.com | Planful | finance,saas venasolutions.com | Vena | finance,saas | CA mosaic.tech | Mosaic | finance,saas pigment.com | Pigment | finance,saas | FR blackline.com | BlackLine | finance,saas floqast.com | FloQast | finance,saas sovos.com | Sovos | finance,saas jaggaer.com | JAGGAER | enterprise,saas ivalua.com | Ivalua | enterprise,saas | FR ziphq.com | Zip | enterprise,saas egnyte.com | Egnyte | enterprise,saas citrix.com | Citrix | enterprise,software uipath.com | UiPath | enterprise,ai,saas automationanywhere.com | Automation Anywhere | enterprise,ai,saas c3.ai | C3 AI | enterprise,ai,saas palantir.com | Palantir | enterprise,ai sap-placeholder.invalid | skip | skip freshworks-placeholder.invalid | skip | skip # ── IoT, hardware, consumer devices, smart home ── particle.io | Particle | developer,infrastructure balena.io | balena | developer,infrastructure | GB losant.com | Losant | developer,infrastructure blynk.io | Blynk | developer,infrastructure thingsboard.io | ThingsBoard | developer,open-source ubidots.com | Ubidots | developer,infrastructure golioth.io | Golioth | developer,infrastructure memfault.com | Memfault | developer,infrastructure ring.com | Ring | consumer-tech arlo.com | Arlo | consumer-tech wyze.com | Wyze | consumer-tech ecobee.com | ecobee | consumer-tech | CA smartthings.com | SmartThings | consumer-tech philips-hue.com | Philips Hue | consumer-tech | NL tile.com | Tile | consumer-tech eufy.com | eufy | consumer-tech govee.com | Govee | consumer-tech | CN tp-link.com | TP-Link | consumer-tech,telecom | CN netgear.com | Netgear | consumer-tech,telecom ubnt.com | Ubiquiti | telecom,infrastructure | | status.ui.com eero.com | eero | consumer-tech,telecom meraki.com | Cisco Meraki | telecom,infrastructure tesla-placeholder.invalid | skip | skip rivian-placeholder.invalid | skip | skip chargepoint.com | ChargePoint | automotive,energy evgo.com | EVgo | automotive,energy electrifyamerica.com | Electrify America | automotive,energy flo.com | FLO | automotive,energy | CA enphase.com | Enphase | energy,consumer-tech solaredge.com | SolarEdge | energy | IL tado.com | tado° | energy,consumer-tech | DE octopus.energy | Octopus Energy | energy | GB ovoenergy.com | OVO Energy | energy | GB bulb-placeholder.invalid | skip | skip # ── weather, maps, geodata APIs ── openweathermap.org | OpenWeather | weather,developer | GB tomorrow.io | Tomorrow.io | weather,developer weatherapi.com | WeatherAPI | weather,developer here.com | HERE Technologies | transport,developer | NL tomtom.com | TomTom | transport,developer | NL maptiler.com | MapTiler | developer,saas | CH radar.com | Radar | developer,saas foursquare.com | Foursquare | developer,consumer-tech what3words.com | what3words | developer | GB smartystreets.com | Smarty | developer,saas loqate.com | Loqate | developer,saas | GB # ── government digital services, universities IT ── cloud.gov | cloud.gov (GSA) | government,cloud | | cloudgov.statuspage.io login.gov | Login.gov (GSA) | government,cyber payments.service.gov.uk | GOV.UK Pay | government,payments | GB | status.payments.service.gov.uk notifications.service.gov.uk | GOV.UK Notify | government | GB | status.notifications.service.gov.uk canada.ca | Government of Canada digital services | government | CA | status.canada.ca digital.canada.ca | Canadian Digital Service | government | CA | status.notification.canada.ca service.nsw.gov.au | Service NSW | government | AU digital.gov.au | Digital Transformation Agency | government | AU | status.digital.gov.au mygov.au-placeholder.invalid | skip | skip usds-placeholder.invalid | skip | skip grants.gov | Grants.gov | government sam.gov | SAM.gov | government nasa-placeholder.invalid | skip | skip huit.harvard.edu | Harvard University IT | education | | status.huit.harvard.edu its.umich.edu | University of Michigan ITS | education | | status.its.umich.edu it.cornell.edu | Cornell IT | education | | it.cornell.edu princeton.edu | Princeton University OIT | education | | status.princeton.edu yale.edu | Yale ITS | education | | status.yale.edu columbia.edu | Columbia University IT | education | | status.cuit.columbia.edu nyu.edu | NYU IT | education | | status.nyu.edu upenn.edu | Penn ISC | education | | status.upenn.edu cmu.edu | Carnegie Mellon Computing Services | education | | status.cmu.edu ucla.edu | UCLA IT Services | education | | status.it.ucla.edu ucsd.edu | UC San Diego ITS | education | | status.ucsd.edu ucdavis.edu | UC Davis IET | education | | status.ucdavis.edu uw.edu | University of Washington IT | education | | status.uw.edu utoronto.ca | University of Toronto ITS | education | CA | status.utoronto.ca ubc.ca | UBC IT | education | CA | status.it.ubc.ca mcgill.ca | McGill IT | education | CA | status.mcgill.ca uwaterloo.ca | University of Waterloo IST | education | CA | status.uwaterloo.ca ualberta.ca | University of Alberta IST | education | CA | status.ualberta.ca umontreal.ca | Université de Montréal TI | education | CA | statut.umontreal.ca uqam.ca | UQAM | education | CA | statut.uqam.ca ulaval.ca | Université Laval | education | CA | etat.ulaval.ca concordia.ca | Concordia University | education | CA | status.concordia.ca yorku.ca | York University UIT | education | CA | status.yorku.ca uottawa.ca | University of Ottawa | education | CA | status.uottawa.ca sfu.ca | Simon Fraser University IT | education | CA | status.sfu.ca ucalgary.ca | University of Calgary IT | education | CA | status.ucalgary.ca mun.ca | Memorial University | education | CA | status.mun.ca dal.ca | Dalhousie University | education | CA | status.dal.ca queensu.ca | Queen's University ITS | education | CA | status.queensu.ca uwo.ca | Western University | education | CA | status.uwo.ca mcmaster.ca | McMaster University | education | CA | status.mcmaster.ca ox.ac.uk | University of Oxford IT Services | education | GB | status.it.ox.ac.uk cam.ac.uk | University of Cambridge UIS | education | GB | status.uis.cam.ac.uk imperial.ac.uk | Imperial College London ICT | education | GB | status.imperial.ac.uk ucl.ac.uk | UCL ISD | education | GB | status.ucl.ac.uk ed.ac.uk | University of Edinburgh IS | education | GB | status.is.ed.ac.uk manchester.ac.uk | University of Manchester IT | education | GB | status.itservices.manchester.ac.uk kcl.ac.uk | King's College London IT | education | GB | status.kcl.ac.uk bristol.ac.uk | University of Bristol IT | education | GB | status.bristol.ac.uk gatech.edu | Georgia Tech OIT | education | | status.gatech.edu purdue.edu | Purdue IT | education | | status.purdue.edu wisc.edu | UW–Madison DoIT | education | | status.doit.wisc.edu illinois.edu | University of Illinois Technology Services | education | | status.illinois.edu umn.edu | University of Minnesota OIT | education | | status.umn.edu osu.edu | Ohio State OTDI | education | | status.osu.edu psu.edu | Penn State IT | education | | status.psu.edu utexas.edu | UT Austin ITS | education | | status.utexas.edu tamu.edu | Texas A&M Technology Services | education | | status.tamu.edu ufl.edu | University of Florida IT | education | | status.it.ufl.edu asu.edu | Arizona State University UTO | education | | status.asu.edu arizona.edu | University of Arizona UITS | education | | status.arizona.edu colorado.edu | CU Boulder OIT | education | | status.colorado.edu duke.edu | Duke OIT | education | | status.oit.duke.edu unc.edu | UNC ITS | education | | status.unc.edu virginia.edu | UVA ITS | education | | status.its.virginia.edu northwestern.edu | Northwestern IT | education | | status.northwestern.edu uchicago.edu | UChicago IT Services | education | | status.uchicago.edu jhu.edu | Johns Hopkins IT | education | | status.it.johnshopkins.edu bu.edu | Boston University IS&T | education | | status.bu.edu northeastern.edu | Northeastern ITS | education | | status.northeastern.edu rutgers.edu | Rutgers OIT | education | | status.rutgers.edu umd.edu | University of Maryland DIT | education | | status.umd.edu usc.edu | USC ITS | education | | status.usc.edu uci.edu | UC Irvine OIT | education | | status.uci.edu berkeley.edu | UC Berkeley IT | education | | status.berkeley.edu indiana.edu | Indiana University UITS | education | | status.iu.edu msu.edu | Michigan State IT | education | | status.msu.edu unimelb.edu.au | University of Melbourne | education | AU | status.unimelb.edu.au sydney.edu.au | University of Sydney ICT | education | AU | status.sydney.edu.au monash.edu | Monash University eSolutions | education | AU | status.monash.edu unsw.edu.au | UNSW IT | education | AU | status.unsw.edu.au uq.edu.au | University of Queensland ITS | education | AU | status.uq.edu.au auckland.ac.nz | University of Auckland | education | NZ | status.auckland.ac.nz ethz.ch | ETH Zurich IT Services | education | CH | status.ethz.ch epfl.ch | EPFL | education | CH | status.epfl.ch tum.de | TU Munich IT | education | DE | status.tum.de kuleuven.be | KU Leuven ICTS | education | BE | status.kuleuven.be tudelft.nl | TU Delft | education | NL | status.tudelft.nl uva.nl | University of Amsterdam | education | NL | status.uva.nl nus.edu.sg | National University of Singapore | education | SG | status.nus.edu.sg # ── misc SaaS long tail (Cloud 100 / YC) ── airtable-placeholder.invalid | skip | skip gong-placeholder.invalid | skip | skip verkada.com | Verkada | cyber,infrastructure samsara.com | Samsara | logistics,infrastructure motive.com | Motive | logistics,infrastructure geotab.com | Geotab | logistics,infrastructure | CA flock-placeholder.invalid | skip | skip scale-placeholder.invalid | skip | skip faire-placeholder.invalid | skip | skip whatnot.com | Whatnot | commerce,media flexport-placeholder.invalid | skip | skip convoy-placeholder.invalid | skip | skip loadsmart.com | Loadsmart | logistics,saas uberfreight-placeholder.invalid | skip | skip gem.com | Gem | enterprise,labour,saas rippling-placeholder.invalid | skip | skip lattice-placeholder.invalid | skip | skip vercel-placeholder.invalid | skip | skip webflow-placeholder.invalid | skip | skip grafana-placeholder.invalid | skip | skip redis-placeholder.invalid | skip | skip kong-placeholder.invalid | skip | skip apollo-placeholder.invalid | skip | skip cribl.io | Cribl | developer,saas teleport-placeholder.invalid | skip | skip tines.com | Tines | cyber,saas | IE torq.io | Torq | cyber,saas | IL swimlane.com | Swimlane | cyber,saas opal.dev | Opal | cyber,saas conductorone.com | ConductorOne | cyber,saas veza.com | Veza | cyber,saas oso-placeholder.invalid | skip | skip cerbos.dev | Cerbos | developer,cyber | GB permit.io | Permit.io | developer,cyber | IL warrant-placeholder.invalid | skip | skip descript-placeholder.invalid | skip | skip runway-placeholder.invalid | skip | skip gamma-placeholder.invalid | skip | skip tome.app | Tome | enterprise,ai,saas beautiful.ai | Beautiful.ai | enterprise,ai,saas notion-placeholder.invalid | skip | skip coda-placeholder.invalid | skip | skip clay.com | Clay | enterprise,ai,saas instantly.ai | Instantly | enterprise,saas lemlist.com | lemlist | enterprise,saas | FR smartlead.ai | Smartlead | enterprise,saas reply.io | Reply.io | enterprise,saas mailshake.com | Mailshake | enterprise,saas woodpecker.co | Woodpecker | enterprise,saas | PL hunter.io | Hunter | enterprise,saas | FR snov.io | Snov.io | enterprise,saas | UA seamless.ai | Seamless.AI | enterprise,saas rocketreach.co | RocketReach | enterprise,saas peopledatalabs.com | People Data Labs | enterprise,developer fullcontact-placeholder.invalid | skip | skip brandwatch-placeholder.invalid | skip | skip mention.com | Mention | enterprise,saas | FR awario.com | Awario | enterprise,saas talkwalker.com | Talkwalker | enterprise,saas | LU cision.com | Cision | enterprise,media prnewswire.com | PR Newswire | media,enterprise businesswire.com | Business Wire | media,enterprise globenewswire.com | GlobeNewswire | media,enterprise prweb.com | PRWeb | media,enterprise muckrack.com | Muck Rack | media,saas prezly.com | Prezly | media,saas | BE harmonic-placeholder.invalid | skip | skip crunchbase.com | Crunchbase | finance,internet pitchbook.com | PitchBook | finance,saas cbinsights.com | CB Insights | finance,saas dealroom.co | Dealroom | finance,saas | NL tegus-placeholder.invalid | skip | skip alphasense.com | AlphaSense | finance,saas kensho-placeholder.invalid | skip | skip docsend-placeholder.invalid | skip | skip carta-placeholder.invalid | skip | skip vanta-placeholder.invalid | skip | skip thoropass.com | Thoropass | cyber,saas sprinto.com | Sprinto | cyber,saas | IN scrut.io | Scrut Automation | cyber,saas | IN hyperproof.com | Hyperproof | cyber,saas auditboard.com | AuditBoard | enterprise,saas workiva.com | Workiva | enterprise,saas diligent.com | Diligent | enterprise,saas boardable-placeholder.invalid | skip | skip navex.com | NAVEX | enterprise,saas logicgate.com | LogicGate | enterprise,saas archer-placeholder.invalid | skip | skip riskonnect-placeholder.invalid | skip | skip resolver.com | Resolver | enterprise,saas | CA ideagen.com | Ideagen | enterprise,saas | GB intelex.com | Intelex | enterprise,saas | CA cority.com | Cority | enterprise,saas | CA benchling.com | Benchling | science,saas dotmatics.com | Dotmatics | science,saas labarchives.com | LabArchives | science,saas scispot-placeholder.invalid | skip | skip protocols.io | protocols.io | science,saas biorender.com | BioRender | science,saas | CA labguru-placeholder.invalid | skip | skip quartzy.com | Quartzy | science,saas opentrons.com | Opentrons | science strateos-placeholder.invalid | skip | skip emeraldcloudlab-placeholder.invalid | skip | skip veeva.com | Veeva Systems | pharma,saas medidata.com | Medidata | pharma,saas iqvia.com | IQVIA | pharma,saas castoredc.com | Castor | pharma,saas | NL florence-placeholder.invalid | skip | skip komodohealth.com | Komodo Health | health,saas flatiron.com | Flatiron Health | health,saas tempus.com | Tempus | health,ai color.com | Color | health 23andme.com | 23andMe | health,consumer-tech ancestry.com | Ancestry | consumer-tech myheritage.com | MyHeritage | consumer-tech | IL findagrave-placeholder.invalid | skip | skip familysearch.org | FamilySearch | consumer-tech,ngo # ── crypto exchanges & wallets (Canada / EU / Asia) & web3 infra ── coinhako.com | Coinhako | crypto | SG independentreserve.com | Independent Reserve | crypto | AU btcmarkets.net | BTC Markets | crypto | AU coinjar.com | CoinJar | crypto | AU swyftx.com | Swyftx | crypto | AU coinspot.com.au | CoinSpot | crypto | AU bitvavo.com | Bitvavo | crypto | NL bitstamp-placeholder.invalid | skip | skip zonda-placeholder.invalid | skip | skip upbit.com | Upbit | crypto | KR bithumb.com | Bithumb | crypto | KR bitflyer.com | bitFlyer | crypto | JP coincheck.com | Coincheck | crypto | JP wazirx.com | WazirX | crypto | IN coindcx.com | CoinDCX | crypto | IN coinswitch.co | CoinSwitch | crypto | IN alchemypay-placeholder.invalid | skip | skip moonpay.com | MoonPay | crypto,payments ramp.network | Ramp Network | crypto,payments | PL transak.com | Transak | crypto,payments banxa.com | Banxa | crypto,payments | AU simplex-placeholder.invalid | skip | skip bitpay.com | BitPay | crypto,payments coinpayments.net | CoinPayments | crypto,payments nowpayments.io | NOWPayments | crypto,payments blockdaemon.com | Blockdaemon | crypto,infrastructure figment.io | Figment | crypto,infrastructure | CA kiln.fi | Kiln | crypto,infrastructure | FR p2p.org | P2P.org | crypto,infrastructure stakefish-placeholder.invalid | skip | skip allnodes.com | Allnodes | crypto,infrastructure getblock.io | GetBlock | crypto,developer nownodes.io | NOWNodes | crypto,developer blockdaemon-placeholder.invalid | skip | skip helius.dev | Helius | crypto,developer triton-placeholder.invalid | skip | skip alchemy-placeholder.invalid | skip | skip tenderly.co | Tenderly | crypto,developer | RS blocknative.com | Blocknative | crypto,developer biconomy.io | Biconomy | crypto,developer gelato.network | Gelato | crypto,developer | CH pimlico.io | Pimlico | crypto,developer | GB zerodev-placeholder.invalid | skip | skip thirdweb.com | thirdweb | crypto,developer crossmint.com | Crossmint | crypto,developer reservoir.tools | Reservoir | crypto,developer zora.co | Zora | crypto,internet rarible.com | Rarible | crypto,internet looksrare-placeholder.invalid | skip | skip sound.xyz | Sound.xyz | crypto,media mirror.xyz | Mirror | crypto,media paragraph.xyz | Paragraph | crypto,media farcaster.xyz | Farcaster | crypto,consumer-tech lens.xyz | Lens Protocol | crypto,consumer-tech dydx.exchange | dYdX | crypto gmx.io | GMX | crypto curve.fi | Curve | crypto balancer.fi | Balancer | crypto pancakeswap.finance | PancakeSwap | crypto sushi.com | Sushi | crypto 1inch.io | 1inch | crypto paraswap.io | ParaSwap | crypto cowswap-placeholder.invalid | skip | skip makerdao-placeholder.invalid | skip | skip sky.money | Sky (MakerDAO) | crypto frax.finance | Frax | crypto rocketpool.net | Rocket Pool | crypto eigenlayer.xyz | EigenLayer | crypto across.to | Across | crypto stargate.finance | Stargate | crypto layerzero.network | LayerZero | crypto wormhole.com | Wormhole | crypto axelar.network | Axelar | crypto hop.exchange | Hop Protocol | crypto synapseprotocol.com | Synapse | crypto safe.global | Safe | crypto,developer | DE snapshot.org | Snapshot | crypto,developer tally.xyz | Tally | crypto,developer gitcoin.co | Gitcoin | crypto,open-source optimism.io | Optimism | crypto arbitrum.io | Arbitrum | crypto base.org | Base | crypto zksync.io | ZKsync | crypto starknet.io | Starknet | crypto scroll.io | Scroll | crypto linea.build | Linea | crypto mantle.xyz | Mantle | crypto blast.io | Blast | crypto polygon.technology | Polygon | crypto avax.network | Avalanche | crypto solana.com | Solana | crypto near.org | NEAR | crypto sui.io | Sui | crypto aptosfoundation.org | Aptos | crypto sei.io | Sei | crypto celestia.org | Celestia | crypto cosmos.network | Cosmos | crypto polkadot.network | Polkadot | crypto | CH cardano.org | Cardano | crypto algorand.co | Algorand | crypto tezos.com | Tezos | crypto | CH hedera.com | Hedera | crypto stellar.org | Stellar | crypto ripple.com | Ripple | crypto tron.network | TRON | crypto tonkeeper-placeholder.invalid | skip | skip ton.org | TON | crypto | CH internetcomputer.org | Internet Computer (DFINITY) | crypto | CH filecoin.io | Filecoin | crypto arweave.org | Arweave | crypto flow.com | Flow | crypto immutable.com | Immutable | crypto,gaming | AU ronin.network | Ronin | crypto,gaming # ── consumer apps, social, dating, fitness, misc ── bumble.com | Bumble | consumer-tech hinge.co | Hinge | consumer-tech match.com | Match | consumer-tech grindr.com | Grindr | consumer-tech nextdoor.com | Nextdoor | consumer-tech,internet meetup.com | Meetup | consumer-tech,internet strava-placeholder.invalid | skip | skip fitbit-placeholder.invalid | skip | skip trainerroad.com | TrainerRoad | health,consumer-tech wahoofitness.com | Wahoo | health,consumer-tech polar.com | Polar | health,consumer-tech | FI suunto.com | Suunto | health,consumer-tech | FI coros.com | COROS | health,consumer-tech eightsleep.com | Eight Sleep | health,consumer-tech tonal.com | Tonal | health,consumer-tech hydrow.com | Hydrow | health,consumer-tech ifit.com | iFIT | health,consumer-tech lifesum.com | Lifesum | health,consumer-tech | SE flo.health | Flo | health,consumer-tech | GB clue-placeholder.invalid | skip | skip betterhelp.com | BetterHelp | health,consumer-tech talkspace.com | Talkspace | health,consumer-tech cerebral.com | Cerebral | health,consumer-tech lyrahealth.com | Lyra Health | health,saas springhealth.com | Spring Health | health,saas modernhealth.com | Modern Health | health,saas ginger-placeholder.invalid | skip | skip omadahealth.com | Omada Health | health livongo-placeholder.invalid | skip | skip goodrx.com | GoodRx | health,consumer-tech capsule.com | Capsule | health,consumer-tech altoids-placeholder.invalid | skip | skip pillpack-placeholder.invalid | skip | skip rover.com | Rover | consumer-tech wag.co | Wag! | consumer-tech thumbtack.com | Thumbtack | consumer-tech angi.com | Angi | consumer-tech taskrabbit.com | Taskrabbit | consumer-tech care.com | Care.com | consumer-tech handy-placeholder.invalid | skip | skip houzz.com | Houzz | consumer-tech,real-estate apartments.com | Apartments.com | real-estate rentcafe-placeholder.invalid | skip | skip zumper.com | Zumper | real-estate opendoor.com | Opendoor | real-estate offerpad.com | Offerpad | real-estate compass.com | Compass | real-estate realtor.com | Realtor.com | real-estate rightmove.co.uk | Rightmove | real-estate | GB zoopla.co.uk | Zoopla | real-estate | GB realestate.com.au | realestate.com.au (REA) | real-estate | AU domain.com.au | Domain | real-estate | AU immobilienscout24.de | ImmoScout24 | real-estate | DE seloger.com | SeLoger | real-estate | FR idealista.com | idealista | real-estate | ES funda.nl | Funda | real-estate | NL carvana.com | Carvana | automotive,commerce carmax.com | CarMax | automotive,commerce vroom-placeholder.invalid | skip | skip autotrader.com | Autotrader | automotive,commerce cars.com | Cars.com | automotive,commerce cargurus.com | CarGurus | automotive,commerce copart.com | Copart | automotive,commerce kbb.com | Kelley Blue Book | automotive,media edmunds.com | Edmunds | automotive,media indeed.com | Indeed | labour,internet glassdoor.com | Glassdoor | labour,internet ziprecruiter.com | ZipRecruiter | labour,internet monster.com | Monster | labour,internet dice.com | Dice | labour,internet welcometothejungle.com | Welcome to the Jungle | labour,internet | FR seek.com.au | SEEK | labour,internet | AU reed.co.uk | Reed | labour,internet | GB totaljobs.com | Totaljobs | labour,internet | GB stepstone.de | StepStone | labour,internet | DE naukri.com | Naukri | labour,internet | IN upwork.com | Upwork | labour,internet fiverr.com | Fiverr | labour,internet | IL toptal.com | Toptal | labour,internet freelancer.com | Freelancer.com | labour,internet | AU peopleperhour.com | PeoplePerHour | labour,internet | GB malt.com | Malt | labour,internet | FR contra.com | Contra | labour,internet wetransfer.com | WeTransfer | consumer-tech,saas | NL fromsmash.com | Smash | consumer-tech,saas | FR filemail.com | Filemail | consumer-tech,saas | "NO" hightail.com | Hightail | enterprise,saas send-anywhere.com | Send Anywhere | consumer-tech,saas | KR visme.co | Visme | enterprise,saas piktochart.com | Piktochart | enterprise,saas | MY snappa.com | Snappa | enterprise,saas | CA kapwing.com | Kapwing | media,saas veed.io | VEED | media,saas | GB invideo.io | InVideo | media,saas,ai | IN animoto.com | Animoto | media,saas lumen5.com | Lumen5 | media,saas | CA pictory.ai | Pictory | media,saas,ai opus.pro | OpusClip | media,saas,ai capcut.com | CapCut | media,consumer-tech | SG canva-placeholder.invalid | skip | skip remove.bg | remove.bg | media,saas,ai | AT photoroom.com | Photoroom | media,saas,ai | FR cleanup-placeholder.invalid | skip | skip picsart.com | Picsart | media,consumer-tech befunky.com | BeFunky | media,consumer-tech pixlr.com | Pixlr | media,consumer-tech | SG fotor.com | Fotor | media,consumer-tech | CN # ── enterprise infrastructure & IT (Statuspage-heavy) ── solarwinds-placeholder.invalid | skip | skip manageengine.com | ManageEngine | enterprise,software | IN freshservice-placeholder.invalid | skip | skip sysaid.com | SysAid | enterprise,saas | IL ivanti.com | Ivanti | enterprise,cyber,software bmc.com | BMC Software | enterprise,software cherwell-placeholder.invalid | skip | skip topdesk.com | TOPdesk | enterprise,saas | NL halopsa.com | HaloPSA | enterprise,saas | GB syncromsp.com | Syncro | enterprise,saas pulseway.com | Pulseway | enterprise,saas | IE n-able.com | N-able | enterprise,saas auvik.com | Auvik | enterprise,saas | CA domotz.com | Domotz | enterprise,saas | GB liongard.com | Liongard | enterprise,saas itglue.com | IT Glue | enterprise,saas | CA hudu.com | Hudu | enterprise,saas passportal-placeholder.invalid | skip | skip scalepad.com | ScalePad | enterprise,saas | CA cove-placeholder.invalid | skip | skip axcient.com | Axcient | enterprise,saas acronis.com | Acronis | enterprise,cyber,software | CH arcserve.com | Arcserve | enterprise,software commvault.com | Commvault | enterprise,software rubrik.com | Rubrik | enterprise,cyber,software cohesity.com | Cohesity | enterprise,software zerto-placeholder.invalid | skip | skip nakivo.com | NAKIVO | enterprise,software msp360.com | MSP360 | enterprise,software spanning.com | Spanning | enterprise,saas afi.ai | Afi | enterprise,saas keepit.com | Keepit | enterprise,saas | DK avepoint.com | AvePoint | enterprise,saas sharegate.com | ShareGate | enterprise,saas | CA bittitan.com | BitTitan | enterprise,saas cloudm.io | CloudM | enterprise,saas | GB quest.com | Quest Software | enterprise,software sailpoint.com | SailPoint | cyber,saas saviynt.com | Saviynt | cyber,saas oktane-placeholder.invalid | skip | skip secret-double-octopus-placeholder.invalid | skip | skip hypr.com | HYPR | cyber,saas transmitsecurity.com | Transmit Security | cyber,saas | IL silverfort.com | Silverfort | cyber,saas | IL authomize-placeholder.invalid | skip | skip appomni.com | AppOmni | cyber,saas obsidiansecurity.com | Obsidian Security | cyber,saas valence-placeholder.invalid | skip | skip nudgesecurity.com | Nudge Security | cyber,saas grip-placeholder.invalid | skip | skip zluri.com | Zluri | enterprise,saas | IN torii.ai | Torii | enterprise,saas | IL productiv.com | Productiv | enterprise,saas vendr.com | Vendr | enterprise,saas tropic.app | Tropic | enterprise,saas cledara.com | Cledara | enterprise,saas | GB spendflo-placeholder.invalid | skip | skip """ STATUS_JSON_PATHS = ["/api/v2/summary.json", "/summary.json", "/api/v1/summary"] CHALLENGE = 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) class Bucket: def __init__(self, rate: float) -> None: self.rate, self.tokens, self.t, self.lock = rate, 1.0, time.monotonic(), threading.Lock() def take(self) -> None: while True: with self.lock: now = time.monotonic() self.tokens = min(1.0 + self.rate, self.tokens + (now - self.t) * self.rate) self.t = now if self.tokens >= 1: self.tokens -= 1 return wait = (1 - self.tokens) / self.rate time.sleep(wait) BUCKET = Bucket(RATE) _local = threading.local() _dns_cache: dict[str, bool] = {} _dns_lock = threading.Lock() def session() -> requests.Session: s = getattr(_local, "s", None) if s is None: s = requests.Session() s.headers.update({"User-Agent": UA, "Accept": "application/json, text/html;q=0.9, */*;q=0.8", "Accept-Language": "en"}) _local.s = s return s def resolves(host: str) -> bool: with _dns_lock: if host in _dns_cache: return _dns_cache[host] try: socket.getaddrinfo(host, 443, proto=socket.IPPROTO_TCP) ok = True except OSError: ok = False with _dns_lock: _dns_cache[host] = ok return ok def get(url: str) -> dict | None: host = urlparse(url).hostname or "" if not resolves(host): return None BUCKET.take() try: r = session().get(url, timeout=TIMEOUT, allow_redirects=True, stream=True) body = b"" for chunk in r.iter_content(65536): body += chunk if len(body) > MAX_BODY: break r.close() text = body.decode(r.encoding or "utf-8", errors="replace") if body else "" return {"status": r.status_code, "ct": (r.headers.get("content-type") or "").lower(), "final": r.url, "text": text, "len": len(body)} except requests.RequestException: return None def json_shape(text: str) -> tuple[str, dict] | None: t = text.lstrip(" \n\r\t") if not t.startswith("{"): return None try: j = json.loads(t) except ValueError: return None if not isinstance(j, dict): return None page = j.get("page") if isinstance(page, dict) and isinstance(j.get("status"), dict) and ("components" in j or "incidents" in j) and "id" in page: return "statuspage", j if isinstance(j.get("subpages"), list) and any(isinstance(p, dict) and "summary" in p for p in j["subpages"]): return "incidentio", j if isinstance(page, dict) and ("activeIncidents" in j or "activeMaintenances" in j or isinstance(page.get("status"), str)): return "instatus", j if "ongoing_incidents" in j or "page_title" in j: return "incidentio", j if isinstance(j.get("result"), dict) and "status_overall" in j["result"]: return "statusio", j return None def parse_candidates() -> list[dict]: out, seen = [], set() for ln in CANDIDATES.strip().splitlines(): ln = ln.strip() if not ln or ln.startswith("#"): continue parts = [p.strip() for p in ln.split("|")] domain = parts[0].lower() if domain.endswith(".invalid") or domain in seen or len(parts) < 3: continue seen.add(domain) country = (parts[3].strip('"') if len(parts) > 3 and parts[3] else "US") hosts = [h.strip() for h in parts[4].split(",") if h.strip()] if len(parts) > 4 else [] out.append({"domain": domain, "name": parts[1], "categories": [c.strip() for c in parts[2].split(",")], "country": country, "hosts": hosts}) return out def load_registry() -> tuple[dict[str, str], set[str], set[str], set[str]]: """id→domain, all sensor URLs, hosts of existing status sensors, all ids.""" id_domain: dict[str, str] = {} urls: set[str] = set() status_hosts: set[str] = set() ids: set[str] = set() for f in ["config/sources.yaml"] + sorted(glob.glob("config/sources.d/*.yaml")): if f.endswith(FRAGMENT): continue d = yaml.safe_load(open(f)) or {} for s in d.get("sources", []): ids.add(s["id"]) if s.get("domain") and not s.get("extend"): id_domain[s["id"]] = s["domain"].lower() for sen in s.get("sensors", []) or []: u = sen.get("url", "") urls.add(u.rstrip("/")) if sen.get("type") == "STATUSPAGE" or sen.get("connector") in ("statuspage", "statusjson"): h = urlparse(u).hostname if h: status_hosts.add(h) return id_domain, urls, status_hosts, ids def apex(host: str) -> str: parts = host.split(".") if len(parts) >= 3 and parts[-2] in ("co", "com", "org", "gov", "ac", "net", "edu") and len(parts[-1]) == 2: return ".".join(parts[-3:]) return ".".join(parts[-2:]) def brand(domain: str) -> str: return apex(domain).split(".")[0] def probe_domain(c: dict, existing_urls: set[str], status_hosts: set[str]) -> dict: d = c["domain"] hits: list[dict] = [] notes: list[str] = [] probed_hosts: set[str] = set() def try_status_host(host: str, label: str) -> bool: if host in probed_hosts: return False if host in status_hosts: notes.append(f"{host}: already covered") return True probed_hosts.add(host) if not resolves(host): return False for p in STATUS_JSON_PATHS: url = f"https://{host}{p}" if url in existing_urls: return True r = get(url) if not r: continue if r["status"] == 200: sh = json_shape(r["text"]) if sh: flavor, j = sh title = (j.get("page") or {}).get("name") if isinstance(j.get("page"), dict) else j.get("page_title", "") hits.append({"kind": "status", "flavor": flavor, "url": url, "final": r["final"], "title": title or "", "via": label}) return True r = get(f"https://{host}/") if r and r["status"] == 200: body = r["text"] 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) if m: url = f"https://api.status.io/1.0/status/{m.group(1)}" if url in existing_urls: return True rr = get(url) if rr and rr["status"] == 200 and json_shape(rr["text"]): hits.append({"kind": "status", "flavor": "statusio", "url": url, "final": rr["final"], "title": "", "via": label}) return True # Statuspage / Instatus embedded under another host (e.g. custom domain proxying) m = re.search(r"https://([a-z0-9.-]+)/api/v2/summary\.json", body) if m and m.group(1) not in probed_hosts: return try_status_host(m.group(1), f"embedded in {host}") fh = urlparse(r["final"]).hostname or host if fh != host and fh not in probed_hosts: return try_status_host(fh, f"redirect from {host}") 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" if CHALLENGE.search(body[:6000]): prov = "challenge" notes.append(f"{host}: {prov} status page, no machine-readable endpoint") elif r and r["status"] in (403, 429, 503): notes.append(f"{host}: http {r['status']}") return False found = False # 0. explicit hosts for h in c.get("hosts", []): if try_status_host(h, "explicit host"): found = True break # 1. status. if not found: sh = f"status.{apex(d)}" if sh in status_hosts: notes.append(f"{sh}: already covered") found = True elif resolves(sh): found = try_status_host(sh, "status host") # 2. /status if not found: r = get(f"https://{d}/status") or get(f"https://www.{d}/status") if r and r["status"] == 200: fh = urlparse(r["final"]).hostname or d if fh not in (d, f"www.{d}") and fh not in probed_hosts: found = try_status_host(fh, f"redirect from {d}/status") elif "text/html" in r["ct"]: m = re.search(r"https://([a-z0-9.-]+)/api/v2/", r["text"]) if m and m.group(1) not in probed_hosts: found = try_status_host(m.group(1), f"embedded in {d}/status") # 3. .statuspage.io / .instatus.com if not found: b = brand(d) for h in (f"{b}.statuspage.io", f"{b}.instatus.com"): if try_status_host(h, "brand host"): found = True break return {"domain": d, "hits": hits, "notes": notes} def cmd_probe(args: argparse.Namespace) -> None: id_domain, urls, status_hosts, _ids = load_registry() cands = parse_candidates() if args.only: only = set(args.only.split(",")) cands = [c for c in cands if c["domain"] in only] done: set[str] = set() if os.path.exists(args.out) and not args.fresh: for ln in open(args.out): try: done.add(json.loads(ln)["domain"]) except ValueError: pass todo = [c for c in cands if c["domain"] not in done] print(f"{len(cands)} candidates, {len(done)} already probed, {len(todo)} to go · ≤ {RATE} req/s", file=sys.stderr) lock = threading.Lock() t0 = time.time() with open(args.out, "a") as out, ThreadPoolExecutor(max_workers=args.workers) as ex: futs = {ex.submit(probe_domain, c, urls, status_hosts): c for c in todo} for i, fut in enumerate(as_completed(futs), 1): c = futs[fut] try: res = fut.result() except Exception as e: # noqa: BLE001 res = {"domain": c["domain"], "hits": [], "notes": [f"probe error: {e}"]} res.update({"name": c["name"], "categories": c["categories"], "country": c["country"]}) with lock: out.write(json.dumps(res) + "\n") out.flush() kinds = ",".join(sorted({h["kind"] + (":" + h["flavor"] if h.get("flavor") else "") for h in res["hits"]})) or "-" print(f"[{i}/{len(todo)} {time.time() - t0:5.0f}s] {c['domain']:28s} {kinds}", file=sys.stderr) def slug(s: str) -> str: s = s.lower().replace("&", " and ") s = re.sub(r"\(.*?\)", "", s) s = re.sub(r"[^a-z0-9]+", "-", s).strip("-") return s # Same organization declared earlier under another domain → extend instead of redeclaring. EXTEND_OVERRIDE: dict[str, str] = {} # Natural slug already taken by a different organization. NEW_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", "zip.co": "zip-au", "ziphq.com": "zip-procurement", "tally.so": "tally-forms", "tally.xyz": "tally-governance", "radar.com": "radar-geofencing", "flo.com": "flo-ev", "flo.health": "flo-health", "color.com": "color-health", "column.com": "column-bank", "increase.com": "increase-bank", "float.com": "float-scheduling", "hive.com": "hive-pm", "current.com": "current-bank", "dave.com": "dave-app", "route.com": "route-app", "copper.com": "copper-crm", "copper.co": "copper-custody", "close.com": "close-crm", "grain.com": "grain-ai", "mention.com": "mention-app", "clay.com": "clay-ai", "gem.com": "gem-recruiting", "one.nz": "one-nz", "free.fr": "free-mobile", "three.co.uk": "three-uk", "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"} # `.statuspage.io` / `.instatus.com` hits whose page title is generic or belongs to another company # (checked by hand on 2026-09-13): nx → "Nexo Systems", scylladb → "TestApp", phantom → "PhantomPay", workramp → # "Confirm LearnUp", copper / play / you / ally / dave / stripe / rainbow / route / fabric / rocket / convert / continue / # unified / ssl / launchpad / tally / hey / runn / sr / quillbot / leonardo / orca / jane → ambiguous one-word titles. DROP_BRAND_HOSTS = {"nx", "scylladb", "phantom", "workramp", "copper", "play", "you", "ally", "dave", "stripe", "rainbow", "route", "fabric", "rocket", "convert", "continue", "unified", "ssl", "launchpad", "tally", "hey", "runn", "sr", "quillbot", "leonardo", "orca", "jane"} def cmd_gate(args: argparse.Namespace) -> None: rows = [json.loads(ln) for ln in open(args.inp) if ln.strip()] targets = [h["url"] for r in rows for h in r["hits"] if re.search(r"\.(statuspage\.io|instatus\.com)/", h["url"])] drop: list[str] = [] for u in targets: r = get(u) if not r or r["status"] != 200: drop.append(u) continue try: j = json.loads(r["text"]) except ValueError: drop.append(u) continue pg = j.get("page") or {} comps = len(j.get("components") or []) upd = str(pg.get("updated_at") or "") legacy = "old" in (pg.get("url") or "").split("//")[-1].split("/")[0].split(".")[0] if comps == 0 or (upd[:4].isdigit() and upd[:10] < "2024-09-01") or legacy: drop.append(u) print(f"drop {u} components={comps} updated_at={upd[:10]} url={pg.get('url', '')}", file=sys.stderr) json.dump(drop, open(args.drop, "w")) print(f"{len(drop)} of {len(targets)} brand-host hits dropped → {args.drop}", file=sys.stderr) def cmd_emit(args: argparse.Namespace) -> None: id_domain, urls, status_hosts, ids = load_registry() gated: set[str] = set(json.load(open(args.drop))) if args.drop and os.path.exists(args.drop) else set() domain_id = dict(EXTEND_OVERRIDE) for i, dom in id_domain.items(): domain_id.setdefault(dom, i) domain_id.setdefault(apex(dom), i) rows = [json.loads(ln) for ln in open(args.inp) if ln.strip()] rows.sort(key=lambda r: r["domain"]) used_urls: set[str] = set() new_ids: set[str] = set() entries: dict[str, tuple[list[str], list[str]]] = {} n_status = 0 for r in rows: if not r["hits"]: continue d = r["domain"] 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) sensors: list[str] = [] for h in r["hits"]: u = h["url"].rstrip("/") if u in urls or u in used_urls or h["final"].rstrip("/") in urls: continue if urlparse(u).hostname in status_hosts: continue if h.get("via") == "brand host" and (urlparse(u).hostname or "").split(".")[0] in DROP_BRAND_HOSTS: continue if h["url"] in gated: continue used_urls.add(u) if h["kind"] == "status": n_status += 1 if h["flavor"] == "statuspage": sensors.append(f' - {{ name: status, url: "{h["url"]}", type: STATUSPAGE, connector: statuspage, tier: S }}') else: label = {"instatus": "instatus", "incidentio": "incident.io", "statusio": "status.io"}[h["flavor"]] sensors.append(f' - {{ name: status ({label}), url: "{h["url"]}", type: STATUSPAGE, connector: statusjson, tier: S }}') if not sensors: continue seen_names: dict[str, int] = {} fixed = [] for s in sensors: m = re.match(r" - \{ name: ([^,]+),", s) nm = m.group(1) if nm in seen_names: seen_names[nm] += 1 s = s.replace(f"name: {nm},", f"name: {nm} {seen_names[nm]},", 1) else: seen_names[nm] = 1 fixed.append(s) if existing: head = [f" - id: {existing}", " extend: true"] if r.get("country"): cc = r["country"] head.append(f' country: {json.dumps(cc) if cc in ("NO",) else cc}') head.append(" sensors:") key = existing else: sid = NEW_ID_OVERRIDE.get(d) or slug(r["name"]) or slug(d.split(".")[0]) if sid in ids or sid in new_ids: sid = slug(d.replace(".", "-")) if sid in ids or sid in new_ids: sid = f"{sid}-status" new_ids.add(sid) cats = ", ".join(r["categories"]) cc = r["country"] head = [f" - id: {sid}", f" name: {r['name']}", f" domain: {d}", f" categories: [{cats}]", " tier: S", f" country: {json.dumps(cc) if cc in ('NO',) else cc}", " discover: { rss: true, status: true }", " sensors:"] key = sid if key in entries: entries[key][1].extend(fixed) else: entries[key] = (head, list(fixed)) print(f"# config/sources.d/{FRAGMENT} — HEADER TO BE WRITTEN BY HAND ({n_status} status sensors, {len(entries)} organizations)") print("sources:") for head, sens in entries.values(): for ln in head: print(ln) for s in sens: print(s) blocked = [n for r in rows for n in r["notes"] if "already covered" not in n] print("# ── probe notes (not sensors) ──", file=sys.stderr) for n in sorted(set(blocked)): print(f"# {n}", file=sys.stderr) def main() -> None: ap = argparse.ArgumentParser() sub = ap.add_subparsers(dest="cmd", required=True) p = sub.add_parser("probe") p.add_argument("--out", default="/tmp/probe58.jsonl") p.add_argument("--only") p.add_argument("--fresh", action="store_true") p.add_argument("--workers", type=int, default=12) p.set_defaults(fn=cmd_probe) g = sub.add_parser("gate") g.add_argument("--in", dest="inp", default="/tmp/probe58.jsonl") g.add_argument("--drop", default="/tmp/probe58-drop.json") g.set_defaults(fn=cmd_gate) e = sub.add_parser("emit") e.add_argument("--in", dest="inp", default="/tmp/probe58.jsonl") e.add_argument("--drop", default="/tmp/probe58-drop.json") e.set_defaults(fn=cmd_emit) a = ap.parse_args() a.fn(a) if __name__ == "__main__": main()