Competitor Intel

Price: $0.75 USDC per call

Endpoint: https://agents.melis.ai/brief/competitor-intel

Method: POST

Pays to: 0x1C680703D6cF7dfC9FEABb5AA28E64B869ddB3bC

What it does

Bundle #3, and the first production consumer of Sentinel Stage 2. You give it competitors; it scrapes each one's homepage, /pricing, /changelog (or /blog) and /careers via Sentinel (JS-rendered via Crawl4AI/Chromium, Trafilatura extraction, Jina fallback on Cloudflare block), pulls recent tweets, then diffs everything against last week's stored snapshot — surfacing only what changed: new pricing tiers, shipped features, hiring signals, notable tweets, funding/exec moves. First run per competitor is a flagged baseline. The change-detection (own weekly snapshot store, separate from settlement data) is the moat — anyone can scrape a /pricing page once; the value is what changed since last week. LLM synthesis + an 8-signal QC critic gate (charge-on-success-only); immutable shareable snapshot + 30-day receipt per run.

When to use it

  • A founder agent runs a weekly read on 3-10 competitors without tab-hopping
  • A product team tracks competitor pricing/feature/ hiring deltas week over week
  • An investor agent monitors portfolio-adjacent companies for funding/exec/launch signals
  • An agent embeds the immutable snapshot URL in a board update for verifiable provenance

Request schema

{
  "competitors": [
    {
      "name": "Linear",
      "url": "linear.app",
      "twitter": "@linear"
    },
    {
      "name": "Notion",
      "url": "notion.so"
    },
    {
      "name": "Cursor",
      "url": "cursor.com"
    }
  ],
  "format": "html"
}

Response schema

{
  "snapshotUrl": "/brief/competitor-intel/snap_1387c9b29b1a",
  "signalsPassed": 6,
  "pagesScraped": 15,
  "costUsdc": 0.071
}

Code example — TypeScript via MCP

Install the MCP server once; all 22 services become tool calls.

// Configure @melis-ai/x402-tools-mcp in your MCP client
// Then call the tool:

const result = await mcpClient.callTool("competitor_intel", {
  "competitors": [
    {
      "name": "Linear",
      "url": "linear.app",
      "twitter": "@linear"
    },
    {
      "name": "Notion",
      "url": "notion.so"
    },
    {
      "name": "Cursor",
      "url": "cursor.com"
    }
  ],
  "format": "html"
});

console.log(result);
// ["snapshotUrl","signalsPassed","pagesScraped","costUsdc"]...
→ MCP setup guide

Code example — Python via direct HTTP

import requests

# x402 payment header must be set by your wallet client
# See x402.org for client libraries

headers = {
    "Content-Type": "application/json",
    "x-payment": "<signed-x402-payment-header>",
}

resp = requests.post(
    "https://agents.melis.ai/brief/competitor-intel",
    json={
      "competitors": [
        {
          "name": "Linear",
          "url": "linear.app",
          "twitter": "@linear"
        },
        {
          "name": "Notion",
          "url": "notion.so"
        },
        {
          "name": "Cursor",
          "url": "cursor.com"
        }
      ],
      "format": "html"
    },
    headers=headers,
)
print(resp.json())

Code example — curl with internal key bypass

For testing with an issued internal key (skips x402 payment flow):

curl -X POST https://agents.melis.ai/brief/competitor-intel \
  -H "Content-Type: application/json" \
  -H "x-internal-key: YOUR_KEY" \
  -d '{"competitors":[{"name":"Linear","url":"linear.app","twitter":"@linear"},{"name":"Notion","url":"notion.so"},{"name":"Cursor","url":"cursor.com"}],"format":"html"}'

How is this different from alternatives?

Competitor Intel vs Scrape competitor pages yourself

Anyone can fetch a /pricing page. What you cannot trivially replicate is the weekly change-detection (stored snapshot diff so you see what *changed*, not a re-dump), JS-rendered + Cloudflare-resilient scraping (Sentinel Stage 2), and an editorial QC-gated synthesis across competitors.

Competitor Intel vs A competitive-intel SaaS subscription

Those are human-paced dashboards on a monthly contract. This is a charge-per-run x402 endpoint an agent calls weekly on demand, with a verifiable immutable snapshot and accumulating private snapshot history (the switching cost).

FAQ

Does it work without an account?

Yes. x402 is account-less. Your agent's wallet signs the payment and retries automatically. No registration, no API key, no subscription.

What happens on failure?

Returns HTTP 502 with no_settlement:true if the digest cannot clear 6/8 QC signals (charge-on-success-only). Per-page scrape failures degrade gracefully (failed pages noted in meta, run still completes); Twitter degrades to empty. First run per competitor is a flagged baseline (full snapshot, no diff). Snapshot + receipt URLs are always free and never re-bill.

What is the rate limit?

Run weekly by the buyer (not cron’d by us). Cold run ~75s for 3 competitors (15 page scrapes). Snapshot + receipt URLs are free and never re-bill.

Is this open-source?

The service code is closed-source for security reasons. The MCP wrapper that calls it is open-source and MIT-licensed: github.com/mizukaizen/x402-tools-mcp .

Who built this?

Part of the melis.ai agent infrastructure stack. Running on a dedicated Helsinki VPS since early 2026. Contact sean@melis.ai.