@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.
- package/EARN-CREDITS-SPEC.md +197 -0
- package/README.md +11 -7
- package/STATUS.md +16 -15
- package/VISION.md +123 -0
- package/dist/credentials.d.ts.map +1 -1
- package/dist/credentials.js +11 -0
- package/dist/credentials.js.map +1 -1
- package/dist/execute.d.ts.map +1 -1
- package/dist/execute.js +75 -0
- package/dist/execute.js.map +1 -1
- package/dist/index.js +1 -1
- package/dist/proxy.d.ts.map +1 -1
- package/dist/proxy.js +1 -1
- package/dist/proxy.js.map +1 -1
- package/dist/registry/apis.json +93516 -7139
- package/dist/registry/apis_expanded.json +3123 -3
- package/landing/public/book/index.html +339 -0
- package/landing/src/app/docs/page.tsx +142 -115
- package/landing/src/app/earn/page.tsx +305 -0
- package/landing/src/app/page.tsx +16 -11
- package/landing/src/lib/apis.json +1 -116054
- package/landing/src/lib/stats.json +5 -5
- package/package.json +4 -1
- package/scripts/add-public-apis.py +625 -0
- package/scripts/apisguru-data.json +158837 -0
- package/scripts/bonus-batch.py +250 -0
- package/scripts/bulk-add-apisguru.js +122 -0
- package/scripts/expand-2026-batch.py +335 -0
- package/scripts/expand-from-github.py +460 -0
- package/scripts/expand-n4ze3m.py +198 -0
- package/scripts/expand-niche-batch.py +269 -0
- package/scripts/expand-nordic-niche.py +189 -0
- package/scripts/expand-tonnyL.py +343 -0
- package/scripts/final-batch.py +315 -0
- package/scripts/final-push-06.py +242 -0
- package/scripts/mega-expansion.py +495 -0
- package/scripts/mega-final-06.py +512 -0
- package/scripts/more-apis.py +353 -0
- package/scripts/night-batch-05.py +546 -0
- package/scripts/night-batch-05b.py +427 -0
- package/scripts/night-expansion-02-23-batch2.py +284 -0
- package/scripts/night-expansion-02-23.py +383 -0
- package/scripts/night-expansion-03-batch2.py +336 -0
- package/scripts/night-expansion-03-batch3.py +392 -0
- package/scripts/night-expansion-03.py +573 -0
- package/scripts/night-expansion-04-23.py +461 -0
- package/scripts/night-expansion-05-23-batch2.py +431 -0
- package/scripts/night-expansion-05-23-batch3.py +366 -0
- package/scripts/night-expansion-05-23-final.py +349 -0
- package/scripts/night-expansion-05-23.py +540 -0
- package/scripts/night-expansion-06-23-batch2.py +261 -0
- package/scripts/night-expansion-06-23-batch3.py +213 -0
- package/scripts/night-expansion-06-23-batch4.py +261 -0
- package/scripts/night-expansion-06-23.py +309 -0
- package/scripts/night-expansion-06.py +325 -0
- package/scripts/night-expansion.py +441 -0
- package/scripts/night-final-batch-04-23.py +547 -0
- package/scripts/night-mega-batch-04-23.py +874 -0
- package/scripts/super-final-06.py +341 -0
- package/src/credentials.ts +12 -0
- package/src/execute.ts +93 -0
- package/src/index.ts +1 -1
- package/src/proxy.ts +1 -1
- package/src/registry/apis.json +93516 -7139
- package/src/registry/apis_expanded.json +3123 -3
|
@@ -0,0 +1,431 @@
|
|
|
1
|
+
#!/usr/bin/env python3
|
|
2
|
+
"""
|
|
3
|
+
APIClaw Night Expansion - 05:00 Feb 23, 2026 - Batch 2
|
|
4
|
+
More unique APIs from specialized categories
|
|
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
|
+
# Batch 2 - More specialized APIs
|
|
30
|
+
NEW_APIS = [
|
|
31
|
+
# IoT & Hardware (40)
|
|
32
|
+
{"name": "Particle", "desc": "IoT platform API", "category": "IoT", "url": "https://particle.io"},
|
|
33
|
+
{"name": "Balena", "desc": "Fleet management IoT", "category": "IoT", "url": "https://balena.io"},
|
|
34
|
+
{"name": "Losant", "desc": "IoT platform", "category": "IoT", "url": "https://losant.com"},
|
|
35
|
+
{"name": "Hologram", "desc": "IoT cellular", "category": "IoT", "url": "https://hologram.io"},
|
|
36
|
+
{"name": "Blues Wireless", "desc": "IoT connectivity", "category": "IoT", "url": "https://blues.io"},
|
|
37
|
+
{"name": "Golioth", "desc": "IoT cloud", "category": "IoT", "url": "https://golioth.io"},
|
|
38
|
+
{"name": "Bytebeam", "desc": "IoT platform", "category": "IoT", "url": "https://bytebeam.io"},
|
|
39
|
+
{"name": "EMnify", "desc": "IoT connectivity", "category": "IoT", "url": "https://emnify.com"},
|
|
40
|
+
{"name": "Soracom", "desc": "IoT platform", "category": "IoT", "url": "https://soracom.io"},
|
|
41
|
+
{"name": "Tago.io", "desc": "IoT analytics", "category": "IoT", "url": "https://tago.io"},
|
|
42
|
+
{"name": "Ubidots", "desc": "IoT platform", "category": "IoT", "url": "https://ubidots.com"},
|
|
43
|
+
{"name": "Datacake", "desc": "IoT dashboard", "category": "IoT", "url": "https://datacake.co"},
|
|
44
|
+
{"name": "Favoriot", "desc": "IoT middleware", "category": "IoT", "url": "https://favoriot.com"},
|
|
45
|
+
{"name": "ThingsBoard", "desc": "IoT platform", "category": "IoT", "url": "https://thingsboard.io"},
|
|
46
|
+
{"name": "Thinger.io", "desc": "IoT platform", "category": "IoT", "url": "https://thinger.io"},
|
|
47
|
+
{"name": "Blynk", "desc": "IoT platform", "category": "IoT", "url": "https://blynk.io"},
|
|
48
|
+
{"name": "IFTTT", "desc": "Automation platform", "category": "Automation", "url": "https://ifttt.com"},
|
|
49
|
+
{"name": "Integromat", "desc": "Automation platform", "category": "Automation", "url": "https://integromat.com"},
|
|
50
|
+
{"name": "Tines", "desc": "Security automation", "category": "Automation", "url": "https://tines.com"},
|
|
51
|
+
{"name": "Workato", "desc": "Enterprise automation", "category": "Automation", "url": "https://workato.com"},
|
|
52
|
+
{"name": "Bardeen", "desc": "Browser automation", "category": "Automation", "url": "https://bardeen.ai"},
|
|
53
|
+
{"name": "Tray.io", "desc": "Integration platform", "category": "Automation", "url": "https://tray.io"},
|
|
54
|
+
{"name": "Celigo", "desc": "Integration platform", "category": "Automation", "url": "https://celigo.com"},
|
|
55
|
+
{"name": "SnapLogic", "desc": "Integration platform", "category": "Automation", "url": "https://snaplogic.com"},
|
|
56
|
+
{"name": "Boomi", "desc": "Integration platform", "category": "Automation", "url": "https://boomi.com"},
|
|
57
|
+
{"name": "MuleSoft", "desc": "API integration", "category": "Automation", "url": "https://mulesoft.com"},
|
|
58
|
+
{"name": "Informatica", "desc": "Data integration", "category": "Automation", "url": "https://informatica.com"},
|
|
59
|
+
{"name": "Talend", "desc": "Data integration", "category": "Automation", "url": "https://talend.com"},
|
|
60
|
+
{"name": "Matillion", "desc": "Data transformation", "category": "Automation", "url": "https://matillion.com"},
|
|
61
|
+
{"name": "Rivery", "desc": "DataOps platform", "category": "Automation", "url": "https://rivery.io"},
|
|
62
|
+
{"name": "Portable", "desc": "ELT connectors", "category": "Automation", "url": "https://portable.io"},
|
|
63
|
+
{"name": "Estuary", "desc": "Real-time ETL", "category": "Automation", "url": "https://estuary.dev"},
|
|
64
|
+
{"name": "Hevo", "desc": "Data pipeline", "category": "Automation", "url": "https://hevodata.com"},
|
|
65
|
+
{"name": "Panoply", "desc": "Data warehouse", "category": "Data", "url": "https://panoply.io"},
|
|
66
|
+
{"name": "Mozart Data", "desc": "Data stack", "category": "Data", "url": "https://mozartdata.com"},
|
|
67
|
+
{"name": "Polytomic", "desc": "Data sync", "category": "Data", "url": "https://polytomic.com"},
|
|
68
|
+
{"name": "Grouparoo", "desc": "Data sync", "category": "Data", "url": "https://grouparoo.com"},
|
|
69
|
+
{"name": "Prequel", "desc": "Data sharing", "category": "Data", "url": "https://prequel.co"},
|
|
70
|
+
{"name": "Vendia", "desc": "Data sharing", "category": "Data", "url": "https://vendia.com"},
|
|
71
|
+
{"name": "Immuta", "desc": "Data access", "category": "Data", "url": "https://immuta.com"},
|
|
72
|
+
|
|
73
|
+
# Healthcare & Medical (40)
|
|
74
|
+
{"name": "Healthie", "desc": "Healthcare platform", "category": "Healthcare", "url": "https://gethealthie.com"},
|
|
75
|
+
{"name": "DrChrono", "desc": "EHR platform", "category": "Healthcare", "url": "https://drchrono.com"},
|
|
76
|
+
{"name": "Practice Better", "desc": "Health practice", "category": "Healthcare", "url": "https://practicebetter.io"},
|
|
77
|
+
{"name": "Jane App", "desc": "Practice management", "category": "Healthcare", "url": "https://jane.app"},
|
|
78
|
+
{"name": "SimplePractice", "desc": "Practice management", "category": "Healthcare", "url": "https://simplepractice.com"},
|
|
79
|
+
{"name": "Kareo", "desc": "Medical billing", "category": "Healthcare", "url": "https://kareo.com"},
|
|
80
|
+
{"name": "athenahealth", "desc": "Healthcare network", "category": "Healthcare", "url": "https://athenahealth.com"},
|
|
81
|
+
{"name": "Epic", "desc": "EHR system", "category": "Healthcare", "url": "https://epic.com"},
|
|
82
|
+
{"name": "Cerner", "desc": "Health IT", "category": "Healthcare", "url": "https://cerner.com"},
|
|
83
|
+
{"name": "Allscripts", "desc": "Healthcare solutions", "category": "Healthcare", "url": "https://allscripts.com"},
|
|
84
|
+
{"name": "Meditech", "desc": "EHR system", "category": "Healthcare", "url": "https://meditech.com"},
|
|
85
|
+
{"name": "Veradigm", "desc": "Healthcare data", "category": "Healthcare", "url": "https://veradigm.com"},
|
|
86
|
+
{"name": "Redox", "desc": "Healthcare integration", "category": "Healthcare", "url": "https://redoxengine.com"},
|
|
87
|
+
{"name": "Particle Health", "desc": "Healthcare data", "category": "Healthcare", "url": "https://particlehealth.com"},
|
|
88
|
+
{"name": "Flexpa", "desc": "Health data API", "category": "Healthcare", "url": "https://flexpa.com"},
|
|
89
|
+
{"name": "1upHealth", "desc": "Healthcare API", "category": "Healthcare", "url": "https://1up.health"},
|
|
90
|
+
{"name": "Health Gorilla", "desc": "Health data network", "category": "Healthcare", "url": "https://healthgorilla.com"},
|
|
91
|
+
{"name": "Human API", "desc": "Health data", "category": "Healthcare", "url": "https://humanapi.co"},
|
|
92
|
+
{"name": "Validic", "desc": "Health data", "category": "Healthcare", "url": "https://validic.com"},
|
|
93
|
+
{"name": "Vital", "desc": "Health data API", "category": "Healthcare", "url": "https://tryvital.io"},
|
|
94
|
+
{"name": "Terra", "desc": "Wearable data API", "category": "Healthcare", "url": "https://tryterra.co"},
|
|
95
|
+
{"name": "Gyroscope", "desc": "Health tracking", "category": "Healthcare", "url": "https://gyrosco.pe"},
|
|
96
|
+
{"name": "Oura", "desc": "Sleep tracking", "category": "Healthcare", "url": "https://ouraring.com"},
|
|
97
|
+
{"name": "Whoop", "desc": "Fitness tracking", "category": "Healthcare", "url": "https://whoop.com"},
|
|
98
|
+
{"name": "Fitbit", "desc": "Fitness API", "category": "Healthcare", "url": "https://fitbit.com"},
|
|
99
|
+
{"name": "Garmin", "desc": "Fitness API", "category": "Healthcare", "url": "https://developer.garmin.com"},
|
|
100
|
+
{"name": "Strava", "desc": "Fitness API", "category": "Healthcare", "url": "https://strava.com"},
|
|
101
|
+
{"name": "MyFitnessPal", "desc": "Nutrition tracking", "category": "Healthcare", "url": "https://myfitnesspal.com"},
|
|
102
|
+
{"name": "Nutritionix", "desc": "Nutrition API", "category": "Healthcare", "url": "https://nutritionix.com"},
|
|
103
|
+
{"name": "Edamam", "desc": "Food database API", "category": "Healthcare", "url": "https://edamam.com"},
|
|
104
|
+
{"name": "Spoonacular", "desc": "Food API", "category": "Healthcare", "url": "https://spoonacular.com"},
|
|
105
|
+
{"name": "FatSecret", "desc": "Nutrition API", "category": "Healthcare", "url": "https://fatsecret.com"},
|
|
106
|
+
{"name": "Open Food Facts", "desc": "Food database", "category": "Healthcare", "url": "https://openfoodfacts.org"},
|
|
107
|
+
{"name": "USDA FoodData", "desc": "Nutrition database", "category": "Healthcare", "url": "https://fdc.nal.usda.gov"},
|
|
108
|
+
{"name": "PubMed", "desc": "Medical literature", "category": "Healthcare", "url": "https://pubmed.ncbi.nlm.nih.gov"},
|
|
109
|
+
{"name": "ClinicalTrials", "desc": "Clinical trials", "category": "Healthcare", "url": "https://clinicaltrials.gov"},
|
|
110
|
+
{"name": "OpenFDA", "desc": "FDA data API", "category": "Healthcare", "url": "https://open.fda.gov"},
|
|
111
|
+
{"name": "RxNorm", "desc": "Drug database", "category": "Healthcare", "url": "https://rxnorm.nlm.nih.gov"},
|
|
112
|
+
{"name": "DrugBank", "desc": "Drug database", "category": "Healthcare", "url": "https://drugbank.com"},
|
|
113
|
+
{"name": "OpenMRS", "desc": "Medical records", "category": "Healthcare", "url": "https://openmrs.org"},
|
|
114
|
+
|
|
115
|
+
# Legal & Compliance (30)
|
|
116
|
+
{"name": "Clio", "desc": "Legal practice management", "category": "Legal", "url": "https://clio.com"},
|
|
117
|
+
{"name": "PracticePanther", "desc": "Legal software", "category": "Legal", "url": "https://practicepanther.com"},
|
|
118
|
+
{"name": "MyCase", "desc": "Legal practice", "category": "Legal", "url": "https://mycase.com"},
|
|
119
|
+
{"name": "Rocket Lawyer", "desc": "Legal services", "category": "Legal", "url": "https://rocketlawyer.com"},
|
|
120
|
+
{"name": "LegalZoom", "desc": "Legal services", "category": "Legal", "url": "https://legalzoom.com"},
|
|
121
|
+
{"name": "Ironclad", "desc": "Contract management", "category": "Legal", "url": "https://ironcladapp.com"},
|
|
122
|
+
{"name": "DocuSign", "desc": "E-signature", "category": "Legal", "url": "https://docusign.com"},
|
|
123
|
+
{"name": "PandaDoc", "desc": "Document workflow", "category": "Legal", "url": "https://pandadoc.com"},
|
|
124
|
+
{"name": "HelloSign", "desc": "E-signature", "category": "Legal", "url": "https://hellosign.com"},
|
|
125
|
+
{"name": "SignNow", "desc": "E-signature", "category": "Legal", "url": "https://signnow.com"},
|
|
126
|
+
{"name": "Adobe Sign", "desc": "E-signature", "category": "Legal", "url": "https://acrobat.adobe.com/sign"},
|
|
127
|
+
{"name": "Juro", "desc": "Contract automation", "category": "Legal", "url": "https://juro.com"},
|
|
128
|
+
{"name": "Concord", "desc": "Contract management", "category": "Legal", "url": "https://concordnow.com"},
|
|
129
|
+
{"name": "Agiloft", "desc": "Contract lifecycle", "category": "Legal", "url": "https://agiloft.com"},
|
|
130
|
+
{"name": "ContractPodAi", "desc": "Contract AI", "category": "Legal", "url": "https://contractpodai.com"},
|
|
131
|
+
{"name": "Kira Systems", "desc": "Contract analysis", "category": "Legal", "url": "https://kirasystems.com"},
|
|
132
|
+
{"name": "Luminance", "desc": "Legal AI", "category": "Legal", "url": "https://luminance.com"},
|
|
133
|
+
{"name": "Eigen", "desc": "Document AI", "category": "Legal", "url": "https://eigen.co"},
|
|
134
|
+
{"name": "Lexion", "desc": "Contract management", "category": "Legal", "url": "https://lexion.ai"},
|
|
135
|
+
{"name": "LinkSquares", "desc": "Contract analytics", "category": "Legal", "url": "https://linksquares.com"},
|
|
136
|
+
{"name": "Checkbox", "desc": "Legal automation", "category": "Legal", "url": "https://checkbox.ai"},
|
|
137
|
+
{"name": "Neota Logic", "desc": "Legal automation", "category": "Legal", "url": "https://neotalogic.com"},
|
|
138
|
+
{"name": "Josef", "desc": "Legal automation", "category": "Legal", "url": "https://joseflegal.com"},
|
|
139
|
+
{"name": "Drata", "desc": "Compliance automation", "category": "Compliance", "url": "https://drata.com"},
|
|
140
|
+
{"name": "Vanta", "desc": "Security compliance", "category": "Compliance", "url": "https://vanta.com"},
|
|
141
|
+
{"name": "Secureframe", "desc": "Compliance automation", "category": "Compliance", "url": "https://secureframe.com"},
|
|
142
|
+
{"name": "Tugboat Logic", "desc": "Security assurance", "category": "Compliance", "url": "https://tugboatlogic.com"},
|
|
143
|
+
{"name": "Laika", "desc": "Compliance platform", "category": "Compliance", "url": "https://heylaika.com"},
|
|
144
|
+
{"name": "Scrut", "desc": "Compliance automation", "category": "Compliance", "url": "https://scrut.io"},
|
|
145
|
+
{"name": "Sprinto", "desc": "Compliance automation", "category": "Compliance", "url": "https://sprinto.com"},
|
|
146
|
+
|
|
147
|
+
# Real Estate & Property (30)
|
|
148
|
+
{"name": "Zillow", "desc": "Real estate data", "category": "Real Estate", "url": "https://zillow.com"},
|
|
149
|
+
{"name": "Redfin", "desc": "Real estate data", "category": "Real Estate", "url": "https://redfin.com"},
|
|
150
|
+
{"name": "Realtor.com", "desc": "Real estate listings", "category": "Real Estate", "url": "https://realtor.com"},
|
|
151
|
+
{"name": "Apartment List", "desc": "Rental listings", "category": "Real Estate", "url": "https://apartmentlist.com"},
|
|
152
|
+
{"name": "Rentometer", "desc": "Rent analysis", "category": "Real Estate", "url": "https://rentometer.com"},
|
|
153
|
+
{"name": "HouseCanary", "desc": "Property analytics", "category": "Real Estate", "url": "https://housecanary.com"},
|
|
154
|
+
{"name": "CoreLogic", "desc": "Property data", "category": "Real Estate", "url": "https://corelogic.com"},
|
|
155
|
+
{"name": "ATTOM", "desc": "Property data", "category": "Real Estate", "url": "https://attomdata.com"},
|
|
156
|
+
{"name": "Reonomy", "desc": "Commercial real estate", "category": "Real Estate", "url": "https://reonomy.com"},
|
|
157
|
+
{"name": "CoStar", "desc": "Commercial real estate", "category": "Real Estate", "url": "https://costar.com"},
|
|
158
|
+
{"name": "Yardi", "desc": "Property management", "category": "Real Estate", "url": "https://yardi.com"},
|
|
159
|
+
{"name": "AppFolio", "desc": "Property management", "category": "Real Estate", "url": "https://appfolio.com"},
|
|
160
|
+
{"name": "Buildium", "desc": "Property management", "category": "Real Estate", "url": "https://buildium.com"},
|
|
161
|
+
{"name": "RentRedi", "desc": "Landlord software", "category": "Real Estate", "url": "https://rentredi.com"},
|
|
162
|
+
{"name": "Avail", "desc": "Landlord platform", "category": "Real Estate", "url": "https://avail.co"},
|
|
163
|
+
{"name": "TurboTenant", "desc": "Landlord software", "category": "Real Estate", "url": "https://turbotenant.com"},
|
|
164
|
+
{"name": "Cozy", "desc": "Rental management", "category": "Real Estate", "url": "https://cozy.co"},
|
|
165
|
+
{"name": "DoorLoop", "desc": "Property management", "category": "Real Estate", "url": "https://doorloop.com"},
|
|
166
|
+
{"name": "Propertyware", "desc": "Property management", "category": "Real Estate", "url": "https://propertyware.com"},
|
|
167
|
+
{"name": "Entrata", "desc": "Property management", "category": "Real Estate", "url": "https://entrata.com"},
|
|
168
|
+
{"name": "RealPage", "desc": "Real estate software", "category": "Real Estate", "url": "https://realpage.com"},
|
|
169
|
+
{"name": "MRI Software", "desc": "Real estate software", "category": "Real Estate", "url": "https://mrisoftware.com"},
|
|
170
|
+
{"name": "Juniper Square", "desc": "Investment management", "category": "Real Estate", "url": "https://junipersquare.com"},
|
|
171
|
+
{"name": "Dealpath", "desc": "Deal management", "category": "Real Estate", "url": "https://dealpath.com"},
|
|
172
|
+
{"name": "Skyline AI", "desc": "Real estate AI", "category": "Real Estate", "url": "https://skyline.ai"},
|
|
173
|
+
{"name": "Cherre", "desc": "Real estate data", "category": "Real Estate", "url": "https://cherre.com"},
|
|
174
|
+
{"name": "Enodo", "desc": "Multifamily analytics", "category": "Real Estate", "url": "https://enodoinc.com"},
|
|
175
|
+
{"name": "CREXi", "desc": "Commercial marketplace", "category": "Real Estate", "url": "https://crexi.com"},
|
|
176
|
+
{"name": "Ten-X", "desc": "Real estate auction", "category": "Real Estate", "url": "https://ten-x.com"},
|
|
177
|
+
{"name": "Roofstock", "desc": "SFR marketplace", "category": "Real Estate", "url": "https://roofstock.com"},
|
|
178
|
+
|
|
179
|
+
# Education & Learning (30)
|
|
180
|
+
{"name": "Canvas", "desc": "Learning management", "category": "Education", "url": "https://instructure.com/canvas"},
|
|
181
|
+
{"name": "Blackboard", "desc": "Learning platform", "category": "Education", "url": "https://blackboard.com"},
|
|
182
|
+
{"name": "Moodle", "desc": "Open LMS", "category": "Education", "url": "https://moodle.org"},
|
|
183
|
+
{"name": "Schoology", "desc": "Learning management", "category": "Education", "url": "https://schoology.com"},
|
|
184
|
+
{"name": "Google Classroom", "desc": "Education platform", "category": "Education", "url": "https://classroom.google.com"},
|
|
185
|
+
{"name": "Edmodo", "desc": "Learning platform", "category": "Education", "url": "https://edmodo.com"},
|
|
186
|
+
{"name": "Seesaw", "desc": "Learning portfolio", "category": "Education", "url": "https://seesaw.me"},
|
|
187
|
+
{"name": "ClassDojo", "desc": "Classroom management", "category": "Education", "url": "https://classdojo.com"},
|
|
188
|
+
{"name": "Remind", "desc": "School communication", "category": "Education", "url": "https://remind.com"},
|
|
189
|
+
{"name": "Bloomz", "desc": "School communication", "category": "Education", "url": "https://bloomz.com"},
|
|
190
|
+
{"name": "ParentSquare", "desc": "School communication", "category": "Education", "url": "https://parentsquare.com"},
|
|
191
|
+
{"name": "Clever", "desc": "Digital learning", "category": "Education", "url": "https://clever.com"},
|
|
192
|
+
{"name": "ClassLink", "desc": "Single sign-on", "category": "Education", "url": "https://classlink.com"},
|
|
193
|
+
{"name": "Infinite Campus", "desc": "Student information", "category": "Education", "url": "https://infinitecampus.com"},
|
|
194
|
+
{"name": "PowerSchool", "desc": "Education technology", "category": "Education", "url": "https://powerschool.com"},
|
|
195
|
+
{"name": "Skyward", "desc": "School management", "category": "Education", "url": "https://skyward.com"},
|
|
196
|
+
{"name": "Teachable", "desc": "Course platform", "category": "Education", "url": "https://teachable.com"},
|
|
197
|
+
{"name": "Thinkific", "desc": "Course creation", "category": "Education", "url": "https://thinkific.com"},
|
|
198
|
+
{"name": "Kajabi", "desc": "Knowledge commerce", "category": "Education", "url": "https://kajabi.com"},
|
|
199
|
+
{"name": "Podia", "desc": "Digital products", "category": "Education", "url": "https://podia.com"},
|
|
200
|
+
{"name": "LearnWorlds", "desc": "Online school", "category": "Education", "url": "https://learnworlds.com"},
|
|
201
|
+
{"name": "Mighty Networks", "desc": "Community platform", "category": "Education", "url": "https://mightynetworks.com"},
|
|
202
|
+
{"name": "Circle", "desc": "Community platform", "category": "Education", "url": "https://circle.so"},
|
|
203
|
+
{"name": "Skool", "desc": "Community platform", "category": "Education", "url": "https://skool.com"},
|
|
204
|
+
{"name": "Coursera", "desc": "Online learning", "category": "Education", "url": "https://coursera.org"},
|
|
205
|
+
{"name": "Udemy", "desc": "Course marketplace", "category": "Education", "url": "https://udemy.com"},
|
|
206
|
+
{"name": "edX", "desc": "Online learning", "category": "Education", "url": "https://edx.org"},
|
|
207
|
+
{"name": "LinkedIn Learning", "desc": "Professional learning", "category": "Education", "url": "https://linkedin.com/learning"},
|
|
208
|
+
{"name": "Skillshare", "desc": "Creative learning", "category": "Education", "url": "https://skillshare.com"},
|
|
209
|
+
{"name": "MasterClass", "desc": "Expert classes", "category": "Education", "url": "https://masterclass.com"},
|
|
210
|
+
|
|
211
|
+
# Travel & Transportation (30)
|
|
212
|
+
{"name": "Amadeus", "desc": "Travel technology", "category": "Travel", "url": "https://amadeus.com"},
|
|
213
|
+
{"name": "Sabre", "desc": "Travel solutions", "category": "Travel", "url": "https://sabre.com"},
|
|
214
|
+
{"name": "Travelport", "desc": "Travel commerce", "category": "Travel", "url": "https://travelport.com"},
|
|
215
|
+
{"name": "Skyscanner", "desc": "Flight search", "category": "Travel", "url": "https://skyscanner.com"},
|
|
216
|
+
{"name": "Kiwi.com", "desc": "Travel booking", "category": "Travel", "url": "https://kiwi.com"},
|
|
217
|
+
{"name": "Rome2Rio", "desc": "Travel planning", "category": "Travel", "url": "https://rome2rio.com"},
|
|
218
|
+
{"name": "FlightAware", "desc": "Flight tracking", "category": "Travel", "url": "https://flightaware.com"},
|
|
219
|
+
{"name": "AviationStack", "desc": "Flight data", "category": "Travel", "url": "https://aviationstack.com"},
|
|
220
|
+
{"name": "OpenSky", "desc": "Flight tracking", "category": "Travel", "url": "https://opensky-network.org"},
|
|
221
|
+
{"name": "ADS-B Exchange", "desc": "Aircraft tracking", "category": "Travel", "url": "https://adsbexchange.com"},
|
|
222
|
+
{"name": "Booking.com", "desc": "Hotel booking", "category": "Travel", "url": "https://booking.com"},
|
|
223
|
+
{"name": "Hotels.com", "desc": "Hotel booking", "category": "Travel", "url": "https://hotels.com"},
|
|
224
|
+
{"name": "Expedia", "desc": "Travel booking", "category": "Travel", "url": "https://expedia.com"},
|
|
225
|
+
{"name": "Airbnb", "desc": "Vacation rentals", "category": "Travel", "url": "https://airbnb.com"},
|
|
226
|
+
{"name": "Vrbo", "desc": "Vacation rentals", "category": "Travel", "url": "https://vrbo.com"},
|
|
227
|
+
{"name": "Tripadvisor", "desc": "Travel reviews", "category": "Travel", "url": "https://tripadvisor.com"},
|
|
228
|
+
{"name": "Yelp", "desc": "Business reviews", "category": "Travel", "url": "https://yelp.com"},
|
|
229
|
+
{"name": "Foursquare", "desc": "Location data", "category": "Travel", "url": "https://foursquare.com"},
|
|
230
|
+
{"name": "HERE", "desc": "Location platform", "category": "Travel", "url": "https://here.com"},
|
|
231
|
+
{"name": "TomTom", "desc": "Navigation", "category": "Travel", "url": "https://tomtom.com"},
|
|
232
|
+
{"name": "Mapbox", "desc": "Maps platform", "category": "Travel", "url": "https://mapbox.com"},
|
|
233
|
+
{"name": "Google Maps", "desc": "Maps platform", "category": "Travel", "url": "https://maps.google.com"},
|
|
234
|
+
{"name": "Apple Maps", "desc": "Maps platform", "category": "Travel", "url": "https://developer.apple.com/maps"},
|
|
235
|
+
{"name": "OpenStreetMap", "desc": "Open maps", "category": "Travel", "url": "https://openstreetmap.org"},
|
|
236
|
+
{"name": "What3Words", "desc": "Location addressing", "category": "Travel", "url": "https://what3words.com"},
|
|
237
|
+
{"name": "Uber", "desc": "Ride-hailing", "category": "Travel", "url": "https://uber.com"},
|
|
238
|
+
{"name": "Lyft", "desc": "Ride-hailing", "category": "Travel", "url": "https://lyft.com"},
|
|
239
|
+
{"name": "Bolt", "desc": "Ride-hailing", "category": "Travel", "url": "https://bolt.eu"},
|
|
240
|
+
{"name": "Lime", "desc": "Micromobility", "category": "Travel", "url": "https://li.me"},
|
|
241
|
+
{"name": "Bird", "desc": "Micromobility", "category": "Travel", "url": "https://bird.co"},
|
|
242
|
+
|
|
243
|
+
# Gaming & Entertainment (40)
|
|
244
|
+
{"name": "Steam", "desc": "Gaming platform", "category": "Gaming", "url": "https://store.steampowered.com"},
|
|
245
|
+
{"name": "Epic Games", "desc": "Gaming platform", "category": "Gaming", "url": "https://epicgames.com"},
|
|
246
|
+
{"name": "GOG", "desc": "Gaming platform", "category": "Gaming", "url": "https://gog.com"},
|
|
247
|
+
{"name": "Humble Bundle", "desc": "Game bundles", "category": "Gaming", "url": "https://humblebundle.com"},
|
|
248
|
+
{"name": "itch.io", "desc": "Indie games", "category": "Gaming", "url": "https://itch.io"},
|
|
249
|
+
{"name": "IGDB", "desc": "Game database", "category": "Gaming", "url": "https://igdb.com"},
|
|
250
|
+
{"name": "RAWG", "desc": "Game database", "category": "Gaming", "url": "https://rawg.io"},
|
|
251
|
+
{"name": "Giant Bomb", "desc": "Game database", "category": "Gaming", "url": "https://giantbomb.com"},
|
|
252
|
+
{"name": "Twitch", "desc": "Streaming platform", "category": "Gaming", "url": "https://twitch.tv"},
|
|
253
|
+
{"name": "YouTube Gaming", "desc": "Gaming streaming", "category": "Gaming", "url": "https://youtube.com/gaming"},
|
|
254
|
+
{"name": "Kick", "desc": "Streaming platform", "category": "Gaming", "url": "https://kick.com"},
|
|
255
|
+
{"name": "Discord", "desc": "Gaming community", "category": "Gaming", "url": "https://discord.com"},
|
|
256
|
+
{"name": "Overwolf", "desc": "Gaming apps", "category": "Gaming", "url": "https://overwolf.com"},
|
|
257
|
+
{"name": "Playfab", "desc": "Game backend", "category": "Gaming", "url": "https://playfab.com"},
|
|
258
|
+
{"name": "GameSparks", "desc": "Game backend", "category": "Gaming", "url": "https://gamesparks.com"},
|
|
259
|
+
{"name": "Photon", "desc": "Multiplayer engine", "category": "Gaming", "url": "https://photonengine.com"},
|
|
260
|
+
{"name": "Nakama", "desc": "Game server", "category": "Gaming", "url": "https://heroiclabs.com"},
|
|
261
|
+
{"name": "Beamable", "desc": "Live game backend", "category": "Gaming", "url": "https://beamable.com"},
|
|
262
|
+
{"name": "Lootlocker", "desc": "Game backend", "category": "Gaming", "url": "https://lootlocker.io"},
|
|
263
|
+
{"name": "Braincloud", "desc": "Game backend", "category": "Gaming", "url": "https://getbraincloud.com"},
|
|
264
|
+
{"name": "Spotify", "desc": "Music streaming", "category": "Entertainment", "url": "https://spotify.com"},
|
|
265
|
+
{"name": "Apple Music", "desc": "Music streaming", "category": "Entertainment", "url": "https://apple.com/music"},
|
|
266
|
+
{"name": "Deezer", "desc": "Music streaming", "category": "Entertainment", "url": "https://deezer.com"},
|
|
267
|
+
{"name": "SoundCloud", "desc": "Audio platform", "category": "Entertainment", "url": "https://soundcloud.com"},
|
|
268
|
+
{"name": "Bandcamp", "desc": "Music platform", "category": "Entertainment", "url": "https://bandcamp.com"},
|
|
269
|
+
{"name": "Last.fm", "desc": "Music scrobbling", "category": "Entertainment", "url": "https://last.fm"},
|
|
270
|
+
{"name": "Genius", "desc": "Song lyrics", "category": "Entertainment", "url": "https://genius.com"},
|
|
271
|
+
{"name": "Musixmatch", "desc": "Lyrics API", "category": "Entertainment", "url": "https://musixmatch.com"},
|
|
272
|
+
{"name": "Shazam", "desc": "Music recognition", "category": "Entertainment", "url": "https://shazam.com"},
|
|
273
|
+
{"name": "ACRCloud", "desc": "Audio recognition", "category": "Entertainment", "url": "https://acrcloud.com"},
|
|
274
|
+
{"name": "Netflix", "desc": "Video streaming", "category": "Entertainment", "url": "https://netflix.com"},
|
|
275
|
+
{"name": "Disney+", "desc": "Video streaming", "category": "Entertainment", "url": "https://disneyplus.com"},
|
|
276
|
+
{"name": "HBO Max", "desc": "Video streaming", "category": "Entertainment", "url": "https://max.com"},
|
|
277
|
+
{"name": "Amazon Prime", "desc": "Video streaming", "category": "Entertainment", "url": "https://primevideo.com"},
|
|
278
|
+
{"name": "Hulu", "desc": "Video streaming", "category": "Entertainment", "url": "https://hulu.com"},
|
|
279
|
+
{"name": "TMDb", "desc": "Movie database", "category": "Entertainment", "url": "https://themoviedb.org"},
|
|
280
|
+
{"name": "OMDb", "desc": "Movie database", "category": "Entertainment", "url": "https://omdbapi.com"},
|
|
281
|
+
{"name": "TVMaze", "desc": "TV database", "category": "Entertainment", "url": "https://tvmaze.com"},
|
|
282
|
+
{"name": "Trakt", "desc": "TV tracking", "category": "Entertainment", "url": "https://trakt.tv"},
|
|
283
|
+
{"name": "Letterboxd", "desc": "Film social", "category": "Entertainment", "url": "https://letterboxd.com"},
|
|
284
|
+
|
|
285
|
+
# Sports & Fitness (30)
|
|
286
|
+
{"name": "ESPN", "desc": "Sports data", "category": "Sports", "url": "https://espn.com"},
|
|
287
|
+
{"name": "SportRadar", "desc": "Sports data", "category": "Sports", "url": "https://sportradar.com"},
|
|
288
|
+
{"name": "Stats Perform", "desc": "Sports analytics", "category": "Sports", "url": "https://statsperform.com"},
|
|
289
|
+
{"name": "API-Football", "desc": "Football data", "category": "Sports", "url": "https://api-football.com"},
|
|
290
|
+
{"name": "Football-Data", "desc": "Football data", "category": "Sports", "url": "https://football-data.org"},
|
|
291
|
+
{"name": "NBA", "desc": "Basketball data", "category": "Sports", "url": "https://nba.com"},
|
|
292
|
+
{"name": "NFL", "desc": "Football data", "category": "Sports", "url": "https://nfl.com"},
|
|
293
|
+
{"name": "MLB", "desc": "Baseball data", "category": "Sports", "url": "https://mlb.com"},
|
|
294
|
+
{"name": "NHL", "desc": "Hockey data", "category": "Sports", "url": "https://nhl.com"},
|
|
295
|
+
{"name": "F1", "desc": "Formula 1 data", "category": "Sports", "url": "https://formula1.com"},
|
|
296
|
+
{"name": "Ergast", "desc": "F1 historical data", "category": "Sports", "url": "https://ergast.com"},
|
|
297
|
+
{"name": "UFC", "desc": "MMA data", "category": "Sports", "url": "https://ufc.com"},
|
|
298
|
+
{"name": "Oddsjam", "desc": "Sports betting", "category": "Sports", "url": "https://oddsjam.com"},
|
|
299
|
+
{"name": "The Odds API", "desc": "Betting odds", "category": "Sports", "url": "https://the-odds-api.com"},
|
|
300
|
+
{"name": "BetRadar", "desc": "Betting data", "category": "Sports", "url": "https://betradar.com"},
|
|
301
|
+
{"name": "Mindbody", "desc": "Fitness business", "category": "Fitness", "url": "https://mindbody.io"},
|
|
302
|
+
{"name": "Gympass", "desc": "Fitness benefits", "category": "Fitness", "url": "https://gympass.com"},
|
|
303
|
+
{"name": "ClassPass", "desc": "Fitness membership", "category": "Fitness", "url": "https://classpass.com"},
|
|
304
|
+
{"name": "Peloton", "desc": "Connected fitness", "category": "Fitness", "url": "https://onepeloton.com"},
|
|
305
|
+
{"name": "Zwift", "desc": "Virtual cycling", "category": "Fitness", "url": "https://zwift.com"},
|
|
306
|
+
{"name": "TrainerRoad", "desc": "Cycling training", "category": "Fitness", "url": "https://trainerroad.com"},
|
|
307
|
+
{"name": "Training Peaks", "desc": "Athletic training", "category": "Fitness", "url": "https://trainingpeaks.com"},
|
|
308
|
+
{"name": "Final Surge", "desc": "Athletic training", "category": "Fitness", "url": "https://finalsurge.com"},
|
|
309
|
+
{"name": "Today's Plan", "desc": "Endurance training", "category": "Fitness", "url": "https://todaysplan.com.au"},
|
|
310
|
+
{"name": "Intervals.icu", "desc": "Training analytics", "category": "Fitness", "url": "https://intervals.icu"},
|
|
311
|
+
{"name": "Runalyze", "desc": "Running analytics", "category": "Fitness", "url": "https://runalyze.com"},
|
|
312
|
+
{"name": "Smashrun", "desc": "Running analytics", "category": "Fitness", "url": "https://smashrun.com"},
|
|
313
|
+
{"name": "Ride With GPS", "desc": "Cycling platform", "category": "Fitness", "url": "https://ridewithgps.com"},
|
|
314
|
+
{"name": "Komoot", "desc": "Route planning", "category": "Fitness", "url": "https://komoot.com"},
|
|
315
|
+
{"name": "AllTrails", "desc": "Trail database", "category": "Fitness", "url": "https://alltrails.com"},
|
|
316
|
+
|
|
317
|
+
# News & Media (30)
|
|
318
|
+
{"name": "NewsAPI", "desc": "News aggregation", "category": "News", "url": "https://newsapi.org"},
|
|
319
|
+
{"name": "GNews", "desc": "News API", "category": "News", "url": "https://gnews.io"},
|
|
320
|
+
{"name": "Currents", "desc": "News API", "category": "News", "url": "https://currentsapi.services"},
|
|
321
|
+
{"name": "Newscatcher", "desc": "News API", "category": "News", "url": "https://newscatcherapi.com"},
|
|
322
|
+
{"name": "Mediastack", "desc": "News data", "category": "News", "url": "https://mediastack.com"},
|
|
323
|
+
{"name": "Perigon", "desc": "News API", "category": "News", "url": "https://goperigon.com"},
|
|
324
|
+
{"name": "Event Registry", "desc": "News analytics", "category": "News", "url": "https://eventregistry.org"},
|
|
325
|
+
{"name": "GDELT", "desc": "Global events", "category": "News", "url": "https://gdeltproject.org"},
|
|
326
|
+
{"name": "RSS", "desc": "Feed syndication", "category": "News", "url": "https://rssboard.org"},
|
|
327
|
+
{"name": "Feedly", "desc": "RSS reader", "category": "News", "url": "https://feedly.com"},
|
|
328
|
+
{"name": "Inoreader", "desc": "RSS reader", "category": "News", "url": "https://inoreader.com"},
|
|
329
|
+
{"name": "Readwise", "desc": "Reading highlights", "category": "News", "url": "https://readwise.io"},
|
|
330
|
+
{"name": "Instapaper", "desc": "Read later", "category": "News", "url": "https://instapaper.com"},
|
|
331
|
+
{"name": "Pocket", "desc": "Read later", "category": "News", "url": "https://getpocket.com"},
|
|
332
|
+
{"name": "Matter", "desc": "Reading app", "category": "News", "url": "https://hq.getmatter.com"},
|
|
333
|
+
{"name": "Hacker News", "desc": "Tech news", "category": "News", "url": "https://news.ycombinator.com"},
|
|
334
|
+
{"name": "Reddit", "desc": "Social news", "category": "News", "url": "https://reddit.com"},
|
|
335
|
+
{"name": "Product Hunt", "desc": "Product discovery", "category": "News", "url": "https://producthunt.com"},
|
|
336
|
+
{"name": "Lobsters", "desc": "Tech news", "category": "News", "url": "https://lobste.rs"},
|
|
337
|
+
{"name": "DEV", "desc": "Developer community", "category": "News", "url": "https://dev.to"},
|
|
338
|
+
{"name": "Hashnode", "desc": "Developer blogs", "category": "News", "url": "https://hashnode.com"},
|
|
339
|
+
{"name": "Medium", "desc": "Publishing platform", "category": "News", "url": "https://medium.com"},
|
|
340
|
+
{"name": "Substack", "desc": "Newsletter platform", "category": "News", "url": "https://substack.com"},
|
|
341
|
+
{"name": "Revue", "desc": "Newsletter platform", "category": "News", "url": "https://getrevue.co"},
|
|
342
|
+
{"name": "TechCrunch", "desc": "Tech news", "category": "News", "url": "https://techcrunch.com"},
|
|
343
|
+
{"name": "The Verge", "desc": "Tech news", "category": "News", "url": "https://theverge.com"},
|
|
344
|
+
{"name": "Wired", "desc": "Tech culture", "category": "News", "url": "https://wired.com"},
|
|
345
|
+
{"name": "Ars Technica", "desc": "Tech news", "category": "News", "url": "https://arstechnica.com"},
|
|
346
|
+
{"name": "Engadget", "desc": "Tech news", "category": "News", "url": "https://engadget.com"},
|
|
347
|
+
{"name": "Gizmodo", "desc": "Tech news", "category": "News", "url": "https://gizmodo.com"},
|
|
348
|
+
|
|
349
|
+
# Finance & Accounting (40)
|
|
350
|
+
{"name": "Plaid", "desc": "Banking API", "category": "Finance", "url": "https://plaid.com"},
|
|
351
|
+
{"name": "Teller", "desc": "Banking API", "category": "Finance", "url": "https://teller.io"},
|
|
352
|
+
{"name": "MX", "desc": "Financial data", "category": "Finance", "url": "https://mx.com"},
|
|
353
|
+
{"name": "Finicity", "desc": "Financial data", "category": "Finance", "url": "https://finicity.com"},
|
|
354
|
+
{"name": "Yodlee", "desc": "Financial data", "category": "Finance", "url": "https://yodlee.com"},
|
|
355
|
+
{"name": "Akoya", "desc": "Financial data", "category": "Finance", "url": "https://akoya.com"},
|
|
356
|
+
{"name": "Argyle", "desc": "Employment data", "category": "Finance", "url": "https://argyle.com"},
|
|
357
|
+
{"name": "Pinwheel", "desc": "Payroll data", "category": "Finance", "url": "https://pinwheelapi.com"},
|
|
358
|
+
{"name": "Atomic", "desc": "Payroll connectivity", "category": "Finance", "url": "https://atomicfi.com"},
|
|
359
|
+
{"name": "Truework", "desc": "Income verification", "category": "Finance", "url": "https://truework.com"},
|
|
360
|
+
{"name": "Heron Data", "desc": "Transaction data", "category": "Finance", "url": "https://herondata.io"},
|
|
361
|
+
{"name": "Spade", "desc": "Transaction enrichment", "category": "Finance", "url": "https://spade.com"},
|
|
362
|
+
{"name": "Ntropy", "desc": "Transaction AI", "category": "Finance", "url": "https://ntropy.com"},
|
|
363
|
+
{"name": "QuickBooks", "desc": "Accounting software", "category": "Finance", "url": "https://quickbooks.intuit.com"},
|
|
364
|
+
{"name": "Xero", "desc": "Accounting software", "category": "Finance", "url": "https://xero.com"},
|
|
365
|
+
{"name": "FreshBooks", "desc": "Invoicing software", "category": "Finance", "url": "https://freshbooks.com"},
|
|
366
|
+
{"name": "Wave", "desc": "Free accounting", "category": "Finance", "url": "https://waveapps.com"},
|
|
367
|
+
{"name": "Sage", "desc": "Business software", "category": "Finance", "url": "https://sage.com"},
|
|
368
|
+
{"name": "NetSuite", "desc": "ERP system", "category": "Finance", "url": "https://netsuite.com"},
|
|
369
|
+
{"name": "Zoho Books", "desc": "Accounting software", "category": "Finance", "url": "https://zoho.com/books"},
|
|
370
|
+
{"name": "Mercury", "desc": "Banking for startups", "category": "Finance", "url": "https://mercury.com"},
|
|
371
|
+
{"name": "Brex", "desc": "Corporate cards", "category": "Finance", "url": "https://brex.com"},
|
|
372
|
+
{"name": "Ramp", "desc": "Corporate cards", "category": "Finance", "url": "https://ramp.com"},
|
|
373
|
+
{"name": "Airbase", "desc": "Spend management", "category": "Finance", "url": "https://airbase.io"},
|
|
374
|
+
{"name": "Expensify", "desc": "Expense management", "category": "Finance", "url": "https://expensify.com"},
|
|
375
|
+
{"name": "Divvy", "desc": "Expense management", "category": "Finance", "url": "https://divvy.co"},
|
|
376
|
+
{"name": "Zip", "desc": "Procurement", "category": "Finance", "url": "https://ziphq.com"},
|
|
377
|
+
{"name": "Coupa", "desc": "Business spend", "category": "Finance", "url": "https://coupa.com"},
|
|
378
|
+
{"name": "SAP Ariba", "desc": "Procurement", "category": "Finance", "url": "https://ariba.com"},
|
|
379
|
+
{"name": "Bill.com", "desc": "AP/AR automation", "category": "Finance", "url": "https://bill.com"},
|
|
380
|
+
{"name": "Stampli", "desc": "AP automation", "category": "Finance", "url": "https://stampli.com"},
|
|
381
|
+
{"name": "Tipalti", "desc": "Payables automation", "category": "Finance", "url": "https://tipalti.com"},
|
|
382
|
+
{"name": "Melio", "desc": "B2B payments", "category": "Finance", "url": "https://meliopayments.com"},
|
|
383
|
+
{"name": "Routable", "desc": "B2B payments", "category": "Finance", "url": "https://routable.com"},
|
|
384
|
+
{"name": "Gusto", "desc": "Payroll", "category": "Finance", "url": "https://gusto.com"},
|
|
385
|
+
{"name": "Rippling", "desc": "HR and payroll", "category": "Finance", "url": "https://rippling.com"},
|
|
386
|
+
{"name": "Deel", "desc": "Global payroll", "category": "Finance", "url": "https://deel.com"},
|
|
387
|
+
{"name": "Remote", "desc": "Global HR", "category": "Finance", "url": "https://remote.com"},
|
|
388
|
+
{"name": "Papaya Global", "desc": "Global payroll", "category": "Finance", "url": "https://papayaglobal.com"},
|
|
389
|
+
{"name": "Pilot", "desc": "Bookkeeping", "category": "Finance", "url": "https://pilot.com"},
|
|
390
|
+
]
|
|
391
|
+
|
|
392
|
+
def main():
|
|
393
|
+
print("🦞 APIClaw Night Expansion - Batch 2")
|
|
394
|
+
print("=" * 50)
|
|
395
|
+
|
|
396
|
+
registry = load_registry()
|
|
397
|
+
existing_ids = get_existing_ids(registry)
|
|
398
|
+
|
|
399
|
+
print(f"Current APIs: {len(registry['apis'])}")
|
|
400
|
+
|
|
401
|
+
added = 0
|
|
402
|
+
for api in NEW_APIS:
|
|
403
|
+
api_id = generate_id(api['name'])
|
|
404
|
+
|
|
405
|
+
if api_id in existing_ids:
|
|
406
|
+
continue
|
|
407
|
+
|
|
408
|
+
new_api = {
|
|
409
|
+
"id": api_id,
|
|
410
|
+
"name": api['name'],
|
|
411
|
+
"description": api['desc'],
|
|
412
|
+
"category": api['category'],
|
|
413
|
+
"authType": "apiKey",
|
|
414
|
+
"baseUrl": api['url'],
|
|
415
|
+
"docsUrl": api['url'],
|
|
416
|
+
"addedAt": datetime.now().isoformat()
|
|
417
|
+
}
|
|
418
|
+
|
|
419
|
+
registry['apis'].append(new_api)
|
|
420
|
+
existing_ids.add(api_id)
|
|
421
|
+
added += 1
|
|
422
|
+
|
|
423
|
+
save_registry(registry)
|
|
424
|
+
|
|
425
|
+
print(f"Added: +{added} APIs")
|
|
426
|
+
print(f"Total: {len(registry['apis'])}")
|
|
427
|
+
|
|
428
|
+
return added
|
|
429
|
+
|
|
430
|
+
if __name__ == "__main__":
|
|
431
|
+
main()
|