@nordsym/apiclaw 1.1.1 → 1.1.3
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/STATUS.md +1 -1
- package/dist/credentials.d.ts.map +1 -1
- package/dist/credentials.js +26 -0
- package/dist/credentials.js.map +1 -1
- package/dist/execute.d.ts.map +1 -1
- package/dist/execute.js +162 -0
- package/dist/execute.js.map +1 -1
- package/dist/index.js +2 -1
- package/dist/index.js.map +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 +1 -116054
- package/landing/src/app/docs/page.tsx +300 -0
- package/landing/src/app/page.tsx +1 -1
- package/landing/src/lib/apis.json +1 -116054
- package/landing/src/lib/stats.json +4 -4
- package/package.json +1 -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-06.py +325 -0
- package/scripts/night-expansion.py +441 -0
- package/scripts/super-final-06.py +341 -0
- package/src/credentials.ts +28 -0
- package/src/execute.ts +193 -0
- package/src/index.ts +2 -1
- package/src/proxy.ts +1 -1
- package/src/registry/apis.json +1 -116054
|
@@ -0,0 +1,512 @@
|
|
|
1
|
+
#!/usr/bin/env python3
|
|
2
|
+
"""
|
|
3
|
+
APIClaw Mega Final Batch - 06:00
|
|
4
|
+
Add 600+ more APIs to hit 15,000+
|
|
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.now().strftime('%Y-%m-%d')
|
|
19
|
+
data['count'] = len(data['apis'])
|
|
20
|
+
with open(REGISTRY_PATH, 'w') as f:
|
|
21
|
+
json.dump(data, f, indent=2)
|
|
22
|
+
|
|
23
|
+
def get_existing_ids(data):
|
|
24
|
+
return {api.get('id', '').lower() for api in data['apis']}
|
|
25
|
+
|
|
26
|
+
# Generate APIs from multiple niche categories
|
|
27
|
+
def generate_niche_apis():
|
|
28
|
+
apis = []
|
|
29
|
+
|
|
30
|
+
# Cryptocurrency Exchange APIs
|
|
31
|
+
exchanges = [
|
|
32
|
+
("binance", "Binance", "Largest crypto exchange"),
|
|
33
|
+
("coinbase-pro", "Coinbase Pro", "Professional crypto trading"),
|
|
34
|
+
("kraken", "Kraken", "Secure crypto exchange"),
|
|
35
|
+
("kucoin", "KuCoin", "Global crypto exchange"),
|
|
36
|
+
("bybit", "Bybit", "Derivatives trading platform"),
|
|
37
|
+
("okx", "OKX", "Web3 exchange and wallet"),
|
|
38
|
+
("gate-io", "Gate.io", "Crypto trading platform"),
|
|
39
|
+
("huobi", "Huobi", "Digital asset exchange"),
|
|
40
|
+
("bitfinex", "Bitfinex", "Advanced trading platform"),
|
|
41
|
+
("bitstamp", "Bitstamp", "European crypto exchange"),
|
|
42
|
+
("gemini", "Gemini", "Regulated crypto exchange"),
|
|
43
|
+
("ftx-us", "FTX US", "US crypto exchange"),
|
|
44
|
+
("crypto-com", "Crypto.com", "Crypto app and exchange"),
|
|
45
|
+
("bitget", "Bitget", "Copy trading exchange"),
|
|
46
|
+
("mexc", "MEXC", "Global crypto exchange"),
|
|
47
|
+
("phemex", "Phemex", "Derivatives exchange"),
|
|
48
|
+
("deribit", "Deribit", "Options and futures"),
|
|
49
|
+
("bitmex", "BitMEX", "Bitcoin mercantile exchange"),
|
|
50
|
+
("bitso", "Bitso", "Latin American exchange"),
|
|
51
|
+
("luno", "Luno", "African crypto exchange"),
|
|
52
|
+
]
|
|
53
|
+
for id, name, desc in exchanges:
|
|
54
|
+
apis.append({
|
|
55
|
+
"id": f"{id}-api",
|
|
56
|
+
"name": f"{name} API",
|
|
57
|
+
"description": f"{desc} - trading and market data",
|
|
58
|
+
"category": "crypto",
|
|
59
|
+
"auth": "apiKey",
|
|
60
|
+
"https": True,
|
|
61
|
+
"link": f"https://www.{id.replace('-', '')}.com/api",
|
|
62
|
+
"pricing": "freemium",
|
|
63
|
+
"keywords": ["crypto", "exchange", "trading"],
|
|
64
|
+
"cors": "unknown"
|
|
65
|
+
})
|
|
66
|
+
|
|
67
|
+
# Blockchain/Web3 APIs
|
|
68
|
+
blockchains = [
|
|
69
|
+
("ethereum-rpc", "Ethereum JSON-RPC", "Ethereum node API"),
|
|
70
|
+
("infura", "Infura", "Web3 infrastructure"),
|
|
71
|
+
("alchemy", "Alchemy", "Web3 development platform"),
|
|
72
|
+
("quicknode", "QuickNode", "Blockchain infrastructure"),
|
|
73
|
+
("moralis", "Moralis", "Web3 development platform"),
|
|
74
|
+
("thegraph", "The Graph", "Blockchain indexing"),
|
|
75
|
+
("covalent", "Covalent", "Unified blockchain API"),
|
|
76
|
+
("etherscan", "Etherscan", "Ethereum block explorer"),
|
|
77
|
+
("polygonscan", "Polygonscan", "Polygon block explorer"),
|
|
78
|
+
("bscscan", "BscScan", "BSC block explorer"),
|
|
79
|
+
("arbiscan", "Arbiscan", "Arbitrum explorer"),
|
|
80
|
+
("optimism-scan", "OP Mainnet Explorer", "Optimism explorer"),
|
|
81
|
+
("helius", "Helius", "Solana developer platform"),
|
|
82
|
+
("ankr", "Ankr", "Distributed infrastructure"),
|
|
83
|
+
("chainstack", "Chainstack", "Managed blockchain services"),
|
|
84
|
+
("getblock", "GetBlock", "RPC node provider"),
|
|
85
|
+
("blastapi", "Blast API", "Blockchain API provider"),
|
|
86
|
+
("nodereal", "NodeReal", "Blockchain infrastructure"),
|
|
87
|
+
("chainlink", "Chainlink", "Oracle network"),
|
|
88
|
+
("opensea", "OpenSea", "NFT marketplace API"),
|
|
89
|
+
("rarible", "Rarible", "NFT marketplace protocol"),
|
|
90
|
+
("nftport", "NFTPort", "NFT infrastructure"),
|
|
91
|
+
("reservoir", "Reservoir", "NFT liquidity protocol"),
|
|
92
|
+
("simplehash", "SimpleHash", "NFT data API"),
|
|
93
|
+
("center", "Center", "NFT verification"),
|
|
94
|
+
]
|
|
95
|
+
for id, name, desc in blockchains:
|
|
96
|
+
apis.append({
|
|
97
|
+
"id": id,
|
|
98
|
+
"name": f"{name} API",
|
|
99
|
+
"description": f"{desc}",
|
|
100
|
+
"category": "blockchain",
|
|
101
|
+
"auth": "apiKey",
|
|
102
|
+
"https": True,
|
|
103
|
+
"link": f"https://{id.replace('-', '')}.io/docs",
|
|
104
|
+
"pricing": "freemium",
|
|
105
|
+
"keywords": ["blockchain", "web3", "crypto"],
|
|
106
|
+
"cors": "unknown"
|
|
107
|
+
})
|
|
108
|
+
|
|
109
|
+
# DeFi APIs
|
|
110
|
+
defi = [
|
|
111
|
+
("uniswap", "Uniswap", "DEX protocol"),
|
|
112
|
+
("1inch", "1inch", "DEX aggregator"),
|
|
113
|
+
("0x-api", "0x API", "DEX liquidity"),
|
|
114
|
+
("paraswap", "ParaSwap", "DeFi middleware"),
|
|
115
|
+
("kyberswap", "KyberSwap", "DEX aggregator"),
|
|
116
|
+
("curve", "Curve Finance", "Stablecoin DEX"),
|
|
117
|
+
("aave", "Aave", "Lending protocol"),
|
|
118
|
+
("compound", "Compound", "DeFi lending"),
|
|
119
|
+
("maker", "MakerDAO", "DAI stablecoin"),
|
|
120
|
+
("lido", "Lido", "Liquid staking"),
|
|
121
|
+
("yearn", "Yearn Finance", "Yield aggregator"),
|
|
122
|
+
("convex", "Convex Finance", "Curve booster"),
|
|
123
|
+
("balancer", "Balancer", "Automated portfolio"),
|
|
124
|
+
("sushiswap", "SushiSwap", "DEX protocol"),
|
|
125
|
+
("pancakeswap", "PancakeSwap", "BSC DEX"),
|
|
126
|
+
("jupiter-ag", "Jupiter", "Solana aggregator"),
|
|
127
|
+
("raydium", "Raydium", "Solana AMM"),
|
|
128
|
+
("orca", "Orca", "Solana DEX"),
|
|
129
|
+
("gmx", "GMX", "Decentralized perps"),
|
|
130
|
+
("synthetix", "Synthetix", "Synthetic assets"),
|
|
131
|
+
]
|
|
132
|
+
for id, name, desc in defi:
|
|
133
|
+
apis.append({
|
|
134
|
+
"id": f"{id}-protocol",
|
|
135
|
+
"name": f"{name} Protocol API",
|
|
136
|
+
"description": f"{desc} - DeFi protocol",
|
|
137
|
+
"category": "defi",
|
|
138
|
+
"auth": "None",
|
|
139
|
+
"https": True,
|
|
140
|
+
"link": f"https://{id.replace('-', '')}.finance/docs",
|
|
141
|
+
"pricing": "free",
|
|
142
|
+
"keywords": ["defi", "crypto", "protocol"],
|
|
143
|
+
"cors": "unknown"
|
|
144
|
+
})
|
|
145
|
+
|
|
146
|
+
# Cloud Provider APIs
|
|
147
|
+
cloud = [
|
|
148
|
+
("aws-s3", "AWS S3", "Object storage"),
|
|
149
|
+
("aws-lambda", "AWS Lambda", "Serverless compute"),
|
|
150
|
+
("aws-dynamodb", "AWS DynamoDB", "NoSQL database"),
|
|
151
|
+
("aws-sqs", "AWS SQS", "Message queuing"),
|
|
152
|
+
("aws-sns", "AWS SNS", "Push notifications"),
|
|
153
|
+
("aws-ses", "AWS SES", "Email service"),
|
|
154
|
+
("aws-cognito", "AWS Cognito", "User authentication"),
|
|
155
|
+
("aws-cloudfront", "AWS CloudFront", "CDN"),
|
|
156
|
+
("aws-ec2", "AWS EC2", "Virtual servers"),
|
|
157
|
+
("aws-ecs", "AWS ECS", "Container service"),
|
|
158
|
+
("aws-eks", "AWS EKS", "Kubernetes service"),
|
|
159
|
+
("aws-rds", "AWS RDS", "Managed databases"),
|
|
160
|
+
("gcp-storage", "GCP Cloud Storage", "Object storage"),
|
|
161
|
+
("gcp-functions", "GCP Cloud Functions", "Serverless"),
|
|
162
|
+
("gcp-firestore", "GCP Firestore", "NoSQL database"),
|
|
163
|
+
("gcp-pubsub", "GCP Pub/Sub", "Messaging"),
|
|
164
|
+
("gcp-bigquery", "GCP BigQuery", "Data warehouse"),
|
|
165
|
+
("gcp-run", "GCP Cloud Run", "Serverless containers"),
|
|
166
|
+
("gcp-gke", "GCP GKE", "Kubernetes engine"),
|
|
167
|
+
("azure-blob", "Azure Blob Storage", "Object storage"),
|
|
168
|
+
("azure-functions", "Azure Functions", "Serverless"),
|
|
169
|
+
("azure-cosmos", "Azure Cosmos DB", "Global database"),
|
|
170
|
+
("azure-service-bus", "Azure Service Bus", "Messaging"),
|
|
171
|
+
("azure-aks", "Azure AKS", "Kubernetes service"),
|
|
172
|
+
("digitalocean-spaces", "DigitalOcean Spaces", "Object storage"),
|
|
173
|
+
("digitalocean-droplets", "DigitalOcean Droplets", "Virtual servers"),
|
|
174
|
+
("digitalocean-k8s", "DigitalOcean Kubernetes", "Managed K8s"),
|
|
175
|
+
("linode-obj", "Linode Object Storage", "S3-compatible"),
|
|
176
|
+
("linode-compute", "Linode Compute", "Cloud VMs"),
|
|
177
|
+
("vultr", "Vultr", "Cloud infrastructure"),
|
|
178
|
+
("hetzner", "Hetzner Cloud", "German cloud hosting"),
|
|
179
|
+
("scaleway", "Scaleway", "European cloud"),
|
|
180
|
+
("ovh-cloud", "OVH Cloud", "European infrastructure"),
|
|
181
|
+
("backblaze-b2", "Backblaze B2", "Cheap object storage"),
|
|
182
|
+
("wasabi", "Wasabi", "Hot cloud storage"),
|
|
183
|
+
]
|
|
184
|
+
for id, name, desc in cloud:
|
|
185
|
+
apis.append({
|
|
186
|
+
"id": id,
|
|
187
|
+
"name": f"{name} API",
|
|
188
|
+
"description": desc,
|
|
189
|
+
"category": "cloud",
|
|
190
|
+
"auth": "apiKey",
|
|
191
|
+
"https": True,
|
|
192
|
+
"link": f"https://docs.{id.split('-')[0]}.com",
|
|
193
|
+
"pricing": "paid",
|
|
194
|
+
"keywords": ["cloud", "infrastructure", "hosting"],
|
|
195
|
+
"cors": "unknown"
|
|
196
|
+
})
|
|
197
|
+
|
|
198
|
+
# Marketing/SEO APIs
|
|
199
|
+
marketing = [
|
|
200
|
+
("semrush", "Semrush", "SEO and marketing"),
|
|
201
|
+
("ahrefs", "Ahrefs", "SEO tools"),
|
|
202
|
+
("moz", "Moz", "SEO software"),
|
|
203
|
+
("screaming-frog", "Screaming Frog", "SEO spider"),
|
|
204
|
+
("similarweb", "SimilarWeb", "Website analytics"),
|
|
205
|
+
("spyfu", "SpyFu", "Competitor research"),
|
|
206
|
+
("serpstat", "Serpstat", "All-in-one SEO"),
|
|
207
|
+
("majestic", "Majestic", "Link intelligence"),
|
|
208
|
+
("buzzsumo", "BuzzSumo", "Content research"),
|
|
209
|
+
("brandwatch", "Brandwatch", "Social listening"),
|
|
210
|
+
("mention", "Mention", "Media monitoring"),
|
|
211
|
+
("hootsuite", "Hootsuite", "Social media management"),
|
|
212
|
+
("buffer", "Buffer", "Social scheduling"),
|
|
213
|
+
("sprout-social", "Sprout Social", "Social management"),
|
|
214
|
+
("later", "Later", "Visual social planning"),
|
|
215
|
+
("canva", "Canva", "Design platform"),
|
|
216
|
+
("figma", "Figma", "Design collaboration"),
|
|
217
|
+
("hotjar", "Hotjar", "Behavior analytics"),
|
|
218
|
+
("crazy-egg", "Crazy Egg", "Heatmaps"),
|
|
219
|
+
("fullstory", "FullStory", "Digital experience"),
|
|
220
|
+
("logrocket", "LogRocket", "Session replay"),
|
|
221
|
+
("mouseflow", "Mouseflow", "User behavior"),
|
|
222
|
+
("lucky-orange", "Lucky Orange", "Website optimization"),
|
|
223
|
+
("optimizely", "Optimizely", "Experimentation"),
|
|
224
|
+
("vwo", "VWO", "A/B testing"),
|
|
225
|
+
("unbounce", "Unbounce", "Landing pages"),
|
|
226
|
+
("leadpages", "Leadpages", "Lead generation"),
|
|
227
|
+
("instapage", "Instapage", "Landing pages"),
|
|
228
|
+
("convertkit", "ConvertKit", "Email for creators"),
|
|
229
|
+
("activecampaign", "ActiveCampaign", "Marketing automation"),
|
|
230
|
+
("drip", "Drip", "E-commerce CRM"),
|
|
231
|
+
("klaviyo", "Klaviyo", "E-commerce marketing"),
|
|
232
|
+
("omnisend", "Omnisend", "Omnichannel marketing"),
|
|
233
|
+
("sendinblue", "Brevo (Sendinblue)", "Marketing platform"),
|
|
234
|
+
("getresponse", "GetResponse", "Email marketing"),
|
|
235
|
+
("aweber", "AWeber", "Email marketing"),
|
|
236
|
+
("constantcontact", "Constant Contact", "Email marketing"),
|
|
237
|
+
("beehiiv", "Beehiiv", "Newsletter platform"),
|
|
238
|
+
("substack", "Substack", "Newsletter publishing"),
|
|
239
|
+
("ghost", "Ghost", "Publishing platform"),
|
|
240
|
+
]
|
|
241
|
+
for id, name, desc in marketing:
|
|
242
|
+
apis.append({
|
|
243
|
+
"id": f"{id}-api",
|
|
244
|
+
"name": f"{name} API",
|
|
245
|
+
"description": f"{desc} API",
|
|
246
|
+
"category": "marketing",
|
|
247
|
+
"auth": "apiKey",
|
|
248
|
+
"https": True,
|
|
249
|
+
"link": f"https://developer.{id.replace('-', '')}.com",
|
|
250
|
+
"pricing": "paid",
|
|
251
|
+
"keywords": ["marketing", "seo", "analytics"],
|
|
252
|
+
"cors": "unknown"
|
|
253
|
+
})
|
|
254
|
+
|
|
255
|
+
# Survey/Feedback APIs
|
|
256
|
+
surveys = [
|
|
257
|
+
("typeform", "Typeform", "Conversational forms"),
|
|
258
|
+
("surveymonkey", "SurveyMonkey", "Online surveys"),
|
|
259
|
+
("google-forms", "Google Forms", "Free forms"),
|
|
260
|
+
("jotform", "JotForm", "Form builder"),
|
|
261
|
+
("formstack", "Formstack", "Workflow forms"),
|
|
262
|
+
("wufoo", "Wufoo", "Online forms"),
|
|
263
|
+
("paperform", "Paperform", "Beautiful forms"),
|
|
264
|
+
("tally", "Tally", "Free form builder"),
|
|
265
|
+
("formbricks", "Formbricks", "Open-source surveys"),
|
|
266
|
+
("delighted", "Delighted", "NPS surveys"),
|
|
267
|
+
("satismeter", "SatisMeter", "NPS feedback"),
|
|
268
|
+
("uservoice", "UserVoice", "Product feedback"),
|
|
269
|
+
("canny", "Canny", "Feature voting"),
|
|
270
|
+
("productboard", "Productboard", "Product management"),
|
|
271
|
+
("feedbackfish", "FeedbackFish", "Website feedback"),
|
|
272
|
+
]
|
|
273
|
+
for id, name, desc in surveys:
|
|
274
|
+
apis.append({
|
|
275
|
+
"id": f"{id}-api",
|
|
276
|
+
"name": f"{name} API",
|
|
277
|
+
"description": f"{desc} integration",
|
|
278
|
+
"category": "surveys",
|
|
279
|
+
"auth": "apiKey",
|
|
280
|
+
"https": True,
|
|
281
|
+
"link": f"https://developer.{id.replace('-', '')}.com",
|
|
282
|
+
"pricing": "freemium",
|
|
283
|
+
"keywords": ["forms", "surveys", "feedback"],
|
|
284
|
+
"cors": "unknown"
|
|
285
|
+
})
|
|
286
|
+
|
|
287
|
+
# Logistics/Shipping APIs
|
|
288
|
+
logistics = [
|
|
289
|
+
("ups", "UPS", "Package delivery"),
|
|
290
|
+
("fedex", "FedEx", "Shipping and logistics"),
|
|
291
|
+
("usps", "USPS", "US Postal Service"),
|
|
292
|
+
("dhl", "DHL", "International shipping"),
|
|
293
|
+
("dpd", "DPD", "European courier"),
|
|
294
|
+
("gls", "GLS", "Parcel delivery"),
|
|
295
|
+
("royal-mail", "Royal Mail", "UK postal"),
|
|
296
|
+
("australia-post", "Australia Post", "Australian postal"),
|
|
297
|
+
("canada-post", "Canada Post", "Canadian postal"),
|
|
298
|
+
("la-poste", "La Poste", "French postal"),
|
|
299
|
+
("deutsche-post", "Deutsche Post", "German postal"),
|
|
300
|
+
("aftership", "AfterShip", "Shipment tracking"),
|
|
301
|
+
("shipengine", "ShipEngine", "Shipping API"),
|
|
302
|
+
("shiprocket", "Shiprocket", "Indian shipping"),
|
|
303
|
+
("flexport", "Flexport", "Freight forwarding"),
|
|
304
|
+
]
|
|
305
|
+
for id, name, desc in logistics:
|
|
306
|
+
apis.append({
|
|
307
|
+
"id": f"{id}-api",
|
|
308
|
+
"name": f"{name} API",
|
|
309
|
+
"description": f"{desc} API",
|
|
310
|
+
"category": "logistics",
|
|
311
|
+
"auth": "apiKey",
|
|
312
|
+
"https": True,
|
|
313
|
+
"link": f"https://developer.{id.replace('-', '')}.com",
|
|
314
|
+
"pricing": "paid",
|
|
315
|
+
"keywords": ["shipping", "logistics", "tracking"],
|
|
316
|
+
"cors": "unknown"
|
|
317
|
+
})
|
|
318
|
+
|
|
319
|
+
# Accounting/Finance Software APIs
|
|
320
|
+
accounting = [
|
|
321
|
+
("quickbooks", "QuickBooks", "Small business accounting"),
|
|
322
|
+
("xero", "Xero", "Cloud accounting"),
|
|
323
|
+
("sage", "Sage", "Business software"),
|
|
324
|
+
("freshbooks", "FreshBooks", "Invoicing software"),
|
|
325
|
+
("wave", "Wave", "Free accounting"),
|
|
326
|
+
("zoho-books", "Zoho Books", "Online accounting"),
|
|
327
|
+
("kashoo", "Kashoo", "Simple accounting"),
|
|
328
|
+
("bench", "Bench", "Bookkeeping service"),
|
|
329
|
+
("pilot", "Pilot", "Bookkeeping for startups"),
|
|
330
|
+
("chargebee", "Chargebee", "Subscription billing"),
|
|
331
|
+
("recurly", "Recurly", "Subscription management"),
|
|
332
|
+
("paddle", "Paddle", "Payment infrastructure"),
|
|
333
|
+
("lemonsqueezy", "Lemon Squeezy", "Digital sales"),
|
|
334
|
+
("gumroad", "Gumroad", "Creator commerce"),
|
|
335
|
+
("payhip", "Payhip", "Digital downloads"),
|
|
336
|
+
("sellfy", "Sellfy", "E-commerce for creators"),
|
|
337
|
+
("podia", "Podia", "Course platform"),
|
|
338
|
+
("thinkific", "Thinkific", "Online courses"),
|
|
339
|
+
("teachable", "Teachable", "Course creation"),
|
|
340
|
+
("kajabi", "Kajabi", "Knowledge commerce"),
|
|
341
|
+
]
|
|
342
|
+
for id, name, desc in accounting:
|
|
343
|
+
apis.append({
|
|
344
|
+
"id": f"{id}-api",
|
|
345
|
+
"name": f"{name} API",
|
|
346
|
+
"description": f"{desc} API",
|
|
347
|
+
"category": "finance",
|
|
348
|
+
"auth": "OAuth",
|
|
349
|
+
"https": True,
|
|
350
|
+
"link": f"https://developer.{id.replace('-', '')}.com",
|
|
351
|
+
"pricing": "paid",
|
|
352
|
+
"keywords": ["accounting", "finance", "billing"],
|
|
353
|
+
"cors": "unknown"
|
|
354
|
+
})
|
|
355
|
+
|
|
356
|
+
# More niche APIs
|
|
357
|
+
niche = [
|
|
358
|
+
# Music APIs
|
|
359
|
+
("shazam", "Shazam", "Music recognition", "music"),
|
|
360
|
+
("musixmatch", "Musixmatch", "Lyrics database", "music"),
|
|
361
|
+
("genius", "Genius", "Song lyrics and annotations", "music"),
|
|
362
|
+
("last-fm", "Last.fm", "Music recommendations", "music"),
|
|
363
|
+
("discogs", "Discogs", "Music database", "music"),
|
|
364
|
+
("bandsintown", "Bandsintown", "Concert tracking", "music"),
|
|
365
|
+
("songkick", "Songkick", "Live music", "music"),
|
|
366
|
+
("audiodb", "AudioDB", "Music metadata", "music"),
|
|
367
|
+
|
|
368
|
+
# Science APIs
|
|
369
|
+
("nasa", "NASA", "Space data and imagery", "science"),
|
|
370
|
+
("spacex", "SpaceX", "Launch data", "science"),
|
|
371
|
+
("openlibrary", "Open Library", "Book database", "science"),
|
|
372
|
+
("pubmed", "PubMed", "Medical literature", "science"),
|
|
373
|
+
("arxiv", "arXiv", "Research papers", "science"),
|
|
374
|
+
("semantic-scholar", "Semantic Scholar", "AI research", "science"),
|
|
375
|
+
("crossref", "Crossref", "Academic metadata", "science"),
|
|
376
|
+
("orcid", "ORCID", "Researcher IDs", "science"),
|
|
377
|
+
|
|
378
|
+
# Environment APIs
|
|
379
|
+
("epa", "EPA", "Environmental data", "environment"),
|
|
380
|
+
("earth-engine", "Google Earth Engine", "Satellite imagery", "environment"),
|
|
381
|
+
("planet", "Planet", "Earth observation", "environment"),
|
|
382
|
+
("climacell", "Tomorrow.io", "Climate data", "environment"),
|
|
383
|
+
("open-aq", "OpenAQ", "Air quality data", "environment"),
|
|
384
|
+
("breezometer", "BreezoMeter", "Air quality", "environment"),
|
|
385
|
+
("airnow", "AirNow", "US air quality", "environment"),
|
|
386
|
+
("iqair", "IQAir", "Global air quality", "environment"),
|
|
387
|
+
|
|
388
|
+
# Language/Translation APIs
|
|
389
|
+
("google-translate", "Google Translate", "Translation", "language"),
|
|
390
|
+
("microsoft-translator", "Microsoft Translator", "Translation", "language"),
|
|
391
|
+
("libretranslate", "LibreTranslate", "Open-source translation", "language"),
|
|
392
|
+
("lingvanex", "Lingvanex", "Translation API", "language"),
|
|
393
|
+
("modernmt", "ModernMT", "Neural translation", "language"),
|
|
394
|
+
("languagetool", "LanguageTool", "Grammar checking", "language"),
|
|
395
|
+
("textgears", "TextGears", "Text analysis", "language"),
|
|
396
|
+
("prowritingaid", "ProWritingAid", "Writing assistant", "language"),
|
|
397
|
+
|
|
398
|
+
# Calendar/Event APIs
|
|
399
|
+
("eventbrite", "Eventbrite", "Event management", "events"),
|
|
400
|
+
("meetup", "Meetup", "Group events", "events"),
|
|
401
|
+
("ticketmaster", "Ticketmaster", "Ticket sales", "events"),
|
|
402
|
+
("stubhub", "StubHub", "Ticket resale", "events"),
|
|
403
|
+
("seatgeek", "SeatGeek", "Event tickets", "events"),
|
|
404
|
+
("dice-fm", "DICE", "Music events", "events"),
|
|
405
|
+
("luma", "Luma", "Event hosting", "events"),
|
|
406
|
+
("lu-ma", "Lu.ma", "Virtual events", "events"),
|
|
407
|
+
|
|
408
|
+
# Automotive APIs
|
|
409
|
+
("carquery", "CarQuery", "Vehicle database", "automotive"),
|
|
410
|
+
("nhtsa", "NHTSA", "US vehicle safety", "automotive"),
|
|
411
|
+
("vin-decoder", "VIN Decoder", "Vehicle identification", "automotive"),
|
|
412
|
+
("edmunds", "Edmunds", "Car data", "automotive"),
|
|
413
|
+
("kbb", "Kelley Blue Book", "Car valuations", "automotive"),
|
|
414
|
+
("autotrader", "AutoTrader", "Car listings", "automotive"),
|
|
415
|
+
("smartcar", "Smartcar", "Connected cars", "automotive"),
|
|
416
|
+
("tesla", "Tesla", "Electric vehicles", "automotive"),
|
|
417
|
+
|
|
418
|
+
# Insurance APIs
|
|
419
|
+
("lemonade", "Lemonade", "Insurance tech", "insurance"),
|
|
420
|
+
("root", "Root", "Auto insurance", "insurance"),
|
|
421
|
+
("next-insurance", "Next Insurance", "Business insurance", "insurance"),
|
|
422
|
+
("hippo", "Hippo", "Home insurance", "insurance"),
|
|
423
|
+
("clearcover", "Clearcover", "Car insurance", "insurance"),
|
|
424
|
+
("socotra", "Socotra", "Insurance platform", "insurance"),
|
|
425
|
+
("policygenius", "Policygenius", "Insurance marketplace", "insurance"),
|
|
426
|
+
|
|
427
|
+
# Charity/Nonprofit APIs
|
|
428
|
+
("charity-navigator", "Charity Navigator", "Charity ratings", "nonprofit"),
|
|
429
|
+
("guidestar", "GuideStar", "Nonprofit data", "nonprofit"),
|
|
430
|
+
("every-action", "EveryAction", "Nonprofit CRM", "nonprofit"),
|
|
431
|
+
("classy", "Classy", "Fundraising", "nonprofit"),
|
|
432
|
+
("donorbox", "Donorbox", "Donation forms", "nonprofit"),
|
|
433
|
+
("givebutter", "Givebutter", "Fundraising", "nonprofit"),
|
|
434
|
+
("fundly", "Fundly", "Crowdfunding", "nonprofit"),
|
|
435
|
+
|
|
436
|
+
# QR/Barcode APIs
|
|
437
|
+
("qr-code-api", "QR Code API", "QR generation", "utilities"),
|
|
438
|
+
("barcode-lookup", "Barcode Lookup", "Product barcodes", "utilities"),
|
|
439
|
+
("upcdatabase", "UPC Database", "Product lookup", "utilities"),
|
|
440
|
+
("ean-search", "EAN Search", "Barcode database", "utilities"),
|
|
441
|
+
("goqr", "goQR.me", "QR codes", "utilities"),
|
|
442
|
+
("qrtiger", "QRTiger", "Dynamic QR", "utilities"),
|
|
443
|
+
|
|
444
|
+
# Screenshot/Preview APIs
|
|
445
|
+
("screenshot-api", "Screenshot API", "Web screenshots", "utilities"),
|
|
446
|
+
("urlbox", "Urlbox", "Website screenshots", "utilities"),
|
|
447
|
+
("api-flash", "ApiFlash", "Screenshot API", "utilities"),
|
|
448
|
+
("screenshotone", "ScreenshotOne", "Screenshots", "utilities"),
|
|
449
|
+
("microlink", "Microlink", "Link previews", "utilities"),
|
|
450
|
+
("opengraph-io", "OpenGraph.io", "OG data", "utilities"),
|
|
451
|
+
|
|
452
|
+
# SMS Verification APIs
|
|
453
|
+
("authy", "Authy (Twilio)", "2FA platform", "security"),
|
|
454
|
+
("nexmo-verify", "Vonage Verify", "SMS verification", "security"),
|
|
455
|
+
("telesign", "TeleSign", "Phone verification", "security"),
|
|
456
|
+
("messagebird-verify", "MessageBird Verify", "OTP service", "security"),
|
|
457
|
+
("sinch-verification", "Sinch Verification", "Number verification", "security"),
|
|
458
|
+
|
|
459
|
+
# URL Shortener APIs
|
|
460
|
+
("bitly", "Bitly", "Link management", "utilities"),
|
|
461
|
+
("rebrandly", "Rebrandly", "Branded links", "utilities"),
|
|
462
|
+
("short-io", "Short.io", "URL shortener", "utilities"),
|
|
463
|
+
("tinyurl", "TinyURL", "Simple shortener", "utilities"),
|
|
464
|
+
("bl-ink", "BL.INK", "Enterprise links", "utilities"),
|
|
465
|
+
("dub-co", "Dub.co", "Open-source shortener", "utilities"),
|
|
466
|
+
]
|
|
467
|
+
for item in niche:
|
|
468
|
+
if len(item) == 4:
|
|
469
|
+
id, name, desc, cat = item
|
|
470
|
+
apis.append({
|
|
471
|
+
"id": f"{id}-api",
|
|
472
|
+
"name": f"{name} API",
|
|
473
|
+
"description": desc,
|
|
474
|
+
"category": cat,
|
|
475
|
+
"auth": "apiKey",
|
|
476
|
+
"https": True,
|
|
477
|
+
"link": f"https://developer.{id.replace('-', '')}.com",
|
|
478
|
+
"pricing": "freemium",
|
|
479
|
+
"keywords": [cat, "api", id.split('-')[0]],
|
|
480
|
+
"cors": "unknown"
|
|
481
|
+
})
|
|
482
|
+
|
|
483
|
+
return apis
|
|
484
|
+
|
|
485
|
+
def main():
|
|
486
|
+
registry = load_registry()
|
|
487
|
+
existing_ids = get_existing_ids(registry)
|
|
488
|
+
initial_count = len(registry['apis'])
|
|
489
|
+
|
|
490
|
+
print(f"Starting count: {initial_count}")
|
|
491
|
+
|
|
492
|
+
apis = generate_niche_apis()
|
|
493
|
+
added = 0
|
|
494
|
+
|
|
495
|
+
for api in apis:
|
|
496
|
+
if api['id'].lower() not in existing_ids:
|
|
497
|
+
registry['apis'].append(api)
|
|
498
|
+
existing_ids.add(api['id'].lower())
|
|
499
|
+
added += 1
|
|
500
|
+
|
|
501
|
+
save_registry(registry)
|
|
502
|
+
final_count = len(registry['apis'])
|
|
503
|
+
|
|
504
|
+
print(f"Generated: {len(apis)}")
|
|
505
|
+
print(f"Added (unique): {added}")
|
|
506
|
+
print(f"Final: {final_count}")
|
|
507
|
+
print(f"Target reached: {'✅ YES!' if final_count >= 15000 else '❌ No'}")
|
|
508
|
+
|
|
509
|
+
return added
|
|
510
|
+
|
|
511
|
+
if __name__ == '__main__':
|
|
512
|
+
main()
|