Get Perpetuals Position
curl --request GET \
--url https://api.coinbase.com/api/v3/brokerage/intx/positions/{portfolio_uuid}/{symbol} \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.coinbase.com/api/v3/brokerage/intx/positions/{portfolio_uuid}/{symbol}"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.coinbase.com/api/v3/brokerage/intx/positions/{portfolio_uuid}/{symbol}', 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://api.coinbase.com/api/v3/brokerage/intx/positions/{portfolio_uuid}/{symbol}",
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://api.coinbase.com/api/v3/brokerage/intx/positions/{portfolio_uuid}/{symbol}"
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://api.coinbase.com/api/v3/brokerage/intx/positions/{portfolio_uuid}/{symbol}")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.coinbase.com/api/v3/brokerage/intx/positions/{portfolio_uuid}/{symbol}")
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{
"position": {
"product_id": "<string>",
"product_uuid": "<string>",
"portfolio_uuid": "<string>",
"symbol": "<string>",
"vwap": {
"value": "<string>",
"currency": "<string>"
},
"entry_vwap": {
"value": "<string>",
"currency": "<string>"
},
"position_side": "POSITION_SIDE_UNKNOWN",
"margin_type": "MARGIN_TYPE_UNSPECIFIED",
"net_size": "<string>",
"buy_order_size": "<string>",
"sell_order_size": "<string>",
"im_contribution": "<string>",
"unrealized_pnl": {
"value": "<string>",
"currency": "<string>"
},
"mark_price": {
"value": "<string>",
"currency": "<string>"
},
"liquidation_price": {
"value": "<string>",
"currency": "<string>"
},
"leverage": "<string>",
"im_notional": {
"value": "<string>",
"currency": "<string>"
},
"mm_notional": {
"value": "<string>",
"currency": "<string>"
},
"position_notional": {
"value": "<string>",
"currency": "<string>"
},
"aggregated_pnl": {
"value": "<string>",
"currency": "<string>"
}
}
}{
"error": "<string>",
"code": 123,
"message": "<string>",
"details": [
{
"type_url": "<string>",
"value": "aSDinaTvuI8gbWludGxpZnk="
}
]
}International Derivatives (INTX, deprecated)
Get Perpetuals Position
Get a specific open position on Intx
GET
/
api
/
v3
/
brokerage
/
intx
/
positions
/
{portfolio_uuid}
/
{symbol}
Get Perpetuals Position
curl --request GET \
--url https://api.coinbase.com/api/v3/brokerage/intx/positions/{portfolio_uuid}/{symbol} \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.coinbase.com/api/v3/brokerage/intx/positions/{portfolio_uuid}/{symbol}"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.coinbase.com/api/v3/brokerage/intx/positions/{portfolio_uuid}/{symbol}', 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://api.coinbase.com/api/v3/brokerage/intx/positions/{portfolio_uuid}/{symbol}",
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://api.coinbase.com/api/v3/brokerage/intx/positions/{portfolio_uuid}/{symbol}"
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://api.coinbase.com/api/v3/brokerage/intx/positions/{portfolio_uuid}/{symbol}")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.coinbase.com/api/v3/brokerage/intx/positions/{portfolio_uuid}/{symbol}")
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{
"position": {
"product_id": "<string>",
"product_uuid": "<string>",
"portfolio_uuid": "<string>",
"symbol": "<string>",
"vwap": {
"value": "<string>",
"currency": "<string>"
},
"entry_vwap": {
"value": "<string>",
"currency": "<string>"
},
"position_side": "POSITION_SIDE_UNKNOWN",
"margin_type": "MARGIN_TYPE_UNSPECIFIED",
"net_size": "<string>",
"buy_order_size": "<string>",
"sell_order_size": "<string>",
"im_contribution": "<string>",
"unrealized_pnl": {
"value": "<string>",
"currency": "<string>"
},
"mark_price": {
"value": "<string>",
"currency": "<string>"
},
"liquidation_price": {
"value": "<string>",
"currency": "<string>"
},
"leverage": "<string>",
"im_notional": {
"value": "<string>",
"currency": "<string>"
},
"mm_notional": {
"value": "<string>",
"currency": "<string>"
},
"position_notional": {
"value": "<string>",
"currency": "<string>"
},
"aggregated_pnl": {
"value": "<string>",
"currency": "<string>"
}
}
}{
"error": "<string>",
"code": 123,
"message": "<string>",
"details": [
{
"type_url": "<string>",
"value": "aSDinaTvuI8gbWludGxpZnk="
}
]
}Deprecated — retires September 9, 2026. This INTX perpetuals endpoint is being replaced by the Deribit-powered derivatives gateway. Migrate before the cutover — see the Migration Overview.
Authorizations
A JWT signed using your CDP API Key Secret, encoded in base64. Refer to the Creating API Keys section of our Coinbase App Authentication docs for information on how to generate your Bearer Token.
Path Parameters
The portfolio UUID.
The trading pair (e.g. 'BTC-PERP-INTX').
Response
A successful response.
Show child attributes
Show child attributes
Was this page helpful?
⌘I