> ## Documentation Index
> Fetch the complete documentation index at: https://docs.datadocked.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Get Satellite Historical Vessel Data

> Retrieve a combined satellite and terrestrial AIS track for a vessel. Available only on the satellite data plan; other accounts receive HTTP 400 and are not charged. Positions are sorted oldest to newest. Pricing is 5 credits per unique date with positions in the results; your balance must cover 5 credits per day of the requested range before the request runs, and a response with no positions is free. One request covers up to 90 days, history extends back 2 years, and a 90-day request can take up to about 30 seconds — set a client timeout of at least 60 seconds. Rate limit: 15 requests/min.

Retrieve a combined satellite and terrestrial AIS track for a vessel, sorted from oldest to newest.

> [!WARNING]
>
> This endpoint is **available only on the satellite data plan**. Requests from other accounts return HTTP 400 with the message `"This endpoint is available only for the satellite data plan."` and are not charged.

> [!NOTE]
>
> **Credits:** 5 credits per unique date with positions in the results (variable total). A response with no positions is free.

## Date Format

Dates must be provided in ISO 8601 format:

```
from_date=2026-01-01T00:00:00Z
to_date=2026-03-31T23:59:59Z
```

## Limits

* **Maximum date range: 90 days** per request
* Historical data extends back **2 years**
* A single request can return **tens of thousands of positions**

> [!TIP]
>
> To cover a period longer than 90 days, split it into consecutive windows of 90 days or less and send one request per window.

## Pricing & Pre-authorization

Credits are calculated per unique calendar date that has positions in the results. Before the request runs, your balance must cover **5 credits per day of the requested range** (even if some days end up without positions).

| Date Range | Pre-authorized Credits |
| - | - |
| 1 day | 5 credits |
| 1 week | 35 credits |
| 90 days | 450 credits |

Only dates that actually return positions are billed.

## Client Timeout

A 90-day request can take up to about **30 seconds** and return tens of thousands of positions. Set a client timeout of **at least 60 seconds**.

## Errors

* `400` `"This endpoint is available only for the satellite data plan."` — Account is not on the satellite plan.
* `400` `"History is available for the last 2 years only."` — `from_date` is older than 2 years.
* `400` — `to_date` in the future, `to_date` not after `from_date`, or range exceeds 90 days.

## Response Fields

* `count`: Number of unique dates with positions (used to compute credit charge)
* `response.status`: `"success"` or an error description
* `response.data[]`: Position records sorted by time (oldest first), each with:
  * `lat`: Latitude in decimal degrees
  * `lng`: Longitude in decimal degrees
  * `course`: Course over ground in degrees (`null` when not available)
  * `speed`: Speed over ground in knots (`null` when not available)
  * `time`: ISO 8601 UTC timestamp


## OpenAPI

````yaml GET /get-vessel-satellite-historical-data
openapi: 3.1.0
info:
  title: Data Docked Maritime API
  description: >-
    A comprehensive maritime data API providing real-time vessel tracking, port
    operations, inspection data, and more. Access AIS data, vessel particulars,
    management information, and historical tracking data.
  version: 1.0.0
  contact:
    name: Data Docked Support
    url: https://datadocked.com/contact
servers:
  - url: https://datadocked.com/api/vessels_operations
    description: Production server
security:
  - apiKey: []
tags:
  - name: Account
    description: Account management endpoints
  - name: Vessel Operations
    description: Vessel data, location, and tracking endpoints
  - name: Port Operations
    description: Port calls and port data endpoints
paths:
  /get-vessel-satellite-historical-data:
    get:
      tags:
        - Vessel Operations
      summary: Get Satellite Historical Vessel Data
      description: >-
        Retrieve a combined satellite and terrestrial AIS track for a vessel.
        Available only on the satellite data plan; other accounts receive HTTP
        400 and are not charged. Positions are sorted oldest to newest. Pricing
        is 5 credits per unique date with positions in the results; your balance
        must cover 5 credits per day of the requested range before the request
        runs, and a response with no positions is free. One request covers up to
        90 days, history extends back 2 years, and a 90-day request can take up
        to about 30 seconds — set a client timeout of at least 60 seconds. Rate
        limit: 15 requests/min.
      operationId: getVesselSatelliteHistoricalData
      parameters:
        - name: imo_or_mmsi
          in: query
          required: true
          description: >-
            The IMO or MMSI number of the vessel you want to retrieve the
            satellite and terrestrial track for.
          schema:
            type: string
          example: '9870666'
        - name: from_date
          in: query
          required: true
          description: >-
            Beginning of the date range in ISO 8601 format. Must be within the
            last 2 years. The range between from_date and to_date must be 90
            days max.
          schema:
            type: string
            format: date-time
          example: '2026-01-01T00:00:00Z'
        - name: to_date
          in: query
          required: true
          description: >-
            End of the date range in ISO 8601 format. Must not be in the future
            and must be later than from_date. The range between from_date and
            to_date must be 90 days max.
          schema:
            type: string
            format: date-time
          example: '2026-03-31T23:59:59Z'
      responses:
        '200':
          description: >-
            Successful response with combined satellite and terrestrial
            positions
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SatelliteHistoricalDataResponse'
        '400':
          description: >-
            Bad request - Invalid parameters, account not on satellite plan, or
            history older than 2 years
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '401':
          description: Unauthorized - Invalid or missing API key
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
components:
  schemas:
    SatelliteHistoricalDataResponse:
      type: object
      properties:
        count:
          type: integer
          description: >-
            Number of unique dates that have positions in the results. Credits
            are charged per date (5 credits each).
        response:
          type: object
          description: Wrapper object for the historical data response.
          properties:
            status:
              type: string
              description: '"success" or an error description.'
            data:
              type: array
              description: >-
                Satellite and terrestrial position records, sorted by time from
                oldest to newest.
              items:
                type: object
                properties:
                  lat:
                    type: number
                    description: Latitude of position fix in decimal degrees.
                  lng:
                    type: number
                    description: Longitude of position fix in decimal degrees.
                  course:
                    type: number
                    nullable: true
                    description: >-
                      Course over ground in degrees at the time of this fix.
                      null when not available.
                  speed:
                    type: number
                    nullable: true
                    description: >-
                      Speed over ground in knots at the time of this fix. null
                      when not available.
                  time:
                    type: string
                    format: date-time
                    description: ISO 8601 UTC timestamp of this position fix.
    Error:
      type: object
      properties:
        error:
          type: string
          description: Error type
        message:
          type: string
          description: Error message
  securitySchemes:
    apiKey:
      type: apiKey
      in: header
      name: x-api-key
      description: >-
        Your personal API key found in your profile dashboard at
        https://datadocked.com/dashboard/my_keys

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.