RESTKDocs

Sync & Collaboration

Offline-first sync keeps your API collections, requests, and environments synchronized across all your devices and your team.

8 min read

RESTK uses offline-first sync — you can work without internet and sync when ready. When you sync, the app pulls the latest changes from your team, merges them with your local changes using field-level smart merge, and pushes your changes to the server.

Quick Start

Work Anywhere

Make changes on any device — create, edit, delete, and reorder requests fully offline.

Sync When Ready

Tap Sync Now or enable Auto-Sync to push your changes and pull your team's updates.

Smart Merge

RESTK merges changes at the field level — non-conflicting changes merge automatically, and when both sides edit the same field, your local version is preserved.


How Sync Works

When you tap Sync Now (or Auto-Sync triggers), the app follows this sequence:

  1. Pull the latest changes from the server
  2. Merge them with your local changes (field-level smart merge)
  3. Push your local changes to the server

Collections sync before folders, and folders before requests. This ensures parent items exist before syncing their children.

Auto-Sync

Auto-Sync periodically syncs your workspace in the background. You can configure the interval in settings:

IntervalBest for
ManualFull control — sync only when you tap "Sync Now"
30 secondsReal-time collaboration with teammates
4 minutesBalanced — recommended for most teams
6 minutesLight collaboration
10 minutesMinimal background activity

Push Notifications

When a teammate syncs changes, you receive a push notification. If Auto-Sync is enabled, the app automatically pulls the latest data in the background — no manual action needed.


Working Offline

You can use RESTK fully offline. All changes are saved locally and queued as pending changes.

When offline, you can:

  • Create new collections, folders, and requests
  • Edit existing items
  • Delete and reorder items
  • Execute requests (to reachable servers)
  • View history

No Data Loss

Your changes are saved safely on your device even if you quit the app while offline. Everything syncs when you reconnect.


Pending Changes

Pending changes are local edits that haven't been pushed to the server yet. These include:

  • Modified requests, collections, or folders
  • Newly created items
  • Deleted items
  • Reordered items (drag-and-drop changes)

You can view all pending changes in the Sync dialog and manage them before syncing.

Discarding Pending Changes

In the Sync dialog, tap View all changes to see pending items. You can:

  • Select individual items using checkboxes
  • Select All / Clear All to toggle selection
  • Discard Selected to revert those changes

What Discard Does

Discarding a modified item keeps it in your workspace but reverts it to the last synced version. Discarding a locally-created item deletes it entirely.


How Merging Works

RESTK uses smart field-level merge — not whole-item replacement. Each field of a request, collection, or folder is merged independently:

  • If only you changed a field → your version is kept
  • If only your teammate changed a field → their version is applied
  • If both changed the same field → your local version wins (last-writer-wins)

For list fields like headers, parameters, and variables — additions from both sides are kept, deletions are respected, and reordering is preserved.

Non-Conflicting Changes Merge Automatically

If you change the URL and someone else changes the method, both changes are kept automatically. No manual resolution is needed.

What If I Haven't Synced In a While?

Your local changes are safe. When you sync:

  • Fields you didn't modify get updated with the latest from your team automatically
  • Fields you modified keep your local version — your work is never lost
  • If a teammate also changed the same field you changed, your local version takes priority

To minimize overwriting teammates' recent work, we recommend enabling Auto-Sync.


What Gets Synced

Here's exactly what syncs across devices and what stays local.

EntitySyncedLocal-Only
RequestName, URL, method, sort order, parent references, headers, parameters, body type + data, auth type, scripts, skip-parent-scripts flag, variable keys + enabled status, descriptionAuth credentials (stored in Keychain), selected tab, request settings, variable values
CollectionName, sort order, visibility, auth type, scripts, variable keys + enabled statusAuth credentials (stored in Keychain), AI sharing preference, variable values
FolderName, sort order, parent references, auth type, auth override flag, scripts, variable keys + enabled statusAuth credentials (stored in Keychain), variable values
EnvironmentName, workspace, creator, descriptionActive selection (per-user)
Env VariableKey, type, enabled status, display orderValues (stored locally), secret values, script-set values (runtime overrides)

Always stays on your device (never synced):

  • Response history and saved responses
  • Cookies
  • Mock server configurations
  • Window layout and open tabs

Environment Variable Values

Environment variable keys (names) are synced so your team shares the same variable structure. Variable values stay local — each team member can have their own API keys, tokens, and secrets without exposing them to the server or teammates.

This means:

  • Your team shares {{base_url}}, {{auth_token}}, {{api_key}} as variable names
  • Each person sets their own values locally (dev server, staging, production)
  • No secrets are ever sent to the sync server

Variable Values Stay Local

All variable values stay local — only keys and enabled status sync. This applies to collection, folder, request, and environment variables alike. Secret variable values and script-set overrides always stay local.


Auth Inheritance and Sync

Authentication settings sync with their inheritance chain:

  • Collection-level auth syncs and is inherited by all folders and requests within it
  • Folder-level auth syncs and overrides collection auth for requests in that folder
  • Request-level auth syncs and overrides folder/collection auth for that specific request

When a teammate updates the collection's OAuth config, all requests inheriting from it automatically use the new config after your next sync.


Workspace Roles and Permissions

Sync respects your workspace role:

RoleCan push changes?Can pull changes?
Owner / Admin / ManagerYesYes
EditorYesYes
ViewerNo (read-only)Yes (pull only)

Viewers can browse the workspace and pull updates but cannot push changes. If your role changes, the app updates automatically on next sync.


Multi-Device Sync

Your workspace syncs across all your devices. Sign in on your Mac at home and at work — both stay in sync. Each device maintains its own:

  • Environment variable values (your API keys stay per-device)
  • Response history
  • Cookie jar
  • Window layout and open tabs

Drag-and-Drop Reordering

When you reorder requests or folders by dragging, the new order syncs to your team. Each item's position is tracked individually — reordering one item doesn't require updating every other item in the list.


Data Security

Workspaces with end-to-end encryption enabled encrypt sensitive fields before they leave your device:

  • Request body content
  • Auth configuration (tokens, credentials)
  • Header and parameter values

The server only sees encrypted data. See Security & Encryption for details.


Sync Status Indicators

Visual indicators show the sync state of your items.

IndicatorMeaning
Green checkmarkSynced successfully
Orange badge with countPending sync (changes waiting)
Blue spinnerCurrently syncing
Red XSync error, check connection

What If Sync Fails?

If sync fails (network error, server unavailable), your local data is safe. The app will:

  • Show an error message in the Sync dialog
  • Keep your pending changes queued
  • Retry on the next Auto-Sync interval or when you tap "Sync Now"

No data is ever lost due to a sync failure.


Best Practices

  1. Enable Auto-Sync — the 4-minute interval works well for most teams
  2. Sync before major edits — pull the latest before making big changes
  3. Check pending changes — review what's pending before syncing
  4. Use environments for secrets — keep API keys in environment variables, not hardcoded in requests
  5. Use auth inheritance — set auth at collection level so the whole team benefits from updates

Troubleshooting

Changes Not Syncing

Check:

  • Internet connection is active
  • You're signed in on both devices
  • You're in the correct workspace
  • Your workspace role allows pushing changes

Solution:

  • Click the sync icon to force sync
  • Check the Sync dialog for error messages
  • Restart the app if needed

Sync Keeps Failing

Cause: Network issues or server unavailable.

Solution:

  • Check your internet connection
  • Wait for the next Auto-Sync interval to retry automatically
  • Tap "Sync Now" to retry manually

Next Steps