Propper API

.md

One HTTP API for every propfirm on the platform. The credential decides which firm you are acting for.

The Propper API lets your own website, back office or automation talk to the platform. Everything runs on one host:

https://api.proppertrading.com/v1

There is no propfirm identifier anywhere in a URL. The API key you send decides which firm the request acts for, so a key from one firm can never read or change another firm's data.

Your first request

curl https://api.proppertrading.com/v1/ping \
  -H "Authorization: Bearer sk_live_a1b2c3d4_9f83c2e15b7a4d6e8091c3f5a7b9d1e2"
{
    "data": {
        "ok": true,
        "environment": "live",
        "api_key": "a1b2c3d4",
        "scopes": ["affiliates:write"],
        "tenant": { "name": "Acme Funded", "slug": "acme" },
        "time": "2026-08-03T12:00:00+00:00"
    },
    "meta": { "request_id": "req_01kz4bkr1aj1gv63d8fv3133ey" }
}

If that works, your key is valid and you can see exactly which scopes it carries.

Conventions

Every response uses the same envelope. Success:

{
    "data": {},
    "meta": { "request_id": "req_01kz4bkr1aj1gv63d8fv3133ey" }
}

Failure:

{
    "error": {
        "type": "invalid_request_error",
        "code": "email_already_registered",
        "message": "This email address already has a reserved referral code.",
        "request_id": "req_01kz4bkr1aj1gv63d8fv3133ey"
    }
}
  • All timestamps are ISO-8601 in UTC.
  • All ids are strings carrying a prefix that tells you the type, such as aff_pre_.
  • Only application/json request bodies are accepted.
  • Every response carries an X-Request-Id header that matches meta.request_id. Quote it when you contact support and we can find the exact request.

Reading this with an AI

Every page here is available as markdown by adding .md to its URL, for example /docs/api/errors.md. /docs/llms.txt lists all of them in one file.