Remote Tracker API Status
Understand the supported import path for Harvest, Toggl, Clockify, and other external time trackers.
Summary
Eigenn public API v1 does not connect directly to Harvest, Toggl, Clockify, or another standalone time tracker. There are no public credential, connection-status, preview, confirmation, scheduled-sync, or sync-history endpoints for those providers.
Capabilities
What Is Available
The native REST tracker supports:
- project CRUD and billing defaults
- completed entry CRUD and bulk import
- active timer start, stop, current, and status operations
- reusable tracker categories
- project, date, customer, status, and category filters where documented
Prerequisites
Credential Boundary
Never send provider tokens to Eigenn tracker endpoints. Keep them in a server-side secret manager. Exclude them from URLs, logs, analytics, client bundles, browser storage, and error messages.
Concepts
External time tracker integration is achieved through a server-side process that extracts completed time entries from providers, normalizes their formats, and bulk inserts them into Eigenn. Idempotency can replay a successful import request within its retention window. Your integration must also track which provider records were imported. Credentials must always remain on your server.
Workflow
Supported Integration Path
Use a server-side integration. The integration must do these steps:
- Store the provider credential outside Eigenn and outside browser storage.
- Read the completed entries from the provider.
- Map the provider users and projects to team-owned Eigenn UUIDs.
- Convert the duration to whole seconds.
- Convert dates to
YYYY-MM-DDand start/stop timestamps to UTC. Validate that stop follows start and that duration agrees. Eachdatesvalue copies the same timestamps; use separate definitions for distinct intervals. - Submit the normalized records through
POST /tracker-entries/bulk. - Store provider-to-Eigenn entry mappings and advance the checkpoint only after reconciling the saved rows. The bulk response order is not guaranteed to match input order; do not map IDs by array position alone.
See Tracker Entries and Timers for the complete bulk request contract.
Behavior specification
Duplicate Protection
The bulk tracker endpoint supports Eigenn idempotency keys. But the tracker-entry model does not show a provider source ID or a provider-specific uniqueness key. We recommend that your integration keeps a stable provider-entry ID. We also recommend that you do not send the same logical entry two times.
Use one Eigenn idempotency key for one unchanged HTTP request. Successful responses are retained for 24 hours; the shared guard does not compare bodies. Reusing a key for different records can replay the old result. Failed responses are not cached as successful writes, and an insert can persist before its response fails. A stable key alone is not permanent deduplication.
If a request times out, inspect the imported date range before sending it again. Ordinary tracker-entry lists and single GETs are restricted to the authenticated caller’s assigned rows, even when the token created entries for a teammate. Reconcile through the affected assignee’s authorized view or the application; an empty caller-only list does not prove that nothing saved.
Keep checkpoints and provider-entry IDs in your integration store. Skip records already mapped to Eigenn. For provider corrections, update the known Eigenn entry rather than importing a second copy. Do not replay a provider page blindly after a timeout or an expired idempotency window.
Diagrams
Rendering diagram…
Screenshots
Not applicable: this page describes an API or a non-visual workflow rather than an application screen.
Verification
- Complete at least one import cycle from your external provider: Confirm that the imported records show up in Eigenn as expected.
- Replay one successful, unchanged request within the retention window and confirm the cached result. Separately check that your mapping store prevents a second import after that window.
- Exercise uncertain responses and teammate-assigned records; confirm that recovery inspects the correct saved state before advancing the checkpoint.
- Review your logs and storage: Confirm that provider credentials are only stored and accessed in your server-side environment and are not present in logs, error messages, browser storage, or client code.
These checks remain runtime verification work for your integration. No provider connection or import cycle has been verified by this source review.