Skip to content

The official JSON Schemas for ShipEngine™

Notifications You must be signed in to change notification settings

ShipEngine/shipengine-json-schema

Repository files navigation

JSON Schema Logo ShipEngine™ JSON Schemas

This repo contains the official JSON Schemas for the ShipEngine API. You can use these schemas with any of countless JSON Schema tools to perform validation, generate models, etc.

Usage in Node.js

To use in Node.js, just require() or import this repo's directory. The imported object has the same structure as index.json, except that the requestSchema and responseSchemas are actual JSON Schema objecs, rather than just file paths. You can use these schemas with a JSON Schema validator, such as AJV.

const shipengine = require("shipengine-json-schema");
const AJV = require("ajv");

// Initialize AJV, ignoring our custom formats
let ajv = new AJV({ unknownFormats: "ignore" });

// Get the JSON Schema for a specific API endpoint
let schema = shipengine["/v1/labels/shipment/{shipment_id}"].post.requestSchema;

// Validate an API request body against the schema
let isValid = ajv.validate(schema, {
  validate_address: "validate_and_clean",
  label_layout: "4x6",
  label_format: "pdf",
});

File Structure

Path Description
index.json This file is a JSON map of the request and response schemas for each API endpoint.
requests This directory contains separate JSON Schema files for every ShipEngine API request body. Each file is fully-dereferenced (doesn't contain any $ref pointers), so it should work with any tool or library.
responses This directory contains separate JSON Schema files for every ShipEngine API response body. Each file is fully-dereferenced (doesn't contain any $ref pointers), so it should work with any tool or library.

Other API Definition Formats

OpenAPI Logo OpenAPI

The official ShipEngine OpenAPI 3.0 definitions. The OpenAPI format is supported by many tools and libraries for every major technology stack.

Postman Logo Postman

The official Postman reference collection for ShipEngine. Just import it into Postman and immediately begin interacting with the ShipEngine API.

New to ShipEngine? Download our walkthrough collection instead.

Redoc Logo

View the ShipEngine API definition online in your browser. This web page is generated from the OpenAPI definition using ReDoc.