Nash
Authentication Type: API Key
Description: Nash (usenash.com) is a delivery orchestration platform that connects your business to courier networks for last-mile delivery. Nash exposes two complementary resource types — orders and jobs — that represent different stages of the delivery lifecycle. Manage delivery requests, track courier status in real time, dispatch automatically, and integrate using your own external identifiers for idempotent workflows.
Orders vs. Jobs: An order represents pre-dispatch delivery details — the pickup/dropoff locations, timing, and quotes from courier providers. When an order is confirmed and dispatched, Nash creates a job that tracks the live delivery. Job responses contain the delivery status under tasks[].deliveries[].status. You can work with orders through the /v1/order and /v1/orders API endpoints, and with jobs through /v1/jobs.
Authentication
To authenticate, you need a Nash API key:
- Log in to your Nash dashboard
- Navigate to Settings → API Keys and generate a key
- Provide it as the
apiKeycredential field when connecting Nash in Cotera
Your key is sent as a Bearer token on every request:
Authorization: Bearer <your-api-key>
Optional — Organization ID (orgId): If your account belongs to multiple Nash organizations, provide the orgId credential field. Nash passes it as the Nash-Org-Id header to scope requests to the correct organization. Leave blank for single-org accounts.
Optional — Base URL (baseUrl): Nash provides four API environments:
| Environment | Base URL |
|---|---|
| Production (default) | https://api.usenash.com |
| Sandbox | https://api.sandbox.usenash.com |
| Production (Australia) | https://api.ap-southeast-2.usenash.com |
| Sandbox (Australia) | https://api.sandbox.ap-southeast-2.usenash.com |
Set baseUrl to switch environments. If omitted, requests go to Production.
Orders
A Nash order represents a delivery request before it is dispatched — it holds pickup/dropoff details, timing, courier quotes, and configuration. When an order is confirmed and autodispatched, Nash creates a job to track the live delivery.
Use these tools to manage the full order lifecycle: create orders, fetch quotes, confirm, dispatch, and archive.
List Orders
List Nash orders with optional filters and pagination.
Operation Type: Query (Read)
Parameters:
- limit
number(nullable): Max orders to return (default 25, max 100). - offset
number(nullable): Pagination offset. - sortBy
string(nullable): Field to sort by (e.g.created_at). - sortDirection
string(nullable): Sort direction:ASCorDESC. - startDate
string(nullable): Filter orders created after this ISO 8601 datetime. - endDate
string(nullable): Filter orders created before this ISO 8601 datetime. - deliveryStatuses
string(nullable): Comma-separated delivery statuses to filter by. - search
string(nullable): Free-text search across orders.
Returns:
- orders
array: Array of order summary objects. - total
number(nullable): Total count of matching orders.
Example Usage:
{
"limit": 50,
"deliveryStatuses": "pending,confirmed",
"startDate": "2024-01-01T00:00:00Z"
}
Get Order
Retrieve a Nash order by its ID, including delivery details and current status.
Operation Type: Query (Read)
Parameters:
- id
string(required): Nash order ID.
Returns:
- order
object: Full order payload with pickup/dropoff details, quotes, and status.
Example Usage:
{
"id": "order_abc123"
}
Create Order
Create a new Nash order with pickup and dropoff details.
Operation Type: Mutation (Write)
Parameters:
- orderData
object(required): Order creation payload. Must include pickup/dropoff location details, contact information, and pickup/dropoff times. See the Nash API reference for the full schema.
Returns:
- order
object: The created order with ID, status, and available quotes.
Example Usage:
{
"orderData": {
"pickup": {
"name": "Warehouse A",
"address": "123 Main St",
"city": "San Francisco",
"state": "CA",
"zip": "94105",
"country": "US",
"phone": "+14155550001"
},
"dropoff": {
"name": "Customer",
"address": "456 Market St",
"city": "San Francisco",
"state": "CA",
"zip": "94102",
"country": "US",
"phone": "+14155550002"
},
"pickup_time": "2024-07-24T14:00:00Z",
"dropoff_time": "2024-07-24T16:00:00Z"
}
}
Update Order
Update an existing Nash order by ID (pickup/dropoff times, addresses, metadata).
Operation Type: Mutation (Write)
Parameters:
- id
string(required): Nash order ID to update. - updateData
object(required): Partial update fields — pickup/dropoff times, addresses, metadata, etc.
Returns:
- order
object: The updated order object.
Archive Order
Archive a Nash order by its ID. Archived orders are soft-deleted and no longer active.
Operation Type: Mutation (Write)
Parameters:
- id
string(required): Nash order ID to archive.
Returns:
- order
object: The archived order.
Unarchive Order
Unarchive a previously archived Nash order, making it active again.
Operation Type: Mutation (Write)
Parameters:
- id
string(required): Nash order ID to unarchive.
Returns:
- order
object: The unarchived order with updated status.
Confirm Order
Confirm a Nash order by its ID, locking in the delivery details.
Operation Type: Mutation (Write)
Parameters:
- id
string(required): Nash order ID to confirm.
Returns:
- order
object: The confirmed order.
Autodispatch Order
Automatically dispatch a Nash order using the organization's configured dispatch strategy.
Operation Type: Mutation (Write)
Parameters:
- id
string(required): Nash order ID to autodispatch.
Returns:
- order
object: The dispatched order with selected provider and accepted quote.
Get Order Quotes
Fetch available courier quotes for a delivery request without committing to a delivery. Use this to compare providers and pricing before creating or confirming an order.
Operation Type: Mutation (Write)
Parameters:
- quoteRequest
object(required): Quote request payload including pickup/dropoff details. See the Nash API reference for the full schema.
Returns:
- quotes
object: Available courier quotes with pricing and estimated delivery times.
Refresh Order Quotes
Refresh the available courier quotes for an existing Nash order to get updated pricing and availability.
Operation Type: Mutation (Write)
Parameters:
- refreshRequest
object(required): Refresh quotes request payload. See the Nash API reference for the full schema.
Returns:
- result
object: Updated quotes for the order.
Get Order Documents
Retrieve documents associated with a Nash order, such as proof of delivery or shipping labels.
Operation Type: Query (Read)
Parameters:
- id
string(required): Nash order ID to retrieve documents for.
Returns:
- documents
object: Documents associated with the order.
Upsert Order By External ID
Create or update a Nash order using your own external identifier (idempotent create-or-update).
Operation Type: Mutation (Write)
Parameters:
- externalId
string(required): Your external order identifier. If an order with this ID exists it will be updated; otherwise a new order is created. - orderData
object(required): Order payload (same schema as Create Order). Includeautodispatch: trueto dispatch immediately after creation/update.
Returns:
- order
object: The created or updated order.
Jobs
A Nash job represents an active delivery — it is created when an order is confirmed and dispatched. Jobs contain one or more tasks (pickup + dropoff pairs), quotes from courier providers, and the selected delivery. Use these tools to monitor and manage the full delivery lifecycle after dispatch.
Delivery status is nested inside the job response (under tasks[].deliveries[].status). There is no separate status endpoint; use Get Job or Refresh Job to poll the current delivery status.
List Jobs
List Nash delivery jobs with optional filters and pagination.
Operation Type: Query (Read)
Parameters:
- limit
number(nullable): Max jobs to return (default 25, max 100). - offset
number(nullable): Pagination offset. - sortBy
string(nullable): Field to sort by (e.g.created_at). - sortDirection
string(nullable): Sort direction:ASCorDESC. - startDate
string(nullable): Filter jobs created after this ISO 8601 datetime. - endDate
string(nullable): Filter jobs created before this ISO 8601 datetime. - deliveryStatuses
string(nullable): Comma-separated delivery statuses to filter by. - search
string(nullable): Free-text search across jobs.
Returns:
- jobs
array: Array of job summary objects. - total
number(nullable): Total count of matching jobs.
Example Usage:
{
"limit": 50,
"deliveryStatuses": "pending,in_progress",
"startDate": "2024-01-01T00:00:00Z"
}
Get Job
Retrieve a Nash delivery job by its ID, including tasks, deliveries, quotes, and current delivery status.
Operation Type: Query (Read)
Parameters:
- id
string(required): Nash job ID. - compressedPayload
boolean(nullable): Whentrue, excludes quotes arrays to reduce response size.
Returns:
- job
object: Full job payload with tasks, deliveries, quotes, and configuration. Delivery status is attasks[].deliveries[].status.
Example Usage:
{
"id": "job_abc123",
"compressedPayload": true
}
Create Job
Create a new Nash delivery job with pickup and dropoff details.
Operation Type: Mutation (Write)
Parameters:
- jobData
object(required): Job creation payload. Must include pickup/dropoff location details, contact information, and pickup/dropoff times. See the Nash API reference for the full schema.
Returns:
- job
object: The created job with ID, status, quotes, and tasks.
Example Usage:
{
"jobData": {
"pickup": {
"name": "Warehouse A",
"address": "123 Main St",
"city": "San Francisco",
"state": "CA",
"zip": "94105",
"country": "US",
"phone": "+14155550001"
},
"dropoff": {
"name": "Customer",
"address": "456 Market St",
"city": "San Francisco",
"state": "CA",
"zip": "94102",
"country": "US",
"phone": "+14155550002"
},
"pickup_time": "2024-07-24T14:00:00Z",
"dropoff_time": "2024-07-24T16:00:00Z"
}
}
Update Job
Update an existing Nash delivery job by ID (pickup/dropoff times, addresses, metadata).
Operation Type: Mutation (Write)
Parameters:
- id
string(required): Nash job ID to update. - updateData
object(required): Partial update fields — pickup/dropoff times, addresses, metadata, etc.
Returns:
- job
object: The updated job object.
Cancel Job
Cancel an active Nash delivery job and its associated deliveries.
Operation Type: Mutation (Write)
Parameters:
- id
string(required): Nash job ID to cancel.
Returns:
- job
object: The cancelled job with updated status.
Autodispatch Job
Automatically dispatch a Nash delivery job using the organization's configured dispatch strategy.
Operation Type: Mutation (Write)
Parameters:
- id
string(required): Nash job ID to autodispatch.
Returns:
- job
object: The dispatched job with selected provider and accepted quote.
Refresh Job
Refresh a Nash job status by fetching the latest information from the delivery provider.
Operation Type: Mutation (Write)
Parameters:
- id
string(required): Nash job ID to refresh.
Returns:
- job
object: The job with the latest courier/delivery status synced from the provider.
Jobs by External Identifier
These tools let you manage jobs using your own external IDs instead of Nash-assigned IDs. This enables idempotent create-or-update workflows keyed to your order system.
Get Job By External ID
Retrieve a Nash delivery job using your own external identifier.
Operation Type: Query (Read)
Parameters:
- externalIdentifier
string(required): Your external order/job identifier as stored in Nash.
Returns:
- job
object: Full job payload.
Upsert Job By External ID
Create or update a Nash delivery job using your own external identifier (idempotent create-or-update).
Operation Type: Mutation (Write)
Parameters:
- externalIdentifier
string(required): Your external order/job identifier. If a job with this ID exists it will be updated; otherwise a new job is created. - jobData
object(required): Job payload (same schema as Create Job). Includeautodispatch: trueto dispatch immediately after creation/update.
Returns:
- job
object: The created or updated job.
Cancel Job By External ID
Cancel a Nash delivery job identified by your own external identifier.
Operation Type: Mutation (Write)
Parameters:
- externalIdentifier
string(required): Your external order/job identifier for the job to cancel.
Returns:
- job
object: The cancelled job with updated status.
Autodispatch Job By External ID
Automatically dispatch a Nash delivery job identified by your own external identifier.
Operation Type: Mutation (Write)
Parameters:
- externalIdentifier
string(required): Your external order/job identifier for the job to autodispatch.
Returns:
- job
object: The autodispatched job with provider assigned.
Common Use Cases
Order-First Delivery Workflow:
- Fetch quotes with Get Order Quotes to compare providers before committing
- Create an order with Create Order or use Upsert Order By External ID (idempotent — safe to retry) to key the order to your own identifier
- Confirm the order with Confirm Order, then dispatch with Autodispatch Order
- Once dispatched, Nash creates a job — use List Jobs or Get Job to track the live delivery status
Job-Based Delivery Workflow:
- Create a job directly with Upsert Job By External ID (idempotent — safe to retry)
- Autodispatch immediately by including
autodispatch: truein the job payload, or call Autodispatch Job as a separate step - Poll delivery status with Get Job or trigger a live sync with Refresh Job
Status Monitoring:
- Use List Orders or List Jobs to find records by date range and delivery status for batch monitoring
- Call Get Job on specific IDs and inspect
tasks[].deliveries[].statusfor current courier status - Delivery status is always embedded in the job response — use Refresh Job to sync with the courier's latest state
Cancellations:
- Cancel a job by Nash job ID with Cancel Job
- Cancel by your own order ID with Cancel Job By External ID — no need to look up the Nash ID first
Documents:
- Retrieve proof of delivery and shipping labels with Get Order Documents