WeddingWire APIweddingwire.com ↗
Search WeddingWire vendors by location or category, retrieve detailed profiles with phone, description, FAQ details, and pull customer reviews via 4 endpoints.
What is the WeddingWire API?
The WeddingWire API covers 4 endpoints for accessing wedding vendor data including photographers, caterers, florists, and other service categories listed on WeddingWire.com. The search_photographers endpoint returns paginated results with vendor names, locations, ratings, review counts, and starting prices. Companion endpoints deliver full vendor profiles, customer reviews, and the complete list of supported vendor categories with their sector IDs and URL slugs.
curl -X GET 'https://api.parse.bot/scraper/3b352f41-274a-4a94-b9aa-97bf20101353/search_photographers?page=1&query=photography&location=New+York%2C+NY®ion_id=436' \ -H 'X-API-Key: $PARSE_API_KEY'
Typed, relational, agent-ready
A generated client with real types, enums, and the links between objects — the structure a flat JSON response can't carry. Autocompletes in your editor and reads cleanly to coding agents.
- Fully typed · autocompletes
- Objects link to objects
- Typed errors & pagination
Typed Python client. Set up the SDK in your uv project, then pull this API’s typed client:
uv add parse-sdk uv run parse init uv run parse add --marketplace weddingwire-com-api
uv run parse add --marketplace pulls a pinned snapshot of this canonical API — it won’t change underneath you. To customize it, subscribe and swap to your own copy.
from parse_apis.weddingwire_api import WeddingWire, PriceRange
ww = WeddingWire()
# Search for photographers in New York with a price filter
for photographer in ww.photographers.search(location="New York, NY", price_range=PriceRange.FROM_2000_TO_2999):
print(photographer.name, photographer.location, photographer.starting_price)
# Get detailed info for this photographer
detail = photographer.details()
print(detail.phone, detail.description, detail.rating)
# List reviews
for review in photographer.reviews.list():
print(review.author, review.date, review.rating, review.title)
break
# List all vendor categories
for category in ww.categories.list():
print(category.name, category.slug, category.id_sector)
Search for wedding photographers by keyword, location, or state. Returns paginated results with vendor names, locations, ratings, review counts, and starting prices. Each page returns up to ~24 vendors. At least one of query, location, or region_id should be provided for meaningful results.
| Param | Type | Description |
|---|---|---|
| page | integer | Page number for pagination. |
| query | string | Search keyword to filter photographers by name or specialty. |
| location | string | Location string in 'City, ST' format (e.g. 'Fargo, ND', 'New York, NY'). |
| region_id | string | Numerical region/state ID used by WeddingWire (e.g. '428' for North Dakota, '436' for New York). |
| price_range | string | Price range filter. |
{
"type": "object",
"fields": {
"page": "string, current page number",
"vendors": "array of vendor objects with name, url, location, rating, review_count, starting_price"
},
"sample": {
"data": {
"page": "1",
"vendors": [
{
"url": "https://www.weddingwire.com/biz/zaida-gonzalez-photography/c27b2c04ea454716.html",
"name": "Zaida Gonzalez Photography",
"rating": "5.0",
"location": "Fredericksburg, VA",
"review_count": "8",
"starting_price": "$2,000"
}
]
},
"status": "success"
}
}About the WeddingWire API
Search and Filter Vendors
The search_photographers endpoint accepts a query keyword, a location string such as 'Fargo, ND', or a numeric region_id corresponding to a U.S. state. Results come back paginated — use the page parameter to walk through listings. Each vendor object in the response includes name, url, location, rating, review_count, and starting_price. A price_range filter narrows results to brackets from 'Under $1,000' through '$4,000+'.
Vendor Profiles and FAQ Details
get_photographer_detail accepts a full WeddingWire profile URL and returns a structured object covering name, phone, rating, review_count, location, description, website, and a details object containing FAQ-style key-value pairs that vendors populate — typically covering service styles, coverage areas, packages, and equipment. This endpoint is the primary way to collect structured contact and service information for a specific vendor.
Reviews and Category Discovery
get_photographer_reviews takes the same profile URL and returns an array of review objects, each with author, date, rating, title, and text. The endpoint returns an empty array for vendors with no reviews rather than erroring. get_vendor_categories requires no inputs and returns the full list of WeddingWire vendor categories as objects with name, id_sector, and slug — useful for building region-plus-category search queries dynamically without hardcoding sector IDs.
The WeddingWire API is a managed, monitored endpoint for weddingwire.com — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when weddingwire.com changes and a check fails, the API is automatically queued for repair and re-verified. It is built to keep working as the site underneath it changes.
This isn't an official weddingwire.com API — it's an independent, maintained REST wrapper over public data. Where the source has no official API (or only a limited one), Parse gives you a stable contract over a source that never promised one, and keeps it current. Need a new endpoint or field? You can revise it yourself in plain English and the agent rebuilds it against the live site in minutes — contributing the change back to the shared API is free.
Will this API break when the source site changes?+
Is this an official API from the source site?+
Can I fix or extend this API myself if I need a new endpoint or field?+
What happens if I call an endpoint that has an issue?+
- Build a vendor comparison tool using
starting_price,rating, andreview_countfrom search results. - Aggregate customer reviews for sentiment analysis across photographers in a specific state using
region_id. - Populate a wedding planning directory with vendor contact details and descriptions from
get_photographer_detail. - Monitor rating and review count changes for vendors over time by polling profile URLs.
- Discover all available vendor sectors via
get_vendor_categoriesto extend searches beyond photographers to florists, caterers, or venues. - Build lead-generation tooling for wedding vendors by extracting
phoneandwebsitefields from profile pages. - Filter vendors by price bracket using
price_rangeto match couples with vendors in a specific budget range.
| Tier | Price | Credits/month | Rate limit |
|---|---|---|---|
| Free | $0/mo | 100 | 5 req/min |
| Hobby | $30/mo | 1,000 | 20 req/min |
| Developer | $100/mo | 5,000 | 100 req/min |
One credit = one API call regardless of which marketplace API you call. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.
Does WeddingWire have an official public developer API?+
What does `get_photographer_detail` return beyond basic contact info?+
phone, location, and website, the endpoint returns a details object containing FAQ-style key-value pairs vendors fill in — covering areas like service styles, coverage regions, and package options — plus a free-text description field and aggregate rating and review_count.Does the search endpoint cover vendor categories other than photographers?+
search_photographers endpoint is currently scoped to photographer listings. get_vendor_categories returns sector IDs and slugs for all other categories on WeddingWire. You can fork this API on Parse and revise it to add search endpoints for additional categories like florists, venues, or caterers using those sector IDs.Are reviews paginated, or does the endpoint return all reviews at once?+
get_photographer_reviews returns reviews in a single array response with no pagination parameter exposed. For vendors with large review counts, the number of reviews returned may reflect what is surfaced on the vendor's profile page. You can fork this API on Parse and revise it to add review pagination if deeper review history is needed.