{
  "$schema": "https://modelcontextprotocol.io/schema/manifest.json",
  "name": "skywatch-api",
  "version": "1.7",
  "description": "SkyWatch API - Access satellite imagery and geospatial data through comprehensive REST and WebSocket APIs",
  "homepage": "https://api-docs.skywatch.com",
  "contact": {
    "email": "support@skywatch.com",
    "url": "http://support.skywatch.com"
  },
  "capabilities": {
    "resources": [
      {
        "name": "openapi-spec",
        "description": "Complete OpenAPI 3.1.0 specification for SkyWatch API",
        "uri": "/openapi-spec.json",
        "mimeType": "application/json"
      },
      {
        "name": "llm-context",
        "description": "LLM-optimized documentation context and structure",
        "uri": "/llms.txt",
        "mimeType": "text/plain"
      }
    ],
    "documentation": [
      {
        "section": "overview",
        "title": "Overview",
        "description": "Introduction to the SkyWatch API",
        "endpoints": [
          {
            "name": "Introduction",
            "uri": "/docs/intro"
          }
        ]
      },
      {
        "section": "getting-started",
        "title": "Getting Started",
        "description": "Authentication setup and best practices",
        "endpoints": [
          {
            "name": "API Authentication",
            "uri": "/docs/general/api-authentication"
          },
          {
            "name": "Best Practices",
            "uri": "/docs/general/best-practices"
          }
        ]
      },
      {
        "section": "governance",
        "title": "Governance",
        "description": "User management, roles, and project organization",
        "endpoints": [
          {
            "name": "Roles and Permissions",
            "uri": "/docs/governance/roles-and-permissions"
          },
          {
            "name": "Billing and Projects",
            "uri": "/docs/governance/billing-and-projects"
          },
          {
            "name": "User Management",
            "uri": "/docs/accounts/users"
          },
          {
            "name": "Payment Methods",
            "uri": "/docs/accounts/payment-methods"
          },
          {
            "name": "Project Management",
            "uri": "/docs/projects/projects"
          }
        ]
      },
      {
        "section": "products",
        "title": "Products & Pricing",
        "description": "Browse offerings and calculate costs",
        "endpoints": [
          {
            "name": "Offerings and Configurations",
            "uri": "/docs/products/offerings-and-configs"
          },
          {
            "name": "Pricing",
            "uri": "/docs/pricing/pricing"
          }
        ]
      },
      {
        "section": "workflows",
        "title": "Workflows",
        "description": "Step-by-step guides for ordering imagery",
        "endpoints": [
          {
            "name": "Archive Workflow",
            "uri": "/docs/archive/archive-workflow"
          },
          {
            "name": "Tasking Workflow",
            "uri": "/docs/tasking/tasking-workflow"
          }
        ]
      },
      {
        "section": "orders",
        "title": "Orders",
        "description": "Create, manage, and retrieve satellite imagery orders",
        "endpoints": [
          {
            "name": "Orders Overview",
            "uri": "/docs/orders/orders"
          },
          {
            "name": "Order Configuration",
            "uri": "/docs/orders/order-config"
          },
          {
            "name": "DirectView & WMTS",
            "uri": "/docs/results/directview-wmts"
          }
        ]
      },
      {
        "section": "limits-errors",
        "title": "Limits & Error Handling",
        "description": "API constraints, rate limits, and error handling",
        "endpoints": [
          {
            "name": "Limits and Errors",
            "uri": "/docs/limits-errors"
          }
        ]
      },
      {
        "section": "api-reference",
        "title": "API Reference",
        "description": "Interactive REST API documentation (alphabetically ordered)",
        "endpoints": [
          {
            "name": "API Specification",
            "uri": "/docs/rest-api"
          },
          {
            "name": "Archive Search",
            "uri": "/docs/rest-api/archive-search"
          },
          {
            "name": "Calculate Pricing",
            "uri": "/docs/rest-api/pricing"
          },
          {
            "name": "DirectView",
            "uri": "/docs/rest-api/direct-view"
          },
          {
            "name": "Locations",
            "uri": "/docs/rest-api/locations"
          },
          {
            "name": "Offerings",
            "uri": "/docs/rest-api/hub-offerings"
          },
          {
            "name": "Orders (Pipelines)",
            "uri": "/docs/rest-api/legacy-pipelines"
          },
          {
            "name": "Payment Methods",
            "uri": "/docs/rest-api/hub-payment-methods"
          },
          {
            "name": "Projects",
            "uri": "/docs/rest-api/hub-projects"
          },
          {
            "name": "Users",
            "uri": "/docs/rest-api/hub-users"
          },
          {
            "name": "Webhooks",
            "uri": "/docs/rest-api/webhooks"
          }
        ]
      }
    ]
  },
  "servers": [
    {
      "name": "production",
      "url": "https://api.skywatch.co/earthcache",
      "description": "Production REST API"
    },
    {
      "name": "directview",
      "url": "https://directview.earthcache.com",
      "description": "DirectView & WMTS service"
    },
    {
      "name": "websocket",
      "url": "wss://d3so7ozptr7ad5.cloudfront.net/prod",
      "description": "WebSocket API for real-time archive search"
    }
  ],
  "authentication": {
    "type": "apiKey",
    "name": "x-api-key",
    "in": "header",
    "description": "API key authentication (no 'Bearer' prefix required)"
  },
  "features": {
    "archive_search": {
      "description": "Search historical satellite imagery",
      "methods": ["REST", "WebSocket"]
    },
    "tasking": {
      "description": "Schedule future satellite captures",
      "minimum_interval": "7 days"
    },
    "pricing": {
      "description": "Calculate costs and probability of collection"
    },
    "webhooks": {
      "description": "Event notifications for pipeline status updates"
    },
    "directview": {
      "description": "Browser-based imagery viewing and WMTS tile services"
    },
    "hub_management": {
      "description": "User, project, and payment method management"
    }
  },
  "constraints": {
    "geometry": {
      "format": "GeoJSON Polygon (WGS84)",
      "restrictions": [
        "Single polygon only (no multipolygons)",
        "No holes (donuts) allowed",
        "Maximum 500 vertices recommended",
        "Minimum 1 km² for archive orders"
      ]
    },
    "tasking": {
      "minimum_interval": "7 days",
      "minimum_lead_time": "2 days before start",
      "cancellation_window": "48 hours before start"
    },
    "websocket": {
      "max_payload_size": "128 KB (~2500 coordinates)",
      "jwt_expiration": "7200 seconds"
    }
  },
  "example_coordinates": {
    "location": "New York City",
    "type": "Polygon",
    "coordinates": [
      [
        [-73.95950959050467, 40.803232950312264],
        [-73.98518739769608, 40.768306075577726],
        [-73.97154148035514, 40.761912689996564],
        [-73.94657494129676, 40.79741232310445],
        [-73.95950959050467, 40.803232950312264]
      ]
    ]
  }
}
