Coin Historical Chart Data by Token Address
curl --request GET \
--url https://api.aisa.one/apis/v1/coingecko/coins/{id}/contract/{contract_address}/market_chart \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.aisa.one/apis/v1/coingecko/coins/{id}/contract/{contract_address}/market_chart"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.aisa.one/apis/v1/coingecko/coins/{id}/contract/{contract_address}/market_chart', 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.aisa.one/apis/v1/coingecko/coins/{id}/contract/{contract_address}/market_chart",
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.aisa.one/apis/v1/coingecko/coins/{id}/contract/{contract_address}/market_chart"
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.aisa.one/apis/v1/coingecko/coins/{id}/contract/{contract_address}/market_chart")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.aisa.one/apis/v1/coingecko/coins/{id}/contract/{contract_address}/market_chart")
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{
"prices": [
[
1779619498604,
0.9997624087636037
],
[
1779619877081,
0.9997817655336941
]
],
"market_caps": [
[
1779619498604,
76419636272.78033
],
[
1779619877081,
76424065983.84229
]
],
"total_volumes": [
[
1779619498604,
9374311493.936354
],
[
1779619877081,
9390008044.485624
]
]
}Historical
Coin Historical Chart Data by Token Address
Price, market cap and volume history for a token identified by its contract address.
GET
https://api.aisa.one
/
apis
/
v1
/
coingecko
/
coins
/
{id}
/
contract
/
{contract_address}
/
market_chart
Coin Historical Chart Data by Token Address
curl --request GET \
--url https://api.aisa.one/apis/v1/coingecko/coins/{id}/contract/{contract_address}/market_chart \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.aisa.one/apis/v1/coingecko/coins/{id}/contract/{contract_address}/market_chart"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.aisa.one/apis/v1/coingecko/coins/{id}/contract/{contract_address}/market_chart', 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.aisa.one/apis/v1/coingecko/coins/{id}/contract/{contract_address}/market_chart",
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.aisa.one/apis/v1/coingecko/coins/{id}/contract/{contract_address}/market_chart"
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.aisa.one/apis/v1/coingecko/coins/{id}/contract/{contract_address}/market_chart")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.aisa.one/apis/v1/coingecko/coins/{id}/contract/{contract_address}/market_chart")
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{
"prices": [
[
1779619498604,
0.9997624087636037
],
[
1779619877081,
0.9997817655336941
]
],
"market_caps": [
[
1779619498604,
76419636272.78033
],
[
1779619877081,
76424065983.84229
]
],
"total_volumes": [
[
1779619498604,
9374311493.936354
],
[
1779619877081,
9390008044.485624
]
]
}Historical series for a token identified by contract address, over a trailing window set by
Set this endpoint up in your agent →
days. id is the asset platform, contract_address the token. Returns prices, market_caps and total_volumes as timestamp-and-value pairs, with timestamps in milliseconds — the same shape as get_coingecko_coins_id_market_chart. Use it when you have an address rather than a CoinGecko id. For an explicit start and end use get_coingecko_token_market_chart_range.
First time? Point any MCP client at
https://mcp.aisa.one/mcp — Claude
Code, Codex, Cursor, VS Code and the rest. Authorization is OAuth: the client
opens a browser, you click Allow once, and there is no key to paste. Your
agent then reaches every endpoint through five tools: search,
list_categories and get_details are free, use and batch_use are
billed per call. Setup per client is in
Connect via MCP; the live tool list and what each call
costs are on aisa.one/mcp.Cost and request rules
Published reference values are not an account-specific quote or a settled charge. For endpoints supporting X-AISA-Cost-Mode: quote, obtain a free quote for your exact request before execution; reconcile the settled cost with response metadata and Usage Logs. USD amounts use 1,000,000 integer micro-USD per dollar.- Default request reference estimate (USD): 0.008
- Declared unit rate (USD): 0.0
- Billing unit: provider_credit
- Cost contract: plan_units
- Settlement evidence source: request_snapshot
Declared request billing units
- Units: 1
Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Query Parameters
Data up to number of days ago.
You may use any integer or max for number of days.
Data interval, leave empty for auto granularity.
Available options:
1m, 5m, hourly, daily Decimal place for currency price value.
Available options:
full, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18 Target currency of market data.
*refers to /simple/supported_vs_currencies.