The Freight Insurance Fast (FIF) API uses authenticated web requests to perform quote and certification transactions without a graphical user interface.
Note: This is version 1.0 of the API. For v2.0, use
this documentation.
API Endpoint: https://quote.freightinsurancefast.com/api/
The account that's used for signing in the FIF website is a user account. Each User Account is part of a synthetic Company Account.
Multiple users can be linked to the same company account.
In both the Quote and Certification view a dropdown list of users may be visible if multiple user accounts are associated with the company account.
A FIF API account is linked to a company-level account; it is accessed with an account id and a secret key.
The secret key is a shared secret between the FIF server and the requesting client. It is never directly transmitted. Instead, the key is used to compute a validation token that further authenticates each web request.
Each request contains an action. The authentication token is an SHA1 digest of the account id, the secret key, action and an hourly timestamp.
A timestamp uses the YYYY-MM-DD-HH format, where HH is the 24-hour representation of the hour. The time components are not zero-padded.
For example, March 5, 2019 at 7:20pm is written as 2019-3-5-19. The logical timezone is Pacific Time with applicable daylight saving. i.e. PST and PDT.
Each part of the token calculation is separated by a hyphan ("-"). For example, an API account 123 with an API key of "abc" computes the token on March 5, 2019 at 7:20pm:
token = SHA1 (123-abc-quotes-2019-3-5-19)
= f2be53c1003e4832a9f070c28f77a5b5b623a435
Requests are sent in GET via HTTPS. The following fields must always be included:
accountid
action
token
Requests with additional payloads are sent in POST.
A JSON encoded object will be returned in plain text.
This is a diagnostic action for testing connectivity, authentication and character encoding.
| Field | Description | Type | Required |
| phrase |
phrase to be echo'ed back |
String |
Yes |
List of Commodity IDs, names and other meta info
Sample Response:
[
{
"commodityid": 402,
"keywords": "",
"name": "Rock Crushers (USED)",
"conditionlock": 2
},
{
"commodityid": 403,
"keywords": "Arrive Bottle Liquor",
"name": "Arrive Reserved-L",
"conditionlock": 0
}
]
List of countries
| Field | Description | Type | Required |
| ecozoneid |
ECO Zone Filter |
Numeric |
No |
List of equipments
Get a list of transport mode IDs, given the source and destination countries.
| Field | Description | Type | Required |
| from |
Source Country ID |
numeric |
Yes |
| to |
Destination Country ID |
numeric |
Yes |
To create a quote, a JSON-encoded request object must be sent via POST. The accountid, action and token are still sent as GET parameters.
| Field | Description | Type | Required |
| ratesonly |
when set to 1, calculate the rates without creating a quote |
numeric |
No |
| from |
Source Country ID |
numeric |
Yes |
| to |
Destination Country ID |
numeric |
Yes |
| transmodeid |
Transport Mode; use transmodes to obtain valid options |
numeric |
Yes |
| loadtype |
Load Type: Full, or Partial Truck Load |
ftl or ltl |
|
| instotal |
Insured Total |
numeric |
Yes |
| insded |
Deductibles |
numeric |
Yes |
| commodityid |
Commodity ID; use commodities to obtain valid options |
numeric |
Yes |
| commoditynotes |
Description of Commodity |
string |
Yes |
| condition |
New or Used |
string |
No |
| reefer |
Whether refrigerated equipment will be used. 0-No; 1-Yes |
numeric |
No |
Sample Request:
{
"ratesonly": 1,
"from": 199,
"to": 199,
"transmodeid": 1,
"additionalnotes": "test",
"instotal": 500000,
"insded": 1000,
"commodityid": 1,
"loadtype": "ltl",
"commoditynotes": "commodity description",
"condition": "Used"
}
To purchase a quote, a JSON-encoded request object must be sent via POST. The accountid, action and token are still sent as GET parameters.
| Field | Description | Type | Required |
| quoteid |
|
numeric |
Yes |
| owner |
Owner |
string |
Yes |
| owneraddr |
Owner's Street Address (required for QBE) |
string |
Yes |
| ownercity |
Owner's City (required for QBE) |
string |
Yes |
| ownerprov |
Owner's State or Province (required for QBE) |
string |
Yes |
| ownerzip |
Owner's ZIP |
string |
Yes |
| ownercountry |
Owner's Country (required for QBE) |
string |
Yes |
| consignee |
|
string |
No |
| reference |
|
string |
No |
| broker |
|
string |
No |
| carrier |
|
string |
Yes |
| docket |
|
string |
No |
| equipmentid |
call equipments for options |
numeric |
Yes |
| pieces |
|
numeric |
Yes |
| weight |
weight in lbs when unit unspecified |
numeric or string |
Yes |
| shipdate |
Shipment Date |
YYYY-MM-DD |
Yes |
| fromcity |
Originating City |
string |
Yes |
| fromstate |
Originating State |
string |
Yes |
| tocity |
Destination City |
string |
Yes |
| tostate |
Destination State |
string |
Yes |
Sample Request:
{
"quoteid": 49622,
"owner": "Bob",
"consignee": "Joe",
"reference": "aaa-123",
"broker": "broker-one",
"carrier": "Some other carrier",
"docket": "ddd",
"equipmentid": 5,
"pieces": 1,
"weight": "500 lb",
"shipdate": "2020-6-12",
"fromcity": "San Jose",
"fromstate": "CA",
"tocity": "Houston",
"tostate": "TX"
}
list all the purchased certificates.
download the printable (PDF) version of a certificate, identified by the Certificate ID (certid) in the URL query parameter (GET).
| Field | Description | Type | Required |
| certid |
Certificate ID |
numeric |
Yes |
| reason |
Reason for voiding |
string |
|
Sample Request:
{
"certid": 1234,
"reason": "test reason"
}