Skip to main content
Nash uses HTTP response status codes to indicate the success or failure of your API requests. If your request fails, Nash returns an error using the appropriate status code. In general, there are three status code ranges you can expect:
  • 2xx success status codes confirm that your request worked as expected
  • 4xx error status codes indicate an error because of the information provided (for example, a required parameter was missing)
  • 5xx error status codes are rare and indicate an error on Nash’s end
Example of a failed request:
{
	"error": {
		"code": "MISSING_RESOURCE",
		"message": "job 'job_123' does not exist"
	},
	"response_status": "404 NOT_FOUND",
	"RequestID": "d97e3f4d-114d-4b77-ae47-9e10c5151424"
}
Please include the RequestID when contacting support@usenash.com so we can help you faster.

Possible error codes

BAD_REQUEST

The request failed, often due to missing a required parameter or malformed input field. Example:
{
	"error": {
		"code": "BAD_REQUEST",
		"message": "'pickupAddress' is a required property"
	},
	"response_status": "400 BAD_REQUEST",
	"RequestID": "1-62057334-011d10e02c0f2ad839cf0a26"
}
Solution: include pickupAddress field. Another example:
{
	"error": {
		"code": "BAD_REQUEST",
		"message": "quote_id qot_abc has expired"
	},
	"response_status": "400 BAD_REQUEST",
	"RequestID": "1-62057334-41a43ef8a6d4f58a71e09ad2"
}
Solution: refresh quotes and try again.

UNAUTHORIZED

Invalid or missing API key. Example:
{
	"error": {
		"code": "UNAUTHORIZED",
		"message": "Authorization token is missing"
	},
	"response_status": "401 UNAUTHORIZED",
	"RequestID": "1-62057941-67a549bb5faa77236a03ef8d"
}

FORBIDDEN

Provided API key does not have access to the requested resource/action. Example:
{
	"error": {
		"code": "FORBIDDEN",
		"message": "job_id 'job_Y8B5CWhvN9G8odcfAiqd29' is not owned by ''"
	},
	"response_status": "403 FORBIDDEN",
	"RequestID": "1-620579a6-7ef612c414f3b59c1e74ffbb"
}

INVALID_ADDRESS

Provided address in either pickupAddress or dropoffAddress is missing, invalid, or couldn’t be parsed. Example:
{
	"error": {
		"code": "INVALID_ADDRESS",
		"message": "Failed to parse provided address 'bad_address'"
	},
	"response_status": "400 BAD_REQUEST",
	"RequestID": "1-620572c5-1c8927c37edbd37173140be3"
}

INVALID_PHONE_NUMBER

Provided phone number in either pickupPhoneNumber or dropoffPhoneNumber is missing, invalid, or couldn’t be parsed. Provided phone numbers are expected to be in E.164 format. Example:
{
	"error": {
		"code": "INVALID_PHONE_NUMBER",
		"message": "Provided US phone-number '+1111111' is invalid"
	},
	"response_status": "400 BAD_REQUEST",
	"RequestID": "1-62057a15-2d3444806b950c514da305be"
}

RESOURCE_ALREADY_EXISTS

Provided externalIdentifier has already been used for another job. Example:
{
	"error": {
		"code": "RESOURCE_ALREADY_EXISTS",
		"message": "Provided external identifier: '123' was used in a previous job"
	},
	"response_status": "400 BAD_REQUEST",
	"RequestID": "1-62057a2b-17e8db5600cd5da143e75a95"
}

MISSING_RESOURCE

A referenced job, task, or Dispatch Strategy (internally options_group) cannot be found. Example:
{
	"error": {
		"code": "MISSING_RESOURCE",
		"message": "job 'job_123' does not exist"
	},
	"response_status": "404 NOT_FOUND",
	"RequestID": "1-62057a4a-1833f34338a256b23d8fe9de"
}

INVALID_TIME_CONSTRAINT

Provided packagePickupStartTime, packagePickupEndTime, packageDropoffStartTime, packageDropoffEndTime are invalid (e.g. dropoff time window is before pickup time window). Example:
{
  "error": {
    "code": "INVALID_TIME_CONSTRAINT",
    "message": "Pickup time cannot be in the past"
  },
  "response_status": "400 BAD_REQUEST",
  "RequestID": "1-62057a5f-206feee76c4da88d0d599fb5"
}

DISALLOWED_OPERATION

An API operation was attempted but was disallowed, e.g., updating a job after completion.
{
  "error": {
    "code": "DISALLOWED_OPERATION",
    "message": "Job updates are not allowed when at least 1 task is completed. Task statuses are ['completed']"
  },
  "response_status":"400 BAD_REQUEST",
  "RequestID": "1-62057a5f-206feee76c4da88d0d593455"
}

AUTODISPATCH_FAILURE

Auto-dispatch failed due to no valid quotes.
{
  "error": {
    "code": "AUTODISPATCH_FAILURE",
    "message": "job_123: Failed auto-dispatch (preferred_order): No provider satisfied requirements: No valid quotes found, error_code=NO_VALID_QUOTES, error_code=AUTODISPATCH_FAILURE"
  },
  "response_status": "400 BAD_REQUEST",
  "RequestID": "e5dc2885-606c-4de2-84cb-6da6b495eda1"
}

INTERNAL_SERVER_ERROR

Something went wrong on Nash’s end. (These are rare.) Example:
{
  "error": {
    "code": "INTERNAL_SERVER_ERROR",
    "message": "The server encountered an error and was unable to complete the request"
  },
  "response_status": "500 INTERNAL_SERVER_ERROR",
  "RequestID": "e5dc2885-606c-4de2-84cb-6da6b495eda1"
}

List of possible HTTP response statuses

response_statusDescription
200 OKEverything worked as expected.
400 BAD_REQUESTThe request was unacceptable, often due to missing a required parameter.
See error.code for more details
401 UNAUTHORIZEDInvalid or missing API key.
403 FORBIDDENThe API key doesn’t have permissions to perform the request.
404 NOT_FOUNDThe requested resource doesn’t exist.
429 TOO_MANY_REQUESTSToo many requests hit the API too quickly.
500 INTERNAL_SERVER_ERRORSomething went wrong on Nash’s end.