Authentication

You will need to authenticate your requests to access any of the endpoints in the Action Intel API. In this guide, we will look at how authentication works using API key authentication — the secure way to access our maritime and barge analytics data.

API Key Authentication

The Action Intel API uses API key authentication for secure access to all endpoints. When establishing a connection, you will need your API key — you can generate one from your Dashboard under API Key Management. Here's how to add the API key to the request header using cURL:

curl -X GET "https://api.actionintelgo.com/tow-tracker/list-positions?mmsi=123456789" \
  -H "x-api-key: aipk_your_api_key_here" \
  -H "Content-Type: application/json"

Always keep your API key safe and regenerate it if you suspect any unauthorized use. You can manage your keys from the Dashboard.

Authentication Headers

All API requests must include the following headers:

  • x-api-key: aipk_your_api_key_here
  • Content-Type: application/json

API Key Format

Action Intel API keys follow a specific format for easy identification:

  • Platform Keys: aipk_ prefix for all environments

Example: aipk_xn7brc0ssfzr0zpr

Rate Limits

Each organization has usage limits to ensure fair access:

  • Monthly Limit: 45,000 requests per organization
  • Usage Tracking: Monitor your usage in the Dashboard
  • Rate Limit Response: HTTP 429 when limits are exceeded

API Key Management

You can manage your API keys through the dashboard:

  • Generate New Keys: Create additional API keys for different applications
  • Regenerate Keys: Rotate keys while maintaining access
  • Delete Keys: Remove unused keys for security
  • Monitor Usage: Track API usage per key

Example Requests

Here are examples of authenticated requests to different Action Intel API endpoints:

Tow Tracker - Get Vessel Positions

curl -X GET "https://api.actionintelgo.com/tow-tracker/list-positions?mmsi=368010950" \
  -H "x-api-key: aipk_your_api_key_here" \
  -H "Content-Type: application/json"
Sample Response:
[
  {
    "mmsi": "368010950",
    "vesselname": "FORT DEFIANCE",
    "owner": null,
    "horsepower": null,
    "date_time_ct": "2025-08-10T01:35:11-05:00",
    "river": "GIWW-WEST",
    "mile_marker": "MM 347",
    "reported_speed_knots": 0.0,
    "reported_nav_status": "Underway",
    "direction": "Downbound"
  }
]

Tow Tracker - Get ETA Prediction

curl -X GET "https://api.actionintelgo.com/tow-tracker/get-eta?mmsi=123456789&destination_river=Mississippi&destination_mile_marker=301" \
  -H "x-api-key: aipk_your_api_key_here" \
  -H "Content-Type: application/json"

Barge AI - Transit Time Analysis

curl -X GET "https://api.actionintelgo.com/barge-ai/transit-time?river=Mississippi&owner=ACBL&start_date=2025-07-01&end_date=2025-07-15" \
  -H "x-api-key: aipk_your_api_key_here" \
  -H "Content-Type: application/json"

Error Responses

The API returns standard HTTP status codes. Common authentication errors:

  • 401 Unauthorized: Missing or invalid API key
  • 403 Forbidden: API key doesn't have access to requested product
  • 429 Too Many Requests: Monthly usage limit exceeded

Example Error Response (429)

{
  "error": "Rate limit exceeded",
  "message": "Monthly usage limit of 45,000 requests exceeded",
  "retry_after": "2025-09-01T00:00:00Z"
}