# Equinix — IBX data center pages + global press-release feed id: equinix name: Equinix domain: www.equinix.com kind: operator mode: hybrid priority: 1 license: "Publicly accessible operator pages; factual data only; © Equinix, Inc." attribution: "Equinix" homepage: https://www.equinix.com/data-centers notes: > www.equinix.com is behind Akamai: the bot user-agent gets HTTP 403, a browser identity (level 2, still direct HTTP) is served normally. Level 1 is kept as the start so the runtime escalates only when blocked; Scrapfly (L4) is the last resort and is not reached for IBX pages (0 credits in dry runs). Per-IBX pages publish address + coordinates + colocation space + certifications, but no MW figure — none is invented. NEWSROOM DISABLED (2026-09-11): press releases live on newsroom.equinix.com (RSS https://newsroom.equinix.com/press-releases-global?pagetemplate=rss, URLs /YYYY-MM-DD-). Those pages are served normally (HTTP 200, ~20 KB text) but embed Cloudflare's "/cdn-cgi/challenge-platform/" beacon, which the shared looksBlockedOrEmpty() heuristic treats as a bot wall → every article escalated to Scrapfly (30 credits each, 120 credits in the first dry run). Until the heuristic is tightened (only treat the marker as blocked on short pages), the feed is left out rather than burning premium credits on open pages. coverage: { global: true, operators: ["Equinix"] } fetch: level: 1 maxLevel: 4 rpm: 20 concurrency: 2 respectRobots: true maxCreditsPerRun: 60 maxCreditsPerDay: 120 # premium credits per UTC day for this connector (all runs, all workers) discovery: sitemap: ["/sitemap-core.xml"] rss: ["https://newsroom.equinix.com/press-releases-global?pagetemplate=rss"] # fetcher heuristic fixed 2026-09-11: challenge-platform beacon on content-rich pages no longer escalates include: - "^https://www\\.equinix\\.com/data-centers/" - "^https://newsroom\\.equinix\\.com/" exclude: - "\\?" - "/data-centers/(colocation|design|data-center-excellence|services|solutions)" classify: - { pattern: "/data-centers/[a-z-]+-colocation/[a-z-]+-colocation/[a-z0-9-]+-data-centers/[a-z]{2,3}\\d{1,2}[a-z]?$", group: facility_pages, pageType: facility_page, priority: 60 } - { pattern: "/data-centers/[a-z-]+-colocation/[a-z-]+-colocation/[a-z0-9-]+-data-centers$", group: index, pageType: facility_index, priority: 20 } - { pattern: "/data-centers/[a-z-]+-colocation(/[a-z-]+-colocation)?$", group: index, pageType: facility_index, priority: 10 } - { pattern: "/data-centers/", group: index, pageType: facility_index, priority: 5 } maxUrlsPerRun: 2000 schedule: facility_pages: weekly newsroom: daily index: monthly sitemap: weekly rss: daily extractors: facility: # selected by URL only: classifyPage() may mislabel deep facility URLs (e.g. "closure"), the URL is authoritative match: ["/data-centers/[a-z-]+-colocation/[a-z-]+-colocation/[a-z0-9-]+-data-centers/[a-z]{2,3}\\d{1,2}[a-z]?$"] kind: facility parser: equinix_facility_v1 defaults: operatorName: Equinix operatorKind: colocation facilityType: colocation parserVersion: v1