API Docs

Warehouses

scope: locations

Warehouses are the physical locations where your inventory is stored and shipments are fulfilled. Use this endpoint to retrieve the list of warehouse locations available to your organization. Warehouse IDs are referenced when creating shipments and appear in stock level breakdowns.

Where warehouses are referenced

WarehouseShipments(fulfillment location)|Stock Levels(per-warehouse breakdown)

Warehouse IDs appear in shipment creation, shipment responses, and stock level breakdowns. List warehouses first to get valid IDs.

Endpoints

GET
/v0/warehouses

List all active warehouse locations for your organization

Where Warehouses Are Used

Warehouse IDs are required or returned across several parts of the API:

ContextUsage
Creating shipmentsPass warehouseId when creating Pick & Pack or SPD drafts to specify which warehouse fulfills the shipment.
Shipment responsesEvery shipment includes a warehouse object with the ID and name.
Stock level breakdownsBoth product and carton breakdowns include per-warehouse quantities.
SPD submit validationStock checks verify carton availability at the specific warehouse assigned to the shipment.

List Warehouses

Returns a list of all active warehouses available to your organization. Warehouses are managed by the 3PLGuys team — this endpoint is read-only.

Query Parameters

ParameterTypeDescription
skipnumberNumber of records to skip (default: 0)
takenumberNumber of records to return (default: 10, max: 10)
curl
curl "https://api.3plguys.com/v0/warehouses" \
-H "Authorization: Bearer <token>"
Node.js
const res = await fetch("https://api.3plguys.com/v0/warehouses", {
headers: { Authorization: `Bearer ${token}` },
});
const warehouses = await res.json();
Python
res = httpx.get(
"https://api.3plguys.com/v0/warehouses",
headers={"Authorization": f"Bearer {token}"},
)
warehouses = res.json()
Response
[
{
"id": "1",
"name": "3PLGuys",
"description": null,
"address": {
"name": "3PLGuys",
"line1": "14512 Garfield Ave Paramount, CA 90723",
"line2": "",
"district": "",
"city": "Paramount",
"state": "CA",
"countryCode": "US",
"postalCode": "90723"
},
"contact": {
"name": "3PLGUYS",
"email": "info@3plguys.com",
"phoneNumber": "(866) 373-8599",
"fax": ""
},
"tags": []
}
]

Response Fields

ParameterTypeDescription
id*stringUnique warehouse ID (referenced in shipment creation and stock breakdowns)
name*stringHuman-readable warehouse name
description*string | nullOptional warehouse description
address*objectWarehouse address (see address fields below)
address.name*stringDisplay name of the address
address.line1*stringPrimary address line
address.line2*stringSecondary address line
address.district*stringDistrict or sub-region
address.city*stringCity name
address.state*stringState or province code
address.countryCode*stringTwo-letter country code (ISO 3166-1 alpha-2)
address.postalCode*stringPostal code or ZIP code
contact*objectWarehouse contact info (see contact fields below)
contact.name*stringContact person or company name
contact.email*stringContact email address
contact.phoneNumber*stringContact phone number
contact.fax*stringContact fax number
tags*string[]List of tags associated with the warehouse

Example: Create Shipment with Warehouse

First list warehouses to get the ID, then use it when creating a shipment:

1. List warehouses
curl "https://api.3plguys.com/v0/warehouses" \
-H "Authorization: Bearer <token>"
2. Create shipment with warehouse ID
curl -X POST "https://api.3plguys.com/v0/shipments/spd" \
-H "Authorization: Bearer <token>" \
-H "Content-Type: application/json" \
-d '{ "warehouseId": "1" }'

Error Responses

401Unauthorized

Missing or invalid access token. See Authentication.

403Missing required scope: locations

Your OAuth token does not have the locations scope. Request the scope during authorization.

Read-only

Warehouses are managed by the 3PLGuys operations team. If you need a new warehouse location set up or have questions about warehouse capabilities, contact us at developer@3plguys.com.