{
  "openapi": "3.0.1",
  "info": {
    "title": "Power to Choose — Texas Electricity Plans by ZIP",
    "description": "Compare Power to Choose Texas electricity plans by ZIP. Each row is one plan with the provider, contract term, and the PUC average price at 500, 1,000 and 2,000 kWh, plus a usage-trap flag for bill credits. PPE per plan.",
    "version": "0.2",
    "x-build-id": "8HAhrSEvF9leSOsOW"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/noahadler~texas-electricity-plans/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-noahadler-texas-electricity-plans",
        "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/noahadler~texas-electricity-plans/runs": {
      "post": {
        "operationId": "runs-sync-noahadler-texas-electricity-plans",
        "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/noahadler~texas-electricity-plans/run-sync": {
      "post": {
        "operationId": "run-sync-noahadler-texas-electricity-plans",
        "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": [
          "zip"
        ],
        "properties": {
          "zip": {
            "title": "Texas ZIP",
            "type": "string",
            "description": "5-digit ZIP in a deregulated area. Houston 77002, Dallas 75201. Austin and San Antonio municipal utilities are not on Power to Choose."
          },
          "usageKwh": {
            "title": "Monthly usage (kWh)",
            "minimum": 100,
            "maximum": 5000,
            "type": "integer",
            "description": "Used to rank plans and estimate the monthly bill from the PUC average prices at 500, 1,000 and 2,000 kWh. Default 1000.",
            "default": 1000
          },
          "rateType": {
            "title": "Rate type",
            "enum": [
              "fixed",
              "all",
              "variable"
            ],
            "type": "string",
            "description": "fixed (default) drops variable rates. all returns every rate type. variable keeps only variable plans.",
            "default": "fixed"
          },
          "hidePrepaid": {
            "title": "Hide prepaid plans",
            "type": "boolean",
            "description": "Prepaid plans are pay-as-you-go and are hidden by default.",
            "default": true
          },
          "hideTimeOfUse": {
            "title": "Hide time-of-use plans",
            "type": "boolean",
            "description": "Time-of-use plans charge more at peak hours and are hidden by default.",
            "default": true
          },
          "hideUsageTraps": {
            "title": "Hide usage-trap plans",
            "type": "boolean",
            "description": "Usage-trap plans have a bill credit or a wide gap between the 500 and 2,000 kWh prices. They stay in the results by default, with usageTrap=true, so you can see them.",
            "default": false
          },
          "minTermMonths": {
            "title": "Minimum term (months)",
            "minimum": 0,
            "maximum": 36,
            "type": "integer",
            "description": "Optional. Drop plans shorter than this."
          },
          "maxTermMonths": {
            "title": "Maximum term (months)",
            "minimum": 0,
            "maximum": 36,
            "type": "integer",
            "description": "Optional. Drop plans longer than this."
          },
          "minRenewablePercent": {
            "title": "Minimum renewable %",
            "minimum": 0,
            "maximum": 100,
            "type": "integer",
            "description": "Optional. For example 100 keeps only plans marked fully renewable."
          },
          "tdu": {
            "title": "Utility (TDU)",
            "type": "string",
            "description": "Optional. Needed only when the feed is statewide and the ZIP is not in the built-in map. ONCOR, CENTERPOINT, AEP TEXAS CENTRAL, AEP TEXAS NORTH, TEXAS-NEW MEXICO POWER, LUBBOCK POWER & LIGHT."
          },
          "englishOnly": {
            "title": "English plans only",
            "type": "boolean",
            "description": "Drop Spanish duplicates when the feed labels language. Plans with no language stay.",
            "default": true
          },
          "maxItems": {
            "title": "Max plans",
            "minimum": 1,
            "maximum": 200,
            "type": "integer",
            "description": "Maximum plan rows after filters, cheapest at your usage first (1–200).",
            "default": 40
          },
          "proxyConfiguration": {
            "title": "Proxy (RESIDENTIAL US)",
            "type": "object",
            "description": "Power to Choose sits behind Cloudflare. Use Apify RESIDENTIAL with country US.",
            "default": {
              "useApifyProxy": true,
              "apifyProxyGroups": [
                "RESIDENTIAL"
              ],
              "apifyProxyCountry": "US"
            }
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}