Skip to main content

Appendix

Units

Quick Reference

MeasurementUnit/Format
CurrencyUSD cents
Distancemeters
Durationseconds
Mass/Weightkilograms
Manifest Dimensionscentimeters
TimeISO 8601

Prices in Minor Units

All fees and prices are returned in minor units.

Currently Curri quotes all fees and prices in USD cents.

Measurements in SI

Curri uses SI metric units for all measurements.

Date/Time in ISO 8601

All dates/times formatted in simplified extended ISO format (ISO 8601).

GraphQL Types

The following are GraphQL types that our various API operations return.

Native GraphQL Types

Please see Apollo's documentation on supported GraphQL types.

JSONObject Type

The JSONObject scalar type represents JSON objects as specified by ECMA-404.

Custom Scalar Types

The following custom scalar types all handle number and string inputs. Numbers are coerced to string values for operations.

  • IDCustomScalar
  • PostalCodeCustomScalar
  • StringOrNumberCustomScalar

Address

The Address type is used to provide information about a physical address.

Fields

  • addressLine1 (String!): A required string for the first address line.
  • addressLine2 (String): An optional string for the second address line.
  • city (String!): A required string for the city.
  • id (IDCustomScalar!): An object containing the unique identifier for the address.
  • latitude (String): An optional string for the latitude of the address.
  • longitude (String): An optional string for the longitude of the address.
  • name (String): An optional string for the name associated with the address.
  • placeId (String): An optional string for the place ID associated with the address.
  • postalCode (String!): A required string for the postal code.
  • state (String!): A required string for the state.
  • zipCodeData (ZipCode!): An object containing the details of the zip code associated with the address.

AddressInput

The AddressInput type is used to represent an address in GraphQL input.

Fields

  • addressLine1 (String!): A required string for the street address of the address.
  • addressLine2 (String): An optional string for the additional street address of the address.
  • city (String): An optional string for the city of the address.
  • id (IDCustomScalar): An optional custom scalar ID for the address.
  • latitude (StringOrNumberCustomScalar): An optional custom scalar for the latitude of the address.
  • longitude (StringOrNumberCustomScalar): An optional custom scalar for the longitude of the address.
  • name (String): An optional string for the name associated with the address.
  • postalCode (PostalCodeCustomScalar!): A required custom scalar for the postal code of the address.
  • state (String!): A required string for the state of the address.

Delivery

See our documentation on booking a delivery.

DeliveryAttachment

The DeliveryAttachment type is used to represent attachments associated with a delivery, including their filename, ID, and URL.

Fields

  • filename (String): The name of the attachment file.
  • id (IDCustomScalar): The custom scalar ID associated with the delivery attachment.
  • isDeleted (Boolean): Indicates if the delivery attachment has been deleted.
  • url (String): The URL where the delivery attachment file can be accessed.

DeliveryAttachmentInput

The DeliveryAttachmentInput type is used to provide input parameters for a delivery attachment. It includes the filename and URL of the attachment.

Fields

  • filename (String): The name of the attachment file. This is an optional field.
  • url (String): The URL where the attachment file is located. This is an optional field.

DeliveryContact

The DeliveryContact type is used to represent the contact information associated with a delivery, including company, email address, name, and phone number details.

Fields

  • company (String): The name of the company associated with the delivery contact.
  • emailAddress (String): The email address of the delivery contact.
  • name (String): The full name of the delivery contact.
  • phoneNumber (String): The phone number of the delivery contact in a human-readable format.

DeliveryContactInput

The DeliveryContactInput type is used to provide input parameters for delivery contact information, such as company, email address, name, and phone number.

Fields

  • company (String): The company associated with the delivery contact. This is an optional field.
  • emailAddress (String): The email address of the delivery contact. This is an optional field.
  • name (String): The name of the delivery contact. This is an optional field.
  • phoneNumber (String): The phone number of the delivery contact. This is an optional field.

DeliveryImage

The DeliveryImage type is used to represent images associated with a delivery, including their creation time, location, and other details.

Fields

  • createdAt (DateTimeCustomScalar): The date and time when the delivery image was created.
  • id (IDCustomScalar): The custom scalar ID associated with the delivery image.
  • latitude (String): The latitude of the location where the image was taken.
  • longitude (String): The longitude of the location where the image was taken.
  • photoType (String): The type of the delivery image (e.g., signature, damage, etc.).
  • uploadedBy (String): The identifier of the user who uploaded the delivery image.
  • url (String): The URL where the delivery image can be accessed.

DeliveryMeta

The DeliveryMeta type is used to represent metadata associated with a delivery, such as order numbers, notes, and custom address lines.

Fields

  • bolNumber (String): The bill of lading number associated with the delivery.
  • customerData (JSONObject): A JSON object containing additional customer data related to the delivery.
  • destinationCustomAddressLine2 (String): An additional custom address line for the delivery destination.
  • driverRequestNote (String): A note for the driver regarding the delivery request.
  • dropoffNote (String): A note for the dropoff contact or location.
  • manifestItems ([ManifestItem]): An array of manifest items associated with the delivery.
  • orderNumber (String): The order number associated with the delivery.
  • originCustomAddressLine2 (String): An additional custom address line for the delivery origin.
  • pickupNote (String): A note for the pickup contact or location.
  • poNumber (String): The purchase order number associated with the delivery.

DeliveryMetaInput

The DeliveryMetaInput type is used to provide input parameters for additional delivery metadata, such as bill of lading number, customer data, customer note, custom address lines, dropoff note, order number, pickup note, and purchase order number.

Fields

  • bolNumber (String): The bill of lading number associated with the delivery. This is an optional field.
  • customerData (JSONObject): A JSON object containing additional customer data related to the delivery. This is an optional field.
  • destinationCustomAddressLine2 (String): A custom second address line for the destination address. This is an optional field.
  • dropoffNote (String): A note provided for the dropoff location of the delivery. This is an optional field.
  • orderNumber (String): The order number associated with the delivery. This is an optional field.
  • originCustomAddressLine2 (String): A custom second address line for the origin address. This is an optional field.
  • pickupNote (String): A note provided for the pickup location of the delivery. This is an optional field.
  • poNumber (String): The purchase order number associated with the delivery. This is an optional field.

deliveryMethod

The deliveryMethod type is an enumerated string with with the potential values:

ValueDescription
carCar
suvSUV
truckPickup Truck
truck-with-pipe-rackRack Vehicle
cargo-vanCargo Van
cargo-van-high-roofSprinter Van
box-truckBox Truck
box-truck-with-liftgateBox Truck with Liftgate
flatbed20' Open Deck
freight-hotshot-trailer20'-40' Hotshot Trailer
freight-flatbed48'-53' Flatbed
freight-dry-vanDry Van
recommendRecommend a Delivery Method

Recommendations

You can use recommend as a delivery method as an input parameter to get a suggested method from us.

Our APIs will never return recommend as the method type.

DeliveryQuote

See our documentation on obtaining quotes.

DeliveryRequirements

The DeliveryRequirements type is used to specify loading and unloading requirements.

It is composed of the following fields:

  • loadUnloadRequired (Boolean): A boolean value indicating if loading and unloading are both required.

DeliveryStatus

The DeliveryStatus type is used to represent the status of a delivery, including its code, description, and associated details.

Fields

  • code (String): A string representing the delivery status code. See below.
  • description (String): A full-text description of the delivery status. See below.
  • name (String): A friendly short name for the delivery status code.

While not explicitly enumerated, DeliveryStatus.code and DeliveryStatus.description can be one of the following value pairs:

StatusDescription
pendingAwaiting match with courier
awaiting_quoteAwaiting quote from Curri sales
holdingDelivery held by driver
deliveredSuccessful delivery
canceledDelivery was canceled prior to arrival at destination
scheduledScheduled for a future date and time
testTest delivery likely placed by an internal Curri user
quote_declinedQuote was declined
assigned_awaiting_fulfillmentA driver has been assigned this delivery, but is finalizing another delivery
quote_givenQuote has been given to customer
quote_expiredCustomer has not responded to quote
en_route_to_originDriver is en route to pickup the items
at_originDriver has arrived to origin to secure payload
en_route_to_destinationDriver is en route to destination
at_destinationDriver has arrived to destination

Driver

The Driver type is used to represent information about a driver, including their name, vehicle, location, and contact details. This type implements the ExternalIDProvider interface.

Fields

  • activeVehicle (DriverVehicle): The vehicle currently being used by the driver.
  • firstName (String): The first name of the driver.
  • id (IDCustomScalar): A unique identifier for the driver.
  • lastKnownLocation (DriverLocation): The most recent location data for the driver.
  • lastName (String): The last initial of the driver. This field returns the full last name only if the user is a Curri Admin or Driver.
  • phoneNumber (String): The driver's phone number. If queried by a customer, this field is only visible if the driver is actively on the delivery.
  • profileImageUrl (String): The URL of the driver's profile image.

Implements

ExternalIDProvider returns an IDCustomScalar.

DriverLocation

The DriverLocation type is used to represent the most recent location information of a driver.

Fields

  • heading (Float): The heading direction of the driver.
  • speed (Float): The speed at which the driver is moving.
  • updatedAt (DateTimeCustomScalar): The date and time when the driver's location information was last updated.
  • zipCode (Int): The postal code (ZIP code) of the driver's current location.

DriverVehicle

A summary of the driver's vehicle information.

Fields

  • color (String): The color of the vehicle..
  • make (String): The make of the vehicle.
  • model (String): The model of the vehicle.
  • trim (String): The trim level of the vehicle.
  • year (Int): The manufacturing year of the vehicle.

FeeComparison

FeeComparison type is used to compare delivery fees for different delivery methods.

Fields

  • rush (Int): The fee associated with a rush delivery.
  • sameday (Int): The fee associated with a same-day delivery.
  • scheduled (Int): The fee associated with a scheduled delivery.

LocationPinpoint

The LocationPinpoint type is used to represent a geolocation in GraphQL

Fields

  • latitude (String!): A required string for the latitude.
  • longitude (String!): A required string for the longitude.

LocationPinpointInput

The LocationPinpointInput type is used to represent a geolocation in GraphQL input

Fields

  • latitude (String!): A required string for the latitude.
  • longitude (String!): A required string for the longitude.

ManifestItem

Note

For the manifest items, please see unit definitions.

The ManifestItem type is used to represent individual items in a delivery manifest, including their dimensions, weight, and other details.

Fields

  • createdAt (DateTimeCustomScalar): The date and time when the manifest item was created.
  • deliveryId (IDCustomScalar): The custom scalar ID associated with the delivery for this manifest item.
  • description (String!): A required string describing the manifest item.
  • height (Int): The height of the manifest item.
  • id (IDCustomScalar): The custom scalar ID associated with the manifest item.
  • length (Int): The length of the manifest item.
  • quantity (Int): The quantity of the manifest item.
  • value (Int): The declared value of the manifest item.
  • weight (Float): The weight of the manifest item.
  • width (Int): The width of the manifest item.

ManifestItemInput

The ManifestItemInput type is used to provide information about a delivery item.

Fields

priority

The priority type is an enumerated string with with the potential values:

  • rush
  • sameday
  • scheduled

RequirementsInput

The RequirementsInput type is used to specify loading and unloading requirements.

It is composed of the following fields:

  • loadUnloadRequired (Boolean): A boolean value indicating if loading and unloading are both required.

ZipCode

The ZipCode type is used to store information about a zip code.

Fields

  • city (String): The name of the city associated with the zip code.
  • latitude (Float): The latitude of the zip code.
  • longitude (Float): The longitude of the zip code.
  • state (String): The state associated with the zip code.
  • timezone (String): The timezone associated with the zip code.
  • zipCode (String): The actual zip code itself.