const res = await fetch('https://app.trdrs.co/api/partner/venues/{venueId}/connect/paper', {
method: 'PUT',
headers: {
'content-type': 'application/json',
Authorization: `Bearer ${process.env.TRDRS_VENUE_KEY}`,
"Idempotency-Key": "example-request-1",
},
body: JSON.stringify({
"enabled": true,
"openingBalance": 100000,
"expectedRevision": 0
}),
})
const data = await res.json()curl -X PUT 'https://app.trdrs.co/api/partner/venues/{venueId}/connect/paper' \
-H "Authorization: Bearer $TRDRS_VENUE_KEY" \
-H 'Idempotency-Key: example-request-1' \
-H 'content-type: application/json' \
-d '{"enabled":true,"openingBalance":100000,"expectedRevision":0}'import requests
url = "https://app.trdrs.co/api/partner/venues/{venueId}/connect/paper"
payload = {
"enabled": True,
"openingBalance": 100000,
"expectedRevision": 0
}
headers = {
"Idempotency-Key": "<idempotency-key>",
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.put(url, json=payload, headers=headers)
print(response.text)<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://app.trdrs.co/api/partner/venues/{venueId}/connect/paper",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PUT",
CURLOPT_POSTFIELDS => json_encode([
'enabled' => true,
'openingBalance' => 100000,
'expectedRevision' => 0
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json",
"Idempotency-Key: <idempotency-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://app.trdrs.co/api/partner/venues/{venueId}/connect/paper"
payload := strings.NewReader("{\n \"enabled\": true,\n \"openingBalance\": 100000,\n \"expectedRevision\": 0\n}")
req, _ := http.NewRequest("PUT", url, payload)
req.Header.Add("Idempotency-Key", "<idempotency-key>")
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.put("https://app.trdrs.co/api/partner/venues/{venueId}/connect/paper")
.header("Idempotency-Key", "<idempotency-key>")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"enabled\": true,\n \"openingBalance\": 100000,\n \"expectedRevision\": 0\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://app.trdrs.co/api/partner/venues/{venueId}/connect/paper")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Put.new(url)
request["Idempotency-Key"] = '<idempotency-key>'
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"enabled\": true,\n \"openingBalance\": 100000,\n \"expectedRevision\": 0\n}"
response = http.request(request)
puts response.read_body{
"paper": {
"enabled": true,
"openingBalance": 100000,
"revision": 1
}
}{
"error": "invalid_instrument"
}{
"error": "invalid_instrument"
}{
"error": "invalid_instrument"
}{
"error": "invalid_instrument"
}{
"error": "invalid_instrument"
}{
"error": "invalid_instrument"
}{
"error": "invalid_instrument"
}{
"error": "invalid_instrument"
}Offer Paper in your Connect
Switches your Paper tile on or off and sets the balance, in whole US dollars from 1,000 to 10,000,000, that each of your traders’ Paper accounts opens with. A trader who opens Paper holds one paper account of their own on trdrs’s terms, trading every product class trdrs’s paper book offers from one balance, and an account already open keeps its balance. Futures prices come from the trader’s own Rithmic login, so offer a Rithmic tile beside Paper for futures. Switching Paper off stops new Paper accounts at once and closes none. The response is your Paper as it now stands, and sending what is already so changes nothing. Required scope: connect:manage. Preview: served on the sandbox to every venue, and production availability is arranged when a venue qualifies. Trading API keys and Partner keys do not authorize these routes.
const res = await fetch('https://app.trdrs.co/api/partner/venues/{venueId}/connect/paper', {
method: 'PUT',
headers: {
'content-type': 'application/json',
Authorization: `Bearer ${process.env.TRDRS_VENUE_KEY}`,
"Idempotency-Key": "example-request-1",
},
body: JSON.stringify({
"enabled": true,
"openingBalance": 100000,
"expectedRevision": 0
}),
})
const data = await res.json()curl -X PUT 'https://app.trdrs.co/api/partner/venues/{venueId}/connect/paper' \
-H "Authorization: Bearer $TRDRS_VENUE_KEY" \
-H 'Idempotency-Key: example-request-1' \
-H 'content-type: application/json' \
-d '{"enabled":true,"openingBalance":100000,"expectedRevision":0}'import requests
url = "https://app.trdrs.co/api/partner/venues/{venueId}/connect/paper"
payload = {
"enabled": True,
"openingBalance": 100000,
"expectedRevision": 0
}
headers = {
"Idempotency-Key": "<idempotency-key>",
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.put(url, json=payload, headers=headers)
print(response.text)<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://app.trdrs.co/api/partner/venues/{venueId}/connect/paper",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PUT",
CURLOPT_POSTFIELDS => json_encode([
'enabled' => true,
'openingBalance' => 100000,
'expectedRevision' => 0
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json",
"Idempotency-Key: <idempotency-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://app.trdrs.co/api/partner/venues/{venueId}/connect/paper"
payload := strings.NewReader("{\n \"enabled\": true,\n \"openingBalance\": 100000,\n \"expectedRevision\": 0\n}")
req, _ := http.NewRequest("PUT", url, payload)
req.Header.Add("Idempotency-Key", "<idempotency-key>")
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.put("https://app.trdrs.co/api/partner/venues/{venueId}/connect/paper")
.header("Idempotency-Key", "<idempotency-key>")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"enabled\": true,\n \"openingBalance\": 100000,\n \"expectedRevision\": 0\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://app.trdrs.co/api/partner/venues/{venueId}/connect/paper")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Put.new(url)
request["Idempotency-Key"] = '<idempotency-key>'
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"enabled\": true,\n \"openingBalance\": 100000,\n \"expectedRevision\": 0\n}"
response = http.request(request)
puts response.read_body{
"paper": {
"enabled": true,
"openingBalance": 100000,
"revision": 1
}
}{
"error": "invalid_instrument"
}{
"error": "invalid_instrument"
}{
"error": "invalid_instrument"
}{
"error": "invalid_instrument"
}{
"error": "invalid_instrument"
}{
"error": "invalid_instrument"
}{
"error": "invalid_instrument"
}{
"error": "invalid_instrument"
}Authorizations
The Venue key (trdrs_vk_sandbox_… or trdrs_vk_production_…), in preview. It belongs to one venue in one environment and carries the scopes it was created with. The venue's verified owner creates it while signed in. It works on the /api/partner/venues/{venueId} routes and, with trader:read or trader:trade, on the account, market and trading routes for the venue's own traders, each request naming its trader in x-trdrs-trader. A trdrs_sk_… key can't be used in its place. It never signs in, manages keys or reaches a trdrs user's accounts. Keep it on your server.
Headers
A key you choose, 1 to 128 characters, that identifies this write. Send the same key when you retry it, so the write is never applied twice.
1 - 128Path Parameters
Body
Response
Success. The response is sent with Cache-Control: no-store, so don't cache it.
Paper in your Connect: trdrs's paper book under your name and logo. Each of your traders who opens it holds a paper account of their own on trdrs's terms, trading every product class trdrs's paper book offers from one US dollar balance.
Show child attributes
Show child attributes