REST API
The Alula REST API provides read-only access to protocol state: markets, pool snapshots, historical data, and token metadata. All data is derived from on-chain state indexed by the Alula collector service.
Authentication: None required. All endpoints are public and read-only.
Conventions
Pagination
List endpoints use cursor-based pagination. The response includes a next_cursor field when more pages exist. Pass it as the cursor query parameter to fetch the next page. When next_cursor is omitted (not null), you have reached the last page.
| Parameter | Type | Description |
|---|---|---|
cursor | string | Opaque cursor from a previous response |
limit | integer | Maximum items per page |
Amounts
All monetary values (total_supplied, total_borrowed, tvl_usd_cents) are returned as decimal strings (Amount type) because they may exceed the safe integer range.
Rates and ratios
APYs (supply_apy_bps, borrow_apy_bps) and utilization (utilization_bps) are expressed in basis points (1 bps = 0.01%).
Conditional requests
Most endpoints support ETag / If-None-Match headers, returning 304 Not Modified when data has not changed.
Error format
Errors follow the application/problem+json convention:
{
"type": "/errors/400",
"title": "Bad Request",
"status": 400,
"detail": "Malformed contract strkey.",
"field": "market"
}| Field | Type | Description |
|---|---|---|
type | string | URI reference identifying the problem type |
title | string | HTTP status reason phrase |
status | integer | HTTP status code |
detail | string | Human-readable explanation |
field | string? | The offending query/path parameter, when known |