flight-intel

Real-time aircraft tracking and airspace intelligence via OpenSky Network. Live flight positions, regional traffic analysis, and aircraft monitoring for B2A applications.

  • 9 Entrypoints
  • v1.0.0 Version
  • Enabled Payments
flight-intel-production.up.railway.app

Entrypoints

Explore the capabilities exposed by this agent. Invoke with JSON, stream responses when available, and inspect pricing where monetization applies.

overview

Invoke

Free overview of current global flight activity - sample data to try before buying

Pricing Free
Network base
Invoke Endpoint POST /entrypoints/overview/invoke
Input Schema
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {},
  "additionalProperties": false
}
Invoke with curl
curl -s -X POST \
  'https://flight-intel-production.up.railway.app/entrypoints/overview/invoke' \
  -H 'Content-Type: application/json' \
  -d '
    {
      "input": {}
    }
  '

region

Invoke

Get all aircraft in a geographic bounding box. Returns real-time positions, altitudes, speeds, and callsigns.

Pricing Free
Network base
Invoke Endpoint POST /entrypoints/region/invoke
Input Schema
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "lamin": {
      "type": "number",
      "minimum": -90,
      "maximum": 90,
      "description": "Latitude minimum (south boundary)"
    },
    "lamax": {
      "type": "number",
      "minimum": -90,
      "maximum": 90,
      "description": "Latitude maximum (north boundary)"
    },
    "lomin": {
      "type": "number",
      "minimum": -180,
      "maximum": 180,
      "description": "Longitude minimum (west boundary)"
    },
    "lomax": {
      "type": "number",
      "minimum": -180,
      "maximum": 180,
      "description": "Longitude maximum (east boundary)"
    },
    "limit": {
      "default": 100,
      "description": "Max results to return",
      "type": "number"
    }
  },
  "required": [
    "lamin",
    "lamax",
    "lomin",
    "lomax",
    "limit"
  ],
  "additionalProperties": false
}
Invoke with curl
curl -s -X POST \
  'https://flight-intel-production.up.railway.app/entrypoints/region/invoke' \
  -H 'Content-Type: application/json' \
  -d '
    {
      "input": {
        "lamin": -90,
        "lamax": -90,
        "lomin": -180,
        "lomax": -180,
        "limit": 0
      }
    }
  '

track

Invoke

Track specific aircraft by ICAO24 hex address. Get current position and status.

Pricing Free
Network base
Invoke Endpoint POST /entrypoints/track/invoke
Input Schema
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "icao24": {
      "type": "string",
      "minLength": 6,
      "maxLength": 6,
      "description": "ICAO24 hex address of aircraft (e.g., \"a101c3\")"
    }
  },
  "required": [
    "icao24"
  ],
  "additionalProperties": false
}
Invoke with curl
curl -s -X POST \
  'https://flight-intel-production.up.railway.app/entrypoints/track/invoke' \
  -H 'Content-Type: application/json' \
  -d '
    {
      "input": {
        "icao24": "<ICAO24 hex address of aircraft (e.g., \"a101c3\")>"
      }
    }
  '

airspace

Invoke

Analyze airspace in a region - traffic by altitude band, speed distribution, and aircraft types.

Pricing Free
Network base
Invoke Endpoint POST /entrypoints/airspace/invoke
Input Schema
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "lamin": {
      "type": "number",
      "minimum": -90,
      "maximum": 90
    },
    "lamax": {
      "type": "number",
      "minimum": -90,
      "maximum": 90
    },
    "lomin": {
      "type": "number",
      "minimum": -180,
      "maximum": 180
    },
    "lomax": {
      "type": "number",
      "minimum": -180,
      "maximum": 180
    }
  },
  "required": [
    "lamin",
    "lamax",
    "lomin",
    "lomax"
  ],
  "additionalProperties": false
}
Invoke with curl
curl -s -X POST \
  'https://flight-intel-production.up.railway.app/entrypoints/airspace/invoke' \
  -H 'Content-Type: application/json' \
  -d '
    {
      "input": {
        "lamin": -90,
        "lamax": -90,
        "lomin": -180,
        "lomax": -180
      }
    }
  '

density

Invoke

Calculate traffic density grid for a region. Returns aircraft count per grid cell.

Pricing Free
Network base
Invoke Endpoint POST /entrypoints/density/invoke
Input Schema
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "lamin": {
      "type": "number",
      "minimum": -90,
      "maximum": 90
    },
    "lamax": {
      "type": "number",
      "minimum": -90,
      "maximum": 90
    },
    "lomin": {
      "type": "number",
      "minimum": -180,
      "maximum": 180
    },
    "lomax": {
      "type": "number",
      "minimum": -180,
      "maximum": 180
    },
    "gridSize": {
      "default": 4,
      "description": "Grid divisions per axis (e.g., 4 = 16 cells)",
      "type": "number"
    }
  },
  "required": [
    "lamin",
    "lamax",
    "lomin",
    "lomax",
    "gridSize"
  ],
  "additionalProperties": false
}
Invoke with curl
curl -s -X POST \
  'https://flight-intel-production.up.railway.app/entrypoints/density/invoke' \
  -H 'Content-Type: application/json' \
  -d '
    {
      "input": {
        "lamin": -90,
        "lamax": -90,
        "lomin": -180,
        "lomax": -180,
        "gridSize": 0
      }
    }
  '

report

Invoke

Comprehensive airspace report with traffic analysis, altitude bands, speed stats, country breakdown, and density hotspots.

Pricing Free
Network base
Invoke Endpoint POST /entrypoints/report/invoke
Input Schema
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "lamin": {
      "type": "number",
      "minimum": -90,
      "maximum": 90
    },
    "lamax": {
      "type": "number",
      "minimum": -90,
      "maximum": 90
    },
    "lomin": {
      "type": "number",
      "minimum": -180,
      "maximum": 180
    },
    "lomax": {
      "type": "number",
      "minimum": -180,
      "maximum": 180
    }
  },
  "required": [
    "lamin",
    "lamax",
    "lomin",
    "lomax"
  ],
  "additionalProperties": false
}
Invoke with curl
curl -s -X POST \
  'https://flight-intel-production.up.railway.app/entrypoints/report/invoke' \
  -H 'Content-Type: application/json' \
  -d '
    {
      "input": {
        "lamin": -90,
        "lamax": -90,
        "lomin": -180,
        "lomax": -180
      }
    }
  '

analytics

Invoke

Payment analytics summary

Pricing Free
Network base
Invoke Endpoint POST /entrypoints/analytics/invoke
Input Schema
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "windowMs": {
      "description": "Time window in ms",
      "type": "number"
    }
  },
  "additionalProperties": false
}
Invoke with curl
curl -s -X POST \
  'https://flight-intel-production.up.railway.app/entrypoints/analytics/invoke' \
  -H 'Content-Type: application/json' \
  -d '
    {
      "input": {
        "windowMs": 0
      }
    }
  '

analytics-transactions

Invoke

Recent payment transactions

Pricing Free
Network base
Invoke Endpoint POST /entrypoints/analytics-transactions/invoke
Input Schema
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "windowMs": {
      "type": "number"
    },
    "limit": {
      "default": 50,
      "type": "number"
    }
  },
  "required": [
    "limit"
  ],
  "additionalProperties": false
}
Invoke with curl
curl -s -X POST \
  'https://flight-intel-production.up.railway.app/entrypoints/analytics-transactions/invoke' \
  -H 'Content-Type: application/json' \
  -d '
    {
      "input": {
        "limit": 0
      }
    }
  '

analytics-csv

Invoke

Export payment data as CSV

Pricing Free
Network base
Invoke Endpoint POST /entrypoints/analytics-csv/invoke
Input Schema
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "windowMs": {
      "type": "number"
    }
  },
  "additionalProperties": false
}
Invoke with curl
curl -s -X POST \
  'https://flight-intel-production.up.railway.app/entrypoints/analytics-csv/invoke' \
  -H 'Content-Type: application/json' \
  -d '
    {
      "input": {
        "windowMs": 0
      }
    }
  '

Client Example: x402-fetch

Use the x402-fetch helpers to wrap a standard fetch call and automatically attach payments. This script loads configuration from .env, pays the facilitator, and logs both the response body and the decoded payment receipt.

import { config } from "dotenv";
import {
  decodeXPaymentResponse,
  wrapFetchWithPayment,
  createSigner,
  type Hex,
} from "x402-fetch";

config();

const privateKey = process.env.AGENT_WALLET_PRIVATE_KEY as Hex | string;
const agentUrl = process.env.AGENT_URL as string; // e.g. https://agent.example.com
const endpointPath = process.env.ENDPOINT_PATH as string; // e.g. /entrypoints/echo/invoke
const url = `${agentUrl}${endpointPath}`;

if (!agentUrl || !privateKey || !endpointPath) {
  console.error("Missing required environment variables");
  console.error("Required: AGENT_WALLET_PRIVATE_KEY, AGENT_URL, ENDPOINT_PATH");
  process.exit(1);
}

/**
 * Demonstrates paying for a protected resource using x402-fetch.
 *
 * Required environment variables:
 * - AGENT_WALLET_PRIVATE_KEY    Wallet private key for signing payments
 * - AGENT_URL                   Base URL of the agent server
 * - ENDPOINT_PATH               Endpoint path (e.g. /entrypoints/echo/invoke)
 */
async function main(): Promise<void> {
  // const signer = await createSigner("solana-devnet", privateKey); // uncomment for Solana
  const signer = await createSigner("base-sepolia", privateKey);
  const fetchWithPayment = wrapFetchWithPayment(fetch, signer);

  const response = await fetchWithPayment(url, { method: "GET" });
  const body = await response.json();
  console.log(body);

  const paymentResponse = decodeXPaymentResponse(
    response.headers.get("x-payment-response")!
  );
  console.log(paymentResponse);
}

main().catch((error) => {
  console.error(error?.response?.data?.error ?? error);
  process.exit(1);
});

Manifest

Loading…
Fetching agent card…