{
  "openapi": "3.0.1",
  "info": {
    "title": "WeddingWire Wedding Couple Scraper",
    "description": "Find couples on WeddingWire by name and collect their public wedding website. Every record returns both partners first and last names, the wedding date, days until the wedding, city and state, a welcome message, and a link to the couple website. Useful for enriching leads.",
    "version": "0.1",
    "x-build-id": "B2E4qtZmkJM9FQAO3"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/parseforge~weddingwire-couples-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-parseforge-weddingwire-couples-scraper",
        "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/parseforge~weddingwire-couples-scraper/runs": {
      "post": {
        "operationId": "runs-sync-parseforge-weddingwire-couples-scraper",
        "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/parseforge~weddingwire-couples-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-parseforge-weddingwire-couples-scraper",
        "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": {
          "mode": {
            "title": "Mode",
            "enum": [
              "search",
              "discover"
            ],
            "type": "string",
            "description": "How to collect couples. 'Search by name' enriches specific names you provide. 'Discover by ID walk' walks WeddingWire's sequential public website IDs to collect couples without needing any name.",
            "default": "search"
          },
          "searchTerms": {
            "title": "Search Terms",
            "type": "array",
            "description": "Used in 'Search by name' mode. One or more names to search WeddingWire's public couple directory (a partner's first name, last name, or full name, e.g. Smith, Garcia, Sarah). Each term returns up to 20 public couples.",
            "items": {
              "type": "string"
            }
          },
          "startWebId": {
            "title": "Start Website ID",
            "minimum": 1,
            "maximum": 99999999,
            "type": "integer",
            "description": "Used in 'Discover by ID walk' mode. Walk website IDs DOWNWARD from this number (newest weddings first); leave blank to start near the live frontier each run; the freshest upcoming weddings sit roughly in the 42,000,000-46,000,000 band."
          },
          "randomizeStart": {
            "title": "Randomize Start",
            "type": "boolean",
            "description": "Discover mode only. When on (default) and no Start Website ID is given, pick a random starting point in the fresh 42,000,000-46,000,000 band each run, so repeated runs return different couples. Ignored when Start Website ID is set.",
            "default": true
          },
          "usState": {
            "title": "US State Filter",
            "type": "string",
            "description": "Discover mode only. Keep only couples whose public location is in this US state (full name like 'Texas' or 2-letter code like 'TX'). Couples with no public location cannot be matched and are skipped when this filter is set."
          },
          "weddingDateFrom": {
            "title": "Wedding Date From",
            "type": "string",
            "description": "Discover mode only. Keep only couples whose wedding date is on or after this date (ISO YYYY-MM-DD)."
          },
          "weddingDateTo": {
            "title": "Wedding Date To",
            "type": "string",
            "description": "Discover mode only. Keep only couples whose wedding date is on or before this date (ISO YYYY-MM-DD)."
          },
          "maxScan": {
            "title": "Max IDs to Scan",
            "minimum": 1,
            "maximum": 5000000,
            "type": "integer",
            "description": "Discover mode only. Hard cap on how many website IDs to walk in one run, so a narrow filter cannot walk forever. The run stops at whichever comes first: Max Items matches or this scan budget."
          },
          "maxItems": {
            "title": "Max Items",
            "minimum": 1,
            "maximum": 1000000,
            "type": "integer",
            "description": "Free users: Limited to 10 items (preview). Paid users: Optional, max 1,000,000"
          },
          "fetchDetails": {
            "title": "Fetch Website Details",
            "type": "boolean",
            "description": "In 'Search by name' mode, also opens each couple's public wedding website to capture location (city/state) and their welcome message. Disable for a faster, names-only run. Discover mode always reads the website page.",
            "default": true
          },
          "onlyComplete": {
            "title": "Only complete leads",
            "type": "boolean",
            "description": "When enabled, keeps only couples that have a partner name and a wedding date. Skips sparse records instead of returning them with blank fields. Skipped couples are counted in the log, not silently dropped.",
            "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
                  }
                }
              },
              "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}