Appendix
Units
Quick Reference
Measurement | Unit/Format |
---|---|
Currency | USD cents |
Distance | meters |
Duration | seconds |
Mass/Weight | kilograms |
Manifest Dimensions | centimeters |
Time | ISO 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:
Value | Description |
---|---|
car | Car |
suv | SUV |
truck | Pickup Truck |
truck-with-pipe-rack | Rack Vehicle |
cargo-van | Cargo Van |
cargo-van-high-roof | Sprinter Van |
box-truck | Box Truck |
box-truck-with-liftgate | Box Truck with Liftgate |
flatbed | 20' Open Deck |
freight-hotshot-trailer | 20'-40' Hotshot Trailer |
freight-flatbed | 48'-53' Flatbed |
freight-dry-van | Dry Van |
recommend | Recommend 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:
Status | Description |
---|---|
pending | Awaiting match with courier |
awaiting_quote | Awaiting quote from Curri sales |
holding | Delivery held by driver |
delivered | Successful delivery |
canceled | Delivery was canceled prior to arrival at destination |
scheduled | Scheduled for a future date and time |
test | Test delivery likely placed by an internal Curri user |
quote_declined | Quote was declined |
assigned_awaiting_fulfillment | A driver has been assigned this delivery, but is finalizing another delivery |
quote_given | Quote has been given to customer |
quote_expired | Customer has not responded to quote |
en_route_to_origin | Driver is en route to pickup the items |
at_origin | Driver has arrived to origin to secure payload |
en_route_to_destination | Driver is en route to destination |
at_destination | Driver 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
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
- deliveryId (
IDCustomScalar
): A unique identifier for the delivery item. - description (String!): A brief description of the item.
- height (
StringOrNumberCustomScalar
): The height of the item. - id (
IDCustomScalar
: The unique identifier for the item. - length (
StringOrNumberCustomScalar
): The length of the item. - quantity (
StringOrNumberCustomScalar
): The quantity of the item. - weight (
StringOrNumberCustomScalar
): The weight of the item. - width (
StringOrNumberCustomScalar
): The width of the item.
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.