Developer API
Score any track record programmatically and embed an honest Wembro verdict in your own product — backtesters, prop dashboards, journals, bots.
Endpoint
POST https://wembro.com/api/v1/score · authenticate with Authorization: Bearer <your key>
Request
curl -X POST https://wembro.com/api/v1/score \
-H "Authorization: Bearer wk_live_xxx" \
-H "Content-Type: application/json" \
-d '{"data": "1.2,-0.8,2.1,-1.4,0.9,...", "nTrials": 50}'Body: data (per-trade returns / P&L as a string — comma, space or newline separated; CSV also accepted), nTrials (integer ≥ 1 — strategy variations you tried), optional label.
Response
{
"id": "ab12cd34ef",
"edgeScore": 57,
"band": "FRAGILE",
"verdict": "There may be a real edge — but it's thin and not yet proven.",
"confidence": "medium",
"metrics": {
"nTrades": 240, "sharpe": 0.31, "winRate": 0.58,
"deflatedSharpeProb": 0.57, "beatsLuckPercentile": 0.93,
"minTrackRecordLength": 210, "profitFactor": 1.34, "maxDrawdown": 0.12
},
"riskOfRuin": { "probability": 0.02, "threshold": 0.5, "medianMaxDrawdown": 0.09 },
"reportUrl": "https://wembro.com/r/ab12cd34ef",
"verifyUrl": "https://wembro.com/verify/ab12cd34ef",
"signature": "…",
"disclaimer": "Hypothetical, impersonal statistical analysis…"
}Rate-limit headers X-RateLimit-Limit / X-RateLimit-Remaining are returned on every call. 401 = bad key, 429 = monthly cap reached.
Screening endpoint (for firms & marketplaces)
POST https://wembro.com/api/v1/screen · same Bearer auth. Returns a pass/reject against your thresholds plus a single-account abuse fingerprint — for vetting applicants, sellers, or managers at volume.
Request
curl -X POST https://wembro.com/api/v1/screen \
-H "Authorization: Bearer wk_live_xxx" \
-H "Content-Type: application/json" \
-d '{"data": "1.2,-0.8,2.1,...", "nTrials": 1,
"thresholds": {"minScore": 60, "maxRuinP95": 0.5, "minTrades": 30}}'Body: data, nTrials (required), optional trialCorrelation and thresholds (minScore, maxRuinP95, minTrades).
Response
{
"pass": false,
"edgeScore": 41,
"band": "FRAGILE",
"nTrades": 180,
"ruinP95": 0.6100,
"fingerprint": {
"abuseRisk": "elevated",
"signals": ["post-loss position-size escalation (martingale/grid signature)"],
"topTradeSharePct": 46.2, "giniConcentration": 0.58, "runsClusteringZ": 2.4
},
"scope": "Single-account screen: detects single-account abuse … not cross-account collusion.",
"failedChecks": ["Edge Score 41 below minimum 60.", "95th-pct drawdown 61% exceeds limit 50%."],
"persisted": false,
"disclaimer": "Hypothetical, impersonal statistical analysis…"
}Privacy: the applicant's record is scored and returned but not persisted — no public report URL is created for third-party data (persisted: false). The fingerprint sees one ledger, so it flags single-account abuse, not cross-account collusion.
Your API keys
Loading…