An easy to use and well tested interface for interacting with UPS api.
npm install ups-shipping-apiThis is an unofficial node.js package that makes interacting with the UPS api easy. Uses the UPS json endpoints.
js
const UPS = require('ups-shipping-api');
const ups = new UPS({
access_key : "an_access_key",
username : "a_user_name",
password : "a_password"
})var promise_rates = ups.retreive_rates(shipment);
`You can create a access_key, username, and password at the UPS Api website.
Example
`js
var test_shipment = {
shipper : {
address : {
country_code : "US",
postal_code : 42512,
},
},
ship_to : {
address : {
country_code : "US",
postal_code : 42512,
},
},
package : {
weight : 21, // the weight of the package
dimensions : {
length : 2,
width : 2,
height : 2,
}
}
}
var rates = await ups.retreive_rates(test_shipment);
`Methods
$3
`js
var promise_rates = ups.retreive_rates(shipment);
`Objects and Properties
The api uses several objects (e.g., shipment, package, etc) throughout. Their definitions with required and optional properties are below.$3
`js
{
// mandatory
access_key: STRING,
username: STRING,
password: STRING, // optional
live : BOOLEAN, // defaults to false; runs requests in UPS sandbox mode
unit_system : STRING, // select from ["imperial", "metric"]; defaults to "imperial";
}
`$3
`js
{
shipper : ENDPOINT, // the person the shipment is from
ship_to : ENDPOINT, // the person the shipment is for
package: PACKAGE // the package you are sending
}
`$3
`js
{
// mandatory
address : ADDRESS, // optional
name : STRING, // UPS uses up to 36 char
shipper_number : STRING, // required for negotiated rates
}
`$3
`js
{
// mandatory
weight: STRING/FLOAT,
dimensions: {
length: STRING/FLOAT,
width: STRING/FLOAT,
height: STRING/FLOAT,
}
}
`$3
`js
{
// mandatory
country_code : STRING, // select from ["US", ...(TODO)]
postal_code : STRING/INT, // optional
lines : [ // a list of address lines
STRING, ...
],
city : STRING,
state : STRING,
province : STRING,
}
`$3
`js
{
// mandatory
weight : STRING/FLOAT, // the weight of the package
dimensions : {
length : STRING/FLOAT,
width : STRING/FLOAT,
height : STRING/FLOAT,
}
}
``