Get Mirror Sync Status
GET/api/xero/v2/sync-status
Per-entity sync status for the Xero mirror - how many records each mirror holds, how many carry an unresolved push error, when it last synced, and the most recent failure.
This endpoint currently requires session authentication; Personal Access Token scope support is in progress.
Authentication: Requires Bearer token.
Top level:
order(array of strings) - the entity keys in display order. Every other key is one entity.
Fields per entity:
key/label- the entity identifier and its display name.direction-pull(pulled from Xero),push(pushed to Xero from this integration), orledger(written when the accounting ledger pushes a document; there is no sync to trigger for these).count- records in the mirror.error_count- records carrying an unresolved push error. Always 0 for reference data pulled from Xero.last_mirror_write_at- the newest write to the mirror. Forledgerentities this is the only meaningful freshness value, because they are never synced as a set.cursor_at- incremental watermark: everything changed in Xero at/before this timestamp has been mirrored.last_sync_started_at/last_sync_completed_at- the most recent recorded sync run.last_sync_failed_at/last_sync_error- populated when the most recent attempt failed; cleared by the next successful run.enabled- whether the nightly scheduled sync runs for this entity. Bank transactions and payments are opt-in per connection; everything else is on the normal schedule and reports true.can_sync_now- whether Sync Entity From Xero accepts this entity.
Telemetry fields are null for an account that has never synced. Bank transactions and payments record a sync only on their scheduled run - a scoped manual pull deliberately does not, because it would claim coverage the mirror does not have.
Request
Responses
- 200
- 401
- 403
- 429
OK
Response Headers
Unauthenticated — the bearer token is missing, revoked, expired, or malformed. Never retry automatically; fix the credential. See the Errors guide.
Forbidden — the token lacks a required scope, the endpoint is not available to API tokens, or the user behind the token lacks the permission. A human must adjust the token scopes or user permissions; do not retry.
Rate limited — platform limit is 1,000 requests/min; individual tokens may carry lower limits. Honor the Retry-After header before retrying. See the Rate Limits guide.