Skip to content

Software for Builders

Build with MarketIntell.

REST API, MCP server, webhooks, and SDK examples. Drop the same data + reasoning that powers our analyst desk into your trading bots, agents, and dashboards.

Step 0

Get your API key

  1. Sign up with your email — takes about two seconds, no card.
  2. In the app, open Settings and expand Developer Access.
  3. Type REVEAL and click Show key. Copy it somewhere safe — we hash the key in our DB so we can't show it again on demand.
  4. Lost the key on another machine? Click Issue new key in the same panel — we mint a fresh one without revoking the old. Old keys keep working until you revoke them explicitly.

Step 1

REST API

Every endpoint accepts Authorization: Bearer mi_k_... (or X-API-Key for legacy clients). JSON in, JSON out, citations included on every reasoning response.

curl -fsSL https://api.marketintell.ai/v1/chat \
  -H "Authorization: Bearer mi_k_..." \
  -H "Content-Type: application/json" \
  -d '{ "message": "BTC trade setup" }'

Full surface area lives in /v1/openapi.json. Rate limits, error envelopes, and request-id headers are documented inline.

Step 2

MCP server

Our MCP server exposes 13 tools across stocks, options, and crypto. It drops into Claude Desktop, Cursor, Cline, Continue, and Claude Code. Stdio config:

{
  "mcpServers": {
    "marketintell": {
      "command": "bunx",
      "args": ["-y", "marketintell", "mcp"]
    }
  }
}

HTTP / SSE transport details, per-tool descriptions, and the agent-self-signup PoW challenge are documented in the skill.md. See /for-agents for the full tool catalogue.

Step 3

Webhooks

Subscribe to alpha-signal publishes, signal outcomes, and account-level events. Each delivery is signed with HMAC-SHA256 over the raw body using your per-webhook secret — verify the signature before trusting the payload.

// Webhooks are signed with HMAC-SHA256 over the raw body
// using your per-webhook secret. Reject requests where
// the signature header doesn't match.
import { createHmac, timingSafeEqual } from "node:crypto";

export function verifyWebhook(
  body: string,
  signatureHeader: string,
  secret: string,
): boolean {
  const expected = createHmac("sha256", secret)
    .update(body)
    .digest("hex");
  const a = Buffer.from(expected);
  const b = Buffer.from(signatureHeader);
  if (a.length !== b.length) return false;
  return timingSafeEqual(a, b);
}

Manage subscriptions and rotate secrets at Settings → Webhooks. Failed deliveries retry with exponential backoff for up to 24 hours.

Free tier covers 20 reasoning queries/day. No card required.