1<!doctype html> 2<html lang="en"> 3 <head> 4 <meta charset="UTF-8" /> 5 <link rel="icon" type="image/svg+xml" href="/favicon.svg" /> 6 <link rel="alternate icon" href="/favicon.ico" sizes="16x16 32x32 48x48" /> 7 <link rel="apple-touch-icon" href="/apple-touch-icon.png" /> 8 <meta name="viewport" content="width=device-width, initial-scale=1.0" /> 9 <link rel="preconnect" href="https://fonts.googleapis.com" /> 10 <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin /> 11 <link 12 href="https://fonts.googleapis.com/css2?family=Geist:wght@400;500;600;700&family=Geist+Mono:wght@400;500;600&display=swap" 13 rel="stylesheet" 14 /> 15 <title>Datasource Pulse | Catch drift when everything still looks green</title> 16 <meta name="description" content="Catch output drift and silent failures even when run status looks green. Check available Actor run history and sampled output, with additional credential and quota checks." /> 17 18 <meta property="og:title" content="Datasource Pulse | Catch drift when everything still looks green"> 19 <meta property="og:description" content="A successful run and valid credentials do not guarantee useful data. Check available Actor run history and sampled output for drift and silent failures."> 20 <meta property="og:url" content="https://datasourcepulse.com/"> 21 <meta property="og:type" content="website"> 22 <meta property="og:site_name" content="Datasource Pulse"> 23 24 <meta property="og:image" content="https://datasourcepulse.com/og-image.jpg"> 25 <meta property="og:image:width" content="1200"> 26 <meta property="og:image:height" content="630"> 27 <meta property="og:image:alt" content="Datasource Pulse · Catch output drift and silent failures."> 28 29 <meta name="twitter:card" content="summary_large_image"> 30 <meta name="twitter:title" content="Datasource Pulse"> 31 <meta name="twitter:description" content="Catch output drift and silent failures even when run status looks green."> 32 <meta name="twitter:image" content="https://datasourcepulse.com/og-image.jpg"> 33 <link rel="canonical" href="https://datasourcepulse.com/" /> 34 35 <!-- Schema.org: Organization + WebSite + WebApplication, linked via @id --> 36
36<script type="application/ld+json"> 37 { 38 "@context": "https://schema.org", 39 "@graph": [ 40 { 41 "@type": "Organization", 42 "@id": "https://datasourcepulse.com/#organization", 43 "name": "Datasource Pulse", 44 "url": "https://datasourcepulse.com/", 45 "logo": "https://datasourcepulse.com/og-image.jpg" 46 }, 47 { 48 "@type": "WebSite", 49 "@id": "https://datasourcepulse.com/#website", 50 "name": "Datasource Pulse", 51 "url": "https://datasourcepulse.com/", 52 "publisher": { "@id": "https://datasourcepulse.com/#organization" } 53 }, 54 { 55 "@type": "WebApplication", 56 "@id": "https://datasourcepulse.com/#app", 57 "name": "Datasource Pulse", 58 "description": "Catch output drift and silent failures even when run status looks green. Check available Actor run history and sampled output, with additional credential and quota checks.", 59 "url": "https://datasourcepulse.com/", 60 "applicationCategory": "DeveloperApplication", 61 "operatingSystem": "Web", 62 "publisher": { "@id": "https://datasourcepulse.com/#organization" } 63 } 64 ] 65 } 66 </script>
66 67
67<script type="module" crossorigin src="/assets/index-Co7QFwY6.js"></script>
67 68 <link rel="stylesheet" crossorigin href="/assets/index-Ciw-TnyX.css"> 69 </head> 70 <body> 71 <div id="root"><div class="min-h-screen flex flex-col bg-background font-sans"><header class="fixed top-0 w-full z-50 transition-all duration-300 bg-transparent py-5"><div class="container mx-auto px-4 sm:px-6 md:px-12 max-w-6xl flex items-center justify-between"><div class="flex items-center gap-2.5 font-mono font-semibold tracking-tight text-primary text-base sm:text-lg whitespace-nowrap "><span class="relative flex h-2.5 w-2.5"><span class="animate-ping absolute inline-flex h-full w-full rounded-full bg-accent opacity-75"></span><span class="relative inline-flex rounded-full h-2.5 w-2.5 bg-accent"></span></span>Datasource Pulse</div><nav class="flex items-center gap-2 md:gap-6"><div class="hidden md:flex items-center gap-5 lg:gap-6 text-sm font-medium text-muted-foreground"><a href="/#problem" class="hover:text-primary transition-colors whitespace-nowrap hidden lg:inline-block">The Problem</a><a href="/#how-it-works" class="hover:text-primary transition-colors whitespace-nowrap hidden lg:inline-block">How it Works</a><a href="/#integrations" class="hover:text-primary transition-colors whitespace-nowrap hidden lg:inline-block">Integrations</a><a href="/#pricing" class="hover:text-primary transition-colors whitespace-nowrap hidden lg:inline-block">Pricing</a><a href="/blog/" class="hover:text-primary transition-colors whitespace-nowrap ">Blog</a><a href="/agents/" class="hover:text-primary transition-colors whitespace-nowrap ">For Agents</a></div><span class="hidden min-[360px]:inline-flex"><a href="https://apify.com/growth_wizard/datasource-pulse" class="inline-flex items-center justify-center whitespace-nowrap rounded-md font-medium transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-accent disabled:pointer-events-none disabled:opacity-50 bg-primary text-primary-foreground hover:bg-primary/90 shadow-sm h-9 px-3 text-xs " target="_blank" rel="noopener noreferrer">Run it on Apify</a></span><button type="button" class="md:hidden p-2 -mr-2 text-primary hover:text-accent transition-colors" aria-label="Open menu" aria-expanded="false"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-menu w-5 h-5" aria-hidden="true"><path d="M4 5h16"></path><path d="M4 12h16"></path><path d="M4 19h16"></path></svg></button></nav></div></header><main class="flex-1"><section class="relative pt-32 pb-20 md:pt-48 md:pb-32 overflow-hidden bg-grid-pattern"><div class="absolute inset-0 bg-gradient-to-b from-background/80 via-background/50 to-background pointer-events-none"></div><div class="container mx-auto px-6 md:px-12 max-w-6xl relative z-10"><div class="max-w-3xl mx-auto text-center"><div class="flex flex-wrap items-center justify-center gap-3 mb-8 animate-fade-in-up"><div class="inline-flex items-center gap-2 px-3 py-1.5 rounded-full bg-accent/10 text-accent text-xs font-semibold"><span class="relative flex h-2 w-2"><span class="animate-ping absolute inline-flex h-full w-full rounded-full bg-accent opacity-75"></span><span class="relative inline-flex rounded-full h-2 w-2 bg-accent"></span></span>Output quality monitoring</div><div class="inline-flex items-center px-3 py-1.5 rounded-full border border-primary/15 bg-primary/5 text-primary text-xs font-semibold">x402-payable · no approval</div></div><h1 class="text-5xl md:text-7xl font-bold tracking-tight text-primary mb-6 animate-fade-in-up delay-100 leading-tight">Catch drift when everything still looks <span class="text-muted-foreground line-through decoration-accent/50 decoration-4">green</span></h1><p class="text-xl md:text-2xl text-muted-foreground mb-10 animate-fade-in-up delay-200 leading-relaxed max-w-2xl mx-auto">A successful run and valid credentials do not guarantee useful data. Fields can disappear, values can become empty, and output can change without triggering an obvious error. Your pipeline may still look healthy while the data it depends on is no longer usable.</p><div class="flex flex-col sm:flex-row items-center justify-center gap-4 animate-fade-in-up delay-300">
71<a href="https://apify.com/growth_wizard/datasource-pulse" class="inline-flex items-center justify-center whitespace-nowrap rounded-md font-medium transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-accent disabled:pointer-events-none disabled:opacity-50 bg-primary text-primary-foreground hover:bg-primary/90 shadow-sm h-12 px-8 text-base w-full sm:w-auto text-base" target="_blank" rel="noopener noreferrer">Run it on Apify</a><p class="text-sm text-muted-foreground mt-4 sm:mt-0 sm:ml-4 font-mono bg-secondary px-3 py-1.5 rounded-md">$0.02 per check ⢠No subscription</p></div></div><div class="mt-20 md:mt-32 max-w-4xl mx-auto border border-border rounded-xl shadow-2xl bg-white overflow-hidden animate-fade-in-up delay-500"><div class="flex items-center gap-2 px-4 py-3 border-b border-border bg-gray-50/50"><div class="w-3 h-3 rounded-full bg-red-400"></div><div class="w-3 h-3 rounded-full bg-amber-400"></div><div class="w-3 h-3 rounded-full bg-green-400"></div><div class="ml-4 text-xs font-mono text-muted-foreground">example_alerts / #data-ops</div></div><div class="p-6 md:p-8 bg-white font-mono text-sm leading-relaxed"><div class="flex gap-4 mb-6 opacity-50"><div class="w-10 h-10 rounded bg-gray-100 flex-shrink-0"></div><div><div class="flex gap-2 items-baseline mb-1"><span class="font-bold text-primary">Datasource Pulse</span><span class="text-xs text-muted-foreground">10:42 AM</span></div><div class="text-green-600 font-medium">Recovered: Output monitor</div><div class="text-muted-foreground">Sampled output matches the expected fields again.</div></div></div><div class="flex gap-4"><div class="w-10 h-10 rounded bg-accent/10 flex items-center justify-center flex-shrink-0 text-accent"><span class="relative flex h-3 w-3"><span class="animate-ping absolute inline-flex h-full w-full rounded-full bg-accent opacity-75"></span><span class="relative inline-flex rounded-full h-3 w-3 bg-accent"></span></span></div><div><div class="flex gap-2 items-baseline mb-1"><span class="font-bold text-primary">Datasource Pulse</span><span class="text-xs text-muted-foreground">3:14 AM</span></div><div class="text-accent font-medium mb-1">Failing: Output monitor</div><div class="text-primary mb-2">Failure class: <span class="bg-red-50 text-accent px-1.5 py-0.5 rounded text-xs border border-red-100">schema_drift</span></div><div class="text-muted-foreground pl-3 border-l-2 border-border mb-3">Impact: Downstream records may be missing expected fields.</div><div class="text-muted-foreground text-xs">Action required: Review the missing fields and update your pipeline expectations.</div></div></div></div></div></div></section><section id="problem" class="py-24 bg-white border-b border-border"><div class="container mx-auto px-6 md:px-12 max-w-6xl"><div class="max-w-3xl mb-16"><h2 class="text-3xl md:text-5xl font-bold tracking-tight text-primary mb-6">Your pipeline degrades silently.</h2><p class="text-xl text-muted-foreground leading-relaxed">The run succeeds. The credentials are valid. Yet an expected field has disappeared or the output is unexpectedly empty. Nothing needs to crash for the data your pipeline consumes to stop meeting your expectations.</p></div><div class="grid md:grid-cols-2 lg:grid-cols-3 gap-8"><div class="p-6 rounded-xl border border-border bg-gray-50/50 hover:bg-white hover:shadow-lg hover:border-accent/20 transition-all duration-300 group"><div class="w-12 h-12 rounded-lg bg-white border border-border flex items-center justify-center text-primary mb-5 group-hover:text-accent group-hover:border-accent/30 transition-colors"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-file-code2 lucide-file-code-2 w-6 h-6" aria-hidden="true"><path d="M4 22h14a2 2 0 0 0 2-2V7l-5-5H6a2 2 0 0 0-2 2v4"></path><path d="M14 2v4a2 2 0 0 0 2 2h4"></path><path d="m5 12-3 3 3 3"></path><path d="m9 18 3-3-3-3"></path></svg></div><h3 class="text-lg font-semibold text-primary mb-2">Catch output schema changes</h3><p class="text-muted-foreground">Check sampled output for missing or renamed fields, even when the run completed successfully.</p></div><div class="p-6 rounded-xl border border-border bg-gray-50/50 hover:bg-white hover:shadow-lg hover:border-accent/20 transition-all duration-300 group"><div class="w-12 h-12 rounded-lg bg-white border border-border flex items-center justify-center text-primary mb-5 group-hover:text-accent group-hover:border-accent/30 transition-colors"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-key w-6 h-6" aria-hidden="true"><path d="m15.5 7.5 2.3 2.3a1 1 0 0 0 1.4 0l2.1-2.1a1 1 0 0 0 0-1.4L19 4"></path><path d="m21 2-9.6 9.6"></path><circle cx="7.5" cy="15.5" r="5.5"></circle></svg></div><h3 class="text-lg font-semibold text-primary mb-2">Check credential validity</h3><p class="text-muted-foreground">See when configured access stops working, alongside your output-quality checks.</p></div><div class="p-6 rounded-xl border border-border bg-gray-50/50 hover:bg-white hover:shadow-lg hover:border-accent/20 transition-all duration-300 group"><div class="w-12 h-12 rounded-lg bg-white border border-border flex items-center justify-center text-primary mb-5 group-hover:text-accent group-hover:border-accent/30 transition-colors"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-activity w-6 h-6" aria-hidden="true"><path d="M22 12h-2.48a2 2 0 0 0-1.93 1.46l-2.35 8.36a.25.25 0 0 1-.48 0L9.24 2.18a.25.25 0 0 0-.48 0l
71-2.35 8.36A2 2 0 0 1 4.49 12H2"></path></svg></div><h3 class="text-lg font-semibold text-primary mb-2">Track available quota</h3><p class="text-muted-foreground">Compare reported usage with your configured warning thresholds.</p></div><div class="p-6 rounded-xl border border-border bg-gray-50/50 hover:bg-white hover:shadow-lg hover:border-accent/20 transition-all duration-300 group"><div class="w-12 h-12 rounded-lg bg-white border border-border flex items-center justify-center text-primary mb-5 group-hover:text-accent group-hover:border-accent/30 transition-colors"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-zap w-6 h-6" aria-hidden="true"><path d="M4 14a1 1 0 0 1-.78-1.63l9.9-10.2a.5.5 0 0 1 .86.46l-1.92 6.02A1 1 0 0 0 13 10h7a1 1 0 0 1 .78 1.63l-9.9 10.2a.5.5 0 0 1-.86-.46l1.92-6.02A1 1 0 0 0 11 14z"></path></svg></div><h3 class="text-lg font-semibold text-primary mb-2">Investigate changes sooner</h3><p class="text-muted-foreground">Use timestamped results and failure details to focus your investigation.</p></div><div class="p-6 rounded-xl border border-border bg-gray-50/50 hover:bg-white hover:shadow-lg hover:border-accent/20 transition-all duration-300 group"><div class="w-12 h-12 rounded-lg bg-white border border-border flex items-center justify-center text-primary mb-5 group-hover:text-accent group-hover:border-accent/30 transition-colors"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-shield-check w-6 h-6" aria-hidden="true"><path d="M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z"></path><path d="m9 12 2 2 4-4"></path></svg></div><h3 class="text-lg font-semibold text-primary mb-2">Understand downstream impact</h3><p class="text-muted-foreground">Add your own impact notes so the team knows why a detected change matters.</p></div><div class="p-6 rounded-xl border border-border bg-gray-50/50 hover:bg-white hover:shadow-lg hover:border-accent/20 transition-all duration-300 group"><div class="w-12 h-12 rounded-lg bg-white border border-border flex items-center justify-center text-primary mb-5 group-hover:text-accent group-hover:border-accent/30 transition-colors"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-layout-dashboard w-6 h-6" aria-hidden="true"><rect width="7" height="9" x="3" y="3" rx="1"></rect><rect width="7" height="5" x="14" y="3" rx="1"></rect><rect width="7" height="9" x="14" y="12" rx="1"></rect><rect width="7" height="5" x="3" y="16" rx="1"></rect></svg></div><h3 class="text-lg font-semibold text-primary mb-2">Review health over time</h3><p class="text-muted-foreground">Use dataset records to follow the health of your configured checks.</p></div></div></div></section><section id="how-it-works" class="py-24 bg-secondary"><div class="container mx-auto px-6 md:px-12 max-w-6xl"><div class="text-center max-w-3xl mx-auto mb-20"><h2 class="text-3xl md:text-5xl font-bold tracking-tight text-primary mb-6">The steady pulse of reliable infrastructure.</h2><p class="text-xl text-muted-foreground leading-relaxed">Datasource Pulse runs on a schedule you choose. It checks configured expectations, compares results with the previous state, and records detected changes with supporting details.</p></div><div class="relative max-w-5xl mx-auto"><div class="hidden md:block absolute top-1/2 left-0 w-full h-0.5 bg-border -translate-y-1/2 z-0"></div><div class="grid md:grid-cols-4 gap-6 relative z-10"><div class="bg-white p-6 rounded-xl border border-border shadow-sm flex flex-col items-center text-center"><div class="w-14 h-14 rounded-full bg-secondary flex items-center justify-center mb-4 border border-border"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-square-activity w-6 h-6 text-primary" aria-hidden="true"><rect width="18" height="18" x="3" y="3" rx="2"></rect><path d="M17 12h-2l-2 5-2-10-2 5H7"></path></svg></div><h3 class="font-semibold text-primary mb-2">1. Scheduled Trigger</h3><p class="text-sm text-muted-foreground">Runs every 1-6 hours, or triggered on-demand by an AI agent.</p></div><div class="bg-white p-6 rounded-xl border border-border shadow-sm flex flex-col items-center text-center">
71<div class="w-14 h-14 rounded-full bg-secondary flex items-center justify-center mb-4 border border-border"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-database w-6 h-6 text-primary" aria-hidden="true"><ellipse cx="12" cy="5" rx="9" ry="3"></ellipse><path d="M3 5V19A9 3 0 0 0 21 19V5"></path><path d="M3 12A9 3 0 0 0 21 12"></path></svg></div><h3 class="font-semibold text-primary mb-2">2. Probe Data</h3><p class="text-sm text-muted-foreground">Checks available run history and sampled output, or configured credential and quota signals.</p></div><div class="bg-white p-6 rounded-xl border border-accent/30 shadow-md flex flex-col items-center text-center relative overflow-hidden group"><div class="absolute inset-0 bg-accent/5 translate-y-full group-hover:translate-y-0 transition-transform duration-300"></div><div class="w-14 h-14 rounded-full bg-accent/10 flex items-center justify-center mb-4 border border-accent/20 relative z-10"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-git-commit-horizontal w-6 h-6 text-accent" aria-hidden="true"><circle cx="12" cy="12" r="3"></circle><line x1="3" x2="9" y1="12" y2="12"></line><line x1="15" x2="21" y1="12" y2="12"></line></svg></div><h3 class="font-semibold text-primary mb-2 relative z-10">3. State Check</h3><p class="text-sm text-muted-foreground relative z-10">Compares result to previous memory. Detects degradation or recovery.</p></div><div class="bg-white p-6 rounded-xl border border-border shadow-sm flex flex-col items-center text-center"><div class="w-14 h-14 rounded-full bg-secondary flex items-center justify-center mb-4 border border-border"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-bell w-6 h-6 text-primary" aria-hidden="true"><path d="M10.268 21a2 2 0 0 0 3.464 0"></path><path d="M3.262 15.326A1 1 0 0 0 4 17h16a1 1 0 0 0 .74-1.673C19.41 13.956 18 12.499 18 8A6 6 0 0 0 6 8c0 4.499-1.411 5.956-2.738 7.326"></path></svg></div><h3 class="font-semibold text-primary mb-2">4. Notify and Record</h3><p class="text-sm text-muted-foreground">Sends configured webhook or email notifications for detected state changes. Writes a dataset record.</p></div></div></div><div class="mt-20 max-w-4xl mx-auto bg-white rounded-xl border border-border overflow-hidden"><div class="p-6 md:p-8 flex flex-col md:flex-row items-center gap-8"><div class="flex-1"><h3 class="text-2xl font-bold text-primary mb-4">Context for investigation.</h3><p class="text-muted-foreground mb-4">Notifications highlight detected degradation, escalation and recovery. Previous state helps reduce repeated notifications while a detected condition remains unchanged. Dataset records retain the results of each check.</p><ul class="space-y-3"><li class="flex items-start gap-3"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-circle-check w-5 h-5 text-green-500 shrink-0 mt-0.5" aria-hidden="true"><circle cx="12" cy="12" r="10"></circle><path d="m9 12 2 2 4-4"></path></svg><span class="text-sm text-primary">Includes the specific <b>failure classification</b> (e.g., <code class="text-xs bg-gray-100 px-1 rounded">schema_drift</code>) to help focus your investigation.</span></li><li class="flex items-start gap-3"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-circle-check w-5 h-5 text-green-500 shrink-0 mt-0.5" aria-hidden="true"><circle cx="12" cy="12" r="10"></circle><path d="m9 12 2 2 4-4"></path></svg><span class="text-sm text-primary">Echoes your custom <b>impact note</b> verbatim so the on-call engineer knows what broke downstream.</span></li></ul></div><div class="w-full md:w-1/3 bg-gray-50 rounded-lg p-5 border border-border"><div class="text-xs font-mono text-muted-foreground mb-4 pb-2 border-b border-border">Example: POST /webhook</div><pre class="text-xs font-mono text-primary overflow-x-auto">{ 72 "transition": "healthy -> failing", 73 "connector_id": "output-monitor", 74 "failure_class": "schema_drift", 75 "message": "Output schema changed.", 76 "impact": "Expected fields may be missing downstream", 77 "metadata": { 78 "missing_fields": ["record_id"] 79 } 80}</pre></div></div></div></div></section><section class="py-24 bg-gray-50 border-b border-border"><div class="container mx-auto px-6 md:px-12 max-w-6xl"><div class="flex flex-col lg:flex-row-reverse gap-16 items-center"><div class="lg:w-1/2"><div class="inline-flex items-center gap-2 px-3 py-1.5 rounded-full bg-secondary text-primary text-xs font-semibold mb-6 border border-border"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-database w-3.5 h-3.5" aria-hidden="true"><ellipse cx="12" cy="5" rx="9" ry="3"></ellipse><path d="M3 5V19A9 3 0 0 0 21 19V5"></path><path d="M3 12A9 3 0 0 0 21 12"></path></svg>Output quality</div><h2 class="text-3xl md:text-4xl font-bold tracking-tight text-primary mb-6">Output drift and silent failures</h2><p class="text-lg text-muted-foreground mb-6 leading-relaxed">Datasource Pulse checks available Actor run history and sampled output against configured expectations to detect schema drift, unexpected empty output and changes in output volume.</p><p class="text-lg font-medium text-primary mb-8 border-l-2 border-accent pl-4">A green run status tells you a run completed, not that its output still meets your expectations.</p><div class="grid sm:grid-cols-2 gap-4"><div class="flex gap-3 bg-white p-4 rounded-lg border border-border shadow-sm"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-git-branch w-5 h-5 text-accent shrink-0" aria-hidden="true"><line x1="6" x2="6" y1="3" y2="15"></line><circle cx="18" cy="6" r="3"></circle><circle cx="6" cy="18" r="3"></circle><path d="M18 9a9 9 0 0 1-9 9"></path></svg><div><div class="text-sm font-semibold text-primary mb-0.5">Output Schema Drift</div><div class="text-xs text-muted-foreground">Checks sampled output for changed field names</div></div></div><div class="flex gap-3 bg-white p-4 rounded-lg border border-border shadow-sm"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-arrow-down-right w-5 h-5 text-accent shrink-0" aria-hidden="true"><path d="m7 7 10 10"></path><path d="M17 7v10H7"></path></svg><div><div class="text-sm font-semibold text-primary mb-0.5">Empty Output and Volume Drops</div><div class="text-xs text-muted-foreground">Checks reported output counts and optional volume baselines</div></div></div><div class="flex gap-3 bg-white p-4 rounded-lg border border-border shadow-sm"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-activity w-5 h-5 text-accent shrink-0" aria-hidden="true"><path d="M22 12h-2.48a2 2 0 0 0-1.93 1.46l-2.35 8.36a.25.25 0 0 1-.48 0L9.24 2.18a.25.25 0 0 0-.48 0l
80-2.35 8.36A2 2 0 0 1 4.49 12H2"></path></svg><div><div class="text-sm font-semibold text-primary mb-0.5">Success / Failure Rate</div><div class="text-xs text-muted-foreground">Reviews available 7-day and 30-day run history</div></div></div><div class="flex gap-3 bg-white p-4 rounded-lg border border-border shadow-sm"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-clock w-5 h-5 text-accent shrink-0" aria-hidden="true"><path d="M12 6v6l4 2"></path><circle cx="12" cy="12" r="10"></circle></svg><div><div class="text-sm font-semibold text-primary mb-0.5">Actor Staleness</div><div class="text-xs text-muted-foreground">Checks when the Actor was last modified</div></div></div><div class="flex gap-3 bg-white p-4 rounded-lg border border-border shadow-sm"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-triangle-alert w-5 h-5 text-accent shrink-0" aria-hidden="true"><path d="m21.73 18-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3"></path><path d="M12 9v4"></path><path d="M12 17h.01"></path></svg><div><div class="text-sm font-semibold text-primary mb-0.5">Cost Changes</div><div class="text-xs text-muted-foreground">Optional comparison with a rolling run-cost baseline</div></div></div></div></div><div class="lg:w-1/2 w-full"><div class="relative"><div class="absolute -inset-4 bg-gradient-to-r from-accent/5 to-transparent rounded-2xl blur-xl z-0"></div><div class="bg-white border border-border rounded-xl shadow-lg overflow-hidden relative z-10"><div class="border-b border-border bg-secondary px-4 py-3 flex justify-between items-center"><div class="text-xs font-mono text-muted-foreground font-semibold">example_dataset_record.json</div></div><div class="p-6 overflow-x-auto"><pre class="text-sm font-mono text-primary leading-relaxed"><span class="text-gray-400">{</span><span class="text-accent">"check_type"</span>: <span class="text-green-600">"actor"</span>,<span class="text-accent">"connector_label"</span>: <span class="text-green-600">"Output monitor"</span>,<span class="text-accent">"state"</span>: <span class="text-green-600">"failing"</span>,<span class="text-accent">"failure_class"</span>: <span class="text-green-600">"schema_drift"</span>,<span class="text-accent">"message"</span>: <span class="text-green-600">"Output schema changed."</span>,<span class="text-accent">"metadata"</span>: <span class="text-gray-400">{</span><span class="text-accent">"missing_fields"</span>: [<span class="text-green-600">"record_id"</span>],<span class="text-accent">"new_fields"</span>: [<span class="text-green-600">"id"</span>]<span class="text-gray-400">}</span><span class="text-gray-400">}</span></pre></div><div class="bg-red-50 p-4 border-t border-red-100 flex items-start gap-3"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-triangle-alert w-5 h-5 text-accent shrink-0 mt-0.5" aria-hidden="true"><path d="m21.73 18-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3"></path><path d="M12 9v4"></path><path d="M12 17h.01"></path></svg><p class="text-sm text-accent font-medium">Expected fields were missing from the sampled output.</p></div></div></div></div></div></div></section><section id="integrations" class="py-24 bg-white border-b border-border"><div class="container mx-auto px-6 md:px-12 max-w-6xl"><div class="flex flex-col lg:flex-row gap-16 items-center"><div class="lg:w-1/2"><div class="inline-flex items-center gap-2 px-3 py-1.5 rounded-full bg-secondary text-primary text-xs font-semibold mb-6 border border-border"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-server w-3.5 h-3.5" aria-hidden="true"><rect width="20" height="8" x="2" y="2" rx="2" ry="2"></rect><rect width="20" height="8" x="2" y="14" rx="2" ry="2"></rect><line x1="6" x2="6.01" y1="6" y2="6"></line><line x1="6" x2="6.01" y1="18" y2="18"></line></svg>Additional checks</div><h2 class="text-3xl md:text-4xl font-bold tracking-tight text-primary mb-6">Credential & Quota Health</h2><p class="text-lg text-muted-foreground mb-8 leading-relaxed">Additional checks cover request failures, credential validity, available quota and optional run-cost changes. Results include timestamps and supporting details so you can see what was observed.</p><ul class="space-y-6"><li class="flex gap-4"><div class="w-10 h-10 rounded-full bg-gray-50 border border-border flex items-center justify-center shrink-0"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-lock w-5 h-5 text-primary" aria-hidden="true"><rect width="18" height="11" x="3" y="11" rx="2" ry="2"></rect><path d="M7 11V7a5 5 0 0 1 10 0v4"></path></svg></div><div><h4 class="font-semibold text-primary mb-1">Check Credential Validity</h4><p class="text-sm text-muted-foreground leading-relaxed">Check whether configured credentials are accepted. Valid access is one signal, not proof that the data is useful.</p></div></li><li class="flex gap-4"><div class="w-10 h-10 rounded-full bg-accent/10 border border-accent/20 flex items-center justify-center shrink-0"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-circle-alert w-5 h-5 text-accent" aria-hidden="true"><circle cx="12" cy="12" r="10"></circle><line x1="12" x2="12" y1="8" y2="12"></line>
80<line x1="12" x2="12.01" y1="16" y2="16"></line></svg></div><div><h4 class="font-semibold text-primary mb-1">Custom Quota Soft Caps</h4><p class="text-sm text-muted-foreground leading-relaxed">Compare reported usage against <em>your</em> configured budget line, where the service exposes quota information.</p></div></li></ul><div class="mt-8 flex flex-col items-start gap-3"><p class="text-sm text-muted-foreground leading-relaxed">Send your monitoring requirements for a coverage and setup review.</p><button type="button" data-testid="button-setup-review-credentials" class="inline-flex items-center gap-2 rounded-md bg-primary px-4 py-2.5 text-sm font-semibold text-primary-foreground shadow-sm transition-colors hover:bg-primary/90 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-accent" aria-haspopup="dialog" aria-expanded="false" data-state="closed">Request setup review<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-arrow-right w-4 h-4" aria-hidden="true"><path d="M5 12h14"></path><path d="m12 5 7 7-7 7"></path></svg></button></div></div><div class="lg:w-1/2 w-full"><div class="bg-gray-50 border border-border rounded-xl p-8 shadow-sm"><h3 class="font-semibold text-primary mb-6 flex items-start gap-2"><span class="w-2 h-2 rounded-full bg-green-500 shrink-0 mt-2"></span>Monitor your own HTTP endpoint</h3><p class="text-sm text-muted-foreground leading-relaxed">Use a <code class="bg-white border border-border px-1.5 py-0.5 rounded text-xs text-primary">generic_http</code> check to compare an HTTP response with your configured success condition. Configure your URL and optional authentication in the Input tab.</p><div class="mt-8 p-4 bg-white border border-border rounded-lg text-sm"><div class="text-xs text-muted-foreground font-mono mb-2 uppercase tracking-wider">Example: expected HTTP status</div><div class="font-mono text-primary break-all"><span class="text-accent">"type"</span>: "credential",<br/><span class="text-accent">"vendor"</span>: "generic_http",<br/><span class="text-accent">"url"</span>: "https://your-service.example/health",<br/><span class="text-accent">"successStatusCode"</span>: 200</div></div></div></div></div><div class="mt-12 pt-8 border-t border-border flex flex-col sm:flex-row items-start sm:items-center gap-3 sm:gap-4"><p class="text-sm text-muted-foreground">Pipe alerts anywhere. Ready-made templates and webhook recipes for your automation stack:</p><div class="flex flex-wrap gap-2"><a href="/integrations/n8n/" class="inline-flex items-center gap-1.5 px-3 py-1.5 bg-white border border-border rounded-md text-xs font-semibold text-primary shadow-sm hover:border-primary/40 hover:text-accent transition-colors">n8n<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-arrow-right w-3 h-3" aria-hidden="true"><path d="M5 12h14"></path><path d="m12 5 7 7-7 7"></path></svg></a><a href="/integrations/zapier/" class="inline-flex items-center gap-1.5 px-3 py-1.5 bg-white border border-border rounded-md text-xs font-semibold text-primary shadow-sm hover:border-primary/40 hover:text-accent transition-colors">Zapier<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-arrow-right w-3 h-3" aria-hidden="true"><path d="M5 12h14"></path><path d="m12 5 7 7-7 7"></path></svg></a><a href="/integrations/make/" class="inline-flex items-center gap-1.5 px-3 py-1.5 bg-white border border-border rounded-md text-xs font-semibold text-primary shadow-sm hover:border-primary/40 hover:text-accent transition-colors">Make<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-arrow-right w-3 h-3" aria-hidden="true"><path d="M5 12h14"></path><path d="m12 5 7 7-7 7"></path></svg></a></div></div></div></section><section class="py-24 bg-primary text-primary-foreground relative overflow-hidden"><div class="absolute inset-0 opacity-10 bg-grid-pattern pointer-events-none" style="background-image:linear-gradient(to right, rgba(255, 255, 255, 0.2) 1px, transparent 1px), linear-gradient(to bottom, rgba(255, 255, 255, 0.2) 1px, transparent 1px)"></div><div class="container mx-auto px-6 md:px-12 max-w-6xl relative z-10"><div class="text-center max-w-3xl mx-auto mb-16"><div class="inline-flex items-center gap-2 px-3 py-1.5 rounded-full bg-white/10 text-white text-xs font-semibold mb-6 border border-white/20"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-cpu w-3.5 h-3.5" aria-hidden="true"><path d="M12 20v2"></path><path d="M12 2v2"></path><path d="M17 20v2"></path><path d="M17 2v2"></path><path d="M2 12h2"></path><path d="M2 17h2"></path><path d="M2 7h2"></path><path d="M20 12h2"></path><path d="M20 17h2"></path><path d="M20 7h2"></path><path d="M7 20v2"></path><path d="M7 2v2"></path><rect x="4" y="4" width="16" height="16" rx="2"></rect><rect x="8" y="8" width="8" height="8" rx="1"></rect></svg>Built for Agents</div><h2 class="text-3xl md:text-5xl font-bold tracking-tight mb-6">
80Agent-first architecture.</h2><p class="text-xl text-primary-foreground/70 leading-relaxed">AI agents build autonomous data pipelines. Datasource Pulse gives them structured results for detected output drift and other configured health checks.</p></div><div class="grid md:grid-cols-3 gap-8"><div class="bg-white/5 border border-white/10 p-8 rounded-xl backdrop-blur-sm"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-code-xml w-8 h-8 text-accent mb-5" aria-hidden="true"><path d="m18 16 4-4-4-4"></path><path d="m6 8-4 4 4 4"></path><path d="m14.5 4-5 16"></path></svg><h3 class="text-lg font-semibold mb-3">API & MCP Ready</h3><p class="text-primary-foreground/70 text-sm leading-relaxed">Discoverable and callable as a tool via the Apify API and MCP. Takes a structured JSON input manifest, returns exactly one status record per connector.</p><a href="/agents/" class="text-sm font-medium text-white hover:text-accent transition-colors underline underline-offset-4 inline-block mt-4">Agent access docs â</a></div><div class="bg-white/5 border border-white/10 p-8 rounded-xl backdrop-blur-sm"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-square-terminal w-8 h-8 text-accent mb-5" aria-hidden="true"><path d="m7 11 2-2-2-2"></path><path d="M11 13h4"></path><rect width="18" height="18" x="3" y="3" rx="2" ry="2"></rect></svg><h3 class="text-lg font-semibold mb-3">Machine-Readable Errors</h3><p class="text-primary-foreground/70 text-sm leading-relaxed">No parsing human error strings. A stable <code class="bg-black/30 px-1 py-0.5 rounded text-xs text-white">failure_class</code> enum (<code class="bg-black/30 px-1 py-0.5 rounded text-xs text-white">dead_token</code>, <code class="bg-black/30 px-1 py-0.5 rounded text-xs text-white">schema_drift</code>, <code class="bg-black/30 px-1 py-0.5 rounded text-xs text-white">rate_limited</code>) lets agents branch logic automatically.</p></div><div class="bg-white/5 border border-white/10 p-8 rounded-xl backdrop-blur-sm relative overflow-hidden group"><div class="absolute top-0 right-0 w-32 h-32 bg-accent/20 rounded-full blur-3xl -mr-10 -mt-10 group-hover:bg-accent/40 transition-colors"></div><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-cpu w-8 h-8 text-accent mb-5 relative z-10" aria-hidden="true"><path d="M12 20v2"></path><path d="M12 2v2"></path><path d="M17 20v2"></path><path d="M17 2v2"></path><path d="M2 12h2"></path><path d="M2 17h2"></path><path d="M2 7h2"></path><path d="M20 12h2"></path><path d="M20 17h2"></path><path d="M20 7h2"></path><path d="M7 20v2"></path><path d="M7 2v2"></path><rect x="4" y="4" width="16" height="16" rx="2"></rect><rect x="8" y="8" width="8" height="8" rx="1"></rect></svg><h3 class="text-lg font-semibold mb-3 relative z-10">x402 Payments · Live</h3><p class="text-primary-foreground/70 text-sm leading-relaxed relative z-10 mb-4">Agents buy health checks from our API today: $0.02 in USDC on Base, no account of any kind. Listed in Coinbaseâs x402 Bazaar, settled on-chain, verifiable by anyone.</p><div class="flex flex-col gap-1.5 relative z-10"><a href="/blog/an-ai-agent-just-paid-us/" class="text-sm font-medium text-white hover:text-accent transition-colors underline underline-offset-4">How the first payment went â</a><a href="https://www.x402scan.com/recipient/0x7cCb91a3ad4c45097bDA4C3C29d2Cc89fA93Ab36" target="_blank" rel="noopener noreferrer" class="text-sm font-medium text-white/70 hover:text-accent transition-colors underline underline-offset-4">Live payment feed on x402scan</a></div></div></div></div></section><section id="pricing" class="py-24 bg-white border-b border-border"><div class="container mx-auto px-6 md:px-12 max-w-6xl"><div class="text-center max-w-3xl mx-auto mb-16"><h2 class="text-3xl md:text-5xl font-bold tracking-tight text-primary mb-6">Radically simple pricing.</h2><p class="text-xl text-muted-foreground leading-relaxed">Pay for the check, not the result. Each attempted check is billed, whether its result is healthy, warning or failing.</p></div><div class="max-w-4xl mx-auto bg-white rounded-2xl border border-border shadow-lg overflow-hidden flex flex-col md:flex-row"><div class="p-8 md:p-12 md:w-3/5 bg-gray-50/50"><h3 class="text-2xl font-bold text-primary mb-2">Pay per event</h3><p class="text-muted-foreground mb-8">No subscriptions. No per-run minimums.</p><ul class="space-y-4 mb-8"><li class="flex items-start gap-3"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-check w-5 h-5 text-accent shrink-0 mt-0.5" aria-hidden="true"><path d="M20 6 9 17l-5-5"></path></svg><span class="text-primary">Charge applies on attempt (failures count)</span></li><li class="flex items-start gap-3"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-check w-5 h-5 text-accent shrink-0 mt-0.5" aria-hidden="true"><path d="M20 6 9 17l-5-5"></path></svg><span class="text-primary">Subset recheck: check just one configured source before an expensive job</span></li><li class="flex items-start gap-3"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-check w-5 h-5 text-accent shrink-0 mt-0.5" aria-hidden="true"><path d="M20 6 9 17l-5-5"></path></svg><span class="text-primary">Set a hard max cost ceiling per run</span></li><li class="flex items-start gap-3"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-check w-5 h-5 text-accent shrink-0 mt-0.5" aria-hidden="true"><path d="M20 6 9 17l-5-5"></path></svg><span class="text-primary">x402 agentic payments supported (USDC on Base)</span></li></ul><div class="p-4 bg-white border border-border rounded-lg text-sm text-muted-foreground font-mono">Total = number of checks à $0.02</div></div><div class="p-8 md:p-12 md:w-2/5 bg-primary text-primary-foreground flex flex-col justify-center items-center text-center"><div class="text-6xl font-bold tracking-tight mb-2">$0.02</div>
80<div class="text-primary-foreground/70 font-medium mb-8">per connector checked</div><a href="https://apify.com/growth_wizard/datasource-pulse" class="inline-flex items-center justify-center whitespace-nowrap rounded-md font-medium transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-accent disabled:pointer-events-none disabled:opacity-50 bg-primary text-primary-foreground hover:bg-primary/90 shadow-sm h-12 px-8 text-base w-full bg-white text-primary hover:bg-gray-100" target="_blank" rel="noopener noreferrer">Run it on Apify</a><p class="text-xs text-primary-foreground/50 mt-4">Runs on your Apify account.</p></div></div><div class="max-w-4xl mx-auto mt-16 grid sm:grid-cols-3 gap-6"><div class="text-center p-6 border border-border rounded-xl"><div class="text-sm font-semibold text-primary mb-1">Light Setup</div><div class="text-xs text-muted-foreground mb-3">3 connectors, every 6h</div><div class="text-2xl font-bold text-primary">~$7 <span class="text-sm font-normal text-muted-foreground">/ mo</span></div></div><div class="text-center p-6 border border-accent/30 bg-accent/5 rounded-xl shadow-sm relative overflow-hidden"><div class="absolute top-0 inset-x-0 h-1 bg-accent"></div><div class="text-sm font-semibold text-primary mb-1">Standard</div><div class="text-xs text-muted-foreground mb-3">5 connectors, every 3h</div><div class="text-2xl font-bold text-primary">~$24 <span class="text-sm font-normal text-muted-foreground">/ mo</span></div></div><div class="text-center p-6 border border-border rounded-xl"><div class="text-sm font-semibold text-primary mb-1">Heavy</div><div class="text-xs text-muted-foreground mb-3">10 connectors, hourly</div><div class="text-2xl font-bold text-primary">~$144 <span class="text-sm font-normal text-muted-foreground">/ mo</span></div></div></div></div></section><section class="py-16 md:py-24 bg-background"><div class="container mx-auto px-6 md:px-12 max-w-3xl"><h2 class="text-3xl md:text-4xl font-bold tracking-tight text-primary mb-10">Frequently asked questions</h2><div class="flex flex-col gap-8"><div><h3 class="text-lg font-semibold text-primary mb-2">How do I get an alert when a data feed goes stale?</h3><p class="text-muted-foreground leading-relaxed">Watch freshness, not uptime: a stale feed still answers 200. The manual route is a daily job comparing the feedâs newest timestamp against a threshold set just past its update cadence. The Actor checks review available run history for reported zero-yield streaks, optional volume drops against a learned baseline, and Actor staleness. HTTP checks test your configured response condition; feed-timestamp comparisons remain client-side. Checks cost $0.02 each. Full walkthrough of both routes:<!-- --> <a href="/blog/alert-when-data-feed-goes-stale/" class="text-primary hover:text-accent transition-colors underline underline-offset-4">how to get an alert when a data feed goes stale</a>.</p></div></div></div></section></main><footer class="bg-white border-t border-border py-12 md:py-16"><div class="container mx-auto px-6 md:px-12 max-w-6xl"><div class="flex flex-col md:flex-row md:items-start justify-between gap-8 md:gap-12"><div class="flex flex-col items-start gap-3 max-w-2xl"><div class="flex items-center gap-2.5 font-mono font-semibold tracking-tight text-primary text-base sm:text-lg whitespace-nowrap "><span class="relative flex h-2.5 w-2.5"><span class="animate-ping absolute inline-flex h-full w-full rounded-full bg-accent opacity-75"></span><span class="relative inline-flex rounded-full h-2.5 w-2.5 bg-accent"></span></span>Datasource Pulse</div><p class="text-sm font-medium text-primary">The heartbeat monitor for your data supply chain.</p><p class="text-sm text-muted-foreground leading-relaxed">Catch output drift and silent failures even when run status looks green. Datasource Pulse checks available Actor run history and sampled output, with additional credential and quota checks. Runs on your schedule as an Apify Actor · $0.02 per check, billed per connector, no subscription.</p></div><div class="flex flex-col items-start md:items-end gap-4 shrink-0">
80<a href="https://apify.com/growth_wizard/datasource-pulse" target="_blank" rel="noopener noreferrer" class="text-sm font-medium text-primary hover:text-accent transition-colors underline underline-offset-4">Run it on Apify</a><nav aria-label="Site" class="flex flex-wrap items-center md:justify-end gap-2 text-xs text-muted-foreground"><a href="/blog/" class="hover:text-primary transition-colors underline underline-offset-4">Blog</a><span aria-hidden="true">·</span><a href="/agents/" class="hover:text-primary transition-colors underline underline-offset-4">For Agents</a><span aria-hidden="true">·</span><a href="/integrations/n8n/" class="hover:text-primary transition-colors underline underline-offset-4">n8n</a><span aria-hidden="true">·</span><a href="/integrations/zapier/" class="hover:text-primary transition-colors underline underline-offset-4">Zapier</a><span aria-hidden="true">·</span><a href="/integrations/make/" class="hover:text-primary transition-colors underline underline-offset-4">Make</a></nav><div class="flex items-center gap-2 text-xs text-muted-foreground"><a href="/llms.txt" class="hover:text-primary transition-colors underline underline-offset-4">llms.txt</a><span aria-hidden="true">·</span><a href="/llms-full.txt" class="hover:text-primary transition-colors underline underline-offset-4">llms-full.txt</a></div><p class="text-xs text-muted-foreground">© 2026 Datasource Pulse</p></div></div><div class="mt-10 pt-8 border-t border-border"><p class="text-sm text-muted-foreground leading-relaxed max-w-3xl"><span class="font-medium text-primary">Monitor after you adopt.</span> <!-- -->Audit before you adopt with<!-- --> <a href="https://audit-tools.ai" target="_blank" rel="noopener noreferrer" class="text-primary hover:text-accent transition-colors underline underline-offset-4">Audit Tools</a> <!-- -->· independent, evidence-backed evaluation of Apify actors. From the maker of<!-- --> <a href="https://demanddiscovery.ai" target="_blank" rel="noopener noreferrer" class="text-primary hover:text-accent transition-colors underline underline-offset-4">Demand Discovery AI</a>.</p></div></div></footer></div></div> 81 </body> 82</html>
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.