Usage Documentation
Master API Calls with this comprehensive guide.
Goal
API Calls helps you exercise REST services without relying on a browser or external tools. It lets you craft HTTP requests, send them, inspect responses, and organise them into tabs, collections, and workspaces.
Requirements and Installation
- Official packages: download the latest release for Linux, macOS, or Windows from GitHub Releases.
- Arch Linux: available through the
api-calls-binpackage (AUR). - Running from source:
-
npm install -
npm run devto launch the application in development mode. -
npm run build:<platform>to generate installers (linux/mac/win).
-
First Run
- On launch, the default workspace opens with the side menu collapsed.
-
Click New Tab (the
+icon orCtrl/Cmd+T) to prepare a new request. - Choose the HTTP method, enter the URL, and add the required parameters or body.
-
Press
Ctrl/Cmd+Enteror the Send button to execute the request. - Review the response at the bottom: status, duration, size, and body.
Interface at a Glance
- Optional top menu: quick access to actions, view,
tools, and updates (toggle from Settings or
Ctrl/Cmd+M). - Side menu: tabs for Collections, Environments, History, Cookies, and Settings (switch via shortcuts).
- Side panel: displays the content of the selected section (collection tree, environments, etc.).
- Central tabs: request editor, header/body configuration, and response viewer. Tabs support drag-and-drop reordering.
- Bottom console: log of sent requests and debugging messages.
Building and Sending Requests
- Method and URL: use the selectors for GET, POST, PUT, and more. URLs auto-complete with environment variables when selected.
- Query parameters: add rows in the Params section.
- Headers: add request headers. I will overwrite collection headers.
- Body: choose the mode (JSON, YAML, text, form-data, x-www-form-urlencoded, file). The Monaco-based editor offers syntax highlighting.
- Authentication: configure Bearer, Basic, or custom tokens from the Auth tab.
- Environment: assign variables via Environment (collections can specify a preferred environment).
- Send and cancel:
Ctrl/Cmd+Entersends the request,Esccancels it.
Scripting
You can write JavaScript code to execute before a request is sent (Pre-request Script) or after a response is received (Post-request Script).
Available Resources
- console: Use
console.log(message)orconsole.error(message). - environment: access and modify environment variables.
environment.get(key)environment.set(key, value)environment.unset(key)
- http: Make asynchronous HTTP requests directly from your script.
await http.get(url, headers)await http.post(url, body, headers)
- request: Access the current request details.
- response (Post-script only): Access the received response.
Managing Tabs
- Duplicate: right-click a tab and choose Duplicate tab.
- Restore:
Ctrl/Cmd+Shift+Treopens the last closed tab. - Move: drag tabs to reorder them.
- Search: open the tab switcher with
Ctrl/Cmd+Oto find a tab by name. - Close:
Ctrl/Cmd+Wcloses the active tab. - Bulk close: right-click for Close others or Close all.
- Save a request:
Ctrl/Cmd+Ssaves to the linked collection.
Collections
- Create folders and sub-folders to group related requests.
- Assigning an environment to a collection propagates default variables to linked tabs.
- Use Pre-request Script to run JavaScript before sending a request.
- Import and export from the context menu: supports Postman v2, OpenAPI, and custom YAML/JSON files.
- Define collection headers that will be sent on requests.
Environments and Variables
-
Define environments (dev, staging, prod) with key/value pairs.
-
Insert variables as
{{variable}}in URLs, headers, or bodies. - Define environment headers that will be sent on requests.
-
Insert variables as
- Duplicate, reorder, or export complete environments as needed.
- Pick the active environment per tab from the request toolbar.
History and Cookies
- History: stores up to
maxHistoryrequests. Reopen entries as tabs or clear them in bulk. - Cookies: when Manage cookies is enabled, stored cookies are listed and can be cleared per domain.
Workspaces
- Separate collections, environments, tabs, and cookies per project.
- Access the list and workspace actions from the side menu.
- Create, duplicate, rename, and remove workspaces. Each workspace is stored in its own file.
Settings
- Appearance: Theme, Window mode, Request orientation.
- Behavior: Menu visibility, Auto-scroll, Notifications.
- Network: Request timeout, Redirect handling, SSL rejection.
- Default headers: define headers that should be applied automatically.
Auto Updates (Beta)
- On macOS and Windows, the app checks for updates in the background.
- On Linux, install new versions manually.
Essential Shortcuts
Tabs
-
Ctrl/Cmd+T- New tab -
Ctrl/Cmd+W- Close tab -
Ctrl+Tab- Navigate tabs -
Ctrl/Cmd+Shift+T- Restore tab
Requests
-
Ctrl/Cmd+Enter- Send request -
Ctrl/Cmd+S- Save request -
Esc- Cancel request
Tips and Troubleshooting
- If an HTTPS call fails, temporarily disable Reject unauthorized in Settings.
- Check the bottom console for validation messages.
- Use Restore tab to recover accidentally closed tabs.
Where Data Lives
Collections, environments, tabs, and cookies are stored per workspace under Electron's user data directory.
Additional Resources
- GitHub repository
- Issues: use Help > Submit bug or open a GitHub ticket.