TypeScript
const res = await fetch('https://app.trdrs.co/api/pre-registration/registrations', {
headers: { Authorization: `Bearer ${process.env.TRDRS_API_KEY}` },
})
const data = await res.json()curl 'https://app.trdrs.co/api/pre-registration/registrations' \
-H "Authorization: Bearer $TRDRS_API_KEY"import requests
url = "https://app.trdrs.co/api/pre-registration/registrations"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://app.trdrs.co/api/pre-registration/registrations",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$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/pre-registration/registrations"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
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/pre-registration/registrations")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://app.trdrs.co/api/pre-registration/registrations")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"venue": "Meridian Futures",
"registrations": [
{
"id": "5c2e8f14-7a39-4d6b-b0e2-91f3c4a8d7e6",
"email": "trader@example.com",
"provider": "rithmic",
"system": "Apex",
"accountNumber": "PA-4821-07",
"venueLogin": "jsmith-apex",
"status": "pending",
"expiresAt": "2026-09-23T14:32:00Z",
"createdAt": "2026-08-24T14:32:00Z",
"linkedAt": null
},
{
"id": "0d9b3a72-4e15-4c8f-9a63-28e7f1b5c4d0",
"email": "second@example.com",
"provider": "rithmic",
"system": "Apex",
"accountNumber": "PA-4821-09",
"venueLogin": "mlee-apex",
"status": "linked",
"expiresAt": "2026-09-17T16:05:00Z",
"createdAt": "2026-08-18T16:05:00Z",
"linkedAt": "2026-08-20T09:14:00Z"
}
]
}{
"error": "invalid_instrument"
}Pre-registration
List pre-registered accounts
Returns every pre-registration your venue has made, newest first, so you can see who you invited and who has linked. Each one is pending while it waits for the trader, linked once the trader has linked the account, revoked or expired.
Required key: pre-registration key.
GET
/
api
/
pre-registration
/
registrations
TypeScript
const res = await fetch('https://app.trdrs.co/api/pre-registration/registrations', {
headers: { Authorization: `Bearer ${process.env.TRDRS_API_KEY}` },
})
const data = await res.json()curl 'https://app.trdrs.co/api/pre-registration/registrations' \
-H "Authorization: Bearer $TRDRS_API_KEY"import requests
url = "https://app.trdrs.co/api/pre-registration/registrations"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://app.trdrs.co/api/pre-registration/registrations",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$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/pre-registration/registrations"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
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/pre-registration/registrations")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://app.trdrs.co/api/pre-registration/registrations")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"venue": "Meridian Futures",
"registrations": [
{
"id": "5c2e8f14-7a39-4d6b-b0e2-91f3c4a8d7e6",
"email": "trader@example.com",
"provider": "rithmic",
"system": "Apex",
"accountNumber": "PA-4821-07",
"venueLogin": "jsmith-apex",
"status": "pending",
"expiresAt": "2026-09-23T14:32:00Z",
"createdAt": "2026-08-24T14:32:00Z",
"linkedAt": null
},
{
"id": "0d9b3a72-4e15-4c8f-9a63-28e7f1b5c4d0",
"email": "second@example.com",
"provider": "rithmic",
"system": "Apex",
"accountNumber": "PA-4821-09",
"venueLogin": "mlee-apex",
"status": "linked",
"expiresAt": "2026-09-17T16:05:00Z",
"createdAt": "2026-08-18T16:05:00Z",
"linkedAt": "2026-08-20T09:14:00Z"
}
]
}{
"error": "invalid_instrument"
}Authorizations
The pre-registration key (trdrs_sk_…), issued to a venue for Connect pre-registration and conformance runs in the sandbox. It works only on those routes under /api/pre-registration/, outside the venue routes. It looks like a Trading API key but has a different scope: a Trading API key is refused here, and a pre-registration key is refused everywhere else. A venue’s backend calls the venue routes with its Venue key.