SETTINGS & DATA
Data Storage
How API Studio stores your data — plain JSON files, two scopes (local and global), git-friendly by design, and fully offline.
Overview
All data is stored as plain JSON files on your machine. No cloud, no accounts, no telemetry. Your data never leaves your computer.
Local Scope
Per workspace — stored in .openpost/ at project root
Global Scope
Shared across all workspaces — stored in ~/.openpost/global/
Local Storage (.openpost/)
Located at the workspace root. Created automatically on first use. Per-project, workspace-specific data.
.openpost/
├── collections.json ← saved request collections
├── environments.json ← environment variables
├── history.json ← request/response history
├── snapshots.json ← response structure snapshots
├── cookies.json ← persistent cookie jar
├── session.json ← open tabs state for restore
├── config.json ← settings and preferences
├── mock-servers.json ← mock server configurations
└── graphql-schemas.json ← cached GraphQL schemas
Global Storage (~/.openpost/global/)
Located in the user home directory. Shared across ALL workspaces. Not committed to git (user-specific).
~/.openpost/global/
├── collections.json ← global collections (shared across workspaces)
├── environments.json ← global environments
├── history.json ← global request history
├── config.json ← settings, proxy profiles, license key,
│ vault providers, secret sets
└── vault.enc ← encrypted vault (AES-256-GCM)
File Formats
All files are plain JSON (except vault.enc which is encrypted JSON).
| File | Contents |
|---|---|
| collections.json | Array of Collection objects (requests, folders, auth, scripts) |
| environments.json | Array of Environment objects (key-value variable sets) |
| history.json | Array of HistoryEntry objects (request + response pairs) |
| session.json | Open tabs state for session restore on reopen |
| config.json | Settings, proxy profiles, active environment IDs |
| cookies.json | Array of CookieEntry objects (persistent cookie jar) |
| vault.enc | AES-256-GCM encrypted vault (secrets + certificates) |
See the Collection JSON Schema page for full type reference.
Git Workflow
Commit .openpost/ to share collections, environments, and mock servers with your team. Each developer gets the same API definitions.
✓ DO commit
collections.jsonenvironments.jsonmock-servers.jsonsnapshots.jsonconfig.json
✗ Consider .gitignore
session.json— personal tab statecookies.json— personal session cookieshistory.json— optional (can be large)
Recommended .gitignore additions:
.openpost/session.json
.openpost/cookies.json
vault.enc is encrypted (global-only, not in your project). Secret values are automatically scrubbed from history before writing to disk.
No-Workspace Mode
When VS Code opens without a workspace folder, local storage is unavailable.
.openpost/ directory — local storage unavailableYou can still send requests and use global collections — just no per-workspace persistence.
Cross-Window Sync
Global storage changes sync across VS Code windows automatically via file system watcher.
FileSystemWatcher on ~/.openpost/global/. When any file changes on disk (from another VS Code window or external editor), the watcher triggers a reload and pushes updated data to the webview.