Public API

Vet Fair Developer API

Access 4,800+ verified UK vet prices. Free tier with generous limits. JSON and CSV. No signup wall — get your key in 30 seconds.

Get your API key View endpoints
📝

Pet bloggers

Show real average prices in your articles. "According to Vet Fair, a consultation costs £45-£65."

🛡️

Insurance comparison

Show customers what procedures actually cost when comparing pet insurance policies.

💰

Fintech & budgeting

Help pet owners budget accurately with real cost data for their area.

🏥

Vet practices

Benchmark your prices against local and national averages.

Pricing

Free
£0

Perfect for bloggers and side projects

  • 10 requests / minute
  • 1,000 requests / day
  • All endpoints
  • JSON + CSV export
Pro
£29/mo

For apps and comparison sites

  • 60 requests / minute
  • 50,000 requests / day
  • All endpoints
  • Priority support
Enterprise
Custom

For PetPlan, MoneySupermarket, etc.

  • Unlimited requests
  • Dedicated support
  • Custom data feeds
  • White-label options

Get your API key

Fill in the form below. Your key is generated instantly — no email confirmation needed.

API Reference

Base URL: https://vet-fair.com/api/v2  ·  Auth: X-API-Key: your_key

GET /api/v2/prices

Query verified vet prices with optional filters. This is the main data endpoint.

Parameters & example response
Param Type Description
procedurestring/intProcedure name or ID
citystringFilter by city name
postcodestringPostcode for geo search (use with radius_miles)
radius_milesfloatSearch radius (default: 5)
animal_typestringdog, cat, rabbit, hamster, bird, reptile, horse
animal_sizestringsmall, medium, large, giant
complexitystringstandard, complex, emergency
min_pricefloatMinimum price filter
max_pricefloatMaximum price filter
sortstringprice_asc, price_desc, city
limitintResults per page (default 50, max 500)
offsetintPagination offset
formatstringjson (default) or csv
curl -H "X-API-Key: vf_live_abc123" \
  "https://vet-fair.com/api/v2/prices?procedure=consultation&city=London&limit=3"

{
  "data": [
    {
      "practice_name": "Elizabeth Street Veterinary Clinic",
      "city": "London",
      "postcode": "SW1W 9PP",
      "procedure": "Consultation (initial)",
      "price": 45.00,
      "price_type": "standard",
      "price_high": null,
      "animal_type": null,
      "animal_size": null,
      "complexity": null,
      "collected_at": "2026-02-13T18:46:49"
    },
    ...
  ],
  "meta": {
    "total": 424,
    "limit": 3,
    "offset": 0,
    "filters_applied": {
      "procedure": "consultation",
      "city": "London"
    }
  },
  "stats": {
    "min": 20.0,
    "max": 313.0,
    "avg": 55.20,
    "median": 50.0,
    "count": 424
  }
}
GET /api/v2/procedures

All 17 procedures with price stats, broken down by animal type where available.

Example response
{
  "data": [
    {
      "id": 1,
      "name": "Consultation (initial)",
      "category": "Consultation",
      "stats": {
        "all": { "min": 20.0, "max": 313.0, "avg": 55.20, "median": 50.0, "count": 424 },
        "by_animal_type": {
          "dog": { "min": 25.0, "max": 313.0, "avg": 58.40, "count": 180 },
          "cat": { "min": 20.0, "max": 250.0, "avg": 52.10, "count": 140 }
        }
      }
    },
    ...
  ]
}
GET /api/v2/practices

Search practices by city, postcode, or chain. Returns metadata and price counts (not individual prices).

Params: city, postcode + radius_miles, chain, has_pricing, limit, offset

GET /api/v2/stats

Platform-wide statistics: total prices, practices, procedures, price ranges, last updated.

POST /api/v2/register

Register for an API key. Send JSON body with name, email, organisation, use_case.

GET /api/v2/key/info

View your API key details: tier, rate limits, usage stats. Requires authentication.

Quick start

Python

import requests

API_KEY = "vf_live_your_key_here"
BASE = "https://vet-fair.com/api/v2"

# Get average consultation price in Manchester
resp = requests.get(f"${BASE}/prices", headers={
    "X-API-Key": API_KEY
}, params={
    "procedure": "consultation",
    "city": "Manchester",
    "limit": 100
})

data = resp.json()
print(f"Average: £{'{'}data['stats']['avg']{'}'}")
print(f"Range: £{'{'}data['stats']['min']{'}'} – £{'{'}data['stats']['max']{'}'}")
print(f"Based on {'{'}data['stats']['count']{'}'} verified prices")

JavaScript

const API_KEY = 'vf_live_your_key_here';

const res = await fetch(
  'https://vet-fair.com/api/v2/prices?procedure=neutering&animal_type=dog',
  { headers: { 'X-API-Key': API_KEY } }
);

const { data, stats } = await res.json();
console.log(`Dog neutering: £${stats.min}–${stats.max} (avg £${stats.avg})`);

cURL

# Get all procedures with stats
curl -H "X-API-Key: vf_live_your_key_here" \
  https://vet-fair.com/api/v2/procedures

# Export London cat spaying prices as CSV
curl -H "X-API-Key: vf_live_your_key_here" \
  "https://vet-fair.com/api/v2/prices?procedure=cat+spaying&city=London&format=csv" \
  -o london-cat-spaying.csv

Price dimensions

Vet prices depend on more than just the procedure. Our data model captures optional dimensions so you can filter and analyse more precisely.

animal_type

dog, cat, rabbit, hamster, bird, reptile, horse

animal_size

small, medium, large, giant

complexity

standard, complex, emergency

age_category

puppy_kitten, adult, senior

weight_kg

Numeric weight for precise filtering

Not all prices have every dimension filled yet. We are progressively enriching our dataset. Currently ~40% of prices have animal_type populated.

Attribution & terms

Free-tier users must include attribution when displaying VetFair data publicly. Something like: "Average vet consultation costs £55, according to Vet Fair"

Pro and Enterprise tiers do not require visible attribution (but we appreciate it).

You may not use the API to build a competing vet price comparison website. All other uses — blogging, insurance comparison, fintech tools, academic research, journalism — are welcome.

Questions? [email protected]