// Runs in a signed-in trdrs session, which sends its cookie. An API key cannot call this route.
const res = await fetch('https://app.trdrs.co/api/challenges', {
credentials: 'include',
})
const data = await res.json()curl 'https://app.trdrs.co/api/challenges' \
-b "session=$TRDRS_SESSION"import requests
url = "https://app.trdrs.co/api/challenges"
headers = {"cookie": "session="}
response = requests.get(url, headers=headers)
print(response.text)<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://app.trdrs.co/api/challenges",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_COOKIE => "session=",
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://app.trdrs.co/api/challenges"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("cookie", "session=")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://app.trdrs.co/api/challenges")
.header("cookie", "session=")
.asString();require 'uri'
require 'net/http'
url = URI("https://app.trdrs.co/api/challenges")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["cookie"] = 'session='
response = http.request(request)
puts response.read_body{
"challenges": [
{
"id": "3f8a1c2e-9b47-4d10-a3fe-2c61b7c90d84",
"name": "50K Evaluation",
"description": "Two-stage evaluation on a 50K account.",
"isActive": true,
"stage": 1,
"nextChallengeId": "8d2f5a90-1e4b-4c7a-9f3d-6b0a8c4e2f17",
"allowedTypes": [
"standard"
],
"accountSizes": [
50000
],
"currency": "USD",
"priceCents": 0,
"sizes": [
{
"size": 50000,
"venueId": "5b1d7e20-3c4a-4f8e-9d21-7a6c0b3e9f42",
"groupId": "evaluation-50k",
"stage": {
"stageId": "evaluation-1",
"profitTarget": "4000",
"minimumTradingDays": 5,
"session": {
"timeZone": "America/Chicago",
"rolloverHour": 17
},
"drawdown": {
"maxLoss": "4000",
"kind": "trailing",
"measure": "equity",
"highWater": "endOfDay",
"dailyMaxLoss": "2000"
},
"maximumReturn": null,
"maximumDays": null
}
}
],
"profitSharePct": null
}
]
}List evaluation programs
Returns the published evaluation programs open for enrollment.
Preview: outside the additive-only guarantee. These shapes will change when challenges are rebuilt, so read them but don’t build on them.
Served only where the engine runs with CHALLENGES_ENABLED. Without it, these routes don’t exist, and every path here answers 404.
Requires a signed-in session.
// Runs in a signed-in trdrs session, which sends its cookie. An API key cannot call this route.
const res = await fetch('https://app.trdrs.co/api/challenges', {
credentials: 'include',
})
const data = await res.json()curl 'https://app.trdrs.co/api/challenges' \
-b "session=$TRDRS_SESSION"import requests
url = "https://app.trdrs.co/api/challenges"
headers = {"cookie": "session="}
response = requests.get(url, headers=headers)
print(response.text)<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://app.trdrs.co/api/challenges",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_COOKIE => "session=",
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://app.trdrs.co/api/challenges"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("cookie", "session=")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://app.trdrs.co/api/challenges")
.header("cookie", "session=")
.asString();require 'uri'
require 'net/http'
url = URI("https://app.trdrs.co/api/challenges")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["cookie"] = 'session='
response = http.request(request)
puts response.read_body{
"challenges": [
{
"id": "3f8a1c2e-9b47-4d10-a3fe-2c61b7c90d84",
"name": "50K Evaluation",
"description": "Two-stage evaluation on a 50K account.",
"isActive": true,
"stage": 1,
"nextChallengeId": "8d2f5a90-1e4b-4c7a-9f3d-6b0a8c4e2f17",
"allowedTypes": [
"standard"
],
"accountSizes": [
50000
],
"currency": "USD",
"priceCents": 0,
"sizes": [
{
"size": 50000,
"venueId": "5b1d7e20-3c4a-4f8e-9d21-7a6c0b3e9f42",
"groupId": "evaluation-50k",
"stage": {
"stageId": "evaluation-1",
"profitTarget": "4000",
"minimumTradingDays": 5,
"session": {
"timeZone": "America/Chicago",
"rolloverHour": 17
},
"drawdown": {
"maxLoss": "4000",
"kind": "trailing",
"measure": "equity",
"highWater": "endOfDay",
"dailyMaxLoss": "2000"
},
"maximumReturn": null,
"maximumDays": null
}
}
],
"profitSharePct": null
}
]
}Authorizations
The signed session cookie of a trdrs user who is signed in, used by trdrs's own apps in a browser. The trading app and the Connect dashboard each sign in on their own: the trading app with a trader's session and the Connect dashboard with a Connect account's session, and a route takes the session of the one that calls it. An API key cannot reach a route secured this way.
Response
The programs open for enrollment.
The programs open to you.
The programs.
Show child attributes
Show child attributes