Pets4Homes APIpets4homes.co.uk ↗
Search and retrieve dog listings from Pets4Homes UK via API. Access breed, price, location, seller info, health attributes, and litter details.
What is the Pets4Homes API?
The Pets4Homes API provides access to dog and puppy listings from the UK's largest pet classifieds site across 2 endpoints. Use search_dogs to query listings by keyword, price range, and page, or call get_listing with a slug to retrieve a full listing record including 20+ response fields covering breed, location coordinates, seller verification status, health attributes, and individual puppy availability within a litter.
curl -X GET 'https://api.parse.bot/scraper/a54db699-cc6c-4222-8ca5-febea5aec36e/search_dogs?page=1&keyword=labrador&max_price=2000&min_price=100' \ -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 pets4homes-co-uk-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.
"""Walkthrough: Pets4Homes SDK — search dogs for sale, drill into listing details."""
from parse_apis.pets4homes_co_uk_api import Pets4Homes, ListingNotFound
client = Pets4Homes()
# Search for labrador puppies, cap at 5 results
for listing in client.listing_summaries.search(keyword="labrador", limit=5):
print(listing.title, listing.breed, listing.price_amount)
# Drill down: get one listing summary, then fetch full details
summary = client.listing_summaries.search(keyword="cockapoo", max_price="1000", limit=1).first()
if summary:
detail = summary.details()
print(detail.title, detail.location.town, detail.seller.profile_name)
for pet in detail.pets_in_litter:
print(pet.name, pet.gender, pet.status, pet.price_amount)
# Direct get by slug via the listings collection
full = client.listings.get(slug="cnzviixpd-6-adorable-labrador-retriever-puppies-maldon")
print(full.description[:100], full.views_count)
# Typed error handling: catch a not-found listing
try:
client.listings.get(slug="nonexistent-listing-slug")
except ListingNotFound as exc:
print(f"Listing not found: {exc}")
print("exercised: listing_summaries.search / summary.details / listings.get / ListingNotFound")
Search for dogs/puppies for sale on Pets4Homes. Returns paginated results with breed, price, location, and seller details. Results are sorted by newest first. Keyword search matches breed names, descriptions, and titles. Price filters narrow results by listing price range.
| Param | Type | Description |
|---|---|---|
| page | integer | Page number for pagination (1-based). |
| keyword | string | Search keyword to filter listings (matches breed, title, description). Examples: 'labrador', 'cockapoo', 'small white'. |
| max_price | string | Maximum price in GBP to filter listings (e.g. '500', '1000'). |
| min_price | string | Minimum price in GBP to filter listings (e.g. '200', '500'). |
{
"type": "object",
"fields": {
"listings": "array of dog listing summaries with id, title, slug, price, breed, location, and seller info",
"total_items": "integer",
"total_pages": "integer",
"current_page": "integer"
},
"sample": {
"data": {
"listings": [
{
"id": "2fd400d9-b8ba-44dd-8f84-95974ed83d66",
"slug": "cnzviixpd-6-adorable-labrador-retriever-puppies-maldon",
"breed": "Labrador Retriever",
"title": "6 adorable Labrador retriever puppies",
"status": "Active",
"seller_id": "453425f1-d949-4217-a8a8-7bbef8739252",
"breed_code": "pets.dogs.breed.labradorRetriever",
"is_boosted": true,
"images_count": 20,
"price_amount": 1200,
"published_at": "2026-06-23T23:20:56.417Z",
"videos_count": 0,
"location_town": "Maldon",
"price_currency": "GBP",
"listing_package": "Basic",
"location_region": "Essex",
"description_preview": "6 beautiful cream Labrador puppies looking for their forever homes.",
"location_country_region": "England"
}
],
"total_items": 864,
"total_pages": 36,
"current_page": 1
},
"status": "success"
}
}About the Pets4Homes API
Searching Dog Listings
The search_dogs endpoint accepts optional keyword, min_price, max_price, and page parameters to query current dog and puppy listings on Pets4Homes. Results are sorted newest-first and return paginated summaries: each item in the listings array includes the listing id, title, slug, price, breed, location, and seller info. The total_items, total_pages, and current_page fields let you walk through result sets programmatically. Price values are in GBP, and keyword matching covers breed names, titles, and descriptions — so querying 'cockapoo' or 'labrador' returns breed-specific results.
Retrieving Full Listing Details
Passing a slug from search_dogs results to get_listing returns the complete listing record. The response includes a full images array (direct URLs), a description, a location object with latitude and longitude as well as town, region, and country_region, and an attributes object covering health and breeding details. The seller object exposes profile_name, user_type, member_since, is_identity_verified, and license_status — useful for filtering by verified or licensed breeders. Where a listing covers a litter, individual pets are returned with their own availability status and prices.
Coverage and Scope
Both endpoints cover dogs and puppies only. Listings reflect the live state of Pets4Homes UK classifieds. The status field on a listing indicates whether it is active or sold, and category further classifies the listing type. Pagination in search_dogs is 1-based via the page parameter, and total_pages tells you how many pages exist for a given query.
The Pets4Homes API is a managed, monitored endpoint for pets4homes.co.uk — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when pets4homes.co.uk 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 pets4homes.co.uk 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?+
- Monitor new puppy listings for a specific breed using
search_dogswith a keyword filter andtotal_itemsto detect changes. - Build a breed price tracker by querying
min_priceandmax_priceranges across multiple keywords over time. - Aggregate seller verification data from the
is_identity_verifiedandlicense_statusfields to surface licensed breeders. - Map available litters geographically using
latitudeandlongitudefrom theget_listinglocation object. - Alert buyers when a sold-out litter has individual puppies with updated
availability statusvia the litter detail fields. - Compile breed-level pricing statistics across UK regions using
breed,price, andcountry_regionfrom search results. - Cross-reference
member_sinceanduser_typeseller fields to analyse listing patterns by breeder tenure.
| 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 Pets4Homes have an official developer API?+
What does `get_listing` return beyond what `search_dogs` shows?+
get_listing adds the full description text, an images array of URLs, precise latitude and longitude coordinates, a detailed attributes object covering health and breeding info, and — where the listing is for a litter — individual pet records with their own prices and availability status. search_dogs returns only summary fields sufficient for browsing.Does the API cover cats, rabbits, or other pet types listed on Pets4Homes?+
Can I filter search results by location or UK region?+
search_dogs. Results do return location data — including town, region, and country_region — which you can use to filter client-side. You can fork this API on Parse and revise the search_dogs endpoint to add a location or region parameter.How fresh are the listings returned by the API?+
status field on a full listing indicates whether it is still active or has been marked sold, but there is no timestamp field exposing exact listing creation or update times in the current response schema.