{
  "openapi": "3.0.1",
  "info": {
    "title": "Zola Wedding Couple and Venue Scraper",
    "description": "Search Zola by a couple's names and pull their public wedding website. Every record returns both partners first and last names, the wedding date, city and state, the venue name and address, and links to the couple website and registry. Great for enriching wedding leads.",
    "version": "0.1",
    "x-build-id": "2O5Saefltr5Qic0GY"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/parseforge~zola-couples-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-parseforge-zola-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~zola-couples-scraper/runs": {
      "post": {
        "operationId": "runs-sync-parseforge-zola-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~zola-couples-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-parseforge-zola-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 names you already have. 'Discover from directory' pulls public couples straight from Zola's own wedding sitemaps, no name needed.",
            "default": "search"
          },
          "searchTerms": {
            "title": "Search Terms (couple names)",
            "type": "array",
            "description": "Used in Search mode only. One or more names to look up on Zola's public couple directory. Use a surname (for example smith) or either partner's first + last name (for example jack jill). Each term returns up to 50 matching couples.",
            "items": {
              "type": "string"
            }
          },
          "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"
          },
          "enrichDetails": {
            "title": "Enrich with wedding-website details",
            "type": "boolean",
            "description": "When enabled, each couple with a public wedding website is opened to pull location (city/state), venue, event date, split partner names and headline. Discover mode always enriches. Disable to speed up Search mode (names and links only).",
            "default": true
          },
          "onlyComplete": {
            "title": "Only complete leads",
            "type": "boolean",
            "description": "When enabled, keeps only couples that have both partner names, a wedding date, and a city. Skips sparse records instead of returning them with blank fields. Skipped couples are counted in the log, not silently dropped.",
            "default": false
          },
          "usState": {
            "title": "US State",
            "type": "string",
            "description": "Discover mode only. Keep only couples in this US state. Accepts a full name (California) or a 2-letter code (CA). Matched against the couple's location and venue. Leave empty for all states."
          },
          "weddingDateFrom": {
            "title": "Wedding Date From",
            "type": "string",
            "description": "Discover mode only. Keep only couples whose wedding date is on or after this date (ISO, for example 2026-01-01). Leave empty for no lower bound."
          },
          "weddingDateTo": {
            "title": "Wedding Date To",
            "type": "string",
            "description": "Discover mode only. Keep only couples whose wedding date is on or before this date (ISO, for example 2026-12-31). Leave empty for no upper bound."
          },
          "maxScan": {
            "title": "Max Scan (Discover budget)",
            "minimum": 1,
            "maximum": 1000000,
            "type": "integer",
            "description": "Discover mode only. Maximum number of couples to fetch and examine while looking for matches. Prevents a narrow filter from walking forever. Default 2000."
          },
          "randomizeStart": {
            "title": "Randomize start position",
            "type": "boolean",
            "description": "Discover mode only. When on (default), each run starts at a random sitemap and offset, so repeated runs return different couples and cover the whole directory over time. Turn off (or set Start Sitemap/Offset) for reproducible runs.",
            "default": true
          },
          "startSitemap": {
            "title": "Start Sitemap (1-17)",
            "minimum": 1,
            "maximum": 17,
            "type": "integer",
            "description": "Discover mode only. Optional. Begin at this wedding sitemap number (1 to 17) instead of a random one. Overrides Randomize for the sitemap choice."
          },
          "startOffset": {
            "title": "Start Offset",
            "minimum": 0,
            "maximum": 50000,
            "type": "integer",
            "description": "Discover mode only. Optional. Begin at this index within the start sitemap (each sitemap lists up to 50,000 couples). Overrides Randomize for the offset."
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}