{
  "openapi": "3.0.1",
  "info": {
    "title": "Oil Tanker Tracking API - Cargo Flows, LNG, LPG, Fixtures",
    "description": "Oil tanker cargo tracking from the Vortexa API: crude oil, refined products, LNG and LPG cargo movements, export and import flow time series, top origin and destination breakdowns, tanker fixtures, plus port, product, vessel and charterer lookups. Bring your own key.",
    "version": "0.1",
    "x-build-id": "WGv2UaVgNqr4q93fz"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/nabeelbaghoor~oil-tanker-cargo-flows-api/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-nabeelbaghoor-oil-tanker-cargo-flows-api",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/acts/nabeelbaghoor~oil-tanker-cargo-flows-api/runs": {
      "post": {
        "operationId": "runs-sync-nabeelbaghoor-oil-tanker-cargo-flows-api",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor and returns information about the initiated run in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/runsResponseSchema"
                }
              }
            }
          }
        }
      }
    },
    "/acts/nabeelbaghoor~oil-tanker-cargo-flows-api/run-sync": {
      "post": {
        "operationId": "run-sync-nabeelbaghoor-oil-tanker-cargo-flows-api",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    }
  },
  "components": {
    "schemas": {
      "inputSchema": {
        "type": "object",
        "properties": {
          "apiKey": {
            "title": "Vortexa API key",
            "type": "string",
            "description": "Your own Vortexa API key, a UUID of the form xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx. Vortexa issues API keys to its subscribers; the authentication page on docs.vortexa.com says where to find yours. Optional only when the DATA_API_KEY secret is set on the actor; otherwise the run ends with an explanation and nothing is charged."
          },
          "mode": {
            "title": "What to get",
            "enum": [
              "cargoMovements",
              "cargoMovementById",
              "timeSeries",
              "originBreakdown",
              "destinationBreakdown",
              "fixtures",
              "geographies",
              "products",
              "vessels",
              "charterers"
            ],
            "type": "string",
            "description": "Cargo movements lists every tanker cargo matching the filters. Cargo flow time series sums volumes or counts per day, week, month, quarter or year. Origin and destination breakdowns rank the top loading or discharge geographies. Tanker fixtures lists reported charter fixtures. Geographies, products, vessels and charterers give the IDs the other modes filter on.",
            "default": "cargoMovements"
          },
          "dateFrom": {
            "title": "From date (UTC)",
            "type": "string",
            "description": "Cargo movements, time series, breakdowns and fixtures. First UTC date or date and time, such as 2026-10-01 or 2026-10-01 06:00. Leave both dates empty for the last 7 days."
          },
          "dateTo": {
            "title": "To date (UTC)",
            "type": "string",
            "description": "Last UTC date or date and time, such as 2026-10-31; a bare date includes the whole day. Empty means now."
          },
          "activity": {
            "title": "Activity",
            "enum": [
              "loading_state",
              "loading_start",
              "loading_end",
              "identified_for_loading_state",
              "unloading_state",
              "unloading_start",
              "unloading_end",
              "unloaded_state",
              "storing_state",
              "storing_start",
              "storing_end",
              "transiting_state",
              "any_activity",
              "oil_on_water_state",
              "waypoint_start",
              "waypoint_end"
            ],
            "type": "string",
            "description": "Cargo movements, time series and breakdowns. Which part of a voyage the date range applies to: loading, unloading, floating storage, transit and more. Unloaded and oil on water apply to cargo movements and time series only; any activity to cargo movements and breakdowns.",
            "default": "loading_state"
          },
          "originIds": {
            "title": "Origin geography IDs",
            "type": "array",
            "description": "Cargo movements, time series, breakdowns and fixtures. Vortexa geography IDs of load countries, ports, terminals or regions, one per line, from the Geographies mode.",
            "items": {
              "type": "string"
            }
          },
          "destinationIds": {
            "title": "Destination geography IDs",
            "type": "array",
            "description": "Vortexa geography IDs of discharge countries, ports, terminals or regions, from the Geographies mode.",
            "items": {
              "type": "string"
            }
          },
          "productIds": {
            "title": "Product IDs",
            "type": "array",
            "description": "Vortexa product IDs such as crude, diesel, gasoline, naphtha, fuel oil, LNG or LPG, from the Products mode. A parent product includes its grades.",
            "items": {
              "type": "string"
            }
          },
          "vesselIds": {
            "title": "Vessel IDs",
            "type": "array",
            "description": "Vortexa vessel IDs from the Vessels mode.",
            "items": {
              "type": "string"
            }
          },
          "chartererIds": {
            "title": "Charterer IDs",
            "type": "array",
            "description": "Vortexa charterer (corporation) IDs from the Charterers mode.",
            "items": {
              "type": "string"
            }
          },
          "vesselClasses": {
            "title": "Vessel classes",
            "type": "array",
            "description": "Flow modes and Vessels. Tanker and gas carrier size classes, such as VLCC, Suezmax, Aframax, MR, VLGC or Q-Max.",
            "items": {
              "type": "string",
              "enum": [
                "oil_coastal",
                "oil_intermediate",
                "oil_flexi",
                "oil_handysize",
                "oil_mr1",
                "oil_handymax",
                "oil_mr2",
                "oil_panamax",
                "oil_lr1",
                "oil_aframax",
                "oil_lr2",
                "oil_suezmax",
                "oil_lr3",
                "oil_vlcc",
                "oil_specialised",
                "oil_handysize_mr1",
                "oil_handymax_mr2",
                "oil_panamax_lr1",
                "oil_aframax_lr2",
                "oil_suezmax_lr3",
                "lpg_coasters",
                "lpg_handysize",
                "lpg_sgc",
                "lpg_mgc",
                "lpg_lgc",
                "lpg_vlgc",
                "lpg_vlec",
                "lpg_vlgc_vlec",
                "lng_small_scale_lng",
                "lng_mid_scale_lng",
                "lng_two_stroke",
                "lng_tfde_dfde",
                "lng_steam",
                "lng_ssd",
                "lng_q_flex",
                "lng_q_max",
                "lng_conventional_lng",
                "lng_q_fleet",
                "oil",
                "lpg",
                "lng"
              ],
              "enumTitles": [
                "Oil Coastal",
                "Oil Intermediate",
                "Oil Flexi",
                "Oil Handysize",
                "Oil MR1",
                "Oil Handymax",
                "Oil MR2",
                "Oil Panamax",
                "Oil LR1",
                "Oil Aframax",
                "Oil LR2",
                "Oil Suezmax",
                "Oil LR3",
                "Oil VLCC",
                "Oil Specialised",
                "Oil Handysize MR1",
                "Oil Handymax MR2",
                "Oil Panamax LR1",
                "Oil Aframax LR2",
                "Oil Suezmax LR3",
                "LPG Coasters",
                "LPG Handysize",
                "LPG SGC",
                "LPG MGC",
                "LPG LGC",
                "LPG VLGC",
                "LPG VLEC",
                "LPG VLGC VLEC",
                "LNG Small Scale",
                "LNG Mid Scale",
                "LNG Two Stroke",
                "LNG TFDE DFDE",
                "LNG Steam",
                "LNG SSD",
                "LNG Q Flex",
                "LNG Q Max",
                "LNG Conventional",
                "LNG Q Fleet",
                "Oil (all classes)",
                "LPG (all classes)",
                "LNG (all classes)"
              ]
            }
          },
          "storageLocationIds": {
            "title": "Floating storage location IDs",
            "type": "array",
            "description": "Cargo movements, time series and breakdowns. Geography IDs of floating storage areas.",
            "items": {
              "type": "string"
            }
          },
          "waypointIds": {
            "title": "Waypoint IDs",
            "type": "array",
            "description": "Cargo movements, time series and breakdowns. Geography IDs of waypoints such as the Suez Canal, Panama Canal or a strait the cargo passed.",
            "items": {
              "type": "string"
            }
          },
          "intraMovements": {
            "title": "Intra movements",
            "enum": [
              "any",
              "all",
              "exclude_intra_country",
              "exclude_intra_geography"
            ],
            "type": "string",
            "description": "Cargo movements, time series and breakdowns. Whether cargoes that leave and re-enter the same country or geography are counted.",
            "default": "any"
          },
          "vesselScrubbers": {
            "title": "Scrubber filter",
            "enum": [
              "disabled",
              "inc",
              "exc"
            ],
            "type": "string",
            "description": "Cargo movements, breakdowns, fixtures and Vessels. Only vessels with scrubbers fitted, only vessels without, or no filter.",
            "default": "disabled"
          },
          "quantityUnit": {
            "title": "Quantity unit",
            "enum": [
              "b",
              "t",
              "cbm"
            ],
            "type": "string",
            "description": "Cargo movements (barrels or tonnes) and Cargo movement by ID (also cubic metres).",
            "default": "b"
          },
          "cargoMovementIds": {
            "title": "Cargo movement IDs",
            "type": "array",
            "description": "Cargo movement by ID only. Long or short cargo movement IDs from the Cargo movements mode, one per line, up to 200.",
            "items": {
              "type": "string"
            }
          },
          "timeseriesFrequency": {
            "title": "Frequency",
            "enum": [
              "day",
              "week",
              "doe_week",
              "month",
              "quarter",
              "year"
            ],
            "type": "string",
            "description": "Time series only. The size of each time bucket; DOE week follows the US EIA reporting week.",
            "default": "day"
          },
          "timeseriesUnit": {
            "title": "Time series unit",
            "enum": [
              "b",
              "bpd",
              "t",
              "tpd",
              "c",
              "cpd"
            ],
            "type": "string",
            "description": "Time series only. The metric summed in each bucket.",
            "default": "b"
          },
          "timeseriesSplit": {
            "title": "Split by",
            "enum": [
              "none",
              "quantity",
              "waypoint_selected",
              "origin_country",
              "origin_port",
              "origin_region",
              "origin_trading_region",
              "origin_shipping_region",
              "origin_terminal",
              "origin_trading_sub_region",
              "origin_shipping_region_v2",
              "origin_basin",
              "origin_wider_shipping_region",
              "origin_country_zone",
              "origin_alternative_region",
              "origin_state_or_province",
              "destination_country",
              "destination_port",
              "destination_region",
              "destination_shipping_region",
              "destination_terminal",
              "destination_trading_region",
              "destination_trading_sub_region",
              "destination_basin",
              "destination_shipping_region_v2",
              "destination_wider_shipping_region",
              "destination_country_zone",
              "destination_alternative_region",
              "destination_state_or_province",
              "product_category",
              "product_grade",
              "product_group",
              "product_group_product",
              "vessel_class_group",
              "vessel_class_coarse",
              "vessel_class_granular",
              "vessel_flag",
              "storage_location_country",
              "storage_location_region",
              "storage_location_shipping_region_v2",
              "storage_location_trading_sub_region",
              "shipper",
              "consignee"
            ],
            "type": "string",
            "description": "Time series only. Splits each bucket by origin, destination, product, vessel class, flag, storage location, shipper or consignee; the split comes back in the breakdown column.",
            "default": "none"
          },
          "breakdownGeography": {
            "title": "Breakdown geography level",
            "enum": [
              "berth",
              "terminal",
              "port",
              "country",
              "country_zone",
              "shipping_region",
              "shipping_region_v2",
              "wider_shipping_region",
              "region",
              "alternative_region",
              "trading_block",
              "trading_region",
              "trading_subregion",
              "state_or_province",
              "sts_zone",
              "waypoint",
              "storage",
              "storage_terminal",
              "basin",
              "root"
            ],
            "type": "string",
            "description": "Breakdowns only. The geography level the ranking groups by, such as country, port, terminal or shipping region.",
            "default": "country"
          },
          "breakdownUnit": {
            "title": "Breakdown unit",
            "enum": [
              "b",
              "t",
              "cbm",
              "bpd",
              "tpd",
              "mpd"
            ],
            "type": "string",
            "description": "Breakdowns only. The metric each geography is ranked by.",
            "default": "b"
          },
          "breakdownSize": {
            "title": "Top N geographies",
            "minimum": 1,
            "maximum": 1000,
            "type": "integer",
            "description": "Breakdowns only. How many top geographies to return.",
            "default": 20
          },
          "searchTerms": {
            "title": "Search terms",
            "type": "array",
            "description": "Geographies, products, vessels and charterers. Names or parts of names, one per line, such as Rotterdam, China, Diesel, Crude or a tanker name. Matches similar names too.",
            "items": {
              "type": "string"
            }
          },
          "referenceIds": {
            "title": "Product or vessel IDs",
            "type": "array",
            "description": "Products and Vessels only. Look up these exact Vortexa IDs.",
            "items": {
              "type": "string"
            }
          },
          "geographyLayer": {
            "title": "Geography layer",
            "enum": [
              "any",
              "terminal",
              "port",
              "country",
              "country_zone",
              "shipping_region",
              "shipping_region_v2",
              "wider_shipping_region",
              "region",
              "alternative_region",
              "trading_block",
              "trading_region",
              "trading_subregion",
              "state_or_province",
              "sts_zone",
              "waypoint",
              "storage",
              "storage_terminal",
              "basin",
              "root"
            ],
            "type": "string",
            "description": "Geographies only. Only geographies of this kind.",
            "default": "any"
          },
          "productLayer": {
            "title": "Product layer",
            "enum": [
              "any",
              "group",
              "group_product",
              "category",
              "grade"
            ],
            "type": "string",
            "description": "Products only. Group (such as crude or clean products), group product, category or grade.",
            "default": "any"
          },
          "productParentIds": {
            "title": "Parent product IDs",
            "type": "array",
            "description": "Products only. Returns the direct children of these product IDs.",
            "items": {
              "type": "string"
            }
          },
          "maxResults": {
            "title": "Max results",
            "minimum": 1,
            "maximum": 100000,
            "type": "integer",
            "description": "The most rows this run returns across all lookups. Each row with data is charged once.",
            "default": 100
          },
          "requestsPerMinute": {
            "title": "Requests per minute",
            "minimum": 1,
            "maximum": 300,
            "type": "integer",
            "description": "Pacing ceiling for calls to the Vortexa API. Lower it if your subscription has a tighter rate limit.",
            "default": 30
          }
        }
      },
      "runsResponseSchema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "properties": {
              "id": {
                "type": "string"
              },
              "actId": {
                "type": "string"
              },
              "userId": {
                "type": "string"
              },
              "startedAt": {
                "type": "string",
                "format": "date-time",
                "example": "2025-01-08T00:00:00.000Z"
              },
              "finishedAt": {
                "type": "string",
                "format": "date-time",
                "example": "2025-01-08T00:00:00.000Z"
              },
              "status": {
                "type": "string",
                "example": "READY"
              },
              "meta": {
                "type": "object",
                "properties": {
                  "origin": {
                    "type": "string",
                    "example": "API"
                  },
                  "userAgent": {
                    "type": "string"
                  }
                }
              },
              "stats": {
                "type": "object",
                "properties": {
                  "inputBodyLen": {
                    "type": "integer",
                    "example": 2000
                  },
                  "rebootCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "restartCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "resurrectCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "computeUnits": {
                    "type": "integer",
                    "example": 0
                  }
                }
              },
              "options": {
                "type": "object",
                "properties": {
                  "build": {
                    "type": "string",
                    "example": "latest"
                  },
                  "timeoutSecs": {
                    "type": "integer",
                    "example": 300
                  },
                  "memoryMbytes": {
                    "type": "integer",
                    "example": 1024
                  },
                  "diskMbytes": {
                    "type": "integer",
                    "example": 2048
                  }
                }
              },
              "buildId": {
                "type": "string"
              },
              "defaultKeyValueStoreId": {
                "type": "string"
              },
              "defaultDatasetId": {
                "type": "string"
              },
              "defaultRequestQueueId": {
                "type": "string"
              },
              "buildNumber": {
                "type": "string",
                "example": "1.0.0"
              },
              "containerUrl": {
                "type": "string"
              },
              "usage": {
                "type": "object",
                "properties": {
                  "ACTOR_COMPUTE_UNITS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_WRITES": {
                    "type": "integer",
                    "example": 1
                  },
                  "KEY_VALUE_STORE_LISTS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_INTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_EXTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_SERPS": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_UNBLOCKER_UNITS": {
                    "type": "integer",
                    "example": 0
                  }
                }
              },
              "usageTotalUsd": {
                "type": "number",
                "example": 0.00005
              },
              "usageUsd": {
                "type": "object",
                "properties": {
                  "ACTOR_COMPUTE_UNITS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_WRITES": {
                    "type": "number",
                    "example": 0.00005
                  },
                  "KEY_VALUE_STORE_LISTS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_INTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_EXTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_SERPS": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_UNBLOCKER_UNITS": {
                    "type": "integer",
                    "example": 0
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}