Point-in-time data
Filings get amended and restated. To backtest honestly you need to know what was knowable on a given date, not what the record looks like today. Arkolith keeps an append-only, point-in-time archive so you can ask exactly that.
As-of holdings (no look-ahead)#
fund.holdings.as_of returns a fund's positions as known on a date: the most recent filing whose filedAt is on or before your as_of. No filing that hadn't been published yet leaks into the result.
curl -X POST https://arkolith.com/api/mcp \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "fund.holdings.as_of",
"arguments": {
"cik": "1067983",
"as_of": "2024-06-30"
}
}
}'The response names the known_filing it resolved to (its quarter and filed-at date), so the as-of resolution is auditable.
Position history#
fund.position.history gives the time series of a single security in a fund's book (shares and USD value per quarter) so you can chart conviction building or unwinding over time.
curl -X POST https://arkolith.com/api/mcp \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "fund.position.history",
"arguments": {
"cik": "1067983",
"ticker": "AAPL"
}
}
}'Change sets#
The signal in a 13F is the change, not the snapshot. fund.holdings.diff returns the quarter-over-quarter change set grouped into new, added, reduced, and exited — the change type is the group each row falls under, and every row carries its pct_delta inline.