{
  "openapi": "3.0.1",
  "info": {
    "title": "Louisiana Building Permits Monitor (Baton Rouge + New Orleans)",
    "description": "Baton Rouge and New Orleans building permits in one clean feed.  Filter by category, status, issue date, project value, and contractor, or monitor new permits on a schedule for contractor and home-service leads.",
    "version": "0.1",
    "x-build-id": "51dvZMQbCzJSh3nYH"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/maniginam~louisiana-building-permits/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-maniginam-louisiana-building-permits",
        "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/maniginam~louisiana-building-permits/runs": {
      "post": {
        "operationId": "runs-sync-maniginam-louisiana-building-permits",
        "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/maniginam~louisiana-building-permits/run-sync": {
      "post": {
        "operationId": "run-sync-maniginam-louisiana-building-permits",
        "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": {
          "cities": {
            "title": "Cities",
            "maxItems": 2,
            "uniqueItems": true,
            "type": "array",
            "description": "Baton Rouge (East Baton Rouge Parish) and New Orleans (Orleans Parish).  Leave empty to search both.",
            "items": {
              "type": "string",
              "enum": [
                "batonRouge",
                "newOrleans"
              ],
              "enumTitles": [
                "Baton Rouge",
                "New Orleans"
              ]
            }
          },
          "categories": {
            "title": "Permit categories",
            "maxItems": 14,
            "uniqueItems": true,
            "type": "array",
            "description": "Lead-friendly groups of permit types, for example solar, roofing, or pools.  Each permit falls into exactly one category, matched on its permit type.  Leave empty for every category.",
            "items": {
              "type": "string",
              "enum": [
                "solar",
                "roofing",
                "generator",
                "pool",
                "demolition",
                "newConstruction",
                "electrical",
                "mechanical",
                "plumbing",
                "renovation",
                "sign",
                "occupancy",
                "accessoryStructure",
                "other"
              ],
              "enumTitles": [
                "Solar",
                "Roofing",
                "Generator",
                "Pool",
                "Demolition",
                "New construction",
                "Electrical",
                "Mechanical, HVAC, and gas",
                "Plumbing",
                "Renovation, addition, and repair",
                "Sign",
                "Occupancy and change of use",
                "Accessory structure, fence, and driveway",
                "Other construction"
              ]
            }
          },
          "permitTypeContains": {
            "title": "Permit type contains",
            "pattern": "^[A-Za-z0-9 &.,'()/-]*$",
            "maxLength": 80,
            "type": "string",
            "description": "Case-insensitive text that must appear in the city's permit type, for example ROOF or SWIMMING POOL.  Letters, digits, spaces, and & . , ' ( ) / - only, up to 80 characters.  Leave empty for all types."
          },
          "statuses": {
            "title": "Permit status (New Orleans only)",
            "maxItems": 4,
            "uniqueItems": true,
            "type": "array",
            "description": "Open, completed, expired, or voided.  Only New Orleans publishes a permit status, so setting this filter skips Baton Rouge entirely and the run log says so.  Leave empty for every status in both cities.",
            "items": {
              "type": "string",
              "enum": [
                "open",
                "completed",
                "expired",
                "voided"
              ],
              "enumTitles": [
                "Open",
                "Completed (closed)",
                "Expired",
                "Voided, cancelled, or denied"
              ]
            }
          },
          "issuedSince": {
            "title": "Issued on or after",
            "type": "string",
            "description": "Earliest permit issue date (YYYY-MM-DD), inclusive.  Leave empty for no lower bound."
          },
          "issuedUntil": {
            "title": "Issued on or before",
            "type": "string",
            "description": "Latest permit issue date (YYYY-MM-DD), inclusive.  Leave empty for no upper bound."
          },
          "minProjectValue": {
            "title": "Minimum project value (USD)",
            "minimum": 0,
            "maximum": 10000000000,
            "type": "integer",
            "description": "Only permits whose declared construction value is at least this many dollars.  Permits with no declared value are left out when this is set.  Leave empty or 0 for any value."
          },
          "contractorContains": {
            "title": "Contractor name contains",
            "pattern": "^[A-Za-z0-9 &.,'()/-]*$",
            "maxLength": 80,
            "type": "string",
            "description": "Case-insensitive text that must appear in the contractor name, for example ROOFING or SOLAR.  Letters, digits, spaces, and & . , ' ( ) / - only, up to 80 characters.  Leave empty for all contractors."
          },
          "maxResults": {
            "title": "Maximum permits per city",
            "minimum": 1,
            "maximum": 500000,
            "type": "integer",
            "description": "Upper limit on permits delivered for each city in this run, newest issue dates first.  Each delivered permit is charged as one permit-record event.",
            "default": 1000
          },
          "onlyNewPermits": {
            "title": "Only new permits (monitor mode)",
            "type": "boolean",
            "description": "When on, the Actor remembers the permits it delivered for this exact search and outputs only permits it has not delivered before.  Permits already delivered are skipped and not charged.  Use it with a daily or weekly schedule.",
            "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}