The `shipengine/js-api` library instantiates a batteries-included, vanilla JavaScript client for interacting with the [ShipEngine API](https://shipengine.github.io/shipengine-openapi/). The client provides a set of fully-typed methods that map directly to
The shipengine/js-api library instantiates a batteries-included, vanilla JavaScript client for interacting with the ShipEngine API. The client provides a set of fully-typed methods that map directly to ShipEngine API operations[^1], bound to a user specified via platform token.
- Converts all outbound JSON keys to snake_case for consumption by the ShipEngine API.
- Converts all inbound JSON keys to camelCase for use in JS.
- Attempts to refresh expired tokens on 401 Unauthorized responses, followed by retrying the original request.
- Logs all requests and responses to the console.
In addition to the client, the shipengine/js-api lib provides TypeScript types for all ShipEngine API entities.
``tsx
import { ShipEngineAPI } from "@shipengine/js-api";
const client = new ShipEngineAPI("your-platform-token", {
// Used when attempting to refresh the token on 401 responses
getToken: async () => {
return "your-platform-token";
},
});
client.shipments.list().then((response) => {
console.log(response.data);
// > an object matching the response schema of https://shipengine.github.io/shipengine-openapi/#operation/list_shipments
});
``