{
  "openapi": "3.0.1",
  "info": {
    "title": "LL97 Fine Estimator - NYC Buildings Over Their Carbon Cap",
    "description": "Which NYC buildings owe the biggest Local Law 97 fines? Reads LL84 benchmarking data, applies the DOB emissions factors and limits, and ranks buildings by estimated fine for 2024-29 and 2030-34 at $268/tCO2e. An estimate, not legal advice.",
    "version": "1.0",
    "x-build-id": "Q6booufjQdaJQ64DE"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/that_red_bird~ll97-building-penalty-estimator/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-that_red_bird-ll97-building-penalty-estimator",
        "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/that_red_bird~ll97-building-penalty-estimator/runs": {
      "post": {
        "operationId": "runs-sync-that_red_bird-ll97-building-penalty-estimator",
        "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/that_red_bird~ll97-building-penalty-estimator/run-sync": {
      "post": {
        "operationId": "run-sync-that_red_bird-ll97-building-penalty-estimator",
        "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",
        "properties": {
          "reportYear": {
            "title": "LL84 report year",
            "enum": [
              "2024",
              "2023",
              "2022"
            ],
            "type": "string",
            "description": "Which year of NYC LL84 benchmarking data to read (calendar year of the energy use). Emissions are held constant for every future compliance year.",
            "default": "2024"
          },
          "maxBuildings": {
            "title": "Max buildings to return",
            "type": "integer",
            "description": "How many buildings to output after ranking. Each one is billed as one building-scored event.",
            "default": 50
          },
          "sortBy": {
            "title": "Rank by",
            "enum": [
              "fine2030",
              "fine2024"
            ],
            "type": "string",
            "description": "Rank buildings by estimated annual fine in the 2030-2034 period (the big one) or in 2024-2029.",
            "default": "fine2030"
          },
          "onlyOverLimit": {
            "title": "Only buildings over the cap",
            "type": "boolean",
            "description": "Skip buildings whose estimated emissions are under the limit in both periods. Turn off to see everything, including buildings with zero fine.",
            "default": true
          },
          "minFineUsd": {
            "title": "Minimum annual fine (USD)",
            "type": "integer",
            "description": "Skip buildings whose larger estimated annual fine (either period) is below this amount.",
            "default": 0
          },
          "minGfaSqft": {
            "title": "Minimum floor area (sq ft)",
            "type": "integer",
            "description": "Skip buildings smaller than this. LL97 covers buildings over 25,000 sq ft.",
            "default": 25000
          },
          "boroughs": {
            "title": "Boroughs",
            "type": "array",
            "description": "Limit to these boroughs: Manhattan, Bronx, Brooklyn, Queens, Staten Island. Leave empty for all five. Borough comes from the first digit of the tax lot (BBL) number.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "propertyTypes": {
            "title": "Property types (optional)",
            "type": "array",
            "description": "Only buildings whose largest use contains one of these words, for example [\"Office\",\"Hotel\"]. Leave empty for all types.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "bbls": {
            "title": "Specific tax lots (BBL, optional)",
            "type": "array",
            "description": "Look up only these 10-digit BBL numbers (borough, block, lot). Overrides the over-the-cap filter so you also see buildings with no fine.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "finePerTonneUsd": {
            "title": "Fine per tonne CO2e (USD)",
            "type": "integer",
            "description": "Penalty rate per tonne over the limit. The rule in force (1 RCNY 103-14) sets $268.",
            "default": 268
          },
          "includeSuspectData": {
            "title": "Include implausible filings",
            "type": "boolean",
            "description": "LL84 is self-reported and some filings have unit errors (energy use per sq ft far above any real building). They are excluded by default because they would top every ranking. Turn on to keep them, marked confidence low.",
            "default": false
          }
        }
      },
      "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
                  },
                  "PROXY_UNBLOCKER_UNITS": {
                    "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
                  },
                  "PROXY_UNBLOCKER_UNITS": {
                    "type": "integer",
                    "example": 0
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}