@nordsym/apiclaw 1.1.2 → 1.1.4

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 (65) hide show
  1. package/EARN-CREDITS-SPEC.md +197 -0
  2. package/README.md +11 -7
  3. package/STATUS.md +16 -15
  4. package/VISION.md +123 -0
  5. package/dist/credentials.d.ts.map +1 -1
  6. package/dist/credentials.js +11 -0
  7. package/dist/credentials.js.map +1 -1
  8. package/dist/execute.d.ts.map +1 -1
  9. package/dist/execute.js +75 -0
  10. package/dist/execute.js.map +1 -1
  11. package/dist/index.js +1 -1
  12. package/dist/proxy.d.ts.map +1 -1
  13. package/dist/proxy.js +1 -1
  14. package/dist/proxy.js.map +1 -1
  15. package/dist/registry/apis.json +93516 -7139
  16. package/dist/registry/apis_expanded.json +3123 -3
  17. package/landing/public/book/index.html +339 -0
  18. package/landing/src/app/docs/page.tsx +142 -115
  19. package/landing/src/app/earn/page.tsx +305 -0
  20. package/landing/src/app/page.tsx +16 -11
  21. package/landing/src/lib/apis.json +1 -116054
  22. package/landing/src/lib/stats.json +5 -5
  23. package/package.json +4 -1
  24. package/scripts/add-public-apis.py +625 -0
  25. package/scripts/apisguru-data.json +158837 -0
  26. package/scripts/bonus-batch.py +250 -0
  27. package/scripts/bulk-add-apisguru.js +122 -0
  28. package/scripts/expand-2026-batch.py +335 -0
  29. package/scripts/expand-from-github.py +460 -0
  30. package/scripts/expand-n4ze3m.py +198 -0
  31. package/scripts/expand-niche-batch.py +269 -0
  32. package/scripts/expand-nordic-niche.py +189 -0
  33. package/scripts/expand-tonnyL.py +343 -0
  34. package/scripts/final-batch.py +315 -0
  35. package/scripts/final-push-06.py +242 -0
  36. package/scripts/mega-expansion.py +495 -0
  37. package/scripts/mega-final-06.py +512 -0
  38. package/scripts/more-apis.py +353 -0
  39. package/scripts/night-batch-05.py +546 -0
  40. package/scripts/night-batch-05b.py +427 -0
  41. package/scripts/night-expansion-02-23-batch2.py +284 -0
  42. package/scripts/night-expansion-02-23.py +383 -0
  43. package/scripts/night-expansion-03-batch2.py +336 -0
  44. package/scripts/night-expansion-03-batch3.py +392 -0
  45. package/scripts/night-expansion-03.py +573 -0
  46. package/scripts/night-expansion-04-23.py +461 -0
  47. package/scripts/night-expansion-05-23-batch2.py +431 -0
  48. package/scripts/night-expansion-05-23-batch3.py +366 -0
  49. package/scripts/night-expansion-05-23-final.py +349 -0
  50. package/scripts/night-expansion-05-23.py +540 -0
  51. package/scripts/night-expansion-06-23-batch2.py +261 -0
  52. package/scripts/night-expansion-06-23-batch3.py +213 -0
  53. package/scripts/night-expansion-06-23-batch4.py +261 -0
  54. package/scripts/night-expansion-06-23.py +309 -0
  55. package/scripts/night-expansion-06.py +325 -0
  56. package/scripts/night-expansion.py +441 -0
  57. package/scripts/night-final-batch-04-23.py +547 -0
  58. package/scripts/night-mega-batch-04-23.py +874 -0
  59. package/scripts/super-final-06.py +341 -0
  60. package/src/credentials.ts +12 -0
  61. package/src/execute.ts +93 -0
  62. package/src/index.ts +1 -1
  63. package/src/proxy.ts +1 -1
  64. package/src/registry/apis.json +93516 -7139
  65. package/src/registry/apis_expanded.json +3123 -3
@@ -0,0 +1,261 @@
1
+ #!/usr/bin/env python3
2
+ """
3
+ APIClaw Night Expansion - Batch 4 - Industry-Specific APIs
4
+ February 23, 2026 06:00
5
+ """
6
+
7
+ import json
8
+ import os
9
+ from datetime import datetime
10
+
11
+ REGISTRY_PATH = os.path.expanduser("~/Projects/apiclaw/src/registry/apis.json")
12
+
13
+ def load_registry():
14
+ with open(REGISTRY_PATH, 'r') as f:
15
+ return json.load(f)
16
+
17
+ def save_registry(data):
18
+ data['lastUpdated'] = datetime.utcnow().isoformat()
19
+ data['count'] = len(data['apis'])
20
+ with open(REGISTRY_PATH, 'w') as f:
21
+ json.dump(data, f, indent=2)
22
+
23
+ def generate_id(name):
24
+ return name.lower().replace(' ', '-').replace('.', '-').replace('/', '-').replace('(', '').replace(')', '').replace("'", '')[:50]
25
+
26
+ def add_apis(registry, new_apis):
27
+ existing_ids = {api['id'] for api in registry['apis']}
28
+ added = 0
29
+ for api in new_apis:
30
+ api_id = generate_id(api['name'])
31
+ if api_id not in existing_ids:
32
+ api['id'] = api_id
33
+ registry['apis'].append(api)
34
+ existing_ids.add(api_id)
35
+ added += 1
36
+ return added
37
+
38
+ # =========================================
39
+ # INDUSTRY-SPECIFIC APIs
40
+ # =========================================
41
+
42
+ REAL_ESTATE = [
43
+ {"name": "Zillow API", "description": "Real estate and home data", "category": "Real Estate", "auth": "apiKey", "https": True, "cors": "yes", "link": "https://www.zillow.com/howto/api/APIOverview.htm", "pricing": "free"},
44
+ {"name": "Redfin API", "description": "Real estate market data", "category": "Real Estate", "auth": "apiKey", "https": True, "cors": "yes", "link": "https://www.redfin.com/about/developers", "pricing": "paid"},
45
+ {"name": "Realtor.com API", "description": "Real estate listings data", "category": "Real Estate", "auth": "apiKey", "https": True, "cors": "yes", "link": "https://www.realtor.com/", "pricing": "paid"},
46
+ {"name": "Attom Data API", "description": "Property data and analytics", "category": "Real Estate", "auth": "apiKey", "https": True, "cors": "yes", "link": "https://www.attomdata.com/solutions/property-api/", "pricing": "paid"},
47
+ {"name": "CoreLogic API", "description": "Property and mortgage data", "category": "Real Estate", "auth": "apiKey", "https": True, "cors": "yes", "link": "https://www.corelogic.com/", "pricing": "paid"},
48
+ {"name": "Estated API", "description": "Property data platform", "category": "Real Estate", "auth": "apiKey", "https": True, "cors": "yes", "link": "https://estated.com/developers", "pricing": "freemium"},
49
+ {"name": "Rentometer API", "description": "Rent comparison data", "category": "Real Estate", "auth": "apiKey", "https": True, "cors": "yes", "link": "https://www.rentometer.com/api", "pricing": "paid"},
50
+ {"name": "Walk Score API", "description": "Walkability and transit scores", "category": "Real Estate", "auth": "apiKey", "https": True, "cors": "yes", "link": "https://www.walkscore.com/professional/api.php", "pricing": "freemium"},
51
+ {"name": "Regrid API", "description": "US parcel data API", "category": "Real Estate", "auth": "apiKey", "https": True, "cors": "yes", "link": "https://regrid.com/api", "pricing": "paid"},
52
+ {"name": "Reonomy API", "description": "Commercial real estate data", "category": "Real Estate", "auth": "apiKey", "https": True, "cors": "yes", "link": "https://www.reonomy.com/", "pricing": "paid"},
53
+ {"name": "CoStar API", "description": "Commercial real estate analytics", "category": "Real Estate", "auth": "apiKey", "https": True, "cors": "yes", "link": "https://www.costar.com/", "pricing": "paid"},
54
+ {"name": "Yardi API", "description": "Property management software", "category": "Real Estate", "auth": "apiKey", "https": True, "cors": "yes", "link": "https://www.yardi.com/", "pricing": "paid"},
55
+ {"name": "AppFolio API", "description": "Property management platform", "category": "Real Estate", "auth": "apiKey", "https": True, "cors": "yes", "link": "https://www.appfolio.com/", "pricing": "paid"},
56
+ {"name": "Buildium API", "description": "Property management software", "category": "Real Estate", "auth": "apiKey", "https": True, "cors": "yes", "link": "https://www.buildium.com/", "pricing": "paid"},
57
+ {"name": "RentRedi API", "description": "Landlord software platform", "category": "Real Estate", "auth": "apiKey", "https": True, "cors": "yes", "link": "https://rentredi.com/", "pricing": "freemium"},
58
+ {"name": "Rightmove API", "description": "UK property portal", "category": "Real Estate", "auth": "apiKey", "https": True, "cors": "yes", "link": "https://www.rightmove.co.uk/", "pricing": "paid"},
59
+ {"name": "Zoopla API", "description": "UK property data", "category": "Real Estate", "auth": "apiKey", "https": True, "cors": "yes", "link": "https://developer.zoopla.co.uk/", "pricing": "paid"},
60
+ {"name": "Hemnet API", "description": "Swedish property portal", "category": "Real Estate", "auth": "apiKey", "https": True, "cors": "yes", "link": "https://www.hemnet.se/", "pricing": "paid"},
61
+ {"name": "Idealista API", "description": "Spanish property portal", "category": "Real Estate", "auth": "apiKey", "https": True, "cors": "yes", "link": "https://www.idealista.com/", "pricing": "paid"},
62
+ {"name": "Domain API", "description": "Australian property data", "category": "Real Estate", "auth": "apiKey", "https": True, "cors": "yes", "link": "https://developer.domain.com.au/", "pricing": "freemium"},
63
+ ]
64
+
65
+ TRAVEL_HOSPITALITY = [
66
+ {"name": "Amadeus API", "description": "Travel technology solutions", "category": "Travel", "auth": "apiKey", "https": True, "cors": "yes", "link": "https://developers.amadeus.com/", "pricing": "freemium"},
67
+ {"name": "Sabre API", "description": "Travel technology platform", "category": "Travel", "auth": "apiKey", "https": True, "cors": "yes", "link": "https://developer.sabre.com/", "pricing": "paid"},
68
+ {"name": "Travelport API", "description": "Travel commerce platform", "category": "Travel", "auth": "apiKey", "https": True, "cors": "yes", "link": "https://developer.travelport.com/", "pricing": "paid"},
69
+ {"name": "Skyscanner API", "description": "Flight search engine", "category": "Travel", "auth": "apiKey", "https": True, "cors": "yes", "link": "https://developers.skyscanner.net/", "pricing": "freemium"},
70
+ {"name": "Kiwi.com API", "description": "Flight search and booking", "category": "Travel", "auth": "apiKey", "https": True, "cors": "yes", "link": "https://docs.kiwi.com/", "pricing": "freemium"},
71
+ {"name": "Duffel API", "description": "Flight booking API", "category": "Travel", "auth": "apiKey", "https": True, "cors": "yes", "link": "https://duffel.com/docs/api", "pricing": "paid"},
72
+ {"name": "AeroDataBox API", "description": "Aviation data API", "category": "Travel", "auth": "apiKey", "https": True, "cors": "yes", "link": "https://www.aerodatabox.com/", "pricing": "freemium"},
73
+ {"name": "FlightAware API", "description": "Flight tracking data", "category": "Travel", "auth": "apiKey", "https": True, "cors": "yes", "link": "https://flightaware.com/commercial/flightxml/", "pricing": "paid"},
74
+ {"name": "FlightRadar24 API", "description": "Global flight tracking", "category": "Travel", "auth": "apiKey", "https": True, "cors": "yes", "link": "https://www.flightradar24.com/", "pricing": "paid"},
75
+ {"name": "Booking.com API", "description": "Hotel booking platform", "category": "Travel", "auth": "apiKey", "https": True, "cors": "yes", "link": "https://developers.booking.com/", "pricing": "paid"},
76
+ {"name": "Expedia API", "description": "Travel booking platform", "category": "Travel", "auth": "apiKey", "https": True, "cors": "yes", "link": "https://developers.expediagroup.com/", "pricing": "paid"},
77
+ {"name": "Tripadvisor API", "description": "Travel reviews and data", "category": "Travel", "auth": "apiKey", "https": True, "cors": "yes", "link": "https://developer.tripadvisor.com/", "pricing": "freemium"},
78
+ {"name": "Airbnb API", "description": "Vacation rental platform", "category": "Travel", "auth": "OAuth", "https": True, "cors": "yes", "link": "https://www.airbnb.com/partner", "pricing": "paid"},
79
+ {"name": "Vrbo API", "description": "Vacation rental marketplace", "category": "Travel", "auth": "apiKey", "https": True, "cors": "yes", "link": "https://www.vrbo.com/platform/documentation", "pricing": "paid"},
80
+ {"name": "Hostelworld API", "description": "Hostel booking platform", "category": "Travel", "auth": "apiKey", "https": True, "cors": "yes", "link": "https://www.hostelworld.com/", "pricing": "paid"},
81
+ {"name": "Seatgeek API", "description": "Event tickets marketplace", "category": "Travel", "auth": "apiKey", "https": True, "cors": "yes", "link": "https://platform.seatgeek.com/", "pricing": "free"},
82
+ {"name": "Ticketmaster API", "description": "Event tickets platform", "category": "Travel", "auth": "apiKey", "https": True, "cors": "yes", "link": "https://developer.ticketmaster.com/", "pricing": "freemium"},
83
+ {"name": "Eventbrite API", "description": "Event management platform", "category": "Travel", "auth": "OAuth", "https": True, "cors": "yes", "link": "https://www.eventbrite.com/platform/api/", "pricing": "freemium"},
84
+ {"name": "Viator API", "description": "Tours and activities", "category": "Travel", "auth": "apiKey", "https": True, "cors": "yes", "link": "https://www.viatorcom/developer", "pricing": "paid"},
85
+ {"name": "GetYourGuide API", "description": "Tours and experiences", "category": "Travel", "auth": "apiKey", "https": True, "cors": "yes", "link": "https://partner.getyourguide.com/", "pricing": "paid"},
86
+ ]
87
+
88
+ SPORTS_FITNESS = [
89
+ {"name": "Sportradar API", "description": "Sports data and content", "category": "Sports", "auth": "apiKey", "https": True, "cors": "yes", "link": "https://sportradar.com/", "pricing": "paid"},
90
+ {"name": "ESPN API", "description": "Sports news and data", "category": "Sports", "auth": "apiKey", "https": True, "cors": "yes", "link": "https://www.espn.com/apis/devcenter/", "pricing": "free"},
91
+ {"name": "Football-Data API", "description": "Football/soccer data", "category": "Sports", "auth": "apiKey", "https": True, "cors": "yes", "link": "https://www.football-data.org/", "pricing": "freemium"},
92
+ {"name": "API-Football", "description": "Football data and statistics", "category": "Sports", "auth": "apiKey", "https": True, "cors": "yes", "link": "https://www.api-football.com/", "pricing": "freemium"},
93
+ {"name": "TheSportsDB API", "description": "Sports database", "category": "Sports", "auth": "apiKey", "https": True, "cors": "yes", "link": "https://www.thesportsdb.com/api.php", "pricing": "freemium"},
94
+ {"name": "Odds API", "description": "Sports betting odds", "category": "Sports", "auth": "apiKey", "https": True, "cors": "yes", "link": "https://the-odds-api.com/", "pricing": "freemium"},
95
+ {"name": "Strava API", "description": "Athletes and activities", "category": "Sports", "auth": "OAuth", "https": True, "cors": "yes", "link": "https://developers.strava.com/", "pricing": "free"},
96
+ {"name": "Fitbit API", "description": "Fitness and health data", "category": "Sports", "auth": "OAuth", "https": True, "cors": "yes", "link": "https://dev.fitbit.com/", "pricing": "free"},
97
+ {"name": "Garmin Connect API", "description": "Fitness device data", "category": "Sports", "auth": "OAuth", "https": True, "cors": "yes", "link": "https://developer.garmin.com/", "pricing": "free"},
98
+ {"name": "Polar API", "description": "Sports and fitness data", "category": "Sports", "auth": "OAuth", "https": True, "cors": "yes", "link": "https://www.polar.com/accesslink-api/", "pricing": "free"},
99
+ {"name": "Whoop API", "description": "Performance and recovery data", "category": "Sports", "auth": "OAuth", "https": True, "cors": "yes", "link": "https://developer.whoop.com/", "pricing": "free"},
100
+ {"name": "Oura Ring API", "description": "Sleep and readiness data", "category": "Sports", "auth": "OAuth", "https": True, "cors": "yes", "link": "https://cloud.ouraring.com/docs/", "pricing": "free"},
101
+ {"name": "Apple HealthKit API", "description": "Health and fitness data", "category": "Sports", "auth": "OAuth", "https": True, "cors": "yes", "link": "https://developer.apple.com/documentation/healthkit", "pricing": "free"},
102
+ {"name": "Google Fit API", "description": "Health and fitness platform", "category": "Sports", "auth": "OAuth", "https": True, "cors": "yes", "link": "https://developers.google.com/fit", "pricing": "free"},
103
+ {"name": "Samsung Health API", "description": "Health data platform", "category": "Sports", "auth": "OAuth", "https": True, "cors": "yes", "link": "https://developer.samsung.com/health", "pricing": "free"},
104
+ {"name": "MyFitnessPal API", "description": "Nutrition and fitness tracking", "category": "Sports", "auth": "OAuth", "https": True, "cors": "yes", "link": "https://www.myfitnesspal.com/api", "pricing": "paid"},
105
+ {"name": "Nutritionix API", "description": "Nutrition data API", "category": "Sports", "auth": "apiKey", "https": True, "cors": "yes", "link": "https://developer.nutritionix.com/", "pricing": "freemium"},
106
+ {"name": "USDA FoodData API", "description": "Food and nutrition data", "category": "Sports", "auth": "apiKey", "https": True, "cors": "yes", "link": "https://fdc.nal.usda.gov/api-guide.html", "pricing": "free"},
107
+ {"name": "Edamam API", "description": "Nutrition and recipe data", "category": "Sports", "auth": "apiKey", "https": True, "cors": "yes", "link": "https://developer.edamam.com/", "pricing": "freemium"},
108
+ {"name": "Spoonacular API", "description": "Food and recipe API", "category": "Sports", "auth": "apiKey", "https": True, "cors": "yes", "link": "https://spoonacular.com/food-api", "pricing": "freemium"},
109
+ ]
110
+
111
+ HR_RECRUITING = [
112
+ {"name": "LinkedIn API", "description": "Professional network platform", "category": "HR", "auth": "OAuth", "https": True, "cors": "yes", "link": "https://developer.linkedin.com/", "pricing": "freemium"},
113
+ {"name": "Indeed API", "description": "Job search platform", "category": "HR", "auth": "apiKey", "https": True, "cors": "yes", "link": "https://developer.indeed.com/", "pricing": "freemium"},
114
+ {"name": "Glassdoor API", "description": "Company reviews and salaries", "category": "HR", "auth": "apiKey", "https": True, "cors": "yes", "link": "https://www.glassdoor.com/developer/", "pricing": "paid"},
115
+ {"name": "ZipRecruiter API", "description": "Job posting and search", "category": "HR", "auth": "apiKey", "https": True, "cors": "yes", "link": "https://www.ziprecruiter.com/", "pricing": "paid"},
116
+ {"name": "Monster API", "description": "Job search and recruitment", "category": "HR", "auth": "apiKey", "https": True, "cors": "yes", "link": "https://www.monster.com/", "pricing": "paid"},
117
+ {"name": "CareerBuilder API", "description": "Employment screening and HR", "category": "HR", "auth": "apiKey", "https": True, "cors": "yes", "link": "https://www.careerbuilder.com/", "pricing": "paid"},
118
+ {"name": "Lever API", "description": "Applicant tracking system", "category": "HR", "auth": "apiKey", "https": True, "cors": "yes", "link": "https://hire.lever.co/developer/documentation", "pricing": "paid"},
119
+ {"name": "Greenhouse API", "description": "Recruiting software", "category": "HR", "auth": "apiKey", "https": True, "cors": "yes", "link": "https://developers.greenhouse.io/", "pricing": "paid"},
120
+ {"name": "Workable API", "description": "Recruitment software", "category": "HR", "auth": "apiKey", "https": True, "cors": "yes", "link": "https://workable.readme.io/", "pricing": "paid"},
121
+ {"name": "BambooHR API", "description": "HR software for SMBs", "category": "HR", "auth": "apiKey", "https": True, "cors": "yes", "link": "https://documentation.bamboohr.com/docs", "pricing": "paid"},
122
+ {"name": "Workday API", "description": "Enterprise HR management", "category": "HR", "auth": "OAuth", "https": True, "cors": "yes", "link": "https://developer.workday.com/", "pricing": "paid"},
123
+ {"name": "ADP API", "description": "HR and payroll services", "category": "HR", "auth": "OAuth", "https": True, "cors": "yes", "link": "https://developers.adp.com/", "pricing": "paid"},
124
+ {"name": "Gusto API", "description": "Payroll and HR platform", "category": "HR", "auth": "OAuth", "https": True, "cors": "yes", "link": "https://docs.gusto.com/", "pricing": "paid"},
125
+ {"name": "Rippling API", "description": "HR, IT, and Finance platform", "category": "HR", "auth": "apiKey", "https": True, "cors": "yes", "link": "https://developer.rippling.com/", "pricing": "paid"},
126
+ {"name": "Deel API", "description": "Global payroll and compliance", "category": "HR", "auth": "apiKey", "https": True, "cors": "yes", "link": "https://developer.deel.com/", "pricing": "paid"},
127
+ {"name": "Remote API", "description": "Global employment platform", "category": "HR", "auth": "apiKey", "https": True, "cors": "yes", "link": "https://remote.com/api", "pricing": "paid"},
128
+ {"name": "Oyster API", "description": "Global employment platform", "category": "HR", "auth": "apiKey", "https": True, "cors": "yes", "link": "https://www.oysterhr.com/", "pricing": "paid"},
129
+ {"name": "Lattice API", "description": "People management platform", "category": "HR", "auth": "apiKey", "https": True, "cors": "yes", "link": "https://developers.lattice.com/", "pricing": "paid"},
130
+ {"name": "Culture Amp API", "description": "Employee engagement platform", "category": "HR", "auth": "apiKey", "https": True, "cors": "yes", "link": "https://www.cultureamp.com/", "pricing": "paid"},
131
+ {"name": "15Five API", "description": "Performance management", "category": "HR", "auth": "apiKey", "https": True, "cors": "yes", "link": "https://www.15five.com/", "pricing": "paid"},
132
+ ]
133
+
134
+ EDUCATION = [
135
+ {"name": "Canvas LMS API", "description": "Learning management system", "category": "Education", "auth": "OAuth", "https": True, "cors": "yes", "link": "https://canvas.instructure.com/doc/api/", "pricing": "paid"},
136
+ {"name": "Blackboard API", "description": "Education technology platform", "category": "Education", "auth": "OAuth", "https": True, "cors": "yes", "link": "https://developer.blackboard.com/", "pricing": "paid"},
137
+ {"name": "Moodle API", "description": "Open source LMS", "category": "Education", "auth": "apiKey", "https": True, "cors": "yes", "link": "https://docs.moodle.org/dev/Web_service_API_functions", "pricing": "free"},
138
+ {"name": "Schoology API", "description": "K-12 learning management", "category": "Education", "auth": "OAuth", "https": True, "cors": "yes", "link": "https://developers.schoology.com/", "pricing": "paid"},
139
+ {"name": "Google Classroom API", "description": "Education collaboration platform", "category": "Education", "auth": "OAuth", "https": True, "cors": "yes", "link": "https://developers.google.com/classroom", "pricing": "free"},
140
+ {"name": "Microsoft Teams Education API", "description": "Education collaboration", "category": "Education", "auth": "OAuth", "https": True, "cors": "yes", "link": "https://learn.microsoft.com/en-us/graph/education-concept-overview", "pricing": "paid"},
141
+ {"name": "Clever API", "description": "Education data platform", "category": "Education", "auth": "OAuth", "https": True, "cors": "yes", "link": "https://dev.clever.com/", "pricing": "freemium"},
142
+ {"name": "ClassLink API", "description": "Education identity management", "category": "Education", "auth": "OAuth", "https": True, "cors": "yes", "link": "https://developer.classlink.com/", "pricing": "paid"},
143
+ {"name": "PowerSchool API", "description": "K-12 education technology", "category": "Education", "auth": "OAuth", "https": True, "cors": "yes", "link": "https://developer.powerschool.com/", "pricing": "paid"},
144
+ {"name": "Infinite Campus API", "description": "K-12 student information", "category": "Education", "auth": "apiKey", "https": True, "cors": "yes", "link": "https://www.infinitecampus.com/", "pricing": "paid"},
145
+ {"name": "Coursera API", "description": "Online learning platform", "category": "Education", "auth": "apiKey", "https": True, "cors": "yes", "link": "https://building.coursera.org/app-platform/", "pricing": "paid"},
146
+ {"name": "Udemy API", "description": "Online course marketplace", "category": "Education", "auth": "apiKey", "https": True, "cors": "yes", "link": "https://www.udemy.com/developers/affiliate/", "pricing": "freemium"},
147
+ {"name": "edX API", "description": "Online learning platform", "category": "Education", "auth": "OAuth", "https": True, "cors": "yes", "link": "https://open.edx.org/", "pricing": "freemium"},
148
+ {"name": "Khan Academy API", "description": "Free online education", "category": "Education", "auth": "OAuth", "https": True, "cors": "yes", "link": "https://api.khanacademy.org/", "pricing": "free"},
149
+ {"name": "Duolingo API", "description": "Language learning platform", "category": "Education", "auth": "OAuth", "https": True, "cors": "yes", "link": "https://www.duolingo.com/", "pricing": "freemium"},
150
+ {"name": "Quizlet API", "description": "Study tools platform", "category": "Education", "auth": "OAuth", "https": True, "cors": "yes", "link": "https://quizlet.com/api-dashboard/", "pricing": "freemium"},
151
+ {"name": "Chegg API", "description": "Education services", "category": "Education", "auth": "apiKey", "https": True, "cors": "yes", "link": "https://www.chegg.com/", "pricing": "paid"},
152
+ {"name": "Turnitin API", "description": "Academic integrity", "category": "Education", "auth": "apiKey", "https": True, "cors": "yes", "link": "https://www.turnitin.com/", "pricing": "paid"},
153
+ {"name": "Grammarly API", "description": "Writing assistant", "category": "Education", "auth": "apiKey", "https": True, "cors": "yes", "link": "https://developer.grammarly.com/", "pricing": "paid"},
154
+ {"name": "Notion API for Education", "description": "Workspace for education", "category": "Education", "auth": "OAuth", "https": True, "cors": "yes", "link": "https://developers.notion.com/", "pricing": "freemium"},
155
+ ]
156
+
157
+ INSURANCE = [
158
+ {"name": "Lemonade API", "description": "AI-powered insurance", "category": "Insurance", "auth": "apiKey", "https": True, "cors": "yes", "link": "https://www.lemonade.com/", "pricing": "paid"},
159
+ {"name": "Root Insurance API", "description": "Car insurance platform", "category": "Insurance", "auth": "apiKey", "https": True, "cors": "yes", "link": "https://root.com/", "pricing": "paid"},
160
+ {"name": "Hippo Insurance API", "description": "Home insurance platform", "category": "Insurance", "auth": "apiKey", "https": True, "cors": "yes", "link": "https://www.hippo.com/", "pricing": "paid"},
161
+ {"name": "Next Insurance API", "description": "Small business insurance", "category": "Insurance", "auth": "apiKey", "https": True, "cors": "yes", "link": "https://www.nextinsurance.com/", "pricing": "paid"},
162
+ {"name": "Pie Insurance API", "description": "Workers compensation", "category": "Insurance", "auth": "apiKey", "https": True, "cors": "yes", "link": "https://pieinsurance.com/", "pricing": "paid"},
163
+ {"name": "Bold Penguin API", "description": "Commercial insurance platform", "category": "Insurance", "auth": "apiKey", "https": True, "cors": "yes", "link": "https://www.boldpenguin.com/", "pricing": "paid"},
164
+ {"name": "Coterie Insurance API", "description": "Small business insurance", "category": "Insurance", "auth": "apiKey", "https": True, "cors": "yes", "link": "https://coterieinsurance.com/", "pricing": "paid"},
165
+ {"name": "Clearcover API", "description": "Car insurance platform", "category": "Insurance", "auth": "apiKey", "https": True, "cors": "yes", "link": "https://clearcover.com/", "pricing": "paid"},
166
+ {"name": "Trov API", "description": "On-demand insurance", "category": "Insurance", "auth": "apiKey", "https": True, "cors": "yes", "link": "https://www.trov.com/", "pricing": "paid"},
167
+ {"name": "Ladder Life API", "description": "Life insurance platform", "category": "Insurance", "auth": "apiKey", "https": True, "cors": "yes", "link": "https://www.ladderlife.com/", "pricing": "paid"},
168
+ {"name": "Ethos Life API", "description": "Life insurance platform", "category": "Insurance", "auth": "apiKey", "https": True, "cors": "yes", "link": "https://www.ethoslife.com/", "pricing": "paid"},
169
+ {"name": "Haven Life API", "description": "Life insurance platform", "category": "Insurance", "auth": "apiKey", "https": True, "cors": "yes", "link": "https://havenlife.com/", "pricing": "paid"},
170
+ {"name": "Bestow API", "description": "Life insurance technology", "category": "Insurance", "auth": "apiKey", "https": True, "cors": "yes", "link": "https://www.bestow.com/", "pricing": "paid"},
171
+ {"name": "Policygenius API", "description": "Insurance marketplace", "category": "Insurance", "auth": "apiKey", "https": True, "cors": "yes", "link": "https://www.policygenius.com/", "pricing": "paid"},
172
+ {"name": "The Zebra API", "description": "Insurance comparison", "category": "Insurance", "auth": "apiKey", "https": True, "cors": "yes", "link": "https://www.thezebra.com/", "pricing": "paid"},
173
+ {"name": "Gabi API", "description": "Insurance optimization", "category": "Insurance", "auth": "apiKey", "https": True, "cors": "yes", "link": "https://www.gabi.com/", "pricing": "paid"},
174
+ {"name": "Duck Creek API", "description": "Insurance software", "category": "Insurance", "auth": "apiKey", "https": True, "cors": "yes", "link": "https://www.duckcreek.com/", "pricing": "paid"},
175
+ {"name": "Guidewire API", "description": "Insurance platform", "category": "Insurance", "auth": "apiKey", "https": True, "cors": "yes", "link": "https://developer.guidewire.com/", "pricing": "paid"},
176
+ {"name": "Socotra API", "description": "Insurance core platform", "category": "Insurance", "auth": "apiKey", "https": True, "cors": "yes", "link": "https://www.socotra.com/", "pricing": "paid"},
177
+ {"name": "EIS API", "description": "Insurance core system", "category": "Insurance", "auth": "apiKey", "https": True, "cors": "yes", "link": "https://www.eisgroup.com/", "pricing": "paid"},
178
+ ]
179
+
180
+ AUTOMOTIVE = [
181
+ {"name": "Tesla API", "description": "Tesla vehicle control", "category": "Automotive", "auth": "OAuth", "https": True, "cors": "yes", "link": "https://tesla-api.timdorr.com/", "pricing": "free"},
182
+ {"name": "Smartcar API", "description": "Connected car API", "category": "Automotive", "auth": "OAuth", "https": True, "cors": "yes", "link": "https://smartcar.com/docs/", "pricing": "freemium"},
183
+ {"name": "Carmd API", "description": "Vehicle diagnostics data", "category": "Automotive", "auth": "apiKey", "https": True, "cors": "yes", "link": "https://www.carmd.com/api/", "pricing": "paid"},
184
+ {"name": "NHTSA API", "description": "Vehicle safety data", "category": "Automotive", "auth": "None", "https": True, "cors": "yes", "link": "https://vpic.nhtsa.dot.gov/api/", "pricing": "free"},
185
+ {"name": "Edmunds API", "description": "Automotive data", "category": "Automotive", "auth": "apiKey", "https": True, "cors": "yes", "link": "https://developer.edmunds.com/", "pricing": "freemium"},
186
+ {"name": "Kelley Blue Book API", "description": "Vehicle valuations", "category": "Automotive", "auth": "apiKey", "https": True, "cors": "yes", "link": "https://www.kbb.com/", "pricing": "paid"},
187
+ {"name": "Black Book API", "description": "Vehicle valuations", "category": "Automotive", "auth": "apiKey", "https": True, "cors": "yes", "link": "https://www.blackbook.com/", "pricing": "paid"},
188
+ {"name": "Autocheck API", "description": "Vehicle history reports", "category": "Automotive", "auth": "apiKey", "https": True, "cors": "yes", "link": "https://www.autocheck.com/", "pricing": "paid"},
189
+ {"name": "Carfax API", "description": "Vehicle history data", "category": "Automotive", "auth": "apiKey", "https": True, "cors": "yes", "link": "https://www.carfax.com/", "pricing": "paid"},
190
+ {"name": "VinAudit API", "description": "VIN decoder and history", "category": "Automotive", "auth": "apiKey", "https": True, "cors": "yes", "link": "https://www.vinaudit.com/", "pricing": "freemium"},
191
+ {"name": "CarQuery API", "description": "Vehicle database", "category": "Automotive", "auth": "None", "https": True, "cors": "yes", "link": "https://www.carqueryapi.com/", "pricing": "free"},
192
+ {"name": "Fueleconomy API", "description": "EPA fuel economy data", "category": "Automotive", "auth": "None", "https": True, "cors": "yes", "link": "https://www.fueleconomy.gov/feg/ws/", "pricing": "free"},
193
+ {"name": "Geotab API", "description": "Fleet management platform", "category": "Automotive", "auth": "apiKey", "https": True, "cors": "yes", "link": "https://developers.geotab.com/", "pricing": "paid"},
194
+ {"name": "Samsara API", "description": "Fleet management", "category": "Automotive", "auth": "apiKey", "https": True, "cors": "yes", "link": "https://developers.samsara.com/", "pricing": "paid"},
195
+ {"name": "KeepTruckin API", "description": "Fleet management", "category": "Automotive", "auth": "apiKey", "https": True, "cors": "yes", "link": "https://developers.keeptruckin.com/", "pricing": "paid"},
196
+ {"name": "Verizon Connect API", "description": "Fleet tracking", "category": "Automotive", "auth": "apiKey", "https": True, "cors": "yes", "link": "https://www.verizonconnect.com/", "pricing": "paid"},
197
+ {"name": "Turo API", "description": "Car sharing platform", "category": "Automotive", "auth": "OAuth", "https": True, "cors": "yes", "link": "https://turo.com/", "pricing": "paid"},
198
+ {"name": "Getaround API", "description": "Car sharing platform", "category": "Automotive", "auth": "OAuth", "https": True, "cors": "yes", "link": "https://www.getaround.com/", "pricing": "paid"},
199
+ {"name": "Uber Freight API", "description": "Freight logistics", "category": "Automotive", "auth": "OAuth", "https": True, "cors": "yes", "link": "https://www.uber.com/us/en/freight/api/", "pricing": "paid"},
200
+ {"name": "Convoy API", "description": "Freight platform", "category": "Automotive", "auth": "apiKey", "https": True, "cors": "yes", "link": "https://convoy.com/", "pricing": "paid"},
201
+ ]
202
+
203
+ AGRICULTURE = [
204
+ {"name": "aWhere API", "description": "Agricultural weather data", "category": "Agriculture", "auth": "apiKey", "https": True, "cors": "yes", "link": "https://developer.awhere.com/", "pricing": "freemium"},
205
+ {"name": "Climate Corporation API", "description": "Digital agriculture platform", "category": "Agriculture", "auth": "apiKey", "https": True, "cors": "yes", "link": "https://climate.com/", "pricing": "paid"},
206
+ {"name": "John Deere API", "description": "Farm equipment and data", "category": "Agriculture", "auth": "OAuth", "https": True, "cors": "yes", "link": "https://developer.deere.com/", "pricing": "paid"},
207
+ {"name": "Trimble Ag API", "description": "Precision agriculture", "category": "Agriculture", "auth": "apiKey", "https": True, "cors": "yes", "link": "https://developer.trimble.com/", "pricing": "paid"},
208
+ {"name": "FarmLogs API", "description": "Farm management software", "category": "Agriculture", "auth": "apiKey", "https": True, "cors": "yes", "link": "https://farmlogs.com/", "pricing": "paid"},
209
+ {"name": "Granular API", "description": "Farm management platform", "category": "Agriculture", "auth": "apiKey", "https": True, "cors": "yes", "link": "https://granular.ag/", "pricing": "paid"},
210
+ {"name": "AgriWebb API", "description": "Livestock management", "category": "Agriculture", "auth": "apiKey", "https": True, "cors": "yes", "link": "https://www.agriwebb.com/", "pricing": "paid"},
211
+ {"name": "Farmers Edge API", "description": "Digital agriculture platform", "category": "Agriculture", "auth": "apiKey", "https": True, "cors": "yes", "link": "https://www.farmersedge.ca/", "pricing": "paid"},
212
+ {"name": "USDA NASS API", "description": "Agricultural statistics", "category": "Agriculture", "auth": "apiKey", "https": True, "cors": "yes", "link": "https://quickstats.nass.usda.gov/api", "pricing": "free"},
213
+ {"name": "FAO API", "description": "Food and agriculture data", "category": "Agriculture", "auth": "None", "https": True, "cors": "yes", "link": "https://www.fao.org/faostat/en/", "pricing": "free"},
214
+ {"name": "Agworld API", "description": "Farm data management", "category": "Agriculture", "auth": "apiKey", "https": True, "cors": "yes", "link": "https://www.agworld.com/", "pricing": "paid"},
215
+ {"name": "AgLeader API", "description": "Precision farming", "category": "Agriculture", "auth": "apiKey", "https": True, "cors": "yes", "link": "https://www.agleader.com/", "pricing": "paid"},
216
+ {"name": "CLAAS API", "description": "Agricultural machinery data", "category": "Agriculture", "auth": "apiKey", "https": True, "cors": "yes", "link": "https://www.claas.com/", "pricing": "paid"},
217
+ {"name": "CNH Industrial API", "description": "Farm equipment platform", "category": "Agriculture", "auth": "apiKey", "https": True, "cors": "yes", "link": "https://www.cnhindustrial.com/", "pricing": "paid"},
218
+ {"name": "AGCO API", "description": "Agricultural equipment", "category": "Agriculture", "auth": "apiKey", "https": True, "cors": "yes", "link": "https://www.agcocorp.com/", "pricing": "paid"},
219
+ {"name": "Cropwise API", "description": "Digital farming platform", "category": "Agriculture", "auth": "apiKey", "https": True, "cors": "yes", "link": "https://www.cropwise.com/", "pricing": "paid"},
220
+ {"name": "Taranis API", "description": "Agricultural intelligence", "category": "Agriculture", "auth": "apiKey", "https": True, "cors": "yes", "link": "https://www.taranis.com/", "pricing": "paid"},
221
+ {"name": "Descartes Labs API", "description": "Geospatial intelligence", "category": "Agriculture", "auth": "apiKey", "https": True, "cors": "yes", "link": "https://www.descarteslabs.com/", "pricing": "paid"},
222
+ {"name": "Planet API", "description": "Earth imaging data", "category": "Agriculture", "auth": "apiKey", "https": True, "cors": "yes", "link": "https://developers.planet.com/", "pricing": "freemium"},
223
+ {"name": "Sentera API", "description": "Precision agriculture", "category": "Agriculture", "auth": "apiKey", "https": True, "cors": "yes", "link": "https://sentera.com/", "pricing": "paid"},
224
+ ]
225
+
226
+ def main():
227
+ print("🦞 APIClaw Night Expansion - Batch 4 (Industry-Specific)")
228
+ print("=" * 50)
229
+
230
+ registry = load_registry()
231
+ initial_count = len(registry['apis'])
232
+ print(f"Starting with {initial_count} APIs")
233
+
234
+ all_batches = [
235
+ ("Real Estate", REAL_ESTATE),
236
+ ("Travel & Hospitality", TRAVEL_HOSPITALITY),
237
+ ("Sports & Fitness", SPORTS_FITNESS),
238
+ ("HR & Recruiting", HR_RECRUITING),
239
+ ("Education", EDUCATION),
240
+ ("Insurance", INSURANCE),
241
+ ("Automotive", AUTOMOTIVE),
242
+ ("Agriculture", AGRICULTURE),
243
+ ]
244
+
245
+ total_added = 0
246
+ for name, batch in all_batches:
247
+ added = add_apis(registry, batch)
248
+ total_added += added
249
+ print(f" {name}: +{added} APIs")
250
+
251
+ save_registry(registry)
252
+ final_count = len(registry['apis'])
253
+
254
+ print("=" * 50)
255
+ print(f"✅ Added {total_added} new APIs")
256
+ print(f"📊 Total: {initial_count} → {final_count}")
257
+
258
+ return total_added
259
+
260
+ if __name__ == "__main__":
261
+ main()