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.
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.
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
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.curl "https://apis.io/api/v1/apis/green-screens-ai-marketintelligence-api"
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
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.
# 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)