curl --request POST \
--url https://arena-predictions.com/api/v1/portfolio/orders/{orderId}/amend \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"updatedPriceCents": 50,
"updatedCount": 2
}
'import requests
url = "https://arena-predictions.com/api/v1/portfolio/orders/{orderId}/amend"
payload = {
"updatedPriceCents": 50,
"updatedCount": 2
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({updatedPriceCents: 50, updatedCount: 2})
};
fetch('https://arena-predictions.com/api/v1/portfolio/orders/{orderId}/amend', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));{
"status": "executed",
"action": "buy",
"type": "market",
"idempotencyKey": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"replayed": true,
"originalCreatedAt": "2023-11-07T05:31:56Z",
"order": {
"orderId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"action": "buy",
"instrumentId": "<string>",
"instrumentLabel": "<string>",
"instrumentSide": "yes",
"orderSide": "yes",
"contracts": 123,
"filledContracts": 123,
"remainingContracts": 123,
"limitCents": 123,
"holdDollars": 123,
"timeInForce": "<string>",
"expiresAt": "2023-11-07T05:31:56Z",
"status": "<string>",
"createdAt": "2023-11-07T05:31:56Z",
"type": "limit",
"cancelReason": "<string>",
"tradeId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"statedProbPct": 123,
"placedVia": "<string>",
"placedPrivate": true,
"marketTicker": "<string>",
"fillPriceCents": 123
},
"trade": {
"tradeId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"instrumentId": "<string>",
"instrumentLabel": "<string>",
"instrumentSide": "yes",
"boughtSide": "yes",
"contracts": 123,
"costDollars": 123,
"statedProbPct": 123,
"placedVia": "<string>",
"placedPrivate": true,
"parlayId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"fillVenue": "<string>",
"openedAt": "2023-11-07T05:31:56Z",
"status": "open",
"closedAt": "2023-11-07T05:31:56Z",
"closeReason": "<string>",
"pnlDollars": 123,
"resolvedOutcome": "yes",
"marketTicker": "<string>",
"entryCents": 123
},
"fillVenue": "kalshi",
"mode": "paper",
"venueData": true,
"fills": [
{
"venue": "kalshi",
"contracts": 123,
"priceCents": 50
}
],
"fillPriceCents": 123,
"organization": {
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"slug": "<string>"
}
}{
"error": {
"code": "invalid_request",
"message": "<string>",
"retryAfterSeconds": 2
}
}{
"error": {
"code": "invalid_request",
"message": "<string>",
"retryAfterSeconds": 2
}
}{
"error": {
"code": "invalid_request",
"message": "<string>",
"retryAfterSeconds": 2
}
}{
"error": {
"code": "invalid_request",
"message": "<string>",
"retryAfterSeconds": 2
}
}{
"error": {
"code": "invalid_request",
"message": "<string>",
"retryAfterSeconds": 2
}
}{
"error": {
"code": "invalid_request",
"message": "<string>",
"retryAfterSeconds": 2
}
}Amend a live Kalshi order
Amends a live Kalshi order for the key owner. Scope trade:write:kalshi. Paper orders are not amended here. Requires a trading key saved in Settings and Arena Basic. The PEM is not in the request or the answer.
curl --request POST \
--url https://arena-predictions.com/api/v1/portfolio/orders/{orderId}/amend \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"updatedPriceCents": 50,
"updatedCount": 2
}
'import requests
url = "https://arena-predictions.com/api/v1/portfolio/orders/{orderId}/amend"
payload = {
"updatedPriceCents": 50,
"updatedCount": 2
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({updatedPriceCents: 50, updatedCount: 2})
};
fetch('https://arena-predictions.com/api/v1/portfolio/orders/{orderId}/amend', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));{
"status": "executed",
"action": "buy",
"type": "market",
"idempotencyKey": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"replayed": true,
"originalCreatedAt": "2023-11-07T05:31:56Z",
"order": {
"orderId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"action": "buy",
"instrumentId": "<string>",
"instrumentLabel": "<string>",
"instrumentSide": "yes",
"orderSide": "yes",
"contracts": 123,
"filledContracts": 123,
"remainingContracts": 123,
"limitCents": 123,
"holdDollars": 123,
"timeInForce": "<string>",
"expiresAt": "2023-11-07T05:31:56Z",
"status": "<string>",
"createdAt": "2023-11-07T05:31:56Z",
"type": "limit",
"cancelReason": "<string>",
"tradeId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"statedProbPct": 123,
"placedVia": "<string>",
"placedPrivate": true,
"marketTicker": "<string>",
"fillPriceCents": 123
},
"trade": {
"tradeId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"instrumentId": "<string>",
"instrumentLabel": "<string>",
"instrumentSide": "yes",
"boughtSide": "yes",
"contracts": 123,
"costDollars": 123,
"statedProbPct": 123,
"placedVia": "<string>",
"placedPrivate": true,
"parlayId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"fillVenue": "<string>",
"openedAt": "2023-11-07T05:31:56Z",
"status": "open",
"closedAt": "2023-11-07T05:31:56Z",
"closeReason": "<string>",
"pnlDollars": 123,
"resolvedOutcome": "yes",
"marketTicker": "<string>",
"entryCents": 123
},
"fillVenue": "kalshi",
"mode": "paper",
"venueData": true,
"fills": [
{
"venue": "kalshi",
"contracts": 123,
"priceCents": 50
}
],
"fillPriceCents": 123,
"organization": {
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"slug": "<string>"
}
}{
"error": {
"code": "invalid_request",
"message": "<string>",
"retryAfterSeconds": 2
}
}{
"error": {
"code": "invalid_request",
"message": "<string>",
"retryAfterSeconds": 2
}
}{
"error": {
"code": "invalid_request",
"message": "<string>",
"retryAfterSeconds": 2
}
}{
"error": {
"code": "invalid_request",
"message": "<string>",
"retryAfterSeconds": 2
}
}{
"error": {
"code": "invalid_request",
"message": "<string>",
"retryAfterSeconds": 2
}
}{
"error": {
"code": "invalid_request",
"message": "<string>",
"retryAfterSeconds": 2
}
}Authorizations
Authorization: Bearer arena_sk_... (the x-arena-key header is accepted too). Keys are made in Settings (https://arena-predictions.com/settings#api-keys) or with arena keys create, shown once, stored hashed.
Path Parameters
The Kalshi order id.
Body
Response
The amended live order. mode is live.
canceled: an ioc or fok that did not fill. Nothing was spent.
executed, resting, canceled buy, sell market, limit True when this idempotencyKey was used before: the stored order, nothing new placed.
On a replay: when the order was first placed.
The limit order. Null for a market order, which is a fill and not an order.
Show child attributes
Show child attributes
The position opened (buy) or closed (sell). Null while resting or canceled.
Show child attributes
Show child attributes
Where the fill was priced. Paper only: nothing is sent there. The first leg when the ticket split.
kalshi, novig, polymarket, null "paper"Present when route best split one ticket across venues. priceCents is omitted while venue data is off.
Show child attributes
Show child attributes
Only while the venue-data switch is on.
Present when X-Arena-Org selected an organization sandbox. Absent on the personal account.
Show child attributes
Show child attributes