Get user positions
curl --request GET \
--url https://api.agg.market/apps/{appId}/users/{userId}/positions \
--header 'x-app-api-key: <api-key>'import requests
url = "https://api.agg.market/apps/{appId}/users/{userId}/positions"
headers = {"x-app-api-key": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'x-app-api-key': '<api-key>'}};
fetch('https://api.agg.market/apps/{appId}/users/{userId}/positions', 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.agg.market/apps/{appId}/users/{userId}/positions",
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-app-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://api.agg.market/apps/{appId}/users/{userId}/positions"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("x-app-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://api.agg.market/apps/{appId}/users/{userId}/positions")
.header("x-app-api-key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.agg.market/apps/{appId}/users/{userId}/positions")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["x-app-api-key"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"data": [
{
"targetMarketId": "<string>",
"resolutionDate": "<string>",
"venueMarket": {
"venueEventId": "<string>",
"question": "<string>",
"image": "<string>",
"venueMarketOutcomes": [
{
"label": "<string>",
"title": "<string>",
"venueBreakdown": [
{
"venueMarketId": "<string>",
"size": 123,
"venueMarketOutcomeId": "<string>"
}
],
"totalSize": 123,
"avgEntryPrice": 123,
"currentPrice": 123,
"totalValue": 123,
"unrealizedPnl": 123,
"unrealizedPnlPercent": 123,
"winner": true
}
]
},
"eventId": "<string>"
}
],
"nextCursor": "<string>",
"hasMore": true
}{
"message": "<string>"
}{
"message": "<string>"
}{
"message": "<string>"
}App Management
Get user positions
Open and closed positions for one user of your app. Filter with venueEventId, venueMarketId and status. Positions are reported per venue leg and marked at the user’s average entry price — this endpoint does not consult an orderbook, so it returns no live mark or unrealized PnL. Authenticate with an x-app-api-key of either scope: a read key can read any user of your app, so treat it as a credential over your users’ full trading history.
GET
/
apps
/
{appId}
/
users
/
{userId}
/
positions
Get user positions
curl --request GET \
--url https://api.agg.market/apps/{appId}/users/{userId}/positions \
--header 'x-app-api-key: <api-key>'import requests
url = "https://api.agg.market/apps/{appId}/users/{userId}/positions"
headers = {"x-app-api-key": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'x-app-api-key': '<api-key>'}};
fetch('https://api.agg.market/apps/{appId}/users/{userId}/positions', 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.agg.market/apps/{appId}/users/{userId}/positions",
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-app-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://api.agg.market/apps/{appId}/users/{userId}/positions"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("x-app-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://api.agg.market/apps/{appId}/users/{userId}/positions")
.header("x-app-api-key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.agg.market/apps/{appId}/users/{userId}/positions")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["x-app-api-key"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"data": [
{
"targetMarketId": "<string>",
"resolutionDate": "<string>",
"venueMarket": {
"venueEventId": "<string>",
"question": "<string>",
"image": "<string>",
"venueMarketOutcomes": [
{
"label": "<string>",
"title": "<string>",
"venueBreakdown": [
{
"venueMarketId": "<string>",
"size": 123,
"venueMarketOutcomeId": "<string>"
}
],
"totalSize": 123,
"avgEntryPrice": 123,
"currentPrice": 123,
"totalValue": 123,
"unrealizedPnl": 123,
"unrealizedPnlPercent": 123,
"winner": true
}
]
},
"eventId": "<string>"
}
],
"nextCursor": "<string>",
"hasMore": true
}{
"message": "<string>"
}{
"message": "<string>"
}{
"message": "<string>"
}Authorizations
App-scoped API key for programmatic app management.
Query Parameters
Required range:
1 <= x <= 100Available options:
active, closed ⌘I