@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,366 @@
1
+ #!/usr/bin/env python3
2
+ """
3
+ APIClaw Night Expansion - 05:00 Feb 23, 2026 - Batch 3
4
+ Government, Environment, Social APIs
5
+ """
6
+
7
+ import json
8
+ import re
9
+ from pathlib import Path
10
+ from datetime import datetime
11
+
12
+ REGISTRY_PATH = Path(__file__).parent.parent / "src" / "registry" / "apis.json"
13
+
14
+ def generate_id(name: str) -> str:
15
+ clean = re.sub(r'[^a-z0-9]+', '-', name.lower()).strip('-')
16
+ return clean[:50]
17
+
18
+ def load_registry() -> dict:
19
+ with open(REGISTRY_PATH, 'r') as f:
20
+ return json.load(f)
21
+
22
+ def save_registry(registry: dict):
23
+ with open(REGISTRY_PATH, 'w') as f:
24
+ json.dump(registry, f, indent=2)
25
+
26
+ def get_existing_ids(registry: dict) -> set:
27
+ return {api['id'] for api in registry['apis']}
28
+
29
+ NEW_APIS = [
30
+ # Government & Public Data (50)
31
+ {"name": "Data.gov", "desc": "US open government data", "category": "Government", "url": "https://data.gov"},
32
+ {"name": "UK Data Gov", "desc": "UK government data", "category": "Government", "url": "https://data.gov.uk"},
33
+ {"name": "EU Open Data", "desc": "European open data", "category": "Government", "url": "https://data.europa.eu"},
34
+ {"name": "SCB Sweden", "desc": "Statistics Sweden API", "category": "Government", "url": "https://scb.se"},
35
+ {"name": "Bolagsverket", "desc": "Swedish Companies Registration", "category": "Government", "url": "https://bolagsverket.se"},
36
+ {"name": "Skatteverket", "desc": "Swedish Tax Agency", "category": "Government", "url": "https://skatteverket.se"},
37
+ {"name": "Trafikverket", "desc": "Swedish Transport Administration", "category": "Government", "url": "https://trafikverket.se"},
38
+ {"name": "SMHI", "desc": "Swedish weather data", "category": "Government", "url": "https://smhi.se"},
39
+ {"name": "Riksbanken", "desc": "Swedish central bank", "category": "Government", "url": "https://riksbank.se"},
40
+ {"name": "Lantmäteriet", "desc": "Swedish land survey", "category": "Government", "url": "https://lantmateriet.se"},
41
+ {"name": "Dataportal.se", "desc": "Swedish open data", "category": "Government", "url": "https://dataportal.se"},
42
+ {"name": "Census Bureau", "desc": "US Census data", "category": "Government", "url": "https://census.gov"},
43
+ {"name": "BLS", "desc": "Bureau of Labor Statistics", "category": "Government", "url": "https://bls.gov"},
44
+ {"name": "SEC EDGAR", "desc": "SEC filings", "category": "Government", "url": "https://sec.gov/edgar"},
45
+ {"name": "FRED", "desc": "Federal Reserve data", "category": "Government", "url": "https://fred.stlouisfed.org"},
46
+ {"name": "IRS", "desc": "US tax data", "category": "Government", "url": "https://irs.gov"},
47
+ {"name": "USPTO", "desc": "US Patent Office", "category": "Government", "url": "https://uspto.gov"},
48
+ {"name": "NASA", "desc": "Space and science data", "category": "Government", "url": "https://api.nasa.gov"},
49
+ {"name": "NOAA", "desc": "Weather and climate", "category": "Government", "url": "https://noaa.gov"},
50
+ {"name": "EPA", "desc": "Environmental data", "category": "Government", "url": "https://epa.gov"},
51
+ {"name": "USGS", "desc": "Geological survey", "category": "Government", "url": "https://usgs.gov"},
52
+ {"name": "CDC", "desc": "Health data", "category": "Government", "url": "https://cdc.gov"},
53
+ {"name": "WHO", "desc": "World Health Organization", "category": "Government", "url": "https://who.int"},
54
+ {"name": "World Bank", "desc": "Global development data", "category": "Government", "url": "https://worldbank.org"},
55
+ {"name": "IMF", "desc": "International Monetary Fund", "category": "Government", "url": "https://imf.org"},
56
+ {"name": "UN Data", "desc": "United Nations data", "category": "Government", "url": "https://data.un.org"},
57
+ {"name": "OECD", "desc": "Economic data", "category": "Government", "url": "https://oecd.org"},
58
+ {"name": "Eurostat", "desc": "European statistics", "category": "Government", "url": "https://ec.europa.eu/eurostat"},
59
+ {"name": "UK Companies House", "desc": "UK company data", "category": "Government", "url": "https://companieshouse.gov.uk"},
60
+ {"name": "OpenCorporates", "desc": "Global company data", "category": "Government", "url": "https://opencorporates.com"},
61
+ {"name": "GovTrack", "desc": "US Congress tracking", "category": "Government", "url": "https://govtrack.us"},
62
+ {"name": "OpenSecrets", "desc": "Money in politics", "category": "Government", "url": "https://opensecrets.org"},
63
+ {"name": "ProPublica", "desc": "Public data", "category": "Government", "url": "https://propublica.org"},
64
+ {"name": "Data Commons", "desc": "Google public data", "category": "Government", "url": "https://datacommons.org"},
65
+ {"name": "Gapminder", "desc": "Global statistics", "category": "Government", "url": "https://gapminder.org"},
66
+ {"name": "Our World in Data", "desc": "Global research", "category": "Government", "url": "https://ourworldindata.org"},
67
+ {"name": "Open Data Soft", "desc": "Data platform", "category": "Government", "url": "https://opendatasoft.com"},
68
+ {"name": "Socrata", "desc": "Government data platform", "category": "Government", "url": "https://socrata.com"},
69
+ {"name": "CKAN", "desc": "Data portal platform", "category": "Government", "url": "https://ckan.org"},
70
+ {"name": "Enigma", "desc": "Public data", "category": "Government", "url": "https://enigma.com"},
71
+ {"name": "Crunchbase", "desc": "Company data", "category": "Government", "url": "https://crunchbase.com"},
72
+ {"name": "PitchBook", "desc": "Private market data", "category": "Government", "url": "https://pitchbook.com"},
73
+ {"name": "CB Insights", "desc": "Business analytics", "category": "Government", "url": "https://cbinsights.com"},
74
+ {"name": "Dealroom", "desc": "Startup data", "category": "Government", "url": "https://dealroom.co"},
75
+ {"name": "Tracxn", "desc": "Startup data", "category": "Government", "url": "https://tracxn.com"},
76
+ {"name": "Owler", "desc": "Company insights", "category": "Government", "url": "https://owler.com"},
77
+ {"name": "SimilarWeb", "desc": "Web traffic data", "category": "Government", "url": "https://similarweb.com"},
78
+ {"name": "Alexa", "desc": "Web analytics", "category": "Government", "url": "https://alexa.com"},
79
+ {"name": "BuiltWith", "desc": "Technology lookup", "category": "Government", "url": "https://builtwith.com"},
80
+ {"name": "Wappalyzer", "desc": "Technology profiler", "category": "Government", "url": "https://wappalyzer.com"},
81
+
82
+ # Environment & Sustainability (40)
83
+ {"name": "OpenWeatherMap", "desc": "Weather API", "category": "Environment", "url": "https://openweathermap.org"},
84
+ {"name": "Weather API", "desc": "Weather data", "category": "Environment", "url": "https://weatherapi.com"},
85
+ {"name": "Tomorrow.io", "desc": "Weather intelligence", "category": "Environment", "url": "https://tomorrow.io"},
86
+ {"name": "Climacell", "desc": "Weather API", "category": "Environment", "url": "https://climacell.co"},
87
+ {"name": "Visual Crossing", "desc": "Weather data", "category": "Environment", "url": "https://visualcrossing.com"},
88
+ {"name": "Stormglass", "desc": "Marine weather", "category": "Environment", "url": "https://stormglass.io"},
89
+ {"name": "Open Meteo", "desc": "Free weather API", "category": "Environment", "url": "https://open-meteo.com"},
90
+ {"name": "Aeris Weather", "desc": "Weather data", "category": "Environment", "url": "https://aerisweather.com"},
91
+ {"name": "Weatherbit", "desc": "Weather API", "category": "Environment", "url": "https://weatherbit.io"},
92
+ {"name": "IQAir", "desc": "Air quality", "category": "Environment", "url": "https://iqair.com"},
93
+ {"name": "BreezoMeter", "desc": "Air quality API", "category": "Environment", "url": "https://breezometer.com"},
94
+ {"name": "OpenAQ", "desc": "Air quality data", "category": "Environment", "url": "https://openaq.org"},
95
+ {"name": "AQICN", "desc": "World air quality", "category": "Environment", "url": "https://aqicn.org"},
96
+ {"name": "PurpleAir", "desc": "Air quality sensors", "category": "Environment", "url": "https://purpleair.com"},
97
+ {"name": "Airnow", "desc": "US air quality", "category": "Environment", "url": "https://airnow.gov"},
98
+ {"name": "Earthquake USGS", "desc": "Earthquake data", "category": "Environment", "url": "https://earthquake.usgs.gov"},
99
+ {"name": "Volcano USGS", "desc": "Volcano data", "category": "Environment", "url": "https://volcanoes.usgs.gov"},
100
+ {"name": "Global Forest Watch", "desc": "Forest monitoring", "category": "Environment", "url": "https://globalforestwatch.org"},
101
+ {"name": "Ocean Data", "desc": "Marine data", "category": "Environment", "url": "https://ioc.unesco.org"},
102
+ {"name": "Copernicus", "desc": "Earth observation", "category": "Environment", "url": "https://copernicus.eu"},
103
+ {"name": "Sentinel Hub", "desc": "Satellite imagery", "category": "Environment", "url": "https://sentinel-hub.com"},
104
+ {"name": "Planet", "desc": "Satellite data", "category": "Environment", "url": "https://planet.com"},
105
+ {"name": "Maxar", "desc": "Earth intelligence", "category": "Environment", "url": "https://maxar.com"},
106
+ {"name": "Nearmap", "desc": "Aerial imagery", "category": "Environment", "url": "https://nearmap.com"},
107
+ {"name": "EarthExplorer", "desc": "USGS imagery", "category": "Environment", "url": "https://earthexplorer.usgs.gov"},
108
+ {"name": "Climate Trace", "desc": "Emissions tracking", "category": "Environment", "url": "https://climatetrace.org"},
109
+ {"name": "Carbon Interface", "desc": "Carbon API", "category": "Environment", "url": "https://carboninterface.com"},
110
+ {"name": "Climatiq", "desc": "Carbon footprint", "category": "Environment", "url": "https://climatiq.io"},
111
+ {"name": "Watershed", "desc": "Climate platform", "category": "Environment", "url": "https://watershed.com"},
112
+ {"name": "Persefoni", "desc": "Carbon accounting", "category": "Environment", "url": "https://persefoni.com"},
113
+ {"name": "Greenly", "desc": "Carbon management", "category": "Environment", "url": "https://greenly.earth"},
114
+ {"name": "Normative", "desc": "Carbon accounting", "category": "Environment", "url": "https://normative.io"},
115
+ {"name": "Plan A", "desc": "Sustainability platform", "category": "Environment", "url": "https://plana.earth"},
116
+ {"name": "Sinai", "desc": "Decarbonization", "category": "Environment", "url": "https://sinai.com"},
117
+ {"name": "Patch", "desc": "Carbon removal", "category": "Environment", "url": "https://patch.io"},
118
+ {"name": "Cloverly", "desc": "Carbon offsets API", "category": "Environment", "url": "https://cloverly.com"},
119
+ {"name": "Wren", "desc": "Climate action", "category": "Environment", "url": "https://wren.co"},
120
+ {"name": "Pachama", "desc": "Forest carbon", "category": "Environment", "url": "https://pachama.com"},
121
+ {"name": "NCX", "desc": "Natural carbon", "category": "Environment", "url": "https://ncx.com"},
122
+ {"name": "Nori", "desc": "Carbon removal marketplace", "category": "Environment", "url": "https://nori.com"},
123
+
124
+ # Social Platforms (40)
125
+ {"name": "Twitter API", "desc": "Twitter/X platform", "category": "Social", "url": "https://developer.twitter.com"},
126
+ {"name": "Facebook Graph", "desc": "Facebook API", "category": "Social", "url": "https://developers.facebook.com"},
127
+ {"name": "Instagram Graph", "desc": "Instagram API", "category": "Social", "url": "https://developers.facebook.com/docs/instagram"},
128
+ {"name": "LinkedIn Marketing", "desc": "LinkedIn API", "category": "Social", "url": "https://developer.linkedin.com"},
129
+ {"name": "YouTube Data", "desc": "YouTube API", "category": "Social", "url": "https://developers.google.com/youtube"},
130
+ {"name": "TikTok", "desc": "TikTok API", "category": "Social", "url": "https://developers.tiktok.com"},
131
+ {"name": "Pinterest", "desc": "Pinterest API", "category": "Social", "url": "https://developers.pinterest.com"},
132
+ {"name": "Snapchat", "desc": "Snapchat API", "category": "Social", "url": "https://developers.snap.com"},
133
+ {"name": "Reddit", "desc": "Reddit API", "category": "Social", "url": "https://reddit.com/dev/api"},
134
+ {"name": "Telegram Bot", "desc": "Telegram API", "category": "Social", "url": "https://core.telegram.org/bots"},
135
+ {"name": "WhatsApp Business", "desc": "WhatsApp API", "category": "Social", "url": "https://business.whatsapp.com"},
136
+ {"name": "Signal", "desc": "Signal messaging", "category": "Social", "url": "https://signal.org"},
137
+ {"name": "Mastodon", "desc": "Mastodon API", "category": "Social", "url": "https://docs.joinmastodon.org"},
138
+ {"name": "Bluesky", "desc": "Bluesky/AT Protocol", "category": "Social", "url": "https://blueskyweb.xyz"},
139
+ {"name": "Threads", "desc": "Threads API", "category": "Social", "url": "https://threads.net"},
140
+ {"name": "WeChat", "desc": "WeChat API", "category": "Social", "url": "https://developers.weixin.qq.com"},
141
+ {"name": "Line", "desc": "Line messaging", "category": "Social", "url": "https://developers.line.biz"},
142
+ {"name": "Viber", "desc": "Viber API", "category": "Social", "url": "https://developers.viber.com"},
143
+ {"name": "Kik", "desc": "Kik API", "category": "Social", "url": "https://dev.kik.com"},
144
+ {"name": "Clubhouse", "desc": "Audio social", "category": "Social", "url": "https://clubhouse.com"},
145
+ {"name": "Tumblr", "desc": "Tumblr API", "category": "Social", "url": "https://tumblr.com/developers"},
146
+ {"name": "Flickr", "desc": "Photo sharing", "category": "Social", "url": "https://flickr.com/services/api"},
147
+ {"name": "500px", "desc": "Photography community", "category": "Social", "url": "https://500px.com"},
148
+ {"name": "Unsplash", "desc": "Photo library", "category": "Social", "url": "https://unsplash.com/developers"},
149
+ {"name": "Pexels", "desc": "Stock photos", "category": "Social", "url": "https://pexels.com/api"},
150
+ {"name": "Pixabay", "desc": "Free images", "category": "Social", "url": "https://pixabay.com/api"},
151
+ {"name": "Giphy", "desc": "GIF platform", "category": "Social", "url": "https://developers.giphy.com"},
152
+ {"name": "Tenor", "desc": "GIF search", "category": "Social", "url": "https://tenor.com/gifapi"},
153
+ {"name": "Imgur", "desc": "Image hosting", "category": "Social", "url": "https://apidocs.imgur.com"},
154
+ {"name": "Vimeo", "desc": "Video platform", "category": "Social", "url": "https://developer.vimeo.com"},
155
+ {"name": "Dailymotion", "desc": "Video platform", "category": "Social", "url": "https://developer.dailymotion.com"},
156
+ {"name": "Twitch", "desc": "Streaming platform", "category": "Social", "url": "https://dev.twitch.tv"},
157
+ {"name": "Mixcloud", "desc": "Audio streaming", "category": "Social", "url": "https://mixcloud.com"},
158
+ {"name": "Anchor", "desc": "Podcast platform", "category": "Social", "url": "https://anchor.fm"},
159
+ {"name": "Spotify for Podcasters", "desc": "Podcast hosting", "category": "Social", "url": "https://podcasters.spotify.com"},
160
+ {"name": "Apple Podcasts", "desc": "Podcast platform", "category": "Social", "url": "https://podcasts.apple.com"},
161
+ {"name": "Goodreads", "desc": "Book social", "category": "Social", "url": "https://goodreads.com/api"},
162
+ {"name": "Libib", "desc": "Book cataloging", "category": "Social", "url": "https://libib.com"},
163
+ {"name": "Open Library", "desc": "Book database", "category": "Social", "url": "https://openlibrary.org"},
164
+ {"name": "Google Books", "desc": "Book search", "category": "Social", "url": "https://developers.google.com/books"},
165
+
166
+ # HR & Recruiting (40)
167
+ {"name": "Greenhouse", "desc": "Recruiting platform", "category": "HR", "url": "https://greenhouse.io"},
168
+ {"name": "Lever", "desc": "Recruiting software", "category": "HR", "url": "https://lever.co"},
169
+ {"name": "Ashby", "desc": "Recruiting platform", "category": "HR", "url": "https://ashbyhq.com"},
170
+ {"name": "Workable", "desc": "Recruiting software", "category": "HR", "url": "https://workable.com"},
171
+ {"name": "JazzHR", "desc": "Recruiting software", "category": "HR", "url": "https://jazzhr.com"},
172
+ {"name": "Breezy HR", "desc": "Recruiting platform", "category": "HR", "url": "https://breezy.hr"},
173
+ {"name": "SmartRecruiters", "desc": "Talent acquisition", "category": "HR", "url": "https://smartrecruiters.com"},
174
+ {"name": "iCIMS", "desc": "Talent platform", "category": "HR", "url": "https://icims.com"},
175
+ {"name": "Workday", "desc": "HR platform", "category": "HR", "url": "https://workday.com"},
176
+ {"name": "BambooHR", "desc": "HR software", "category": "HR", "url": "https://bamboohr.com"},
177
+ {"name": "Namely", "desc": "HR platform", "category": "HR", "url": "https://namely.com"},
178
+ {"name": "Lattice", "desc": "People management", "category": "HR", "url": "https://lattice.com"},
179
+ {"name": "Culture Amp", "desc": "Employee experience", "category": "HR", "url": "https://cultureamp.com"},
180
+ {"name": "15Five", "desc": "Performance management", "category": "HR", "url": "https://15five.com"},
181
+ {"name": "Betterworks", "desc": "Performance management", "category": "HR", "url": "https://betterworks.com"},
182
+ {"name": "Leapsome", "desc": "People enablement", "category": "HR", "url": "https://leapsome.com"},
183
+ {"name": "Small Improvements", "desc": "Performance feedback", "category": "HR", "url": "https://small-improvements.com"},
184
+ {"name": "Peakon", "desc": "Employee engagement", "category": "HR", "url": "https://peakon.com"},
185
+ {"name": "Officevibe", "desc": "Employee engagement", "category": "HR", "url": "https://officevibe.com"},
186
+ {"name": "TINYpulse", "desc": "Employee feedback", "category": "HR", "url": "https://tinypulse.com"},
187
+ {"name": "HireVue", "desc": "Video interviewing", "category": "HR", "url": "https://hirevue.com"},
188
+ {"name": "Spark Hire", "desc": "Video interviews", "category": "HR", "url": "https://sparkhire.com"},
189
+ {"name": "Interviewing.io", "desc": "Technical interviews", "category": "HR", "url": "https://interviewing.io"},
190
+ {"name": "Karat", "desc": "Technical interviews", "category": "HR", "url": "https://karat.com"},
191
+ {"name": "Codility", "desc": "Tech assessment", "category": "HR", "url": "https://codility.com"},
192
+ {"name": "HackerRank", "desc": "Tech screening", "category": "HR", "url": "https://hackerrank.com"},
193
+ {"name": "CodeSignal", "desc": "Tech assessment", "category": "HR", "url": "https://codesignal.com"},
194
+ {"name": "LeetCode", "desc": "Coding practice", "category": "HR", "url": "https://leetcode.com"},
195
+ {"name": "CoderPad", "desc": "Technical interviews", "category": "HR", "url": "https://coderpad.io"},
196
+ {"name": "TestGorilla", "desc": "Pre-employment tests", "category": "HR", "url": "https://testgorilla.com"},
197
+ {"name": "Criteria", "desc": "Pre-employment testing", "category": "HR", "url": "https://criteriacorp.com"},
198
+ {"name": "Vervoe", "desc": "AI hiring", "category": "HR", "url": "https://vervoe.com"},
199
+ {"name": "Eightfold", "desc": "Talent intelligence", "category": "HR", "url": "https://eightfold.ai"},
200
+ {"name": "Beamery", "desc": "Talent lifecycle", "category": "HR", "url": "https://beamery.com"},
201
+ {"name": "Phenom", "desc": "Talent experience", "category": "HR", "url": "https://phenom.com"},
202
+ {"name": "Jobvite", "desc": "Talent acquisition", "category": "HR", "url": "https://jobvite.com"},
203
+ {"name": "Recruitee", "desc": "Hiring platform", "category": "HR", "url": "https://recruitee.com"},
204
+ {"name": "Teamtailor", "desc": "Employer branding", "category": "HR", "url": "https://teamtailor.com"},
205
+ {"name": "Personio", "desc": "HR software", "category": "HR", "url": "https://personio.com"},
206
+ {"name": "Factorial", "desc": "HR software", "category": "HR", "url": "https://factorialhr.com"},
207
+
208
+ # Customer Support (30)
209
+ {"name": "Zendesk", "desc": "Customer service", "category": "Support", "url": "https://zendesk.com"},
210
+ {"name": "Freshdesk", "desc": "Help desk", "category": "Support", "url": "https://freshdesk.com"},
211
+ {"name": "Intercom", "desc": "Customer messaging", "category": "Support", "url": "https://intercom.com"},
212
+ {"name": "HubSpot Service", "desc": "Service hub", "category": "Support", "url": "https://hubspot.com/service"},
213
+ {"name": "Salesforce Service", "desc": "Service cloud", "category": "Support", "url": "https://salesforce.com/service-cloud"},
214
+ {"name": "Help Scout", "desc": "Help desk", "category": "Support", "url": "https://helpscout.com"},
215
+ {"name": "Front", "desc": "Customer operations", "category": "Support", "url": "https://front.com"},
216
+ {"name": "Crisp", "desc": "Customer messaging", "category": "Support", "url": "https://crisp.chat"},
217
+ {"name": "Drift", "desc": "Conversational marketing", "category": "Support", "url": "https://drift.com"},
218
+ {"name": "Tidio", "desc": "Live chat", "category": "Support", "url": "https://tidio.com"},
219
+ {"name": "LiveChat", "desc": "Live chat software", "category": "Support", "url": "https://livechat.com"},
220
+ {"name": "Olark", "desc": "Live chat", "category": "Support", "url": "https://olark.com"},
221
+ {"name": "Tawk.to", "desc": "Free live chat", "category": "Support", "url": "https://tawk.to"},
222
+ {"name": "Gorgias", "desc": "E-commerce support", "category": "Support", "url": "https://gorgias.com"},
223
+ {"name": "Gladly", "desc": "Customer service", "category": "Support", "url": "https://gladly.com"},
224
+ {"name": "Kustomer", "desc": "CRM for support", "category": "Support", "url": "https://kustomer.com"},
225
+ {"name": "Dixa", "desc": "Customer service", "category": "Support", "url": "https://dixa.com"},
226
+ {"name": "Kayako", "desc": "Help desk", "category": "Support", "url": "https://kayako.com"},
227
+ {"name": "Zoho Desk", "desc": "Help desk", "category": "Support", "url": "https://zoho.com/desk"},
228
+ {"name": "ServiceNow", "desc": "IT service", "category": "Support", "url": "https://servicenow.com"},
229
+ {"name": "Jira Service", "desc": "Service management", "category": "Support", "url": "https://atlassian.com/software/jira/service-management"},
230
+ {"name": "Pylon", "desc": "B2B support", "category": "Support", "url": "https://usepylon.com"},
231
+ {"name": "Plain", "desc": "Support platform", "category": "Support", "url": "https://plain.com"},
232
+ {"name": "Papercups", "desc": "Open source chat", "category": "Support", "url": "https://papercups.io"},
233
+ {"name": "Chatwoot", "desc": "Open source support", "category": "Support", "url": "https://chatwoot.com"},
234
+ {"name": "Botpress", "desc": "Chatbot platform", "category": "Support", "url": "https://botpress.com"},
235
+ {"name": "Rasa", "desc": "Conversational AI", "category": "Support", "url": "https://rasa.com"},
236
+ {"name": "Dialogflow", "desc": "Google chatbot", "category": "Support", "url": "https://cloud.google.com/dialogflow"},
237
+ {"name": "Amazon Lex", "desc": "AWS chatbot", "category": "Support", "url": "https://aws.amazon.com/lex"},
238
+ {"name": "Watson Assistant", "desc": "IBM chatbot", "category": "Support", "url": "https://ibm.com/watson/assistant"},
239
+
240
+ # Shipping & Logistics (30)
241
+ {"name": "Shippo", "desc": "Shipping API", "category": "Logistics", "url": "https://goshippo.com"},
242
+ {"name": "EasyPost", "desc": "Shipping API", "category": "Logistics", "url": "https://easypost.com"},
243
+ {"name": "ShipEngine", "desc": "Shipping platform", "category": "Logistics", "url": "https://shipengine.com"},
244
+ {"name": "Shipstation", "desc": "Shipping software", "category": "Logistics", "url": "https://shipstation.com"},
245
+ {"name": "Pirate Ship", "desc": "Shipping discounts", "category": "Logistics", "url": "https://pirateship.com"},
246
+ {"name": "Stamps.com", "desc": "Postage online", "category": "Logistics", "url": "https://stamps.com"},
247
+ {"name": "Endicia", "desc": "Shipping software", "category": "Logistics", "url": "https://endicia.com"},
248
+ {"name": "AfterShip", "desc": "Shipment tracking", "category": "Logistics", "url": "https://aftership.com"},
249
+ {"name": "Track17", "desc": "Package tracking", "category": "Logistics", "url": "https://17track.net"},
250
+ {"name": "Parcel Monitor", "desc": "Delivery tracking", "category": "Logistics", "url": "https://parcelmonitor.com"},
251
+ {"name": "Ship24", "desc": "Tracking API", "category": "Logistics", "url": "https://ship24.com"},
252
+ {"name": "Trackingmore", "desc": "Shipment tracking", "category": "Logistics", "url": "https://trackingmore.com"},
253
+ {"name": "UPS", "desc": "UPS shipping", "category": "Logistics", "url": "https://ups.com"},
254
+ {"name": "FedEx", "desc": "FedEx shipping", "category": "Logistics", "url": "https://fedex.com"},
255
+ {"name": "USPS", "desc": "US Postal Service", "category": "Logistics", "url": "https://usps.com"},
256
+ {"name": "DHL", "desc": "DHL shipping", "category": "Logistics", "url": "https://dhl.com"},
257
+ {"name": "PostNord", "desc": "Nordic shipping", "category": "Logistics", "url": "https://postnord.com"},
258
+ {"name": "DB Schenker", "desc": "Global logistics", "category": "Logistics", "url": "https://dbschenker.com"},
259
+ {"name": "Flexport", "desc": "Freight forwarding", "category": "Logistics", "url": "https://flexport.com"},
260
+ {"name": "Freightos", "desc": "Freight marketplace", "category": "Logistics", "url": "https://freightos.com"},
261
+ {"name": "Project44", "desc": "Supply chain visibility", "category": "Logistics", "url": "https://project44.com"},
262
+ {"name": "FourKites", "desc": "Supply chain visibility", "category": "Logistics", "url": "https://fourkites.com"},
263
+ {"name": "Transporeon", "desc": "Logistics platform", "category": "Logistics", "url": "https://transporeon.com"},
264
+ {"name": "Convoy", "desc": "Trucking network", "category": "Logistics", "url": "https://convoy.com"},
265
+ {"name": "Uber Freight", "desc": "Freight matching", "category": "Logistics", "url": "https://uberfreight.com"},
266
+ {"name": "Shipwell", "desc": "Shipping management", "category": "Logistics", "url": "https://shipwell.com"},
267
+ {"name": "Stord", "desc": "Fulfillment platform", "category": "Logistics", "url": "https://stord.com"},
268
+ {"name": "ShipBob", "desc": "E-commerce fulfillment", "category": "Logistics", "url": "https://shipbob.com"},
269
+ {"name": "Deliverr", "desc": "Fast fulfillment", "category": "Logistics", "url": "https://deliverr.com"},
270
+ {"name": "Shopify Fulfillment", "desc": "Fulfillment network", "category": "Logistics", "url": "https://shopify.com/fulfillment"},
271
+
272
+ # Manufacturing & Supply Chain (30)
273
+ {"name": "SAP", "desc": "Enterprise software", "category": "Manufacturing", "url": "https://sap.com"},
274
+ {"name": "Oracle ERP", "desc": "Enterprise resource", "category": "Manufacturing", "url": "https://oracle.com/erp"},
275
+ {"name": "Microsoft Dynamics", "desc": "Business applications", "category": "Manufacturing", "url": "https://dynamics.microsoft.com"},
276
+ {"name": "Infor", "desc": "Industry cloud", "category": "Manufacturing", "url": "https://infor.com"},
277
+ {"name": "Epicor", "desc": "Manufacturing ERP", "category": "Manufacturing", "url": "https://epicor.com"},
278
+ {"name": "SYSPRO", "desc": "ERP software", "category": "Manufacturing", "url": "https://syspro.com"},
279
+ {"name": "Plex", "desc": "Smart manufacturing", "category": "Manufacturing", "url": "https://plex.com"},
280
+ {"name": "Arena", "desc": "PLM software", "category": "Manufacturing", "url": "https://arenasolutions.com"},
281
+ {"name": "Onshape", "desc": "Cloud CAD", "category": "Manufacturing", "url": "https://onshape.com"},
282
+ {"name": "Fusion 360", "desc": "CAD/CAM/CAE", "category": "Manufacturing", "url": "https://autodesk.com/products/fusion-360"},
283
+ {"name": "SolidWorks", "desc": "3D CAD", "category": "Manufacturing", "url": "https://solidworks.com"},
284
+ {"name": "Inventor", "desc": "3D CAD software", "category": "Manufacturing", "url": "https://autodesk.com/products/inventor"},
285
+ {"name": "PTC Creo", "desc": "CAD software", "category": "Manufacturing", "url": "https://ptc.com/creo"},
286
+ {"name": "Siemens NX", "desc": "Product engineering", "category": "Manufacturing", "url": "https://siemens.com/nx"},
287
+ {"name": "CATIA", "desc": "3D design", "category": "Manufacturing", "url": "https://3ds.com/catia"},
288
+ {"name": "Tulip", "desc": "Frontline operations", "category": "Manufacturing", "url": "https://tulip.co"},
289
+ {"name": "MachineMetrics", "desc": "Manufacturing analytics", "category": "Manufacturing", "url": "https://machinemetrics.com"},
290
+ {"name": "Sight Machine", "desc": "Manufacturing AI", "category": "Manufacturing", "url": "https://sightmachine.com"},
291
+ {"name": "Fiix", "desc": "CMMS software", "category": "Manufacturing", "url": "https://fiixsoftware.com"},
292
+ {"name": "UpKeep", "desc": "Maintenance management", "category": "Manufacturing", "url": "https://upkeep.com"},
293
+ {"name": "Limble", "desc": "CMMS software", "category": "Manufacturing", "url": "https://limblecmms.com"},
294
+ {"name": "Coupa", "desc": "Supply chain", "category": "Manufacturing", "url": "https://coupa.com"},
295
+ {"name": "Jaggaer", "desc": "Procurement", "category": "Manufacturing", "url": "https://jaggaer.com"},
296
+ {"name": "GEP", "desc": "Procurement software", "category": "Manufacturing", "url": "https://gep.com"},
297
+ {"name": "Ivalua", "desc": "Spend management", "category": "Manufacturing", "url": "https://ivalua.com"},
298
+ {"name": "Kinaxis", "desc": "Supply chain planning", "category": "Manufacturing", "url": "https://kinaxis.com"},
299
+ {"name": "o9 Solutions", "desc": "AI planning", "category": "Manufacturing", "url": "https://o9solutions.com"},
300
+ {"name": "Blue Yonder", "desc": "Supply chain", "category": "Manufacturing", "url": "https://blueyonder.com"},
301
+ {"name": "E2open", "desc": "Supply chain", "category": "Manufacturing", "url": "https://e2open.com"},
302
+ {"name": "Manhattan Associates", "desc": "Supply chain", "category": "Manufacturing", "url": "https://manh.com"},
303
+
304
+ # Insurance & Risk (20)
305
+ {"name": "Lemonade", "desc": "Insurance platform", "category": "Insurance", "url": "https://lemonade.com"},
306
+ {"name": "Root", "desc": "Car insurance", "category": "Insurance", "url": "https://root.com"},
307
+ {"name": "Hippo", "desc": "Home insurance", "category": "Insurance", "url": "https://hippo.com"},
308
+ {"name": "Next Insurance", "desc": "Business insurance", "category": "Insurance", "url": "https://nextinsurance.com"},
309
+ {"name": "Pie Insurance", "desc": "Workers comp", "category": "Insurance", "url": "https://pieinsurance.com"},
310
+ {"name": "Vouch", "desc": "Startup insurance", "category": "Insurance", "url": "https://vouch.us"},
311
+ {"name": "Embroker", "desc": "Business insurance", "category": "Insurance", "url": "https://embroker.com"},
312
+ {"name": "Coalition", "desc": "Cyber insurance", "category": "Insurance", "url": "https://coalitioninc.com"},
313
+ {"name": "At-Bay", "desc": "Cyber insurance", "category": "Insurance", "url": "https://at-bay.com"},
314
+ {"name": "Cowbell Cyber", "desc": "Cyber insurance", "category": "Insurance", "url": "https://cowbell.insure"},
315
+ {"name": "Clearcover", "desc": "Auto insurance", "category": "Insurance", "url": "https://clearcover.com"},
316
+ {"name": "Metromile", "desc": "Pay-per-mile", "category": "Insurance", "url": "https://metromile.com"},
317
+ {"name": "Safely", "desc": "Vacation rental insurance", "category": "Insurance", "url": "https://safely.com"},
318
+ {"name": "Jetty", "desc": "Renters insurance", "category": "Insurance", "url": "https://jetty.com"},
319
+ {"name": "Socotra", "desc": "Insurance platform", "category": "Insurance", "url": "https://socotra.com"},
320
+ {"name": "Majesco", "desc": "Insurance software", "category": "Insurance", "url": "https://majesco.com"},
321
+ {"name": "Guidewire", "desc": "Insurance platform", "category": "Insurance", "url": "https://guidewire.com"},
322
+ {"name": "Duck Creek", "desc": "Insurance solutions", "category": "Insurance", "url": "https://duckcreek.com"},
323
+ {"name": "Verisk", "desc": "Risk analytics", "category": "Insurance", "url": "https://verisk.com"},
324
+ {"name": "LexisNexis Risk", "desc": "Risk data", "category": "Insurance", "url": "https://risk.lexisnexis.com"},
325
+ ]
326
+
327
+ def main():
328
+ print("🦞 APIClaw Night Expansion - Batch 3")
329
+ print("=" * 50)
330
+
331
+ registry = load_registry()
332
+ existing_ids = get_existing_ids(registry)
333
+
334
+ print(f"Current APIs: {len(registry['apis'])}")
335
+
336
+ added = 0
337
+ for api in NEW_APIS:
338
+ api_id = generate_id(api['name'])
339
+
340
+ if api_id in existing_ids:
341
+ continue
342
+
343
+ new_api = {
344
+ "id": api_id,
345
+ "name": api['name'],
346
+ "description": api['desc'],
347
+ "category": api['category'],
348
+ "authType": "apiKey",
349
+ "baseUrl": api['url'],
350
+ "docsUrl": api['url'],
351
+ "addedAt": datetime.now().isoformat()
352
+ }
353
+
354
+ registry['apis'].append(new_api)
355
+ existing_ids.add(api_id)
356
+ added += 1
357
+
358
+ save_registry(registry)
359
+
360
+ print(f"Added: +{added} APIs")
361
+ print(f"Total: {len(registry['apis'])}")
362
+
363
+ return added
364
+
365
+ if __name__ == "__main__":
366
+ main()