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.jsonUpdated
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 (
readofwm://job/{id}until it ends); - file upload and hash-verified download;
- the older operations the service still serves.
| Call | Python | TypeScript | Go |
|---|---|---|---|
| Create a session | create_session | createSession | CreateSession |
| Post a turn | post_turn | postTurn | PostTurn |
| Read events | session_events | sessionEvents | SessionEvents |
| Turn by request | turn_for_request | turnForRequest | TurnForRequest |
| Decide an approval | approve | approve | Approve |
| Interrupt, close | interrupt, close_session | interrupt, closeSession | Interrupt, CloseSession |
| Call a tool | tool | tool | Tool |
| Wait for a job | wait | wait | Wait |
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