@nordsym/apiclaw 1.0.0 → 1.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (154) hide show
  1. package/AGENTS.md +74 -0
  2. package/HEARTBEAT.md +4 -0
  3. package/IDENTITY.md +22 -0
  4. package/README.md +197 -202
  5. package/SOUL.md +36 -0
  6. package/STATUS.md +237 -0
  7. package/TOOLS.md +36 -0
  8. package/USER.md +17 -0
  9. package/{backend/convex → convex}/_generated/api.d.ts +6 -6
  10. package/convex/credits.ts +211 -0
  11. package/convex/http.ts +490 -0
  12. package/convex/providers.ts +516 -0
  13. package/convex/purchases.ts +183 -0
  14. package/convex/schema.ts +180 -0
  15. package/convex.json +3 -0
  16. package/dist/credentials.d.ts +19 -0
  17. package/dist/credentials.d.ts.map +1 -0
  18. package/dist/credentials.js +158 -0
  19. package/dist/credentials.js.map +1 -0
  20. package/dist/credits.d.ts +14 -11
  21. package/dist/credits.d.ts.map +1 -1
  22. package/dist/credits.js +151 -99
  23. package/dist/credits.js.map +1 -1
  24. package/dist/discovery.d.ts +7 -16
  25. package/dist/discovery.d.ts.map +1 -1
  26. package/dist/discovery.js +33 -40
  27. package/dist/discovery.js.map +1 -1
  28. package/dist/execute.d.ts +19 -0
  29. package/dist/execute.d.ts.map +1 -0
  30. package/dist/execute.js +285 -0
  31. package/dist/execute.js.map +1 -0
  32. package/dist/index.js +106 -30
  33. package/dist/index.js.map +1 -1
  34. package/dist/proxy.d.ts +6 -0
  35. package/dist/proxy.d.ts.map +1 -0
  36. package/dist/proxy.js +19 -0
  37. package/dist/proxy.js.map +1 -0
  38. package/dist/registry/apis.json +95362 -202
  39. package/dist/registry/apis_expanded.json +100853 -0
  40. package/dist/stripe.d.ts +68 -0
  41. package/dist/stripe.d.ts.map +1 -0
  42. package/dist/stripe.js +196 -0
  43. package/dist/stripe.js.map +1 -0
  44. package/dist/test.d.ts +3 -2
  45. package/dist/test.d.ts.map +1 -1
  46. package/dist/test.js +105 -75
  47. package/dist/test.js.map +1 -1
  48. package/dist/types.d.ts +0 -28
  49. package/dist/types.d.ts.map +1 -1
  50. package/dist/webhook.d.ts +2 -0
  51. package/dist/webhook.d.ts.map +1 -0
  52. package/dist/webhook.js +90 -0
  53. package/dist/webhook.js.map +1 -0
  54. package/landing/DESIGN.md +343 -0
  55. package/landing/package-lock.json +1190 -40
  56. package/landing/package.json +5 -2
  57. package/landing/public/android-chrome-192x192.png +0 -0
  58. package/landing/public/android-chrome-512x512.png +0 -0
  59. package/landing/public/apple-touch-icon.png +0 -0
  60. package/landing/public/demo.gif +0 -0
  61. package/landing/public/demo.mp4 +0 -0
  62. package/landing/public/favicon-16x16.png +0 -0
  63. package/landing/public/favicon-32x32.png +0 -0
  64. package/landing/public/favicon.ico +0 -0
  65. package/landing/public/favicon.svg +3 -0
  66. package/landing/public/icon.svg +47 -0
  67. package/landing/public/logo-mono.svg +37 -0
  68. package/landing/public/logo-simple.svg +45 -0
  69. package/landing/public/logo.svg +84 -0
  70. package/landing/public/og-image.png +0 -0
  71. package/landing/public/og-template.html +184 -0
  72. package/landing/public/site.webmanifest +31 -0
  73. package/landing/scripts/generate-assets.js +284 -0
  74. package/landing/scripts/generate-pngs.js +48 -0
  75. package/landing/scripts/generate-stats.js +42 -0
  76. package/landing/src/app/admin/page.tsx +348 -0
  77. package/landing/src/app/api/auth/magic-link/route.ts +73 -0
  78. package/landing/src/app/api/auth/session/route.ts +38 -0
  79. package/landing/src/app/api/auth/verify/route.ts +43 -0
  80. package/landing/src/app/api/og/route.tsx +74 -0
  81. package/landing/src/app/globals.css +439 -100
  82. package/landing/src/app/layout.tsx +37 -9
  83. package/landing/src/app/page.tsx +640 -552
  84. package/landing/src/app/providers/dashboard/login/page.tsx +176 -0
  85. package/landing/src/app/providers/dashboard/page.tsx +589 -0
  86. package/landing/src/app/providers/dashboard/verify/page.tsx +106 -0
  87. package/landing/src/app/providers/layout.tsx +14 -0
  88. package/landing/src/app/providers/page.tsx +402 -0
  89. package/landing/src/app/providers/register/page.tsx +670 -0
  90. package/landing/src/components/ProviderDashboard.tsx +794 -0
  91. package/landing/src/hooks/useDashboardData.ts +99 -0
  92. package/landing/src/lib/apis.json +116054 -0
  93. package/landing/src/lib/convex-client.ts +106 -0
  94. package/landing/src/lib/mock-data.ts +285 -0
  95. package/landing/src/lib/stats.json +6 -0
  96. package/landing/tailwind.config.ts +12 -11
  97. package/landing/tsconfig.tsbuildinfo +1 -0
  98. package/package.json +21 -20
  99. package/scripts/SYMBOT-FIX.md +238 -0
  100. package/scripts/demo-simulation.py +177 -0
  101. package/scripts/expand-more.py +502 -0
  102. package/scripts/expand-registry.py +434 -0
  103. package/scripts/history-sanitizer.ts +272 -0
  104. package/scripts/mass-scrape.py +1308 -0
  105. package/scripts/sync-and-deploy.sh +36 -0
  106. package/src/credentials.ts +177 -0
  107. package/src/credits.ts +190 -122
  108. package/src/discovery.ts +45 -58
  109. package/src/execute.ts +350 -0
  110. package/src/index.ts +113 -31
  111. package/src/proxy.ts +24 -0
  112. package/src/registry/apis.json +95362 -202
  113. package/src/registry/apis_expanded.json +100853 -0
  114. package/src/stripe.ts +243 -0
  115. package/src/test.ts +127 -89
  116. package/src/types.ts +0 -34
  117. package/src/webhook.ts +107 -0
  118. package/.github/ISSUE_TEMPLATE/add-api.yml +0 -123
  119. package/BRIEFING.md +0 -30
  120. package/backend/convex/apiKeys.ts +0 -75
  121. package/backend/convex/purchases.ts +0 -74
  122. package/backend/convex/schema.ts +0 -45
  123. package/backend/convex/transactions.ts +0 -57
  124. package/backend/convex/users.ts +0 -94
  125. package/backend/package-lock.json +0 -521
  126. package/backend/package.json +0 -15
  127. package/dist/registry/parse_apis.py +0 -146
  128. package/dist/revenuecat.d.ts +0 -61
  129. package/dist/revenuecat.d.ts.map +0 -1
  130. package/dist/revenuecat.js +0 -166
  131. package/dist/revenuecat.js.map +0 -1
  132. package/dist/webhooks/revenuecat.d.ts +0 -48
  133. package/dist/webhooks/revenuecat.d.ts.map +0 -1
  134. package/dist/webhooks/revenuecat.js +0 -119
  135. package/dist/webhooks/revenuecat.js.map +0 -1
  136. package/docs/revenuecat-setup.md +0 -89
  137. package/landing/src/app/api/keys/route.ts +0 -71
  138. package/landing/src/app/api/log/route.ts +0 -37
  139. package/landing/src/app/api/stats/route.ts +0 -37
  140. package/landing/src/app/page.tsx.bak +0 -567
  141. package/landing/src/components/AddKeyModal.tsx +0 -159
  142. package/newsletter-template.html +0 -71
  143. package/outreach/OUTREACH-SYSTEM.md +0 -211
  144. package/outreach/email-template.html +0 -179
  145. package/outreach/targets.md +0 -133
  146. package/src/registry/parse_apis.py +0 -146
  147. package/src/revenuecat.ts +0 -239
  148. package/src/webhooks/revenuecat.ts +0 -187
  149. /package/{backend/convex → convex}/README.md +0 -0
  150. /package/{backend/convex → convex}/_generated/api.js +0 -0
  151. /package/{backend/convex → convex}/_generated/dataModel.d.ts +0 -0
  152. /package/{backend/convex → convex}/_generated/server.d.ts +0 -0
  153. /package/{backend/convex → convex}/_generated/server.js +0 -0
  154. /package/{backend/convex → convex}/tsconfig.json +0 -0
@@ -0,0 +1,502 @@
1
+ #!/usr/bin/env python3
2
+ """
3
+ APIClaw Registry Expansion - Phase 2
4
+ Adds 1500+ more high-value APIs to reach 5000+ target
5
+ """
6
+
7
+ import json
8
+ from datetime import datetime
9
+ from pathlib import Path
10
+ import re
11
+
12
+ def generate_id(name: str) -> str:
13
+ clean = re.sub(r'[^a-z0-9]+', '-', name.lower()).strip('-')
14
+ return clean[:50]
15
+
16
+ # Additional APIs organized by category
17
+ MORE_APIS = [
18
+ # =====================
19
+ # GOVERNMENT & CIVIC
20
+ # =====================
21
+ {"name": "Data.gov API", "description": "US Government open data", "category": "Government", "auth": "None", "https": True, "cors": "yes", "link": "https://api.data.gov/", "pricing": "free", "keywords": ["government", "open-data", "usa"]},
22
+ {"name": "UK Government API", "description": "UK public sector information", "category": "Government", "auth": "None", "https": True, "cors": "yes", "link": "https://www.api.gov.uk/", "pricing": "free", "keywords": ["government", "uk"]},
23
+ {"name": "EU Open Data Portal", "description": "European Union open data", "category": "Government", "auth": "None", "https": True, "cors": "yes", "link": "https://data.europa.eu/en", "pricing": "free", "keywords": ["government", "eu", "open-data"]},
24
+ {"name": "USAspending API", "description": "US Federal spending data", "category": "Government", "auth": "None", "https": True, "cors": "yes", "link": "https://api.usaspending.gov/", "pricing": "free", "keywords": ["government", "spending", "usa"]},
25
+ {"name": "Census API", "description": "US Census Bureau data", "category": "Government", "auth": "apiKey", "https": True, "cors": "yes", "link": "https://www.census.gov/data/developers.html", "pricing": "free", "keywords": ["census", "demographics", "usa"]},
26
+ {"name": "FEC API", "description": "US Federal Election Commission", "category": "Government", "auth": "apiKey", "https": True, "cors": "yes", "link": "https://api.open.fec.gov/developers/", "pricing": "free", "keywords": ["elections", "politics", "usa"]},
27
+ {"name": "Congress.gov API", "description": "US Congressional data", "category": "Government", "auth": "apiKey", "https": True, "cors": "yes", "link": "https://api.congress.gov/", "pricing": "free", "keywords": ["congress", "legislation", "usa"]},
28
+ {"name": "FDA API", "description": "US Food and Drug Administration", "category": "Health", "auth": "None", "https": True, "cors": "yes", "link": "https://open.fda.gov/apis/", "pricing": "free", "keywords": ["fda", "health", "drugs"]},
29
+ {"name": "NASA API", "description": "NASA space and science data", "category": "Science", "auth": "apiKey", "https": True, "cors": "yes", "link": "https://api.nasa.gov/", "pricing": "free", "keywords": ["nasa", "space", "science"]},
30
+ {"name": "NOAA API", "description": "Weather and climate data", "category": "Weather", "auth": "None", "https": True, "cors": "yes", "link": "https://www.weather.gov/documentation/services-web-api", "pricing": "free", "keywords": ["weather", "noaa", "climate"]},
31
+ {"name": "EPA API", "description": "Environmental data", "category": "Environment", "auth": "None", "https": True, "cors": "yes", "link": "https://www.epa.gov/enviro/web-services", "pricing": "free", "keywords": ["environment", "epa"]},
32
+ {"name": "World Bank API", "description": "Global development data", "category": "Finance", "auth": "None", "https": True, "cors": "yes", "link": "https://datahelpdesk.worldbank.org/knowledgebase/topics/125589", "pricing": "free", "keywords": ["worldbank", "economics"]},
33
+ {"name": "IMF Data API", "description": "International Monetary Fund data", "category": "Finance", "auth": "None", "https": True, "cors": "yes", "link": "https://datahelp.imf.org/knowledgebase/articles/667681", "pricing": "free", "keywords": ["imf", "finance", "economics"]},
34
+ {"name": "OECD API", "description": "OECD statistics", "category": "Open Data", "auth": "None", "https": True, "cors": "yes", "link": "https://data.oecd.org/api/", "pricing": "free", "keywords": ["oecd", "statistics"]},
35
+ {"name": "UN Data API", "description": "United Nations statistics", "category": "Open Data", "auth": "None", "https": True, "cors": "yes", "link": "https://data.un.org/", "pricing": "free", "keywords": ["un", "statistics"]},
36
+
37
+ # =====================
38
+ # HEALTH & MEDICAL
39
+ # =====================
40
+ {"name": "OpenMRS API", "description": "Medical record system", "category": "Health", "auth": "apiKey", "https": True, "cors": "unknown", "link": "https://rest.openmrs.org/", "pricing": "free", "keywords": ["medical", "health", "ehr"]},
41
+ {"name": "FHIR API", "description": "Healthcare interoperability standard", "category": "Health", "auth": "OAuth", "https": True, "cors": "unknown", "link": "https://www.hl7.org/fhir/", "pricing": "free", "keywords": ["fhir", "healthcare", "interoperability"]},
42
+ {"name": "PubChem API", "description": "Chemical compound database", "category": "Science", "auth": "None", "https": True, "cors": "yes", "link": "https://pubchem.ncbi.nlm.nih.gov/docs/pug-rest", "pricing": "free", "keywords": ["chemistry", "compounds", "science"]},
43
+ {"name": "PubMed API", "description": "Biomedical literature", "category": "Science", "auth": "None", "https": True, "cors": "yes", "link": "https://www.ncbi.nlm.nih.gov/home/develop/api/", "pricing": "free", "keywords": ["pubmed", "medical", "research"]},
44
+ {"name": "DrugBank API", "description": "Drug and pharmaceutical database", "category": "Health", "auth": "apiKey", "https": True, "cors": "unknown", "link": "https://go.drugbank.com/releases/latest#api", "pricing": "freemium", "keywords": ["drugs", "pharmaceutical"]},
45
+ {"name": "OpenTrials API", "description": "Clinical trials database", "category": "Health", "auth": "None", "https": True, "cors": "yes", "link": "https://api.opentrials.net/", "pricing": "free", "keywords": ["clinical-trials", "medical"]},
46
+ {"name": "Disease.sh", "description": "Disease and COVID-19 data", "category": "Health", "auth": "None", "https": True, "cors": "yes", "link": "https://disease.sh/docs/", "pricing": "free", "keywords": ["disease", "covid", "health"]},
47
+ {"name": "Healthcare.gov API", "description": "US healthcare marketplace", "category": "Health", "auth": "None", "https": True, "cors": "yes", "link": "https://www.healthcare.gov/developers/", "pricing": "free", "keywords": ["healthcare", "insurance", "usa"]},
48
+ {"name": "NutritionIX API", "description": "Nutrition database", "category": "Food & Drink", "auth": "apiKey", "https": True, "cors": "yes", "link": "https://developer.nutritionix.com/", "pricing": "freemium", "keywords": ["nutrition", "food", "calories"]},
49
+ {"name": "USDA FoodData Central", "description": "Food composition data", "category": "Food & Drink", "auth": "apiKey", "https": True, "cors": "yes", "link": "https://fdc.nal.usda.gov/api-guide.html", "pricing": "free", "keywords": ["food", "nutrition", "usda"]},
50
+ {"name": "Edamam API", "description": "Nutrition analysis", "category": "Food & Drink", "auth": "apiKey", "https": True, "cors": "yes", "link": "https://developer.edamam.com/", "pricing": "freemium", "keywords": ["nutrition", "recipes", "food"]},
51
+ {"name": "Spoonacular API", "description": "Recipes and nutrition", "category": "Food & Drink", "auth": "apiKey", "https": True, "cors": "yes", "link": "https://spoonacular.com/food-api", "pricing": "freemium", "keywords": ["recipes", "food", "cooking"]},
52
+ {"name": "TheMealDB", "description": "Meal recipes database", "category": "Food & Drink", "auth": "apiKey", "https": True, "cors": "yes", "link": "https://www.themealdb.com/api.php", "pricing": "freemium", "keywords": ["meals", "recipes"]},
53
+ {"name": "TheCocktailDB", "description": "Cocktail recipes database", "category": "Food & Drink", "auth": "apiKey", "https": True, "cors": "yes", "link": "https://www.thecocktaildb.com/api.php", "pricing": "freemium", "keywords": ["cocktails", "drinks"]},
54
+ {"name": "Open Food Facts", "description": "Food products database", "category": "Food & Drink", "auth": "None", "https": True, "cors": "yes", "link": "https://world.openfoodfacts.org/data", "pricing": "free", "keywords": ["food", "products", "open-data"]},
55
+
56
+ # =====================
57
+ # TRANSPORTATION & TRAVEL
58
+ # =====================
59
+ {"name": "Amadeus Travel API", "description": "Flight and hotel booking", "category": "Transportation", "auth": "apiKey", "https": True, "cors": "unknown", "link": "https://developers.amadeus.com/", "pricing": "freemium", "keywords": ["flights", "hotels", "travel"]},
60
+ {"name": "Skyscanner API", "description": "Flight search", "category": "Transportation", "auth": "apiKey", "https": True, "cors": "unknown", "link": "https://www.partners.skyscanner.net/affiliates/travel-apis", "pricing": "freemium", "keywords": ["flights", "travel"]},
61
+ {"name": "Rome2rio API", "description": "Multi-modal transport search", "category": "Transportation", "auth": "apiKey", "https": True, "cors": "unknown", "link": "https://www.rome2rio.com/documentation/", "pricing": "paid", "keywords": ["transport", "travel"]},
62
+ {"name": "AviationStack", "description": "Real-time flight data", "category": "Transportation", "auth": "apiKey", "https": True, "cors": "yes", "link": "https://aviationstack.com/documentation", "pricing": "freemium", "keywords": ["flights", "aviation"]},
63
+ {"name": "FlightAware API", "description": "Flight tracking", "category": "Transportation", "auth": "apiKey", "https": True, "cors": "unknown", "link": "https://flightaware.com/commercial/aeroapi/", "pricing": "paid", "keywords": ["flights", "tracking"]},
64
+ {"name": "OpenSky Network", "description": "Air traffic data", "category": "Transportation", "auth": "None", "https": True, "cors": "yes", "link": "https://openskynetwork.github.io/opensky-api/", "pricing": "free", "keywords": ["aviation", "flights", "tracking"]},
65
+ {"name": "Uber API", "description": "Ridesharing platform", "category": "Transportation", "auth": "OAuth", "https": True, "cors": "unknown", "link": "https://developer.uber.com/", "pricing": "free", "keywords": ["rideshare", "uber", "transportation"]},
66
+ {"name": "Lyft API", "description": "Ridesharing service", "category": "Transportation", "auth": "OAuth", "https": True, "cors": "unknown", "link": "https://developer.lyft.com/docs", "pricing": "free", "keywords": ["rideshare", "lyft"]},
67
+ {"name": "Citymapper API", "description": "Urban mobility", "category": "Transportation", "auth": "apiKey", "https": True, "cors": "unknown", "link": "https://citymapper.com/enterprise", "pricing": "paid", "keywords": ["transit", "mobility"]},
68
+ {"name": "Transitland API", "description": "Transit data platform", "category": "Transportation", "auth": "None", "https": True, "cors": "yes", "link": "https://www.transit.land/documentation/", "pricing": "free", "keywords": ["transit", "public-transport"]},
69
+ {"name": "OpenRouteService", "description": "Routing and directions", "category": "Geocoding", "auth": "apiKey", "https": True, "cors": "yes", "link": "https://openrouteservice.org/dev/", "pricing": "freemium", "keywords": ["routing", "directions"]},
70
+ {"name": "OSRM API", "description": "Open source routing", "category": "Geocoding", "auth": "None", "https": True, "cors": "yes", "link": "http://project-osrm.org/docs/v5.24.0/api/", "pricing": "free", "keywords": ["routing", "osrm"]},
71
+ {"name": "TomTom API", "description": "Maps and traffic", "category": "Geocoding", "auth": "apiKey", "https": True, "cors": "yes", "link": "https://developer.tomtom.com/", "pricing": "freemium", "keywords": ["maps", "traffic", "tomtom"]},
72
+ {"name": "Valhalla Routing", "description": "Open source routing engine", "category": "Geocoding", "auth": "None", "https": True, "cors": "yes", "link": "https://valhalla.github.io/valhalla/api/", "pricing": "free", "keywords": ["routing", "valhalla"]},
73
+ {"name": "Foursquare Places API", "description": "Places and venues", "category": "Geocoding", "auth": "apiKey", "https": True, "cors": "yes", "link": "https://developer.foursquare.com/", "pricing": "freemium", "keywords": ["places", "foursquare", "venues"]},
74
+ {"name": "Yelp Fusion API", "description": "Local business data", "category": "Business", "auth": "apiKey", "https": True, "cors": "unknown", "link": "https://www.yelp.com/developers", "pricing": "free", "keywords": ["yelp", "reviews", "businesses"]},
75
+ {"name": "TripAdvisor API", "description": "Travel reviews and ratings", "category": "Transportation", "auth": "apiKey", "https": True, "cors": "unknown", "link": "https://tripadvisor-content-api.readme.io/", "pricing": "paid", "keywords": ["travel", "reviews", "tripadvisor"]},
76
+
77
+ # =====================
78
+ # SPORTS & FITNESS
79
+ # =====================
80
+ {"name": "ESPN API", "description": "Sports data and scores", "category": "Sports", "auth": "apiKey", "https": True, "cors": "unknown", "link": "https://www.espn.com/apis/devcenter/", "pricing": "freemium", "keywords": ["sports", "espn", "scores"]},
81
+ {"name": "SportsDB API", "description": "Sports database", "category": "Sports", "auth": "apiKey", "https": True, "cors": "yes", "link": "https://www.thesportsdb.com/api.php", "pricing": "freemium", "keywords": ["sports", "teams", "players"]},
82
+ {"name": "API-Football", "description": "Football/soccer data", "category": "Sports", "auth": "apiKey", "https": True, "cors": "yes", "link": "https://www.api-football.com/documentation-v3", "pricing": "freemium", "keywords": ["football", "soccer", "sports"]},
83
+ {"name": "NBA API", "description": "NBA basketball data", "category": "Sports", "auth": "None", "https": True, "cors": "yes", "link": "https://github.com/swar/nba_api", "pricing": "free", "keywords": ["basketball", "nba", "sports"]},
84
+ {"name": "MLB Data API", "description": "Baseball statistics", "category": "Sports", "auth": "None", "https": True, "cors": "yes", "link": "https://statsapi.mlb.com/", "pricing": "free", "keywords": ["baseball", "mlb", "sports"]},
85
+ {"name": "NFL API", "description": "NFL football data", "category": "Sports", "auth": "apiKey", "https": True, "cors": "unknown", "link": "https://api.nfl.com/", "pricing": "paid", "keywords": ["football", "nfl", "sports"]},
86
+ {"name": "Hockey Stats API", "description": "NHL hockey data", "category": "Sports", "auth": "None", "https": True, "cors": "yes", "link": "https://gitlab.com/dword4/nhlapi", "pricing": "free", "keywords": ["hockey", "nhl", "sports"]},
87
+ {"name": "Strava API", "description": "Athletic activity data", "category": "Sports", "auth": "OAuth", "https": True, "cors": "yes", "link": "https://developers.strava.com/", "pricing": "free", "keywords": ["fitness", "strava", "running"]},
88
+ {"name": "Fitbit API", "description": "Fitness and health tracking", "category": "Health", "auth": "OAuth", "https": True, "cors": "unknown", "link": "https://dev.fitbit.com/build/reference/web-api/", "pricing": "free", "keywords": ["fitness", "fitbit", "health"]},
89
+ {"name": "Garmin Connect API", "description": "Fitness device data", "category": "Health", "auth": "OAuth", "https": True, "cors": "unknown", "link": "https://developer.garmin.com/connect-iq/api-docs/", "pricing": "free", "keywords": ["fitness", "garmin"]},
90
+ {"name": "Oura Ring API", "description": "Sleep and recovery data", "category": "Health", "auth": "OAuth", "https": True, "cors": "unknown", "link": "https://cloud.ouraring.com/docs/", "pricing": "free", "keywords": ["sleep", "oura", "health"]},
91
+ {"name": "Whoop API", "description": "Fitness recovery data", "category": "Health", "auth": "OAuth", "https": True, "cors": "unknown", "link": "https://developer.whoop.com/", "pricing": "paid", "keywords": ["fitness", "whoop", "recovery"]},
92
+ {"name": "MyFitnessPal API", "description": "Calorie and nutrition tracking", "category": "Health", "auth": "OAuth", "https": True, "cors": "unknown", "link": "https://www.myfitnesspal.com/api", "pricing": "paid", "keywords": ["nutrition", "calories"]},
93
+ {"name": "Ergast F1 API", "description": "Formula 1 racing data", "category": "Sports", "auth": "None", "https": True, "cors": "yes", "link": "https://ergast.com/mrd/", "pricing": "free", "keywords": ["f1", "racing", "motorsport"]},
94
+ {"name": "Football-Data.org", "description": "Football competitions data", "category": "Sports", "auth": "apiKey", "https": True, "cors": "yes", "link": "https://www.football-data.org/documentation/", "pricing": "freemium", "keywords": ["football", "soccer"]},
95
+
96
+ # =====================
97
+ # EDUCATION & LEARNING
98
+ # =====================
99
+ {"name": "Coursera API", "description": "Online courses platform", "category": "Education", "auth": "OAuth", "https": True, "cors": "unknown", "link": "https://build.coursera.org/", "pricing": "free", "keywords": ["education", "courses", "coursera"]},
100
+ {"name": "edX API", "description": "Online learning platform", "category": "Education", "auth": "OAuth", "https": True, "cors": "unknown", "link": "https://courses.edx.org/api-docs/", "pricing": "free", "keywords": ["education", "edx", "courses"]},
101
+ {"name": "Udemy API", "description": "Online courses marketplace", "category": "Education", "auth": "apiKey", "https": True, "cors": "unknown", "link": "https://www.udemy.com/developers/", "pricing": "free", "keywords": ["education", "udemy", "courses"]},
102
+ {"name": "Khan Academy API", "description": "Free educational content", "category": "Education", "auth": "OAuth", "https": True, "cors": "unknown", "link": "https://github.com/Khan/khan-api", "pricing": "free", "keywords": ["education", "khan-academy"]},
103
+ {"name": "Google Books API", "description": "Book search and metadata", "category": "Books", "auth": "apiKey", "https": True, "cors": "yes", "link": "https://developers.google.com/books", "pricing": "free", "keywords": ["books", "google", "reading"]},
104
+ {"name": "Open Library API", "description": "Open book catalog", "category": "Books", "auth": "None", "https": True, "cors": "yes", "link": "https://openlibrary.org/developers/api", "pricing": "free", "keywords": ["books", "library", "open-data"]},
105
+ {"name": "ISBNdb API", "description": "Book database", "category": "Books", "auth": "apiKey", "https": True, "cors": "unknown", "link": "https://isbndb.com/apidocs", "pricing": "paid", "keywords": ["books", "isbn"]},
106
+ {"name": "Goodreads API", "description": "Book reviews and ratings", "category": "Books", "auth": "apiKey", "https": True, "cors": "unknown", "link": "https://www.goodreads.com/api", "pricing": "free", "keywords": ["books", "goodreads", "reviews"]},
107
+ {"name": "Dictionary API", "description": "Word definitions", "category": "Text Analysis", "auth": "None", "https": True, "cors": "yes", "link": "https://dictionaryapi.dev/", "pricing": "free", "keywords": ["dictionary", "words"]},
108
+ {"name": "Datamuse API", "description": "Word finding query engine", "category": "Text Analysis", "auth": "None", "https": True, "cors": "yes", "link": "https://www.datamuse.com/api/", "pricing": "free", "keywords": ["words", "rhymes", "synonyms"]},
109
+ {"name": "WordsAPI", "description": "English word data", "category": "Text Analysis", "auth": "apiKey", "https": True, "cors": "yes", "link": "https://www.wordsapi.com/", "pricing": "freemium", "keywords": ["words", "dictionary"]},
110
+ {"name": "Wordnik API", "description": "Word information", "category": "Text Analysis", "auth": "apiKey", "https": True, "cors": "yes", "link": "https://developer.wordnik.com/", "pricing": "freemium", "keywords": ["words", "definitions"]},
111
+ {"name": "Merriam-Webster API", "description": "Dictionary and thesaurus", "category": "Text Analysis", "auth": "apiKey", "https": True, "cors": "unknown", "link": "https://dictionaryapi.com/", "pricing": "freemium", "keywords": ["dictionary", "merriam-webster"]},
112
+ {"name": "Oxford Dictionaries API", "description": "Oxford language data", "category": "Text Analysis", "auth": "apiKey", "https": True, "cors": "unknown", "link": "https://developer.oxforddictionaries.com/", "pricing": "paid", "keywords": ["dictionary", "oxford"]},
113
+ {"name": "LibreTranslate API", "description": "Open source translation", "category": "Text Analysis", "auth": "None", "https": True, "cors": "yes", "link": "https://libretranslate.com/docs/", "pricing": "free", "keywords": ["translation", "open-source"]},
114
+ {"name": "DeepL API", "description": "Neural machine translation", "category": "Text Analysis", "auth": "apiKey", "https": True, "cors": "unknown", "link": "https://www.deepl.com/docs-api", "pricing": "freemium", "keywords": ["translation", "deepl"]},
115
+ {"name": "Google Cloud Translation", "description": "Google translation service", "category": "Text Analysis", "auth": "apiKey", "https": True, "cors": "yes", "link": "https://cloud.google.com/translate/docs", "pricing": "paid", "keywords": ["translation", "google"]},
116
+
117
+ # =====================
118
+ # REAL ESTATE & PROPERTY
119
+ # =====================
120
+ {"name": "Zillow API", "description": "US real estate data", "category": "Real Estate", "auth": "apiKey", "https": True, "cors": "unknown", "link": "https://www.zillow.com/howto/api/APIOverview.htm", "pricing": "freemium", "keywords": ["real-estate", "zillow", "housing"]},
121
+ {"name": "Realtor.com API", "description": "Real estate listings", "category": "Real Estate", "auth": "apiKey", "https": True, "cors": "unknown", "link": "https://www.realtor.com/api/", "pricing": "paid", "keywords": ["real-estate", "listings"]},
122
+ {"name": "Redfin API", "description": "Real estate market data", "category": "Real Estate", "auth": "apiKey", "https": True, "cors": "unknown", "link": "https://www.redfin.com/developers", "pricing": "paid", "keywords": ["real-estate", "redfin"]},
123
+ {"name": "Rightmove API", "description": "UK property listings", "category": "Real Estate", "auth": "apiKey", "https": True, "cors": "unknown", "link": "https://www.rightmove.co.uk/api", "pricing": "paid", "keywords": ["real-estate", "uk", "property"]},
124
+ {"name": "ATTOM Property Data", "description": "Property and neighborhood data", "category": "Real Estate", "auth": "apiKey", "https": True, "cors": "unknown", "link": "https://api.developer.attomdata.com/", "pricing": "paid", "keywords": ["property", "real-estate"]},
125
+ {"name": "Walk Score API", "description": "Walkability scores", "category": "Real Estate", "auth": "apiKey", "https": True, "cors": "unknown", "link": "https://www.walkscore.com/professional/api.php", "pricing": "freemium", "keywords": ["walkability", "location"]},
126
+
127
+ # =====================
128
+ # JOB & CAREER
129
+ # =====================
130
+ {"name": "LinkedIn Jobs API", "description": "Job postings data", "category": "Jobs", "auth": "OAuth", "https": True, "cors": "unknown", "link": "https://docs.microsoft.com/en-us/linkedin/jobs/", "pricing": "paid", "keywords": ["jobs", "linkedin", "careers"]},
131
+ {"name": "Indeed API", "description": "Job search platform", "category": "Jobs", "auth": "apiKey", "https": True, "cors": "unknown", "link": "https://www.indeed.com/publisher", "pricing": "free", "keywords": ["jobs", "indeed"]},
132
+ {"name": "Glassdoor API", "description": "Company reviews and salaries", "category": "Jobs", "auth": "apiKey", "https": True, "cors": "unknown", "link": "https://www.glassdoor.com/developer/index.htm", "pricing": "freemium", "keywords": ["jobs", "glassdoor", "reviews"]},
133
+ {"name": "ZipRecruiter API", "description": "Job search and hiring", "category": "Jobs", "auth": "apiKey", "https": True, "cors": "unknown", "link": "https://www.ziprecruiter.com/api", "pricing": "paid", "keywords": ["jobs", "ziprecruiter"]},
134
+ {"name": "Adzuna API", "description": "Job search aggregator", "category": "Jobs", "auth": "apiKey", "https": True, "cors": "yes", "link": "https://developer.adzuna.com/", "pricing": "freemium", "keywords": ["jobs", "adzuna"]},
135
+ {"name": "USAJobs API", "description": "US government jobs", "category": "Jobs", "auth": "apiKey", "https": True, "cors": "yes", "link": "https://developer.usajobs.gov/", "pricing": "free", "keywords": ["jobs", "government", "usa"]},
136
+ {"name": "RemoteOK API", "description": "Remote job listings", "category": "Jobs", "auth": "None", "https": True, "cors": "yes", "link": "https://remoteok.com/api", "pricing": "free", "keywords": ["jobs", "remote"]},
137
+ {"name": "Arbetsförmedlingen API", "description": "Swedish job listings", "category": "Jobs", "auth": "apiKey", "https": True, "cors": "yes", "link": "https://jobtechdev.se/", "pricing": "free", "keywords": ["jobs", "sweden"]},
138
+
139
+ # =====================
140
+ # E-COMMERCE & PRODUCTS
141
+ # =====================
142
+ {"name": "Etsy API", "description": "Handmade marketplace", "category": "Shopping", "auth": "OAuth", "https": True, "cors": "unknown", "link": "https://www.etsy.com/developers/documentation", "pricing": "free", "keywords": ["etsy", "handmade", "marketplace"]},
143
+ {"name": "eBay API", "description": "Online marketplace", "category": "Shopping", "auth": "OAuth", "https": True, "cors": "unknown", "link": "https://developer.ebay.com/", "pricing": "free", "keywords": ["ebay", "marketplace", "auction"]},
144
+ {"name": "Printful API", "description": "Print-on-demand service", "category": "Shopping", "auth": "apiKey", "https": True, "cors": "unknown", "link": "https://developers.printful.com/docs/", "pricing": "free", "keywords": ["printful", "pod", "ecommerce"]},
145
+ {"name": "Printify API", "description": "Print-on-demand platform", "category": "Shopping", "auth": "apiKey", "https": True, "cors": "unknown", "link": "https://developers.printify.com/", "pricing": "free", "keywords": ["printify", "pod"]},
146
+ {"name": "Barcode Lookup API", "description": "UPC/EAN product data", "category": "Shopping", "auth": "apiKey", "https": True, "cors": "yes", "link": "https://www.barcodelookup.com/api", "pricing": "freemium", "keywords": ["barcode", "products", "upc"]},
147
+ {"name": "UPC Database API", "description": "Product barcode lookup", "category": "Shopping", "auth": "apiKey", "https": True, "cors": "yes", "link": "https://www.upcdatabase.com/api.asp", "pricing": "freemium", "keywords": ["upc", "barcode"]},
148
+ {"name": "Best Buy API", "description": "Electronics retailer data", "category": "Shopping", "auth": "apiKey", "https": True, "cors": "unknown", "link": "https://developer.bestbuy.com/", "pricing": "free", "keywords": ["bestbuy", "electronics"]},
149
+ {"name": "Kroger API", "description": "Grocery store data", "category": "Shopping", "auth": "apiKey", "https": True, "cors": "unknown", "link": "https://developer.kroger.com/", "pricing": "free", "keywords": ["grocery", "kroger"]},
150
+ {"name": "Target API", "description": "Retail store data", "category": "Shopping", "auth": "apiKey", "https": True, "cors": "unknown", "link": "https://developer.target.com/", "pricing": "paid", "keywords": ["target", "retail"]},
151
+ {"name": "Walmart API", "description": "Retail marketplace", "category": "Shopping", "auth": "apiKey", "https": True, "cors": "unknown", "link": "https://developer.walmart.com/", "pricing": "free", "keywords": ["walmart", "retail"]},
152
+ {"name": "Aftership API", "description": "Shipment tracking", "category": "Shopping", "auth": "apiKey", "https": True, "cors": "yes", "link": "https://developers.aftership.com/", "pricing": "freemium", "keywords": ["shipping", "tracking"]},
153
+ {"name": "ShipEngine API", "description": "Shipping and logistics", "category": "Shopping", "auth": "apiKey", "https": True, "cors": "yes", "link": "https://www.shipengine.com/docs/", "pricing": "freemium", "keywords": ["shipping", "logistics"]},
154
+ {"name": "Shippo API", "description": "Shipping API platform", "category": "Shopping", "auth": "apiKey", "https": True, "cors": "yes", "link": "https://goshippo.com/docs/intro/", "pricing": "freemium", "keywords": ["shipping", "shippo"]},
155
+ {"name": "EasyPost API", "description": "Shipping API", "category": "Shopping", "auth": "apiKey", "https": True, "cors": "unknown", "link": "https://www.easypost.com/docs/api", "pricing": "paid", "keywords": ["shipping", "easypost"]},
156
+
157
+ # =====================
158
+ # CLOUD & INFRASTRUCTURE
159
+ # =====================
160
+ {"name": "AWS SDK", "description": "Amazon Web Services", "category": "Cloud", "auth": "apiKey", "https": True, "cors": "unknown", "link": "https://aws.amazon.com/developer/tools/", "pricing": "paid", "keywords": ["aws", "cloud", "amazon"]},
161
+ {"name": "Google Cloud APIs", "description": "Google Cloud Platform", "category": "Cloud", "auth": "apiKey", "https": True, "cors": "unknown", "link": "https://cloud.google.com/apis", "pricing": "paid", "keywords": ["gcp", "cloud", "google"]},
162
+ {"name": "Azure REST APIs", "description": "Microsoft Azure", "category": "Cloud", "auth": "apiKey", "https": True, "cors": "unknown", "link": "https://docs.microsoft.com/en-us/rest/api/azure/", "pricing": "paid", "keywords": ["azure", "cloud", "microsoft"]},
163
+ {"name": "DigitalOcean API", "description": "Cloud infrastructure", "category": "Cloud", "auth": "apiKey", "https": True, "cors": "yes", "link": "https://docs.digitalocean.com/reference/api/", "pricing": "paid", "keywords": ["digitalocean", "cloud"]},
164
+ {"name": "Linode API", "description": "Cloud hosting", "category": "Cloud", "auth": "apiKey", "https": True, "cors": "yes", "link": "https://www.linode.com/docs/api/", "pricing": "paid", "keywords": ["linode", "cloud"]},
165
+ {"name": "Vultr API", "description": "Cloud compute", "category": "Cloud", "auth": "apiKey", "https": True, "cors": "yes", "link": "https://www.vultr.com/api/", "pricing": "paid", "keywords": ["vultr", "cloud"]},
166
+ {"name": "Hetzner API", "description": "Cloud hosting", "category": "Cloud", "auth": "apiKey", "https": True, "cors": "yes", "link": "https://docs.hetzner.cloud/", "pricing": "paid", "keywords": ["hetzner", "cloud"]},
167
+ {"name": "Scaleway API", "description": "European cloud provider", "category": "Cloud", "auth": "apiKey", "https": True, "cors": "yes", "link": "https://www.scaleway.com/en/developers/api/", "pricing": "paid", "keywords": ["scaleway", "cloud"]},
168
+ {"name": "Oracle Cloud API", "description": "Oracle Cloud Infrastructure", "category": "Cloud", "auth": "apiKey", "https": True, "cors": "unknown", "link": "https://docs.oracle.com/en-us/iaas/api/", "pricing": "paid", "keywords": ["oracle", "cloud"]},
169
+ {"name": "IBM Cloud API", "description": "IBM cloud services", "category": "Cloud", "auth": "apiKey", "https": True, "cors": "unknown", "link": "https://cloud.ibm.com/apidocs", "pricing": "paid", "keywords": ["ibm", "cloud"]},
170
+ {"name": "Cloudflare API", "description": "CDN and security", "category": "Cloud", "auth": "apiKey", "https": True, "cors": "yes", "link": "https://developers.cloudflare.com/api/", "pricing": "freemium", "keywords": ["cloudflare", "cdn", "security"]},
171
+ {"name": "Fastly API", "description": "Edge cloud platform", "category": "Cloud", "auth": "apiKey", "https": True, "cors": "yes", "link": "https://developer.fastly.com/reference/api/", "pricing": "paid", "keywords": ["fastly", "cdn", "edge"]},
172
+ {"name": "Akamai API", "description": "CDN and edge computing", "category": "Cloud", "auth": "apiKey", "https": True, "cors": "unknown", "link": "https://techdocs.akamai.com/", "pricing": "paid", "keywords": ["akamai", "cdn"]},
173
+ {"name": "Bunny CDN API", "description": "Content delivery network", "category": "Cloud", "auth": "apiKey", "https": True, "cors": "yes", "link": "https://docs.bunny.net/reference/bunnynet-api-overview", "pricing": "paid", "keywords": ["bunny", "cdn"]},
174
+ {"name": "KeyCDN API", "description": "CDN services", "category": "Cloud", "auth": "apiKey", "https": True, "cors": "yes", "link": "https://www.keycdn.com/api", "pricing": "paid", "keywords": ["keycdn", "cdn"]},
175
+ {"name": "Terraform Cloud API", "description": "Infrastructure as code", "category": "Development", "auth": "apiKey", "https": True, "cors": "unknown", "link": "https://developer.hashicorp.com/terraform/cloud-docs/api-docs", "pricing": "freemium", "keywords": ["terraform", "iac", "hashicorp"]},
176
+ {"name": "Pulumi API", "description": "Infrastructure as code", "category": "Development", "auth": "apiKey", "https": True, "cors": "unknown", "link": "https://www.pulumi.com/docs/reference/service-rest-api/", "pricing": "freemium", "keywords": ["pulumi", "iac"]},
177
+ {"name": "Docker Hub API", "description": "Container registry", "category": "Development", "auth": "apiKey", "https": True, "cors": "unknown", "link": "https://docs.docker.com/docker-hub/api/latest/", "pricing": "freemium", "keywords": ["docker", "containers"]},
178
+ {"name": "Kubernetes API", "description": "Container orchestration", "category": "Development", "auth": "apiKey", "https": True, "cors": "unknown", "link": "https://kubernetes.io/docs/reference/kubernetes-api/", "pricing": "free", "keywords": ["kubernetes", "k8s", "containers"]},
179
+
180
+ # =====================
181
+ # MONITORING & OBSERVABILITY
182
+ # =====================
183
+ {"name": "Datadog API", "description": "Monitoring and analytics", "category": "Analytics", "auth": "apiKey", "https": True, "cors": "unknown", "link": "https://docs.datadoghq.com/api/", "pricing": "paid", "keywords": ["monitoring", "datadog", "observability"]},
184
+ {"name": "New Relic API", "description": "Application performance", "category": "Analytics", "auth": "apiKey", "https": True, "cors": "unknown", "link": "https://docs.newrelic.com/docs/apis/", "pricing": "freemium", "keywords": ["apm", "newrelic", "monitoring"]},
185
+ {"name": "Splunk API", "description": "Data platform", "category": "Analytics", "auth": "apiKey", "https": True, "cors": "unknown", "link": "https://docs.splunk.com/Documentation/Splunk/latest/RESTREF/RESTprolog", "pricing": "paid", "keywords": ["splunk", "logs", "analytics"]},
186
+ {"name": "Grafana API", "description": "Observability platform", "category": "Analytics", "auth": "apiKey", "https": True, "cors": "yes", "link": "https://grafana.com/docs/grafana/latest/developers/http_api/", "pricing": "freemium", "keywords": ["grafana", "dashboards", "monitoring"]},
187
+ {"name": "Prometheus API", "description": "Monitoring system", "category": "Analytics", "auth": "None", "https": True, "cors": "yes", "link": "https://prometheus.io/docs/prometheus/latest/querying/api/", "pricing": "free", "keywords": ["prometheus", "monitoring", "metrics"]},
188
+ {"name": "PagerDuty API", "description": "Incident management", "category": "Business", "auth": "apiKey", "https": True, "cors": "unknown", "link": "https://developer.pagerduty.com/api-reference/", "pricing": "paid", "keywords": ["pagerduty", "incidents", "oncall"]},
189
+ {"name": "Opsgenie API", "description": "Alert management", "category": "Business", "auth": "apiKey", "https": True, "cors": "unknown", "link": "https://docs.opsgenie.com/docs/api-overview", "pricing": "freemium", "keywords": ["opsgenie", "alerts", "incidents"]},
190
+ {"name": "StatusPage API", "description": "Status page management", "category": "Development", "auth": "apiKey", "https": True, "cors": "unknown", "link": "https://developer.statuspage.io/", "pricing": "paid", "keywords": ["statuspage", "status"]},
191
+ {"name": "Better Uptime API", "description": "Uptime monitoring", "category": "Development", "auth": "apiKey", "https": True, "cors": "yes", "link": "https://betterstack.com/docs/uptime/api/", "pricing": "freemium", "keywords": ["uptime", "monitoring"]},
192
+ {"name": "Sentry API", "description": "Error tracking", "category": "Development", "auth": "apiKey", "https": True, "cors": "yes", "link": "https://docs.sentry.io/api/", "pricing": "freemium", "keywords": ["sentry", "errors", "debugging"]},
193
+ {"name": "Bugsnag API", "description": "Error monitoring", "category": "Development", "auth": "apiKey", "https": True, "cors": "unknown", "link": "https://bugsnagapiv2.docs.apiary.io/", "pricing": "freemium", "keywords": ["bugsnag", "errors"]},
194
+ {"name": "Rollbar API", "description": "Error tracking", "category": "Development", "auth": "apiKey", "https": True, "cors": "unknown", "link": "https://docs.rollbar.com/reference", "pricing": "freemium", "keywords": ["rollbar", "errors"]},
195
+ {"name": "LogRocket API", "description": "Session replay", "category": "Analytics", "auth": "apiKey", "https": True, "cors": "unknown", "link": "https://docs.logrocket.com/reference", "pricing": "freemium", "keywords": ["logrocket", "sessions", "debugging"]},
196
+ {"name": "FullStory API", "description": "Digital experience analytics", "category": "Analytics", "auth": "apiKey", "https": True, "cors": "unknown", "link": "https://developer.fullstory.com/", "pricing": "paid", "keywords": ["fullstory", "analytics", "sessions"]},
197
+ {"name": "Hotjar API", "description": "Behavior analytics", "category": "Analytics", "auth": "apiKey", "https": True, "cors": "unknown", "link": "https://www.hotjar.com/developers/", "pricing": "freemium", "keywords": ["hotjar", "heatmaps", "analytics"]},
198
+ {"name": "Heap Analytics API", "description": "Product analytics", "category": "Analytics", "auth": "apiKey", "https": True, "cors": "unknown", "link": "https://developers.heap.io/reference", "pricing": "freemium", "keywords": ["heap", "analytics"]},
199
+ {"name": "PostHog API", "description": "Product analytics", "category": "Analytics", "auth": "apiKey", "https": True, "cors": "yes", "link": "https://posthog.com/docs/api", "pricing": "freemium", "keywords": ["posthog", "analytics", "open-source"]},
200
+ {"name": "Plausible Analytics API", "description": "Privacy-focused analytics", "category": "Analytics", "auth": "apiKey", "https": True, "cors": "yes", "link": "https://plausible.io/docs/stats-api", "pricing": "paid", "keywords": ["plausible", "analytics", "privacy"]},
201
+ {"name": "Umami API", "description": "Open source analytics", "category": "Analytics", "auth": "apiKey", "https": True, "cors": "yes", "link": "https://umami.is/docs/api", "pricing": "free", "keywords": ["umami", "analytics", "open-source"]},
202
+ {"name": "Fathom Analytics API", "description": "Privacy-first analytics", "category": "Analytics", "auth": "apiKey", "https": True, "cors": "yes", "link": "https://usefathom.com/api", "pricing": "paid", "keywords": ["fathom", "analytics", "privacy"]},
203
+
204
+ # =====================
205
+ # AUTOMATION & INTEGRATION
206
+ # =====================
207
+ {"name": "Zapier API", "description": "App automation", "category": "Automation", "auth": "apiKey", "https": True, "cors": "unknown", "link": "https://platform.zapier.com/", "pricing": "freemium", "keywords": ["zapier", "automation", "integration"]},
208
+ {"name": "Make (Integromat) API", "description": "Workflow automation", "category": "Automation", "auth": "apiKey", "https": True, "cors": "unknown", "link": "https://www.make.com/en/api-documentation", "pricing": "freemium", "keywords": ["make", "integromat", "automation"]},
209
+ {"name": "n8n API", "description": "Open source automation", "category": "Automation", "auth": "apiKey", "https": True, "cors": "yes", "link": "https://docs.n8n.io/api/", "pricing": "freemium", "keywords": ["n8n", "automation", "open-source"]},
210
+ {"name": "Pipedream API", "description": "Integration platform", "category": "Automation", "auth": "apiKey", "https": True, "cors": "yes", "link": "https://pipedream.com/docs/api/", "pricing": "freemium", "keywords": ["pipedream", "automation"]},
211
+ {"name": "Tray.io API", "description": "Enterprise automation", "category": "Automation", "auth": "apiKey", "https": True, "cors": "unknown", "link": "https://tray.io/docs/", "pricing": "paid", "keywords": ["tray", "automation", "enterprise"]},
212
+ {"name": "Workato API", "description": "Enterprise integration", "category": "Automation", "auth": "apiKey", "https": True, "cors": "unknown", "link": "https://docs.workato.com/workato-api.html", "pricing": "paid", "keywords": ["workato", "automation", "enterprise"]},
213
+ {"name": "IFTTT API", "description": "If This Then That", "category": "Automation", "auth": "OAuth", "https": True, "cors": "unknown", "link": "https://ifttt.com/docs", "pricing": "freemium", "keywords": ["ifttt", "automation"]},
214
+ {"name": "Webhooks.io", "description": "Webhook management", "category": "Development", "auth": "apiKey", "https": True, "cors": "yes", "link": "https://webhooks.io/docs/", "pricing": "freemium", "keywords": ["webhooks", "integration"]},
215
+ {"name": "Svix API", "description": "Webhook service", "category": "Development", "auth": "apiKey", "https": True, "cors": "yes", "link": "https://docs.svix.com/", "pricing": "freemium", "keywords": ["svix", "webhooks"]},
216
+ {"name": "Hookdeck API", "description": "Webhook infrastructure", "category": "Development", "auth": "apiKey", "https": True, "cors": "yes", "link": "https://hookdeck.com/docs", "pricing": "freemium", "keywords": ["hookdeck", "webhooks"]},
217
+
218
+ # =====================
219
+ # SECURITY & AUTH
220
+ # =====================
221
+ {"name": "VirusTotal API", "description": "Malware scanning", "category": "Security", "auth": "apiKey", "https": True, "cors": "unknown", "link": "https://developers.virustotal.com/reference", "pricing": "freemium", "keywords": ["virustotal", "malware", "security"]},
222
+ {"name": "Shodan API", "description": "Internet security search", "category": "Security", "auth": "apiKey", "https": True, "cors": "unknown", "link": "https://developer.shodan.io/", "pricing": "freemium", "keywords": ["shodan", "security", "search"]},
223
+ {"name": "Have I Been Pwned API", "description": "Data breach checker", "category": "Security", "auth": "apiKey", "https": True, "cors": "unknown", "link": "https://haveibeenpwned.com/API/v3", "pricing": "freemium", "keywords": ["hibp", "security", "breach"]},
224
+ {"name": "URLScan.io API", "description": "URL security analysis", "category": "Security", "auth": "apiKey", "https": True, "cors": "yes", "link": "https://urlscan.io/docs/api/", "pricing": "freemium", "keywords": ["urlscan", "security"]},
225
+ {"name": "PhishTank API", "description": "Phishing URL database", "category": "Security", "auth": "apiKey", "https": True, "cors": "unknown", "link": "https://www.phishtank.com/developer_info.php", "pricing": "free", "keywords": ["phishing", "security"]},
226
+ {"name": "AbuseIPDB API", "description": "IP abuse database", "category": "Security", "auth": "apiKey", "https": True, "cors": "yes", "link": "https://docs.abuseipdb.com/", "pricing": "freemium", "keywords": ["ip", "abuse", "security"]},
227
+ {"name": "SecurityTrails API", "description": "DNS and domain data", "category": "Security", "auth": "apiKey", "https": True, "cors": "unknown", "link": "https://securitytrails.com/corp/api", "pricing": "freemium", "keywords": ["dns", "security", "domains"]},
228
+ {"name": "Censys API", "description": "Internet asset search", "category": "Security", "auth": "apiKey", "https": True, "cors": "unknown", "link": "https://search.censys.io/api", "pricing": "freemium", "keywords": ["censys", "security", "scanning"]},
229
+ {"name": "Snyk API", "description": "Developer security", "category": "Security", "auth": "apiKey", "https": True, "cors": "unknown", "link": "https://snyk.docs.apiary.io/", "pricing": "freemium", "keywords": ["snyk", "security", "vulnerabilities"]},
230
+ {"name": "WhoisXML API", "description": "Domain WHOIS data", "category": "Security", "auth": "apiKey", "https": True, "cors": "yes", "link": "https://whoisxmlapi.com/", "pricing": "freemium", "keywords": ["whois", "domains", "security"]},
231
+ {"name": "IPQualityScore API", "description": "Fraud detection", "category": "Security", "auth": "apiKey", "https": True, "cors": "yes", "link": "https://www.ipqualityscore.com/documentation/overview", "pricing": "freemium", "keywords": ["fraud", "security", "ip"]},
232
+ {"name": "MaxMind GeoIP2", "description": "IP geolocation and fraud", "category": "Security", "auth": "apiKey", "https": True, "cors": "unknown", "link": "https://dev.maxmind.com/geoip/", "pricing": "freemium", "keywords": ["geoip", "maxmind", "security"]},
233
+ {"name": "reCAPTCHA API", "description": "Bot protection", "category": "Security", "auth": "apiKey", "https": True, "cors": "yes", "link": "https://developers.google.com/recaptcha/", "pricing": "freemium", "keywords": ["recaptcha", "captcha", "security"]},
234
+ {"name": "hCaptcha API", "description": "Bot protection", "category": "Security", "auth": "apiKey", "https": True, "cors": "yes", "link": "https://docs.hcaptcha.com/", "pricing": "freemium", "keywords": ["hcaptcha", "captcha", "security"]},
235
+ {"name": "Turnstile API", "description": "Cloudflare CAPTCHA", "category": "Security", "auth": "apiKey", "https": True, "cors": "yes", "link": "https://developers.cloudflare.com/turnstile/", "pricing": "free", "keywords": ["turnstile", "cloudflare", "captcha"]},
236
+
237
+ # =====================
238
+ # SCIENCE & RESEARCH
239
+ # =====================
240
+ {"name": "arXiv API", "description": "Scientific papers", "category": "Science", "auth": "None", "https": True, "cors": "yes", "link": "https://arxiv.org/help/api/", "pricing": "free", "keywords": ["arxiv", "papers", "research"]},
241
+ {"name": "Semantic Scholar API", "description": "Academic paper search", "category": "Science", "auth": "apiKey", "https": True, "cors": "yes", "link": "https://api.semanticscholar.org/", "pricing": "free", "keywords": ["papers", "academic", "research"]},
242
+ {"name": "CrossRef API", "description": "Scholarly metadata", "category": "Science", "auth": "None", "https": True, "cors": "yes", "link": "https://www.crossref.org/documentation/retrieve-metadata/", "pricing": "free", "keywords": ["doi", "papers", "metadata"]},
243
+ {"name": "CORE API", "description": "Open access research", "category": "Science", "auth": "apiKey", "https": True, "cors": "yes", "link": "https://core.ac.uk/documentation/api", "pricing": "free", "keywords": ["core", "papers", "open-access"]},
244
+ {"name": "OpenCitations API", "description": "Citation data", "category": "Science", "auth": "None", "https": True, "cors": "yes", "link": "https://opencitations.net/index/api/v2", "pricing": "free", "keywords": ["citations", "academic"]},
245
+ {"name": "GBIF API", "description": "Global biodiversity data", "category": "Science", "auth": "None", "https": True, "cors": "yes", "link": "https://www.gbif.org/developer/summary", "pricing": "free", "keywords": ["biodiversity", "species", "science"]},
246
+ {"name": "iNaturalist API", "description": "Nature observations", "category": "Science", "auth": "OAuth", "https": True, "cors": "yes", "link": "https://api.inaturalist.org/v1/docs/", "pricing": "free", "keywords": ["nature", "species", "observations"]},
247
+ {"name": "NCBI Entrez API", "description": "Biomedical databases", "category": "Science", "auth": "apiKey", "https": True, "cors": "yes", "link": "https://www.ncbi.nlm.nih.gov/books/NBK25501/", "pricing": "free", "keywords": ["ncbi", "genomics", "biology"]},
248
+ {"name": "UniProt API", "description": "Protein sequences", "category": "Science", "auth": "None", "https": True, "cors": "yes", "link": "https://www.uniprot.org/help/api", "pricing": "free", "keywords": ["proteins", "biology", "genomics"]},
249
+ {"name": "ChEMBL API", "description": "Drug discovery database", "category": "Science", "auth": "None", "https": True, "cors": "yes", "link": "https://www.ebi.ac.uk/chembl/api/data/docs", "pricing": "free", "keywords": ["chembl", "drugs", "chemistry"]},
250
+ {"name": "RCSB PDB API", "description": "Protein structure database", "category": "Science", "auth": "None", "https": True, "cors": "yes", "link": "https://data.rcsb.org/", "pricing": "free", "keywords": ["proteins", "structures", "biology"]},
251
+ {"name": "European Space Agency API", "description": "ESA space data", "category": "Science", "auth": "None", "https": True, "cors": "yes", "link": "https://api.esa.int/", "pricing": "free", "keywords": ["esa", "space", "science"]},
252
+ {"name": "SpaceX API", "description": "SpaceX launch data", "category": "Science", "auth": "None", "https": True, "cors": "yes", "link": "https://github.com/r-spacex/SpaceX-API", "pricing": "free", "keywords": ["spacex", "rockets", "launches"]},
253
+ {"name": "Launch Library 2", "description": "Space launch data", "category": "Science", "auth": "None", "https": True, "cors": "yes", "link": "https://thespacedevs.com/llapi", "pricing": "freemium", "keywords": ["launches", "rockets", "space"]},
254
+ {"name": "Astronomy Picture of the Day", "description": "NASA APOD", "category": "Science", "auth": "apiKey", "https": True, "cors": "yes", "link": "https://api.nasa.gov/planetary/apod", "pricing": "free", "keywords": ["apod", "nasa", "astronomy"]},
255
+ {"name": "Open Notify ISS", "description": "ISS location tracker", "category": "Science", "auth": "None", "https": True, "cors": "yes", "link": "http://open-notify.org/Open-Notify-API/", "pricing": "free", "keywords": ["iss", "space", "location"]},
256
+ {"name": "N2YO Satellite Tracker", "description": "Satellite tracking", "category": "Science", "auth": "apiKey", "https": True, "cors": "yes", "link": "https://www.n2yo.com/api/", "pricing": "freemium", "keywords": ["satellites", "tracking", "space"]},
257
+ {"name": "Sunrise-Sunset API", "description": "Sunrise/sunset times", "category": "Science", "auth": "None", "https": True, "cors": "yes", "link": "https://sunrise-sunset.org/api", "pricing": "free", "keywords": ["sunrise", "sunset", "astronomy"]},
258
+
259
+ # =====================
260
+ # ANIMALS & PETS
261
+ # =====================
262
+ {"name": "Dog API", "description": "Random dog images", "category": "Animals", "auth": "None", "https": True, "cors": "yes", "link": "https://dog.ceo/dog-api/", "pricing": "free", "keywords": ["dogs", "animals", "images"]},
263
+ {"name": "Cat API", "description": "Random cat images", "category": "Animals", "auth": "apiKey", "https": True, "cors": "yes", "link": "https://thecatapi.com/", "pricing": "freemium", "keywords": ["cats", "animals", "images"]},
264
+ {"name": "Petfinder API", "description": "Pet adoption database", "category": "Animals", "auth": "OAuth", "https": True, "cors": "unknown", "link": "https://www.petfinder.com/developers/v2/docs/", "pricing": "free", "keywords": ["pets", "adoption", "animals"]},
265
+ {"name": "RescueGroups API", "description": "Animal rescue data", "category": "Animals", "auth": "apiKey", "https": True, "cors": "unknown", "link": "https://rescuegroups.org/api/", "pricing": "free", "keywords": ["rescue", "adoption", "animals"]},
266
+ {"name": "Shibe.online", "description": "Shiba Inu images", "category": "Animals", "auth": "None", "https": True, "cors": "yes", "link": "https://shibe.online/", "pricing": "free", "keywords": ["dogs", "shiba", "images"]},
267
+ {"name": "RandomFox API", "description": "Random fox images", "category": "Animals", "auth": "None", "https": True, "cors": "yes", "link": "https://randomfox.ca/floof/", "pricing": "free", "keywords": ["fox", "animals", "images"]},
268
+ {"name": "HTTP Cat", "description": "HTTP status cats", "category": "Animals", "auth": "None", "https": True, "cors": "yes", "link": "https://http.cat/", "pricing": "free", "keywords": ["cats", "http", "fun"]},
269
+ {"name": "HTTP Dog", "description": "HTTP status dogs", "category": "Animals", "auth": "None", "https": True, "cors": "yes", "link": "https://http.dog/", "pricing": "free", "keywords": ["dogs", "http", "fun"]},
270
+
271
+ # =====================
272
+ # FUN & ENTERTAINMENT
273
+ # =====================
274
+ {"name": "Chuck Norris API", "description": "Chuck Norris jokes", "category": "Entertainment", "auth": "None", "https": True, "cors": "yes", "link": "https://api.chucknorris.io/", "pricing": "free", "keywords": ["jokes", "chuck-norris", "fun"]},
275
+ {"name": "Dad Jokes API", "description": "Dad jokes", "category": "Entertainment", "auth": "None", "https": True, "cors": "yes", "link": "https://icanhazdadjoke.com/api", "pricing": "free", "keywords": ["jokes", "dad-jokes", "fun"]},
276
+ {"name": "JokeAPI", "description": "Programming and general jokes", "category": "Entertainment", "auth": "None", "https": True, "cors": "yes", "link": "https://jokeapi.dev/", "pricing": "free", "keywords": ["jokes", "programming", "fun"]},
277
+ {"name": "Official Joke API", "description": "Random jokes", "category": "Entertainment", "auth": "None", "https": True, "cors": "yes", "link": "https://official-joke-api.appspot.com/", "pricing": "free", "keywords": ["jokes", "fun"]},
278
+ {"name": "Advice Slip API", "description": "Random advice", "category": "Entertainment", "auth": "None", "https": True, "cors": "yes", "link": "https://api.adviceslip.com/", "pricing": "free", "keywords": ["advice", "quotes", "fun"]},
279
+ {"name": "Quotable API", "description": "Famous quotes", "category": "Entertainment", "auth": "None", "https": True, "cors": "yes", "link": "https://github.com/lukePeavey/quotable", "pricing": "free", "keywords": ["quotes", "famous"]},
280
+ {"name": "Zen Quotes API", "description": "Inspirational quotes", "category": "Entertainment", "auth": "None", "https": True, "cors": "yes", "link": "https://zenquotes.io/api", "pricing": "free", "keywords": ["quotes", "inspiration"]},
281
+ {"name": "Kanye Rest", "description": "Kanye West quotes", "category": "Entertainment", "auth": "None", "https": True, "cors": "yes", "link": "https://kanye.rest/", "pricing": "free", "keywords": ["kanye", "quotes", "fun"]},
282
+ {"name": "Taylor Swift API", "description": "Taylor Swift lyrics", "category": "Entertainment", "auth": "None", "https": True, "cors": "yes", "link": "https://taylor.rest/", "pricing": "free", "keywords": ["taylor-swift", "lyrics", "music"]},
283
+ {"name": "Bored API", "description": "Activity suggestions", "category": "Entertainment", "auth": "None", "https": True, "cors": "yes", "link": "https://www.boredapi.com/documentation", "pricing": "free", "keywords": ["activities", "bored", "fun"]},
284
+ {"name": "Trivia API", "description": "Trivia questions", "category": "Entertainment", "auth": "None", "https": True, "cors": "yes", "link": "https://opentdb.com/api_config.php", "pricing": "free", "keywords": ["trivia", "quiz", "games"]},
285
+ {"name": "Numbers API", "description": "Facts about numbers", "category": "Entertainment", "auth": "None", "https": True, "cors": "yes", "link": "http://numbersapi.com/", "pricing": "free", "keywords": ["numbers", "facts", "math"]},
286
+ {"name": "Useless Facts API", "description": "Random useless facts", "category": "Entertainment", "auth": "None", "https": True, "cors": "yes", "link": "https://uselessfacts.jsph.pl/", "pricing": "free", "keywords": ["facts", "useless", "fun"]},
287
+ {"name": "Cat Facts API", "description": "Random cat facts", "category": "Entertainment", "auth": "None", "https": True, "cors": "yes", "link": "https://catfact.ninja/", "pricing": "free", "keywords": ["cats", "facts", "animals"]},
288
+ {"name": "Dog Facts API", "description": "Random dog facts", "category": "Entertainment", "auth": "None", "https": True, "cors": "yes", "link": "https://dukengn.github.io/Dog-facts-API/", "pricing": "free", "keywords": ["dogs", "facts", "animals"]},
289
+ {"name": "Deck of Cards API", "description": "Virtual card deck", "category": "Games", "auth": "None", "https": True, "cors": "yes", "link": "https://deckofcardsapi.com/", "pricing": "free", "keywords": ["cards", "games", "deck"]},
290
+ {"name": "D&D 5e API", "description": "Dungeons & Dragons data", "category": "Games", "auth": "None", "https": True, "cors": "yes", "link": "https://www.dnd5eapi.co/", "pricing": "free", "keywords": ["dnd", "games", "rpg"]},
291
+ {"name": "PokéAPI", "description": "Pokémon data", "category": "Games", "auth": "None", "https": True, "cors": "yes", "link": "https://pokeapi.co/", "pricing": "free", "keywords": ["pokemon", "games"]},
292
+ {"name": "Marvel API", "description": "Marvel comics data", "category": "Entertainment", "auth": "apiKey", "https": True, "cors": "unknown", "link": "https://developer.marvel.com/", "pricing": "free", "keywords": ["marvel", "comics", "superheroes"]},
293
+ {"name": "Star Wars API", "description": "Star Wars universe data", "category": "Entertainment", "auth": "None", "https": True, "cors": "yes", "link": "https://swapi.dev/", "pricing": "free", "keywords": ["starwars", "movies", "scifi"]},
294
+ {"name": "Star Trek API", "description": "Star Trek universe data", "category": "Entertainment", "auth": "None", "https": True, "cors": "yes", "link": "http://stapi.co/", "pricing": "free", "keywords": ["startrek", "movies", "scifi"]},
295
+ {"name": "Harry Potter API", "description": "Harry Potter universe data", "category": "Entertainment", "auth": "None", "https": True, "cors": "yes", "link": "https://hp-api.onrender.com/", "pricing": "free", "keywords": ["harrypotter", "movies", "fantasy"]},
296
+ {"name": "Lord of the Rings API", "description": "LOTR universe data", "category": "Entertainment", "auth": "apiKey", "https": True, "cors": "yes", "link": "https://the-one-api.dev/", "pricing": "freemium", "keywords": ["lotr", "movies", "fantasy"]},
297
+ {"name": "Rick and Morty API", "description": "Rick and Morty data", "category": "Entertainment", "auth": "None", "https": True, "cors": "yes", "link": "https://rickandmortyapi.com/", "pricing": "free", "keywords": ["rickandmorty", "tv", "animation"]},
298
+ {"name": "Studio Ghibli API", "description": "Ghibli films data", "category": "Entertainment", "auth": "None", "https": True, "cors": "yes", "link": "https://ghibliapi.vercel.app/", "pricing": "free", "keywords": ["ghibli", "anime", "films"]},
299
+ {"name": "Jikan API", "description": "MyAnimeList unofficial API", "category": "Entertainment", "auth": "None", "https": True, "cors": "yes", "link": "https://jikan.moe/", "pricing": "free", "keywords": ["anime", "manga", "myanimelist"]},
300
+ {"name": "AniList API", "description": "Anime and manga database", "category": "Entertainment", "auth": "OAuth", "https": True, "cors": "yes", "link": "https://anilist.gitbook.io/anilist-apiv2-docs/", "pricing": "free", "keywords": ["anime", "manga", "anilist"]},
301
+ {"name": "Kitsu API", "description": "Anime and manga community", "category": "Entertainment", "auth": "OAuth", "https": True, "cors": "yes", "link": "https://kitsu.docs.apiary.io/", "pricing": "free", "keywords": ["anime", "manga", "kitsu"]},
302
+
303
+ # =====================
304
+ # UTILITY & TOOLS
305
+ # =====================
306
+ {"name": "RandomUser API", "description": "Random user data generator", "category": "Development", "auth": "None", "https": True, "cors": "yes", "link": "https://randomuser.me/documentation", "pricing": "free", "keywords": ["random", "users", "testing"]},
307
+ {"name": "UUID Generator API", "description": "Generate UUIDs", "category": "Development", "auth": "None", "https": True, "cors": "yes", "link": "https://www.uuidtools.com/api", "pricing": "free", "keywords": ["uuid", "generator"]},
308
+ {"name": "Lorem Ipsum API", "description": "Placeholder text generator", "category": "Development", "auth": "None", "https": True, "cors": "yes", "link": "https://loripsum.net/", "pricing": "free", "keywords": ["lorem", "placeholder", "text"]},
309
+ {"name": "Placeholder.com", "description": "Placeholder images", "category": "Media", "auth": "None", "https": True, "cors": "yes", "link": "https://placeholder.com/", "pricing": "free", "keywords": ["placeholder", "images"]},
310
+ {"name": "DiceBear Avatars", "description": "Avatar generator", "category": "Media", "auth": "None", "https": True, "cors": "yes", "link": "https://www.dicebear.com/", "pricing": "free", "keywords": ["avatars", "generator"]},
311
+ {"name": "Robohash", "description": "Robot avatar generator", "category": "Media", "auth": "None", "https": True, "cors": "yes", "link": "https://robohash.org/", "pricing": "free", "keywords": ["avatars", "robots"]},
312
+ {"name": "Adorable Avatars", "description": "Cute avatar generator", "category": "Media", "auth": "None", "https": True, "cors": "yes", "link": "http://avatars.adorable.io/", "pricing": "free", "keywords": ["avatars", "cute"]},
313
+ {"name": "UI Avatars", "description": "Initial-based avatars", "category": "Media", "auth": "None", "https": True, "cors": "yes", "link": "https://ui-avatars.com/", "pricing": "free", "keywords": ["avatars", "initials"]},
314
+ {"name": "Gravatar API", "description": "Global avatars", "category": "Media", "auth": "None", "https": True, "cors": "yes", "link": "https://en.gravatar.com/site/implement/", "pricing": "free", "keywords": ["avatars", "gravatar"]},
315
+ {"name": "QR Code Generator API", "description": "Generate QR codes", "category": "Development", "auth": "None", "https": True, "cors": "yes", "link": "https://goqr.me/api/", "pricing": "free", "keywords": ["qr", "codes", "generator"]},
316
+ {"name": "Barcode Generator API", "description": "Generate barcodes", "category": "Development", "auth": "None", "https": True, "cors": "yes", "link": "https://bwipjs-api.metafloor.com/", "pricing": "free", "keywords": ["barcode", "generator"]},
317
+ {"name": "Carbon API", "description": "Code screenshot generator", "category": "Development", "auth": "None", "https": True, "cors": "yes", "link": "https://carbon.now.sh/", "pricing": "free", "keywords": ["code", "screenshots"]},
318
+ {"name": "Color API", "description": "Color information", "category": "Development", "auth": "None", "https": True, "cors": "yes", "link": "https://www.thecolorapi.com/", "pricing": "free", "keywords": ["colors", "hex", "rgb"]},
319
+ {"name": "Colormind API", "description": "AI color schemes", "category": "Development", "auth": "None", "https": True, "cors": "yes", "link": "http://colormind.io/api-access/", "pricing": "free", "keywords": ["colors", "palettes", "ai"]},
320
+ {"name": "Country Flags API", "description": "Country flag images", "category": "Media", "auth": "None", "https": True, "cors": "yes", "link": "https://flagcdn.com/", "pricing": "free", "keywords": ["flags", "countries"]},
321
+ {"name": "REST Countries API", "description": "Country information", "category": "Open Data", "auth": "None", "https": True, "cors": "yes", "link": "https://restcountries.com/", "pricing": "free", "keywords": ["countries", "data"]},
322
+ {"name": "Geonames API", "description": "Geographical data", "category": "Geocoding", "auth": "apiKey", "https": True, "cors": "yes", "link": "https://www.geonames.org/export/web-services.html", "pricing": "freemium", "keywords": ["geography", "locations"]},
323
+ {"name": "IP Geolocation API", "description": "IP location lookup", "category": "Geocoding", "auth": "apiKey", "https": True, "cors": "yes", "link": "https://ipgeolocation.io/documentation", "pricing": "freemium", "keywords": ["ip", "geolocation"]},
324
+ {"name": "Exchange Rate API", "description": "Currency exchange rates", "category": "Finance", "auth": "apiKey", "https": True, "cors": "yes", "link": "https://www.exchangerate-api.com/docs/overview", "pricing": "freemium", "keywords": ["currency", "exchange"]},
325
+ {"name": "Open Exchange Rates", "description": "Currency data", "category": "Finance", "auth": "apiKey", "https": True, "cors": "yes", "link": "https://docs.openexchangerates.org/", "pricing": "freemium", "keywords": ["currency", "exchange"]},
326
+ {"name": "Fixer.io", "description": "Exchange rates", "category": "Finance", "auth": "apiKey", "https": True, "cors": "unknown", "link": "https://fixer.io/documentation", "pricing": "freemium", "keywords": ["currency", "fixer"]},
327
+ {"name": "CurrencyLayer API", "description": "Currency conversion", "category": "Finance", "auth": "apiKey", "https": True, "cors": "yes", "link": "https://currencylayer.com/documentation", "pricing": "freemium", "keywords": ["currency", "conversion"]},
328
+ {"name": "Frankfurter API", "description": "European Central Bank rates", "category": "Finance", "auth": "None", "https": True, "cors": "yes", "link": "https://www.frankfurter.app/docs/", "pricing": "free", "keywords": ["currency", "ecb"]},
329
+ {"name": "TimeZoneDB API", "description": "Time zone information", "category": "Development", "auth": "apiKey", "https": True, "cors": "yes", "link": "https://timezonedb.com/api", "pricing": "freemium", "keywords": ["timezone", "time"]},
330
+ {"name": "WorldTimeAPI", "description": "Current time by timezone", "category": "Development", "auth": "None", "https": True, "cors": "yes", "link": "https://worldtimeapi.org/", "pricing": "free", "keywords": ["time", "timezone"]},
331
+ {"name": "Calendarific API", "description": "Public holidays", "category": "Development", "auth": "apiKey", "https": True, "cors": "yes", "link": "https://calendarific.com/api-documentation", "pricing": "freemium", "keywords": ["holidays", "calendar"]},
332
+ {"name": "Nager.Date API", "description": "Public holidays", "category": "Development", "auth": "None", "https": True, "cors": "yes", "link": "https://date.nager.at/Api", "pricing": "free", "keywords": ["holidays", "dates"]},
333
+ {"name": "Abstract Holidays API", "description": "Holiday information", "category": "Development", "auth": "apiKey", "https": True, "cors": "yes", "link": "https://www.abstractapi.com/api/holidays-api", "pricing": "freemium", "keywords": ["holidays", "abstract"]},
334
+ {"name": "OpenCage Geocoder", "description": "Forward/reverse geocoding", "category": "Geocoding", "auth": "apiKey", "https": True, "cors": "yes", "link": "https://opencagedata.com/api", "pricing": "freemium", "keywords": ["geocoding", "addresses"]},
335
+ {"name": "PositionStack API", "description": "Geocoding service", "category": "Geocoding", "auth": "apiKey", "https": True, "cors": "yes", "link": "https://positionstack.com/documentation", "pricing": "freemium", "keywords": ["geocoding", "positionstack"]},
336
+ {"name": "Geoapify API", "description": "Location platform", "category": "Geocoding", "auth": "apiKey", "https": True, "cors": "yes", "link": "https://www.geoapify.com/api/", "pricing": "freemium", "keywords": ["geocoding", "maps"]},
337
+ {"name": "LocationIQ API", "description": "Geocoding and maps", "category": "Geocoding", "auth": "apiKey", "https": True, "cors": "yes", "link": "https://locationiq.com/docs", "pricing": "freemium", "keywords": ["geocoding", "locationiq"]},
338
+
339
+ # =====================
340
+ # BLOCKCHAIN & WEB3
341
+ # =====================
342
+ {"name": "Etherscan API", "description": "Ethereum blockchain data", "category": "Blockchain", "auth": "apiKey", "https": True, "cors": "yes", "link": "https://docs.etherscan.io/", "pricing": "freemium", "keywords": ["ethereum", "blockchain", "etherscan"]},
343
+ {"name": "Alchemy API", "description": "Web3 development platform", "category": "Blockchain", "auth": "apiKey", "https": True, "cors": "yes", "link": "https://docs.alchemy.com/", "pricing": "freemium", "keywords": ["ethereum", "web3", "alchemy"]},
344
+ {"name": "Infura API", "description": "Ethereum infrastructure", "category": "Blockchain", "auth": "apiKey", "https": True, "cors": "unknown", "link": "https://docs.infura.io/", "pricing": "freemium", "keywords": ["ethereum", "infura", "web3"]},
345
+ {"name": "QuickNode API", "description": "Blockchain node infrastructure", "category": "Blockchain", "auth": "apiKey", "https": True, "cors": "unknown", "link": "https://www.quicknode.com/docs", "pricing": "freemium", "keywords": ["blockchain", "quicknode", "nodes"]},
346
+ {"name": "Moralis API", "description": "Web3 development", "category": "Blockchain", "auth": "apiKey", "https": True, "cors": "yes", "link": "https://docs.moralis.io/", "pricing": "freemium", "keywords": ["web3", "moralis", "nft"]},
347
+ {"name": "OpenSea API", "description": "NFT marketplace", "category": "Blockchain", "auth": "apiKey", "https": True, "cors": "unknown", "link": "https://docs.opensea.io/reference/api-overview", "pricing": "freemium", "keywords": ["nft", "opensea", "marketplace"]},
348
+ {"name": "Rarible API", "description": "NFT protocol", "category": "Blockchain", "auth": "apiKey", "https": True, "cors": "unknown", "link": "https://docs.rarible.org/", "pricing": "free", "keywords": ["nft", "rarible"]},
349
+ {"name": "Zapper API", "description": "DeFi portfolio", "category": "Blockchain", "auth": "apiKey", "https": True, "cors": "unknown", "link": "https://docs.zapper.xyz/", "pricing": "freemium", "keywords": ["defi", "zapper", "portfolio"]},
350
+ {"name": "DeBank API", "description": "DeFi portfolio tracking", "category": "Blockchain", "auth": "apiKey", "https": True, "cors": "unknown", "link": "https://docs.open.debank.com/", "pricing": "freemium", "keywords": ["defi", "debank"]},
351
+ {"name": "DeFiLlama API", "description": "DeFi TVL data", "category": "Blockchain", "auth": "None", "https": True, "cors": "yes", "link": "https://defillama.com/docs/api", "pricing": "free", "keywords": ["defi", "tvl", "defillama"]},
352
+ {"name": "1inch API", "description": "DEX aggregator", "category": "Blockchain", "auth": "None", "https": True, "cors": "yes", "link": "https://docs.1inch.io/", "pricing": "free", "keywords": ["defi", "1inch", "dex"]},
353
+ {"name": "Uniswap API", "description": "DEX protocol", "category": "Blockchain", "auth": "None", "https": True, "cors": "yes", "link": "https://docs.uniswap.org/", "pricing": "free", "keywords": ["defi", "uniswap", "dex"]},
354
+ {"name": "The Graph", "description": "Blockchain indexing", "category": "Blockchain", "auth": "apiKey", "https": True, "cors": "yes", "link": "https://thegraph.com/docs/", "pricing": "freemium", "keywords": ["thegraph", "indexing", "subgraphs"]},
355
+ {"name": "Solana RPC API", "description": "Solana blockchain", "category": "Blockchain", "auth": "None", "https": True, "cors": "yes", "link": "https://docs.solana.com/api", "pricing": "free", "keywords": ["solana", "blockchain"]},
356
+ {"name": "Helius API", "description": "Solana developer tools", "category": "Blockchain", "auth": "apiKey", "https": True, "cors": "yes", "link": "https://docs.helius.dev/", "pricing": "freemium", "keywords": ["solana", "helius"]},
357
+ {"name": "Shyft API", "description": "Solana data", "category": "Blockchain", "auth": "apiKey", "https": True, "cors": "yes", "link": "https://docs.shyft.to/", "pricing": "freemium", "keywords": ["solana", "shyft"]},
358
+ {"name": "Chainlink API", "description": "Oracle network", "category": "Blockchain", "auth": "None", "https": True, "cors": "yes", "link": "https://docs.chain.link/", "pricing": "free", "keywords": ["chainlink", "oracle"]},
359
+ {"name": "Covalent API", "description": "Blockchain data", "category": "Blockchain", "auth": "apiKey", "https": True, "cors": "yes", "link": "https://www.covalenthq.com/docs/api/", "pricing": "freemium", "keywords": ["covalent", "blockchain", "data"]},
360
+ {"name": "Dune Analytics API", "description": "Blockchain analytics", "category": "Blockchain", "auth": "apiKey", "https": True, "cors": "unknown", "link": "https://dune.com/docs/api/", "pricing": "freemium", "keywords": ["dune", "analytics", "blockchain"]},
361
+ {"name": "Nansen API", "description": "Blockchain analytics", "category": "Blockchain", "auth": "apiKey", "https": True, "cors": "unknown", "link": "https://docs.nansen.ai/", "pricing": "paid", "keywords": ["nansen", "analytics", "blockchain"]},
362
+ {"name": "WalletConnect API", "description": "Wallet connection", "category": "Blockchain", "auth": "apiKey", "https": True, "cors": "yes", "link": "https://docs.walletconnect.com/", "pricing": "free", "keywords": ["walletconnect", "web3", "wallets"]},
363
+
364
+ # =====================
365
+ # IOT & SMART HOME
366
+ # =====================
367
+ {"name": "Philips Hue API", "description": "Smart lighting control", "category": "IoT", "auth": "OAuth", "https": True, "cors": "unknown", "link": "https://developers.meethue.com/", "pricing": "free", "keywords": ["hue", "lighting", "smart-home"]},
368
+ {"name": "LIFX API", "description": "Smart light bulbs", "category": "IoT", "auth": "apiKey", "https": True, "cors": "unknown", "link": "https://api.developer.lifx.com/", "pricing": "free", "keywords": ["lifx", "lighting", "smart-home"]},
369
+ {"name": "Nest API", "description": "Google Nest devices", "category": "IoT", "auth": "OAuth", "https": True, "cors": "unknown", "link": "https://developers.google.com/nest", "pricing": "free", "keywords": ["nest", "google", "smart-home"]},
370
+ {"name": "SmartThings API", "description": "Samsung smart home", "category": "IoT", "auth": "OAuth", "https": True, "cors": "unknown", "link": "https://developer-preview.smartthings.com/docs/api-ref/st-api/", "pricing": "free", "keywords": ["smartthings", "samsung", "smart-home"]},
371
+ {"name": "Home Assistant API", "description": "Open source home automation", "category": "IoT", "auth": "apiKey", "https": True, "cors": "yes", "link": "https://developers.home-assistant.io/docs/api/rest/", "pricing": "free", "keywords": ["homeassistant", "automation", "smart-home"]},
372
+ {"name": "Tuya IoT API", "description": "IoT device platform", "category": "IoT", "auth": "apiKey", "https": True, "cors": "unknown", "link": "https://developer.tuya.com/en/docs/cloud/", "pricing": "freemium", "keywords": ["tuya", "iot", "devices"]},
373
+ {"name": "IFTTT Webhooks", "description": "IoT automation triggers", "category": "IoT", "auth": "apiKey", "https": True, "cors": "yes", "link": "https://ifttt.com/maker_webhooks", "pricing": "freemium", "keywords": ["ifttt", "webhooks", "automation"]},
374
+ {"name": "Particle API", "description": "IoT device cloud", "category": "IoT", "auth": "apiKey", "https": True, "cors": "yes", "link": "https://docs.particle.io/reference/cloud-apis/api/", "pricing": "freemium", "keywords": ["particle", "iot", "hardware"]},
375
+ {"name": "Blynk API", "description": "IoT platform", "category": "IoT", "auth": "apiKey", "https": True, "cors": "yes", "link": "https://blynk.io/en/developers", "pricing": "freemium", "keywords": ["blynk", "iot", "arduino"]},
376
+ {"name": "ThingSpeak API", "description": "IoT analytics platform", "category": "IoT", "auth": "apiKey", "https": True, "cors": "yes", "link": "https://www.mathworks.com/help/thingspeak/rest-api.html", "pricing": "freemium", "keywords": ["thingspeak", "iot", "analytics"]},
377
+ {"name": "Adafruit IO API", "description": "IoT cloud platform", "category": "IoT", "auth": "apiKey", "https": True, "cors": "yes", "link": "https://io.adafruit.com/api/docs/", "pricing": "freemium", "keywords": ["adafruit", "iot"]},
378
+ {"name": "AWS IoT API", "description": "AWS IoT services", "category": "IoT", "auth": "apiKey", "https": True, "cors": "unknown", "link": "https://docs.aws.amazon.com/iot/latest/apireference/", "pricing": "paid", "keywords": ["aws", "iot", "cloud"]},
379
+ {"name": "Azure IoT Hub API", "description": "Microsoft IoT platform", "category": "IoT", "auth": "apiKey", "https": True, "cors": "unknown", "link": "https://docs.microsoft.com/en-us/rest/api/iothub/", "pricing": "paid", "keywords": ["azure", "iot", "microsoft"]},
380
+ {"name": "Google Cloud IoT API", "description": "Google IoT services", "category": "IoT", "auth": "apiKey", "https": True, "cors": "unknown", "link": "https://cloud.google.com/iot/docs/reference/rest", "pricing": "paid", "keywords": ["gcp", "iot", "google"]},
381
+
382
+ # =====================
383
+ # PDF & DOCUMENT
384
+ # =====================
385
+ {"name": "PDFShift API", "description": "HTML to PDF conversion", "category": "Documents", "auth": "apiKey", "https": True, "cors": "yes", "link": "https://pdfshift.io/documentation", "pricing": "freemium", "keywords": ["pdf", "html", "conversion"]},
386
+ {"name": "HTML2PDF API", "description": "HTML to PDF", "category": "Documents", "auth": "apiKey", "https": True, "cors": "yes", "link": "https://html2pdf.app/", "pricing": "freemium", "keywords": ["pdf", "html"]},
387
+ {"name": "Api2Pdf", "description": "PDF generation", "category": "Documents", "auth": "apiKey", "https": True, "cors": "yes", "link": "https://www.api2pdf.com/documentation/", "pricing": "freemium", "keywords": ["pdf", "generation"]},
388
+ {"name": "PDFMonkey API", "description": "PDF template generation", "category": "Documents", "auth": "apiKey", "https": True, "cors": "unknown", "link": "https://www.pdfmonkey.io/docs/", "pricing": "freemium", "keywords": ["pdf", "templates"]},
389
+ {"name": "Docparser API", "description": "PDF data extraction", "category": "Documents", "auth": "apiKey", "https": True, "cors": "unknown", "link": "https://dev.docparser.com/", "pricing": "paid", "keywords": ["pdf", "parsing", "extraction"]},
390
+ {"name": "DocSpring API", "description": "PDF form filling", "category": "Documents", "auth": "apiKey", "https": True, "cors": "yes", "link": "https://docspring.com/docs/", "pricing": "freemium", "keywords": ["pdf", "forms"]},
391
+ {"name": "Anvil API", "description": "Paperwork automation", "category": "Documents", "auth": "apiKey", "https": True, "cors": "yes", "link": "https://www.useanvil.com/docs/api/", "pricing": "freemium", "keywords": ["pdf", "forms", "esignature"]},
392
+ {"name": "HelloSign API", "description": "E-signatures", "category": "Documents", "auth": "apiKey", "https": True, "cors": "unknown", "link": "https://developers.hellosign.com/", "pricing": "paid", "keywords": ["esignature", "hellosign"]},
393
+ {"name": "SignRequest API", "description": "Electronic signatures", "category": "Documents", "auth": "apiKey", "https": True, "cors": "unknown", "link": "https://signrequest.com/api/v1/docs/", "pricing": "freemium", "keywords": ["esignature", "signrequest"]},
394
+ {"name": "Pandadoc API", "description": "Document automation", "category": "Documents", "auth": "apiKey", "https": True, "cors": "unknown", "link": "https://developers.pandadoc.com/", "pricing": "paid", "keywords": ["documents", "pandadoc"]},
395
+ {"name": "GetAccept API", "description": "Sales documents", "category": "Documents", "auth": "apiKey", "https": True, "cors": "unknown", "link": "https://developers.getaccept.com/", "pricing": "paid", "keywords": ["documents", "sales"]},
396
+ {"name": "Textract API", "description": "AWS document analysis", "category": "Documents", "auth": "apiKey", "https": True, "cors": "unknown", "link": "https://docs.aws.amazon.com/textract/", "pricing": "paid", "keywords": ["ocr", "aws", "extraction"]},
397
+ {"name": "Google Document AI", "description": "Document processing", "category": "Documents", "auth": "apiKey", "https": True, "cors": "unknown", "link": "https://cloud.google.com/document-ai/docs", "pricing": "paid", "keywords": ["ocr", "google", "documents"]},
398
+ {"name": "Azure Form Recognizer", "description": "Document extraction", "category": "Documents", "auth": "apiKey", "https": True, "cors": "unknown", "link": "https://docs.microsoft.com/en-us/azure/applied-ai-services/form-recognizer/", "pricing": "paid", "keywords": ["ocr", "azure", "forms"]},
399
+
400
+ # =====================
401
+ # SMS & VOICE
402
+ # =====================
403
+ {"name": "Vonage API", "description": "Communications platform", "category": "Communication", "auth": "apiKey", "https": True, "cors": "unknown", "link": "https://developer.vonage.com/", "pricing": "paid", "keywords": ["sms", "voice", "vonage"]},
404
+ {"name": "Plivo API", "description": "Cloud communications", "category": "Communication", "auth": "apiKey", "https": True, "cors": "unknown", "link": "https://www.plivo.com/docs/", "pricing": "paid", "keywords": ["sms", "voice", "plivo"]},
405
+ {"name": "MessageBird API", "description": "Omnichannel messaging", "category": "Communication", "auth": "apiKey", "https": True, "cors": "unknown", "link": "https://developers.messagebird.com/", "pricing": "paid", "keywords": ["sms", "messagebird"]},
406
+ {"name": "Sinch API", "description": "Communications cloud", "category": "Communication", "auth": "apiKey", "https": True, "cors": "unknown", "link": "https://developers.sinch.com/", "pricing": "paid", "keywords": ["sms", "voice", "sinch"]},
407
+ {"name": "Bandwidth API", "description": "Communications platform", "category": "Communication", "auth": "apiKey", "https": True, "cors": "unknown", "link": "https://dev.bandwidth.com/", "pricing": "paid", "keywords": ["sms", "voice", "bandwidth"]},
408
+ {"name": "46elks API", "description": "SMS and voice", "category": "Communication", "auth": "apiKey", "https": True, "cors": "yes", "link": "https://46elks.com/docs", "pricing": "paid", "keywords": ["sms", "voice", "46elks", "sweden"]},
409
+ {"name": "Clickatell API", "description": "SMS gateway", "category": "Communication", "auth": "apiKey", "https": True, "cors": "unknown", "link": "https://www.clickatell.com/developers/", "pricing": "paid", "keywords": ["sms", "clickatell"]},
410
+ {"name": "Infobip API", "description": "Omnichannel platform", "category": "Communication", "auth": "apiKey", "https": True, "cors": "unknown", "link": "https://www.infobip.com/docs/api", "pricing": "paid", "keywords": ["sms", "infobip"]},
411
+ {"name": "Textmagic API", "description": "Business SMS", "category": "Communication", "auth": "apiKey", "https": True, "cors": "unknown", "link": "https://www.textmagic.com/docs/api/", "pricing": "paid", "keywords": ["sms", "textmagic"]},
412
+ {"name": "ClickSend API", "description": "SMS, voice, email", "category": "Communication", "auth": "apiKey", "https": True, "cors": "yes", "link": "https://developers.clicksend.com/", "pricing": "paid", "keywords": ["sms", "clicksend"]},
413
+ {"name": "Telnyx API", "description": "Communications platform", "category": "Communication", "auth": "apiKey", "https": True, "cors": "unknown", "link": "https://developers.telnyx.com/", "pricing": "paid", "keywords": ["sms", "voice", "telnyx"]},
414
+ {"name": "Africa's Talking API", "description": "African communications", "category": "Communication", "auth": "apiKey", "https": True, "cors": "unknown", "link": "https://africastalking.com/docs", "pricing": "paid", "keywords": ["sms", "africa", "voice"]},
415
+
416
+ # =====================
417
+ # TESTING & MOCKING
418
+ # =====================
419
+ {"name": "JSONPlaceholder", "description": "Fake REST API for testing", "category": "Development", "auth": "None", "https": True, "cors": "yes", "link": "https://jsonplaceholder.typicode.com/", "pricing": "free", "keywords": ["testing", "mock", "json"]},
420
+ {"name": "ReqRes API", "description": "Test REST responses", "category": "Development", "auth": "None", "https": True, "cors": "yes", "link": "https://reqres.in/", "pricing": "free", "keywords": ["testing", "mock", "rest"]},
421
+ {"name": "HTTPBin", "description": "HTTP request testing", "category": "Development", "auth": "None", "https": True, "cors": "yes", "link": "https://httpbin.org/", "pricing": "free", "keywords": ["testing", "http", "debugging"]},
422
+ {"name": "Mockable API", "description": "API mocking", "category": "Development", "auth": "apiKey", "https": True, "cors": "yes", "link": "https://www.mockable.io/", "pricing": "freemium", "keywords": ["mock", "testing"]},
423
+ {"name": "Beeceptor", "description": "API mocking and inspection", "category": "Development", "auth": "None", "https": True, "cors": "yes", "link": "https://beeceptor.com/", "pricing": "freemium", "keywords": ["mock", "testing", "inspection"]},
424
+ {"name": "Mocky.io", "description": "Mock HTTP responses", "category": "Development", "auth": "None", "https": True, "cors": "yes", "link": "https://designer.mocky.io/", "pricing": "free", "keywords": ["mock", "http"]},
425
+ {"name": "WireMock Cloud", "description": "API simulation", "category": "Development", "auth": "apiKey", "https": True, "cors": "yes", "link": "https://www.wiremock.io/", "pricing": "freemium", "keywords": ["mock", "wiremock", "simulation"]},
426
+ {"name": "Stoplight Prism", "description": "API mocking server", "category": "Development", "auth": "None", "https": True, "cors": "yes", "link": "https://stoplight.io/open-source/prism", "pricing": "free", "keywords": ["mock", "prism", "openapi"]},
427
+ {"name": "Postman Mock Server", "description": "API mocking in Postman", "category": "Development", "auth": "apiKey", "https": True, "cors": "yes", "link": "https://learning.postman.com/docs/designing-and-developing-your-api/mocking-data/setting-up-mock/", "pricing": "freemium", "keywords": ["mock", "postman"]},
428
+ {"name": "Faker API", "description": "Fake data generator", "category": "Development", "auth": "None", "https": True, "cors": "yes", "link": "https://fakerapi.it/en", "pricing": "free", "keywords": ["faker", "data", "testing"]},
429
+ {"name": "Random Data API", "description": "Random data generator", "category": "Development", "auth": "None", "https": True, "cors": "yes", "link": "https://random-data-api.com/documentation", "pricing": "free", "keywords": ["random", "data", "testing"]},
430
+
431
+ # =====================
432
+ # More APIs to reach 5000+
433
+ # =====================
434
+ {"name": "Football Highlights API", "description": "Football match highlights", "category": "Sports", "auth": "apiKey", "https": True, "cors": "yes", "link": "https://www.scorebat.com/video-api/", "pricing": "freemium", "keywords": ["football", "highlights", "video"]},
435
+ {"name": "Odds API", "description": "Sports betting odds", "category": "Sports", "auth": "apiKey", "https": True, "cors": "yes", "link": "https://the-odds-api.com/", "pricing": "freemium", "keywords": ["betting", "odds", "sports"]},
436
+ {"name": "Opendatasoft API", "description": "Open data platform", "category": "Open Data", "auth": "None", "https": True, "cors": "yes", "link": "https://help.opendatasoft.com/apis/ods-search-v2/", "pricing": "free", "keywords": ["opendata", "datasets"]},
437
+ {"name": "Data.world API", "description": "Data collaboration", "category": "Open Data", "auth": "apiKey", "https": True, "cors": "yes", "link": "https://apidocs.data.world/", "pricing": "freemium", "keywords": ["data", "datasets"]},
438
+ {"name": "Kaggle API", "description": "Data science platform", "category": "Open Data", "auth": "apiKey", "https": True, "cors": "unknown", "link": "https://www.kaggle.com/docs/api", "pricing": "free", "keywords": ["kaggle", "datasets", "ml"]},
439
+ {"name": "Quandl API", "description": "Financial data", "category": "Finance", "auth": "apiKey", "https": True, "cors": "yes", "link": "https://docs.quandl.com/", "pricing": "freemium", "keywords": ["quandl", "finance", "data"]},
440
+ {"name": "IEX Cloud API", "description": "Stock market data", "category": "Finance", "auth": "apiKey", "https": True, "cors": "yes", "link": "https://iexcloud.io/docs/api/", "pricing": "freemium", "keywords": ["stocks", "iex", "market"]},
441
+ {"name": "Twelve Data API", "description": "Financial market data", "category": "Finance", "auth": "apiKey", "https": True, "cors": "yes", "link": "https://twelvedata.com/docs", "pricing": "freemium", "keywords": ["stocks", "crypto", "market"]},
442
+ {"name": "Intrinio API", "description": "Financial data feeds", "category": "Finance", "auth": "apiKey", "https": True, "cors": "unknown", "link": "https://docs.intrinio.com/", "pricing": "freemium", "keywords": ["finance", "intrinio", "data"]},
443
+ {"name": "Tiingo API", "description": "Stock and crypto data", "category": "Finance", "auth": "apiKey", "https": True, "cors": "yes", "link": "https://api.tiingo.com/documentation/general/overview", "pricing": "freemium", "keywords": ["stocks", "tiingo"]},
444
+ {"name": "Yahoo Finance API", "description": "Financial data", "category": "Finance", "auth": "apiKey", "https": True, "cors": "unknown", "link": "https://www.yahoofinanceapi.com/", "pricing": "freemium", "keywords": ["yahoo", "finance", "stocks"]},
445
+ {"name": "Messari API", "description": "Crypto research data", "category": "Cryptocurrency", "auth": "apiKey", "https": True, "cors": "yes", "link": "https://messari.io/api", "pricing": "freemium", "keywords": ["crypto", "messari", "research"]},
446
+ {"name": "Nomics API", "description": "Crypto market data", "category": "Cryptocurrency", "auth": "apiKey", "https": True, "cors": "yes", "link": "https://nomics.com/docs/", "pricing": "freemium", "keywords": ["crypto", "nomics"]},
447
+ {"name": "CryptoCompare API", "description": "Crypto data", "category": "Cryptocurrency", "auth": "apiKey", "https": True, "cors": "yes", "link": "https://min-api.cryptocompare.com/documentation", "pricing": "freemium", "keywords": ["crypto", "cryptocompare"]},
448
+ {"name": "LunarCrush API", "description": "Crypto social intelligence", "category": "Cryptocurrency", "auth": "apiKey", "https": True, "cors": "unknown", "link": "https://lunarcrush.com/developers/docs", "pricing": "freemium", "keywords": ["crypto", "social", "lunarcrush"]},
449
+ {"name": "Glassnode API", "description": "On-chain metrics", "category": "Cryptocurrency", "auth": "apiKey", "https": True, "cors": "unknown", "link": "https://docs.glassnode.com/", "pricing": "paid", "keywords": ["crypto", "onchain", "glassnode"]},
450
+ {"name": "Santiment API", "description": "Crypto analytics", "category": "Cryptocurrency", "auth": "apiKey", "https": True, "cors": "unknown", "link": "https://santiment.net/sanapi/", "pricing": "freemium", "keywords": ["crypto", "santiment", "analytics"]},
451
+ ]
452
+
453
+ def main():
454
+ registry_path = Path.home() / "Projects" / "apiclaw" / "src" / "registry" / "apis.json"
455
+
456
+ print("Loading current registry...")
457
+ with open(registry_path, 'r') as f:
458
+ data = json.load(f)
459
+
460
+ current_apis = data.get('apis', [])
461
+ print(f"Current count: {len(current_apis)}")
462
+
463
+ # Create seen sets
464
+ seen_links = {api.get('link', '').lower().rstrip('/') for api in current_apis if api.get('link')}
465
+ seen_names = {api.get('name', '').lower() for api in current_apis if api.get('name')}
466
+
467
+ added = 0
468
+ for api in MORE_APIS:
469
+ link = api.get('link', '').lower().rstrip('/')
470
+ name = api.get('name', '').lower()
471
+
472
+ if link and link in seen_links:
473
+ continue
474
+ if name and name in seen_names:
475
+ continue
476
+
477
+ # Generate ID
478
+ api['id'] = generate_id(api.get('name', 'unknown'))
479
+
480
+ current_apis.append(api)
481
+ if link:
482
+ seen_links.add(link)
483
+ if name:
484
+ seen_names.add(name)
485
+ added += 1
486
+
487
+ print(f"Added {added} new APIs")
488
+ print(f"Total: {len(current_apis)}")
489
+
490
+ # Update data
491
+ data['apis'] = current_apis
492
+ data['count'] = len(current_apis)
493
+ data['lastUpdated'] = datetime.now().strftime("%Y-%m-%d")
494
+
495
+ # Save
496
+ with open(registry_path, 'w') as f:
497
+ json.dump(data, f, indent=2)
498
+
499
+ print(f"\n✅ Registry updated: {len(current_apis)} APIs")
500
+
501
+ if __name__ == "__main__":
502
+ main()