Contents

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.

LanguagePlanned installNeedsRegistry
Node.js / TypeScriptnpm install @shipmsg/nodeNode.js 20+npm
Pythonpip install shipmsgPython 3.10+PyPI
PHPcomposer require shipmsg/shipmsgPHP 8.2+Packagist
Gogo get github.com/shipmsg/shipmsg-goGo 1.22+Go modules
Javaimplementation("com.shipmsg:shipmsg:0.1.0")Java 17+Maven Central
.NETdotnet add package ShipMsg.NET 8NuGet

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, retryable and requestId (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:

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.