Skip to content

Python - Contract (Freight FFAs)

The API Data Explorer tool is useful for picking elements from the JSON dictionary that the API returns. The endpoint used is the following: /v1.0/contracts/{contract_ticker_symbol}/price-releases/.

jsonc
{
    "errors": [],
    "data": [
      {
        "id": 20240923,
        "contractId": "spark30ffa-monthly",
        "releaseDate": "2024-09-23",
        "previousPriceRelease": {
          "id": 20240920,
          "releaseDate": "2024-09-20"
        },
        "nextPriceRelease": {
          "id": 20240924,
          "releaseDate": "2024-09-24"
        },
        "assessmentWindowClosedAt": "2024-09-23T16:00:00Z",
        "assessmentWindowOpenedAt": "2024-09-23T14:30:00Z",
        "data": [
          {
            "revisionNumber": 0,
            "revisionPublishedAt": "2024-09-23T15:46:35.433066Z",
            "numberOfAssessors": null,
            "dataPoints": [
              {
                "index": 0,
                "deliveryPeriod": {
                  "type": "month",
                  "startAt": "2024-09-01",
                  "endAt": "2024-09-30",
                  "name": "M+0",
                  "lastAssessmentDate": "2024-09-27"
                },
                "yourAssessedPrice": null,
                "derivedPrices": {
                  "usdPerDay": {
                    "spark": "63000",
                    "sparkMin": "60000",
                    "sparkMax": "65000",
                    "portfolioPlayer": null,
                    "portfolioPlayerMin": null,
                    "portfolioPlayerMax": null,
                    "shipOwner": null,
                    "shipOwnerMin": null,
                    "shipOwnerMax": null
                  },
                  "usdPerMMBtu": {
                    "spark": "0.91",
                    "sparkMin": "0.89",
                    "sparkMax": "0.93",
                    "portfolioPlayer": null,
                    "portfolioPlayerMin": null,
                    "portfolioPlayerMax": null,
                    "shipOwner": null,
                    "shipOwnerMin": null,
                    "shipOwnerMax": null
                  }
                },
                "meta": [
                  {
                    "type": "freight-vessel-type",
                    "value": "174-2stroke"
                  }
                ]
              },
              {
                "index": 1,
                "deliveryPeriod": {
                  "type": "month",
                  "startAt": "2024-10-01",
                  "endAt": "2024-10-31",
                  "name": "M+1",
                  "lastAssessmentDate": "2024-10-30"
                },
                "yourAssessedPrice": null,
                "derivedPrices": {
                  "usdPerDay": {
                    "spark": "76250",
                    "sparkMin": "72000",
                    "sparkMax": "79000",
                    "portfolioPlayer": null,
                    "portfolioPlayerMin": null,
                    "portfolioPlayerMax": null,
                    "shipOwner": null,
                    "shipOwnerMin": null,
                    "shipOwnerMax": null
                  },
                  "usdPerMMBtu": {
                    "spark": "1.02",
                    "sparkMin": "0.99",
                    "sparkMax": "1.04",
                    "portfolioPlayer": null,
                    "portfolioPlayerMin": null,
                    "portfolioPlayerMax": null,
                    "shipOwner": null,
                    "shipOwnerMin": null,
                    "shipOwnerMax": null
                  }
                },
                "meta": [
                  {
                    "type": "freight-vessel-type",
                    "value": "174-2stroke"
                  }
                ]
              }
              //-----------------------**...**------------------------
            ]
          }
        ]
      }
      //-----------------------**...**------------------------
    ]
  }

Note

----**...**---- denotes repetition of the above dictionary

▲ prices and dates are given for sample purposes only

For simplicity, the JSON dictionary is denoted as response_json.

Indexation

Contract ID:

response_json["data"][0]["contractId"]

Release Date:

response_json["data"][0]["releaseDate"]

Delivery Period Start:

response_json["data"][0]["data"][0]["dataPoints"][0]["deliveryPeriod"]["startAt"]

Delivery Period Name:

response_json["data"][0]["data"][0]["dataPoints"][0]["deliveryPeriod"]["startAt"]

Price USD/MMBtu M+0:

response_json["data"][0]["data"][0]["dataPoints"][0]["derivedPrices"]["usdPerMMBtu"]["spark"]

Price USD/MMBtu M+1:

response_json["data"][0]["data"][0]["dataPoints"][1]["derivedPrices"]["usdPerMMBtu"]["spark"]

The JSON dictionary is the result of a successful request to the contract API endpoint using the Contract ID as the unique identifier for the Spark30 FFA Atlantic assessment. The Delivery Period Start/End refer to the delivery period of the assessment released on the Release Date. Assumptions made for the calculation are specified in the “meta” key within the JSON dictionary, it includes the type of assumptions and the details of these assumptions. Prices in USD or in USD per MMBtu denote the Spark30 FFA assessments for that Release Date: the minimum and maximum of these values are only accessible with a full subscription.