Green Screens AI Quotes API

Quotes service v2 View separately Try it in swagger Older version of this api exists. View v1 here

OpenAPI Specification

green-screens-ai-quotes-api-openapi.yml Raw ↑
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&currency=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