curl --request GET \
--url https://api.sandbox.services.payward.com/v1/accounts/{account_id}/earn/auto/rewards/upcoming \
--header 'API-Key: <api-key>' \
--header 'API-Nonce: <api-key>' \
--header 'API-Sign: <api-key>'import requests
url = "https://api.sandbox.services.payward.com/v1/accounts/{account_id}/earn/auto/rewards/upcoming"
headers = {
"API-Key": "<api-key>",
"API-Sign": "<api-key>",
"API-Nonce": "<api-key>"
}
response = requests.get(url, headers=headers)
print(response.text)const options = {
method: 'GET',
headers: {'API-Key': '<api-key>', 'API-Sign': '<api-key>', 'API-Nonce': '<api-key>'}
};
fetch('https://api.sandbox.services.payward.com/v1/accounts/{account_id}/earn/auto/rewards/upcoming', 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.sandbox.services.payward.com/v1/accounts/{account_id}/earn/auto/rewards/upcoming",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"API-Key: <api-key>",
"API-Nonce: <api-key>",
"API-Sign: <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.sandbox.services.payward.com/v1/accounts/{account_id}/earn/auto/rewards/upcoming"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("API-Key", "<api-key>")
req.Header.Add("API-Sign", "<api-key>")
req.Header.Add("API-Nonce", "<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.sandbox.services.payward.com/v1/accounts/{account_id}/earn/auto/rewards/upcoming")
.header("API-Key", "<api-key>")
.header("API-Sign", "<api-key>")
.header("API-Nonce", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.sandbox.services.payward.com/v1/accounts/{account_id}/earn/auto/rewards/upcoming")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["API-Key"] = '<api-key>'
request["API-Sign"] = '<api-key>'
request["API-Nonce"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"quote_symbol": "USD",
"quote_type": "fiat",
"next_reward_date": "2026-06-01T00:00:00Z",
"data": [
{
"symbol": "ETH",
"type": "crypto",
"name": "Ethereum",
"upcoming_reward": "0.0056",
"upcoming_reward_in_quote": "14.00",
"other_assets": [
{
"symbol": "EIGEN",
"type": "crypto",
"name": "Eigenlayer",
"upcoming_reward": "0.1",
"upcoming_reward_in_quote": "0.25"
}
]
}
]
}{
"error": {
"type": "earn_error",
"instance": "req_01H00000000000000000000000",
"status": 400,
"code": "bad_request",
"causes": [
{
"field": "account_id",
"message": "must be a valid account identifier"
}
]
}
}{
"error": {
"type": "earn_error",
"instance": "req_01H00000000000000000000000",
"status": 401,
"code": "unauthenticated"
}
}{
"error": {
"type": "earn_error",
"instance": "req_01H00000000000000000000000",
"status": 403,
"code": "forbidden"
}
}{
"error": {
"type": "earn_error",
"status": 404,
"instance": "req_01H00000000000000000000000",
"code": "account_not_found"
}
}{
"error": {
"type": "earn_error",
"instance": "req_01H00000000000000000000000",
"status": 429,
"code": "resource_exhausted"
}
}{
"error": {
"type": "earn_error",
"instance": "req_01H00000000000000000000000",
"status": 500,
"code": "internal"
}
}{
"error": {
"type": "earn_error",
"instance": "req_01H00000000000000000000000",
"status": 503,
"code": "unavailable"
}
}{
"error": {
"type": "earn_error",
"instance": "req_01H00000000000000000000000",
"status": 504,
"code": "deadline_exceeded"
}
}List upcoming Auto Earn rewards
Returns the reward each Auto Earn asset of the specified account expects to pay out at the next payout, with the date of that payout.
The amount is what has accrued so far plus an estimate up to the payout date, net of the payout fee. It leaves out rewards that belong to a later payout period. It is an estimate, and the date is a target, so payouts can be delayed. next_reward_date is one date for the whole account: the earliest payout among the assets. Each amount is for its asset’s own next payout, which can be later than that date.
The reward is split by reward asset: other_assets lists the part paid in assets other than the entry’s own. Assets with nothing pending are omitted, and next_reward_date is then absent. Results are paginated and sorted by asset symbol, A-Z.
curl --request GET \
--url https://api.sandbox.services.payward.com/v1/accounts/{account_id}/earn/auto/rewards/upcoming \
--header 'API-Key: <api-key>' \
--header 'API-Nonce: <api-key>' \
--header 'API-Sign: <api-key>'import requests
url = "https://api.sandbox.services.payward.com/v1/accounts/{account_id}/earn/auto/rewards/upcoming"
headers = {
"API-Key": "<api-key>",
"API-Sign": "<api-key>",
"API-Nonce": "<api-key>"
}
response = requests.get(url, headers=headers)
print(response.text)const options = {
method: 'GET',
headers: {'API-Key': '<api-key>', 'API-Sign': '<api-key>', 'API-Nonce': '<api-key>'}
};
fetch('https://api.sandbox.services.payward.com/v1/accounts/{account_id}/earn/auto/rewards/upcoming', 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.sandbox.services.payward.com/v1/accounts/{account_id}/earn/auto/rewards/upcoming",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"API-Key: <api-key>",
"API-Nonce: <api-key>",
"API-Sign: <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.sandbox.services.payward.com/v1/accounts/{account_id}/earn/auto/rewards/upcoming"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("API-Key", "<api-key>")
req.Header.Add("API-Sign", "<api-key>")
req.Header.Add("API-Nonce", "<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.sandbox.services.payward.com/v1/accounts/{account_id}/earn/auto/rewards/upcoming")
.header("API-Key", "<api-key>")
.header("API-Sign", "<api-key>")
.header("API-Nonce", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.sandbox.services.payward.com/v1/accounts/{account_id}/earn/auto/rewards/upcoming")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["API-Key"] = '<api-key>'
request["API-Sign"] = '<api-key>'
request["API-Nonce"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"quote_symbol": "USD",
"quote_type": "fiat",
"next_reward_date": "2026-06-01T00:00:00Z",
"data": [
{
"symbol": "ETH",
"type": "crypto",
"name": "Ethereum",
"upcoming_reward": "0.0056",
"upcoming_reward_in_quote": "14.00",
"other_assets": [
{
"symbol": "EIGEN",
"type": "crypto",
"name": "Eigenlayer",
"upcoming_reward": "0.1",
"upcoming_reward_in_quote": "0.25"
}
]
}
]
}{
"error": {
"type": "earn_error",
"instance": "req_01H00000000000000000000000",
"status": 400,
"code": "bad_request",
"causes": [
{
"field": "account_id",
"message": "must be a valid account identifier"
}
]
}
}{
"error": {
"type": "earn_error",
"instance": "req_01H00000000000000000000000",
"status": 401,
"code": "unauthenticated"
}
}{
"error": {
"type": "earn_error",
"instance": "req_01H00000000000000000000000",
"status": 403,
"code": "forbidden"
}
}{
"error": {
"type": "earn_error",
"status": 404,
"instance": "req_01H00000000000000000000000",
"code": "account_not_found"
}
}{
"error": {
"type": "earn_error",
"instance": "req_01H00000000000000000000000",
"status": 429,
"code": "resource_exhausted"
}
}{
"error": {
"type": "earn_error",
"instance": "req_01H00000000000000000000000",
"status": 500,
"code": "internal"
}
}{
"error": {
"type": "earn_error",
"instance": "req_01H00000000000000000000000",
"status": 503,
"code": "unavailable"
}
}{
"error": {
"type": "earn_error",
"instance": "req_01H00000000000000000000000",
"status": 504,
"code": "deadline_exceeded"
}
}Authorizations
Your public API key. Identifies the partner making the request.
HMAC signature over the request, computed with your private key.
Monotonically increasing nonce included in the request signature.
Path Parameters
Globally unique public identifier for an account.
14 - 42Query Parameters
Ticker symbol of the quote asset for converted amounts (e.g., "USD", "EUR").
10Type of the quote asset. Only "fiat" is supported.
16Opaque token returned as next_page_token in the previous response. Omit to request the first page.
1 - 256Maximum number of results to return. Ignored when page_token is present.
1 <= x <= 25Response
Successful response
Upcoming reward per asset for the requested page, sorted by symbol, A-Z.
Show child attributes
Show child attributes
Symbol of the quote asset used for converted amounts (e.g., "USD", "EUR").
Type of the quote asset (e.g., "fiat").
Earliest payout date among the assets with a pending reward. Covers every asset, not just this page, so it reads the same on every page. An asset can pay later than this date, and its amount is for that later payout. Absent if no reward is pending.
Opaque token for retrieving the next page. Absent when there are no more results.
1 - 256