The official JSON Schemas for ShipEngine™
npm install shipengine-json-schema!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.
``javascript
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
-----------------------------------
New to ShipEngine? Download our walkthrough collection instead.