{
  "openapi": "3.0.1",
  "info": {
    "title": "Real Estate Skip Trace | Owner Phone & Email | $12/1K",
    "description": "Paste a US property address and get the people on it: phones, emails, mailing address, absentee flag, relatives. One row per person. Deep-search extra sites on a miss, plus Dallas County owner-of-record. Pay only on matches. $12 per 1,000 matches. Lawful B2B — not for FCRA.",
    "version": "0.0",
    "x-build-id": "HyorsvwRTnqVNNZsp"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/memo23~property-skip-tracing/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-memo23-property-skip-tracing",
        "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/memo23~property-skip-tracing/runs": {
      "post": {
        "operationId": "runs-sync-memo23-property-skip-tracing",
        "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/memo23~property-skip-tracing/run-sync": {
      "post": {
        "operationId": "run-sync-memo23-property-skip-tracing",
        "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": {
          "addresses": {
            "title": "Property addresses",
            "type": "array",
            "description": "Full US addresses, one per line, e.g. \"123 Main St, Dallas, TX 75201\". 1–500 per run. Each address that returns at least one person is billed as one match. Do not use this for name search — this actor is address-first.",
            "items": {
              "type": "string"
            }
          },
          "street": {
            "title": "🏠 Street Address",
            "type": "string",
            "description": "US street address line, including number and street name (e.g. \"3828 Double Oak Ln\"). Optional if you filled Addresses."
          },
          "citystatezip": {
            "title": "📍 City, State ZIP",
            "type": "string",
            "description": "Format: \"City, ST ZIP\" (e.g. \"Irving, TX 75061\"). State must be a 2-letter US code; ZIP is 5 digits (optional +4). Optional if you filled Addresses."
          },
          "bulkAddresses": {
            "title": "📋 Bulk Addresses",
            "type": "array",
            "description": "Array of { \"street\", \"citystatezip\" } objects. Example item: { \"street\": \"3828 Double Oak Ln\", \"citystatezip\": \"Irving, TX 75061\" }"
          },
          "addressesFromUrl": {
            "title": "🔗 Addresses From URL",
            "type": "string",
            "description": "Public CSV/TXT URL with two columns: street, citystatezip (header row optional). One address per line. Comma- or tab-separated."
          },
          "startUrls": {
            "title": "Direct ThatsThem URLs",
            "type": "array",
            "description": "Direct thatsthem.com URLs to scrape as-is.",
            "items": {
              "type": "string"
            }
          },
          "webhookUrl": {
            "title": "CRM webhook URL (Zapier / Make / GoHighLevel)",
            "type": "string",
            "description": "Each person record is HTTP POSTed here as JSON as soon as it's found. Best-effort; a failed webhook never fails the run."
          },
          "deepSearch": {
            "title": "Deep search (check more people-search sites)",
            "type": "boolean",
            "description": "When the first source finds nobody with a phone or email at an address (or misses the county owner), check TruePeopleSearch, SearchPeopleFree and USPhoneBook in turn until someone with contact data turns up. People found on several sites are merged into one row. No extra event is charged for the extra sites; you still pay per matched address and per person with contact data.",
            "default": true
          },
          "ownerLookup": {
            "title": "Owner of record from county appraisal data",
            "type": "boolean",
            "description": "Look the address up in the county appraisal district's records and add the owner of record, their mailing address and the county account id to every row, flagging the resident who matches the owner (isCountyOwner). Supported today: Dallas County, TX (DCAD). Other addresses get null owner fields. Free.",
            "default": true
          },
          "ownerOnlyRows": {
            "title": "Owner-only rows when nobody lives on file ($0.005 per row)",
            "type": "boolean",
            "description": "When no people-search site finds anyone at an address but the county has an owner of record, return one row with the owner's name, mailing address, county account id and an absentee flag (lookupStatus \"owner_only\"). Billed as one Owner record event per row. Needs Owner of record on; Dallas County, TX today.",
            "default": true
          },
          "cacheMaxAgeHours": {
            "title": "Reuse recent results (hours)",
            "minimum": 0,
            "maximum": 720,
            "type": "integer",
            "description": "When one of your earlier runs already fetched a page, reuse it if it is younger than this many hours instead of fetching it again. Faster and gentler on the sources; set 0 to always fetch fresh. Only your own account's pages are reused.",
            "default": 24
          },
          "includeContacts": {
            "title": "Include phone numbers & emails (+$0.003 per person with contact data)",
            "type": "boolean",
            "description": "Master switch. When false, phones and emails are omitted and ContactInfo is not billed. Default true. Prefer includePhone / includeEmail to turn one side off.",
            "default": true
          },
          "includePhone": {
            "title": "Include phone numbers",
            "type": "boolean",
            "description": "When true (default), deliver phone numbers on each person row. Ignored when includeContacts is false. Same job as other property skip-trace tools' includePhone.",
            "default": true
          },
          "includeEmail": {
            "title": "Include email addresses",
            "type": "boolean",
            "description": "When true (default), deliver emails on each person row. Ignored when includeContacts is false. Same job as other property skip-trace tools' includeEmail.",
            "default": true
          },
          "demoMode": {
            "title": "Demo mode (preview output free — no lookup, no charge)",
            "type": "boolean",
            "description": "Return a single sample record so you can see the exact output format without running a lookup or being charged.",
            "default": false
          },
          "maxItems": {
            "title": "Maximum person records to return",
            "minimum": 1,
            "type": "integer",
            "description": "Hard cap on the number of person records pushed to the dataset across all addresses.",
            "default": 1000
          },
          "maxConcurrency": {
            "title": "Max concurrency",
            "minimum": 1,
            "type": "integer",
            "description": "How many addresses (lookups) to fetch in parallel.",
            "default": 3
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}