Skip to content
Triangulate
Live · v0.1All systems greenPer-credit · USDT / USDC

Verified leads, source-linked, in under 1.5 seconds.

Send { "email": "jane.doe@stripe.com" }. Get back her title, role history, company funding stage, technographics, hiring intent — every field carrying a confidence score and at least one public source URL.

First curl in under 5 minutes. No portal. No OAuth.

"code-comment">$ "code-method">curl "code-key">-X "code-method">POST https://lead-enrichment.prin7r.com/v1/enrich \
    "code-key">-H 'authorization: Bearer YOUR_KEY' \
    "code-key">-H 'content-type: application/json' \
    "code-key">-d '{"email":"jane.doe@stripe.com"}'

Engineering proof points

P50 latency
720ms

P95 1.4s · P99 2.1s · measured against 1k-record benchmark

Coverage NA / EMEA
94 / 81%

Per-field coverage on B2B SaaS Series A–C ICP

Refresh window
28d

Firmographics · 14d decision-maker · 24h intent

Per-credit price
$0.025min

Scale tier · 49% off Starter

What we return

Six categories. One JSON. Six confidence scores.

The schema is the hero. Every field on the response carries a confidence score and the public source we used to derive it.

01 · Firmographics

Company shape

Industry, employee band, HQ, funding stage and last round — all sourced from SEC, Companies House, and Crunchbase open snapshots.

94% NA · 81% EMEArefresh · 28d
02 · Decision-maker map

Person profile

Full name, current title, department, two most recent role changes — each with the LinkedIn URL we used to derive it.

92% NA · 76% EMEArefresh · 14d
03 · Technographics

Stack fingerprint

CDN, framework, runtime, database, auth provider — derived from header probes and DOM-free HTML response fingerprinting.

93% all regionsrefresh · 7d
04 · Intent

Hiring + news + changelog

Open-role count by department, news mention count over 7d, changelog activity (active vs. quiet) — refreshed daily.

97% NA · 88% EMEArefresh · 24h
05 · Contact triangulation

Email deliverability

SMTP echo + MX validation + breach-disclosure metadata. We return `not_match` instead of guessing pattern-built emails.

92% verified raterefresh · real-time
06 · Provenance

Source-linked confidence

Every field ships with a 0.0–1.0 confidence score and at least one public source URL. Click the URL, audit the claim.

100%refresh · always
Drop-in API

No portal. No OAuth. Five-line first integration.

The schema below is the same JSON the production endpoint returns. Pin our version header (X-Triangulate-Version: 2026-05) when you're ready to lock it down.

  • Stable JSON schema, semver-pinned.
  • Deterministic responses on identical input.
  • Cache hits don't consume credits.
  • Correlation id on every response.

01 · Authentication

# 1. Buy a credit pack on the pricing page below.
# 2. Receive your API key by email.
# 3. Send the key as a Bearer token. Done.

"code-method">curl https://lead-enrichment.prin7r.com/healthz
# -> { "status": "ok", "service": "triangulate-api", ... }

"code-method">curl "code-key">-H "authorization: Bearer YOUR_KEY" \
  "code-key">-X "code-method">POST https://lead-enrichment.prin7r.com/v1/enrich \
  "code-key">-H "content-type: application/json" \
  "code-key">-d '{"email":"jane.doe@stripe.com"}'

02 · Single enrichment

# Single enrichment — one credit consumed on cache miss.
# Cache hits return < 50ms and consume 0 credits.

"code-method">curl "code-key">-X "code-method">POST https://lead-enrichment.prin7r.com/v1/enrich \
  "code-key">-H "authorization: Bearer YOUR_KEY" \
  "code-key">-H "content-type: application/json" \
  "code-key">-d '{
    "email": "jane.doe@stripe.com",
    "domain": "stripe.com",
    "firstName": "Jane",
    "lastName": "Doe",
    "company": "Stripe"
  }'

03 · Webhook callback (optional)

"code-comment">// Optional: register a webhook to receive batch completions.
"code-comment">// We POST a signed event when a bulk job finishes.

"code-key">import crypto "code-key">from "node:crypto";

"code-key">export "code-key">async "code-key">function POST(req: Request) {
  "code-key">const raw = "code-key">await req.text();
  "code-key">const sig = req.headers.get("x-triangulate-signature") ?? "";
  "code-key">const expected = crypto
    .createHmac("sha256", process.env.TRIANGULATE_WEBHOOK_SECRET!)
    .update(raw)
    .digest("hex");

  "code-key">if (!crypto.timingSafeEqual(Buffer."code-key">from(sig), Buffer."code-key">from(expected))) {
    "code-key">return "code-key">new Response("invalid signature", { status: 401 });
  }

  "code-key">const event = JSON.parse(raw); "code-comment">// { type, batchId, completedAt, results: [...] }
  "code-key">await persist(event);
  "code-key">return "code-key">new Response("ok");
}
Pricing

One credit, one verified record.

Three credit packs. No contract, no seats. Cached responses don't consume credits. Refund prorated to unused credits within 30 days, refunded to the same payment rail.

Starter

Founders evaluating + small teams running ≤ 1k enrichments/month.

$49USD · one-time

1,000 credits · $0.049 / credit

  • 1,000 enrichment credits
  • Cached responses don't burn credits
  • Per-field confidence + sources
  • USDT-TRC20, USDC-Polygon, USDC-ERC20
  • Best-effort latency (P95 1.4s)
  • Prorated refund within 30 days

USDT-TRC20, USDC-Polygon, USDC-ERC20 via NOWPayments hosted invoice.

Most teams start here
Team

RevOps engineering teams running 1k–10k enrichments/month.

$399USD · one-time

10,000 credits · $0.0399 / credit

  • 10,000 enrichment credits
  • 19% discount vs. Starter
  • Webhook-style batch callbacks
  • All Starter features included
  • Priority email support (24h reply)
  • Prorated refund within 30 days

USDT-TRC20, USDC-Polygon, USDC-ERC20 via NOWPayments hosted invoice.

Scale

Series-B and larger running 10k–100k enrichments/month with a contractual SLA.

$2,499USD · one-time

100,000 credits · $0.02499 / credit

  • 100,000 enrichment credits
  • 49% discount vs. Starter
  • Contractual ≤ 1.5s P95 SLA
  • 99.9% monthly uptime SLA
  • Quarterly USDT-TRC20 invoicing available
  • Named-engineer Slack support

USDT-TRC20, USDC-Polygon, USDC-ERC20 via NOWPayments hosted invoice.

Above 100k credits/month? Talk to the founder for custom pricing — typically $0.01–$0.02/credit with annual prepay.

Trust

Three things we ship that competitors don't.

Source-linked, not score-linked

Every confidence score ships with a public source URL. Audit any field by clicking through. No black-box scoring; no vendor pinky-swears.

Latency you can put in a contract

P50 720ms. P95 1.4s. P99 2.1s. Methodology published. Scale tier holds us to a contractual ≤ 1.5s P95 with prorated credit refund on miss.

Freshness on every response

Firmographics refresh on a 28-day window; decision-maker mapping on 14d; intent on 24h. The age of any cached record is on `meta.freshness.ageDays`.

FAQ

The questions engineers and operators ask first.

Don't see your question? Email the founder — replies within four business hours.