Acta HTTP API
Trading is WebSocket-based. See the Maker API reference and Taker API reference.
Base URL
https://devnet-api.acta.markets
https://beta-api.acta.markets
Response and units
- JSON:
application/json - Timestamps: Unix seconds
price/strike:u64in 1e9 scale (premium and strike conventions match WS docs)quantity: underlying atomic units- Pubkeys/addresses: base58 strings
Error format
{ "error": "Human-readable message", "code": "error_code" }
Common codes:
invalid_id(400)not_found(404)db_disabled(503)data_validation_error(500)schema_error(500)db_error(500)
Temporary unavailability may return HTTP 503.
Health
GET /health
Returns service health and metadata.
GET /ready
Returns readiness status.
GET /live
Returns process liveness.
Markets
GET /api/v1/markets
List markets.
Query:
underlying(optional symbol string)
GET /api/v1/markets returns tradable markets only: not finalized, not disabled, and before the effective trading cutoff. underlying filters by symbol before that tradability filter. There is no active=false mode; use /api/v1/markets/:pda for a specific market.
Response:
{
"markets": [
{
"pda": "MarketPdaBase58",
"underlying_mint": "UnderlyingMintBase58",
"quote_mint": "QuoteMintBase58",
"expiry_ts": 1710600000,
"is_put": false,
"is_finalized": false,
"settlement_price": null,
"underlying_symbol": "SOL",
"quote_symbol": "USDC"
}
]
}
underlying_feed_id_hex / quote_feed_id_hex are not part of current HTTP MarketDto.
GET /api/v1/markets/:pda
Get a single market DTO.
Makers
GET /api/v1/makers
{
"makers": [
{
"pda": "MakerPdaBase58",
"owner": "MakerOwnerBase58",
"quote_signing": "MakerQuoteSigningBase58",
"total_trades": 12,
"total_volume": 1000000,
"total_quotes": 55
}
]
}
GET /api/v1/makers/:pda
Get a single maker DTO.
Participant history
RFQ, quote, and order history is not exposed by the public HTTP API. Use the authenticated maker/taker session protocols for participant-specific state.
Stats
GET /api/v1/stats
{
"total_volume_24h": 1000000,
"total_trades_24h": 150,
"active_markets": 12,
"active_makers": 5,
"connected_makers": 3
}
This differs from WS GlobalStats in Snapshot and StatsUpdate. HTTP includes connected_makers (live WS sessions) and omits total_price_24h and active_rfqs.