{
  "openapi": "3.0.1",
  "info": {
    "title": "NOAA Sea Level Rise Screener - Site Inundation Threshold",
    "description": "Batch coordinates to the NOAA sea level rise increment at which each site first floods (0-10 ft above MHHW), with confidence class, inundated vs low-lying split, levee-exclusion flag and nearest high-tide-flooding thresholds. Out-of-coverage is reported explicitly, never as a false clear. MCP-ready.",
    "version": "1.0",
    "x-build-id": "xWkzlb3AiEcjDZ1v7"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/malonestar~noaa-slr-inundation-threshold-screener/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-malonestar-noaa-slr-inundation-threshold-screener",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/acts/malonestar~noaa-slr-inundation-threshold-screener/runs": {
      "post": {
        "operationId": "runs-sync-malonestar-noaa-slr-inundation-threshold-screener",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor and returns information about the initiated run in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/runsResponseSchema"
                }
              }
            }
          }
        }
      }
    },
    "/acts/malonestar~noaa-slr-inundation-threshold-screener/run-sync": {
      "post": {
        "operationId": "run-sync-malonestar-noaa-slr-inundation-threshold-screener",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    }
  },
  "components": {
    "schemas": {
      "inputSchema": {
        "type": "object",
        "required": [
          "assets"
        ],
        "properties": {
          "assets": {
            "title": "Assets (coordinates to screen)",
            "type": "array",
            "description": "Sites to screen against NOAA's sea level rise inundation model. Each item is an object with numeric lat and lon (WGS84 decimal degrees) and an optional label echoed into the output. One billable result row is produced per asset."
          },
          "stepFt": {
            "title": "Sea level rise step size",
            "enum": [
              "1",
              "0.5"
            ],
            "type": "string",
            "description": "How finely to walk the sea level rise increments. 1 ft samples 0,1,2...10 ft and carries NOAA's confidence class on every step. 0.5 ft samples 0,0.5,1...10 ft for a sharper threshold, but NOAA publishes the confidence raster for whole feet only, so confidence is null on the half-foot steps."
          },
          "maxFeet": {
            "title": "Highest sea level rise increment to model (ft)",
            "minimum": 1,
            "maximum": 10,
            "type": "integer",
            "description": "Stop screening above this many feet of sea level rise. NOAA models 0 through 10 ft. Lowering it makes runs faster but a site that would first flood above the cut-off is reported as not inundated through the increments actually checked, never through 10 ft."
          },
          "includeConfidence": {
            "title": "Include NOAA's inundation confidence class",
            "type": "boolean",
            "description": "Sample NOAA's separate confidence raster at each whole-foot increment. It reports high-confidence wet, low confidence (wet or dry), or high-confidence dry, and reflects uncertainty in the elevation data and the tidal datum conversion. Adds one request per whole foot per asset. Turning it off sets the confidence fields to null (not checked), never to a value.",
            "default": true
          },
          "includeLevees": {
            "title": "Check leveed areas (strongly recommended)",
            "type": "boolean",
            "description": "Check the site against NOAA's leveed-area polygons for Louisiana, Texas and Washington. NOAA does not model sea level rise inundation behind these levees, so a dry reading inside one is an ABSENCE OF MODELLING, not a finding of no risk. Without this check the New Orleans French Quarter reads as never inundated through 10 ft.",
            "default": true
          },
          "includeHighTideFlooding": {
            "title": "Include nearest NOAA high tide flooding station",
            "type": "boolean",
            "description": "Attach the nearest of NOAA's 99 high tide flooding tide stations and its minor, moderate and major flood thresholds in feet above mean higher high water. This is what turns a sea level rise increment into a present-day nuisance-flooding frame of reference. Costs one request per run, not per asset.",
            "default": true
          },
          "maxAssets": {
            "title": "Maximum assets to screen in one run",
            "minimum": 1,
            "maximum": 500,
            "type": "integer",
            "description": "Hard cap on how many assets a single run will screen, so an oversized input cannot produce a surprise bill. Assets beyond the cap are skipped and the run logs a warning."
          },
          "simulateOutage": {
            "title": "Simulate an upstream outage (diagnostics only)",
            "enum": [
              "none",
              "coverage",
              "tiles",
              "legend",
              "levees",
              "htf",
              "all"
            ],
            "type": "string",
            "description": "Diagnostic seam that forces a NOAA source to fail so the actor's failure path can be proven on demand instead of only during a real outage. Any value other than none makes the run FAIL loudly and emit nothing, so nothing is billed. Leave this alone for real screening."
          }
        }
      },
      "runsResponseSchema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "properties": {
              "id": {
                "type": "string"
              },
              "actId": {
                "type": "string"
              },
              "userId": {
                "type": "string"
              },
              "startedAt": {
                "type": "string",
                "format": "date-time",
                "example": "2025-01-08T00:00:00.000Z"
              },
              "finishedAt": {
                "type": "string",
                "format": "date-time",
                "example": "2025-01-08T00:00:00.000Z"
              },
              "status": {
                "type": "string",
                "example": "READY"
              },
              "meta": {
                "type": "object",
                "properties": {
                  "origin": {
                    "type": "string",
                    "example": "API"
                  },
                  "userAgent": {
                    "type": "string"
                  }
                }
              },
              "stats": {
                "type": "object",
                "properties": {
                  "inputBodyLen": {
                    "type": "integer",
                    "example": 2000
                  },
                  "rebootCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "restartCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "resurrectCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "computeUnits": {
                    "type": "integer",
                    "example": 0
                  }
                }
              },
              "options": {
                "type": "object",
                "properties": {
                  "build": {
                    "type": "string",
                    "example": "latest"
                  },
                  "timeoutSecs": {
                    "type": "integer",
                    "example": 300
                  },
                  "memoryMbytes": {
                    "type": "integer",
                    "example": 1024
                  },
                  "diskMbytes": {
                    "type": "integer",
                    "example": 2048
                  }
                }
              },
              "buildId": {
                "type": "string"
              },
              "defaultKeyValueStoreId": {
                "type": "string"
              },
              "defaultDatasetId": {
                "type": "string"
              },
              "defaultRequestQueueId": {
                "type": "string"
              },
              "buildNumber": {
                "type": "string",
                "example": "1.0.0"
              },
              "containerUrl": {
                "type": "string"
              },
              "usage": {
                "type": "object",
                "properties": {
                  "ACTOR_COMPUTE_UNITS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_WRITES": {
                    "type": "integer",
                    "example": 1
                  },
                  "KEY_VALUE_STORE_LISTS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_INTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_EXTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_SERPS": {
                    "type": "integer",
                    "example": 0
                  }
                }
              },
              "usageTotalUsd": {
                "type": "number",
                "example": 0.00005
              },
              "usageUsd": {
                "type": "object",
                "properties": {
                  "ACTOR_COMPUTE_UNITS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_WRITES": {
                    "type": "number",
                    "example": 0.00005
                  },
                  "KEY_VALUE_STORE_LISTS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_INTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_EXTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_SERPS": {
                    "type": "integer",
                    "example": 0
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}