{
  "openapi": "3.1.0",
  "info": {
    "title": "PharoSec public observations",
    "version": "1.4.0",
    "description": "Cached public datasets. Read-only; no credentials or query filters. Check each feed and observation timestamp."
  },
  "servers": [
    {
      "url": "https://pharosec.tech"
    }
  ],
  "paths": {
    "/api/v1/briefing": {
      "get": {
        "summary": "Joined regional observations",
        "operationId": "get_briefing",
        "responses": {
          "200": {
            "description": "Cached public data; check freshness fields.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "429": {
            "description": "Rate limited; retry with backoff."
          },
          "503": {
            "description": "Data temporarily unavailable."
          }
        }
      }
    },
    "/api/v1/news": {
      "get": {
        "summary": "Recent GDELT headline metadata",
        "operationId": "get_news",
        "responses": {
          "200": {
            "description": "Cached public data; check freshness fields.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "429": {
            "description": "Rate limited; retry with backoff."
          },
          "503": {
            "description": "Data temporarily unavailable."
          }
        }
      }
    },
    "/api/v1/satellite": {
      "get": {
        "summary": "Sentinel-2 scene records and crops",
        "operationId": "get_satellite",
        "responses": {
          "200": {
            "description": "Cached public data; check freshness fields.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "429": {
            "description": "Rate limited; retry with backoff."
          },
          "503": {
            "description": "Data temporarily unavailable."
          }
        }
      }
    },
    "/api/v1/thermal": {
      "get": {
        "summary": "Multi-satellite thermal observations",
        "operationId": "get_thermal",
        "responses": {
          "200": {
            "description": "Cached public data; check freshness fields.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "429": {
            "description": "Rate limited; retry with backoff."
          },
          "503": {
            "description": "Data temporarily unavailable."
          }
        }
      }
    },
    "/api/v1/status": {
      "get": {
        "summary": "Collection status",
        "operationId": "get_status",
        "responses": {
          "200": {
            "description": "Cached public data; check freshness fields.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "429": {
            "description": "Rate limited; retry with backoff."
          },
          "503": {
            "description": "Data temporarily unavailable."
          }
        }
      }
    },
    "/api/v1/archive": {
      "get": {
        "summary": "Landsat crops and Sentinel-1 acquisition metadata",
        "operationId": "get_archive",
        "responses": {
          "200": {
            "description": "Cached public data; check freshness fields.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "429": {
            "description": "Rate limited; retry with backoff."
          },
          "503": {
            "description": "Data temporarily unavailable."
          }
        }
      }
    },
    "/api/v1/publisher": {
      "get": {
        "summary": "Direct publisher headline metadata",
        "operationId": "get_publisher",
        "responses": {
          "200": {
            "description": "Cached public data; check freshness fields.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "429": {
            "description": "Rate limited; retry with backoff."
          },
          "503": {
            "description": "Data temporarily unavailable."
          }
        }
      }
    },
    "/api/v1/control": {
      "get": {
        "summary": "Dated public-source city assessments, history and unreviewed headline leads",
        "operationId": "get_control",
        "responses": {
          "200": {
            "description": "Cached public data; check freshness fields.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "429": {
            "description": "Rate limited; retry with backoff."
          },
          "503": {
            "description": "Data temporarily unavailable."
          }
        }
      }
    },
    "/api/v1/territory": {
      "get": {
        "summary": "Attributed Sudan community territorial GeoJSON snapshots and source revision metadata",
        "operationId": "get_territory",
        "responses": {
          "200": {
            "description": "Cached public data; check freshness fields.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "429": {
            "description": "Rate limited; retry with backoff."
          },
          "503": {
            "description": "Data temporarily unavailable."
          }
        }
      }
    },
    "/api/v1/sources": {
      "get": {
        "summary": "Researched source directory and access requirements",
        "operationId": "get_sources",
        "responses": {
          "200": {
            "description": "Cached public data; check freshness fields.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "429": {
            "description": "Rate limited; retry with backoff."
          },
          "503": {
            "description": "Data temporarily unavailable."
          }
        }
      }
    }
  }
}