Overview
This guide explains how to integrate with XFlow for real‑time cross-chain transfer data delivery and how to handle historical backfills. XFlow provides data in two complementary ways:- Historical backfill: delivered as CSV exports (split by year / month).
- Real‑time API: delivered via the external API polling endpoint.
Access & Authentication
Reach out to sales@pulsy.app to coordinate an integration and request an API key. Once provisioned, follow the authentication instructions in the Authentication guide.API Base URL
Production:https://api.pulsy.app.
Main Polling Endpoint
Transfers (swaps):GET /v1/external/swaps. See Get Swaps for more details.
Required query parameters:
from: ISO‑8601 timestamp (UTC recommended).to: ISO‑8601 timestamp (UTC recommended).
filter: one ofWithdrawn,Deposited,Completed,Updated.
- The time window between
fromandtomust not exceed 30 minutes.
Recommended Polling Strategy
For accurate, forward‑only, and idempotent polling, usefilter=Completed and the completedAt field as your cursor.
Recommended setup:
- Job A (real‑time): poll with no delay.
- Job B (delayed): poll with a 48‑hour delay to capture late‑arriving transfers.
- Ingest the historical CSV export.
- Start both pollers from
max(completedAt)found in the CSV. - After each API response, advance your cursor to the max
completedAtreturned by that response.
completedAt is stable (it is set when a transfer record reaches its final state). This makes forward‑only polling safe.
Historical Backfill via CSV
- CSV exports are provided for historical data (split by year / month).
- Use CSVs for backfill. The external API is intended for real‑time polling only.
- The polling API is not intended for deep historical backfill. Use CSV exports instead.
- We periodically regenerate historical exports as protocols and patterns evolve. Implement a re‑fill flow so you can re‑ingest refreshed exports when provided.
Timestamp Fields (Polling & Reconciliation)
Key timestamps available in both CSV and API:detectedAt: when a transfer was detected by XFlow.completedAt: when a transfer was finalized and made available in the external API.updatedAt: when a transfer record was last changed.depositedAt: inbound on‑chain transaction time.withdrawnAt: outbound on‑chain transaction time.