Get started
Official SDKs
Six pre-release libraries, generated from the same API contract as this reference and packaged under one version number. Each carries an MIT licence. Public registry publication is pending; the installation commands below are planned, not available yet.
Use the HTTPS examples in the quickstart today. They work without installing a library.
| Language | Planned install | Needs | Registry |
|---|---|---|---|
| Node.js / TypeScript | npm install @shipmsg/node | Node.js 20+ | npm |
| Python | pip install shipmsg | Python 3.10+ | PyPI |
| PHP | composer require shipmsg/shipmsg | PHP 8.2+ | Packagist |
| Go | go get github.com/shipmsg/shipmsg-go | Go 1.22+ | Go modules |
| Java | implementation("com.shipmsg:shipmsg:0.1.0") | Java 17+ | Maven Central |
| .NET | dotnet add package ShipMsg | .NET 8 | NuGet |
What every SDK does for you
- Calls every operation by its reference name, for example
postV1AccountsByAcMessages(see the API reference). - Adds an Idempotency-Key to every write and retries rate limits, timeouts and temporary errors with backoff — safely, because of that key.
- Pins the API version you pass, so an upgrade never changes behaviour under you.
- Verifies webhook signatures with a constant-time comparison.
- Raises typed errors carrying
code,retryableandrequestId(quote the request ID to support). - Walks paginated lists for you.
- Exports the sandbox test numbers as constants.
A first call
The quickstart has the same first message in every language. In Node.js:
import { ShipMessagesClient } from "@shipmsg/node";
const client = new ShipMessagesClient({ apiKey: process.env.SHIPMESSAGES_API_KEY, apiVersion: "2026-08-21" });
for await (const message of client.paginate("getV1AccountsByAcMessages", {
path: { AC: process.env.SHIPMESSAGES_ACCOUNT_SID! },
})) {
console.log(message.sid, message.status);
}No SDK for your language?
The API is plain HTTPS and JSON. Download the OpenAPI document to generate a client, or import it into Postman or Insomnia.