Green Screens AI Quotes API
Quotes service v2 View separately Try it in swagger Older version of this api exists. View v1 here
Quotes service v2 View separately Try it in swagger Older version of this api exists. View v1 here
openapi: 3.0.2
info:
title: Triumph Intelligence Connect Analytics Quotes API
x-logo:
url: https://static.greenscreens.ai/main-logo.svg
backgroundColor: '#fafafa'
altText: Triumph Intelligence
description: "# Authentication\n\n\nTriumph Intelligence API offers OAuth2 Bearer JWT token based authentication.\n\n\nOAuth2 - an open protocol to allow secure authorization in a simple \nand standard method from web, mobile and desktop applications.\n\n\n# \n\n\n# \n\n\n# Direct link integration with Triumph Intelligence\n\nOne of the simplest ways to integrate Triumph Intelligence in to your app is by using the \ndirect link method.\n\nLink format:\n\n https://intelligence.triumph.io/rates?originZip={}&destinationZip={}&transportType={}\n\n* originZip - 5 digit USA ZIP code of the origin point\n\n* destinationZip - 5 digit USA ZIP code of the destination point\n\n* transportType - one of supported equipment types VAN, REEFER or FLATBED\n\n* OPTIONAL: pickupDate - pickup date string in ISO format e.g. \"2022-04-06T08:00:00.000+03:00\" when not encoded\n\n* OPTIONAL: originCityState - city and state separated by a space symbol, signifying the origin point. \nCan be used instead of originZip if you do not have a zip code of the location. \n_Should not be used together with originZip._\n\n* OPTIONAL: destinationCityState - city and state separated by a space, signifying the destination point. \nCan be used instead of destinationZip if you do not have a zip code of the location. \n_Should not be used together with destinationZip._\n\n* OPTIONAL: customer - name of the customer company\n\n* OPTIONAL: commodity - description of the transported commodity\n\n* OPTIONAL: weight - weight of the load in lbs\n\n* OPTIONAL: deliveryDate - delivery date string in ISO format e.g. \"2022-04-06T08:00:00.000+03:00\" when not encoded\n\n* OPTIONAL: extraStops - any extra stops between origin and destination. Value is an array of strings with up to 10 elements\nin the format of `{order}_{type}_{country}_{address}` \ntypes are `{numbers 0-9}_{CITY or ZIP}_{US or CA}_{if ZIP then 5+ digits, if CITY then city state string separated by space}`\n\nExamples (don't forget to encode the url):\n\n https://intelligence.triumph.io/rates?originZip=12345&destinationZip=62345&transportType=VAN\n\n https://intelligence.triumph.io/rates?originCityState=Wausau%20WI&destinationCityState=Evansville%20IN&transportType=VAN\n\n https://intelligence.triumph.io/rates?originZip=12345&destinationCityState=Evansville%20IN&transportType=VAN\n\n https://intelligence.triumph.io/rates?originZip=12345&destinationZip=62345&extraStops=0_ZIP_US_28086&extraStops=1_CITY_US_Portland%20OR&transportType=VAN\n\nExample usage:\n\n <button\n onclick=\"location.href='https://intelligence.triumph.io/rates?destinationZip=62345&originZip=12345&transportType=VAN'\"\n type=\"button\">Quote new lane\n <button>\n\n\n# \n\n\n# \n\n\n# Services and endpoints\n\nThe most versatile (and involving the most work) way of integration is by using our API directly.\nBelow you can find a list of servises and endpoints available for usage.\n"
version: 1.3.3
termsOfService: https://triumph.io/terms-of-service/
contact:
name: API Support
email: support@greenscreens.ai
url: https://connect.intelligence.triumph.io
tags:
- name: Quotes
description: 'Quotes service v2
<a href="/quotes/v2/redoc/" target="_blank">View separately</a>
<a href="/quotes/v2/swagger/index.html" target="_blank">Try it in swagger</a>
Older version of this api exists. <a href="/quotes/v1/redoc/" target="_blank">View v1 here</a>'
x-displayName: Quotes
paths:
/quotes:
servers:
- url: https://testapi.greenscreens.ai/v2
description: Testing server (dev environment)
- url: https://sandboxapi.greenscreens.ai/v2
description: Sandbox server (as stable as production, but has no data)
- url: https://api.greenscreens.ai/v2
description: Production server (uses live data)
get:
tags:
- Quotes
summary: Get quotes
description: Get quotes
operationId: quotesGetAll
security:
- Quotes_bearerAuth: []
parameters:
- in: query
name: createdDateFrom
description: \'quote created date >= value\' filter
schema:
type: string
format: date
example: '2019-09-30'
- in: query
name: createdDateTo
description: \'quote created date <= value\' filter
schema:
type: string
format: date
example: '2019-12-30'
- in: query
name: page
description: "The page to return items from. \nUsed for pagination\n"
schema:
type: integer
minimum: 0
default: 0
example: 5
- in: query
name: perPage
description: "The amount of items per page. \nUsed for pagination\n"
schema:
type: integer
minimum: 1
maximum: 500
default: 20
example: 30
- in: query
name: currency
schema:
type: string
enum:
- USD
- CAD
description: "Currency code in ISO 4217 format (three letter code, e.g. USD)\n\n_If not provided, defaults to the currency set in the profile \nof currently authenticated user (or currently authenticated company \nif there is no user or user profile setting)_\n"
example: USD
responses:
'200':
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/Quotes_QuotesResponse'
'400':
description: Bad request
content:
application/json:
schema:
$ref: '#/components/schemas/Quotes_Error'
examples:
error400Example:
value:
code: missing_required_parameter
message: Your request was missing a {par_name} parameter
'401':
description: Unauthenticated
'403':
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/Quotes_Error'
examples:
error403Example:
value:
code: access_forbidden
message: Access is forbidden
'404':
description: Item not found
content:
application/json:
schema:
$ref: '#/components/schemas/Quotes_Error'
examples:
error404Example:
value:
code: item_not_found
message: Item not found
'422':
description: Unprocessable Entity with multiple errors.
content:
application/json:
schema:
$ref: '#/components/schemas/Quotes_Error422UnprocessableEntityMulti'
examples:
error422MultiExample:
value:
code: request_validation
message: You have one or more errors in request structure
errors:
- field: carrierName
message: field contains wrong data type (int), should be string
value: '22'
- field: shipperId
message: 'shipperId: must not be null'
value: null
- field: loadSource.loadId
message: 'loadId: must not be null'
value: null
'429':
description: Too Many Requests
content:
application/json:
schema:
$ref: '#/components/schemas/Quotes_Error'
examples:
error429TooManyRequests:
value:
code: too_many_requests
message: Request limit exceeded
'500':
description: Unhandled server error
content:
application/json:
schema:
$ref: '#/components/schemas/Quotes_Error'
examples:
error500Example:
value:
code: internal_error
message: Internal server error
x-codeSamples:
- lang: Node + Request
source: "const request = require('request');\n\nconst options = {\n method: 'GET',\n url: 'https://testapi.greenscreens.ai/v2/quotes',\n qs: {\n createdDateFrom: '2019-09-30',\n createdDateTo: '2019-12-30',\n page: '5',\n perPage: '30',\n currency: 'USD'\n },\n headers: {Authorization: 'Bearer REPLACE_BEARER_TOKEN'}\n};\n\nrequest(options, function (error, response, body) {\n if (error) throw new Error(error);\n\n console.log(body);\n});\n"
- lang: Python + Requests
source: 'import requests
url = "https://testapi.greenscreens.ai/v2/quotes"
querystring = {"createdDateFrom":"2019-09-30","createdDateTo":"2019-12-30","page":"5","perPage":"30","currency":"USD"}
headers = {"Authorization": "Bearer REPLACE_BEARER_TOKEN"}
response = requests.request("GET", url, headers=headers, params=querystring)
print(response.text)'
- lang: Php + Curl
source: "<?php\n\n$curl = curl_init();\n\ncurl_setopt_array($curl, [\n CURLOPT_URL => \"https://testapi.greenscreens.ai/v2/quotes?createdDateFrom=2019-09-30&createdDateTo=2019-12-30&page=5&perPage=30¤cy=USD\",\n CURLOPT_RETURNTRANSFER => true,\n CURLOPT_ENCODING => \"\",\n CURLOPT_MAXREDIRS => 10,\n CURLOPT_TIMEOUT => 30,\n CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,\n CURLOPT_CUSTOMREQUEST => \"GET\",\n CURLOPT_HTTPHEADER => [\n \"Authorization: Bearer REPLACE_BEARER_TOKEN\"\n ],\n]);\n\n$response = curl_exec($curl);\n$err = curl_error($curl);\n\ncurl_close($curl);\n\nif ($err) {\n echo \"cURL Error #:\" . $err;\n} else {\n echo $response;\n}"
/quotes/import:
servers:
- url: https://testapi.greenscreens.ai/v2
description: Testing server (dev environment)
- url: https://sandboxapi.greenscreens.ai/v2
description: Sandbox server (as stable as production, but has no data)
- url: https://api.greenscreens.ai/v2
description: Production server (uses live data)
post:
tags:
- Quotes
summary: Import a quote
description: Import an external quote
operationId: quotesImport
security:
- Quotes_bearerAuth: []
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/Quotes_QuotesImportRequest'
required: true
responses:
'201':
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/Quotes_QuotesImportResponse'
'400':
$ref: '#/paths/~1quotes/get/responses/400'
'401':
$ref: '#/paths/~1quotes/get/responses/401'
'403':
$ref: '#/paths/~1quotes/get/responses/403'
'422':
$ref: '#/paths/~1quotes/get/responses/422'
'429':
$ref: '#/paths/~1quotes/get/responses/429'
'500':
$ref: '#/paths/~1quotes/get/responses/500'
x-codeSamples:
- lang: Node + Request
source: "const request = require('request');\n\nconst options = {\n method: 'POST',\n url: 'https://testapi.greenscreens.ai/v2/quotes/import',\n headers: {\n 'content-type': 'application/json',\n Authorization: 'Bearer REPLACE_BEARER_TOKEN'\n },\n body: {\n quoteId: 'Q#54321',\n loadId: '12345',\n userEmail: 'buddy@greenscreens.ai',\n transportType: 'VR',\n transportTypeGroup: 'VAN',\n stops: [\n {\n order: 0,\n address: {country: 'US', city: 'Red Bluff', state: 'CA', zip: '96080'},\n type: 'LOAD',\n appointmentDateTime: '2020-10-13T16:00:00Z'\n },\n {\n order: 1,\n address: {country: 'US', city: 'Redding', state: 'CA', zip: '96002'},\n type: 'UNLOAD',\n appointmentDateTime: '2020-10-14T16:00:00Z'\n }\n ],\n distance: 289,\n pickupDateTime: '2020-10-13T16:00:00Z',\n deliveredDateTime: '2020-10-14T16:00:00Z',\n expirationDateTime: '2020-10-12T16:00:00+05:00',\n quoteDateTime: '2020-10-13T16:00:00Z',\n status: 'WON',\n rejectionReason: 'Rejecting, because price is too high',\n weight: 22000,\n shipper: {\n id: '64378901',\n name: 'Walmart',\n phone: '4112228888',\n email: 'test@greenscreens.ai'\n },\n pricingType: 'SPOT',\n pricingTypeGroup: 'SPOT',\n contractDuration: 5,\n numberOfLoads: 10,\n costs: {linehaul: 1200, accessorials: [{name: 'Overweight', cost: 200.5}], total: 1500},\n currency: 'USD'\n },\n json: true\n};\n\nrequest(options, function (error, response, body) {\n if (error) throw new Error(error);\n\n console.log(body);\n});\n"
- lang: Python + Requests
source: "import requests\n\nurl = \"https://testapi.greenscreens.ai/v2/quotes/import\"\n\npayload = {\n \"quoteId\": \"Q#54321\",\n \"loadId\": \"12345\",\n \"userEmail\": \"buddy@greenscreens.ai\",\n \"transportType\": \"VR\",\n \"transportTypeGroup\": \"VAN\",\n \"stops\": [\n {\n \"order\": 0,\n \"address\": {\n \"country\": \"US\",\n \"city\": \"Red Bluff\",\n \"state\": \"CA\",\n \"zip\": \"96080\"\n },\n \"type\": \"LOAD\",\n \"appointmentDateTime\": \"2020-10-13T16:00:00Z\"\n },\n {\n \"order\": 1,\n \"address\": {\n \"country\": \"US\",\n \"city\": \"Redding\",\n \"state\": \"CA\",\n \"zip\": \"96002\"\n },\n \"type\": \"UNLOAD\",\n \"appointmentDateTime\": \"2020-10-14T16:00:00Z\"\n }\n ],\n \"distance\": 289,\n \"pickupDateTime\": \"2020-10-13T16:00:00Z\",\n \"deliveredDateTime\": \"2020-10-14T16:00:00Z\",\n \"expirationDateTime\": \"2020-10-12T16:00:00+05:00\",\n \"quoteDateTime\": \"2020-10-13T16:00:00Z\",\n \"status\": \"WON\",\n \"rejectionReason\": \"Rejecting, because price is too high\",\n \"weight\": 22000,\n \"shipper\": {\n \"id\": \"64378901\",\n \"name\": \"Walmart\",\n \"phone\": \"4112228888\",\n \"email\": \"test@greenscreens.ai\"\n },\n \"pricingType\": \"SPOT\",\n \"pricingTypeGroup\": \"SPOT\",\n \"contractDuration\": 5,\n \"numberOfLoads\": 10,\n \"costs\": {\n \"linehaul\": 1200,\n \"accessorials\": [\n {\n \"name\": \"Overweight\",\n \"cost\": 200.5\n }\n ],\n \"total\": 1500\n },\n \"currency\": \"USD\"\n}\nheaders = {\n \"content-type\": \"application/json\",\n \"Authorization\": \"Bearer REPLACE_BEARER_TOKEN\"\n}\n\nresponse = requests.request(\"POST\", url, json=payload, headers=headers)\n\nprint(response.text)"
- lang: Php + Curl
source: "<?php\n\n$curl = curl_init();\n\ncurl_setopt_array($curl, [\n CURLOPT_URL => \"https://testapi.greenscreens.ai/v2/quotes/import\",\n CURLOPT_RETURNTRANSFER => true,\n CURLOPT_ENCODING => \"\",\n CURLOPT_MAXREDIRS => 10,\n CURLOPT_TIMEOUT => 30,\n CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,\n CURLOPT_CUSTOMREQUEST => \"POST\",\n CURLOPT_POSTFIELDS => \"{\\\"quoteId\\\":\\\"Q#54321\\\",\\\"loadId\\\":\\\"12345\\\",\\\"userEmail\\\":\\\"buddy@greenscreens.ai\\\",\\\"transportType\\\":\\\"VR\\\",\\\"transportTypeGroup\\\":\\\"VAN\\\",\\\"stops\\\":[{\\\"order\\\":0,\\\"address\\\":{\\\"country\\\":\\\"US\\\",\\\"city\\\":\\\"Red Bluff\\\",\\\"state\\\":\\\"CA\\\",\\\"zip\\\":\\\"96080\\\"},\\\"type\\\":\\\"LOAD\\\",\\\"appointmentDateTime\\\":\\\"2020-10-13T16:00:00Z\\\"},{\\\"order\\\":1,\\\"address\\\":{\\\"country\\\":\\\"US\\\",\\\"city\\\":\\\"Redding\\\",\\\"state\\\":\\\"CA\\\",\\\"zip\\\":\\\"96002\\\"},\\\"type\\\":\\\"UNLOAD\\\",\\\"appointmentDateTime\\\":\\\"2020-10-14T16:00:00Z\\\"}],\\\"distance\\\":289,\\\"pickupDateTime\\\":\\\"2020-10-13T16:00:00Z\\\",\\\"deliveredDateTime\\\":\\\"2020-10-14T16:00:00Z\\\",\\\"expirationDateTime\\\":\\\"2020-10-12T16:00:00+05:00\\\",\\\"quoteDateTime\\\":\\\"2020-10-13T16:00:00Z\\\",\\\"status\\\":\\\"WON\\\",\\\"rejectionReason\\\":\\\"Rejecting, because price is too high\\\",\\\"weight\\\":22000,\\\"shipper\\\":{\\\"id\\\":\\\"64378901\\\",\\\"name\\\":\\\"Walmart\\\",\\\"phone\\\":\\\"4112228888\\\",\\\"email\\\":\\\"test@greenscreens.ai\\\"},\\\"pricingType\\\":\\\"SPOT\\\",\\\"pricingTypeGroup\\\":\\\"SPOT\\\",\\\"contractDuration\\\":5,\\\"numberOfLoads\\\":10,\\\"costs\\\":{\\\"linehaul\\\":1200,\\\"accessorials\\\":[{\\\"name\\\":\\\"Overweight\\\",\\\"cost\\\":200.5}],\\\"total\\\":1500},\\\"currency\\\":\\\"USD\\\"}\",\n CURLOPT_HTTPHEADER => [\n \"Authorization: Bearer REPLACE_BEARER_TOKEN\",\n \"content-type: application/json\"\n ],\n]);\n\n$response = curl_exec($curl);\n$err = curl_error($curl);\n\ncurl_close($curl);\n\nif ($err) {\n echo \"cURL Error #:\" . $err;\n} else {\n echo $response;\n}"
/quotes/batch/import:
servers:
- url: https://testapi.greenscreens.ai/v2
description: Testing server (dev environment)
- url: https://sandboxapi.greenscreens.ai/v2
description: Sandbox server (as stable as production, but has no data)
- url: https://api.greenscreens.ai/v2
description: Production server (uses live data)
post:
tags:
- Quotes
summary: Import quotes in a batch
description: Import quotes in a batch
operationId: quotesBatchImport
security:
- Quotes_bearerAuth: []
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/Quotes_QuotesBatchImportRequest'
required: true
responses:
'201':
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/Quotes_QuotesBatchImportResponse'
'400':
$ref: '#/paths/~1quotes/get/responses/400'
'401':
$ref: '#/paths/~1quotes/get/responses/401'
'403':
$ref: '#/paths/~1quotes/get/responses/403'
'422':
$ref: '#/paths/~1quotes/get/responses/422'
'429':
$ref: '#/paths/~1quotes/get/responses/429'
'500':
$ref: '#/paths/~1quotes/get/responses/500'
x-codeSamples:
- lang: Node + Request
source: "const request = require('request');\n\nconst options = {\n method: 'POST',\n url: 'https://testapi.greenscreens.ai/v2/quotes/batch/import',\n headers: {\n 'content-type': 'application/json',\n Authorization: 'Bearer REPLACE_BEARER_TOKEN'\n },\n body: {\n quotes: [\n {\n quoteId: 'Q#54321',\n loadId: '12345',\n userEmail: 'buddy@greenscreens.ai',\n transportType: 'VR',\n transportTypeGroup: 'VAN',\n stops: [\n {\n order: 0,\n address: {country: 'US', city: 'Red Bluff', state: 'CA', zip: '96080'},\n type: 'LOAD',\n appointmentDateTime: '2020-10-13T16:00:00Z'\n },\n {\n order: 1,\n address: {country: 'US', city: 'Redding', state: 'CA', zip: '96002'},\n type: 'UNLOAD',\n appointmentDateTime: '2020-10-14T16:00:00Z'\n }\n ],\n distance: 289,\n pickupDateTime: '2020-10-13T16:00:00Z',\n deliveredDateTime: '2020-10-14T16:00:00Z',\n expirationDateTime: '2020-10-12T16:00:00+05:00',\n quoteDateTime: '2020-10-13T16:00:00Z',\n status: 'WON',\n rejectionReason: 'Rejecting, because price is too high',\n weight: 22000,\n shipper: {\n id: '64378901',\n name: 'Walmart',\n phone: '4112228888',\n email: 'test@greenscreens.ai'\n },\n pricingType: 'SPOT',\n pricingTypeGroup: 'SPOT',\n contractDuration: 5,\n numberOfLoads: 10,\n costs: {linehaul: 1200, accessorials: [{name: 'Overweight', cost: 200.5}], total: 1500},\n currency: 'USD'\n }\n ]\n },\n json: true\n};\n\nrequest(options, function (error, response, body) {\n if (error) throw new Error(error);\n\n console.log(body);\n});\n"
- lang: Python + Requests
source: "import requests\n\nurl = \"https://testapi.greenscreens.ai/v2/quotes/batch/import\"\n\npayload = {\"quotes\": [\n {\n \"quoteId\": \"Q#54321\",\n \"loadId\": \"12345\",\n \"userEmail\": \"buddy@greenscreens.ai\",\n \"transportType\": \"VR\",\n \"transportTypeGroup\": \"VAN\",\n \"stops\": [\n {\n \"order\": 0,\n \"address\": {\n \"country\": \"US\",\n \"city\": \"Red Bluff\",\n \"state\": \"CA\",\n \"zip\": \"96080\"\n },\n \"type\": \"LOAD\",\n \"appointmentDateTime\": \"2020-10-13T16:00:00Z\"\n },\n {\n \"order\": 1,\n \"address\": {\n \"country\": \"US\",\n \"city\": \"Redding\",\n \"state\": \"CA\",\n \"zip\": \"96002\"\n },\n \"type\": \"UNLOAD\",\n \"appointmentDateTime\": \"2020-10-14T16:00:00Z\"\n }\n ],\n \"distance\": 289,\n \"pickupDateTime\": \"2020-10-13T16:00:00Z\",\n \"deliveredDateTime\": \"2020-10-14T16:00:00Z\",\n \"expirationDateTime\": \"2020-10-12T16:00:00+05:00\",\n \"quoteDateTime\": \"2020-10-13T16:00:00Z\",\n \"status\": \"WON\",\n \"rejectionReason\": \"Rejecting, because price is too high\",\n \"weight\": 22000,\n \"shipper\": {\n \"id\": \"64378901\",\n \"name\": \"Walmart\",\n \"phone\": \"4112228888\",\n \"email\": \"test@greenscreens.ai\"\n },\n \"pricingType\": \"SPOT\",\n \"pricingTypeGroup\": \"SPOT\",\n \"contractDuration\": 5,\n \"numberOfLoads\": 10,\n \"costs\": {\n \"linehaul\": 1200,\n \"accessorials\": [\n {\n \"name\": \"Overweight\",\n \"cost\": 200.5\n }\n ],\n \"total\": 1500\n },\n \"currency\": \"USD\"\n }\n ]}\nheaders = {\n \"content-type\": \"application/json\",\n \"Authorization\": \"Bearer REPLACE_BEARER_TOKEN\"\n}\n\nresponse = requests.request(\"POST\", url, json=payload, headers=headers)\n\nprint(response.text)"
- lang: Php + Curl
source: "<?php\n\n$curl = curl_init();\n\ncurl_setopt_array($curl, [\n CURLOPT_URL => \"https://testapi.greenscreens.ai/v2/quotes/batch/import\",\n CURLOPT_RETURNTRANSFER => true,\n CURLOPT_ENCODING => \"\",\n CURLOPT_MAXREDIRS => 10,\n CURLOPT_TIMEOUT => 30,\n CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,\n CURLOPT_CUSTOMREQUEST => \"POST\",\n CURLOPT_POSTFIELDS => \"{\\\"quotes\\\":[{\\\"quoteId\\\":\\\"Q#54321\\\",\\\"loadId\\\":\\\"12345\\\",\\\"userEmail\\\":\\\"buddy@greenscreens.ai\\\",\\\"transportType\\\":\\\"VR\\\",\\\"transportTypeGroup\\\":\\\"VAN\\\",\\\"stops\\\":[{\\\"order\\\":0,\\\"address\\\":{\\\"country\\\":\\\"US\\\",\\\"city\\\":\\\"Red Bluff\\\",\\\"state\\\":\\\"CA\\\",\\\"zip\\\":\\\"96080\\\"},\\\"type\\\":\\\"LOAD\\\",\\\"appointmentDateTime\\\":\\\"2020-10-13T16:00:00Z\\\"},{\\\"order\\\":1,\\\"address\\\":{\\\"country\\\":\\\"US\\\",\\\"city\\\":\\\"Redding\\\",\\\"state\\\":\\\"CA\\\",\\\"zip\\\":\\\"96002\\\"},\\\"type\\\":\\\"UNLOAD\\\",\\\"appointmentDateTime\\\":\\\"2020-10-14T16:00:00Z\\\"}],\\\"distance\\\":289,\\\"pickupDateTime\\\":\\\"2020-10-13T16:00:00Z\\\",\\\"deliveredDateTime\\\":\\\"2020-10-14T16:00:00Z\\\",\\\"expirationDateTime\\\":\\\"2020-10-12T16:00:00+05:00\\\",\\\"quoteDateTime\\\":\\\"2020-10-13T16:00:00Z\\\",\\\"status\\\":\\\"WON\\\",\\\"rejectionReason\\\":\\\"Rejecting, because price is too high\\\",\\\"weight\\\":22000,\\\"shipper\\\":{\\\"id\\\":\\\"64378901\\\",\\\"name\\\":\\\"Walmart\\\",\\\"phone\\\":\\\"4112228888\\\",\\\"email\\\":\\\"test@greenscreens.ai\\\"},\\\"pricingType\\\":\\\"SPOT\\\",\\\"pricingTypeGroup\\\":\\\"SPOT\\\",\\\"contractDuration\\\":5,\\\"numberOfLoads\\\":10,\\\"costs\\\":{\\\"linehaul\\\":1200,\\\"accessorials\\\":[{\\\"name\\\":\\\"Overweight\\\",\\\"cost\\\":200.5}],\\\"total\\\":1500},\\\"currency\\\":\\\"USD\\\"}]}\",\n CURLOPT_HTTPHEADER => [\n \"Authorization: Bearer REPLACE_BEARER_TOKEN\",\n \"content-type: application/json\"\n ],\n]);\n\n$response = curl_exec($curl);\n$err = curl_error($curl);\n\ncurl_close($curl);\n\nif ($err) {\n echo \"cURL Error #:\" . $err;\n} else {\n echo $response;\n}"
components:
schemas:
Quotes_AccessorialsInput:
type: array
description: Quote accessorial list
items:
$ref: '#/components/schemas/Quotes_AccessorialInput'
Quotes_StopInput:
type: object
description: Contains the quote stop information e.g. address
properties:
order:
type: integer
description: Stop order, starting from 0
example: 0
address:
$ref: '#/components/schemas/Quotes_AddressInput'
type:
type: string
description: 'Action performed with the cargo at this stop.
Leave this field empty if you do not know the stop type.
'
enum:
- LOAD
- UNLOAD
- BOTH
example: LOAD
appointmentDateTime:
type: string
format: date-time
description: 'Date and time when the truck has to arrive at this stop.
Provide the time zone of the stop location if possible.
'
example: '2020-10-13T16:00:00Z'
required:
- order
- address
Quotes_Predictions:
type: object
description: 'Predictions made for this quote.
The fields in this object are populated asynchronously,
so there might be a period in time when you will not see any values.
'
properties:
company:
type: object
description: Company specific predictions
properties:
buy:
type: object
description: Buy cost related properties
properties:
target:
type: number
description: Flat buy cost that our system would suggest to use for buying such a load
example: 1200
start:
type: number
description: Flat buy cost that our system would suggest to use as the lower limit during bargaining with the carrier
example: 1200
high:
type: number
description: Flat buy cost that our system would suggest to use as the upper limit during bargaining with the carrier
example: 1200
confidenceLevel:
type: integer
minimum: 0
maximum: 100
description: "How confident the system is in the prediction it is making. \n\nFrom 0 - lowest possible confidence\\\nTo 100 - highest possible confidence\n"
example: 65
sell:
type: object
description: Sell cost related properties
properties:
target:
type: number
description: Flat sell cost that our system would suggest to use for this quote
example: 1200
network:
type: object
description: Network predictions
properties:
buy:
type: object
description: Buy cost related properties
properties:
target:
type: number
description: Flat buy cost that our system would suggest to use for buying such a load
example: 1200
confidenceLevel:
type: integer
minimum: 0
maximum: 100
description: "How confident the system is in the prediction it is making. \n\nFrom 0 - lowest possible confidence\\\nTo 100 - highest possible confidence\n"
example: 65
distance:
type: number
format: float
description: Distance of the route (in miles)
example: 289
Quotes_CostsInput:
type: object
description: "Quote costs. \n\n**Linehaul cost and either total cost or acessorials have to be provided \nfor this object to be valid.**\n"
properties:
linehaul:
type: number
description: Flat linehaul cost that the customer was quoted
example: 1200
accessorials:
$ref: '#/components/schemas/Quotes_AccessorialsInput'
total:
type: number
description: "Flat total cost that the customer was quoted \n(linehaul + accessorials)\n"
example: 1500
required:
- linehaul
Quotes_QuotesResponse:
type: object
description: Object containing an array of quotes
properties:
pagination:
type: object
description: Response pagination data
properties:
page:
type: integer
description: The number of the currently returned page
minimum: 0
example: 12
perPage:
type: integer
description: The maximum number of items per page
minimum: 1
maximum: 500
example: 20
required:
- page
- perPage
items:
type: array
description: Array of quotes
items:
$ref: '#/components/schemas/Quotes_QuoteObject'
required:
- pagination
- items
Quotes_QuotesBatchImportRequest:
type: object
properties:
quotes:
type: array
description: List of quotes to import
items:
$ref: '#/components/schemas/Quotes_QuotesImportRequest'
maxItems: 1000
required:
- quotes
Quotes_Accessorials:
type: array
description: Quote accessorial list
items:
$ref: '#/components/schemas/Quotes_Accessorial'
Quotes_Error:
type: object
description: A common api error object
properties:
code:
type: string
description: unique string identifier of the error
message:
type: string
description: human readable error message
required:
- code
- message
example:
code: invalid_request
message: Your ClientId is invalid
Quotes_Shipper:
type: object
description: Shipper data
properties:
id:
type: string
description: Customer TMS ID of the shipper profile associated with this quote
example: '64378901'
name:
type: string
description: Shipper company name
example: Walmart
phone:
type: string
description: Shipper contact phone number
example: '4112228888'
email:
type: string
description: Shipper contact email
example: test@greenscreens.ai
Quotes_Error422UnprocessableEntityMulti:
type: object
properties:
code:
type: string
message:
type: string
errors:
type: array
description: list of errors
items:
$ref: '#/components/schemas/Quotes_RequestValidationError'
required:
- code
- message
-
# --- truncated at 32 KB (53 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/green-screens-ai/refs/heads/main/openapi/green-screens-ai-quotes-api-openapi.yml