Status
Endpoint https://api.aradia.app
1 endpoint in this section: GET /v1/indexer/status.
GET /v1/indexer/status
Section titled “GET /v1/indexer/status”Get sanitized indexer coverage status
Authorization
Send a bearer credential with the scope read:status.
Parameters
networkastarqueryoptionalChain to query. Only Astar mainnet is indexed today.
Request Code Samples
GET
/v1/indexer/statuscurl -sS -X GET \ -H "Authorization: Bearer $ARADIA_API_TOKEN" \ "https://api.aradia.app/v1/indexer/status"const token = process.env.ARADIA_API_TOKEN;
const response = await fetch("https://api.aradia.app/v1/indexer/status", { method: "GET", headers: { Authorization: `Bearer ${token}` },});
if (!response.ok) { throw new Error(`Aradia API error ${response.status}`);}const data = await response.json();console.log(data);import osimport requests
token = os.environ["ARADIA_API_TOKEN"]
response = requests.request( "GET", "https://api.aradia.app/v1/indexer/status", headers={"Authorization": f"Bearer {token}"}, timeout=30,)response.raise_for_status()print(response.json())package main
import ( "fmt" "io" "net/http" "os")
func main() { request, err := http.NewRequest("GET", "https://api.aradia.app/v1/indexer/status", nil) if err != nil { panic(err) } request.Header.Set("Authorization", "Bearer "+os.Getenv("ARADIA_API_TOKEN"))
response, err := http.DefaultClient.Do(request) if err != nil { panic(err) } defer response.Body.Close()
body, err := io.ReadAll(response.Body) if err != nil { panic(err) } fmt.Println(string(body))}<?php$token = getenv('ARADIA_API_TOKEN');
$context = stream_context_create([ 'http' => [ 'method' => 'GET', 'header' => "Authorization: Bearer $token\r\n", ],]);
$body = file_get_contents('https://api.aradia.app/v1/indexer/status', false, $context);echo $body;import java.net.URI;import java.net.http.*;
var client = HttpClient.newHttpClient();var request = HttpRequest.newBuilder() .uri(URI.create("https://api.aradia.app/v1/indexer/status")) .header("Authorization", "Bearer " + System.getenv("ARADIA_API_TOKEN")) .method("GET", HttpRequest.BodyPublishers.noBody()) .build();
var response = client.send(request, HttpResponse.BodyHandlers.ofString());System.out.println(response.body());require 'net/http'require 'uri'
uri = URI('https://api.aradia.app/v1/indexer/status')request = Net::HTTP::Get.new(uri)request['Authorization'] = "Bearer #{ENV.fetch('ARADIA_API_TOKEN')}"
response = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) do |http| http.request(request)endputs response.body// cargo add reqwest --features blockingfn main() -> Result<(), Box<dyn std::error::Error>> { let token = std::env::var("ARADIA_API_TOKEN")?; let client = reqwest::blocking::Client::new(); let response = client .get("https://api.aradia.app/v1/indexer/status") .bearer_auth(token) .send()?;
println!("{}", response.text()?); Ok(())}using System.Net.Http;using System.Net.Http.Headers;
using var client = new HttpClient();client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", Environment.GetEnvironmentVariable("ARADIA_API_TOKEN"));
using var request = new HttpRequestMessage(new HttpMethod("GET"), "https://api.aradia.app/v1/indexer/status");var response = await client.SendAsync(request);Console.WriteLine(await response.Content.ReadAsStringAsync());$headers = @{ Authorization = "Bearer $env:ARADIA_API_TOKEN" }
$response = Invoke-RestMethod -Method GET ` -Uri 'https://api.aradia.app/v1/indexer/status' ` -Headers $headers
$response | ConvertTo-Json -Depth 6Responses
200Indexer status
application/json
Indexer status
Body application/json
dataobjectrequired
networkastarrequired
Example:
astarcoverage_statusunknown | partial | completerequired
Example:
unknowncoverage_start_blockstring | nulloptional
last_confirmed_blockstringrequired
Example:
123last_seen_blockstringrequired
Example:
135coverage_verified_atstring (date-time) | nulloptional
updated_atstring (date-time)required
Example:
2026-08-01T00:00:00ZExample
{ "data": { "network": "astar", "coverage_status": "unknown", "last_confirmed_block": "123", "last_seen_block": "135", "updated_at": "2026-08-01T00:00:00Z" }}400Invalid parameter or cursor
application/json
Invalid parameter or cursor
Body application/json
errorobjectrequired
codeINVALID_ARGUMENT | UNAUTHORIZED | FORBIDDEN | NOT_FOUND | RATE_LIMITED | RATE_LIMITER_UNAVAILABLE | SERVICE_UNAVAILABLE | INTERNAL_ERRORrequired
Example:
INVALID_ARGUMENTmessagestringrequired
Example:
One or more request parameters are invalid.request_idstringoptional
Example
{ "error": { "code": "INVALID_ARGUMENT", "message": "One or more request parameters are invalid." }}401Missing or invalid bearer credential
application/json
Missing or invalid bearer credential
Body application/json
errorobjectrequired
codeINVALID_ARGUMENT | UNAUTHORIZED | FORBIDDEN | NOT_FOUND | RATE_LIMITED | RATE_LIMITER_UNAVAILABLE | SERVICE_UNAVAILABLE | INTERNAL_ERRORrequired
Example:
UNAUTHORIZEDmessagestringrequired
Example:
Authentication is required.request_idstringoptional
Example
{ "error": { "code": "UNAUTHORIZED", "message": "Authentication is required." }}403Credential lacks the required read-only scope
application/json
Credential lacks the required read-only scope
Body application/json
errorobjectrequired
codeINVALID_ARGUMENT | UNAUTHORIZED | FORBIDDEN | NOT_FOUND | RATE_LIMITED | RATE_LIMITER_UNAVAILABLE | SERVICE_UNAVAILABLE | INTERNAL_ERRORrequired
Example:
FORBIDDENmessagestringrequired
Example:
The API key does not have the required scope.request_idstringoptional
Example
{ "error": { "code": "FORBIDDEN", "message": "The API key does not have the required scope." }}404Resource not found
application/json
Resource not found
Body application/json
errorobjectrequired
codeINVALID_ARGUMENT | UNAUTHORIZED | FORBIDDEN | NOT_FOUND | RATE_LIMITED | RATE_LIMITER_UNAVAILABLE | SERVICE_UNAVAILABLE | INTERNAL_ERRORrequired
Example:
NOT_FOUNDmessagestringrequired
Example:
The requested resource was not found.request_idstringoptional
Example
{ "error": { "code": "NOT_FOUND", "message": "The requested resource was not found." }}429Request rate limit exceeded
application/json
Request rate limit exceeded
Headers: RateLimit-Reset, Retry-After
Body application/json
errorobjectrequired
codeINVALID_ARGUMENT | UNAUTHORIZED | FORBIDDEN | NOT_FOUND | RATE_LIMITED | RATE_LIMITER_UNAVAILABLE | SERVICE_UNAVAILABLE | INTERNAL_ERRORrequired
Example:
RATE_LIMITEDmessagestringrequired
Example:
Request rate limit exceeded.request_idstringoptional
Example
{ "error": { "code": "RATE_LIMITED", "message": "Request rate limit exceeded." }}503Temporary dependency failure
application/json
Temporary dependency failure
Body application/json
errorobjectrequired
codeINVALID_ARGUMENT | UNAUTHORIZED | FORBIDDEN | NOT_FOUND | RATE_LIMITED | RATE_LIMITER_UNAVAILABLE | SERVICE_UNAVAILABLE | INTERNAL_ERRORrequired
Example:
SERVICE_UNAVAILABLEmessagestringrequired
Example:
The data service is temporarily unavailable.request_idstringoptional
Example
{ "error": { "code": "SERVICE_UNAVAILABLE", "message": "The data service is temporarily unavailable." }}Try itDemo token included
RequestJSON
What each field does
networkastaroptionaldefault: astarChain to query. Only Astar mainnet is indexed today.
Response
Response appears here.
