Skip to main content
The ShipPeek API uses standard HTTP status codes and returns structured error responses.

HTTP status codes

CodeMeaning
200Success
400Bad request — check your request body or parameters
401Unauthorized — invalid or missing API token
402Payment required — no active subscription
403Forbidden — token lacks permission
404Not found — resource does not exist
429Too many requests — rate limit exceeded
500Server error — something went wrong on our end

Error response format

All errors follow a consistent structure:
{
  "name": "VALIDATION_ERROR",
  "requestId": "req_abc123",
  "message": "originPostalCode is required"
}
FieldDescription
nameError type identifier
requestIdUnique ID for this request (useful for support)
messageHuman-readable description

Carrier-level errors in rate responses

Rate requests return 200 even when individual carriers fail. Check the status field on each rate:
{
  "id": "29283116d0bfce4472947274",
  "rates": [
    {
      "id": "rate_success",
      "status": "ok",
      "total": 123.45,
      "carrier": "Estes Express Lines",
      "carrierCode": "exla"
    },
    {
      "id": "rate_failed",
      "status": "error",
      "error": "Service not available for this lane",
      "carrier": "Saia LTL Freight",
      "carrierCode": "saia"
    }
  ]
}
Rates with "status": "error" include an error field with the carrier’s message. Other carriers in the same response may still return valid rates.

Common error scenarios

Missing required fields

{
  "name": "VALIDATION_ERROR",
  "message": "items is required"
}
Ensure your request includes all required fields. See the API Reference for required fields per endpoint.

Invalid freight class

Only standard NMFC freight classes are accepted. See Freight classes for the full list.

Carrier not configured

{
  "error": "Carrier dohr not found or not configured for this API key"
}
The carrier exists but is not enabled for your account. Contact support to add carriers.