<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>Forem: rtsubber</title>
    <description>The latest articles on Forem by rtsubber (@rtsubber).</description>
    <link>https://forem.com/rtsubber</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3933975%2F20f23e9e-fe8e-4814-a122-a05a6698c1cb.png</url>
      <title>Forem: rtsubber</title>
      <link>https://forem.com/rtsubber</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/rtsubber"/>
    <language>en</language>
    <item>
      <title>I Built a Monitor for AI Agents Because They Kept Dying Silently</title>
      <dc:creator>rtsubber</dc:creator>
      <pubDate>Mon, 18 May 2026 00:14:00 +0000</pubDate>
      <link>https://forem.com/rtsubber/i-built-a-monitor-for-ai-agents-because-they-kept-dying-silently-p1b</link>
      <guid>https://forem.com/rtsubber/i-built-a-monitor-for-ai-agents-because-they-kept-dying-silently-p1b</guid>
      <description>&lt;h1&gt;
  
  
  I Built a Monitor for AI Agents Because They Kept Dying Silently
&lt;/h1&gt;

&lt;p&gt;Your API goes down at 2am. Your users get errors. Your revenue drips away. With a regular web service, you'd get a PagerDuty alert, fix it, and go back to sleep.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;AI agents don't work that way.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;When an agent's LLM call fails, it doesn't throw a 500. It hallucinates. When it gets rate-limited, it doesn't crash. It just returns garbage. When it overspends on API calls, you don't find out until the Stripe bill arrives. Agents fail &lt;em&gt;silently&lt;/em&gt; — and by the time you notice, the damage is done.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Agent Monitor&lt;/strong&gt; fixes that.&lt;/p&gt;

&lt;h2&gt;
  
  
  What is Agent Monitor?
&lt;/h2&gt;

&lt;p&gt;Agent Monitor is an uptime and cost tracking API built specifically for AI agents. Three things it does that general-purpose monitors don't:&lt;/p&gt;

&lt;h3&gt;
  
  
  1. Heartbeat Monitoring with Response Time
&lt;/h3&gt;

&lt;p&gt;Your agent pings the monitor every 5 minutes. If it misses a beat, an incident is auto-created and you get a Telegram alert instantly. But it's not just "up or down" — it tracks response time too, because an agent that takes 30 seconds to respond is functionally broken even if it's technically alive.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;curl &lt;span class="nt"&gt;-X&lt;/span&gt; POST https://monitor.brandbooststudio.co/v1/heartbeat &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;-H&lt;/span&gt; &lt;span class="s2"&gt;"X-API-Key: am_your_key_here"&lt;/span&gt; &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;-H&lt;/span&gt; &lt;span class="s2"&gt;"Content-Type: application/json"&lt;/span&gt; &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;-d&lt;/span&gt; &lt;span class="s1"&gt;'{
    "agent_id": "mon_my_agent_001",
    "status": "alive",
    "response_time_ms": 120
  }'&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Miss 3 heartbeats? You get a Telegram message: "⚠️ Agent mon_my_agent_001 is DOWN — last heartbeat 15 minutes ago."&lt;/p&gt;

&lt;h3&gt;
  
  
  2. API Spend Tracking
&lt;/h3&gt;

&lt;p&gt;Every API call your agent makes costs money. GPT-4 is $0.03/1K tokens. Claude is $0.015/1K tokens. Ollama is free but burns GPU time. When you're running multiple agents 24/7, those costs add up fast.&lt;/p&gt;

&lt;p&gt;Agent Monitor lets you log every spend event:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;curl &lt;span class="nt"&gt;-X&lt;/span&gt; POST https://monitor.brandbooststudio.co/v1/spend &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;-H&lt;/span&gt; &lt;span class="s2"&gt;"X-API-Key: am_your_key_here"&lt;/span&gt; &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;-H&lt;/span&gt; &lt;span class="s2"&gt;"Content-Type: application/json"&lt;/span&gt; &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;-d&lt;/span&gt; &lt;span class="s1"&gt;'{
    "agent_id": "mon_my_agent_001",
    "api_name": "openai-gpt4",
    "cost": 0.03,
    "tokens_used": 1500,
    "requests": 1
  }'&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;You get a dashboard that shows:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Total spend per agent&lt;/li&gt;
&lt;li&gt;Spend per API service (OpenAI, Anthropic, Ollama, etc.)&lt;/li&gt;
&lt;li&gt;Spend trends over time&lt;/li&gt;
&lt;li&gt;Alerts when spend exceeds your monthly limit&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  3. Incident Detection &amp;amp; Instant Alerts
&lt;/h3&gt;

&lt;p&gt;When an agent goes down, Agent Monitor auto-creates an incident record:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"incident_id"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"inc_abc123"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"agent_id"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"mon_my_agent_001"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"incident_type"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"heartbeat_missed"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"status"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"open"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"started_at"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"2026-05-17T02:15:00Z"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"resolved_at"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kc"&gt;null&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;And you get a Telegram alert immediately. No PagerDuty integration needed. No Slack webhook setup. Just a Telegram message to your phone, because that's where you are at 3am.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Dashboard API
&lt;/h2&gt;

&lt;p&gt;One endpoint gives you everything:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;curl https://monitor.brandbooststudio.co/v1/dashboard &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;-H&lt;/span&gt; &lt;span class="s2"&gt;"X-API-Key: am_your_key_here"&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;





&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"total_agents"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;3&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"agents_up"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"agents_down"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"total_spend"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mf"&gt;12.45&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"spend_by_api"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"openai-gpt4"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mf"&gt;8.20&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"anthropic-claude"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mf"&gt;3.15&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"ollama-local"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mf"&gt;1.10&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"active_incidents"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"recent_heartbeats"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="err"&gt;...&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"recent_spend"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="err"&gt;...&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This is the endpoint your own dashboard UI calls. Or your cron job checks. Or your status page pulls from.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why Not Just Use Datadog/UptimeRobot/Pingdom?
&lt;/h2&gt;

&lt;p&gt;Good question. I tried them. Here's why they don't work for agents:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Datadog&lt;/strong&gt; — Built for infrastructure, not agents. You'd need custom instrumentation for every agent. Costs scale with every metric. Overkill for "is my agent alive and how much is it spending?"&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;UptimeRobot/Pingdom&lt;/strong&gt; — HTTP pings only. They can check if your agent's endpoint returns 200. They can't tell you if the agent is hallucinating, if response time tripled, or if it just spent $50 on GPT-4 calls.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Custom Prometheus/Grafana&lt;/strong&gt; — Powerful but heavy. Requires running a metrics server, configuring exporters, building dashboards. For a solo dev running 3-5 agents, this is infrastructure for infrastructure's sake.&lt;/p&gt;

&lt;p&gt;Agent Monitor is the simple version: heartbeat + spend + alerts. It does one thing well. You integrate it in 5 minutes with two curl calls.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Tech Stack
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;FastAPI&lt;/strong&gt; — Async Python, automatic OpenAPI docs&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;SQLite (WAL mode)&lt;/strong&gt; — Zero-ops database, one file, easy backup&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Telegram Bot API&lt;/strong&gt; — Instant alerts to your phone&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Tailscale Funnel&lt;/strong&gt; — Secure public exposure, auto HTTPS&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Stripe&lt;/strong&gt; — Payment integration for Pro tier&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;All secrets from environment variables. No hardcoded defaults. The API is open source.&lt;/p&gt;

&lt;h2&gt;
  
  
  Part of the Agent Business Suite
&lt;/h2&gt;

&lt;p&gt;Agent Monitor is the third piece of the Agent Business Suite:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;&lt;a href="https://agentseek.co" rel="noopener noreferrer"&gt;AgentSeek&lt;/a&gt;&lt;/strong&gt; — Discover AI agents&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;a href="https://localeye.co" rel="noopener noreferrer"&gt;Local-Eye&lt;/a&gt;&lt;/strong&gt; — Verify real-world data&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Agent Monitor&lt;/strong&gt; — Track uptime and cost&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;All three are available as a bundle at &lt;strong&gt;$79/month&lt;/strong&gt; with a single suite API key. One key, three APIs, full agent infrastructure.&lt;/p&gt;

&lt;p&gt;The suite key system means you authenticate once and access all three services. Register your agent on AgentSeek, verify businesses with Local-Eye, and monitor everything with Agent Monitor — all with the same &lt;code&gt;suite_*&lt;/code&gt; key.&lt;/p&gt;

&lt;h2&gt;
  
  
  Free Tier
&lt;/h2&gt;

&lt;p&gt;Agent Monitor is free for up to 100 heartbeats and 1,000 spend events per month. That's enough to monitor 3-5 agents at 5-minute heartbeat intervals.&lt;/p&gt;

&lt;p&gt;No credit card required. No time limit. Free means free.&lt;/p&gt;

&lt;h2&gt;
  
  
  Try It Now
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;Get a free API key: &lt;code&gt;POST /v1/keys&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Register your agent: &lt;code&gt;POST /v1/register&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Send heartbeats: &lt;code&gt;POST /v1/heartbeat&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Track spend: &lt;code&gt;POST /v1/spend&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Check dashboard: &lt;code&gt;GET /v1/dashboard&lt;/code&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Five minutes. Two curl calls. Your agents are monitored.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>monitoring</category>
      <category>devtools</category>
      <category>agents</category>
    </item>
    <item>
      <title>I Built the LinkedIn for AI Agents — Here's Why</title>
      <dc:creator>rtsubber</dc:creator>
      <pubDate>Sat, 16 May 2026 05:01:52 +0000</pubDate>
      <link>https://forem.com/rtsubber/i-built-the-dns-for-ai-agents-heres-why-4dm2</link>
      <guid>https://forem.com/rtsubber/i-built-the-dns-for-ai-agents-heres-why-4dm2</guid>
      <description>&lt;h1&gt;
  
  
  I Built the LinkedIn for AI Agents — Here's Why
&lt;/h1&gt;

&lt;p&gt;LinkedIn is where you find human talent. &lt;strong&gt;AgentSeek is where you find AI talent.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;There are thousands of AI agents out there. But they can't find each other. If your agent needs to verify a business, process a payment, or look up a location — you have to hardcode that connection. There's no directory. No search. No way to discover agents by capability.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;AgentSeek&lt;/strong&gt; fixes that. It's a registry where AI agents register with A2A-compliant manifests and discover each other through semantic search.&lt;/p&gt;

&lt;p&gt;Even academic researchers agree this needs to exist — a May 2025 paper from China Telecom Research Institute proposed "AgentDNS" for the same problem. We built the live version.&lt;/p&gt;

&lt;h2&gt;
  
  
  How It Works
&lt;/h2&gt;

&lt;h3&gt;
  
  
  1. Register Your Agent
&lt;/h3&gt;

&lt;p&gt;One POST request and your agent is live in the directory:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;curl &lt;span class="nt"&gt;-X&lt;/span&gt; POST https://agentseek.co/v1/register &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;-H&lt;/span&gt; &lt;span class="s2"&gt;"X-API-Key: ar_your_key_here"&lt;/span&gt; &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;-H&lt;/span&gt; &lt;span class="s2"&gt;"Content-Type: application/json"&lt;/span&gt; &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;-d&lt;/span&gt; &lt;span class="s1"&gt;'{
    "name": "My Business Verifier",
    "description": "Verifies businesses via web scraping and phone calls",
    "capabilities": ["business_verification", "phone_verification", "hours_confirmation"],
    "endpoint_url": "https://api.example.com/v1",
    "owner_email": "you@example.com",
    "category": "verification",
    "pricing": {"per_call": 0.015}
  }'&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;You get back:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;A permanent &lt;code&gt;agt_&lt;/code&gt; agent ID&lt;/li&gt;
&lt;li&gt;An A2A-compliant manifest endpoint&lt;/li&gt;
&lt;li&gt;A free API key if you don't have one&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  2. Discover Agents by Capability
&lt;/h3&gt;

&lt;p&gt;Natural language search. "Verify business hours" finds agents that can do that — even if they call it &lt;code&gt;hours_confirmation&lt;/code&gt;:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;curl &lt;span class="s2"&gt;"https://agentseek.co/v1/discover?q=verify+business+hours"&lt;/span&gt; &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;-H&lt;/span&gt; &lt;span class="s2"&gt;"X-API-Key: ar_your_key_here"&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Returns:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"results"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;[{&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"agent_id"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"agt_localeye_001"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"name"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"Local-Eye Business Verifier"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"match_score"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;85&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"match_type"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"semantic"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"why"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"Capability match: business_verification"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"trust_score"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;94&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"verified"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kc"&gt;true&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="p"&gt;}],&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"total"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Two search modes work together:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Semantic search&lt;/strong&gt; — Ollama embeddings (nomic-embed-text) match meaning, not just keywords&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Keyword fallback&lt;/strong&gt; — stem matching catches what embeddings miss&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  3. Connect and Use
&lt;/h3&gt;

&lt;p&gt;Grab the agent's manifest for everything you need:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;curl https://agentseek.co/v1/agents/agt_localeye_001/manifest
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;





&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"schema_version"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"1.0"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"name"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"Local-Eye Business Verifier"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"capabilities"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s2"&gt;"business_verification"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"phone_verification"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"hours_confirmation"&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"endpoint"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"https://api.localeye.co/v1"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"auth"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"api_key"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"pricing"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="nl"&gt;"per_call"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mf"&gt;0.015&lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"trust"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"score"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;94&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"verified"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kc"&gt;true&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"total_calls"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;24&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  What Makes This Different
&lt;/h2&gt;

&lt;h3&gt;
  
  
  A2A-Compliant Manifests
&lt;/h3&gt;

&lt;p&gt;Every registered agent gets an Agent-to-Agent protocol manifest. This isn't just a directory listing — it's machine-readable metadata that other agents can parse and act on immediately. No custom integration per agent.&lt;/p&gt;

&lt;h3&gt;
  
  
  Trust Scores, Not Just Listings
&lt;/h3&gt;

&lt;p&gt;Agents earn trust through:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Verification&lt;/strong&gt; — paid tiers get verified badges (human-tested, working agents)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Reviews&lt;/strong&gt; — rate agents 1-5 after using them&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Usage data&lt;/strong&gt; — total calls and success rates are public&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Semantic matching&lt;/strong&gt; — better matches rise to the top&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Built for the Agent Economy
&lt;/h3&gt;

&lt;p&gt;The API is designed for &lt;em&gt;agents calling agents&lt;/em&gt;, not just humans browsing:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Email verification&lt;/strong&gt; on key creation — no fake signups&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Tier limits&lt;/strong&gt; — free keys get 100 discoveries/month, verified gets 1,000&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Stripe integration&lt;/strong&gt; — checkout sessions for instant tier upgrades&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Rate limiting&lt;/strong&gt; — 30/hr unauthenticated, 100/month free tier&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Admin endpoints&lt;/strong&gt; — revoke keys, purge agents, reset counters&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  The Tech Stack
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;FastAPI&lt;/strong&gt; — async Python backend with automatic OpenAPI docs&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;SQLite (WAL mode)&lt;/strong&gt; — zero-ops database, single-file, easy backups&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Ollama&lt;/strong&gt; — local embeddings with nomic-embed-text for semantic search&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Stripe&lt;/strong&gt; — payment processing with webhook verification&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Tailscale Funnel&lt;/strong&gt; — secure public exposure, automatic HTTPS&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Vercel&lt;/strong&gt; — landing page + API proxy with CDN&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;All secrets come from environment variables. No hardcoded defaults.&lt;/p&gt;

&lt;h2&gt;
  
  
  Open Source
&lt;/h2&gt;

&lt;p&gt;The entire backend is open source: &lt;a href="https://github.com/rtsubber/AgentSeek" rel="noopener noreferrer"&gt;github.com/rtsubber/AgentSeek&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Self-host it, extend it, or just learn from it. The schema, API design, and security patterns are all there.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Agent Business Suite
&lt;/h2&gt;

&lt;p&gt;AgentSeek is part of a three-piece infrastructure stack for the agent economy:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;&lt;a href="https://agentseek.co" rel="noopener noreferrer"&gt;AgentSeek&lt;/a&gt;&lt;/strong&gt; — Discover agents ($0-299/mo)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;a href="https://localeye.co" rel="noopener noreferrer"&gt;Local-Eye&lt;/a&gt;&lt;/strong&gt; — Verify businesses ($0-29/mo)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;a href="https://brandbooststudio.co/agent-business-suite.html#monitor" rel="noopener noreferrer"&gt;Agent Monitor&lt;/a&gt;&lt;/strong&gt; — Track uptime ($0-29/mo)&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Bundle all three for &lt;strong&gt;$79/mo&lt;/strong&gt; with a single API key.&lt;/p&gt;

&lt;h2&gt;
  
  
  What's Next
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Embedding upgrades&lt;/strong&gt; — swap sha256 hashes for real vector similarity (pgvector or Qdrant)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Health checking&lt;/strong&gt; — periodic pings to verify registered endpoints are still alive&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Agent-to-agent calling&lt;/strong&gt; — POST /v1/agents/call/{id} with request routing&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Webhook notifications&lt;/strong&gt; — get notified when new agents register in your categories&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Try It Now
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;Get a free API key: &lt;a href="https://agentseek.co" rel="noopener noreferrer"&gt;agentseek.co&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Register your agent: &lt;code&gt;POST /v1/register&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Discover agents: &lt;code&gt;GET /v1/discover?q=what+you+need&lt;/code&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Free tier includes 100 discoveries/month. No credit card required.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>api</category>
      <category>agents</category>
      <category>webdev</category>
    </item>
    <item>
      <title>I Built an API That Lets AI Agents See the Web Like Humans Do</title>
      <dc:creator>rtsubber</dc:creator>
      <pubDate>Fri, 15 May 2026 22:54:47 +0000</pubDate>
      <link>https://forem.com/rtsubber/i-built-an-api-that-lets-ai-agents-see-the-web-like-humans-do-5jo</link>
      <guid>https://forem.com/rtsubber/i-built-an-api-that-lets-ai-agents-see-the-web-like-humans-do-5jo</guid>
      <description>&lt;p&gt;AI agents are powerful — but they're blind.&lt;/p&gt;

&lt;p&gt;When an LLM tries to scrape a website, it gets blocked. Cloudflare, Datadome, PerimeterX — they all detect bots and serve challenge pages. Even when they don't, the agent only sees raw HTML. No JavaScript rendering. No visual context. No way to verify what's actually on the page.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Local-Eye fixes that.&lt;/strong&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  What is Local-Eye?
&lt;/h2&gt;

&lt;p&gt;Local-Eye is an API that gives AI agents three things they've never had together:&lt;/p&gt;

&lt;h3&gt;
  
  
  1. Residential IP Access
&lt;/h3&gt;

&lt;p&gt;Every request routes through a real residential IP address. No datacenter blocks, no CAPTCHAs, no "Access Denied" pages. Your agent sees what a human sees.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;curl &lt;span class="nt"&gt;-X&lt;/span&gt; POST https://api.localeye.co/v1/verify-web-presence &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;-H&lt;/span&gt; &lt;span class="s2"&gt;"X-API-Key: your_key"&lt;/span&gt; &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;-H&lt;/span&gt; &lt;span class="s2"&gt;"Content-Type: application/json"&lt;/span&gt; &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;-d&lt;/span&gt; &lt;span class="s1"&gt;'{"url": "https://www.walmart.com"}'&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Returns clean text, HTTP status, bot-detection check, and response time — from a residential IP that won't get blocked.&lt;/p&gt;

&lt;h3&gt;
  
  
  2. GPU-Rendered Screenshots
&lt;/h3&gt;

&lt;p&gt;Raw HTML is useless when pages need JavaScript. Local-Eye renders pages on an NVIDIA RTX 3090 using Playwright — real Chromium, real GPU, real pixels. Your agent doesn't just read the page. It &lt;em&gt;sees&lt;/em&gt; it.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;curl &lt;span class="nt"&gt;-X&lt;/span&gt; POST https://api.localeye.co/v1/visual-verify &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;-H&lt;/span&gt; &lt;span class="s2"&gt;"X-API-Key: your_key"&lt;/span&gt; &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;-H&lt;/span&gt; &lt;span class="s2"&gt;"Content-Type: application/json"&lt;/span&gt; &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;-d&lt;/span&gt; &lt;span class="s1"&gt;'{"url": "https://www.walmart.com"}'&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Returns a screenshot (PNG), extracted text, page title, and viewport dimensions. Perfect for visual verification, comparison, or just confirming a page loaded correctly.&lt;/p&gt;

&lt;h3&gt;
  
  
  3. Phone Verification
&lt;/h3&gt;

&lt;p&gt;Sometimes you need to ask a real human. Local-Eye can call any business phone number and ask a question — "Are you open right now?" "Do you have the O2 sensor in stock?" — and return a transcribed answer.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;curl &lt;span class="nt"&gt;-X&lt;/span&gt; POST https://api.localeye.co/v1/phone-verify &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;-H&lt;/span&gt; &lt;span class="s2"&gt;"X-API-Key: your_key"&lt;/span&gt; &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;-H&lt;/span&gt; &lt;span class="s2"&gt;"Content-Type: application/json"&lt;/span&gt; &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;-d&lt;/span&gt; &lt;span class="s1"&gt;'{"business_phone": "+15125551234", "question": "Are you open right now?"}'&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Uses real phone calls via Twilio with AI-powered transcription. Your agent gets a definitive answer from the real world.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why I Built This
&lt;/h2&gt;

&lt;p&gt;I run a digital marketing agency. My AI agents needed to verify business listings, check competitor websites, and confirm business hours. Every scraping tool got blocked. Headless browsers were slow and expensive. And there was no way to verify information by actually calling a business.&lt;/p&gt;

&lt;p&gt;So I built what I needed — and opened it up.&lt;/p&gt;

&lt;h2&gt;
  
  
  Pricing
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Free tier:&lt;/strong&gt; 5 requests/day. No credit card required. Just sign up and start building.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Tier&lt;/th&gt;
&lt;th&gt;Price&lt;/th&gt;
&lt;th&gt;Calls&lt;/th&gt;
&lt;th&gt;Includes&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Free&lt;/td&gt;
&lt;td&gt;$0&lt;/td&gt;
&lt;td&gt;5/day&lt;/td&gt;
&lt;td&gt;Text fetch only&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Starter&lt;/td&gt;
&lt;td&gt;$29/mo&lt;/td&gt;
&lt;td&gt;2,000/mo&lt;/td&gt;
&lt;td&gt;Text + Visual verify&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Agency Pro&lt;/td&gt;
&lt;td&gt;$99/mo&lt;/td&gt;
&lt;td&gt;10,000/mo&lt;/td&gt;
&lt;td&gt;All tiers + Phone verify&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Enterprise&lt;/td&gt;
&lt;td&gt;$499/mo&lt;/td&gt;
&lt;td&gt;50,000/mo&lt;/td&gt;
&lt;td&gt;Dedicated GPU + SLA&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Pay-per-call also available: 100 calls for $12, 500 for $45, 2,000 for $149.&lt;/p&gt;

&lt;h2&gt;
  
  
  Built for AI Agents
&lt;/h2&gt;

&lt;p&gt;Local-Eye is designed for autonomous use:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;OpenAPI spec&lt;/strong&gt; at &lt;code&gt;/openapi.json&lt;/code&gt; (scoped by tier — free keys see 4 endpoints, paid see 7)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;AI plugin manifest&lt;/strong&gt; at &lt;code&gt;/.well-known/ai-plugin.json&lt;/code&gt; for agent discovery&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;402 payment headers&lt;/strong&gt; — when a free-tier key hits a paid endpoint, the response includes &lt;code&gt;upgrade_url&lt;/code&gt; and &lt;code&gt;pay_per_call&lt;/code&gt; links so agents can self-upgrade&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;No CAPTCHAs, no email verification&lt;/strong&gt; — agents can register and start using immediately
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="err"&gt;//&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;402&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;response&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;—&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;agents&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;can&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;follow&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;the&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;upgrade_url&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"error"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"payment_required"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"upgrade_options"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="nl"&gt;"tier"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"starter"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nl"&gt;"price"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"$29/mo"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nl"&gt;"url"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"https://buy.stripe.com/..."&lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="nl"&gt;"tier"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"pay_per_call"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nl"&gt;"price"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"$12"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nl"&gt;"url"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"https://buy.stripe.com/..."&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Quick Start
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;Get a free API key: &lt;a href="https://localeye.co" rel="noopener noreferrer"&gt;localeye.co&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Make your first request:
&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;requests&lt;/span&gt;

&lt;span class="n"&gt;response&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;requests&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;post&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
    &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;https://api.localeye.co/v1/verify-web-presence&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;headers&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;X-API-Key&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;your_key&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt;
    &lt;span class="n"&gt;json&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;url&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;https://news.ycombinator.com&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;response&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;json&lt;/span&gt;&lt;span class="p"&gt;())&lt;/span&gt;
&lt;span class="c1"&gt;# {"status": "verified", "http_status": 200, "content_type": "text/html", ...}
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  What's Next
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Phone verification callbacks&lt;/strong&gt; — webhook support for async phone call results&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Structured data extraction&lt;/strong&gt; — automatically parse business hours, prices, contact info&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Batch endpoints&lt;/strong&gt; — verify multiple URLs in one request&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Custom headers&lt;/strong&gt; — send cookies, auth tokens, user-agent strings&lt;/li&gt;
&lt;/ul&gt;




&lt;p&gt;&lt;strong&gt;Try it free:&lt;/strong&gt; &lt;a href="https://localeye.co" rel="noopener noreferrer"&gt;localeye.co&lt;/a&gt; — 5 requests/day, no credit card needed.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Docs:&lt;/strong&gt; &lt;a href="https://api.localeye.co/docs" rel="noopener noreferrer"&gt;api.localeye.co/docs&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Questions?&lt;/strong&gt; Drop a comment or reach me at &lt;a href="mailto:info@brandbooststudio.co"&gt;info@brandbooststudio.co&lt;/a&gt;&lt;/p&gt;

</description>
      <category>api</category>
      <category>ai</category>
      <category>webscraping</category>
      <category>launch</category>
    </item>
  </channel>
</rss>
