Build on APEX CONNECT
Everything you can do in the dashboard, you can do from your terminal, your code, or your CI pipeline — launch calling campaigns, manage appointments, run workflows, and subscribe to live events as they happen.
_ ____ _____ __ __ / \ | _ \ | ____|\ \/ / / _ \ | |_) || _| \ / / ___ \ | __/ | |___ / \ /_/ \_\|_| |_____|/_/\_\ CONNECT A Bulk Lead Converting Voice AI Platform Jump into building with APEX CONNECT: 1. Sign in apex login --endpoint https://app.aimstudio.co.in 2. Pick a workspace apex tenant list 3. Watch it live apex events stream Run 'apex --help' for every command, or 'apex doctor' to check your setup.
Developer access is part of every APEX CONNECT workspace. The CLI installs from npm in one command — no sign-in needed to get it. Sign in and open API Center to create API keys and see live docs generated for your own endpoints.
Starting from nothing? These five steps take you from an empty machine to a working apex command — install, sign in, pick a workspace. Under a minute if you already have Node.js.
Install
Install
One command, any platform. Requires Node.js 16 or newer — check with node -v. npm fetches the prebuilt binary for your operating system and CPU; there is nothing to compile.
npm install -g apex-connect
On macOS or Linux, prefix with sudo if you hit a permissions error. npm installs a prebuilt binary for your platform — Windows, macOS and Linux, Intel and ARM. Would rather not use Node at all? Ask us for a standalone executable.
Verify the install
Prints the version, platform and build details.
apex version
If Windows answers "'apex' is not recognized", open a new terminal — a shell reads PATH only when it starts, so a window opened before the install will not see the command.
Sign in
First time on a machine only — this records the backend as a context. Your browser opens, you approve, and the terminal receives its credentials. They go to the OS keychain, never a plain file.
apex login --endpoint https://app.aimstudio.co.in
Every time after that, plain apex login is enough.
Choose your workspace
Use the real workspace name — placeholder brackets like <name> are not part of the command, and Windows cmd reads < as a redirect and answers "The syntax of the command is incorrect."
apex whoami apex tenant list apex tenant use acme-clinic
(Optional) Check everything works
Verifies config, endpoint reachability, TLS, credentials, keyring access, clock skew and version compatibility — and names whichever one failed.
apex doctor
That is the whole setup — everything below now works. If apex stops being found after working once, check the file is still on disk: some antivirus products quarantine or rename freshly downloaded executables.
Everyday commands
apex appointment list apex campaign list apex campaign send ID apex workflow run ID apex workflow logs EXEC_ID --follow apex usage --since 30d
Add --json to any command for machine-readable output, and every command exits non-zero on failure — so it drops straight into a shell script or a CI job.
Example
apex campaign list --json | jq -r '.[] | .name'
Finding the command you need
There are 132 commands across 13 categories — everything the dashboard can do, the CLI can do. You are not expected to memorise them. Three ways to find one:
apex commands # every command, grouped apex commands budget # search by word apex commands --category billing apex COMMAND --help # flags and arguments for one command
Search is built into apex commands rather than left to a pipe, because Windows cmd.exe has no grep.
Commands follow one shape, so there is nothing per-command to learn: list and show read, create, update and delete write, arguments are CAPS, JSON bodies go in with --file, filters are flags.
Every command
Account & access
apex loginSign in through the browserapex logoutSign out, delete stored credentialsapex whoamiWho am I, which workspaceapex me showYour accountapex me permissionsWhat you are allowed to doapex me update --file p.jsonChange display name or photoapex auth sessionsActive CLI sessionsapex auth revoke SESSION_IDEnd a session remotelyapex context listConfigured environmentsapex context use NAMESwitch environmentapex context showCurrent environment
Calls & telephony
apex calls listList callsapex calls show CALL_SIDOne call, with transcriptapex calls dial --file c.jsonPlace an outbound AI callapex calls reportDialled vs connected
Campaigns & contacts
apex campaign listList campaignsapex campaign create --file c.jsonCreate a campaignapex campaign send IDStart sendingapex campaign update ID --file c.jsonUpdate a campaignapex campaign delete IDDelete a campaignapex campaign calls IDCalls a campaign placedapex contacts listSaved contactsapex contacts import --file c.jsonImport contacts
apex whatsapp chatsConversationsapex whatsapp messages --conversation_id IDMessages in a chat
Appointments & staff
apex appointment listList appointmentsapex appointment create --file a.jsonBook oneapex appointment update ID --file a.jsonChange oneapex appointment status ID --file s.jsonSet statusapex appointment cancel IDCancel oneapex doctors listDoctors and staffapex doctors add --file d.jsonAdd someoneapex doctors toggle IDActive / inactiveapex doctors remove IDRemove someone
AI agent & voice
apex agent showAgent settingsapex agent set --file s.jsonUpdate settingsapex agent voice --file v.jsonSet the voiceapex agent mode --file m.jsonReceptionist or booking modeapex agent prompt --file b.jsonWrite greeting + instructions with AIapex agent warm --file t.jsonPre-warm for a fast first callapex agent listConfigured agentsapex provider showSpeech and model providersapex provider set --file p.jsonChange providers
Workflows
apex workflow listList workflowsapex workflow deploy --file w.jsonCreate, optionally publishapex workflow run IDTrigger a runapex workflow test ID --file t.jsonTest without publishingapex workflow runsList executionsapex workflow logs EXEC_ID --followLive execution logsapex workflow delete IDDelete a workflow
Billing & usage
apex billing showMonth-to-date usage and costapex billing plansPlans and per-call ratesapex billing plan-set --file p.jsonChoose a planapex billing trialTrial or quota statusapex billing paymentPayment statusapex billing recharge --file r.jsonRequest a rechargeapex billing costToday's accrued costapex usage --since 30dUsage for this workspace
Workspaces & team
apex tenant listWorkspaces you can accessapex tenant use NAMEPin the active workspaceapex tenant show TENANT_IDOne workspaceapex tenant create --file t.jsonCreate oneapex tenant update TENANT_ID --file t.jsonUpdate oneapex tenant features TENANT_ID --file f.jsonFeatures on/offapex tenant services TENANT_ID --file s.jsonServices offeredapex tenant activeActive workspaceapex tenant usageUsage for this workspaceapex tenant onboard --file b.jsonOnboard a businessapex org membersTeam membersapex org rolesRolesapex org slosService levels
API & webhooks
apex key listAPI keysapex endpoint listYour custom endpointsapex endpoint delete SLUGDelete an endpointapex endpoint docsGenerated docsapex endpoint presetsEndpoint presetsapex endpoint usageAPI usageapex webhook listWebhooksapex webhook add --file w.jsonAdd a webhookapex webhook test IDSend a test eventapex webhook delete IDDelete a webhook
Administration
apex admin users listPlatform usersapex admin users create --file u.jsonCreate a userapex admin users activate --file u.jsonActivateapex admin users deactivate --file u.jsonDeactivateapex admin users role --file r.jsonSet a roleapex admin users assign --file a.jsonAssign to a workspaceapex admin tenants delete TENANT_IDDelete a workspaceapex admin budget listBudgetsapex admin budget show TENANT_IDOne budgetapex admin budget set TENANT_ID --file b.jsonSet a budgetapex admin did listPhone number poolapex admin did allocate --file d.jsonAllocate a numberapex admin did free --file d.jsonRelease a numberapex admin trunk listSIP trunksapex admin trunk add --file t.jsonAdd a trunkapex admin trunk delete IDDelete a trunkapex admin keys listProvider engine keysapex admin keys set --file k.jsonSet a provider keyapex admin limits listRate-limit rulesapex admin limits add --file l.jsonAdd a ruleapex admin limits delete IDDelete a ruleapex admin brand listWhite-label brandsapex admin brand show IDOne brandapex admin brand update ID --file b.jsonUpdate a brandapex admin brand delete IDDelete a brandapex admin auditAudit logapex admin capacityPlatform capacityapex admin signupsRecent signupsapex admin loginsRecent loginsapex admin paymentsPaymentsapex admin configSystem configurationapex admin providersDefault providersapex admin queue listDead-lettered jobsapex admin blacklist --file n.jsonBlacklist a numberapex admin retention --file r.jsonRun retention sweepapex admin isolationIsolation snapshot
Data & exports
apex export calls --range monthExport call history as CSVapex export status EXPORT_IDCheck an exportapex logs requestsRecent API request logsapex privacy recordRecord of processing activitiesapex privacy erase --file r.jsonRaise an erasure request
System
apex statusIs the platform upapex readyReady to serveapex summaryOne-page summaryapex configPublic configurationapex doctorDiagnose config, auth, connectivityapex events streamLive platform eventsapex commandsList or search every commandapex versionShow versionapex upgradeCheck for a newer releaseapex completion powershellShell completion
Windows: Command Prompt and PowerShell
Both native shells work. The difference is quoting and what you do with JSON — the examples elsewhere on this page assume a POSIX shell with jq.
Command Prompt (cmd.exe)
apex calls list --json > calls.json apex campaign send abc123 type appt.json | apex appointment create --file -
Single quotes are literal characters in cmd — use double quotes around any value containing spaces. There is no jq; redirect to a file.
PowerShell
apex calls list --json | ConvertFrom-Json apex billing show --json | ConvertFrom-Json | Format-List Get-Content appt.json | apex appointment create --file - apex completion powershell | Out-String | Invoke-Expression
ConvertFrom-Json does the job jq does elsewhere, and the last line turns on tab completion.
Live events
Subscribe to what's happening right now — calls connecting and completing, appointments booked, campaign progress. The stream reconnects on its own and resumes where it left off, so a dropped connection never costs you events.
apex events stream apex events stream --json | jq -r 'select(.type == "call.completed") | .data.phone'
Sessions you control
Every signed-in terminal is a session you can see and end at any time — useful when a laptop is lost or a contractor rolls off. Credentials are short-lived and refresh silently in the background.
apex auth sessions apex auth revoke SESSION_ID
Ready to build?
Install the CLI in one command, sign in to create your first API key, or talk to us about a custom integration.