{
  "openapi": "3.0.1",
  "info": {
    "title": "Redfin CSV and Excel Property Export Parser",
    "description": "Normalize a Redfin property export you already have as CSV or XLSX. Filter, deduplicate, and preserve supplied columns; this Actor does not access Redfin.",
    "version": "1.0",
    "x-build-id": "D2lUeYfaG2No7HcJ9"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/muhammadafzal~redfin-export-parser/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-muhammadafzal-redfin-export-parser",
        "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/muhammadafzal~redfin-export-parser/runs": {
      "post": {
        "operationId": "runs-sync-muhammadafzal-redfin-export-parser",
        "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/muhammadafzal~redfin-export-parser/run-sync": {
      "post": {
        "operationId": "run-sync-muhammadafzal-redfin-export-parser",
        "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": {
          "csvFile": {
            "title": "CSV or XLSX export file",
            "maxItems": 1,
            "type": "array",
            "description": "Use this for a Redfin export file you downloaded and are authorized to process. Upload a CSV/XLSX file or provide a direct HTTPS file URL. Redfin page URLs are rejected; maximum file size is 10 MB. If both file and pasted text are supplied, this file takes priority.",
            "items": {
              "type": "string",
              "maxLength": 2048
            }
          },
          "csvContent": {
            "title": "Paste CSV text",
            "maxLength": 250000,
            "type": "string",
            "description": "Use this for a small CSV export (up to 250,000 characters). Replace the fictional sample rows below with your own CSV; for XLSX or larger files, use CSV or XLSX export file instead. This Actor parses supplied text and makes no Redfin requests.",
            "default": "ADDRESS,CITY,STATE,PRICE,PROPERTY TYPE,BEDS,BATHS,SQFT,STATUS\n1 Example Way,Sample City,CA,450000,Single-family,3,2,1450,For sale\n2 Demo Lane,Sample City,CA,625000,Condo,2,2,1100,For sale\n3 Fictional Road,Sample City,CA,390000,Single-family,2,1,980,Sold"
          },
          "maxResults": {
            "title": "Maximum property rows",
            "minimum": 1,
            "maximum": 1000,
            "type": "integer",
            "description": "Use this to cap rows written after filters and deduplication. Enter an integer from 1 to 1,000; defaults to 100. Free-plan runs are capped at 5 delivered rows regardless of this value.",
            "default": 100
          },
          "deduplicate": {
            "title": "Remove duplicate rows",
            "type": "boolean",
            "description": "Use this to remove rows with the same listing ID or URL, or the same normalized property facts. Defaults to true. It does not merge records with different prices or statuses.",
            "default": true
          },
          "minPrice": {
            "title": "Minimum price",
            "minimum": 0,
            "type": "number",
            "description": "Use this to keep rows at or above a numeric price, for example 250000. Requires a recognized price column; rows with no parseable price are excluded. Leave blank for no minimum."
          },
          "maxPrice": {
            "title": "Maximum price",
            "minimum": 0,
            "type": "number",
            "description": "Use this to keep rows at or below a numeric price, for example 750000. Requires a recognized price column; rows with no parseable price are excluded. Leave blank for no maximum."
          },
          "minBedrooms": {
            "title": "Minimum bedrooms",
            "minimum": 0,
            "maximum": 50,
            "type": "integer",
            "description": "Use this to keep homes with at least this many bedrooms, for example 3. Requires a recognized bedrooms column; rows with missing bedroom values are excluded. Leave blank for no bedroom filter."
          },
          "propertyTypes": {
            "title": "Property type filters",
            "maxItems": 20,
            "uniqueItems": true,
            "type": "array",
            "description": "Use this to keep rows whose property-type text contains any value you enter, case-insensitively (for example Condo). Requires a recognized property type column. Leave empty for no property-type filter.",
            "items": {
              "type": "string",
              "minLength": 1,
              "maxLength": 100
            }
          },
          "listingStatuses": {
            "title": "Listing status filters",
            "maxItems": 20,
            "uniqueItems": true,
            "type": "array",
            "description": "Use this to keep rows whose status text contains any value you enter, case-insensitively (for example Sold). Requires a recognized status column. Leave empty for no status filter.",
            "items": {
              "type": "string",
              "minLength": 1,
              "maxLength": 100
            }
          },
          "currencyCode": {
            "title": "Currency code for prices",
            "enum": [
              "USD",
              "CAD",
              "unknown"
            ],
            "type": "string",
            "description": "Use this to label numeric prices from the file. Choose CAD for a Redfin.ca export or Unknown if you do not know the currency. This setting does not convert prices.",
            "default": "USD"
          },
          "includeSourceColumns": {
            "title": "Keep original CSV columns",
            "type": "boolean",
            "description": "Use this to retain the supplied column names and values in each dataset item. Set false to return normalized fields only. Defaults to true so unrecognized export columns are not lost.",
            "default": true
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}