Skip to main content

Documentation Index

Fetch the complete documentation index at: https://help.daylit.com/llms.txt

Use this file to discover all available pages before exploring further.

The integrations API lets you manage all connected data sources for your company — accounting systems via Merge.dev, email mailboxes via Nylas, and CRM tools. You can list connections, trigger manual syncs, disconnect or reactivate connections, and update email mailbox settings. Use the sync status endpoint to show connection health in your own UI.

List integrations

GET /api/companies/{company_id}/integrations
Returns all integration connections for the company, across all provider types (Merge, Nylas, and any future providers).
company_id
string
required
UUID of the company.

Response

A list of integration connection objects.
id
string
UUID of the connection.
provider_type
string
Integration provider: merge or nylas.
product
string
Product category: accounting, email, or crm.
category
string
Connection category string.
integration
string
Integration label (e.g. quickbooks, netsuite, gmail).
is_active
boolean
Whether the connection is currently active.
health_status
string
Connection health: valid or invalid.
sync_status
string
Current sync state: idle, triggered, syncing, or error.
webhook_sync_enabled
boolean
Whether webhook-triggered syncs are enabled for this connection.
connection_config
object
Provider-specific configuration including email_address (Nylas), allow_shared_sending, and mailbox_bcc_emails.
created_at
string
ISO datetime.
updated_at
string
ISO datetime.
curl --request GET \
  --url "https://your-instance.com/api/companies/{company_id}/integrations" \
  --header "Authorization: Token {token}"

Trigger sync

POST /api/companies/{company_id}/integrations/{connection_id}/sync
Triggers a manual incremental sync for the specified connection. Supports Merge (accounting) and Nylas (email) connections. CRM sync is not yet supported. Triggers an incremental data pull for the specified connection. If a sync is already in progress, the request is acknowledged but no duplicate sync is started.
company_id
string
required
UUID of the company.
connection_id
string
required
UUID of the integration connection.

Response

status
string
Outcome of the trigger attempt: triggered, debounced, trigger_failed, or ignored.
task_id
string
Sync job ID. Present when a new sync was triggered.
connection_id
string
UUID of the connection.
Returns HTTP 202 Accepted when a sync is triggered, or 200 OK when a sync is already in progress.
Returns 400 if the connection does not have valid credentials or if the connection’s category is crm.
curl --request POST \
  --url "https://your-instance.com/api/companies/{company_id}/integrations/{connection_id}/sync" \
  --header "Authorization: Token {token}"

Disconnect integration

POST /api/companies/{company_id}/integrations/{connection_id}/disconnect
Disconnects an integration by marking it inactive and revoking its credential. For Merge connections, this also calls the Merge API to deauthorize the linked account so users can reconnect to a different account from the same provider. Any collection programs, sequences, or sender preferences pointing at this connection are automatically cleared to prevent broken references.
company_id
string
required
UUID of the company.
connection_id
string
required
UUID of the connection to disconnect.

Response

success
boolean
true on success.
message
string
"Integration disconnected".
For email (Nylas) connections, only the connection owner can disconnect. Returns 403 if you attempt to disconnect a teammate’s connection.
curl --request POST \
  --url "https://your-instance.com/api/companies/{company_id}/integrations/{connection_id}/disconnect" \
  --header "Authorization: Token {token}"

Reactivate integration

POST /api/companies/{company_id}/integrations/{connection_id}/reactivate
Reactivates a previously disconnected integration. The connection must still have valid stored credentials — if not, you need to reconnect via OAuth. This endpoint is idempotent: if the connection is already active, it returns 200 without error.
company_id
string
required
UUID of the company.
connection_id
string
required
UUID of the connection to reactivate.

Response

success
boolean
true on success.
message
string
"Integration reactivated" or "Connection is already active".
Returns 400 if the connection has no stored credentials. In this case, reconnect via the OAuth flow.
curl --request POST \
  --url "https://your-instance.com/api/companies/{company_id}/integrations/{connection_id}/reactivate" \
  --header "Authorization: Token {token}"

Update connection settings

PATCH /api/companies/{company_id}/integrations/{connection_id}
Updates owner-mutable settings on an email (Nylas) connection. Currently supports two fields stored inside connection_config. This endpoint is only available to the connection owner and only for Nylas email connections.
company_id
string
required
UUID of the company.
connection_id
string
required
UUID of the Nylas email connection.
allow_shared_sending
boolean
When true, other members of your company can select this mailbox as their “From” sender in the email composer and sequence sends.
mailbox_bcc_emails
array
List of email addresses to BCC on every email sent from this mailbox. These follow the mailbox so shared-send scenarios still archive to the owner’s chosen addresses.

Response

success
boolean
true on success.
id
string
UUID of the updated connection.
allow_shared_sending
boolean
Updated value, if provided.
mailbox_bcc_emails
array
Updated list, if provided.
curl --request PATCH \
  --url "https://your-instance.com/api/companies/{company_id}/integrations/{connection_id}" \
  --header "Authorization: Token {token}" \
  --header "Content-Type: application/json" \
  --data '{"allow_shared_sending": true, "mailbox_bcc_emails": ["archive@example.com"]}'

POST /api/companies/{company_id}/integrations/merge/link-token
Generates a Merge Link token to initiate the Merge.dev OAuth flow from your frontend. Pass this token to the Merge Link component in your UI to let users connect an accounting integration.
company_id
string
required
UUID of the company.

Response

Short-lived Merge Link token. Pass this to the Merge Link SDK.
curl --request POST \
  --url "https://your-instance.com/api/companies/{company_id}/integrations/merge/link-token" \
  --header "Authorization: Token {token}"

Get sync status

GET /api/companies/{company_id}/sync/status
Returns the overall sync status for the company across all integration connections. Use this endpoint to display a “syncing” indicator or last-synced timestamp in your UI.
company_id
string
required
UUID of the company.
curl --request GET \
  --url "https://your-instance.com/api/companies/{company_id}/sync/status" \
  --header "Authorization: Token {token}"