{"openapi":"3.1.0","info":{"title":"Zoopla API — RealtyAPI","version":"1.0.0","description":"Zoopla API endpoints All endpoints require an API key sent in the `x-realtyapi-key` header. Get a key and try every endpoint interactively at https://www.realtyapi.io/api/zoopla.","contact":{"name":"RealtyAPI","url":"https://www.realtyapi.io","email":"support@realtyapi.io"}},"externalDocs":{"description":"Interactive API playground and docs","url":"https://www.realtyapi.io/api/zoopla"},"servers":[{"url":"https://zoopla.realtyapi.io"}],"security":[{"ApiKeyAuth":[]}],"tags":[{"name":"Property Details","description":"Property Details endpoints"},{"name":"Search Zoopla","description":"Search Zoopla endpoints"},{"name":"Property Details - Specific","description":"Property Details - Specific endpoints"},{"name":"Agents","description":"Agents endpoints"}],"paths":{"/details/byid":{"get":{"operationId":"get_details_byid","summary":"details/byid","tags":["Property Details"],"parameters":[{"name":"listingId","in":"query","required":true,"schema":{"type":"string"},"description":"Zoopla listing id — digits only.\n\n**Examples**: `72743732`, `73096370`, `66781234`","example":"72743732"}],"responses":{"200":{"description":"Successful response.","headers":{"x-credits-limit":{"description":"Total credits in your current plan period.","schema":{"type":"integer"}},"x-credits-remaining":{"description":"Credits remaining in your current plan period.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{}}}},"401":{"$ref":"#/components/responses/Unauthorized"},"402":{"$ref":"#/components/responses/PaymentRequired"}},"description":"INPUT: `listingId` (e.g. `72743732`)\n\nGet **full listing details** by Zoopla's internal `listingId`. The fastest details endpoint.\n\n##### Where to find a listingId:\n- Returned in every `/search/*` response (each result includes `listingId`).\n- Embedded in a Zoopla listing URL — the trailing digits are the `listingId`:\n  - `https://www.zoopla.co.uk/for-sale/details/72743732/` → `listingId = 72743732`\n\nIf you only have a URL, use [/details/byurl](https://realtyapi.io/dashboard?tab=playground&api=zoopla&endpoint=detailsbyurl) which extracts the id for you."}},"/autocomplete":{"get":{"operationId":"get_autocomplete","summary":"autocomplete","tags":["Search Zoopla"],"parameters":[{"name":"input","in":"query","required":true,"schema":{"type":"string"},"description":"Search query — partial neighbourhood / town / postcode / county.\n\n**Examples**: `Oxford`, `Hampstead`, `NW3`, `Camden`, `Manchester`","example":"Oxford"},{"name":"limit","in":"query","required":false,"schema":{"type":"number"},"description":"Maximum number of suggestions to return.\n\n- **Default**: `10`\n- Zoopla typically returns up to ~10.","example":10}],"responses":{"200":{"description":"Successful response.","headers":{"x-credits-limit":{"description":"Total credits in your current plan period.","schema":{"type":"integer"}},"x-credits-remaining":{"description":"Credits remaining in your current plan period.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{}}}},"401":{"$ref":"#/components/responses/Unauthorized"},"402":{"$ref":"#/components/responses/PaymentRequired"}},"description":"Zoopla **search-box autocomplete** (`getSearchSuggestions`).\n\nReturns ranked location suggestions for partial input — neighbourhoods, towns, postcodes, counties, regions — each with the slug Zoopla uses internally for searches. Feed the returned `displayName` into `/search/bylocation`."}},"/pricehistory":{"get":{"operationId":"get_pricehistory","summary":"pricehistory","tags":["Property Details - Specific"],"parameters":[{"name":"listingId","in":"query","required":true,"schema":{"type":"string"},"description":"Zoopla listing id — digits only. Find it in any `/search/*` response or extract from a Zoopla URL's `/details/<id>/` segment.\n\n**Examples**: `72743732`, `73096370`","example":"72743732"}],"responses":{"200":{"description":"Successful response.","headers":{"x-credits-limit":{"description":"Total credits in your current plan period.","schema":{"type":"integer"}},"x-credits-remaining":{"description":"Credits remaining in your current plan period.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{}}}},"401":{"$ref":"#/components/responses/Unauthorized"},"402":{"$ref":"#/components/responses/PaymentRequired"}},"description":"Slim endpoint — returns just the **price-change timeline** for one listing. Useful for tracking reductions / increases over the listing's life on the market without paying for the full `/details/byid` payload.\n\nReturns: `currentPrice`, `firstPublished` date, and a `priceChanges[]` array (each with `date`, `price`, `direction`, `percent`)."}},"/agent/search":{"get":{"operationId":"get_agent_search","summary":"agent/search","tags":["Agents"],"parameters":[{"name":"location","in":"query","required":true,"schema":{"type":"string"},"description":"Single-token UK location slug — town, neighbourhood, or postcode-area outward code.\n\n**Examples**: `oxford`, `london`, `nw3`, `se17`, `manchester`","example":"oxford"},{"name":"name","in":"query","required":false,"schema":{"type":"string"},"description":"Filter agents by **company name** (substring match).\n\n**Examples**: `Foxtons`, `Knight Frank`, `Savills`"},{"name":"radius","in":"query","required":false,"schema":{"type":"string"},"description":"Search radius in **miles** around the location slug. **Default**: `0`.\n\n**Allowed values** (Zoopla's UI): `0`, `1`, `3`, `5`, `10`, `20`, `40`","example":"0"},{"name":"page","in":"query","required":false,"schema":{"type":"number"},"description":"1-based page number. 25 results per page.","example":1}],"responses":{"200":{"description":"Successful response.","headers":{"x-credits-limit":{"description":"Total credits in your current plan period.","schema":{"type":"integer"}},"x-credits-remaining":{"description":"Credits remaining in your current plan period.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{}}}},"401":{"$ref":"#/components/responses/Unauthorized"},"402":{"$ref":"#/components/responses/PaymentRequired"}},"description":"Search Zoopla **estate-agent branches** by location (with optional name filter, radius, pagination).\n\nReturns 25 agents per page with `branchId`, name, address, phone, logo, branch URL, and per-section listing stats (`forSale`, `toRent`, `commercial` — each with available count, average asking price, average weeks on market).\n\nFeed a returned `branchId` into [/agent/details](https://realtyapi.io/dashboard?tab=playground&api=zoopla&endpoint=agentdetails), [/agent/forsaleproperties](https://realtyapi.io/dashboard?tab=playground&api=zoopla&endpoint=agentforsale) or [/agent/forrentproperties](https://realtyapi.io/dashboard?tab=playground&api=zoopla&endpoint=agentforrent).\n\n**Note**: `location` must be a **single-token slug** (`oxford`, `london`, `nw3`, `se17`). Multi-word slugs like `oxford-oxfordshire` return an error."}},"/details/byurl":{"get":{"operationId":"get_details_byurl","summary":"details/byurl","tags":["Property Details"],"parameters":[{"name":"url","in":"query","required":true,"schema":{"type":"string"},"description":"Full Zoopla listing URL with `/details/<listingId>/` in the path.\n\n**Examples**:\n- `https://www.zoopla.co.uk/for-sale/details/72743732/`\n- `https://www.zoopla.co.uk/to-rent/details/68923456/`","example":"https://www.zoopla.co.uk/for-sale/details/72743732/"}],"responses":{"200":{"description":"Successful response.","headers":{"x-credits-limit":{"description":"Total credits in your current plan period.","schema":{"type":"integer"}},"x-credits-remaining":{"description":"Credits remaining in your current plan period.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{}}}},"401":{"$ref":"#/components/responses/Unauthorized"},"402":{"$ref":"#/components/responses/PaymentRequired"}},"description":"INPUT: a full Zoopla listing URL\n\nExtracts the `listingId` from the URL and forwards to [/details/byid](https://realtyapi.io/dashboard?tab=playground&api=zoopla&endpoint=detailsbyid).\n\nAccepted URL forms (any section — `/for-sale/`, `/to-rent/`, `/new-homes/`):\n- `https://www.zoopla.co.uk/for-sale/details/72743732/`\n- `https://www.zoopla.co.uk/to-rent/details/12345678`"}},"/search/bylocation":{"get":{"operationId":"get_search_bylocation","summary":"search/bylocation","tags":["Search Zoopla"],"parameters":[{"name":"location","in":"query","required":true,"schema":{"type":"string"},"description":"Free-text UK location — neighbourhood, town, county, region, postcode area, or full address.\n\n**Examples**:\n- `NW3`\n- `Hampstead, London`\n- `London`\n- `Camden`\n- `Oxford, Oxfordshire`","example":"NW3"},{"name":"radius","in":"query","required":false,"schema":{"type":"number"},"description":"Search radius in **miles** around the location. Zoopla's slug-based search includes nearby properties; this expands the area further. **Default**: `1` mile.\n\n**Examples**: `0.25`, `1`, `5`, `10`","example":1},{"name":"page","in":"query","required":false,"schema":{"type":"number"},"description":"1-based page number. Each page returns up to 25 listings (Zoopla's fixed page size). The response includes a `nextPage` boolean — keep paging until `nextPage = false`.","example":1},{"name":"sortOrder","in":"query","required":false,"schema":{"type":"string","enum":["Newest","Price_High_to_Low","Price_Low_to_High","Most_Reduced"]},"description":"Sort order for the result list. **Default**: `Newest`.\n\n- `Newest` — most recently listed first\n- `Price_High_to_Low`\n- `Price_Low_to_High`\n- `Most_Reduced` — biggest price drop first"},{"name":"searchType","in":"query","required":false,"schema":{"type":"string","enum":["For_Sale","To_Rent","Sold"]},"description":"Listing status.\n\n- **Default**: `For_Sale`\n- `For_Sale` — properties currently listed for sale\n- `To_Rent` — rental listings (UK convention; the alias `For_Rent` is also accepted)\n- `Sold` — historic sold-price records (Zoopla's `house-prices` section)"},{"name":"propertyType","in":"query","required":false,"schema":{"type":"string"},"description":"Comma-separated UK property types. Leave empty to include all.\n\n**Allowed values**: `flat, house, bungalow, terraced, semi_detached, detached, land, park_home, farm`\n\n**Examples**: `flat`, `house,bungalow`, `terraced,semi_detached`"},{"name":"priceRange","in":"query","required":false,"schema":{"type":"string"},"description":"Price range, in GBP (£).\n\n**Possible Inputs**:\n- For Minimum: `min:500000`\n- For Maximum: `max:1500000`\n- For a Range: `min:500000,max:1500000`"},{"name":"bedsRange","in":"query","required":false,"schema":{"type":"string"},"description":"Bedroom range. Studio = `min:0`.\n\n**Possible Inputs**:\n- For Minimum Beds: `min:2`\n- For Maximum Beds: `max:5`\n- For an Exact Match: `min:3,max:3`\n- For a Range: `min:2,max:5`"},{"name":"bathsRange","in":"query","required":false,"schema":{"type":"string"},"description":"Bathroom range.\n\n**Possible Inputs**:\n- For Minimum Baths: `min:1`\n- For Maximum Baths: `max:3`\n- For a Range: `min:1,max:3`"},{"name":"sizeSqftRange","in":"query","required":false,"schema":{"type":"string"},"description":"Floor area range, in **square feet** (Zoopla stores `floor_area_min`/`max` in sqft).\n\n**Possible Inputs**:\n- For Minimum Sqft: `min:600`\n- For Maximum Sqft: `max:2000`\n- For a Range: `min:600,max:2000`"},{"name":"tenure","in":"query","required":false,"schema":{"type":"string","enum":["freehold","leasehold","share_of_freehold"]},"description":"Property tenure (UK-specific). **Default**: omit (any tenure).\n\n- `freehold` — own the building and the land\n- `leasehold` — own the property for a fixed term, ground rent paid to freeholder\n- `share_of_freehold` — leasehold + share in the building's freehold company"},{"name":"newHomes","in":"query","required":false,"schema":{"type":"string","enum":["true","false","only"]},"description":"New-build filter. Three values are accepted (Zoopla maps these to `new_homes=include/exclude/only`).\n\n- `true` — **include** new builds alongside resale (Zoopla's default behaviour)\n- `false` — **exclude** new builds\n- `only` — **only** new builds"},{"name":"chainFree","in":"query","required":false,"schema":{"type":"boolean"},"description":"Set to `true` to return only **chain-free** listings (no onward chain — common for new builds, executor sales, repossessions)."},{"name":"retirement","in":"query","required":false,"schema":{"type":"boolean"},"description":"Set to `true` to return only **retirement / over-55** properties."},{"name":"sharedOwnership","in":"query","required":false,"schema":{"type":"boolean"},"description":"Set to `true` to return only **shared-ownership** listings (buy a share, rent the rest from a housing association)."},{"name":"auction","in":"query","required":false,"schema":{"type":"boolean"},"description":"Set to `true` to return only **auction** listings."},{"name":"includeSold","in":"query","required":false,"schema":{"type":"boolean"},"description":"Set to `true` to also include **sold-STC / under-offer** listings alongside live ones. Used for `searchType` = `For_Sale`."},{"name":"furnished","in":"query","required":false,"schema":{"type":"string","enum":["furnished","unfurnished","part_furnished"]},"description":"Furnishing state. Used for `searchType` = `To_Rent`. **Default**: omit (any)."},{"name":"petsAllowed","in":"query","required":false,"schema":{"type":"boolean"},"description":"Set to `true` to return only **pet-friendly** rentals. Used for `searchType` = `To_Rent`."},{"name":"billsIncluded","in":"query","required":false,"schema":{"type":"boolean"},"description":"Set to `true` to return only rentals with **bills included** in rent. Used for `searchType` = `To_Rent`."},{"name":"includeRented","in":"query","required":false,"schema":{"type":"boolean"},"description":"Set to `true` to also include **let-agreed / already-rented** listings alongside live ones. Used for `searchType` = `To_Rent`."},{"name":"sharedLiving","in":"query","required":false,"schema":{"type":"boolean"},"description":"Set to `true` to return only **shared accommodation / flatshare** listings. Used for `searchType` = `To_Rent`."},{"name":"studentHousing","in":"query","required":false,"schema":{"type":"boolean"},"description":"Set to `true` to return only **student accommodation** listings. Used for `searchType` = `To_Rent`."},{"name":"keywords","in":"query","required":false,"schema":{"type":"string"},"description":"Free-text amenity keywords matched against listing descriptions.\n\n**Examples**: `garden`, `parking`, `period features`, `garden parking`"}],"responses":{"200":{"description":"Successful response.","headers":{"x-credits-limit":{"description":"Total credits in your current plan period.","schema":{"type":"integer"}},"x-credits-remaining":{"description":"Credits remaining in your current plan period.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{}}}},"401":{"$ref":"#/components/responses/Unauthorized"},"402":{"$ref":"#/components/responses/PaymentRequired"}},"description":"Search Zoopla listings by **free-text UK location** — neighbourhood, town, county, region, postcode area, or full address.\n\nReturns paginated listings (25 per page) with `listingId`, address, photos, price, beds/baths, property type, branch (estate agent), tenure, and listing date.\n\nSupports the **full filter set** below: status, property type, price/beds/baths/floor-area ranges, tenure, new-builds, chain-free, auction, retirement, shared-ownership, plus rent-only filters (furnished, pets, bills, shared-living, student)."}},"/images":{"get":{"operationId":"get_images","summary":"images","tags":["Property Details - Specific"],"parameters":[{"name":"listingId","in":"query","required":true,"schema":{"type":"string"},"description":"Zoopla listing id — digits only.\n\n**Examples**: `72743732`, `73096370`","example":"72743732"}],"responses":{"200":{"description":"Successful response.","headers":{"x-credits-limit":{"description":"Total credits in your current plan period.","schema":{"type":"integer"}},"x-credits-remaining":{"description":"Credits remaining in your current plan period.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{}}}},"401":{"$ref":"#/components/responses/Unauthorized"},"402":{"$ref":"#/components/responses/PaymentRequired"}},"description":"Slim endpoint — returns just the **photos + floor-plans** for one listing. Useful for image-focused integrations (galleries, AI vision pipelines, comparable-look apps) without paying for the full `/details/byid` payload.\n\nReturns: `numberOfImages`, `photos[]` (full-resolution URLs), `floorPlans[]`."}},"/agent/details":{"get":{"operationId":"get_agent_details","summary":"agent/details","tags":["Agents"],"parameters":[{"name":"branchId","in":"query","required":true,"schema":{"type":"string"},"description":"Zoopla branch id — digits only.\n\n**Examples**: `2879`, `4613`, `1990`","example":"2879"}],"responses":{"200":{"description":"Successful response.","headers":{"x-credits-limit":{"description":"Total credits in your current plan period.","schema":{"type":"integer"}},"x-credits-remaining":{"description":"Credits remaining in your current plan period.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{}}}},"401":{"$ref":"#/components/responses/Unauthorized"},"402":{"$ref":"#/components/responses/PaymentRequired"}},"description":"Get **estate-agent branch details** by Zoopla's internal `branchId`. Bundles three concurrent calls in one response:\n\n1. **Branch info** — display name, contact details (phone, email), full address, professional memberships (ARLA, NAEA, Ombudsman scheme).\n2. **For-sale stats** — current `forSaleProperties` total + a 5-listing sample.\n3. **For-rent stats** — current `forRentProperties` total + a 5-listing sample.\n\nFor a full page of an agent's listings, use [/agent/forsaleproperties](https://realtyapi.io/dashboard?tab=playground&api=zoopla&endpoint=agentforsale) or [/agent/forrentproperties](https://realtyapi.io/dashboard?tab=playground&api=zoopla&endpoint=agentforrent).\n\n##### Where to find a branchId:\n- Returned in every `/search/*` response under `branch.id`.\n- Returned in `/details/byid` under `detail.branch.id`.\n- Returned in [/agent/search](https://realtyapi.io/dashboard?tab=playground&api=zoopla&endpoint=agentsearch) results."}},"/details/byaddress":{"get":{"operationId":"get_details_byaddress","summary":"details/byaddress","tags":["Property Details"],"parameters":[{"name":"address","in":"query","required":true,"schema":{"type":"string"},"description":"UK street address — must include a **full UK postcode** (e.g. `NW3 1AA`, `SW1A 1AA`).\n\n**Examples**:\n- `10 Mansfield Road, NW3 2HN`\n- `Caroline Place, London W2 4AW`\n- `10 Downing Street, London SW1A 2AA`","example":"10 Mansfield Road, NW3 2HN"}],"responses":{"200":{"description":"Successful response.","headers":{"x-credits-limit":{"description":"Total credits in your current plan period.","schema":{"type":"integer"}},"x-credits-remaining":{"description":"Credits remaining in your current plan period.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{}}}},"401":{"$ref":"#/components/responses/Unauthorized"},"402":{"$ref":"#/components/responses/PaymentRequired"}},"description":"INPUT: a UK street address **with full postcode**\n\nResolves the address to a Unique Property Reference Number (UPRN) and returns the property record — historic listings, sold-price history, sale & rent estimates, plus the latest live listing if there's one currently on Zoopla.\n\nThe postcode is mandatory: Zoopla's address resolver returns 0 hits for partial addresses without one.\n\nIf you only have a `listingId`, use [/details/byid](https://realtyapi.io/dashboard?tab=playground&api=zoopla&endpoint=detailsbyid). For a single slice (just images, just price history, etc.) use the slim endpoints under **Property Details - Specific**."}},"/search/byzip":{"get":{"operationId":"get_search_byzip","summary":"search/byzip","tags":["Search Zoopla"],"parameters":[{"name":"postalCode","in":"query","required":true,"schema":{"type":"string"},"description":"UK postcode — **outward code preferred** (the part before the space).\n\nFull postcodes like `NW3 1AA` typically return 0 results because Zoopla's slug-based search treats them as a single literal location. Outward codes (`NW3`, `SW1A`, `EC1A`, `M1`) resolve to area slugs.\n\n**Examples**: `NW3`, `SW1`, `EC1A`, `M1`, `OX1`","example":"NW3"},{"name":"radius","in":"query","required":false,"schema":{"type":"number"},"description":"Search radius in **miles** around the postcode. Zoopla's slug-based search already covers the postcode area; this expands further.\n\n**Examples**: `0.25`, `1`, `5`"},{"name":"page","in":"query","required":false,"schema":{"type":"number"},"description":"1-based page number. Each page returns up to 25 listings (Zoopla's fixed page size). The response includes a `nextPage` boolean — keep paging until `nextPage = false`.","example":1},{"name":"sortOrder","in":"query","required":false,"schema":{"type":"string","enum":["Newest","Price_High_to_Low","Price_Low_to_High","Most_Reduced"]},"description":"Sort order for the result list. **Default**: `Newest`.\n\n- `Newest` — most recently listed first\n- `Price_High_to_Low`\n- `Price_Low_to_High`\n- `Most_Reduced` — biggest price drop first"},{"name":"searchType","in":"query","required":false,"schema":{"type":"string","enum":["For_Sale","To_Rent","Sold"]},"description":"Listing status.\n\n- **Default**: `For_Sale`\n- `For_Sale` — properties currently listed for sale\n- `To_Rent` — rental listings (UK convention; the alias `For_Rent` is also accepted)\n- `Sold` — historic sold-price records (Zoopla's `house-prices` section)"},{"name":"propertyType","in":"query","required":false,"schema":{"type":"string"},"description":"Comma-separated UK property types. Leave empty to include all.\n\n**Allowed values**: `flat, house, bungalow, terraced, semi_detached, detached, land, park_home, farm`\n\n**Examples**: `flat`, `house,bungalow`, `terraced,semi_detached`"},{"name":"priceRange","in":"query","required":false,"schema":{"type":"string"},"description":"Price range, in GBP (£).\n\n**Possible Inputs**:\n- For Minimum: `min:500000`\n- For Maximum: `max:1500000`\n- For a Range: `min:500000,max:1500000`"},{"name":"bedsRange","in":"query","required":false,"schema":{"type":"string"},"description":"Bedroom range. Studio = `min:0`.\n\n**Possible Inputs**:\n- For Minimum Beds: `min:2`\n- For Maximum Beds: `max:5`\n- For an Exact Match: `min:3,max:3`\n- For a Range: `min:2,max:5`"},{"name":"bathsRange","in":"query","required":false,"schema":{"type":"string"},"description":"Bathroom range.\n\n**Possible Inputs**:\n- For Minimum Baths: `min:1`\n- For Maximum Baths: `max:3`\n- For a Range: `min:1,max:3`"},{"name":"sizeSqftRange","in":"query","required":false,"schema":{"type":"string"},"description":"Floor area range, in **square feet** (Zoopla stores `floor_area_min`/`max` in sqft).\n\n**Possible Inputs**:\n- For Minimum Sqft: `min:600`\n- For Maximum Sqft: `max:2000`\n- For a Range: `min:600,max:2000`"},{"name":"tenure","in":"query","required":false,"schema":{"type":"string","enum":["freehold","leasehold","share_of_freehold"]},"description":"Property tenure (UK-specific). **Default**: omit (any tenure).\n\n- `freehold` — own the building and the land\n- `leasehold` — own the property for a fixed term, ground rent paid to freeholder\n- `share_of_freehold` — leasehold + share in the building's freehold company"},{"name":"newHomes","in":"query","required":false,"schema":{"type":"string","enum":["true","false","only"]},"description":"New-build filter. Three values are accepted (Zoopla maps these to `new_homes=include/exclude/only`).\n\n- `true` — **include** new builds alongside resale (Zoopla's default behaviour)\n- `false` — **exclude** new builds\n- `only` — **only** new builds"},{"name":"chainFree","in":"query","required":false,"schema":{"type":"boolean"},"description":"Set to `true` to return only **chain-free** listings (no onward chain — common for new builds, executor sales, repossessions)."},{"name":"retirement","in":"query","required":false,"schema":{"type":"boolean"},"description":"Set to `true` to return only **retirement / over-55** properties."},{"name":"sharedOwnership","in":"query","required":false,"schema":{"type":"boolean"},"description":"Set to `true` to return only **shared-ownership** listings (buy a share, rent the rest from a housing association)."},{"name":"auction","in":"query","required":false,"schema":{"type":"boolean"},"description":"Set to `true` to return only **auction** listings."},{"name":"includeSold","in":"query","required":false,"schema":{"type":"boolean"},"description":"Set to `true` to also include **sold-STC / under-offer** listings alongside live ones. Used for `searchType` = `For_Sale`."},{"name":"furnished","in":"query","required":false,"schema":{"type":"string","enum":["furnished","unfurnished","part_furnished"]},"description":"Furnishing state. Used for `searchType` = `To_Rent`. **Default**: omit (any)."},{"name":"petsAllowed","in":"query","required":false,"schema":{"type":"boolean"},"description":"Set to `true` to return only **pet-friendly** rentals. Used for `searchType` = `To_Rent`."},{"name":"billsIncluded","in":"query","required":false,"schema":{"type":"boolean"},"description":"Set to `true` to return only rentals with **bills included** in rent. Used for `searchType` = `To_Rent`."},{"name":"includeRented","in":"query","required":false,"schema":{"type":"boolean"},"description":"Set to `true` to also include **let-agreed / already-rented** listings alongside live ones. Used for `searchType` = `To_Rent`."},{"name":"sharedLiving","in":"query","required":false,"schema":{"type":"boolean"},"description":"Set to `true` to return only **shared accommodation / flatshare** listings. Used for `searchType` = `To_Rent`."},{"name":"studentHousing","in":"query","required":false,"schema":{"type":"boolean"},"description":"Set to `true` to return only **student accommodation** listings. Used for `searchType` = `To_Rent`."},{"name":"keywords","in":"query","required":false,"schema":{"type":"string"},"description":"Free-text amenity keywords matched against listing descriptions.\n\n**Examples**: `garden`, `parking`, `period features`, `garden parking`"}],"responses":{"200":{"description":"Successful response.","headers":{"x-credits-limit":{"description":"Total credits in your current plan period.","schema":{"type":"integer"}},"x-credits-remaining":{"description":"Credits remaining in your current plan period.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{}}}},"401":{"$ref":"#/components/responses/Unauthorized"},"402":{"$ref":"#/components/responses/PaymentRequired"}},"description":"Search Zoopla listings by **UK postcode**.\n\n**Outward code is preferred** (`NW3`, `SW1`, `EC1A`, `M1`) — Zoopla's slug-based search resolves these to real area slugs. Full postcodes (`NW3 1AA`) often return 0 results because no Zoopla \"area\" matches a single postcode. Use [/search/bycoordinates](https://realtyapi.io/dashboard?tab=playground&api=zoopla&endpoint=searchbycoordinates) for a precise radius-around-a-point search.\n\nReturns paginated listings (25 per page) with the same shape as [/search/bylocation](https://realtyapi.io/dashboard?tab=playground&api=zoopla&endpoint=searchbylocation). Supports the full filter set."}},"/poi":{"get":{"operationId":"get_poi","summary":"poi","tags":["Property Details - Specific"],"parameters":[{"name":"listingId","in":"query","required":true,"schema":{"type":"string"},"description":"Zoopla listing id — digits only.\n\n**Examples**: `72743732`, `73096370`","example":"72743732"}],"responses":{"200":{"description":"Successful response.","headers":{"x-credits-limit":{"description":"Total credits in your current plan period.","schema":{"type":"integer"}},"x-credits-remaining":{"description":"Credits remaining in your current plan period.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{}}}},"401":{"$ref":"#/components/responses/Unauthorized"},"402":{"$ref":"#/components/responses/PaymentRequired"}},"description":"Slim endpoint — returns just the **points of interest + transport links** around one listing. Useful for neighborhood-context widgets without paying for the full `/details/byid` payload.\n\nReturns: `pointsOfInterest[]` (schools, parks, etc. with type + distance) and `transports[]` (rail / tube / bus stops with distance)."}},"/agent/forsaleproperties":{"get":{"operationId":"get_agent_forsaleproperties","summary":"agent/forsaleproperties","tags":["Agents"],"parameters":[{"name":"branchId","in":"query","required":true,"schema":{"type":"string"},"description":"Zoopla branch id — digits only.\n\n**Examples**: `1990`, `2879`, `4613`","example":"1990"},{"name":"page","in":"query","required":false,"schema":{"type":"number"},"description":"1-based page number. 25 results per page.","example":1},{"name":"sortOrder","in":"query","required":false,"schema":{"type":"string"},"description":"Optional sort order — passed straight through to Zoopla's `results_sort` query param. Leave empty to use Zoopla's default (`newest_listings`).\n\n**Examples**: `newest_listings`, `highest_price`, `lowest_price`, `most_reduced`"}],"responses":{"200":{"description":"Successful response.","headers":{"x-credits-limit":{"description":"Total credits in your current plan period.","schema":{"type":"integer"}},"x-credits-remaining":{"description":"Credits remaining in your current plan period.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{}}}},"401":{"$ref":"#/components/responses/Unauthorized"},"402":{"$ref":"#/components/responses/PaymentRequired"}},"description":"Slim slice of [/agent/details](https://realtyapi.io/dashboard?tab=playground&api=zoopla&endpoint=agentdetails) — returns a full page of an agent's **for-sale listings** (not just the 5-listing sample).\n\n25 results per page. Returns `total`, `page`, and `results[]` (each with the same shape as a `/search/*` listing)."}},"/search/bycoordinates":{"get":{"operationId":"get_search_bycoordinates","summary":"search/bycoordinates","tags":["Search Zoopla"],"parameters":[{"name":"latitude","in":"query","required":true,"schema":{"type":"number"},"description":"Latitude (decimal degrees). London centre = `51.5074`.","example":51.5074},{"name":"longitude","in":"query","required":true,"schema":{"type":"number"},"description":"Longitude (decimal degrees). London centre = `-0.1278` (negative = west of Greenwich).","example":-0.1278},{"name":"radius","in":"query","required":false,"schema":{"type":"number"},"description":"Search radius in **miles** around (latitude, longitude). **Default**: `1` mile.\n\n**Examples**: `0.25`, `0.5`, `1`, `5`","example":1},{"name":"page","in":"query","required":false,"schema":{"type":"number"},"description":"1-based page number. Each page returns up to 25 listings (Zoopla's fixed page size). The response includes a `nextPage` boolean — keep paging until `nextPage = false`.","example":1},{"name":"sortOrder","in":"query","required":false,"schema":{"type":"string","enum":["Newest","Price_High_to_Low","Price_Low_to_High","Most_Reduced"]},"description":"Sort order for the result list. **Default**: `Newest`.\n\n- `Newest` — most recently listed first\n- `Price_High_to_Low`\n- `Price_Low_to_High`\n- `Most_Reduced` — biggest price drop first"},{"name":"searchType","in":"query","required":false,"schema":{"type":"string","enum":["For_Sale","To_Rent","Sold"]},"description":"Listing status.\n\n- **Default**: `For_Sale`\n- `For_Sale` — properties currently listed for sale\n- `To_Rent` — rental listings (UK convention; the alias `For_Rent` is also accepted)\n- `Sold` — historic sold-price records (Zoopla's `house-prices` section)"},{"name":"propertyType","in":"query","required":false,"schema":{"type":"string"},"description":"Comma-separated UK property types. Leave empty to include all.\n\n**Allowed values**: `flat, house, bungalow, terraced, semi_detached, detached, land, park_home, farm`\n\n**Examples**: `flat`, `house,bungalow`, `terraced,semi_detached`"},{"name":"priceRange","in":"query","required":false,"schema":{"type":"string"},"description":"Price range, in GBP (£).\n\n**Possible Inputs**:\n- For Minimum: `min:500000`\n- For Maximum: `max:1500000`\n- For a Range: `min:500000,max:1500000`"},{"name":"bedsRange","in":"query","required":false,"schema":{"type":"string"},"description":"Bedroom range. Studio = `min:0`.\n\n**Possible Inputs**:\n- For Minimum Beds: `min:2`\n- For Maximum Beds: `max:5`\n- For an Exact Match: `min:3,max:3`\n- For a Range: `min:2,max:5`"},{"name":"bathsRange","in":"query","required":false,"schema":{"type":"string"},"description":"Bathroom range.\n\n**Possible Inputs**:\n- For Minimum Baths: `min:1`\n- For Maximum Baths: `max:3`\n- For a Range: `min:1,max:3`"},{"name":"sizeSqftRange","in":"query","required":false,"schema":{"type":"string"},"description":"Floor area range, in **square feet** (Zoopla stores `floor_area_min`/`max` in sqft).\n\n**Possible Inputs**:\n- For Minimum Sqft: `min:600`\n- For Maximum Sqft: `max:2000`\n- For a Range: `min:600,max:2000`"},{"name":"tenure","in":"query","required":false,"schema":{"type":"string","enum":["freehold","leasehold","share_of_freehold"]},"description":"Property tenure (UK-specific). **Default**: omit (any tenure).\n\n- `freehold` — own the building and the land\n- `leasehold` — own the property for a fixed term, ground rent paid to freeholder\n- `share_of_freehold` — leasehold + share in the building's freehold company"},{"name":"newHomes","in":"query","required":false,"schema":{"type":"string","enum":["true","false","only"]},"description":"New-build filter. Three values are accepted (Zoopla maps these to `new_homes=include/exclude/only`).\n\n- `true` — **include** new builds alongside resale (Zoopla's default behaviour)\n- `false` — **exclude** new builds\n- `only` — **only** new builds"},{"name":"chainFree","in":"query","required":false,"schema":{"type":"boolean"},"description":"Set to `true` to return only **chain-free** listings (no onward chain — common for new builds, executor sales, repossessions)."},{"name":"retirement","in":"query","required":false,"schema":{"type":"boolean"},"description":"Set to `true` to return only **retirement / over-55** properties."},{"name":"sharedOwnership","in":"query","required":false,"schema":{"type":"boolean"},"description":"Set to `true` to return only **shared-ownership** listings (buy a share, rent the rest from a housing association)."},{"name":"auction","in":"query","required":false,"schema":{"type":"boolean"},"description":"Set to `true` to return only **auction** listings."},{"name":"includeSold","in":"query","required":false,"schema":{"type":"boolean"},"description":"Set to `true` to also include **sold-STC / under-offer** listings alongside live ones. Used for `searchType` = `For_Sale`."},{"name":"furnished","in":"query","required":false,"schema":{"type":"string","enum":["furnished","unfurnished","part_furnished"]},"description":"Furnishing state. Used for `searchType` = `To_Rent`. **Default**: omit (any)."},{"name":"petsAllowed","in":"query","required":false,"schema":{"type":"boolean"},"description":"Set to `true` to return only **pet-friendly** rentals. Used for `searchType` = `To_Rent`."},{"name":"billsIncluded","in":"query","required":false,"schema":{"type":"boolean"},"description":"Set to `true` to return only rentals with **bills included** in rent. Used for `searchType` = `To_Rent`."},{"name":"includeRented","in":"query","required":false,"schema":{"type":"boolean"},"description":"Set to `true` to also include **let-agreed / already-rented** listings alongside live ones. Used for `searchType` = `To_Rent`."},{"name":"sharedLiving","in":"query","required":false,"schema":{"type":"boolean"},"description":"Set to `true` to return only **shared accommodation / flatshare** listings. Used for `searchType` = `To_Rent`."},{"name":"studentHousing","in":"query","required":false,"schema":{"type":"boolean"},"description":"Set to `true` to return only **student accommodation** listings. Used for `searchType` = `To_Rent`."},{"name":"keywords","in":"query","required":false,"schema":{"type":"string"},"description":"Free-text amenity keywords matched against listing descriptions.\n\n**Examples**: `garden`, `parking`, `period features`, `garden parking`"}],"responses":{"200":{"description":"Successful response.","headers":{"x-credits-limit":{"description":"Total credits in your current plan period.","schema":{"type":"integer"}},"x-credits-remaining":{"description":"Credits remaining in your current plan period.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{}}}},"401":{"$ref":"#/components/responses/Unauthorized"},"402":{"$ref":"#/components/responses/PaymentRequired"}},"description":"Search Zoopla listings by **lat/lon + radius**. Useful for app maps and 'nearby properties' widgets.\n\nReturns paginated listings (25 per page) with the same shape as [/search/bylocation](https://realtyapi.io/dashboard?tab=playground&api=zoopla&endpoint=searchbylocation). Supports the full filter set."}},"/history":{"get":{"operationId":"get_history","summary":"history","tags":["Property Details - Specific"],"parameters":[{"name":"address","in":"query","required":false,"schema":{"type":"string"},"description":"UK street address — must include a **full UK postcode** (e.g. `NW3 1AA`).\n\nUse `address` **or** `uprn` (one is required).\n\n**Examples**: `10 Mansfield Road, NW3 2HN`, `Caroline Place, London W2 4AW`","example":"10 Mansfield Road, NW3 2HN"},{"name":"uprn","in":"query","required":false,"schema":{"type":"string"},"description":"Unique Property Reference Number — Zoopla's stable property identifier. Use this **instead of** `address` to skip the address-resolution step and save ~200 ms.\n\nFind a UPRN in any `/details/byaddress` response (`detail.uprn`).\n\n**Examples**: `100022732322`"}],"responses":{"200":{"description":"Successful response.","headers":{"x-credits-limit":{"description":"Total credits in your current plan period.","schema":{"type":"integer"}},"x-credits-remaining":{"description":"Credits remaining in your current plan period.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{}}}},"401":{"$ref":"#/components/responses/Unauthorized"},"402":{"$ref":"#/components/responses/PaymentRequired"}},"description":"Slim endpoint — returns the **historic listings & sold-price records** for one property, by address.\n\nResolves the address to a UPRN (so a full UK postcode is required), then returns:\n- `historicListings[]` — every time the property has been listed for sale or rent on Zoopla\n- `historicSales[]` — Land Registry sold-price entries\n\nFor estimates only, use [/estimates](https://realtyapi.io/dashboard?tab=playground&api=zoopla&endpoint=estimates). For the full property record, use [/details/byaddress](https://realtyapi.io/dashboard?tab=playground&api=zoopla&endpoint=detailsbyaddress)."}},"/agent/forrentproperties":{"get":{"operationId":"get_agent_forrentproperties","summary":"agent/forrentproperties","tags":["Agents"],"parameters":[{"name":"branchId","in":"query","required":true,"schema":{"type":"string"},"description":"Zoopla branch id — digits only.\n\n**Examples**: `2879`, `1990`, `4613`","example":"2879"},{"name":"page","in":"query","required":false,"schema":{"type":"number"},"description":"1-based page number. 25 results per page.","example":1},{"name":"sortOrder","in":"query","required":false,"schema":{"type":"string"},"description":"Optional sort order — passed straight through to Zoopla's `results_sort` query param. Leave empty to use Zoopla's default (`newest_listings`).\n\n**Examples**: `newest_listings`, `highest_price`, `lowest_price`, `most_reduced`"}],"responses":{"200":{"description":"Successful response.","headers":{"x-credits-limit":{"description":"Total credits in your current plan period.","schema":{"type":"integer"}},"x-credits-remaining":{"description":"Credits remaining in your current plan period.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{}}}},"401":{"$ref":"#/components/responses/Unauthorized"},"402":{"$ref":"#/components/responses/PaymentRequired"}},"description":"Slim slice of [/agent/details](https://realtyapi.io/dashboard?tab=playground&api=zoopla&endpoint=agentdetails) — returns a full page of an agent's **to-rent listings**.\n\n25 results per page. Returns `total`, `page`, and `results[]` (each with the same shape as a `/search/*` listing)."}},"/search/byurl":{"get":{"operationId":"get_search_byurl","summary":"search/byurl","tags":["Search Zoopla"],"parameters":[{"name":"url","in":"query","required":true,"schema":{"type":"string"},"description":"Full Zoopla search URL — paste any URL from the Zoopla site's search/filter page.\n\n**Examples**:\n- `https://www.zoopla.co.uk/for-sale/property/london/?price_min=500000&beds_min=2`\n- `https://www.zoopla.co.uk/to-rent/property/manchester/?price_max=1500&furnished_state=furnished`\n- `https://www.zoopla.co.uk/house-prices/oxford/?q=Oxford`","example":"https://www.zoopla.co.uk/for-sale/property/london/"}],"responses":{"200":{"description":"Successful response.","headers":{"x-credits-limit":{"description":"Total credits in your current plan period.","schema":{"type":"integer"}},"x-credits-remaining":{"description":"Credits remaining in your current plan period.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{}}}},"401":{"$ref":"#/components/responses/Unauthorized"},"402":{"$ref":"#/components/responses/PaymentRequired"}},"description":"Search by pasting a **Zoopla.co.uk search URL**. The URL's path + query string is forwarded directly to Zoopla's GraphQL — any filter combination the site's UI generates is replicated 1:1.\n\nSince the URL already encodes every filter, this endpoint takes no other parameters. To override individual filters, use [/search/bylocation](https://realtyapi.io/dashboard?tab=playground&api=zoopla&endpoint=searchbylocation) instead."}},"/estimates":{"get":{"operationId":"get_estimates","summary":"estimates","tags":["Property Details - Specific"],"parameters":[{"name":"address","in":"query","required":false,"schema":{"type":"string"},"description":"UK street address — must include a **full UK postcode** (e.g. `NW3 1AA`).\n\nUse `address` **or** `uprn` (one is required).\n\n**Examples**: `10 Mansfield Road, NW3 2HN`, `Caroline Place, London W2 4AW`","example":"10 Mansfield Road, NW3 2HN"},{"name":"uprn","in":"query","required":false,"schema":{"type":"string"},"description":"Unique Property Reference Number. Use this **instead of** `address` to skip the address-resolution step.\n\n**Examples**: `100022732322`"}],"responses":{"200":{"description":"Successful response.","headers":{"x-credits-limit":{"description":"Total credits in your current plan period.","schema":{"type":"integer"}},"x-credits-remaining":{"description":"Credits remaining in your current plan period.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{}}}},"401":{"$ref":"#/components/responses/Unauthorized"},"402":{"$ref":"#/components/responses/PaymentRequired"}},"description":"Slim endpoint — returns just the **sale estimate + rent estimate** for one property, by address.\n\nResolves the address to a UPRN (so a full UK postcode is required), then returns Zoopla's automated valuation:\n- `saleEstimate` — current estimated sale price\n- `rentEstimate` — current estimated monthly rent\n- Property facts: beds, baths, receptions, tenure, propertyType.\n\nFor the full property record (history + listings), use [/details/byaddress](https://realtyapi.io/dashboard?tab=playground&api=zoopla&endpoint=detailsbyaddress)."}},"/sold-prices":{"get":{"operationId":"get_sold_prices","summary":"sold-prices","tags":["Property Details - Specific"],"parameters":[{"name":"geoId","in":"query","required":false,"schema":{"type":"string"},"description":"Zoopla geo identifier slug — most precise option. Get one from `/autocomplete` results.\n\n**Examples**: `london`, `london/elm-row`, `london/elm-row/nw3-1aa`"},{"name":"postcode","in":"query","required":false,"schema":{"type":"string"},"description":"UK postcode forwarded as a geo identifier. Less reliable than `geoId` — results depend on whether Zoopla can resolve the postcode to one of its area slugs.\n\n**Examples**: `NW3 1AA`, `SW1A 1AA`"},{"name":"lat","in":"query","required":false,"schema":{"type":"number"},"description":"Latitude (decimal degrees) for an exact-coordinate search. Use together with `lon`.\n\n**Examples**: `51.5074`, `51.55`"},{"name":"lon","in":"query","required":false,"schema":{"type":"number"},"description":"Longitude (decimal degrees) for an exact-coordinate search. Use together with `lat`.\n\n**Examples**: `-0.1278`, `-0.16`"},{"name":"bbox","in":"query","required":false,"schema":{"type":"string"},"description":"Map-bounded search — bounding box as `ne_lat,ne_lon,sw_lat,sw_lon` (north-east corner, south-west corner).\n\n**Example**: `51.56,-0.15,51.54,-0.18`"},{"name":"first","in":"query","required":false,"schema":{"type":"number"},"description":"Number of results to return per page. **Default**: `50`. **Min**: `1`. **Max**: `100`.","example":50},{"name":"after","in":"query","required":false,"schema":{"type":"string"},"description":"Cursor for pagination — pass the `endCursor` value from the previous response. **Default**: `0` (first page).","example":"0"},{"name":"from","in":"query","required":false,"schema":{"type":"string"},"description":"Filter by **earliest sale date** (inclusive). ISO format `YYYY-MM-DD`.\n\n**Examples**: `2020-01-01`, `2024-06-01`"},{"name":"to","in":"query","required":false,"schema":{"type":"string"},"description":"Filter by **latest sale date** (inclusive). ISO format `YYYY-MM-DD`.\n\n**Examples**: `2024-12-31`"},{"name":"propertyType","in":"query","required":false,"schema":{"type":"string"},"description":"Filter by Zoopla's property type code. Single value (no comma list).\n\n**Allowed values**: `detached`, `semi_detached`, `terraced`, `flat`, `bungalow`"},{"name":"sortOrder","in":"query","required":false,"schema":{"type":"string"},"description":"Sort field. **Default**: `last_sale_date`.\n\n**Other accepted values**: `address`, `last_sale_price`.","example":"last_sale_date"},{"name":"sortDirection","in":"query","required":false,"schema":{"type":"string"},"description":"Sort direction. **Default**: `desc` (most recent / highest first).\n\n**Allowed values**: `asc`, `desc`","example":"desc"}],"responses":{"200":{"description":"Successful response.","headers":{"x-credits-limit":{"description":"Total credits in your current plan period.","schema":{"type":"integer"}},"x-credits-remaining":{"description":"Credits remaining in your current plan period.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{}}}},"401":{"$ref":"#/components/responses/Unauthorized"},"402":{"$ref":"#/components/responses/PaymentRequired"}},"description":"Browse Zoopla's **sold-price database** (mirrors the Prices tab in the Zoopla mobile app). Returns Land Registry sold-price entries plus Zoopla's matching property metadata.\n\n**One** geo selector is required — pass exactly one of:\n- `geoId` — slug from `/autocomplete` (e.g. `london/elm-row/nw3-1aa`). Most precise.\n- `postcode` — UK postcode forwarded as a geo identifier (Zoopla resolves it; results vary).\n- `lat` + `lon` — exact-coordinate search\n- `bbox` — map-bounded search, format `ne_lat,ne_lon,sw_lat,sw_lon`\n\nOptional date / type filters: `from`, `to`, `propertyType`, plus pagination via `first` + `after`."}},"/ev-charging":{"get":{"operationId":"get_ev_charging","summary":"ev-charging","tags":["Property Details - Specific"],"parameters":[{"name":"listingId","in":"query","required":false,"schema":{"type":"string"},"description":"Zoopla listing id — digits only. The endpoint will resolve the listing's coordinates and search around them.\n\nUse `listingId` **or** `lat` + `lon` (one is required).\n\n**Examples**: `71295522`, `72743732`","example":"71295522"},{"name":"lat","in":"query","required":false,"schema":{"type":"number"},"description":"Latitude (decimal degrees) for direct-coordinate search (no listing lookup). Use together with `lon`.\n\n**Examples**: `51.5074`"},{"name":"lon","in":"query","required":false,"schema":{"type":"number"},"description":"Longitude (decimal degrees) for direct-coordinate search. Use together with `lat`.\n\n**Examples**: `-0.1278`"}],"responses":{"200":{"description":"Successful response.","headers":{"x-credits-limit":{"description":"Total credits in your current plan period.","schema":{"type":"integer"}},"x-credits-remaining":{"description":"Credits remaining in your current plan period.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{}}}},"401":{"$ref":"#/components/responses/Unauthorized"},"402":{"$ref":"#/components/responses/PaymentRequired"}},"description":"**EV charging stations** near a property. Mirrors the EV-charging widget on Zoopla's mobile detail screen.\n\nTwo ways to call:\n- `listingId` — the endpoint resolves the listing's coordinates internally\n- `lat` + `lon` — direct coordinates (skips the listing lookup)\n\nReturns up to ~20 nearby chargers with `name`, `address`, `postcode`, `distance` (miles), `connectors` count, and lat/lon — plus the `nearestStationId`."}}},"components":{"securitySchemes":{"ApiKeyAuth":{"type":"apiKey","in":"header","name":"x-realtyapi-key","description":"RealtyAPI key from your dashboard at https://www.realtyapi.io."}},"schemas":{"Error":{"type":"object","properties":{"error":{"type":"string"}},"required":["error"]}},"responses":{"Unauthorized":{"description":"Missing or invalid API key.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"PaymentRequired":{"description":"No credits remaining on the API key.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}}