Green Screens AI MarketIntelligence API

Market Intelligence service v1 — negotiation advice for a lane. Spec version 1.3.8, 1 path. Four response fields are marked deprecated in the contract.

Operations 1

GET /marketintelligence/negotiation-advice Negotiation advice for provided lane #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/green-screens-ai-marketintelligence-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

green-screens-ai-marketintelligence-api-openapi.yml Raw ↑
# harvested: 2026-09-12
# method: searched
# source: https://connect.greenscreens.ai/marketintelligence/v1/openapi.yaml
# note: >-
#   Verbatim first-party OpenAPI served from the provider's own documentation host connect.greenscreens.ai. Ownership confirmed: info.contact.email support@greenscreens.ai, x-logo static.greenscreens.ai, servers[] api.greenscreens.ai; termsOfService points at triumph.io because Triumph Financial acquired Greenscreens.ai (closed 2025) and the product now ships as Triumph Intelligence.
openapi: 3.0.2
info:
  title: MarketIntelligence
  version: 1.3.8
  description: Market Intelligence service v1
  x-logo:
    url: https://static.greenscreens.ai/main-logo.svg
    backgroundColor: "#fafafa"
    altText: Triumph Intelligence
  termsOfService: https://triumph.io/terms-of-service/
  contact:
    name: API Support
    email: support@greenscreens.ai
    url: https://connect.intelligence.triumph.io
tags:
  - name: MarketIntelligence
    description: MarketIntelligence endpoints
paths:
  /marketintelligence/negotiation-advice:
    get:
      tags:
        - MarketIntelligence
      summary: Negotiation advice for provided lane
      description: |
        Negotiation advice for provided lane

        Parameter notes:
        * __region__ - defaults to ZIP if not provided
      security:
        - bearerAuth: []
      operationId: negotiation
      parameters:
        - in: query
          name: transportType
          schema:
            type: string
            enum:
              - VAN
              - REEFER
              - FLATBED
              - HOTSHOT
            description: >
              Transport type


              If you would like Hotshot predictions, reach out to your CSM and DA. 

              The model will not work properly without your hotshot data effectively filtered and imported into the model.
            example: VAN
          required: true
        - in: query
          name: originCountry
          schema:
            type: string
            example: US
          description: |
            Origin country. 
            Two letter country code in ISO 3166-1 alpha-2 format
        - in: query
          name: originState
          schema:
            type: string
            example: NY
          description: Origin state
        - in: query
          name: originCity
          schema:
            type: string
            example: Schenectady
          description: Origin city
        - in: query
          name: originZip
          schema:
            type: string
            example: "12345"
          description: Origin area zip
          required: true
        - in: query
          name: destinationCountry
          schema:
            type: string
            example: US
          description: |
            Destination country. 
            Two letter country code in ISO 3166-1 alpha-2 format
        - in: query
          name: destinationState
          schema:
            type: string
            example: IL
          description: Destination state
        - in: query
          name: destinationCity
          schema:
            type: string
            example: Chicago
          description: Destination city
        - in: query
          name: destinationZip
          schema:
            type: string
            example: "60636"
          description: Destination area zip
          required: true
        - in: query
          name: hasExtraStops
          schema:
            type: boolean
            example: true
            description: |
              Signifies whether the requested lane has extra stops or not.

              If true, multistop loads will be included during calculations.
            default: false
        - in: query
          name: pickUpDateTime
          schema:
            type: string
            format: date-time
            example: "2020-01-11T16:00:00Z"
          description: PickUp date time
          required: false
        - in: query
          name: currency
          schema:
            type: string
            example: USD
          description: Code of the currency that you want the response to be in. Format is
            ISO 4217
          required: false
        - in: query
          name: region
          schema:
            type: string
            enum:
              - CITY
              - CITY_ZIP
              - ZIP_CITY
              - ZIP
              - 3DZIP
              - KMA
            description: >
              Determines the size of the area around the origin and destination
              points, 

              that will be searched for the related data.

              * CITY - narrow, city wide, area

              * ZIP - narrow, five digit zip, area

              * 3DZIP - medium, short zip, area

              * KMA - big, market wide, area

              * CITY_ZIP - a special option that sets origin area to CITY and destination area to ZIP

              * ZIP_CITY - a special option that sets origin area to ZIP and destination area to CITY
            example: ZIP
      responses:
        "200":
          description: Success
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/NegotiationResponse"
        "400":
          description: Bad request
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/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/Error"
              examples:
                error403Example:
                  value:
                    code: access_forbidden
                    message: Access is forbidden
        "404":
          description: Item not found
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
              examples:
                error404Example:
                  value:
                    code: item_not_found
                    message: Item not found
        "429":
          description: Too Many Requests
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
              examples:
                error429TooManyRequests:
                  value:
                    code: too_many_requests
                    message: Request limit exceeded
        "500":
          description: Unhandled server error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
              examples:
                error500Example:
                  value:
                    code: internal_error
                    message: Internal server error
components:
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: JWT
  schemas:
    GsIndexRequest:
      type: object
      properties:
        zip:
          type: string
          description: Area identifyed by zip
          example: "60636"
        date:
          type: string
          format: date
          description: Date in ISO format YYYY-MM-DD
          example: "2019-09-18"
        location:
          type: string
          enum:
            - ORIGIN
            - DESTINATION
          description: Location type for influence calculation
          example: ORIGIN
      required:
        - zip
        - date
        - location
    GsIndexResponse:
      type: object
      properties:
        inboundLoadFlow:
          $ref: "#/components/schemas/GsIndexValue"
        outboundLoadFlow:
          $ref: "#/components/schemas/GsIndexValue"
    GsIndexValue:
      type: object
      description: Market index data
      properties:
        instant:
          type: number
          description: Index instant value
          example: 56
        derivative:
          type: number
          description: Index derivative value in percent
          example: 19
        trend:
          type: string
          enum:
            - FLAT
            - UP
            - DOWN
          description: Index trend
          example: UP
        trendOutcome:
          type: string
          enum:
            - NEGATIVE
            - POSITIVE
            - NEUTRAL
          description: Trend outcome in market situation from broker's standpoint
          example: POSITIVE
      title: Index
    LtrRequest:
      type: object
      properties:
        zip:
          type: string
          description: Area identifyed by zip
          example: "29634"
        date:
          type: string
          format: date
          description: Date in format ISO (YYYY-MM-DD)
          example: "2019-10-18"
        transportType:
          type: string
          enum:
            - VAN
            - REEFER
            - FLATBED
            - HOTSHOT
          description: Trailer type
          example: VAN
        location:
          type: string
          enum:
            - ORIGIN
            - DESTINATION
          description: Location type for influence calculation
          example: ORIGIN
      required:
        - zip
        - date
        - transportType
        - location
    LtrResponse:
      type: object
      properties:
        loadsInstant:
          type: number
          description: Number of loads instant value
          example: 256
        equipmentInstant:
          type: number
          description: Number of equipment instant value
          example: 140
        loadsDerivative:
          type: number
          description: Number of loads derivative value in percent
          example: 18
        equipmentDerivative:
          type: number
          description: Number of equipment derivative value in percent
          example: -15
        ltrInstant:
          type: number
          description: Load to truck ratio instant value
          example: 6
        ltrDerivative:
          type: number
          description: Load to truck ratio derivative value in percent
          example: 12
        ltrTrend:
          type: string
          enum:
            - FLAT
            - UP
            - DOWN
          description: LTR index trend
          example: UP
        ltrTrendOutcome:
          type: string
          enum:
            - NEGATIVE
            - POSITIVE
            - NEUTRAL
          description: LTR index trend outcome in market situation for broker's standpoint
          example: POSITIVE
    NegotiationResponse:
      type: object
      description: |
        Object with negotiation advice descriptors as properties.

        Structure is that of a map <advice_code, advice_data_object>
      properties:
        lastPaid:
          type: object
          description: >
            Last rate paid on this lane


            How we word it in our app:

            ```

            The last time we moved this load, we paid ${amount} to the ${carrier}


            Last Move: ${amount} on ${date}; ${carrier}

            ```
          properties:
            amount:
              type: number
              format: float
              description: cost
              example: 12345.67
            date:
              type: string
              format: date-time
              description: date
              example: "2020-01-13T16:00:00Z"
            days:
              type: integer
              description: Number of days used to calculate 'amount' and 'date'
              example: 30
            carrier:
              type: string
              description: Carrier name which got paid last time on this line
              example: Horns and hooves trucks
          required:
            - amount
            - date
            - days
        minPaid:
          type: object
          description: >
            Minimum rate paid on this lane


            How we word it in our app:

            ```

            The lowest we've moved this load in the last ${days} days is ${amount}


            Lowest Move: ${amount} on ${date}

            ```
          properties:
            amount:
              type: number
              format: float
              description: cost
              example: 12345.67
            date:
              type: string
              format: date-time
              description: date
              example: "2020-01-13T16:00:00Z"
            days:
              type: integer
              description: Number of days used to calculate 'amount' and 'date'
              example: 30
          required:
            - amount
            - date
            - days
        maxPaid:
          type: object
          description: |
            Maximum rate paid on this lane

            How we word it in our app:
            ```
            The most we have paid for this in the last ${days} days is ${amount}

            Max paid rate: ${amount} on ${date}
            ```
          properties:
            amount:
              type: number
              format: float
              description: cost
              example: 12345.67
            date:
              type: string
              format: date-time
              description: date
              example: "2020-01-13T16:00:00Z"
            days:
              type: integer
              description: Number of days used to calculate 'amount' and 'date'
              example: 30
          required:
            - amount
            - date
            - days
        avgShipperCost:
          type: object
          description: |
            Average shipper cost invoiced on this lane

            How we word it in our app:
            ```
            Over the last ${days} days our customer has been paying us ${amount}

            Days: ${days}. Average sell rate: ${amount}
            ```
          properties:
            amount:
              type: number
              format: float
              description: cost
              example: 12345.67
            days:
              type: integer
              description: Number of days used to calculate 'amount'
              example: 30
          required:
            - amount
            - days
        rateDiff:
          type: object
          description: |
            Difference between rates

            How we word it in our app:
            ```
            Rates are ${trendMain} by ${diff}% based on our data for this lane 
            in the last ${days} days

            Rates ${trendSub}: ${diff}%
            ```
          properties:
            diff:
              type: number
              format: float
              description: Difference between rates
              example: 12345.67
            days:
              type: integer
              description: Number of days used to calculate 'rateDiff'
              example: 30
          required:
            - diff
            - days
        laneLoadCount:
          type: object
          description: |
            Count of moves on this lane

            How we word it in our app:
            ```
            We have moved this lane ${loadCount} times in the last ${days} days

            Moves: ${loadCount}; Average rate: ${averageFlatRate}
            ```
          properties:
            loadCount:
              type: integer
              description: Number of loads on this lane during 'days'
              example: 12345
            averageFlatRate:
              type: number
              format: float
              description: Average flat rate of all loads during 'days'
              example: 12345.67
            days:
              type: integer
              description: Number of days used to calculate 'loadCount'
              example: 30
          required:
            - loadCount
            - averageFlatRate
            - days
        destinationNearHotMarket:
          type: object
          description: |
            Destination market is hot

            How we word it in our app:
            ```
            This load is delivering near a healthy market

            ${distance} to a red hot market
            ```
          properties:
            distance:
              type: number
              format: float
              description: Distance in miles from destination area to a healthy market
              example: 12345.67
          required:
            - distance
        destinationNearCarrierDomicile:
          type: object
          description: >
            Destination is near the carrier domicile


            How we word it in our app:

            ```

            It's likely that the carrier is trying to get home. Their headquarters 

            are ${distance} from delivery


            ${distance} to carrier domicile

            ```
          properties:
            distance:
              type: number
              format: float
              description: Distance in miles from destination area to carriers domicile
              example: 12345.67
          required:
            - distance
        nearTheEndOfThePeriod:
          type: object
          description: >
            This load is scheduled for pickup at the end 

            of the month / quarter / year


            How we word it in our app:

            ```

            This load is scheduled for pickup at the end of the ${period}. This 

            may increase carrier rates and make this load more difficult to cover


            End of ${period} pickup. Increased rates

            ```
          properties:
            period:
              type: string
              enum:
                - MONTH
                - FIRST_QUARTER
                - SECOND_QUARTER
                - THIRD_QUARTER
                - YEAR
              example: YEAR
          required:
            - period
        irregularBussinesHours:
          type: object
          description: |
            This load is scheduled for pickup outside of regular business hours

            How we word it in our app:
            ```
            This load is scheduled for pickup outside of regular 
            business hours (8am-6pm), this may increase carrier rates 
            and make this load more difficult to cover

            Irregular pickup hours. Increased rates
            ```
          properties:
            pickUptime:
              type: string
              format: time
              example: 12:00:00
          required:
            - pickUptime
        holidayIsComing:
          type: object
          deprecated: true
          description: |
            A holiday was found close to the pickup date

            How we word it in our app:
            ```
            if (days < 1) {
              The pickup date is scheduled for ${holiday}. This 
              may increase carrier rates and make loads more difficult to cover
              
              ${holiday} pickup. Increased rates
            } else {
              Remember, ${holiday} is coming up in ${days} day(s). This 
              may increase carrier rates and make loads more difficult to cover
              
              ${holiday} pickup. Increased rates
            }
            ```

            **deprecated** - use `comingEvents` instead
          properties:
            days:
              type: integer
              example: 3
            holiday:
              type: string
              enum:
                - CHRISTMAS
                - NEW_YEAR
                - MEMORIAL_DAY
                - WASHINGTONS_BIRTHDAY
                - MARTIN_LUTHER_KING
                - VETERANS_DAY
                - LABOR_DAY
                - INDEPENDENCE_DAYS
                - JUNETEENTH_INDEPENDENCE_DAY
                - COLUMBUS_DAY
                - THANKSGIVING
                - EASTER_WEEKEND
                - VICTORIA_DAY
                - CANADA_DAY
                - PROVINCIAL_DAY
                - NATIONAL_DAY_FOR_TRUTH_AND_RECONCILIATION
                - REMEMBRANCE_DAY
              example: CHRISTMAS
          required:
            - holiday
            - days
        inspectionWeeks:
          type: object
          deprecated: true
          description: |
            Pickup date is during inspection weeks

            How we word it in our app:
            ```
            The pickup date is scheduled for ${week}. This 
            may increase carrier rates and make loads more difficult to cover

            ${week} pickup. Increased rates
            ```

            **deprecated** - use `comingEvents` instead
          properties:
            name:
              type: string
              enum:
                - INTERNATIONAL_ROADCHECK
                - OPERATION_SAFE_DRIVER
                - BRAKE_SAFETY_WEEK
              example: BRAKE_SAFETY_WEEK
          required:
            - name
        comingEvents:
          type: array
          description: |
            A list of events that are beginning soon after the pickup date
            e.g. holidays or inspection weeks
          items:
            $ref: "#/components/schemas/ComingEvent"
        originLtrLow:
          type: object
          deprecated: true
          description: Deprecated
          properties:
            ltr:
              type: number
              format: float
              description: Origin area LTR
              example: 12345.67
          required:
            - ltr
        destinationLtrHigh:
          type: object
          deprecated: true
          description: Deprecated
          properties:
            ltr:
              type: number
              format: float
              description: Destination area LTR
              example: 12345.67
          required:
            - ltr
        currency:
          type: string
          description: Code of the currency of the response. Format is ISO 4217
          example: USD
    ComingEvent:
      type: object
      description: |
        A descriptor of an event that is beginning soon after the pickup date
      properties:
        name:
          type: string
          description: |
            Human readable name of the event 
            e.g. a holiday called 'Washington's Birthday'
          example: Washington's Birthday
        daysToBeginning:
          type: integer
          description: |
            The number of days left until the beginning of the event 
            starting from the pick up date
          example: 3
      required:
        - name
        - daysToBeginning
    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
    ResponseMessage:
      type: object
      properties:
        commonResponse:
          type: string
          x-enum-varnames:
            - not_readable_message
            - access_forbidden
            - item_not_found
            - request_timeout
            - request_validation
            - parse_error
            - internal_error
            - access_forbidden_companyId
            - method_not_allowed
            - missing_required_parameter
          enum:
            - "Body request is not readable : %s"
            - Access is forbidden
            - Item not found
            - Request timeout after {} sec
            - You have one or more errors in request structure
            - "Text '%s' could not be parsed in field: %s"
            - Internal server error
            - companyId in JWT token is not equals importCompanyId in request
              body
            - Method not allowed
            - Missing required parameter
        serviceResponse:
          type: string
externalDocs:
  description: Triumph Intelligence
  url: https://intelligence.triumph.io
servers:
  - url: https://testapi.greenscreens.ai/v1
    description: Testing server (dev environment)
  - url: https://betaapi.greenscreens.ai/v1
    description: Beta server (pre-production)
  - url: https://api.greenscreens.ai/v1
    description: Production server (uses live data)