Submit or update XP Season 2 decision
POST
/xp/decision
using System.Net.Http.Headers;var client = new HttpClient();var request = new HttpRequestMessage{ Method = HttpMethod.Post, RequestUri = new Uri("https://api.ethos.network/api/v2/xp/decision"), Headers = { { "X-Ethos-Api-Key", "<X-Ethos-Api-Key>" }, }, Content = new StringContent("{ \"decisionType\": \"SPEND\", \"delegations\": [ { \"validatorTokenId\": \"example\", \"xpAmount\": 1 } ] }") { Headers = { ContentType = new MediaTypeHeaderValue("application/json") } }};using (var response = await client.SendAsync(request)){ response.EnsureSuccessStatusCode(); var body = await response.Content.ReadAsStringAsync(); Console.WriteLine(body);}package main
import ( "fmt" "strings" "net/http" "io")
func main() {
url := "https://api.ethos.network/api/v2/xp/decision"
payload := strings.NewReader("{ \"decisionType\": \"SPEND\", \"delegations\": [ { \"validatorTokenId\": \"example\", \"xpAmount\": 1 } ] }")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("X-Ethos-Api-Key", "<X-Ethos-Api-Key>") req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close() body, _ := io.ReadAll(res.Body)
fmt.Println(res) fmt.Println(string(body))
}OkHttpClient client = new OkHttpClient();
MediaType mediaType = MediaType.parse("application/json");RequestBody body = RequestBody.create(mediaType, "{ \"decisionType\": \"SPEND\", \"delegations\": [ { \"validatorTokenId\": \"example\", \"xpAmount\": 1 } ] }");Request request = new Request.Builder() .url("https://api.ethos.network/api/v2/xp/decision") .post(body) .addHeader("X-Ethos-Api-Key", "<X-Ethos-Api-Key>") .addHeader("Content-Type", "application/json") .build();
Response response = client.newCall(request).execute();import axios from 'axios';
const options = { method: 'POST', url: 'https://api.ethos.network/api/v2/xp/decision', headers: {'X-Ethos-Api-Key': '<X-Ethos-Api-Key>', 'Content-Type': 'application/json'}, data: { decisionType: 'SPEND', delegations: [{validatorTokenId: 'example', xpAmount: 1}] }};
try { const { data } = await axios.request(options); console.log(data);} catch (error) { console.error(error);}const url = 'https://api.ethos.network/api/v2/xp/decision';const options = { method: 'POST', headers: {'X-Ethos-Api-Key': '<X-Ethos-Api-Key>', 'Content-Type': 'application/json'}, body: '{"decisionType":"SPEND","delegations":[{"validatorTokenId":"example","xpAmount":1}]}'};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}use serde_json::json;use reqwest;
#[tokio::main]pub async fn main() { let url = "https://api.ethos.network/api/v2/xp/decision";
let payload = json!({ "decisionType": "SPEND", "delegations": ( json!({ "validatorTokenId": "example", "xpAmount": 1 }) ) });
let mut headers = reqwest::header::HeaderMap::new(); headers.insert("X-Ethos-Api-Key", "<X-Ethos-Api-Key>".parse().unwrap()); headers.insert("Content-Type", "application/json".parse().unwrap());
let client = reqwest::Client::new(); let response = client.post(url) .headers(headers) .json(&payload) .send() .await;
let results = response.unwrap() .json::<serde_json::Value>() .await .unwrap();
dbg!(results);}curl --request POST \ --url https://api.ethos.network/api/v2/xp/decision \ --header 'Content-Type: application/json' \ --header 'X-Ethos-Api-Key: <X-Ethos-Api-Key>' \ --data '{ "decisionType": "SPEND", "delegations": [ { "validatorTokenId": "example", "xpAmount": 1 } ] }'wget --quiet \ --method POST \ --header 'X-Ethos-Api-Key: <X-Ethos-Api-Key>' \ --header 'Content-Type: application/json' \ --body-data '{ "decisionType": "SPEND", "delegations": [ { "validatorTokenId": "example", "xpAmount": 1 } ] }' \ --output-document \ - https://api.ethos.network/api/v2/xp/decisionAuthorizations
Section titled “Authorizations”Request Bodyrequired
Section titled “Request Bodyrequired”Media typeapplication/json
object
decisionType
required
string
delegations
Array<object>
object
validatorTokenId
required
string
xpAmount
required
integer
Responses
Section titled “Responses”Successful response
Media typeapplication/json
object
profileId
required
integer
seasonId
required
number
decisionType
required
string
delegations
required
Array<object>
object
validatorTokenId
required
string
xpAmount
required
integer
createdAt
required
string
updatedAt
required
string
Example
{ "decisionType": "SPEND"}Invalid input data
Media typeapplication/json
Invalid input data error (400)
The error information
object
message
required
The error message
string
code
required
The error code
string
issues
An array of issues that were responsible for the error
Array<object>
object
message
required
string
Example
{ "code": "BAD_REQUEST", "message": "Invalid input data", "issues": []}Authorization not provided
Media typeapplication/json
Authorization not provided error (401)
The error information
object
message
required
The error message
string
code
required
The error code
string
issues
An array of issues that were responsible for the error
Array<object>
object
message
required
string
Example
{ "code": "UNAUTHORIZED", "message": "Authorization not provided", "issues": []}Insufficient access
Media typeapplication/json
Insufficient access error (403)
The error information
object
message
required
The error message
string
code
required
The error code
string
issues
An array of issues that were responsible for the error
Array<object>
object
message
required
string
Example
{ "code": "FORBIDDEN", "message": "Insufficient access", "issues": []}Internal server error
Media typeapplication/json
Internal server error error (500)
The error information
object
message
required
The error message
string
code
required
The error code
string
issues
An array of issues that were responsible for the error
Array<object>
object
message
required
string
Example
{ "code": "INTERNAL_SERVER_ERROR", "message": "Internal server error", "issues": []}