Skip to main content
Retrieve synchronization status for addresses to check when portfolio and transaction data were last updated.
Cost: Free (0 credits)
Interactive Playground: Test this endpoint in the API Playground. Get your API key at data.octav.fi

Endpoint

GET https://api.octav.fi/v1/status

Parameters

addresses
string
required
Comma-separated list of addresses
addresses=0x6426af179aabebe47666f345d69fd9079673f6cd

Example

curl "https://api.octav.fi/v1/status?addresses=0x6426af..." \
  -H "Authorization: Bearer YOUR_API_KEY"

Response

address
string
The wallet address
portfolioLastSync
string
ISO 8601 timestamp of last portfolio synchronization Example: "2025-05-08T14:43:12.020Z"
transactionsLastSync
string
ISO 8601 timestamp of last transaction synchronization Example: "2025-05-08T14:38:15.920Z"
syncInProgress
boolean
Whether transactions are currently syncing true = sync in progress, false = no active sync

Example Response

[
  {
    "address": "0x6426af179aabebe47666f345d69fd9079673f6cd",
    "portfolioLastSync": "2025-05-08T14:43:12.020Z",
    "transactionsLastSync": "2025-05-08T14:38:15.920Z",
    "syncInProgress": false
  }
]

Use Cases

  • Check Freshness
  • Wait for Sync
  • Monitor Multiple
Check if data is fresh enough:
async function isDataFresh(address, maxAgeMinutes = 10) {
  const response = await fetch(
    `https://api.octav.fi/v1/status?addresses=${address}`,
    { headers: { 'Authorization': `Bearer ${apiKey}` } }
  );
  const [status] = await response.json();
  const lastSync = new Date(status.portfolioLastSync);
  const now = new Date();
  const ageMinutes = (now - lastSync) / 1000 / 60;
  return ageMinutes <= maxAgeMinutes;
}
const isFresh = await isDataFresh(address);
if (!isFresh) {
  console.log('Data is stale, consider syncing');
}

Best Practices

This endpoint costs 0 credits, so call it freely:
  • Check before expensive operations
  • Monitor sync status
  • Verify data freshness
Understanding sync times:
  • Portfolio: 1-minute cache
  • Transactions: 10-minute cache
  • Check syncInProgress before triggering new sync
Query multiple addresses in one call:
?addresses=0x123...,0x456...,0x789...
Still costs 0 credits regardless of address count