Overview
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/

Authentication
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
Request Format
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.
Response Format
A JSON encoded object will be returned in plain text.
echo
This is a diagnostic action for testing connectivity, authentication and character encoding.
FieldDescriptionTypeRequired
phrase phrase to be echo'ed back String Yes
commodities
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
    }
]
countries
List of countries
FieldDescriptionTypeRequired
ecozoneid ECO Zone Filter Numeric No
equipments
List of equipments
transmodes
Get a list of transport mode IDs, given the source and destination countries.
FieldDescriptionTypeRequired
from Source Country ID numeric Yes
to Destination Country ID numeric Yes
quote_create
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.
FieldDescriptionTypeRequired
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"
}
quote_purchase
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.
FieldDescriptionTypeRequired
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"
}
certs
list all the purchased certificates.
cert_download
download the printable (PDF) version of a certificate, identified by the Certificate ID (certid) in the URL query parameter (GET).
cert_void
FieldDescriptionTypeRequired
certid Certificate ID numeric Yes
reason Reason for voiding string
Sample Request:
{
    "certid": 1234,
    "reason": "test reason"
}