Prop firm rules API (for AI agents and developers)

Read-only JSON over GET. CORS open. No key needed on the free tier (about 60 requests per minute per IP, best effort). Every response includes a disclaimer field.

The same sourced dataset and math as our drawdown calculator: 9 firms and 13 programs (FTMO, FundedNext, The5ers, E8 Markets, FundingPips, Alpha Capital, Blue Guardian, Topstep, Apex Trader Funding) with daily-loss and max-drawdown rules, reset times, official source links and last-verified dates. The data is the MIT-licensed prop-firm-rules dataset.

Endpoints

GETReturns
/api/v1/firmsFirms and programs with ids, sizes, verification flags, dataset version and last-verified date.
/api/v1/rules?program=ftmo_2stepFull rule set for one program, plus the firm's copy-trading and automation policy.
/api/v1/check?program=…&accountSize=…&currentEquity=…Dollars of room left to the daily loss limit and the max drawdown floor, and whether either is breached.
/api/v1/openapi.jsonOpenAPI 3.1 spec (import it into an agent framework or tool caller).

/api/v1/check parameters

NameRequiredMeaning
programyesProgram id from /api/v1/firms
accountSizeyesNominal size, e.g. 100000 (Topstep and Apex need one of the listed sizes)
currentEquityyesEquity including open P&L
startingBalancenoInitial balance (default: accountSize)
highWaterMarknoPeak the firm trails from (trailing programs)
todayPnlnoP&L since the firm's daily reset, closed + open (default 0)
currentBalance, dayStartBalance, customDailyLossnoAdvanced overrides; see the OpenAPI spec

We compare the lower of balance and equity to each floor (conservative). room can be negative; remaining is never below 0.

Example

curl 'https://floorguard-kappa.vercel.app/api/v1/check?program=ftmo_2step&accountSize=100000&currentEquity=96500&todayPnl=-3000'

{ "ok": true, "apiVersion": "v1",
  "result": { "dailyLossRemaining": 2000, "maxDrawdownRemaining": 6500,
              "breached": false, "breachedRules": [], "bindingLimit": "daily", "status": "amber", … },
  "disclaimer": "Informational only, not financial advice. …" }

Limits, caching and payments

Responses are cached at the edge (rules for up to an hour, checks for a minute). Errors use the same JSON envelope with an error.code (missing_program, unknown_program, invalid_parameters, rate_limited, not_found). The free tier has no key. Paid per-call access over the x402 standard may be added later for heavier use; it is not live, and nothing here asks for a payment today.

Agent discovery: /llms.txt and /.well-known/ai-plugin.json.