Python, TypeScript and Go clients

The Python, TypeScript and Go clients are not on a public registry yet. Until they are, call the HTTP API or MCP.

No public package yet

The Python, TypeScript and Go clients are not on PyPI, npm or a public Go module path. There is nothing to download from this site.

Until a public package exists, call the HTTP API or connect over MCP.

curl --fail-with-body https://api.wavemaker.io/openapi.json

Updated

What the clients cover

The Python, TypeScript and Go clients wrap the same HTTP API documented on HTTP API:

  • the session API: create a session, post a turn, read events, read a turn by its request_id, approve, interrupt, close, plus quotes and identity;
  • the twelve tools through one generic call that returns the whole envelope;
  • waiting on a job (read of wm://job/{id} until it ends);
  • file upload and hash-verified download;
  • the older operations the service still serves.
CallPythonTypeScriptGo
Create a sessioncreate_sessioncreateSessionCreateSession
Post a turnpost_turnpostTurnPostTurn
Read eventssession_eventssessionEventsSessionEvents
Turn by requestturn_for_requestturnForRequestTurnForRequest
Decide an approvalapproveapproveApprove
Interrupt, closeinterrupt, close_sessioninterrupt, closeSessionInterrupt, CloseSession
Call a tooltooltoolTool
Wait for a jobwaitwaitWait

Point a client at https://api.wavemaker.io (production) or https://api-staging.wavemaker.io (staging) with a scoped workspace key. The clients refuse a non-HTTPS origin other than loopback, and they never follow redirects. The CLI is built on a Rust SDK crate, which isn't published separately.

Retries

Overload (429, 503) and dropped connections are retried only when a retry can't create new work: reads, and writes that carry a request_id. Everything else is sent once. Keep the same request_id when you retry yourself.

Errors and recovery

SDKError keeps the service's error code, the HTTP status, details, and retryable when the service says whether the refusal can be retried. A wait that times out or is stopped doesn't cancel the job; keep the job id and wait again. If a credential expires mid-wait, get a new one, create a new client and wait on the same job id. A 401 is not a generation failure, so don't resubmit to get an output.

Downloads check the sha256 and size before the file is written, and never overwrite an existing file. An interrupted upload resumes with its original transfer id and the same source bytes.

HTTP API · Make an ad · Errors and retries

Related guidance