SDR Volume

Volume of instruments reported to an SDR (trade counts, gross notional or dv01)

Due to capping rules applied to SDRs, notional and dv01 measures are lower than actual volume

Parameter Description Default Options
ticker
Optional
The BBG Ticker or list of tickers for the Swap instrument. See Tickers.
taxonomy
Optional
The full product taxonomy, e.g InterestRate:IRSwap:FixedFloat, Credit:Index:CDX:CDXIG, ForeignExchange:NDF See taxonomies
currency
Optional
Currency USD AED , ARS , AUD , BRL , CAD , CHF , CLP , CNH , CNY , COP , CZK , DKK , EGP , EUR , GBP , GHS , HKD , HUF , IDR , ILS , INR , JPY , KRW , KZT , LBP , LKR , MXN , MYR , NGN , NOK , NZD , PEN , PHP , PKR , PLN , RUB , SAR , SEK , SGD , THB , TWD , USD , VEB , VNG , ZAR
reportDate
Optional
The report date in YYYY-MM-DD format. 2021-06-19
startDate
Optional
The start date in YYYY-MM-DD format 2021-06-19
endDate
Optional
The end date in YYYY-MM-DD format 2021-06-19
cleared
Optional
Cleared or uncleared trades. C,U C , U
sef
Optional
Swap Execution Facility, refers to whether the transaction was On SEF or Off SEF or both. On,Off,NA NA , Off , On
source
Optional
The Swap Data Repositories to use as the source of trades. BBG,CME,DTCC,ICE BBG , CME , DTCC , ICE
volumeType
Optional
Returned volume types notional count , dv01 , notional
showDaily
Optional
Show Daily false
columns
Optional
Columns Currency , Period End , Period Start , Taxonomy , Ticker , Volume , Volume TYpe
import clarus

response = clarus.sdr.volume(ticker='ADSW10,ADSW5',taxonomy='InterestRate:IRSwap:FixedFloat')
print (response)
import com.clarusft.api.model.sdr.VolumeRequest
import com.clarusft.api.model.sdr.VolumeResponse

ApiClient clarus = ApiClient.getDefault();
VolumeResponse response = clarus.request(new VolumeRequest().withTicker("ADSW10,ADSW5").withTaxonomy("InterestRate:IRSwap:FixedFloat"));
System.out.println(response);
import Clarus

response = Clarus.Sdr.volume(ticker="ADSW10,ADSW5",taxonomy="InterestRate:IRSwap:FixedFloat")
print(response)

##
##Need to install packages once, if not already installed
##install.packages('httr')
##install.packages('readr')
##

library('httr')
##library('readr')

## Manually edit and set key/secret here ##
apiKey <- '...'
apiSecret <-'...'

request <- function(category, functionName, ...){
  restUrl  =  paste0('https://apieval.clarusft.com/api/rest/v1/', category, '/',functionName, '.csv')
  response <- POST(url=restUrl, body=list(...), encode='json', authenticate(apiKey, apiSecret, type='basic'))
  if (response$status_code!=200){
      stop(paste0('Request to ', category, '/', functionName, ' failed with status code: ', response$status_code))
  }
  return (response)
}

dataframe <- function(response){
  return (read.csv(text=content(response, 'text'), sep=',', head=TRUE))
}
## filename <- file.path('C:', 'Temp', 'myfile.csv')
## myvalue <- <- read_file(filename)

r <- request('sdr', 'Volume', ticker='ADSW10,ADSW5', taxonomy='InterestRate:IRSwap:FixedFloat')
df <- dataframe(r)
print (df)

import requests
import sys
import pandas
import io
#import os

# Example of REST API call to Clarus Microservices #

# Manually edit and set key/secret here #
apiKey = ''
apiSecret = ''

print (sys.version)

def request(category, functionName, **params):
  restUrl = 'https://apieval.clarusft.com/api/rest/v1/' + category + '/' + functionName + '.json'
  r = requests.post(restUrl, json=params, auth=(apiKey, apiSecret))
  r.raise_for_status()
  return r.json()

def dataframe(results):
  return pandas.DataFrame(results['results'])

# filename = os.path.join('C:\\', 'Temp', 'myfile.csv')
# myvalue = open(filename).read()

r = request('sdr', 'Volume', ticker='ADSW10,ADSW5', taxonomy='InterestRate:IRSwap:FixedFloat')
df = dataframe(r)
print(pandas.DataFrame.head(df))


use strict;
use warnings;
use MIME::Base64;
use JSON;
use REST::Client;

# Example of REST API call to Clarus Microservices #

my $client = REST::Client->new();
$client->addHeader('Content-Type', 'application/json');

# Manually edit and set key/secret here 
my $apiKey = '';
my $apiSecret = '';

my $encoded_auth = encode_base64("$apiKey:$apiSecret", '');
$client->addHeader('Authorization', "Basic $encoded_auth");

my %params = ('ticker' => 'ADSW10,ADSW5','taxonomy' => 'InterestRate:IRSwap:FixedFloat');

my $urlBase = 'https://apieval.clarusft.com/api/rest/v1/';
my $category = 'sdr/';
my $name = 'Volume';
my $outputFormat = '.csv'; #can also be '.json' or '.tsv'
my $fullRESTUrl  =  $urlBase . $category . $name . $outputFormat;

$client->POST($fullRESTUrl,encode_json(\%params));

print 'Response: ' . $client->responseContent() . "\n";
print 'Response status: ' . $client->responseCode() . "\n";


printf('Example of REST API call to Clarus Microservices\n');

function r = request(category, functionName, params)

# Manually edit and set key/secret here #
  apiKey = ''
  apiSecret = ''

  restUrl = ['https://' apiKey ":" apiSecret  "@" 'apieval.clarusft.com/api/rest/v1/' category '/' functionName '.csv'];
  [r, status, message] = urlread (restUrl, 'get', params);
  if (status!=1)
      error(['Failed on ' category '/' functionName ': ' message]);
  endif
end

function ca = toCellArray(csvStr)
  header_row = textscan (csvStr, "%s", 1, 'delimiter','\n');
  headers = strsplit(char(header_row), ",");
  numCols = size(headers)(2);
  format = repmat('%s ', [1 numCols]);
  ca = textscan (csvStr, format, 'delimiter',',', 'endofline',"\n");
end

params = {'ticker', 'ADSW10,ADSW5', ...
          'taxonomy', 'InterestRate:IRSwap:FixedFloat'}

r = request('sdr', 'Volume', params)
ca = toCellArray(r);

ca

Request Body

Submit to generate...
Response

Submit to generate...

{
  "ticker" : "ADSW10,ADSW5",
  "taxonomy" : "InterestRate:IRSwap:FixedFloat"
}