Universities.hipolabs.com

Education API · Global university database · Search by name or country

TL;DR

HipoLabs University API provides a searchable directory of universities and higher education institutions from every country. Search by institution name or filter by country to get results including the university name, country, domain names, and website URLs. It's the largest free open database of its kind — sourcing data from Wikidata and other public datasets.

Quick start: http://universities.hipolabs.com/search?country=United+States

No API key needed — just make a request!

How to Use This API

1. Search Universities by Country

http://universities.hipolabs.com/search?country=United+States

Returns all US universities. Use full country names like "United States", "Canada", "Germany", "Japan".

2. Search by Name

http://universities.hipolabs.com/search?name=Massachusetts

Finds universities with "Massachusetts" in their name. Case-insensitive partial matching.

3. Combine Country and Name

http://universities.hipolabs.com/search?name=Technical&country=Germany

Find all technical universities in Germany. Both filters apply together.

4. JavaScript — Build a University Finder

async function findUniversities(country, name = '') {
  const params = new URLSearchParams({ country });
  if (name) params.set('name', name);
  
  const resp = await fetch(
    'http://universities.hipolabs.com/search?' + params
  );
  return resp.json();
}

findUniversities('Canada', 'Toronto').then(unis => {
  unis.forEach(u => {
    console.log(`${u.name} (${u.country})`);
    console.log(`  Domains: ${u.domains.join(', ')}`);
    console.log(`  Website: ${u.web_pages[0]}`);
  });
});

5. Python — Country Directory

import requests

def get_universities(country, name=None):
    params = {'country': country}
    if name:
        params['name'] = name
    resp = requests.get(
        'http://universities.hipolabs.com/search',
        params=params
    )
    return resp.json()

# Get all UK universities
uk = get_universities('United Kingdom')
print(f"Found {len(uk)} UK universities")

# Filter for Oxford
oxford = get_universities('United Kingdom', 'Oxford')
for u in oxford:
    print(f"{u['name']}: {u['web_pages'][0]}")
Try searching US universities: http://universities.hipolabs.com/search?country=United+States

Frequently Asked Questions

How many universities are in the database?
Approximately 10,000 universities and higher education institutions worldwide, sourced from Wikidata and continuously updated.
What country names are supported?
Use full English country names: "United States", "United Kingdom", "South Korea", "Czech Republic", etc. The API does not use ISO codes — always use the full name.
Does the name search support partial matches?
Yes, it's a substring match. Searching "Mass" will find "Massachusetts Institute of Technology", "University of Massachusetts", etc.
What data does each result include?
Each university entry returns: name, country, alpha_two_code (ISO country code), domains (email domains, e.g. ["mit.edu"]), and web_pages (website URLs).
Are community colleges and trade schools included?
The database focuses on degree-granting higher education institutions. Community colleges are included for some countries but coverage varies. It's strongest for four-year universities.
Can I get universities by alpha-2 country code instead of full name?
The search endpoint requires full country names. The alpha_two_code is included in the response but cannot be used as a query parameter.

API Details

API URL
http://universities.hipolabs.com/
Documentation
universities.hipolabs.com
Category
Education
Authentication
Not Required
Geographic Coverage
Global — ~10,000 institutions in 200+ countries

What You Can Build