Skip to main content Skip to navigation
vataware BETA

Developer API

Programmatic access to vataware data

API Overview

vataware provides a JSON API that mirrors the website's functionality. Every standard web page has a JSON equivalent, making it easy to access flight tracking data programmatically. The API requires no authentication for public data and uses the same URLs as the website.

💡 Pro tip: To get JSON instead of HTML, send an Accept: application/json header with your request.

Usage Guidelines

To ensure a great experience for all users, please follow these guidelines:

  • ✓ Be respectful of server resources - avoid making excessive requests
  • ✓ Set a meaningful User-Agent header that includes your application name and contact information
  • ✓ Cache responses appropriately - data updates approximately every minute
  • ✓ Handle errors gracefully and implement exponential backoff for retries
  • ✓ Respect any rate limit headers that may be implemented in the future
  • ✓ Do not scrape HTML pages - use the JSON API instead

User-Agent Requirements

Please use a descriptive User-Agent header:

✓ Good Examples

MyFlightTracker/1.0 (https://myapp.com; contact@myapp.com) AviationStats/2.1 (+https://github.com/username/repo) VATSIMTools/1.0 (Discord: username#1234)

✗ Bad Examples

curl/7.64.1 python-requests/2.28.0 Mozilla/5.0 (compatible)

Accessing JSON Data

All standard web pages have JSON equivalents. Send an Accept header to get JSON instead of HTML.

curl -H "Accept: application/json" https://vataware.net/flights

Example Endpoints

Common endpoints you might want to use:

/flights - List of active flights
/airports/KJFK - Airport details and current operations
/airlines/UAL - Airline information and active flights
/countries/US - Country statistics and flights
/pilots/1234567 - Pilot information by CID
/flights/{id}/positions - Flight position history (JSON only)
/flights/{id}/flightplans - Flight plan revisions (JSON only)

Response Format

JSON responses follow a consistent structure. The resource key matches the endpoint type (e.g., "flights", "airports", "pilot"):

Single Resource:

{
  "flight": {
    "id": "12345",
    "callsign": "UAL123",
    "departure": "KJFK",
    "arrival": "EGLL",
    "status": "enroute",
    // ... additional fields
  }
}

Collection with Pagination:

{
  "flights": [
    // ... array of flight objects
  ],
  "pagination": {
    "per_page": 50,
    "next_cursor": "eyJpZCI6MTIzNDU2fQ",
    "prev_cursor": null,
    "has_more": true
  }
}

Search Results:

{
  "query": "your search term",
  "results": [
    // ... array of results with URLs
  ]
}

Pagination

The API uses cursor-based pagination for better performance and consistency.

To get the next page, include the next_cursor value as a query parameter:

curl -H "Accept: application/json" "https://vataware.net/flights?cursor=encoded_cursor_string"

Important Notes:

  • • Cursors are opaque strings - do not attempt to parse or modify them
  • • Each page typically returns 50 items
  • • Check has_more to determine if additional pages exist
  • • Cursors may expire after extended periods

Rate Limits

Currently, there are no enforced rate limits. However, we ask that you be respectful of server resources. If rate limits are implemented in the future, standard HTTP rate limit headers will be used:

X-RateLimit-Limit: 60
X-RateLimit-Remaining: 59
X-RateLimit-Reset: 1640995200

Please implement proper handling for 429 (Too Many Requests) responses in case rate limiting is enabled.

Questions & Support

If you have questions about the API or need assistance:

  • • Email: admin@vataware.net
  • • Please include your User-Agent string when reporting issues