Use cases

Guard expensive tool calls before they run.

Pre-call guard for AI agents, n8n-style automation, business APIs, and scraping loops. Live demos call the API — click 11+ times on the same demo to trigger storm detection. Prefer a labeled walkthrough first? Runaway workflow simulator

03 · Business API Guardrails

Protect SAP, CRM, and internal HTTP APIs

Workflows that write to SAP, Salesforce, or internal billing APIs need the same guard as LLM tools — block repeated writes on the same business key before the next POST.

Problem

A stuck automation replays the same invoice or lead ID. Each pass triggers another paid ERP connector call or mutates production data.

With ProceedGate

Hash the business key (task_hash) and call /v1/check before the CRM/SAP node. Loop detection returns 429 before the write.

Illustrative policy labels like sensitive_endpoint_guard appear in the workflow simulator only — not in the live API response today.

04 · Scraping

Block Apify and SerpAPI retry storms

A 403 or rate limit triggers automatic retries. Without a pre-call guard the scraper retries the same URL hundreds of times — each one counting against your quota.

Problem

Apify actor hits a 403, calls actor.retry(). Default retry config: 8 attempts per request. Across 100 URLs that's 800 wasted API calls before the job fails.

With ProceedGate

Each URL is hashed before fetching. After 10 retries of the same hash in 60s, loop_detected stops the actor and fires a webhook alert. The other 90 URLs continue normally.

apify-actor.ts
const PG_KEY = process.env.PG_KEY;

for (const url of urls) {
  const res = await fetch('https://governor.proceedgate.dev/v1/check', {
    method: 'POST',
    headers: { 'Authorization': `Bearer ${PG_KEY}`, 'Content-Type': 'application/json' },
    body: JSON.stringify({
      agent_id:  'apify-scraper',
      task_hash: sha256(url),
      action:    'tool_call',
    }),
  });
  if (res.status === 429) throw new Error('loop_detected');
  const html = await fetch(url);
}
Live API test 0 calls
Click 11+ times to trigger storm detection
02 · n8n / Automation

Guard every expensive node in the flow

Webhook → HTTP Request (ProceedGate) → IF → SerpAPI / OpenAI / CRM. Same task_hash for one lead or ticket stops the flow before the next paid node. See n8n guide.

Problem

In CrewAI or LangGraph, agents share a workspace. One stuck agent in a disambiguation loop consumes all remaining budget — the rest of the pipeline is starved and fails with no budget left.

With ProceedGate

Each agent identifies itself via agentId. Loop detection is per-agent, but budget is shared per workspace. The stuck agent is blocked while the others continue unaffected.

crew.ts
const PG_KEY = process.env.PG_KEY;

async function check(agentId: string, action: string, taskHash: string) {
  const res = await fetch('https://governor.proceedgate.dev/v1/check', {
    method: 'POST',
    headers: { 'Authorization': `Bearer ${PG_KEY}`, 'Content-Type': 'application/json' },
    body: JSON.stringify({
      agent_id:  agentId,
      task_hash: taskHash,
      action,
    }),
  });
  if (res.status === 429) throw new Error(`${agentId}: loop_detected`);
  return res.json();
}

// each agent checks independently, budget is shared
await check('researcher', 'tool_call',  sha256(query));
await check('analyst',    'model_call', sha256(data));
await check('writer',     'model_call', sha256(draft));
Live API test 0 calls
Click 11+ times to trigger storm detection
01 · AI Workflow Guard

Stop runaway agent tool loops

An agent keeps enriching the same lead: SerpAPI → Firecrawl → OpenAI → CRM. One pre-call check per loop detects repeated task_hash before the next model or tool bill.

Problem

An agent using model_call enters a reasoning loop — same prompt, same context, same output, repeat. The LLM API doesn't know it's a loop. It just bills per token.

With ProceedGate

Every model call hashes the prompt context. After 10 identical hashes in 60s, the check returns loop_detected and stops the agent cold — before it burns through your monthly API budget.

llm-agent.ts
const PG_KEY = process.env.PG_KEY;

async function pgCheck(agentId: string, taskHash: string) {
  const res = await fetch('https://governor.proceedgate.dev/v1/check', {
    method: 'POST',
    headers: { 'Authorization': `Bearer ${PG_KEY}`, 'Content-Type': 'application/json' },
    body: JSON.stringify({
      agent_id:  agentId,
      task_hash: taskHash,
      action:    'model_call',
    }),
  });
  if (!res.ok) throw new Error((await res.json()).error);
  return res.json(); // { allowed, proceed_token, zone, ... }
}

// before every GPT-4 call:
const gate = await pgCheck('reasoning-agent', sha256(prompt));
if (!gate.allowed) throw new Error('loop_detected');
Live API test 0 calls
Click 11+ times to trigger storm detection

Feature matrix

What's available per use case

All features are live in the free tier. No paid plan required to test loop detection or proceed tokens.

Feature AI workflow n8n / auto Scraping
Loop detection (>10 identical / 60s)
Gray zone (6–10 repeats)
Signed proceed token (ES256)
Per-workspace budget cap
Per-agent loop detection (shared workspace)
Webhook alert on loop block
Agent reputation scoring

Start with 5,000 free checks

No card required. The demos above use the real API — your integration will too.

Simulate workflow Join pilot