Core ShipVia API Endpoints
These are the everyday requests teams rely on to sign in, sync shipments, and keep tabs on shipment status.
Authentication
Sign in with ShipVia Web to get the token that keeps the rest of your shipping calls moving.
- POST
/api/v1/auth/loginwith JSONusernameandpassword. - Receive a
sessionTokenready for Authorization headers. - Persist the bearer session token for subsequent shipment calls.
Sync Shipments
Sync shipment details in bulk so ShipVia can easily pull your shipment details and find the best carrier and print labels.
- POST
/api/v1/shipments/syncwith your bearer session token. - Send addresses, package data, and custom attributes exactly as configured in ShipVia Web.
- Receive a normalized payload that echoes ShipVia shipment identifiers and processing state.
Pull Shipment
Grab a single shipment using a location and tracking number to mirror what your teams see in ShipVia.
- POST
/api/v1/shipments/pullwithlocationIdand eithercustomerTrackingNumberormasterTrackingNumber. - Authenticate with
Authorization: Bearer <sessionToken>. - Receive the shipment details ShipVia Web displays, including packages and carrier references.
Shipment Inquiry
Review shipment history by status and date to understand volume, exceptions, and invoice timing.
- POST
/api/v1/shipments/inquirywithstartDate,endDate,status, and optionalpage. - Statuses include
ALL,PARK,VOID, andSHPD. - Use the response to monitor shipping volumes, exceptions, and invoice visibility.
Integration in Five Simple Steps
Walk through the same milestones we coach customers on when moving from a first login to live shipping.
-
01
Request ShipVia Credentials
Reach out to your ShipVia account team so they can turn on API access.
-
02
Call POST /api/v1/auth/login
Log in once with your username and password to receive the bearer token you will reuse in later steps.
-
03
Sync Shipments
Send shipment manifests to
/api/v1/shipments/syncso ShipVia can build labels, routing, and costs. -
04
Pull Shipment Details
Look up a shipment with
/api/v1/shipments/pullwhenever you need the data ShipVia sees. -
05
Run Shipment Inquiry
Use
/api/v1/shipments/inquiryto browse history, filter by status, and keep analytics aligned.
Shipment Sync Blueprint
Choose the mode that matches your freight. Each example shows the core JSON body plus the validation callouts teams ask about most.
POST /api/v1/shipments/sync
Content-Type: application/json
Authorization: Bearer XXXXXXXXXXXXX
[
{
"locationId": 1,
"ltlItems": [
{
"id": "1762713433810",
"pallets": "2",
"pieces": "2",
"unitOfMeasurement": "PCS",
"itemNumber": "1",
"hazardousFlag": false,
"description": "Fasteners",
"nmfcNumber": "3783332",
"class": "50.0",
"weight": "200",
"length": "10",
"width": "12",
"height": "8",
"orderNumber": ""
}
],
"itn": "",
"proNumber": "",
"references": {
"userField1": null,
"userField2": null,
"userField3": null,
"userField4": null,
"userField5": null,
"userField6": null,
"userField7": null,
"userField8": null,
"userField9": null,
"userField10": null
},
"customerPickTicketNumber": "2",
"addresses": {
"shipTo": {
"id": "",
"locationId": 0,
"line1": "1660 W SUNSET BLVD",
"line2": "H6",
"line3": "",
"city": "SAINT GEORGE",
"state": "UT",
"postalCode": "84770",
"country": "US",
"email": "ME@ME.COM",
"phone": "4353637953",
"name": "CUSTOMER",
"company": "",
"type": "SHIPTO"
},
"origin": {
"id": "1",
"line1": "1001 Innovation Road",
"line2": "",
"line3": "",
"city": "Rantoul",
"state": "IL",
"postalCode": "61866",
"country": "US",
"email": "test@rudirock.com",
"phone": "9372481317",
"name": "Shipping",
"company": "RUDIROCK"
}
},
"clientLocationId": "0001"
}
]
LTL Validation Highlights
-
Send at least one
ltlItemsentry with pallet and piece counts, NMFC number, freight class, weight, and dimensions. -
Use
locationIdandclientLocationIdto anchor the shipment to the correct facility. -
Provide complete postal and contact details for
addresses.shipToandaddresses.origin. -
Requests fail when required address data or
ltlItemsvalues are missing because the API treats them as mandatory.
- Required arrays
ltlItems[]with at least one pallet record- Freight classification
- Include
nmfcNumberandclasswhen applicable - Useful extras
referencesfields acceptnullwhen you do not have custom data
POST /api/v1/shipments/sync
Content-Type: application/json
Authorization: Bearer XXXXXXXXXXXXX
[
{
"customerPickTicketNumber": "1",
"locationId": 1,
"clientLocationId": "0001",
"addresses": {
"shipTo": {
"id": "",
"locationId": 0,
"line1": "820 E CHADDS FORD LN",
"line2": "APT 11",
"line3": "",
"city": "MIDVALE",
"state": "UT",
"postalCode": "84047",
"country": "US",
"email": "DEV@SHIP-VIA.COM",
"phone": "8015204510",
"name": "DEVELOPER",
"company": "SHIPVIA",
"type": "SHIPTO"
},
"origin": {
"id": "1",
"line1": "1001 Innovation Road",
"line2": "",
"line3": "",
"city": "Rantoul",
"state": "IL",
"postalCode": "61866",
"country": "US",
"email": "test@rudirock.com",
"phone": "9372481317",
"name": "Shipping",
"company": "RUDIROCK"
}
},
"packages": [
{
"id": 1,
"orderCount": 1,
"orderNumber": "",
"itn": "",
"customerTrackingNumber": "1",
"carrierTrackingNumber": "",
"label": "",
"references": {
"userField1": null,
"userField2": null,
"userField3": null,
"userField4": null,
"userField5": null
},
"poNumber": "",
"weight": {
"value": 4,
"unit": "pounds"
},
"dimensions": {
"unit": "inches",
"length": 2,
"width": 2,
"height": 2
},
"accessorials": {
"BillingType": "1",
"PackagingType": "02"
}
}
],
"itn": ""
}
]
Small Parcel Validation Highlights
-
Every package object carries
weight.valueandweight.unit, plusdimensionsto inform carton-level rating. -
Capture both your internal
customerTrackingNumberand the carrier-provided tracking number when it becomes available. -
accessorialssuch as billing and packaging codes flow directly into the label request. -
Requests fail if the
packagesarray is empty or a package omits required weight data.
- Required arrays
packages[]with at least one parcel- Recommended extras
- Contact email and phone on both addresses for delivery alerts
- Typical errors
- Missing weight units, empty package list, or invalid accessorial code
POST /api/v1/shipments/sync
Content-Type: application/json
Authorization: Bearer XXXXXXXXXXXXX
[
{
"customerPickTicketNumber": "",
"locationId": 1,
"clientLocationId": "0001",
"addresses": {
"shipTo": {
"id": "",
"locationId": 1,
"line1": "50 BAY STREET",
"line2": "SUITE 500",
"line3": "",
"city": "TORONTO",
"state": "ON",
"postalCode": "M5J2L2",
"country": "CA",
"email": "",
"phone": "1234567890",
"name": "RECEIVING",
"company": "TORONTO MAPLE LEAFS",
"type": "SHIPTO"
},
"origin": {
"id": "1",
"line1": "1001 Innovation Road",
"line2": "",
"line3": "",
"city": "Rantoul",
"state": "IL",
"postalCode": "61866",
"country": "US",
"email": "test@rudirock.com",
"phone": "9372481317",
"name": "Shipping",
"company": "RUDIROCK"
}
},
"packages": [
{
"id": 1,
"orderCount": 1,
"orderNumber": "",
"itn": "",
"customerTrackingNumber": "",
"carrierTrackingNumber": "",
"label": "",
"references": {
"userField1": null,
"userField2": null,
"userField3": null,
"userField4": null,
"userField5": null
},
"poNumber": "",
"weight": {
"value": 1,
"unit": "pounds"
},
"dimensions": {
"unit": "inches",
"length": 2,
"width": 2,
"height": 2
},
"accessorials": {},
}
],
"intlItems": [
{
"id": "1762714525298",
"declaredValue": "45",
"descr": "Fasteners",
"itemCode": "123",
"itemNumber": "",
"lineNumber": 1,
"producerCountryCode": "US",
"qty": "3",
"unitValue": "15",
"uom": "",
"weight": 0.46,
"dims": null,
"references": {
"userField1": null,
"userField2": null,
"userField3": null,
"userField4": null,
"userField5": null
}
}
],
"itn": "",
"proNumber": "",
"references": {
"userField1": null,
"userField2": null,
"userField3": null,
"userField4": null,
"userField5": null
},
"accessorials": {
"B13Type": "1",
"BillingType": "1",
"CurrencyType": "USD",
"DutyPayType": "2",
"PackagingType": "1"
}
}
]
International Validation Highlights
-
Pair each package in
packageswith matching customs data inintlItems, including declared value, unit value, and country of origin. -
Use
accessorialsto set duty billing, packaging type, and currency handling for cross-border paperwork. -
Requests fail if required customs fields like
producerCountryCodeordeclaredValueare missing.
- Required arrays
packages[]andintlItems[]with synchronized line numbers- Typical errors
- Missing customs valuation data or misaligned quantity and weight totals
Ready to move faster with ShipVia?
Connect to ShipVia's production API in minutes and start moving packages with confidence.