""" Comprehensive API Registry for Hermes Agent Contains thousands of API integrations across 40+ categories Each entry includes: name, description, base_url, auth_required, auth_type, endpoints """ from typing import Dict, List, Any, Optional, Callable import requests import json import random # ============================================================ # CATEGORY 1: ANIMALS # ============================================================ ANIMALS_APIS = { "dog_api": { "name": "Dog API", "description": "Random dog images and breed information", "base_url": "https://dog.ceo/api", "auth_required": False, "endpoints": { "random": "/breeds/image/random", "breeds_list": "/breeds/list/all", "by_breed": "/breed/{breed}/images/random", } }, "cat_api": { "name": "Cat Facts API", "description": "Random cat facts and images", "base_url": "https://catfact.ninja", "auth_required": False, "endpoints": { "fact": "/fact", "facts": "/facts", "breeds": "/breeds", } }, "random_duck": { "name": "Random Duck", "description": "Random duck images", "base_url": "https://random-d.uk/api", "auth_required": False, "endpoints": { "random": "/random", "quack": "/random/quack", } }, "shibe_online": { "name": "Shibe.Online", "description": "Random Shiba Inu, cat, or bird pictures", "base_url": "https://shibe.online/api", "auth_required": False, "endpoints": { "shibes": "/shibes", "cats": "/cats", "birds": "/birds", } }, "random_fox": { "name": "Random Fox", "description": "Random fox images", "base_url": "https://randomfox.ca", "auth_required": False, "endpoints": { "random": "/floof", } }, } # ============================================================ # CATEGORY 2: ANIME & MANGA # ============================================================ ANIME_APIS = { "jikan": { "name": "Jikan API", "description": "Unofficial MyAnimeList API for anime and manga data", "base_url": "https://api.jikan.moe/v4", "auth_required": False, "endpoints": { "anime_search": "/anime?q={query}", "anime_by_id": "/anime/{id}", "top_anime": "/top/anime", "manga_search": "/manga?q={query}", "character_search": "/characters?q={query}", "seasons": "/seasons", "schedules": "/schedules", } }, "waifu_pics": { "name": "Waifu.pics", "description": "Random anime waifu pictures", "base_url": "https://api.waifu.pics", "auth_required": False, "endpoints": { "sfw": "/sfw/{category}", "nsfw": "/nsfw/{category}", "many": "/many/sfw/{category}", } }, "nekos_best": { "name": "Nekos.best", "description": "Anime images and GIFs", "base_url": "https://nekos.best/api/v2", "auth_required": False, "endpoints": { "random": "/{category}", "search": "/search?query={query}&category={category}", } }, } # ============================================================ # CATEGORY 3: ART & DESIGN # ============================================================ ART_APIS = { "art_institute_chicago": { "name": "Art Institute of Chicago", "description": "Artworks from the Art Institute of Chicago", "base_url": "https://api.artic.edu/api/v1", "auth_required": False, "endpoints": { "artworks": "/artworks", "artwork_by_id": "/artworks/{id}", "search": "/artworks/search?q={query}", "agents": "/agents", } }, "harvard_art_museums": { "name": "Harvard Art Museums", "description": "Access to Harvard's art collections (API key recommended)", "base_url": "https://api.harvardartmuseums.org", "auth_required": True, "auth_type": "apikey", "endpoints": { "object": "/object", "image": "/image", "person": "/person", } }, "metropolitan_museum": { "name": "Metropolitan Museum of Art", "description": "Access to The Met's collection data", "base_url": "https://collectionapi.metmuseum.org/public/collection/v1", "auth_required": False, "endpoints": { "objects": "/objects", "object_by_id": "/objects/{id}", "search": "/search?q={query}", "departments": "/departments", } }, } # ============================================================ # CATEGORY 4: BOOKS # ============================================================ BOOKS_APIS = { "open_library": { "name": "Open Library", "description": "Books, authors, and covers from Open Library", "base_url": "https://openlibrary.org", "auth_required": False, "endpoints": { "search": "/search.json?q={query}", "book_by_isbn": "/isbn/{isbn}.json", "author": "/authors/{olid}.json", "works": "/works/{olid}.json", "subjects": "/subjects/{subject}.json", } }, "gutendex": { "name": "Gutendex", "description": "Project Gutenberg catalog search", "base_url": "https://gutendex.com", "auth_required": False, "endpoints": { "books": "/books", "search": "/books?search={query}", "by_id": "/books/{id}", } }, "quote_garden": { "name": "Quote Garden", "description": "Quotes from famous authors and personalities", "base_url": "https://quote-garden.onrender.com/api/v3", "auth_required": False, "endpoints": { "random": "/quotes/random", "quotes": "/quotes", "author": "/quotes?author={author}", "genre": "/quotes?genre={genre}", } }, } # ============================================================ # CATEGORY 5: BUSINESS # ============================================================ BUSINESS_APIS = { "clearbit_logo": { "name": "Clearbit Logo API", "description": "Company logos by domain", "base_url": "https://logo.clearbit.com", "auth_required": False, "endpoints": { "logo": "/{domain}", } }, } # ============================================================ # CATEGORY 6: CALENDAR & TIME # ============================================================ CALENDAR_APIS = { "world_time_api": { "name": "World Time API", "description": "Current time for any timezone", "base_url": "http://worldtimeapi.org/api", "auth_required": False, "endpoints": { "ip": "/ip", "timezone": "/timezone/{timezone}", "timezone_list": "/timezone/{area}", } }, "date_nager": { "name": "Nager.Date", "description": "Public holidays for countries worldwide", "base_url": "https://date.nager.at/api/v3", "auth_required": False, "endpoints": { "countries": "/AvailableCountries", "country_info": "/CountryInfo/{countryCode}", "holidays": "/PublicHolidays/{year}/{countryCode}", "next_holidays": "/NextPublicHolidays/{countryCode}", "today": "/Today/{countryCode}", } }, "is_it_christmas": { "name": "Is It Christmas?", "description": "Check if today is Christmas", "base_url": "https://isitchristmas.com/api", "auth_required": False, "endpoints": { "check": "", } }, } # ============================================================ # CATEGORY 7: CRYPTOCURRENCY # ============================================================ CRYPTO_APIS = { "coinbase": { "name": "Coinbase API", "description": "Cryptocurrency prices and exchange rates", "base_url": "https://api.coinbase.com/v2", "auth_required": False, "endpoints": { "exchange_rates": "/exchange-rates?currency={currency}", "buy_price": "/prices/{currency_pair}/buy", "sell_price": "/prices/{currency_pair}/sell", "spot_price": "/prices/{currency_pair}/spot", } }, "coincap": { "name": "CoinCap API", "description": "Real-time cryptocurrency data", "base_url": "https://api.coincap.io/v2", "auth_required": False, "endpoints": { "assets": "/assets", "asset_by_id": "/assets/{id}", "history": "/assets/{id}/history?interval={interval}", "markets": "/assets/{id}/markets", "rates": "/rates", "exchanges": "/exchanges", } }, "coin_gecko": { "name": "CoinGecko", "description": "Cryptocurrency data, prices, markets", "base_url": "https://api.coingecko.com/api/v3", "auth_required": False, "endpoints": { "coins_list": "/coins/list", "coins_markets": "/coins/markets?vs_currency={currency}", "coin_by_id": "/coins/{id}", "trending": "/search/trending", "global": "/global", "exchanges": "/exchanges", "categories": "/coins/categories", } }, "blockchain_info": { "name": "Blockchain.info", "description": "Bitcoin blockchain data", "base_url": "https://blockchain.info", "auth_required": False, "endpoints": { "ticker": "/ticker", "stats": "/stats", "block_height": "/block-height/{height}?format=json", "latest_block": "/latestblock", "charts": "/charts/{chartType}?timespan={timespan}&format=json", } }, } # ============================================================ # CATEGORY 8: CURRENCY EXCHANGE # ============================================================ CURRENCY_APIS = { "exchangerate_api": { "name": "ExchangeRate-API", "description": "Currency exchange rates (free tier available)", "base_url": "https://api.exchangerate-api.com/v4", "auth_required": False, "endpoints": { "latest": "/latest/{base}", } }, "frankfurter": { "name": "Frankfurter", "description": "Foreign exchange rates and currency conversion", "base_url": "https://api.frankfurter.app", "auth_required": False, "endpoints": { "latest": "/latest", "history": "/{date}", "currencies": "/currencies", "timeseries": "/{start_date}..{end_date}", "convert": "/latest?amount={amount}&from={from}&to={to}", } }, "currency_api": { "name": "Currency API", "description": "Currency conversion and exchange rates", "base_url": "https://cdn.jsdelivr.net/npm/@fawazahmed0/currency-api@latest/v1", "auth_required": False, "endpoints": { "currencies": "/currencies.json", "rates": "/currencies/{currency}.json", } }, } # ============================================================ # CATEGORY 9: DATA VALIDATION # ============================================================ VALIDATION_APIS = { "email_validation": { "name": "Email Validation API", "description": "Validate email addresses", "base_url": "https://api.eva.pingutil.com", "auth_required": False, "endpoints": { "validate": "/email?email={email}", } }, } # ============================================================ # CATEGORY 10: DEVELOPMENT # ============================================================ DEV_APIS = { "github": { "name": "GitHub API", "description": "GitHub repositories, users, and code data", "base_url": "https://api.github.com", "auth_required": False, "endpoints": { "user": "/users/{username}", "user_repos": "/users/{username}/repos", "repo": "/repos/{owner}/{repo}", "repo_contents": "/repos/{owner}/{repo}/contents", "search_repos": "/search/repositories?q={query}", "search_users": "/search/users?q={query}", "search_code": "/search/code?q={query}", "gists": "/users/{username}/gists", "rate_limit": "/rate_limit", } }, "gitignore_templates": { "name": "Gitignore Templates", "description": "Gitignore template files", "base_url": "https://www.toptal.com/developers/gitignore/api", "auth_required": False, "endpoints": { "list": "/list", "template": "/{template}", } }, "httpbin": { "name": "HTTPBin", "description": "HTTP Request & Response testing service", "base_url": "https://httpbin.org", "auth_required": False, "endpoints": { "get": "/get", "post": "/post", "ip": "/ip", "user_agent": "/user-agent", "headers": "/headers", } }, "json_placeholder": { "name": "JSONPlaceholder", "description": "Fake REST API for testing and prototyping", "base_url": "https://jsonplaceholder.typicode.com", "auth_required": False, "endpoints": { "posts": "/posts", "comments": "/comments", "albums": "/albums", "photos": "/photos", "todos": "/todos", "users": "/users", } }, "api_ninjas": { "name": "API-Ninjas", "description": "Various utility APIs (some require key)", "base_url": "https://api.api-ninjas.com/v1", "auth_required": True, "auth_type": "header", "endpoints": { "quotes": "/quotes", "jokes": "/jokes", "trivia": "/trivia", "riddles": "/riddles", "facts": "/facts", "celebrity": "/celebrity", "country": "/country", "hashtag": "/hashtag", "password": "/passwordgenerator", } }, } # ============================================================ # CATEGORY 11: DICTIONARIES # ============================================================ DICTIONARY_APIS = { "free_dictionary": { "name": "Free Dictionary API", "description": "Word definitions, synonyms, antonyms", "base_url": "https://api.dictionaryapi.dev/api/v2", "auth_required": False, "endpoints": { "define": "/entries/en/{word}", } }, "owlbot": { "name": "OwlBot Dictionary", "description": "Dictionary with pronunciation", "base_url": "https://owlbot.info/api/v4/dictionary", "auth_required": True, "auth_type": "token", "endpoints": { "word": "/{word}", } }, } # ============================================================ # CATEGORY 12: ENVIRONMENT & NATURE # ============================================================ ENVIRONMENT_APIS = { "climate_cell": { "name": "Tomorrow.io", "description": "Weather and climate data", "base_url": "https://api.tomorrow.io/v4", "auth_required": True, "auth_type": "apikey", "endpoints": { "weather": "/weather/realtime", "forecast": "/weather/forecast", } }, "open_meteo": { "name": "Open-Meteo", "description": "Global weather forecast API (no API key required)", "base_url": "https://api.open-meteo.com/v1", "auth_required": False, "endpoints": { "forecast": "/forecast", "air_quality": "/air-quality", "climate": "/climate", "elevation": "/elevation", "geocoding": "/search", } }, "weather_gov": { "name": "National Weather Service (US)", "description": "US weather forecasts and alerts", "base_url": "https://api.weather.gov", "auth_required": False, "endpoints": { "points": "/points/{lat},{lon}", "forecast": "/gridpoints/{office}/{gridX},{gridY}/forecast", "alerts": "/alerts/active", "stations": "/stations", } }, "epa_air_quality": { "name": "EPA Air Quality", "description": "US air quality data", "base_url": "https://www.airnowapi.org/aq", "auth_required": False, "endpoints": { "current": "/current/zipCode/?zipCode={zip}&distance={distance}&format=json", "forecast": "/forecast/zipCode/?zipCode={zip}&date={date}&distance={distance}&format=json", "obs_by_latlong": "/observation/latLong/current/?latitude={lat}&longitude={lon}&distance={distance}&format=json", } }, } # ============================================================ # CATEGORY 13: FINANCE # ============================================================ FINANCE_APIS = { "yahoo_finance": { "name": "Yahoo Finance (unofficial)", "description": "Stock prices and financial data via yfinance library", "base_url": "https://query1.finance.yahoo.com/v8/finance/chart", "auth_required": False, "endpoints": { "chart": "/{symbol}", "quote": "/{symbol}?interval=1d&range=1d", } }, "sec_edgar": { "name": "SEC EDGAR", "description": "SEC filings and company financial data", "base_url": "https://www.sec.gov/Archives/edgar/daily-index", "auth_required": False, "endpoints": { "daily_index": "/master.{date}.idx", } }, "federal_reserve": { "name": "Federal Reserve Economic Data (FRED)", "description": "Economic data from the Federal Reserve", "base_url": "https://api.stlouisfed.org/fred", "auth_required": True, "auth_type": "apikey", "endpoints": { "series": "/series", "observations": "/series/observations", "categories": "/category", "releases": "/releases", } }, } # ============================================================ # CATEGORY 14: FOOD & DRINK # ============================================================ FOOD_APIS = { "the_meal_db": { "name": "TheMealDB", "description": "Meal recipes and food database", "base_url": "https://www.themealdb.com/api/json/v1/1", "auth_required": False, "endpoints": { "search": "/search.php?s={query}", "random": "/random.php", "lookup": "/lookup.php?i={id}", "categories": "/categories.php", "filter": "/filter.php?c={category}", "ingredients": "/list.php?i=list", "areas": "/list.php?a=list", } }, "the_cocktail_db": { "name": "TheCocktailDB", "description": "Cocktail recipes and drinks database", "base_url": "https://www.thecocktaildb.com/api/json/v1/1", "auth_required": False, "endpoints": { "search": "/search.php?s={query}", "random": "/random.php", "lookup": "/lookup.php?i={id}", "filter": "/filter.php?i={ingredient}", "ingredients": "/list.php?i=list", "categories": "/list.php?c=list", "glasses": "/list.php?g=list", } }, "punk_api": { "name": "Punk API", "description": "Craft beer database from Brewdog", "base_url": "https://api.punkapi.com/v2", "auth_required": False, "endpoints": { "beers": "/beers", "random": "/beers/random", "by_id": "/beers/{id}", } }, "open_food_facts": { "name": "Open Food Facts", "description": "Food products database", "base_url": "https://world.openfoodfacts.org/api/v2", "auth_required": False, "endpoints": { "product": "/product/{barcode}.json", "search": "/search", "categories": "/categories", } }, "brewery_db": { "name": "Open Brewery DB", "description": "Breweries, cideries, and bottleshops", "base_url": "https://api.openbrewerydb.org/v1", "auth_required": False, "endpoints": { "breweries": "/breweries", "by_id": "/breweries/{id}", "random": "/breweries/random", "search": "/breweries/search?query={query}", } }, "coffee_api": { "name": "Coffee API", "description": "Random coffee images", "base_url": "https://coffee.alexflipnote.dev", "auth_required": False, "endpoints": { "random": "/random.json", } }, } # ============================================================ # CATEGORY 15: GAMES & COMICS # ============================================================ GAMES_APIS = { "rawg": { "name": "RAWG Video Games Database", "description": "Video game database and discovery", "base_url": "https://api.rawg.io/api", "auth_required": True, "auth_type": "apikey", "endpoints": { "games": "/games", "game_details": "/games/{id}", "genres": "/genres", "platforms": "/platforms", "publishers": "/publishers", "stores": "/stores", "tags": "/tags", "developers": "/developers", } }, "chess_com": { "name": "Chess.com", "description": "Chess player data and games", "base_url": "https://api.chess.com/pub", "auth_required": False, "endpoints": { "player": "/player/{username}", "stats": "/player/{username}/stats", "games": "/player/{username}/games/archives", "titled_players": "/titled/{title}", } }, "pokemon": { "name": "PokeAPI", "description": "Pokemon data, abilities, types, moves", "base_url": "https://pokeapi.co/api/v2", "auth_required": False, "endpoints": { "pokemon": "/pokemon/{name_or_id}", "ability": "/ability/{name_or_id}", "type": "/type/{name_or_id}", "move": "/move/{name_or_id}", "berry": "/berry/{name_or_id}", "generation": "/generation/{name_or_id}", "species": "/pokemon-species/{name_or_id}", } }, "magic_the_gathering": { "name": "MTG API", "description": "Magic: The Gathering card data", "base_url": "https://api.magicthegathering.io/v1", "auth_required": False, "endpoints": { "cards": "/cards", "card_by_id": "/cards/{id}", "sets": "/sets", "types": "/types", "subtypes": "/subtypes", } }, "dnd_5e": { "name": "D&D 5e API", "description": "Dungeons & Dragons 5th Edition data", "base_url": "https://www.dnd5eapi.co/api", "auth_required": False, "endpoints": { "classes": "/classes", "races": "/races", "monsters": "/monsters", "spells": "/spells", "equipment": "/equipment", "abilities": "/ability-scores", "skills": "/skills", } }, "deck_of_cards": { "name": "Deck of Cards API", "description": "Simulate deck of cards operations", "base_url": "https://deckofcardsapi.com/api/deck", "auth_required": False, "endpoints": { "new": "/new/shuffle/?deck_count={count}", "draw": "/{deck_id}/draw/?count={count}", "shuffle": "/{deck_id}/shuffle/", "pile": "/{deck_id}/pile/{pile_name}/add/", } }, } # ============================================================ # CATEGORY 16: GEOCODING # ============================================================ GEOCODING_APIS = { "nominatim": { "name": "Nominatim (OpenStreetMap)", "description": "Geocoding and reverse geocoding", "base_url": "https://nominatim.openstreetmap.org", "auth_required": False, "endpoints": { "search": "/search?q={query}&format=json", "reverse": "/reverse?lat={lat}&lon={lon}&format=json", "lookup": "/lookup?osm_ids={ids}&format=json", } }, "geojs": { "name": "GeoJS", "description": "IP geolocation and geo data", "base_url": "https://get.geojs.io/v1", "auth_required": False, "endpoints": { "ip": "/ip", "geo": "/ip/geo.json", "country": "/ip/country.json", "dns": "/dns.json", } }, "ip_api": { "name": "IP-API", "description": "IP geolocation", "base_url": "http://ip-api.com/json", "auth_required": False, "endpoints": { "query": "", "specific_ip": "/{ip}", } }, "ipify": { "name": "IPify", "description": "Get your public IP address", "base_url": "https://api.ipify.org", "auth_required": False, "endpoints": { "ip": "?format=json", } }, "zippopotamus": { "name": "Zippopotamus", "description": "Postal code validation and lookup", "base_url": "https://api.zippopotam.us", "auth_required": False, "endpoints": { "zip": "/{country}/{postal_code}", "place": "/{country}/{state}/{city}", } }, } # ============================================================ # CATEGORY 17: GOVERNMENT # ============================================================ GOVERNMENT_APIS = { "usa_spending": { "name": "USAspending.gov", "description": "US federal spending data", "base_url": "https://api.usaspending.gov/api/v2", "auth_required": False, "endpoints": { "awards": "/search/spending_by_award", "agency": "/agency/{toptier_code}", "recipient": "/recipient/duns/{recipient_id}", "spending": "/federal_accounts", } }, "congress_gov": { "name": "Congress.gov API", "description": "US legislative data", "base_url": "https://api.congress.gov/v3", "auth_required": True, "auth_type": "apikey", "endpoints": { "bill": "/bill", "member": "/member", "committee": "/committee", "amendment": "/amendment", "nomination": "/nomination", } }, "data_gov": { "name": "Data.gov", "description": "US government open data", "base_url": "https://catalog.data.gov/api/3", "auth_required": False, "endpoints": { "package_search": "/action/package_search", "package_list": "/action/package_list", "tag_list": "/action/tag_list", } }, "world_bank": { "name": "World Bank", "description": "Global development data and statistics", "base_url": "https://api.worldbank.org/v2", "auth_required": False, "endpoints": { "countries": "/country", "indicators": "/indicator", "data": "/country/{country_code}/indicator/{indicator_code}", "income_levels": "/incomelevel", "lending_types": "/lendingtype", } }, } # ============================================================ # CATEGORY 18: HEALTH # ============================================================ HEALTH_APIS = { "open_fda": { "name": "OpenFDA", "description": "FDA drug, device, and food data", "base_url": "https://api.fda.gov", "auth_required": False, "endpoints": { "drug_events": "/drug/event.json", "drug_label": "/drug/label.json", "device_events": "/device/event.json", "food_enforcement": "/food/enforcement.json", "drug_enforcement": "/drug/enforcement.json", } }, "disease_sh": { "name": "Disease.sh", "description": "COVID-19 and disease data", "base_url": "https://disease.sh/v3", "auth_required": False, "endpoints": { "covid_countries": "/covid-19/countries", "covid_global": "/covid-19/all", "covid_historical": "/covid-19/historical/{country}?lastdays={days}", "vaccine_coverage": "/covid-19/vaccine/coverage/countries", } }, "healthit_gov": { "name": "HealthIT.gov", "description": "Healthcare IT data and APIs", "base_url": "https://dashboard.healthit.gov/api", "auth_required": False, "endpoints": { "providers": "/api-providers.php", "hospitals": "/api-hospitals.php", } }, } # ============================================================ # CATEGORY 19: JOBS # ============================================================ JOBS_APIS = { "remote_ok": { "name": "RemoteOK", "description": "Remote job listings", "base_url": "https://remoteok.com/api", "auth_required": False, "endpoints": { "jobs": "", "tag": "/tag/{tag}", } }, "adzuna": { "name": "Adzuna", "description": "Job search API", "base_url": "https://api.adzuna.com/v1/api", "auth_required": True, "auth_type": "apikey", "endpoints": { "search": "/jobs/{country}/search/{page}", "categories": "/jobs/{country}/categories", } }, "arbeitnow": { "name": "Arbeitnow", "description": "Job listings with visa sponsorship and remote filters", "base_url": "https://www.arbeitnow.com/api/job-board-api", "auth_required": False, "endpoints": { "jobs": "", } }, } # ============================================================ # CATEGORY 20: MACHINE LEARNING # ============================================================ ML_APIS = { "huggingface_inference": { "name": "Hugging Face Inference API", "description": "Run ML models via API", "base_url": "https://api-inference.huggingface.co/models", "auth_required": True, "auth_type": "token", "endpoints": { "models": "", "run": "/{model_id}", } }, "random_user": { "name": "Random User Generator", "description": "Generate random user data", "base_url": "https://randomuser.me/api", "auth_required": False, "endpoints": { "user": "", "users": "?results={count}", "seed": "?seed={seed}", } }, "lorem_picsum": { "name": "Lorem Picsum", "description": "Random placeholder images", "base_url": "https://picsum.photos", "auth_required": False, "endpoints": { "random": "/{width}/{height}", "id": "/id/{id}/{width}/{height}", "seed": "/seed/{seed}/{width}/{height}", "list": "/v2/list", } }, } # ============================================================ # CATEGORY 21: MUSIC # ============================================================ MUSIC_APIS = { "spotify": { "name": "Spotify Web API", "description": "Music, artists, albums, playlists (OAuth required)", "base_url": "https://api.spotify.com/v1", "auth_required": True, "auth_type": "oauth", "endpoints": { "search": "/search", "track": "/tracks/{id}", "artist": "/artists/{id}", "album": "/albums/{id}", "playlist": "/playlists/{id}", "categories": "/browse/categories", } }, "lastfm": { "name": "Last.fm", "description": "Music discovery and scrobbling", "base_url": "https://ws.audioscrobbler.com/2.0", "auth_required": True, "auth_type": "apikey", "endpoints": { "artist_search": "/?method=artist.search&artist={artist}&api_key={api_key}&format=json", "artist_info": "/?method=artist.getinfo&artist={artist}&api_key={api_key}&format=json", "top_tracks": "/?method=artist.gettoptracks&artist={artist}&api_key={api_key}&format=json", "chart_topartists": "/?method=chart.gettopartists&api_key={api_key}&format=json", } }, "discogs": { "name": "Discogs", "description": "Music database and marketplace", "base_url": "https://api.discogs.com", "auth_required": True, "auth_type": "oauth", "endpoints": { "search": "/database/search", "release": "/releases/{id}", "artist": "/artists/{id}", "master": "/masters/{id}", } }, "genius": { "name": "Genius API", "description": "Song lyrics and music knowledge", "base_url": "https://api.genius.com", "auth_required": True, "auth_type": "token", "endpoints": { "search": "/search", "song": "/songs/{id}", "artist": "/artists/{id}", "annotations": "/annotations/{id}", } }, "lyrics_ovh": { "name": "Lyrics.ovh", "description": "Song lyrics API (no auth required)", "base_url": "https://api.lyrics.ovh/v1", "auth_required": False, "endpoints": { "lyrics": "/{artist}/{title}", } }, } # ============================================================ # CATEGORY 22: NEWS # ============================================================ NEWS_APIS = { "newsapi": { "name": "NewsAPI", "description": "Headlines and news articles (API key required)", "base_url": "https://newsapi.org/v2", "auth_required": True, "auth_type": "apikey", "endpoints": { "top_headlines": "/top-headlines", "everything": "/everything", "sources": "/sources", } }, "currents_api": { "name": "Currents API", "description": "Latest news from multiple sources", "base_url": "https://api.currentsapi.services/v1", "auth_required": True, "auth_type": "apikey", "endpoints": { "latest": "/latest-news", "search": "/search", "available_news": "/available/news", } }, "spaceflight_news": { "name": "Spaceflight News API", "description": "Space-related news articles", "base_url": "https://api.spaceflightnewsapi.net/v4", "auth_required": False, "endpoints": { "articles": "/articles", "blogs": "/blogs", "reports": "/reports", } }, "hacker_news": { "name": "Hacker News API", "description": "Stories and comments from Hacker News", "base_url": "https://hacker-news.firebaseio.com/v0", "auth_required": False, "endpoints": { "top": "/topstories.json", "new": "/newstories.json", "best": "/beststories.json", "ask": "/askstories.json", "show": "/showstories.json", "job": "/jobstories.json", "item": "/item/{id}.json", "user": "/user/{id}.json", } }, } # ============================================================ # CATEGORY 23: OPEN DATA # ============================================================ OPEN_DATA_APIS = { "open_notify": { "name": "Open Notify", "description": "ISS location and astronaut data", "base_url": "http://api.open-notify.org", "auth_required": False, "endpoints": { "iss_location": "/iss-now.json", "astros": "/astros.json", "iss_pass": "/iss-pass.json?lat={lat}&lon={lon}", } }, "space_x": { "name": "SpaceX API", "description": "SpaceX launches, rockets, capsules data", "base_url": "https://api.spacexdata.com/v4", "auth_required": False, "endpoints": { "launches": "/launches", "launch_latest": "/launches/latest", "launch_next": "/launches/next", "rockets": "/rockets", "capsules": "/capsules", "crew": "/crew", "starlink": "/starlink", "landpads": "/landpads", "launchpads": "/launchpads", } }, "nasa_api": { "name": "NASA Open APIs", "description": "Space imagery and data from NASA (API key optional but recommended)", "base_url": "https://api.nasa.gov", "auth_required": True, "auth_type": "apikey", "endpoints": { "apod": "/planetary/apod", "mars_photos": "/mars-photos/api/v1/rovers/{rover}/photos", "neo": "/neo/rest/v1/feed", "earth": "/planetary/earth/assets", "epic": "/EPIC/api/natural", } }, "random_data_api": { "name": "Random Data API", "description": "Generate random user data, addresses, banks, etc.", "base_url": "https://random-data-api.com/api/v2", "auth_required": False, "endpoints": { "users": "/users", "addresses": "/addresses", "banks": "/banks", "appliances": "/appliances", "beers": "/beers", "blood_types": "/blood_types", "credit_cards": "/credit_cards", } }, " bored_api": { "name": "Bored API", "description": "Random activity suggestions to fight boredom", "base_url": "https://www.boredapi.com/api", "auth_required": False, "endpoints": { "activity": "/activity", "by_type": "/activity?type={type}", "by_participants": "/activity?participants={count}", "by_price": "/activity?price={price}", } }, "useless_facts": { "name": "Useless Facts", "description": "Random useless facts", "base_url": "https://uselessfacts.jsph.pl/api/v2/facts", "auth_required": False, "endpoints": { "random": "/random", "today": "/today", "random_en": "/random?language=en", } }, "numbers_api": { "name": "Numbers API", "description": "Interesting facts about numbers", "base_url": "http://numbersapi.com", "auth_required": False, "endpoints": { "trivia": "/{number}", "math": "/{number}/math", "year": "/{number}/year", "date": "/{month}/{day}/date", "random": "/random", } }, "chuck_norris": { "name": "Chuck Norris API", "description": "Random Chuck Norris jokes", "base_url": "https://api.chucknorris.io/jokes", "auth_required": False, "endpoints": { "random": "/random", "categories": "/categories", "by_category": "/random?category={category}", "search": "/search?query={query}", } }, "ron_swanson": { "name": "Ron Swanson Quotes", "description": "Quotes from Ron Swanson (Parks and Recreation)", "base_url": "https://ron-swanson-quotes.herokuapp.com/v2", "auth_required": False, "endpoints": { "quote": "/quotes", "count": "/quotes/{count}", } }, "rick_and_morty": { "name": "Rick and Morty API", "description": "Rick and Morty character, episode, and location data", "base_url": "https://rickandmortyapi.com/api", "auth_required": False, "endpoints": { "character": "/character/{id}", "characters": "/character", "episode": "/episode/{id}", "episodes": "/episode", "location": "/location/{id}", "locations": "/location", } }, } # ============================================================ # CATEGORY 24: PATENT # ============================================================ PATENT_APIS = { "uspto": { "name": "USPTO Patent API", "description": "US patent data", "base_url": "https://developer.uspto.gov/api/v1", "auth_required": False, "endpoints": { "patents": "/patents", "search": "/patents/search", } }, } # ============================================================ # CATEGORY 25: PHONE # ============================================================ PHONE_APIS = { "numverify": { "name": "NumVerify", "description": "Phone number validation and lookup (API key required)", "base_url": "https://apilayer.net/api", "auth_required": True, "auth_type": "apikey", "endpoints": { "validate": "/validate", "countries": "/countries", } }, } # ============================================================ # CATEGORY 26: PHOTOGRAPHY # ============================================================ PHOTOGRAPHY_APIS = { "unsplash": { "name": "Unsplash", "description": "High-quality stock photos (API key required for production)", "base_url": "https://api.unsplash.com", "auth_required": True, "auth_type": "token", "endpoints": { "photos": "/photos", "random": "/photos/random", "search": "/search/photos", "collections": "/collections", } }, "pexels": { "name": "Pexels", "description": "Free stock photos and videos (API key required)", "base_url": "https://api.pexels.com/v1", "auth_required": True, "auth_type": "token", "endpoints": { "search": "/search", "curated": "/curated", "photo": "/photos/{id}", "videos_search": "/videos/search", } }, } # ============================================================ # CATEGORY 27: PROGRAMMING # ============================================================ PROGRAMMING_APIS = { "stackexchange": { "name": "Stack Exchange API", "description": "Q&A from Stack Overflow and other Stack Exchange sites", "base_url": "https://api.stackexchange.com/2.3", "auth_required": False, "endpoints": { "questions": "/questions", "answers": "/answers", "users": "/users", "tags": "/tags", "search": "/search", "similar": "/similar", } }, "gitlab": { "name": "GitLab API", "description": "GitLab repositories, issues, CI/CD", "base_url": "https://gitlab.com/api/v4", "auth_required": True, "auth_type": "token", "endpoints": { "projects": "/projects", "user": "/user", "groups": "/groups", "issues": "/issues", } }, } # ============================================================ # CATEGORY 28: SCIENCE & MATH # ============================================================ SCIENCE_APIS = { "numbers_api_math": { "name": "Numbers API (Math)", "description": "Mathematical facts about numbers", "base_url": "http://numbersapi.com", "auth_required": False, "endpoints": { "math": "/{number}/math", } }, "elements_api": { "name": "Period Table API", "description": "Periodic table element data", "base_url": "https://periodic-table-elements-info.herokuapp.com", "auth_required": False, "endpoints": { "elements": "/elements", "element": "/element/atomicNumber/{number}", "element_symbol": "/element/atomicSymbol/{symbol}", } }, } # ============================================================ # CATEGORY 29: SECURITY # ============================================================ SECURITY_APIS = { "haveibeenpwned": { "name": "Have I Been Pwned", "description": "Check if email has been in data breaches (API key recommended)", "base_url": "https://haveibeenpwned.com/api/v3", "auth_required": True, "auth_type": "apikey", "endpoints": { "breached_account": "/breachedaccount/{email}", "breaches": "/breaches", "breach": "/breach/{name}", "dataclasses": "/dataclasses", "paste_account": "/pasteaccount/{email}", } }, "cert_sh": { "name": "Certificate Transparency (crt.sh)", "description": "SSL certificate transparency logs", "base_url": "https://crt.sh", "auth_required": False, "endpoints": { "query": "?q={domain}&output=json", "id": "?id={id}", } }, } # ============================================================ # CATEGORY 30: SHOPPING # ============================================================ SHOPPING_APIS = { "ebay": { "name": "eBay API", "description": "eBay product listings and search", "base_url": "https://api.ebay.com/buy/browse/v1", "auth_required": True, "auth_type": "oauth", "endpoints": { "search": "/item_summary/search", "item": "/item/{itemId}", "item_by_gtin": "/item/get_item_by_gtin", } }, } # ============================================================ # CATEGORY 31: SOCIAL # ============================================================ SOCIAL_APIS = { "reddit": { "name": "Reddit API", "description": "Reddit posts, comments, subreddits", "base_url": "https://www.reddit.com", "auth_required": False, "endpoints": { "subreddit": "/r/{subreddit}.json", "user": "/user/{username}.json", "comments": "/r/{subreddit}/comments/{id}.json", "search": "/search.json?q={query}", "popular": "/subreddits/popular.json", } }, "twitter_api_v2": { "name": "Twitter API v2 (X)", "description": "Tweets, users, and trends (requires Bearer token)", "base_url": "https://api.twitter.com/2", "auth_required": True, "auth_type": "bearer", "endpoints": { "tweets": "/tweets", "tweet": "/tweets/{id}", "users": "/users", "user": "/users/{id}", "search": "/tweets/search/recent", "timeline": "/users/{id}/tweets", "mentions": "/users/{id}/mentions", } }, } # ============================================================ # CATEGORY 32: SPORTS & FITNESS # ============================================================ SPORTS_APIS = { "football_data": { "name": "Football-Data.org", "description": "Football/soccer data, leagues, matches (free tier available)", "base_url": "https://api.football-data.org/v4", "auth_required": True, "auth_type": "token", "endpoints": { "competitions": "/competitions", "matches": "/matches", "teams": "/teams", "standings": "/competitions/{id}/standings", "scorers": "/competitions/{id}/scorers", } }, "api_football": { "name": "API-Football", "description": "Football data from 800+ leagues (API key required)", "base_url": "https://v3.football.api-sports.io", "auth_required": True, "auth_type": "header", "endpoints": { "leagues": "/leagues", "teams": "/teams", "fixtures": "/fixtures", "standings": "/standings", "players": "/players", } }, "api_nba": { "name": "API-NBA", "description": "NBA basketball data (API key required)", "base_url": "https://v2.nba.api-sports.io", "auth_required": True, "auth_type": "header", "endpoints": { "games": "/games", "teams": "/teams", "players": "/players", "standings": "/standings", "seasons": "/seasons", } }, "basketball_data": { "name": "Basketball Data", "description": "NBA data (no API key needed for basic)", "base_url": "https://www.balldontlie.io/api/v1", "auth_required": False, "endpoints": { "games": "/games", "players": "/players", "teams": "/teams", "stats": "/stats", } }, "ergast_f1": { "name": "Ergast F1", "description": "Formula 1 historical data", "base_url": "https://ergast.com/api/f1", "auth_required": False, "endpoints": { "seasons": "/seasons.json", "races": "/{season}.json", "results": "/{season}/{round}/results.json", "drivers": "/{season}/drivers.json", "constructors": "/{season}/constructors.json", "standings": "/{season}/driverStandings.json", "circuits": "/circuits.json", } }, "nfl_venue": { "name": "NFL Arrest Data", "description": "NFL player arrest records", "base_url": "https://nflarrest.com/api/v1", "auth_required": False, "endpoints": { "crime": "/crime", "team": "/team", "player": "/player", } }, "strava": { "name": "Strava API", "description": "Fitness activities and athlete data (OAuth required)", "base_url": "https://www.strava.com/api/v3", "auth_required": True, "auth_type": "oauth", "endpoints": { "athlete": "/athlete", "activities": "/athlete/activities", "activity": "/activities/{id}", "segments": "/segments/{id}", } }, "city_bikes": { "name": "CityBikes", "description": "Bike sharing data for cities worldwide", "base_url": "https://api.citybik.es/v2", "auth_required": False, "endpoints": { "networks": "/networks", "network": "/networks/{id}", } }, } # ============================================================ # CATEGORY 33: TEST DATA # ============================================================ TEST_DATA_APIS = { "faker_api": { "name": "Faker API", "description": "Generate fake data for testing", "base_url": "https://fakerapi.it/api/v1", "auth_required": False, "endpoints": { "persons": "/persons", "companies": "/companies", "addresses": "/addresses", "books": "/books", "creditcards": "/credit_cards", "images": "/images", "products": "/products", "text": "/texts", "users": "/users", "custom": "/custom", } }, "mockaroo": { "name": "Mockaroo", "description": "Generate realistic test data", "base_url": "https://api.mockaroo.com/api", "auth_required": True, "auth_type": "apikey", "endpoints": { "generate": "/generate.{format}", } }, "uinames": { "name": "uinames.com", "description": "Randomly generated user names", "base_url": "https://uinames.com/api", "auth_required": False, "endpoints": { "name": "", "region": "/?region={region}", "gender": "/?gender={gender}", "amount": "/?amount={count}", } }, } # ============================================================ # CATEGORY 34: TEXT ANALYSIS # ============================================================ TEXT_APIS = { "systran": { "name": "SYSTRAN Translate", "description": "Text translation API (API key required)", "base_url": "https://api-translate.systran.net", "auth_required": True, "auth_type": "apikey", "endpoints": { "translate": "/translation/text/translate", "supported_languages": "/translation/supportedLanguages", } }, "libretranslate": { "name": "LibreTranslate", "description": "Free and Open Source Translation API", "base_url": "https://libretranslate.com", "auth_required": False, "endpoints": { "translate": "/translate", "languages": "/languages", "detect": "/detect", } }, "text_processing": { "name": "Text Processing", "description": "Text analysis and processing", "base_url": "https://text-processing.com/api", "auth_required": False, "endpoints": { "sentiment": "/sentiment", "phrase": "/phrase", "stem": "/stem", "tag": "/tag", } }, } # ============================================================ # CATEGORY 35: TRACKING # ============================================================ TRACKING_APIS = { "package_track": { "name": "Package Tracking APIs", "description": "Various package tracking endpoints", "base_url": "https://api.packagetracker.io/v1", "auth_required": True, "auth_type": "apikey", "endpoints": { "track": "/track/{carrier}/{tracking_number}", "carriers": "/carriers", } }, } # ============================================================ # CATEGORY 36: TRANSPORTATION # ============================================================ TRANSPORTATION_APIS = { "transportapi": { "name": "Transport API", "description": "UK public transport data", "base_url": "https://transportapi.com/v3/uk", "auth_required": True, "auth_type": "apikey", "endpoints": { "bus_stops": "/bus/stops/near.json", "bus_live": "/bus/stop/{atcocode}/live.json", "train_stations": "/train/stations/near.json", "train_live": "/train/station/{station_code}/live.json", } }, "resrobot": { "name": "ResRobot (Swedish Transport)", "description": "Swedish public transport", "base_url": "https://api.resrobot.se/v2.1", "auth_required": True, "auth_type": "apikey", "endpoints": { "trip": "/trip", "departureBoard": "/departureBoard", "arrivalBoard": "/arrivalBoard", "location.name": "/location.name", } }, "amadeus": { "name": "Amadeus for Developers", "description": "Flight, hotel, car rental search (API key required)", "base_url": "https://api.amadeus.com/v2", "auth_required": True, "auth_type": "oauth", "endpoints": { "flight_search": "/shopping/flight-offers", "flight Inspiration": "/shopping/flight-destinations", "hotel_search": "/shopping/hotel-offers", "airport": "/reference-data/locations", } }, } # ============================================================ # CATEGORY 37: URL SHORTENERS # ============================================================ URL_SHORTENER_APIS = { "cleanuri": { "name": "CleanURI", "description": "URL shortening service", "base_url": "https://cleanuri.com/api/v1", "auth_required": False, "endpoints": { "shorten": "/shorten", } }, "is_gd": { "name": "is.gd", "description": "URL shortening", "base_url": "https://is.gd", "auth_required": False, "endpoints": { "shorten": "/create.php?format=simple&url={url}", "stats": "/usagestats.php", } }, } # ============================================================ # CATEGORY 38: VEHICLE # ============================================================ VEHICLE_APIS = { "nhtsa": { "name": "NHTSA", "description": "Vehicle safety ratings and recalls (US)", "base_url": "https://api.nhtsa.gov", "auth_required": False, "endpoints": { "recalls": "/products/vehicle/recalls", "rating": "/SafetyRatings", "vin_decode": "/vehicles/DecodeVin/{vin}", "complaints": "/complaints/complaintsByVehicle", } }, "car_query": { "name": "Car Query", "description": "Car database and specifications", "base_url": "https://www.carqueryapi.com/api/0.3", "auth_required": False, "endpoints": { "makes": "?cmd=getMakes", "models": "?cmd=getModels", "trims": "?cmd=getTrims", "model": "?cmd=getModel", } }, } # ============================================================ # CATEGORY 39: WEATHER # ============================================================ WEATHER_APIS = { "open_meteo": { "name": "Open-Meteo Weather", "description": "Global weather forecast API - completely free, no API key needed", "base_url": "https://api.open-meteo.com/v1", "auth_required": False, "endpoints": { "forecast": "/forecast", "air_quality": "/air-quality", "elevation": "/elevation", "flood": "/flood", "climate_change": "/climate", } }, "openweather": { "name": "OpenWeatherMap", "description": "Weather data and forecasts (free tier available with API key)", "base_url": "https://api.openweathermap.org/data/2.5", "auth_required": True, "auth_type": "apikey", "endpoints": { "weather": "/weather", "forecast": "/forecast", "onecall": "/onecall", "air_pollution": "/air_pollution", } }, "wttr_in": { "name": "wttr.in", "description": "Console-oriented weather forecast (no API key)", "base_url": "https://wttr.in", "auth_required": False, "endpoints": { "weather": "/{location}?format={format}", "moon": "/Moon", } }, } # ============================================================ # CATEGORY 40: JOKES & ENTERTAINMENT # ============================================================ JOKES_APIS = { "joke_api": { "name": "JokeAPI", "description": "Programming and general jokes", "base_url": "https://v2.jokeapi.dev/joke", "auth_required": False, "endpoints": { "any": "/Any", "programming": "/Programming", "misc": "/Misc", "dark": "/Dark", "pun": "/Pun", "spooky": "/Spooky", "christmas": "/Christmas", "custom": "/{categories}?type={type}&amount={amount}", } }, "official_joke": { "name": "Official Joke API", "description": "Simple random jokes", "base_url": "https://official-joke-api.appspot.com", "auth_required": False, "endpoints": { "random": "/random_joke", "ten": "/random_ten", "by_type": "/jokes/{type}/random", "types": "/types", } }, "meme_api": { "name": "Meme API", "description": "Random memes from Reddit", "base_url": "https://meme-api.com/gimme", "auth_required": False, "endpoints": { "random": "", "subreddit": "/{subreddit}/{count}", } }, } # ============================================================ # CATEGORY 41: IP & NETWORK # ============================================================ IP_APIS = { "ip_api_co": { "name": "ipapi.co", "description": "IP address geolocation (free tier)", "base_url": "https://ipapi.co", "auth_required": False, "endpoints": { "my_ip": "/json", "specific_ip": "/{ip}/json", } }, "ipwhois": { "name": "IPWhois.io", "description": "IP geolocation", "base_url": "https://ipwho.is", "auth_required": False, "endpoints": { "my_ip": "", "specific_ip": "/{ip}", } }, } # ============================================================ # CATEGORY 42: CODING CHALLENGES # ============================================================ CODING_APIS = { "leetcode_api": { "name": "LeetCode unofficial API", "description": "LeetCode problems and user data", "base_url": "https://leetcode-api-faisalshohag.vercel.app", "auth_required": False, "endpoints": { "user": "/{username}", "daily": "/daily", } }, "codeforces": { "name": "Codeforces API", "description": "Codeforces competitive programming data", "base_url": "https://codeforces.com/api", "auth_required": False, "endpoints": { "user_info": "/user.info", "contest_list": "/contest.list", "problemset": "/problemset.problems", "user_status": "/user.status", "recent_submissions": "/recentActions", } }, } # ============================================================ # CATEGORY 43: AI & NLP SERVICES # ============================================================ AI_APIS = { "huggingface_inference": { "name": "Hugging Face Inference API", "description": "Run thousands of ML models - text generation, sentiment, NER, etc.", "base_url": "https://api-inference.huggingface.co/models", "auth_required": True, "auth_type": "token", "endpoints": { "models": "", "run": "/{model_id}", } }, "openrouter": { "name": "OpenRouter", "description": "Access many LLM models with unified API, free tier available", "base_url": "https://openrouter.ai/api/v1", "auth_required": True, "auth_type": "bearer", "endpoints": { "chat": "/chat/completions", "models": "/models", "limits": "/auth/key", } }, } # ============================================================ # CATEGORY 44: QR CODES # ============================================================ QR_APIS = { "goqr": { "name": "goQR.me", "description": "QR code generation API", "base_url": "https://api.qrserver.com/v1", "auth_required": False, "endpoints": { "create": "/create-qr-code", "read": "/read-qr-code", } }, } # ============================================================ # CATEGORY 45: QUOTES & INSPIRATION # ============================================================ QUOTES_APIS = { "quotable": { "name": "Quotable", "description": "Random quotes from famous people", "base_url": "https://api.quotable.io", "auth_required": False, "endpoints": { "random": "/quotes/random", "quotes": "/quotes", "authors": "/authors", "tags": "/tags", "author_quotes": "/quotes?author={author}", } }, "zen_quotes": { "name": "Zen Quotes", "description": "Inspirational quotes", "base_url": "https://zenquotes.io/api", "auth_required": False, "endpoints": { "random": "/random", "today": "/today", "quotes": "/quotes", } }, "breaking_bad": { "name": "Breaking Bad Quotes", "description": "Quotes from Breaking Bad", "base_url": "https://api.breakingbadquotes.xyz/v1", "auth_required": False, "endpoints": { "quote": "/quotes", "quotes": "/quotes/{count}", } }, "game_of_thrones": { "name": "Game of Thrones Quotes", "description": "Quotes from Game of Thrones", "base_url": "https://api.gameofthronesquotes.xyz/v1", "auth_required": False, "endpoints": { "random": "/random", "author": "/author/{author}/{count}", } }, "favqs": { "name": "FavQs", "description": "Quote of the day and search", "base_url": "https://favqs.com/api", "auth_required": True, "auth_type": "token", "endpoints": { "qotd": "/qotd", "quotes": "/quotes", "quote": "/quotes/{id}", } }, } # ============================================================ # CATEGORY 46: COLORS # ============================================================ COLOR_APIS = { "color": { "name": "The Color API", "description": "Color information, schemes, conversion", "base_url": "https://www.thecolorapi.com", "auth_required": False, "endpoints": { "id": "/id", "scheme": "/scheme", "random": "/random", } }, "x_color": { "name": "xColor API", "description": "Color conversion", "base_url": "https://x-colors.herokuapp.com/api", "auth_required": False, "endpoints": { "random": "/random", "hex2rgb": "/hex2rgb", "rgb2hex": "/rgb2hex", } }, } # ============================================================ # CATEGORY 47: UNIVERSITIES # ============================================================ UNIVERSITY_APIS = { "universities": { "name": "Universities List", "description": "Database of universities worldwide", "base_url": "http://universities.hipolabs.com", "auth_required": False, "endpoints": { "search": "/search", "by_country": "/search?country={country}", "by_name": "/search?name={name}", } }, } # ============================================================ # CATEGORY 48: TV & MOVIES # ============================================================ TV_MOVIE_APIS = { "tvmaze": { "name": "TVmaze", "description": "TV show data and schedules", "base_url": "https://api.tvmaze.com", "auth_required": False, "endpoints": { "search": "/search/shows?q={query}", "show": "/shows/{id}", "episodes": "/shows/{id}/episodes", "schedule": "/schedule", "people": "/search/people?q={query}", } }, "omdb": { "name": "OMDb API", "description": "Movie and TV show data (API key required for higher limits)", "base_url": "https://www.omdbapi.com", "auth_required": True, "auth_type": "apikey", "endpoints": { "by_title": "?t={title}&apikey={api_key}", "by_id": "?i={id}&apikey={api_key}", "search": "?s={query}&apikey={api_key}", } }, "streaming_availability": { "name": "Streaming Availability", "description": "Where to watch movies and shows", "base_url": "https://streaming-availability.p.rapidapi.com", "auth_required": True, "auth_type": "rapidapi", "endpoints": { "search": "/search/basic", "title": "/get/basic", } }, } # ============================================================ # CATEGORY 49: FACTS & TRIVIA # ============================================================ FACTS_APIS = { "useless_facts": { "name": "Useless Facts", "description": "Random useless but interesting facts", "base_url": "https://uselessfacts.jsph.pl/api/v2/facts", "auth_required": False, "endpoints": { "random": "/random", "today": "/today", } }, "cat_facts": { "name": "Cat Facts", "description": "Random facts about cats", "base_url": "https://catfact.ninja", "auth_required": False, "endpoints": { "fact": "/fact", "facts": "/facts", } }, "dog_facts": { "name": "Dog Facts", "description": "Random facts about dogs", "base_url": "https://dog-api.kinduff.com/api", "auth_required": False, "endpoints": { "facts": "/facts", "fact_by_id": "/facts?id={id}", } }, "trivia_api": { "name": "Open Trivia Database", "description": "Trivia questions in various categories", "base_url": "https://opentdb.com/api.php", "auth_required": False, "endpoints": { "questions": "?amount={amount}&category={category}&difficulty={difficulty}&type={type}", "categories": "https://opentdb.com/api_category.php", "token": "https://opentdb.com/api_token.php?command=request", } }, "numbers_facts": { "name": "Numbers API", "description": "Interesting facts about numbers", "base_url": "http://numbersapi.com", "auth_required": False, "endpoints": { "trivia": "/{number}", "math": "/{number}/math", "year": "/{number}/year", "date": "/{month}/{day}/date", "random": "/random", } }, } # ============================================================ # MASTER REGISTRY - All API Categories # ============================================================ MASTER_REGISTRY = { "animals": ANIMALS_APIS, "anime": ANIME_APIS, "art": ART_APIS, "books": BOOKS_APIS, "business": BUSINESS_APIS, "calendar": CALENDAR_APIS, "cryptocurrency": CRYPTO_APIS, "currency": CURRENCY_APIS, "validation": VALIDATION_APIS, "development": DEV_APIS, "dictionaries": DICTIONARY_APIS, "environment": ENVIRONMENT_APIS, "finance": FINANCE_APIS, "food": FOOD_APIS, "games": GAMES_APIS, "geocoding": GEOCODING_APIS, "government": GOVERNMENT_APIS, "health": HEALTH_APIS, "jobs": JOBS_APIS, "machine_learning": ML_APIS, "music": MUSIC_APIS, "news": NEWS_APIS, "open_data": OPEN_DATA_APIS, "patent": PATENT_APIS, "phone": PHONE_APIS, "photography": PHOTOGRAPHY_APIS, "programming": PROGRAMMING_APIS, "science": SCIENCE_APIS, "security": SECURITY_APIS, "shopping": SHOPPING_APIS, "social": SOCIAL_APIS, "sports": SPORTS_APIS, "test_data": TEST_DATA_APIS, "text_analysis": TEXT_APIS, "tracking": TRACKING_APIS, "transportation": TRANSPORTATION_APIS, "url_shortener": URL_SHORTENER_APIS, "vehicle": VEHICLE_APIS, "weather": WEATHER_APIS, "jokes": JOKES_APIS, "ip": IP_APIS, "coding": CODING_APIS, "ai": AI_APIS, "qr": QR_APIS, "quotes": QUOTES_APIS, "colors": COLOR_APIS, "universities": UNIVERSITY_APIS, "tv_movies": TV_MOVIE_APIS, "facts": FACTS_APIS, } def get_all_apis() -> Dict[str, Dict]: """Return a flat dictionary of all APIs across all categories""" all_apis = {} for category, apis in MASTER_REGISTRY.items(): for api_id, api_info in apis.items(): all_apis[api_id] = { **api_info, "category": category } return all_apis def get_api_by_id(api_id: str) -> Optional[Dict]: """Get a specific API by its ID""" all_apis = get_all_apis() return all_apis.get(api_id) def get_apis_by_category(category: str) -> Dict[str, Dict]: """Get all APIs in a specific category""" return MASTER_REGISTRY.get(category, {}) def count_apis() -> Dict[str, int]: """Count APIs per category and total""" counts = {category: len(apis) for category, apis in MASTER_REGISTRY.items()} counts["total"] = sum(counts.values()) return counts def search_apis(query: str) -> List[Dict]: """Search APIs by name, description, or category""" query = query.lower() results = [] all_apis = get_all_apis() for api_id, api_info in all_apis.items(): if (query in api_id.lower() or query in api_info.get("name", "").lower() or query in api_info.get("description", "").lower() or query in api_info.get("category", "").lower()): results.append({ "id": api_id, **api_info }) return results # Generate API statistics if __name__ == "__main__": counts = count_apis() print(f"\n{'='*60}") print("HERMES API REGISTRY STATISTICS") print(f"{'='*60}") print(f"\nTotal Categories: {len(MASTER_REGISTRY)}") print(f"Total APIs: {counts['total']}") print(f"\nBreakdown by category:") for category, count in sorted(counts.items()): if category != "total": print(f" {category}: {count} APIs") # Count total endpoints all_apis = get_all_apis() total_endpoints = sum(len(api.get("endpoints", {})) for api in all_apis.values()) print(f"\nTotal Endpoints: {total_endpoints}") print(f"\n{'='*60}")