{
  "$comment": "The PropExecutor API endpoint index. Not an OpenAPI schema: request and response bodies are documented per endpoint at the `docs` URL below.",
  "api_base": "https://api.propexecutor.com",
  "docs": "https://www.propexecutor.com/docs",
  "llms_txt": "https://www.propexecutor.com/llms.txt",
  "built_at": "2026-10-03T20:10:11.463Z",
  "count": 50,
  "endpoints": [
    {
      "method": "GET",
      "path": "/v1/accounts",
      "scope": "accounts:read",
      "status": "available",
      "summary": "List trading accounts, newest first.",
      "group": "Trading accounts"
    },
    {
      "method": "GET",
      "path": "/v1/accounts/{account}",
      "scope": "accounts:read",
      "status": "available",
      "summary": "One account with live balance, equity and open positions.",
      "group": "Trading accounts"
    },
    {
      "method": "POST",
      "path": "/v1/accounts",
      "scope": "accounts:write",
      "status": "planned",
      "summary": "Provision one or more accounts. Spends account credits.",
      "group": "Trading accounts"
    },
    {
      "method": "PUT",
      "path": "/v1/accounts/{account}/trader",
      "scope": "accounts:write",
      "status": "available",
      "summary": "Assign an account to a trader by name and email, creating the trader if needed.",
      "group": "Trading accounts"
    },
    {
      "method": "DELETE",
      "path": "/v1/accounts/{account}/trader",
      "scope": "accounts:write",
      "status": "available",
      "summary": "Take an account back off its holder. Revokes its sessions.",
      "group": "Trading accounts"
    },
    {
      "method": "POST",
      "path": "/v1/accounts/{account}/archive",
      "scope": "accounts:write",
      "status": "planned",
      "summary": "Take an account out of circulation and revoke its sessions.",
      "group": "Trading accounts"
    },
    {
      "method": "GET",
      "path": "/v1/accounts/{account}/trades",
      "scope": "accounts:read",
      "status": "available",
      "summary": "Full trade history, open and closed, cursor-paginated.",
      "group": "Trading accounts"
    },
    {
      "method": "GET",
      "path": "/v1/accounts/{account}/positions",
      "scope": "accounts:read",
      "status": "available",
      "summary": "Open positions only, marked to the latest price.",
      "group": "Trading accounts"
    },
    {
      "method": "GET",
      "path": "/v1/accounts/{account}/orders",
      "scope": "accounts:read",
      "status": "available",
      "summary": "Resting orders — limits and stops that have not triggered.",
      "group": "Trading accounts"
    },
    {
      "method": "GET",
      "path": "/v1/accounts/{account}/rule-flags",
      "scope": "accounts:read",
      "status": "available",
      "summary": "Rules the account tripped that flag rather than breach.",
      "group": "Trading accounts"
    },
    {
      "method": "POST",
      "path": "/v1/accounts/{account}/breach",
      "scope": "trading:write",
      "status": "planned",
      "summary": "Force a breach for a violation caught outside the platform.",
      "group": "Trading accounts"
    },
    {
      "method": "POST",
      "path": "/v1/accounts/{account}/positions",
      "scope": "trading:write",
      "status": "planned",
      "summary": "Open a position on an account's behalf.",
      "group": "Trading accounts"
    },
    {
      "method": "DELETE",
      "path": "/v1/accounts/{account}/positions/{id}",
      "scope": "trading:write",
      "status": "planned",
      "summary": "Close an open position.",
      "group": "Trading accounts"
    },
    {
      "method": "GET",
      "path": "/v1/accounts/{account}/credentials",
      "scope": "credentials:read",
      "status": "available",
      "summary": "The Account Number / Server / Password a trader signs in with.",
      "group": "Credentials"
    },
    {
      "method": "POST",
      "path": "/v1/accounts/{account}/credentials/rotate",
      "scope": "credentials:read",
      "status": "available",
      "summary": "Generate a new password and end every live session.",
      "group": "Credentials"
    },
    {
      "method": "GET",
      "path": "/v1/traders",
      "scope": "accounts:read",
      "status": "planned",
      "summary": "List trader records.",
      "group": "Traders"
    },
    {
      "method": "POST",
      "path": "/v1/traders",
      "scope": "accounts:write",
      "status": "planned",
      "summary": "Create a trader record. Sends nothing and grants no login.",
      "group": "Traders"
    },
    {
      "method": "GET",
      "path": "/v1/traders/{id}",
      "scope": "accounts:read",
      "status": "planned",
      "summary": "One trader with the accounts they hold.",
      "group": "Traders"
    },
    {
      "method": "PATCH",
      "path": "/v1/traders/{id}",
      "scope": "accounts:write",
      "status": "planned",
      "summary": "Correct a trader's name or email.",
      "group": "Traders"
    },
    {
      "method": "GET",
      "path": "/v1/traders/{id}/summary",
      "scope": "accounts:read",
      "status": "planned",
      "summary": "Aggregate performance across every account this trader holds.",
      "group": "Traders"
    },
    {
      "method": "GET",
      "path": "/v1/account-types",
      "scope": "accounts:read",
      "status": "planned",
      "summary": "The challenges you sell, with their balances and rule sets.",
      "group": "Account types"
    },
    {
      "method": "POST",
      "path": "/v1/account-types",
      "scope": "accounts:write",
      "status": "planned",
      "summary": "Create a challenge tier pointing at a rule set.",
      "group": "Account types"
    },
    {
      "method": "PATCH",
      "path": "/v1/account-types/{id}",
      "scope": "accounts:write",
      "status": "planned",
      "summary": "Rename or reprice a challenge. Existing accounts are unaffected.",
      "group": "Account types"
    },
    {
      "method": "GET",
      "path": "/v1/rule-sets",
      "scope": "accounts:read",
      "status": "planned",
      "summary": "List rule sets and their current version.",
      "group": "Rule sets"
    },
    {
      "method": "POST",
      "path": "/v1/rule-sets",
      "scope": "accounts:write",
      "status": "planned",
      "summary": "Create a rule set.",
      "group": "Rule sets"
    },
    {
      "method": "GET",
      "path": "/v1/rule-sets/{id}/versions",
      "scope": "accounts:read",
      "status": "planned",
      "summary": "Every version of a rule set, newest first.",
      "group": "Rule sets"
    },
    {
      "method": "POST",
      "path": "/v1/rule-sets/{id}/versions",
      "scope": "accounts:write",
      "status": "planned",
      "summary": "Append a new version. Never edits an existing one.",
      "group": "Rule sets"
    },
    {
      "method": "GET",
      "path": "/v1/rule-catalog",
      "scope": "accounts:read",
      "status": "planned",
      "summary": "Every rule you can build with, and which your tier unlocks.",
      "group": "Rule sets"
    },
    {
      "method": "GET",
      "path": "/v1/accounts/{account}/analytics",
      "scope": "accounts:read",
      "status": "available",
      "summary": "One account's whole performance picture in a single response.",
      "group": "Analytics"
    },
    {
      "method": "GET",
      "path": "/v1/accounts/{account}/equity",
      "scope": "accounts:read",
      "status": "available",
      "summary": "The balance and equity series behind the chart.",
      "group": "Analytics"
    },
    {
      "method": "GET",
      "path": "/v1/accounts/{account}/report",
      "scope": "accounts:read",
      "status": "available",
      "summary": "The whole account in one response — deals and evaluation terms included.",
      "group": "Analytics"
    },
    {
      "method": "GET",
      "path": "/v1/reports/overview",
      "scope": "accounts:read",
      "status": "planned",
      "summary": "Firm-wide counts, pass rate and net P&L across every account.",
      "group": "Reporting"
    },
    {
      "method": "GET",
      "path": "/v1/reports/leaderboard",
      "scope": "accounts:read",
      "status": "planned",
      "summary": "Accounts ranked by gain, drawdown or profit factor.",
      "group": "Reporting"
    },
    {
      "method": "GET",
      "path": "/v1/reports/decisions",
      "scope": "accounts:read",
      "status": "planned",
      "summary": "A feed of breaches and passes, newest first.",
      "group": "Reporting"
    },
    {
      "method": "GET",
      "path": "/v1/instruments",
      "scope": "accounts:read",
      "status": "planned",
      "summary": "Tradeable symbols with their asset class and leverage.",
      "group": "Market data"
    },
    {
      "method": "GET",
      "path": "/v1/prices",
      "scope": "accounts:read",
      "status": "planned",
      "summary": "Latest bid/ask for one or more instruments.",
      "group": "Market data"
    },
    {
      "method": "GET",
      "path": "/v1/candles",
      "scope": "accounts:read",
      "status": "planned",
      "summary": "OHLC history for an instrument, back to 2000 where we have it.",
      "group": "Market data"
    },
    {
      "method": "GET",
      "path": "/v1/credits",
      "scope": "accounts:read",
      "status": "planned",
      "summary": "Granted, used and remaining account credits, with your tier.",
      "group": "Billing"
    },
    {
      "method": "GET",
      "path": "/v1/credits/ledger",
      "scope": "accounts:read",
      "status": "planned",
      "summary": "Every grant and debit that moved your balance.",
      "group": "Billing"
    },
    {
      "method": "GET",
      "path": "/v1/purchases",
      "scope": "accounts:read",
      "status": "planned",
      "summary": "Your plan, pack and upgrade purchases.",
      "group": "Billing"
    },
    {
      "method": "GET",
      "path": "/v1/branding",
      "scope": "accounts:read",
      "status": "planned",
      "summary": "How your executor currently looks.",
      "group": "Branding"
    },
    {
      "method": "PUT",
      "path": "/v1/branding",
      "scope": "accounts:write",
      "status": "planned",
      "summary": "Update logos, colours and the login screen. Tier-gated.",
      "group": "Branding"
    },
    {
      "method": "GET",
      "path": "/v1/webhooks",
      "scope": "accounts:read",
      "status": "planned",
      "summary": "List your webhook endpoints.",
      "group": "Webhooks"
    },
    {
      "method": "POST",
      "path": "/v1/webhooks",
      "scope": "accounts:write",
      "status": "planned",
      "summary": "Register a URL and get its signing secret.",
      "group": "Webhooks"
    },
    {
      "method": "DELETE",
      "path": "/v1/webhooks/{id}",
      "scope": "accounts:write",
      "status": "planned",
      "summary": "Stop delivering to an endpoint.",
      "group": "Webhooks"
    },
    {
      "method": "GET",
      "path": "/v1/webhooks/{id}/deliveries",
      "scope": "accounts:read",
      "status": "planned",
      "summary": "Delivery attempts and their outcomes, for debugging.",
      "group": "Webhooks"
    },
    {
      "method": "POST",
      "path": "/v1/webhooks/{id}/test",
      "scope": "accounts:write",
      "status": "planned",
      "summary": "Send a signed test event so you can verify your handler.",
      "group": "Webhooks"
    },
    {
      "method": "GET",
      "path": "/api-keys",
      "scope": "panel",
      "status": "available",
      "summary": "List your organization's API keys.",
      "group": "API keys"
    },
    {
      "method": "POST",
      "path": "/api-keys",
      "scope": "panel",
      "status": "available",
      "summary": "Issue a key. The token is returned once.",
      "group": "API keys"
    },
    {
      "method": "POST",
      "path": "/api-keys/{id}/revoke",
      "scope": "panel",
      "status": "available",
      "summary": "Revoke a key immediately.",
      "group": "API keys"
    }
  ]
}