Securities
Search securities
Free-text search over publicly served securities.
- The
queryis split by whitespace into words and a security must match every word. - Alternatively, use
isinfor an exact ISIN match. Exactly one ofqueryorisinmust be supplied. - Free-text results are ranked by the same relevance and liquidity weighting the TakeProfit platform search uses.
- Every hit is a valid
exchange/symbolinput for the other endpoints.
Cost: 1000 credits per request (flat).
GET
/
api
/
v1
/
marketdata
/
search
Search securities
curl --request GET \
--url https://public-api.takeprofit.com/api/v1/marketdata/search \
--header 'x-api-key: <api-key>'import requests
url = "https://public-api.takeprofit.com/api/v1/marketdata/search"
headers = {"x-api-key": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'x-api-key': '<api-key>'}};
fetch('https://public-api.takeprofit.com/api/v1/marketdata/search', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://public-api.takeprofit.com/api/v1/marketdata/search",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"x-api-key: <api-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"
"net/http"
"io"
)
func main() {
url := "https://public-api.takeprofit.com/api/v1/marketdata/search"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("x-api-key", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://public-api.takeprofit.com/api/v1/marketdata/search")
.header("x-api-key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://public-api.takeprofit.com/api/v1/marketdata/search")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["x-api-key"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"hits": [
{
"symbol": "BTC/USDT",
"exchange": "CXBNCE",
"name": "Bitcoin / Tether",
"type": "Crypto",
"baseAsset": "BTC",
"quoteAsset": "USDT"
},
{
"symbol": "BTC/USDC",
"exchange": "CXBNCE",
"name": "Bitcoin / USDC",
"type": "Crypto",
"baseAsset": "BTC",
"quoteAsset": "USDC"
}
]
}{
"error": {
"code": "invalid_argument",
"message": "query parameter \"exchange\" is required"
}
}{
"error": {
"code": "unauthenticated",
"message": "authentication failed"
}
}{
"error": {
"code": "permission_denied",
"message": "permission denied"
}
}{
"error": {
"code": "not_found",
"message": "security not found"
}
}{
"error": {
"code": "rate_limited",
"message": "rate limit exceeded"
}
}Authorizations
Query Parameters
Free-text query (ticker, name, and similar).
Exact ISIN (for example US0378331005). Cannot be combined with query.
Maximum number of hits to return. Defaults to 20, at most 100.
Required range:
1 <= x <= 100Restrict hits to a single exchange. TakeProfit exchange code as returned by /api/v1/marketdata/exchanges.
Example:
"BATS"
Restrict hits to a top-level security type, exact match (see the type field of search hits, e.g. Crypto, Equity, Funds).
Response
Ranked search hits.
Hits in ranking order.
Show child attributes
Show child attributes
Was this page helpful?
⌘I
Search securities
curl --request GET \
--url https://public-api.takeprofit.com/api/v1/marketdata/search \
--header 'x-api-key: <api-key>'import requests
url = "https://public-api.takeprofit.com/api/v1/marketdata/search"
headers = {"x-api-key": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'x-api-key': '<api-key>'}};
fetch('https://public-api.takeprofit.com/api/v1/marketdata/search', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://public-api.takeprofit.com/api/v1/marketdata/search",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"x-api-key: <api-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"
"net/http"
"io"
)
func main() {
url := "https://public-api.takeprofit.com/api/v1/marketdata/search"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("x-api-key", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://public-api.takeprofit.com/api/v1/marketdata/search")
.header("x-api-key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://public-api.takeprofit.com/api/v1/marketdata/search")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["x-api-key"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"hits": [
{
"symbol": "BTC/USDT",
"exchange": "CXBNCE",
"name": "Bitcoin / Tether",
"type": "Crypto",
"baseAsset": "BTC",
"quoteAsset": "USDT"
},
{
"symbol": "BTC/USDC",
"exchange": "CXBNCE",
"name": "Bitcoin / USDC",
"type": "Crypto",
"baseAsset": "BTC",
"quoteAsset": "USDC"
}
]
}{
"error": {
"code": "invalid_argument",
"message": "query parameter \"exchange\" is required"
}
}{
"error": {
"code": "unauthenticated",
"message": "authentication failed"
}
}{
"error": {
"code": "permission_denied",
"message": "permission denied"
}
}{
"error": {
"code": "not_found",
"message": "security not found"
}
}{
"error": {
"code": "rate_limited",
"message": "rate limit exceeded"
}
}