{
  "openapi": "3.0.1",
  "info": {
    "title": "AIS Vessel Tracking API - Finland & Baltic Ships, Port Calls",
    "description": "AIS vessel tracking: live AIS ship positions, vessel details (IMO, type, destination, ETA, size) and Finnish port calls from the official Fintraffic Digitraffic open API (CC BY 4.0). Northern Baltic Sea, Gulf of Finland and Bothnia. From $0.50 per 1,000 vessels.",
    "version": "0.1",
    "x-build-id": "INHhXB9QvDbTF3Fb2"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/atlasdata~finland-ais-vessel-tracker-reliable/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-atlasdata-finland-ais-vessel-tracker-reliable",
        "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/atlasdata~finland-ais-vessel-tracker-reliable/runs": {
      "post": {
        "operationId": "runs-sync-atlasdata-finland-ais-vessel-tracker-reliable",
        "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/atlasdata~finland-ais-vessel-tracker-reliable/run-sync": {
      "post": {
        "operationId": "run-sync-atlasdata-finland-ais-vessel-tracker-reliable",
        "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": {
          "mode": {
            "title": "What to fetch",
            "enum": [
              "vessels",
              "portCalls"
            ],
            "type": "string",
            "description": "`vessels`: latest AIS position of each vessel seen by Finnish coastal stations (northern Baltic, Gulf of Finland, Gulf of Bothnia, Archipelago Sea, Saimaa) joined with name, IMO, type, destination, ETA and size. `portCalls`: port calls reported to Portnet for Finnish ports.",
            "default": "vessels"
          },
          "mmsi": {
            "title": "MMSI numbers",
            "type": "array",
            "description": "Optional. 9-digit MMSI numbers to track (both modes). Up to 200 in vessels mode, 20 in portCalls mode.",
            "items": {
              "type": "string"
            }
          },
          "imo": {
            "title": "IMO numbers",
            "type": "array",
            "description": "Optional. 7-digit IMO numbers (both modes).",
            "items": {
              "type": "string"
            }
          },
          "vesselName": {
            "title": "Vessel name contains",
            "type": "string",
            "description": "Optional, case-insensitive partial match on the vessel name (e.g. VIKING)."
          },
          "latitude": {
            "title": "Area centre latitude",
            "minimum": -90,
            "maximum": 90,
            "type": "number",
            "description": "Vessels mode. Decimal degrees, e.g. 60.15 for Helsinki. Use with longitude and radius to get only vessels in a circle."
          },
          "longitude": {
            "title": "Area centre longitude",
            "minimum": -180,
            "maximum": 180,
            "type": "number",
            "description": "Vessels mode. Decimal degrees, e.g. 24.95."
          },
          "radiusKm": {
            "title": "Radius (km)",
            "minimum": 1,
            "maximum": 1000,
            "type": "number",
            "description": "Vessels mode. Radius of the search circle around the centre point. Results are sorted by distance.",
            "default": 20
          },
          "shipCategories": {
            "title": "Ship categories",
            "type": "array",
            "description": "Vessels mode. Keep only these AIS ship categories. Empty = all.",
            "items": {
              "type": "string",
              "enum": [
                "cargo",
                "tanker",
                "passenger",
                "fishing",
                "tug",
                "pilot",
                "search-and-rescue",
                "law-enforcement",
                "military",
                "dredging",
                "sailing",
                "pleasure",
                "high-speed-craft",
                "wing-in-ground",
                "towing",
                "service",
                "other",
                "unknown"
              ]
            }
          },
          "maxAgeMinutes": {
            "title": "Max position age (minutes)",
            "minimum": 1,
            "maximum": 1440,
            "type": "integer",
            "description": "Vessels mode. Only vessels whose latest position is at most this old (1-1440).",
            "default": 60
          },
          "movingOnly": {
            "title": "Moving vessels only",
            "type": "boolean",
            "description": "Vessels mode. Skip vessels with speed under 0.5 knots (moored/anchored).",
            "default": false
          },
          "ports": {
            "title": "Ports (UN/LOCODE)",
            "type": "array",
            "description": "PortCalls mode. Finnish port codes, e.g. FIHEL Helsinki, FIKTK Kotka, FIHMN Hamina, FITKU Turku, FIRAU Rauma, FIOUL Oulu, FIKOK Kokkola, FIPOR Pori, FIHKO Hanko, FINLI Naantali, FIMHQ Mariehamn. Empty = all ports.",
            "items": {
              "type": "string"
            }
          },
          "from": {
            "title": "ETA from",
            "type": "string",
            "description": "PortCalls mode. Port calls with ETA on or after this time: 2026-10-29, 2026-10-29T12:00Z, now, today, -1 day, -12 hours.",
            "default": "-1 day"
          },
          "to": {
            "title": "ETA to",
            "type": "string",
            "description": "PortCalls mode. Port calls with ETA before this time: 2026-11-05, tomorrow, +7 days, +48 hours.",
            "default": "+7 days"
          },
          "status": {
            "title": "Call status",
            "type": "array",
            "description": "PortCalls mode. Keep only calls with this status (derived from actual arrival/departure times). Empty = all.",
            "items": {
              "type": "string",
              "enum": [
                "expected",
                "arrived",
                "departed"
              ]
            }
          },
          "maxItems": {
            "title": "Max results",
            "minimum": 1,
            "maximum": 5000,
            "type": "integer",
            "description": "Maximum number of records to return (and be charged for).",
            "default": 100
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}