const res = await fetch('https://app.trdrs.co/api/partner/venues/{venueId}/risk-policies/{policyId}', {
headers: { Authorization: `Bearer ${process.env.TRDRS_VENUE_KEY}` },
})
const data = await res.json()curl 'https://app.trdrs.co/api/partner/venues/{venueId}/risk-policies/{policyId}' \
-H "Authorization: Bearer $TRDRS_VENUE_KEY"import requests
url = "https://app.trdrs.co/api/partner/venues/{venueId}/risk-policies/{policyId}"
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/partner/venues/{venueId}/risk-policies/{policyId}",
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/partner/venues/{venueId}/risk-policies/{policyId}"
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/partner/venues/{venueId}/risk-policies/{policyId}")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://app.trdrs.co/api/partner/venues/{venueId}/risk-policies/{policyId}")
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{
"policy": {
"policyId": "meridian-futures",
"inForce": {
"version": "2026-10-01",
"sequence": 1
},
"versions": [
{
"version": "2026-10-01",
"contentDigest": "eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee",
"recordedAt": "2026-09-14T12:00:00.000Z",
"policy": {
"policyId": "meridian-futures",
"version": "2026-10-01",
"authority": {
"kind": "firm",
"venueId": "00000000-0000-0000-0000-000000000001",
"name": "Meridian Futures"
},
"currency": "USD",
"pools": {
"futures": {
"margin": {
"version": "margin-2026-10-01",
"authority": "firm",
"source": "the venue's own terms",
"effectiveFrom": "2026-10-01T00:00:00.000Z",
"effectiveUntil": null,
"asset": "USD",
"basis": "per_contract",
"window": {
"timeZone": "America/Chicago",
"startMinute": 510,
"exposureCutoffMinute": 900,
"endMinute": 915,
"weekdays": [
1,
2,
3,
4,
5
],
"closedDates": []
},
"closeOnly": "at_roll",
"contracts": [
{
"contract": "CME:NQZ2026",
"root": "NQ",
"day": {
"initial": "1000",
"maintenance": "500",
"sources": {
"initial": {
"authority": "firm",
"source": "the venue's own terms",
"sourced": true
},
"maintenance": {
"authority": "firm",
"source": "the venue's own terms",
"sourced": true
}
}
},
"overnight": {
"initial": "43207",
"maintenance": "43207",
"sources": {
"initial": {
"authority": "firm",
"source": "the venue's own terms",
"sourced": true
},
"maintenance": {
"authority": "firm",
"source": "the venue's own terms",
"sourced": true
}
}
}
}
]
},
"thresholds": {
"version": "thresholds-2026-10-01",
"authority": "firm",
"source": "the venue's own terms",
"effectiveFrom": "2026-10-01T00:00:00.000Z",
"effectiveUntil": null,
"marginCall": null,
"stopOut": "1",
"recoveryLevel": "1.1",
"sources": {
"marginCall": {
"authority": "firm",
"source": "the venue's own terms",
"sourced": true
},
"stopOut": {
"authority": "firm",
"source": "the venue's own terms",
"sourced": true
},
"recoveryLevel": {
"authority": "firm",
"source": "the venue's own terms",
"sourced": true
}
}
},
"valuation": {
"version": "valuation-2026-10-01",
"authority": "firm",
"source": "the venue's own terms",
"effectiveFrom": "2026-10-01T00:00:00.000Z",
"effectiveUntil": null,
"maxAgeMs": 5000
},
"ticketHedging": null
},
"crypto_derivative": null
},
"settlement": {
"version": "settlement-2026-10-01",
"authority": "firm",
"source": "the venue's own terms",
"effectiveFrom": "2026-10-01T00:00:00.000Z",
"effectiveUntil": null,
"kind": "settlement_asset"
},
"posting": {
"version": "posting-2026-10-01",
"authority": "firm",
"source": "the venue's own terms",
"effectiveFrom": "2026-10-01T00:00:00.000Z",
"effectiveUntil": null,
"currencies": [
{
"currency": "USD",
"decimals": 2,
"rounding": "half_even",
"source": {
"authority": "publisher",
"source": "ISO 4217: USD minor unit 2",
"sourced": true,
"document": null
}
}
]
}
}
}
],
"publications": [
{
"sequence": 1,
"version": "2026-10-01",
"publishedAt": "2026-09-14T12:00:00.000Z",
"publishedBy": "00000000-0000-0000-0000-000000000001",
"reference": "publish-2026-10-01"
}
]
}
}{
"error": "invalid_instrument"
}{
"error": "invalid_instrument"
}{
"error": "invalid_instrument"
}{
"error": "invalid_instrument"
}{
"error": "invalid_instrument"
}{
"error": "invalid_instrument"
}{
"error": "invalid_instrument"
}{
"error": "invalid_instrument"
}Read one risk policy
Reads one of the venue’s risk policies with the full content of each stored version, its publications and the version in force. Use it to check the exact terms before you publish. Required scope: venue:read. 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}/risk-policies/{policyId}', {
headers: { Authorization: `Bearer ${process.env.TRDRS_VENUE_KEY}` },
})
const data = await res.json()curl 'https://app.trdrs.co/api/partner/venues/{venueId}/risk-policies/{policyId}' \
-H "Authorization: Bearer $TRDRS_VENUE_KEY"import requests
url = "https://app.trdrs.co/api/partner/venues/{venueId}/risk-policies/{policyId}"
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/partner/venues/{venueId}/risk-policies/{policyId}",
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/partner/venues/{venueId}/risk-policies/{policyId}"
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/partner/venues/{venueId}/risk-policies/{policyId}")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://app.trdrs.co/api/partner/venues/{venueId}/risk-policies/{policyId}")
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{
"policy": {
"policyId": "meridian-futures",
"inForce": {
"version": "2026-10-01",
"sequence": 1
},
"versions": [
{
"version": "2026-10-01",
"contentDigest": "eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee",
"recordedAt": "2026-09-14T12:00:00.000Z",
"policy": {
"policyId": "meridian-futures",
"version": "2026-10-01",
"authority": {
"kind": "firm",
"venueId": "00000000-0000-0000-0000-000000000001",
"name": "Meridian Futures"
},
"currency": "USD",
"pools": {
"futures": {
"margin": {
"version": "margin-2026-10-01",
"authority": "firm",
"source": "the venue's own terms",
"effectiveFrom": "2026-10-01T00:00:00.000Z",
"effectiveUntil": null,
"asset": "USD",
"basis": "per_contract",
"window": {
"timeZone": "America/Chicago",
"startMinute": 510,
"exposureCutoffMinute": 900,
"endMinute": 915,
"weekdays": [
1,
2,
3,
4,
5
],
"closedDates": []
},
"closeOnly": "at_roll",
"contracts": [
{
"contract": "CME:NQZ2026",
"root": "NQ",
"day": {
"initial": "1000",
"maintenance": "500",
"sources": {
"initial": {
"authority": "firm",
"source": "the venue's own terms",
"sourced": true
},
"maintenance": {
"authority": "firm",
"source": "the venue's own terms",
"sourced": true
}
}
},
"overnight": {
"initial": "43207",
"maintenance": "43207",
"sources": {
"initial": {
"authority": "firm",
"source": "the venue's own terms",
"sourced": true
},
"maintenance": {
"authority": "firm",
"source": "the venue's own terms",
"sourced": true
}
}
}
}
]
},
"thresholds": {
"version": "thresholds-2026-10-01",
"authority": "firm",
"source": "the venue's own terms",
"effectiveFrom": "2026-10-01T00:00:00.000Z",
"effectiveUntil": null,
"marginCall": null,
"stopOut": "1",
"recoveryLevel": "1.1",
"sources": {
"marginCall": {
"authority": "firm",
"source": "the venue's own terms",
"sourced": true
},
"stopOut": {
"authority": "firm",
"source": "the venue's own terms",
"sourced": true
},
"recoveryLevel": {
"authority": "firm",
"source": "the venue's own terms",
"sourced": true
}
}
},
"valuation": {
"version": "valuation-2026-10-01",
"authority": "firm",
"source": "the venue's own terms",
"effectiveFrom": "2026-10-01T00:00:00.000Z",
"effectiveUntil": null,
"maxAgeMs": 5000
},
"ticketHedging": null
},
"crypto_derivative": null
},
"settlement": {
"version": "settlement-2026-10-01",
"authority": "firm",
"source": "the venue's own terms",
"effectiveFrom": "2026-10-01T00:00:00.000Z",
"effectiveUntil": null,
"kind": "settlement_asset"
},
"posting": {
"version": "posting-2026-10-01",
"authority": "firm",
"source": "the venue's own terms",
"effectiveFrom": "2026-10-01T00:00:00.000Z",
"effectiveUntil": null,
"currencies": [
{
"currency": "USD",
"decimals": 2,
"rounding": "half_even",
"source": {
"authority": "publisher",
"source": "ISO 4217: USD minor unit 2",
"sourced": true,
"document": null
}
}
]
}
}
}
],
"publications": [
{
"sequence": 1,
"version": "2026-10-01",
"publishedAt": "2026-09-14T12:00:00.000Z",
"publishedBy": "00000000-0000-0000-0000-000000000001",
"reference": "publish-2026-10-01"
}
]
}
}{
"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, and it works only on the /api/partner/venues/{venueId} routes. A trdrs_sk_… key can't be used in its place. It never lets you act as a trader, sign in or manage keys. Keep it on your server.
Path Parameters
The policy's id, as you named it in its first version.
Response
Success. The response is sent with Cache-Control: no-store, so don't cache it.
Show child attributes
Show child attributes