@nordsym/apiclaw 1.2.2 → 1.2.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/AGENTS.md +50 -33
- package/README.md +22 -12
- package/SOUL.md +60 -19
- package/STATUS.md +91 -169
- package/convex/_generated/api.d.ts +6 -0
- package/convex/directCall.ts +598 -0
- package/convex/providers.ts +341 -26
- package/convex/schema.ts +87 -0
- package/convex/usage.ts +260 -0
- package/convex/waitlist.ts +55 -0
- package/data/combined-02-26.json +22102 -0
- package/data/night-expansion-02-26-06-batch2.json +1898 -0
- package/data/night-expansion-02-26-06-batch3.json +1410 -0
- package/data/night-expansion-02-26-06.json +3146 -0
- package/data/night-expansion-02-26-full.json +9726 -0
- package/data/night-expansion-02-26-v2.json +330 -0
- package/data/night-expansion-02-26.json +171 -0
- package/dist/crypto.d.ts +7 -0
- package/dist/crypto.d.ts.map +1 -0
- package/dist/crypto.js +67 -0
- package/dist/crypto.js.map +1 -0
- package/dist/execute-dynamic.d.ts +116 -0
- package/dist/execute-dynamic.d.ts.map +1 -0
- package/dist/execute-dynamic.js +456 -0
- package/dist/execute-dynamic.js.map +1 -0
- package/dist/execute.d.ts +2 -1
- package/dist/execute.d.ts.map +1 -1
- package/dist/execute.js +35 -5
- package/dist/execute.js.map +1 -1
- package/dist/index.js +33 -4
- package/dist/index.js.map +1 -1
- package/dist/registry/apis.json +2081 -3
- package/docs/PRD-customer-key-passthrough.md +184 -0
- package/landing/public/badges/available-on-apiclaw.svg +14 -0
- package/landing/scripts/generate-stats.js +75 -4
- package/landing/src/app/admin/page.tsx +1 -1
- package/landing/src/app/api/auth/magic-link/route.ts +1 -1
- package/landing/src/app/api/auth/session/route.ts +1 -1
- package/landing/src/app/api/auth/verify/route.ts +1 -1
- package/landing/src/app/api/og/route.tsx +5 -3
- package/landing/src/app/docs/page.tsx +5 -4
- package/landing/src/app/earn/page.tsx +14 -11
- package/landing/src/app/globals.css +16 -15
- package/landing/src/app/layout.tsx +2 -2
- package/landing/src/app/page.tsx +425 -254
- package/landing/src/app/providers/dashboard/[apiId]/actions/[actionId]/edit/page.tsx +600 -0
- package/landing/src/app/providers/dashboard/[apiId]/actions/new/page.tsx +583 -0
- package/landing/src/app/providers/dashboard/[apiId]/actions/page.tsx +301 -0
- package/landing/src/app/providers/dashboard/[apiId]/direct-call/page.tsx +659 -0
- package/landing/src/app/providers/dashboard/[apiId]/page.tsx +381 -0
- package/landing/src/app/providers/dashboard/[apiId]/test/page.tsx +418 -0
- package/landing/src/app/providers/dashboard/layout.tsx +292 -0
- package/landing/src/app/providers/dashboard/page.tsx +353 -290
- package/landing/src/app/providers/register/page.tsx +87 -10
- package/landing/src/components/AiClientDropdown.tsx +85 -0
- package/landing/src/components/ConfigHelperModal.tsx +113 -0
- package/landing/src/components/HeroTabs.tsx +187 -0
- package/landing/src/components/ShareIntegrationModal.tsx +198 -0
- package/landing/src/hooks/useDashboardData.ts +53 -1
- package/landing/src/lib/apis.json +46554 -174
- package/landing/src/lib/convex-client.ts +22 -3
- package/landing/src/lib/stats.json +4 -4
- package/landing/tsconfig.tsbuildinfo +1 -1
- package/night-expansion-02-26-06-batch2.py +368 -0
- package/night-expansion-02-26-06-batch3.py +299 -0
- package/night-expansion-02-26-06.py +756 -0
- package/package.json +1 -1
- package/scripts/bulk-add-public-apis-v2.py +418 -0
- package/scripts/night-expansion-02-26-v2.py +296 -0
- package/scripts/night-expansion-02-26.py +890 -0
- package/scripts/seed-complete-api.js +181 -0
- package/scripts/seed-demo-api.sh +44 -0
- package/src/crypto.ts +75 -0
- package/src/execute-dynamic.ts +589 -0
- package/src/execute.ts +41 -5
- package/src/index.ts +38 -4
- package/src/registry/apis.json +2081 -3
|
@@ -0,0 +1,756 @@
|
|
|
1
|
+
#!/usr/bin/env python3
|
|
2
|
+
"""
|
|
3
|
+
APIClaw Night Expansion 2026-02-26 06:00
|
|
4
|
+
Sources: TonnyL/Awesome_APIs + n0shake/Public-APIs (parsed from markdown)
|
|
5
|
+
Target: 1000+ new APIs
|
|
6
|
+
"""
|
|
7
|
+
|
|
8
|
+
import json
|
|
9
|
+
import re
|
|
10
|
+
import hashlib
|
|
11
|
+
from pathlib import Path
|
|
12
|
+
|
|
13
|
+
# Load existing APIs to avoid duplicates
|
|
14
|
+
existing_file = Path("/Users/gustavhemmingsson/Projects/apiclaw/data/combined-02-25.json")
|
|
15
|
+
night_26_file = Path("/Users/gustavhemmingsson/Projects/apiclaw/data/night-expansion-02-26-full.json")
|
|
16
|
+
night_26_v2_file = Path("/Users/gustavhemmingsson/Projects/apiclaw/data/night-expansion-02-26-v2.json")
|
|
17
|
+
|
|
18
|
+
existing_ids = set()
|
|
19
|
+
if existing_file.exists():
|
|
20
|
+
with open(existing_file) as f:
|
|
21
|
+
for api in json.load(f):
|
|
22
|
+
existing_ids.add(api.get('id', ''))
|
|
23
|
+
if night_26_file.exists():
|
|
24
|
+
with open(night_26_file) as f:
|
|
25
|
+
for api in json.load(f):
|
|
26
|
+
existing_ids.add(api.get('id', ''))
|
|
27
|
+
if night_26_v2_file.exists():
|
|
28
|
+
with open(night_26_v2_file) as f:
|
|
29
|
+
for api in json.load(f):
|
|
30
|
+
existing_ids.add(api.get('id', ''))
|
|
31
|
+
|
|
32
|
+
print(f"Loaded {len(existing_ids)} existing API IDs")
|
|
33
|
+
|
|
34
|
+
def make_id(name):
|
|
35
|
+
"""Generate a clean ID from name"""
|
|
36
|
+
slug = re.sub(r'[^a-z0-9]+', '-', name.lower()).strip('-')
|
|
37
|
+
return slug[:50]
|
|
38
|
+
|
|
39
|
+
def parse_tonny_markdown():
|
|
40
|
+
"""Parse TonnyL/Awesome_APIs markdown format"""
|
|
41
|
+
apis = []
|
|
42
|
+
|
|
43
|
+
# Embedded data from TonnyL repo (categories and APIs)
|
|
44
|
+
tonny_apis = [
|
|
45
|
+
# Anime
|
|
46
|
+
{"name": "AcgClub", "desc": "ACG-related aggregation services", "cat": "Entertainment", "url": "https://github.com/Rabtman/AcgClub/wiki/", "auth": "None"},
|
|
47
|
+
{"name": "AniList", "desc": "Access to 500k+ anime and manga entries", "cat": "Entertainment", "url": "https://github.com/AniList/ApiV2-GraphQL-Docs", "auth": "OAuth"},
|
|
48
|
+
{"name": "Kitsu", "desc": "Modern anime discovery platform", "cat": "Entertainment", "url": "https://kitsu.docs.apiary.io/", "auth": "OAuth"},
|
|
49
|
+
{"name": "hitokoto", "desc": "One-word service from anime", "cat": "Entertainment", "url": "https://hitokoto.cn/api", "auth": "None"},
|
|
50
|
+
|
|
51
|
+
# Blogging
|
|
52
|
+
{"name": "Blogger", "desc": "Create and manage blog posts", "cat": "Content", "url": "https://developers.google.com/blogger/", "auth": "OAuth"},
|
|
53
|
+
{"name": "Medium", "desc": "Access Medium.com data", "cat": "Content", "url": "https://github.com/Medium/medium-api-docs", "auth": "OAuth"},
|
|
54
|
+
{"name": "Weebly Cloud", "desc": "Website builder API", "cat": "Development", "url": "https://cloud-developer.weebly.com/", "auth": "apiKey"},
|
|
55
|
+
{"name": "WordPress", "desc": "WordPress APIs", "cat": "Content", "url": "https://codex.wordpress.org/WordPress_APIs", "auth": "OAuth"},
|
|
56
|
+
{"name": "Telegraph", "desc": "Telegram's publishing service", "cat": "Content", "url": "http://telegra.ph/api", "auth": "None"},
|
|
57
|
+
|
|
58
|
+
# Books
|
|
59
|
+
{"name": "An API Of Ice And Fire", "desc": "Game of Thrones universe data", "cat": "Entertainment", "url": "https://anapioficeandfire.com/", "auth": "None"},
|
|
60
|
+
{"name": "Open Library Books", "desc": "Open editable library catalog", "cat": "Books", "url": "https://openlibrary.org/developers/api", "auth": "None"},
|
|
61
|
+
{"name": "NYPL Digital Collections", "desc": "New York Public Library digital collections", "cat": "Books", "url": "http://api.repo.nypl.org/", "auth": "apiKey"},
|
|
62
|
+
{"name": "Bookshare", "desc": "Books for print disabilities", "cat": "Books", "url": "http://developer.bookshare.org/", "auth": "apiKey"},
|
|
63
|
+
|
|
64
|
+
# Business
|
|
65
|
+
{"name": "Airtable", "desc": "Database and spreadsheet hybrid", "cat": "Business", "url": "https://airtable.com/api", "auth": "apiKey"},
|
|
66
|
+
{"name": "Buffer", "desc": "Social media management", "cat": "Social", "url": "https://buffer.com/developers/api", "auth": "OAuth"},
|
|
67
|
+
{"name": "Concur Labs", "desc": "Travel and expense management", "cat": "Business", "url": "https://developer.concur.com/api-reference/", "auth": "OAuth"},
|
|
68
|
+
{"name": "JotForm", "desc": "Form builder API", "cat": "Business", "url": "http://api.jotform.com/docs/", "auth": "apiKey"},
|
|
69
|
+
{"name": "MailChimp", "desc": "Email marketing platform", "cat": "Marketing", "url": "https://developer.mailchimp.com/", "auth": "apiKey"},
|
|
70
|
+
{"name": "Quip", "desc": "Collaborative documents", "cat": "Business", "url": "https://quip.com/api/", "auth": "OAuth"},
|
|
71
|
+
{"name": "Salesforce", "desc": "CRM platform API", "cat": "Business", "url": "https://developer.salesforce.com/page/Salesforce_APIs", "auth": "OAuth"},
|
|
72
|
+
{"name": "Square", "desc": "Payment processing", "cat": "Finance", "url": "https://connect.squareup.com/", "auth": "OAuth"},
|
|
73
|
+
|
|
74
|
+
# Calendar
|
|
75
|
+
{"name": "Google Calendar", "desc": "Calendar integration", "cat": "Productivity", "url": "https://developers.google.com/google-apps/calendar/", "auth": "OAuth"},
|
|
76
|
+
{"name": "Outlook Calendar", "desc": "Microsoft calendar API", "cat": "Productivity", "url": "https://docs.microsoft.com/en-us/graph/api/resources/calendar", "auth": "OAuth"},
|
|
77
|
+
|
|
78
|
+
# Carsharing
|
|
79
|
+
{"name": "Lyft", "desc": "Rideshare API", "cat": "Transportation", "url": "https://www.lyft.com/developers", "auth": "OAuth"},
|
|
80
|
+
{"name": "Uber", "desc": "Rideshare and delivery API", "cat": "Transportation", "url": "https://developer.uber.com/", "auth": "OAuth"},
|
|
81
|
+
|
|
82
|
+
# Cloud
|
|
83
|
+
{"name": "Google Cloud Platform", "desc": "Google cloud services", "cat": "Cloud", "url": "https://cloud.google.com/apis/docs/overview", "auth": "OAuth"},
|
|
84
|
+
{"name": "Oracle Cloud", "desc": "Oracle cloud infrastructure", "cat": "Cloud", "url": "https://cloud.oracle.com/home", "auth": "apiKey"},
|
|
85
|
+
{"name": "Tencent Cloud", "desc": "Tencent cloud services", "cat": "Cloud", "url": "https://cloud.tencent.com/document/api", "auth": "apiKey"},
|
|
86
|
+
|
|
87
|
+
# Cloud Storage
|
|
88
|
+
{"name": "Amazon Cloud Drive", "desc": "Amazon cloud storage", "cat": "Cloud", "url": "https://developer.amazon.com/amazon-drive", "auth": "OAuth"},
|
|
89
|
+
{"name": "Box", "desc": "Enterprise file sharing", "cat": "Cloud", "url": "https://developer.box.com/", "auth": "OAuth"},
|
|
90
|
+
{"name": "Digital Ocean Spaces", "desc": "Object storage", "cat": "Cloud", "url": "https://developers.digitalocean.com/", "auth": "apiKey"},
|
|
91
|
+
{"name": "Document Cloud", "desc": "Document storage and analysis", "cat": "Documents", "url": "http://www.documentcloud.org/help/api", "auth": "apiKey"},
|
|
92
|
+
{"name": "Dropbox", "desc": "Cloud file storage", "cat": "Cloud", "url": "https://www.dropbox.com/developers", "auth": "OAuth"},
|
|
93
|
+
{"name": "Google Drive", "desc": "Google cloud storage", "cat": "Cloud", "url": "https://developers.google.com/drive/", "auth": "OAuth"},
|
|
94
|
+
{"name": "OneDrive", "desc": "Microsoft cloud storage", "cat": "Cloud", "url": "https://dev.onedrive.com/", "auth": "OAuth"},
|
|
95
|
+
|
|
96
|
+
# Delivery Tracking
|
|
97
|
+
{"name": "AfterShip", "desc": "Shipment tracking for 200+ couriers", "cat": "Shipping", "url": "https://docs.aftership.com/api/", "auth": "apiKey"},
|
|
98
|
+
{"name": "Aramex", "desc": "Global shipping provider", "cat": "Shipping", "url": "https://www.aramex.com/developers/aramex-apis", "auth": "apiKey"},
|
|
99
|
+
{"name": "Canada Post", "desc": "Canadian postal service", "cat": "Shipping", "url": "http://www.canadapost.ca/cpo/mc/business/productsservices/developers/", "auth": "apiKey"},
|
|
100
|
+
{"name": "DHL", "desc": "DHL shipping services", "cat": "Shipping", "url": "http://www.dhl-usa.com/en/express/resource_center/integrated_shipping_solutions.html", "auth": "apiKey"},
|
|
101
|
+
{"name": "FedEx", "desc": "FedEx shipping integration", "cat": "Shipping", "url": "https://www.fedex.com/us/developer/web-services/index.html", "auth": "apiKey"},
|
|
102
|
+
{"name": "UPS", "desc": "UPS shipping functionalities", "cat": "Shipping", "url": "http://www.ups.com/content/us/en/resources/techsupport/developercenter.html", "auth": "apiKey"},
|
|
103
|
+
|
|
104
|
+
# Design
|
|
105
|
+
{"name": "Dribbble", "desc": "Designer portfolio platform", "cat": "Design", "url": "http://developer.dribbble.com/v1/", "auth": "OAuth"},
|
|
106
|
+
{"name": "Behance", "desc": "Creative portfolio platform", "cat": "Design", "url": "https://www.behance.net/dev/api/endpoints/", "auth": "apiKey"},
|
|
107
|
+
{"name": "deviantART", "desc": "Art community platform", "cat": "Art", "url": "https://www.deviantart.com/developers/", "auth": "OAuth"},
|
|
108
|
+
|
|
109
|
+
# Development
|
|
110
|
+
{"name": "ARTIK Cloud", "desc": "IoT cloud platform", "cat": "IoT", "url": "https://developer.artik.cloud/documentation/api-reference/", "auth": "OAuth"},
|
|
111
|
+
{"name": "AT&T M2X", "desc": "IoT time-series data", "cat": "IoT", "url": "https://m2x.att.com/developer/documentation/v2/overview", "auth": "apiKey"},
|
|
112
|
+
{"name": "Bitbucket", "desc": "Git repository hosting", "cat": "Development", "url": "https://developer.atlassian.com/cloud/bitbucket/", "auth": "OAuth"},
|
|
113
|
+
{"name": "bitly", "desc": "URL shortening", "cat": "Tools", "url": "https://dev.bitly.com/", "auth": "OAuth"},
|
|
114
|
+
{"name": "Buddy", "desc": "CI/CD platform", "cat": "Development", "url": "https://buddy.works/api/reference/getting-started/overview", "auth": "OAuth"},
|
|
115
|
+
{"name": "CircleCI", "desc": "CI/CD platform", "cat": "Development", "url": "https://circleci.com/docs/api/v1-reference/", "auth": "apiKey"},
|
|
116
|
+
{"name": "GitHub", "desc": "Software development platform", "cat": "Development", "url": "https://developer.github.com/v3/", "auth": "OAuth"},
|
|
117
|
+
{"name": "GitLab", "desc": "DevOps platform", "cat": "Development", "url": "https://docs.gitlab.com/ee/api/README.html", "auth": "OAuth"},
|
|
118
|
+
{"name": "Gitter", "desc": "Chat for GitHub", "cat": "Communication", "url": "https://developer.gitter.im/docs/welcome", "auth": "OAuth"},
|
|
119
|
+
{"name": "Google Play Developer", "desc": "Android app publishing", "cat": "Development", "url": "https://developers.google.com/android-publisher/", "auth": "OAuth"},
|
|
120
|
+
{"name": "IPInfo.io", "desc": "IP geolocation", "cat": "Tools", "url": "https://ipinfo.io/developers", "auth": "apiKey"},
|
|
121
|
+
{"name": "MAC Address Vendor", "desc": "MAC address lookup", "cat": "Tools", "url": "https://macaddress.io/api-documentation", "auth": "apiKey"},
|
|
122
|
+
{"name": "openHAB", "desc": "Home automation", "cat": "IoT", "url": "https://github.com/openhab/openhab1-addons/wiki/REST-API", "auth": "None"},
|
|
123
|
+
{"name": "Particle", "desc": "IoT platform", "cat": "IoT", "url": "https://docs.particle.io/reference/api/", "auth": "OAuth"},
|
|
124
|
+
{"name": "ProxyCrawl", "desc": "Web scraping proxy", "cat": "Tools", "url": "https://proxycrawl.com", "auth": "apiKey"},
|
|
125
|
+
{"name": "QR Code Generator", "desc": "Generate QR codes", "cat": "Tools", "url": "http://goqr.me/api/", "auth": "None"},
|
|
126
|
+
{"name": "Scraper API", "desc": "Web scraping service", "cat": "Tools", "url": "https://www.scraperapi.com/documentation", "auth": "apiKey"},
|
|
127
|
+
{"name": "StackExchange", "desc": "Q&A network", "cat": "Development", "url": "https://api.stackexchange.com/docs", "auth": "OAuth"},
|
|
128
|
+
{"name": "TravisCI", "desc": "CI platform", "cat": "Development", "url": "https://docs.travis-ci.com/api/", "auth": "apiKey"},
|
|
129
|
+
{"name": "W3C", "desc": "Web standards data", "cat": "Development", "url": "https://github.com/w3c/w3c-api", "auth": "None"},
|
|
130
|
+
{"name": "ZenHub", "desc": "Project management for GitHub", "cat": "Development", "url": "https://github.com/ZenHubIO/API", "auth": "apiKey"},
|
|
131
|
+
|
|
132
|
+
# Email
|
|
133
|
+
{"name": "Context.IO", "desc": "Email data API", "cat": "Email", "url": "http://context.io/", "auth": "OAuth"},
|
|
134
|
+
{"name": "Gmail API", "desc": "Google email API", "cat": "Email", "url": "https://developers.google.com/gmail/api/", "auth": "OAuth"},
|
|
135
|
+
{"name": "Inbox by Nylas", "desc": "Email infrastructure", "cat": "Email", "url": "https://www.nylas.com/", "auth": "OAuth"},
|
|
136
|
+
{"name": "Mandrill", "desc": "Transactional email", "cat": "Email", "url": "https://mandrillapp.com/api/docs/", "auth": "apiKey"},
|
|
137
|
+
{"name": "Outlook Mail", "desc": "Microsoft email API", "cat": "Email", "url": "https://docs.microsoft.com/en-us/graph/api/resources/mail-api-overview", "auth": "OAuth"},
|
|
138
|
+
|
|
139
|
+
# Fitness & Wearables
|
|
140
|
+
{"name": "Fitbit", "desc": "Fitness tracker data", "cat": "Health", "url": "https://dev.fitbit.com/", "auth": "OAuth"},
|
|
141
|
+
{"name": "Jawbone UP", "desc": "Activity tracking", "cat": "Health", "url": "https://jawbone.com/up/developer", "auth": "OAuth"},
|
|
142
|
+
{"name": "Misfit", "desc": "Wearable activity tracking", "cat": "Health", "url": "https://build.misfit.com/", "auth": "OAuth"},
|
|
143
|
+
{"name": "Nike+", "desc": "Nike fitness data", "cat": "Health", "url": "https://developer.nike.com/", "auth": "OAuth"},
|
|
144
|
+
{"name": "Strava", "desc": "Athletic activities", "cat": "Sports", "url": "https://strava.github.io/api/", "auth": "OAuth"},
|
|
145
|
+
{"name": "Withings", "desc": "Health device data", "cat": "Health", "url": "http://www.withings.com/us/en/developers", "auth": "OAuth"},
|
|
146
|
+
|
|
147
|
+
# Forex & Currencies
|
|
148
|
+
{"name": "1Forge", "desc": "Forex and crypto quotes", "cat": "Finance", "url": "https://1forge.com/", "auth": "apiKey"},
|
|
149
|
+
{"name": "CurrencyScoop", "desc": "Currency rates API", "cat": "Finance", "url": "https://currencyscoop.com/", "auth": "apiKey"},
|
|
150
|
+
|
|
151
|
+
# Games
|
|
152
|
+
{"name": "Battle.net", "desc": "Blizzard game data", "cat": "Games", "url": "https://dev.battle.net/", "auth": "OAuth"},
|
|
153
|
+
{"name": "Clash of Clans", "desc": "Clash of Clans game data", "cat": "Games", "url": "https://developer.clashofclans.com/", "auth": "apiKey"},
|
|
154
|
+
{"name": "EVE Online", "desc": "EVE Online game data", "cat": "Games", "url": "https://developers.eveonline.com/", "auth": "OAuth"},
|
|
155
|
+
{"name": "Facebook Games", "desc": "Facebook gaming services", "cat": "Games", "url": "https://developers.facebook.com/docs/games", "auth": "OAuth"},
|
|
156
|
+
{"name": "Google Play Games", "desc": "Google gaming services", "cat": "Games", "url": "https://developers.google.com/games/", "auth": "OAuth"},
|
|
157
|
+
{"name": "Riot Games", "desc": "League of Legends data", "cat": "Games", "url": "https://developer.riotgames.com/", "auth": "apiKey"},
|
|
158
|
+
{"name": "Steam Web API", "desc": "Steam game data", "cat": "Games", "url": "https://steamcommunity.com/dev", "auth": "apiKey"},
|
|
159
|
+
{"name": "Giant Bomb", "desc": "Video game database", "cat": "Games", "url": "http://www.giantbomb.com/api/", "auth": "apiKey"},
|
|
160
|
+
{"name": "Guild Wars 2", "desc": "Guild Wars 2 game data", "cat": "Games", "url": "https://wiki.guildwars2.com/wiki/API:Main", "auth": "None"},
|
|
161
|
+
|
|
162
|
+
# IoT
|
|
163
|
+
{"name": "Automatic", "desc": "Connected car platform", "cat": "IoT", "url": "https://developer.automatic.com/", "auth": "OAuth"},
|
|
164
|
+
{"name": "Amazon Alexa", "desc": "Voice assistant API", "cat": "IoT", "url": "https://developer.amazon.com/alexa", "auth": "OAuth"},
|
|
165
|
+
{"name": "Google Assistant", "desc": "Google voice assistant", "cat": "IoT", "url": "https://developers.google.com/actions/", "auth": "OAuth"},
|
|
166
|
+
{"name": "Home8", "desc": "Smart home security", "cat": "IoT", "url": "https://developer.home8systems.com/", "auth": "apiKey"},
|
|
167
|
+
{"name": "Homey", "desc": "Smart home hub", "cat": "IoT", "url": "https://developers.athom.com/api/", "auth": "OAuth"},
|
|
168
|
+
{"name": "LIFX", "desc": "Smart lighting", "cat": "IoT", "url": "https://api.developer.lifx.com/", "auth": "OAuth"},
|
|
169
|
+
{"name": "Philips Hue", "desc": "Smart lighting system", "cat": "IoT", "url": "https://developers.meethue.com/", "auth": "OAuth"},
|
|
170
|
+
{"name": "SmartThings", "desc": "Smart home platform", "cat": "IoT", "url": "https://developer-preview.smartthings.com/", "auth": "OAuth"},
|
|
171
|
+
{"name": "Yeelight", "desc": "Smart LED products", "cat": "IoT", "url": "http://www.yeelight.com/en_US/developer", "auth": "None"},
|
|
172
|
+
|
|
173
|
+
# Machine Learning
|
|
174
|
+
{"name": "Amazon ML", "desc": "AWS machine learning", "cat": "AI", "url": "https://aws.amazon.com/machine-learning/", "auth": "apiKey"},
|
|
175
|
+
{"name": "BigML", "desc": "ML platform", "cat": "AI", "url": "https://bigml.com/api", "auth": "apiKey"},
|
|
176
|
+
{"name": "Diffbot", "desc": "AI data extraction", "cat": "AI", "url": "https://www.diffbot.com/dev/docs/", "auth": "apiKey"},
|
|
177
|
+
{"name": "Google Cloud Prediction", "desc": "ML prediction API", "cat": "AI", "url": "https://cloud.google.com/prediction/docs/", "auth": "OAuth"},
|
|
178
|
+
{"name": "IBM Watson", "desc": "AI and ML services", "cat": "AI", "url": "https://developer.ibm.com/watson/", "auth": "apiKey"},
|
|
179
|
+
{"name": "Azure ML", "desc": "Microsoft ML platform", "cat": "AI", "url": "https://azure.microsoft.com/en-us/services/cognitive-services/", "auth": "apiKey"},
|
|
180
|
+
|
|
181
|
+
# Maps
|
|
182
|
+
{"name": "Bing Maps", "desc": "Microsoft mapping", "cat": "Maps", "url": "https://www.microsoft.com/en-us/maps/", "auth": "apiKey"},
|
|
183
|
+
{"name": "Google Maps", "desc": "Google mapping services", "cat": "Maps", "url": "https://developers.google.com/maps/", "auth": "apiKey"},
|
|
184
|
+
{"name": "HERE Maps", "desc": "Location services", "cat": "Maps", "url": "https://developer.here.com/develop/rest-apis", "auth": "apiKey"},
|
|
185
|
+
|
|
186
|
+
# Messaging
|
|
187
|
+
{"name": "Cisco Spark", "desc": "Team collaboration", "cat": "Communication", "url": "https://developer.ciscospark.com/", "auth": "OAuth"},
|
|
188
|
+
{"name": "Fleep", "desc": "Team messaging", "cat": "Communication", "url": "https://fleep.io/fleepapi/", "auth": "apiKey"},
|
|
189
|
+
{"name": "GroupMe", "desc": "Group messaging", "cat": "Communication", "url": "https://dev.groupme.com/docs/v3", "auth": "apiKey"},
|
|
190
|
+
{"name": "LINE", "desc": "Messaging platform", "cat": "Communication", "url": "https://developers.line.me/", "auth": "OAuth"},
|
|
191
|
+
{"name": "MessageBird", "desc": "SMS and voice", "cat": "Communication", "url": "https://developers.messagebird.com/", "auth": "apiKey"},
|
|
192
|
+
{"name": "Slack", "desc": "Team collaboration", "cat": "Communication", "url": "https://api.slack.com/", "auth": "OAuth"},
|
|
193
|
+
{"name": "Telegram", "desc": "Messaging platform", "cat": "Communication", "url": "https://core.telegram.org/api", "auth": "apiKey"},
|
|
194
|
+
|
|
195
|
+
# Music
|
|
196
|
+
{"name": "Deezer", "desc": "Music streaming", "cat": "Music", "url": "https://developers.deezer.com/", "auth": "OAuth"},
|
|
197
|
+
{"name": "Last.fm", "desc": "Music discovery", "cat": "Music", "url": "http://www.last.fm/api", "auth": "apiKey"},
|
|
198
|
+
{"name": "MusicGraph", "desc": "Music knowledge engine", "cat": "Music", "url": "https://developer.musicgraph.com/", "auth": "apiKey"},
|
|
199
|
+
{"name": "Musixmatch", "desc": "Lyrics API", "cat": "Music", "url": "https://developer.musixmatch.com/", "auth": "apiKey"},
|
|
200
|
+
{"name": "SoundCloud", "desc": "Audio sharing", "cat": "Music", "url": "https://developers.soundcloud.com/", "auth": "OAuth"},
|
|
201
|
+
{"name": "Spotify", "desc": "Music streaming", "cat": "Music", "url": "https://developer.spotify.com/web-api/", "auth": "OAuth"},
|
|
202
|
+
|
|
203
|
+
# News
|
|
204
|
+
{"name": "feedly", "desc": "RSS aggregator", "cat": "News", "url": "https://developer.feedly.com/", "auth": "OAuth"},
|
|
205
|
+
{"name": "Genius", "desc": "Song lyrics and annotations", "cat": "Music", "url": "https://docs.genius.com/", "auth": "OAuth"},
|
|
206
|
+
{"name": "goodreads", "desc": "Book reviews", "cat": "Books", "url": "https://www.goodreads.com/api", "auth": "apiKey"},
|
|
207
|
+
{"name": "HackerNews", "desc": "Tech news", "cat": "News", "url": "https://github.com/HackerNews/API", "auth": "None"},
|
|
208
|
+
{"name": "Instapaper", "desc": "Read later service", "cat": "Productivity", "url": "https://www.instapaper.com/api", "auth": "OAuth"},
|
|
209
|
+
{"name": "Pocket", "desc": "Save for later", "cat": "Productivity", "url": "https://getpocket.com/developer/", "auth": "OAuth"},
|
|
210
|
+
{"name": "Product Hunt", "desc": "Product discovery", "cat": "Technology", "url": "https://api.producthunt.com/v1/docs", "auth": "OAuth"},
|
|
211
|
+
{"name": "NY Times", "desc": "News articles", "cat": "News", "url": "https://developer.nytimes.com/", "auth": "apiKey"},
|
|
212
|
+
{"name": "USA TODAY", "desc": "News API", "cat": "News", "url": "https://developer.usatoday.com/docs/", "auth": "apiKey"},
|
|
213
|
+
|
|
214
|
+
# Notes
|
|
215
|
+
{"name": "Evernote", "desc": "Note taking", "cat": "Productivity", "url": "https://dev.evernote.com/doc/", "auth": "OAuth"},
|
|
216
|
+
{"name": "OneNote", "desc": "Microsoft notes", "cat": "Productivity", "url": "https://docs.microsoft.com/en-us/graph/api/resources/onenote-api-overview", "auth": "OAuth"},
|
|
217
|
+
|
|
218
|
+
# Payment
|
|
219
|
+
{"name": "PayPal", "desc": "Online payments", "cat": "Finance", "url": "https://developer.paypal.com/docs/api/", "auth": "OAuth"},
|
|
220
|
+
{"name": "Paymill", "desc": "Payment gateway", "cat": "Finance", "url": "https://developers.paymill.com/", "auth": "apiKey"},
|
|
221
|
+
{"name": "WePay", "desc": "Payment platform", "cat": "Finance", "url": "https://www.wepay.com/", "auth": "OAuth"},
|
|
222
|
+
|
|
223
|
+
# Photography
|
|
224
|
+
{"name": "500px", "desc": "Photography community", "cat": "Photography", "url": "https://github.com/500px/api-documentation", "auth": "OAuth"},
|
|
225
|
+
{"name": "Giphy", "desc": "GIF library", "cat": "Media", "url": "https://developers.giphy.com/docs/", "auth": "apiKey"},
|
|
226
|
+
{"name": "Imgur", "desc": "Image hosting", "cat": "Media", "url": "https://api.imgur.com/", "auth": "OAuth"},
|
|
227
|
+
{"name": "Pixabay", "desc": "Free stock photos", "cat": "Photography", "url": "https://pixabay.com/api/docs/", "auth": "apiKey"},
|
|
228
|
+
{"name": "Unsplash", "desc": "High-quality photos", "cat": "Photography", "url": "https://unsplash.com/documentation", "auth": "apiKey"},
|
|
229
|
+
|
|
230
|
+
# Places
|
|
231
|
+
{"name": "Yelp", "desc": "Local business reviews", "cat": "Places", "url": "https://www.yelp.com/developers/documentation/v2/overview", "auth": "OAuth"},
|
|
232
|
+
{"name": "Zomato", "desc": "Restaurant information", "cat": "Food", "url": "https://developers.zomato.com/api", "auth": "apiKey"},
|
|
233
|
+
|
|
234
|
+
# Social
|
|
235
|
+
{"name": "Disqus", "desc": "Comment platform", "cat": "Social", "url": "https://disqus.com/api/docs/", "auth": "OAuth"},
|
|
236
|
+
{"name": "Facebook", "desc": "Social network", "cat": "Social", "url": "https://developers.facebook.com/docs/", "auth": "OAuth"},
|
|
237
|
+
{"name": "Flickr", "desc": "Photo sharing", "cat": "Photography", "url": "https://www.flickr.com/services/api/", "auth": "OAuth"},
|
|
238
|
+
{"name": "Foursquare", "desc": "Location platform", "cat": "Places", "url": "https://developer.foursquare.com/", "auth": "OAuth"},
|
|
239
|
+
{"name": "Instagram", "desc": "Photo sharing", "cat": "Social", "url": "https://www.instagram.com/developer/", "auth": "OAuth"},
|
|
240
|
+
{"name": "LinkedIn", "desc": "Professional network", "cat": "Social", "url": "https://developer.linkedin.com/", "auth": "OAuth"},
|
|
241
|
+
{"name": "Pinterest", "desc": "Visual discovery", "cat": "Social", "url": "https://developers.pinterest.com/", "auth": "OAuth"},
|
|
242
|
+
{"name": "Reddit", "desc": "Social news", "cat": "Social", "url": "https://www.reddit.com/dev/api/", "auth": "OAuth"},
|
|
243
|
+
{"name": "Tumblr", "desc": "Microblogging", "cat": "Social", "url": "https://www.tumblr.com/docs/en/api/v2", "auth": "OAuth"},
|
|
244
|
+
{"name": "Twitter", "desc": "Social network", "cat": "Social", "url": "https://dev.twitter.com/", "auth": "OAuth"},
|
|
245
|
+
|
|
246
|
+
# Shopping
|
|
247
|
+
{"name": "Amazon Product Advertising", "desc": "Amazon product data", "cat": "E-commerce", "url": "https://affiliate-program.amazon.com/", "auth": "apiKey"},
|
|
248
|
+
{"name": "Best Buy", "desc": "Electronics retailer", "cat": "E-commerce", "url": "https://developer.bestbuy.com/", "auth": "apiKey"},
|
|
249
|
+
{"name": "eBay", "desc": "Online marketplace", "cat": "E-commerce", "url": "https://go.developer.ebay.com/", "auth": "OAuth"},
|
|
250
|
+
{"name": "Home Depot", "desc": "Home improvement retailer", "cat": "E-commerce", "url": "https://developer.homedepot.com/", "auth": "apiKey"},
|
|
251
|
+
{"name": "Semantics3", "desc": "Product data API", "cat": "E-commerce", "url": "http://docs.semantics3.com/reference", "auth": "apiKey"},
|
|
252
|
+
|
|
253
|
+
# Teamwork
|
|
254
|
+
{"name": "Asana", "desc": "Project management", "cat": "Productivity", "url": "https://asana.com/guide/help/api/api", "auth": "OAuth"},
|
|
255
|
+
{"name": "join.me", "desc": "Online meetings", "cat": "Communication", "url": "https://developer.join.me/", "auth": "OAuth"},
|
|
256
|
+
{"name": "Teambition", "desc": "Project collaboration", "cat": "Productivity", "url": "https://www.teambition.com/developer/open-platform", "auth": "OAuth"},
|
|
257
|
+
{"name": "Trello", "desc": "Project management", "cat": "Productivity", "url": "https://developers.trello.com/", "auth": "OAuth"},
|
|
258
|
+
|
|
259
|
+
# Text Analysis
|
|
260
|
+
{"name": "Text Analytics API", "desc": "Microsoft NLP", "cat": "AI", "url": "https://azure.microsoft.com/en-us/services/cognitive-services/text-analytics/", "auth": "apiKey"},
|
|
261
|
+
{"name": "Watson NLU", "desc": "IBM NLP", "cat": "AI", "url": "https://cloud.ibm.com/docs/natural-language-understanding", "auth": "apiKey"},
|
|
262
|
+
|
|
263
|
+
# To-dos
|
|
264
|
+
{"name": "Beeminder", "desc": "Goal tracking", "cat": "Productivity", "url": "https://www.beeminder.com/api", "auth": "OAuth"},
|
|
265
|
+
{"name": "Todoist", "desc": "Task management", "cat": "Productivity", "url": "https://developer.todoist.com/", "auth": "OAuth"},
|
|
266
|
+
{"name": "Toodledo", "desc": "Task management", "cat": "Productivity", "url": "https://api.toodledo.com/3/", "auth": "OAuth"},
|
|
267
|
+
|
|
268
|
+
# Translation
|
|
269
|
+
{"name": "Google Translate", "desc": "Translation service", "cat": "Language", "url": "https://cloud.google.com/translate/docs/", "auth": "apiKey"},
|
|
270
|
+
{"name": "Microsoft Translator", "desc": "Translation service", "cat": "Language", "url": "https://www.microsoft.com/en-us/translator/", "auth": "apiKey"},
|
|
271
|
+
{"name": "Oxford Dictionaries", "desc": "Dictionary API", "cat": "Language", "url": "https://developer.oxforddictionaries.com/", "auth": "apiKey"},
|
|
272
|
+
{"name": "Yandex Translate", "desc": "Translation service", "cat": "Language", "url": "https://tech.yandex.com/translate/", "auth": "apiKey"},
|
|
273
|
+
|
|
274
|
+
# Video
|
|
275
|
+
{"name": "Dailymotion", "desc": "Video platform", "cat": "Video", "url": "https://developer.dailymotion.com/api", "auth": "OAuth"},
|
|
276
|
+
{"name": "Rotten Tomatoes", "desc": "Movie reviews", "cat": "Entertainment", "url": "https://developer.fandango.com/Rotten_Tomatoes", "auth": "apiKey"},
|
|
277
|
+
{"name": "TMDB", "desc": "Movie database", "cat": "Entertainment", "url": "https://developers.themoviedb.org", "auth": "apiKey"},
|
|
278
|
+
{"name": "TVmaze", "desc": "TV show database", "cat": "Entertainment", "url": "https://www.tvmaze.com/api", "auth": "None"},
|
|
279
|
+
{"name": "Vimeo", "desc": "Video platform", "cat": "Video", "url": "https://developer.vimeo.com/", "auth": "OAuth"},
|
|
280
|
+
{"name": "YouTube", "desc": "Video platform", "cat": "Video", "url": "https://developers.google.com/youtube/", "auth": "OAuth"},
|
|
281
|
+
|
|
282
|
+
# Voice
|
|
283
|
+
{"name": "Cloud Speech API", "desc": "Google speech recognition", "cat": "AI", "url": "https://cloud.google.com/speech/", "auth": "apiKey"},
|
|
284
|
+
|
|
285
|
+
# Vision
|
|
286
|
+
{"name": "Clarifai", "desc": "Image and video recognition", "cat": "AI", "url": "https://clarifai.com/developer/guide/", "auth": "apiKey"},
|
|
287
|
+
{"name": "Cloud Vision API", "desc": "Google image analysis", "cat": "AI", "url": "https://cloud.google.com/vision/", "auth": "apiKey"},
|
|
288
|
+
{"name": "Computer Vision API", "desc": "Microsoft image analysis", "cat": "AI", "url": "https://azure.microsoft.com/en-us/services/cognitive-services/computer-vision/", "auth": "apiKey"},
|
|
289
|
+
{"name": "Face++", "desc": "Face recognition", "cat": "AI", "url": "https://www.faceplusplus.com/", "auth": "apiKey"},
|
|
290
|
+
{"name": "Watson Visual Recognition", "desc": "IBM image analysis", "cat": "AI", "url": "https://cloud.ibm.com/catalog/services/visual-recognition", "auth": "apiKey"},
|
|
291
|
+
|
|
292
|
+
# Weather
|
|
293
|
+
{"name": "AccuWeather", "desc": "Weather data", "cat": "Weather", "url": "https://developer.accuweather.com/", "auth": "apiKey"},
|
|
294
|
+
{"name": "Aeris Weather", "desc": "Weather API", "cat": "Weather", "url": "http://www.aerisweather.com/develop/", "auth": "apiKey"},
|
|
295
|
+
{"name": "OpenWeatherMap", "desc": "Weather data", "cat": "Weather", "url": "https://openweathermap.org/api", "auth": "apiKey"},
|
|
296
|
+
{"name": "Weather Underground", "desc": "Weather data", "cat": "Weather", "url": "https://www.wunderground.com/weather/api/", "auth": "apiKey"},
|
|
297
|
+
{"name": "Yahoo Weather", "desc": "Weather data", "cat": "Weather", "url": "https://developer.yahoo.com/weather/", "auth": "None"},
|
|
298
|
+
]
|
|
299
|
+
|
|
300
|
+
return tonny_apis
|
|
301
|
+
|
|
302
|
+
def parse_n0shake_markdown():
|
|
303
|
+
"""Parse n0shake/Public-APIs markdown format"""
|
|
304
|
+
apis = []
|
|
305
|
+
|
|
306
|
+
# Embedded data from n0shake repo
|
|
307
|
+
n0shake_apis = [
|
|
308
|
+
# Advertising
|
|
309
|
+
{"name": "Amazon Mobile Ads", "desc": "Mobile ad monetization", "cat": "Advertising", "url": "https://developer.amazon.com/mobile-ads", "auth": "apiKey"},
|
|
310
|
+
{"name": "Facebook Marketing API", "desc": "Ad campaign management", "cat": "Marketing", "url": "https://developers.facebook.com/docs/marketing-apis", "auth": "OAuth"},
|
|
311
|
+
{"name": "Google AdSense", "desc": "Website monetization", "cat": "Advertising", "url": "https://developers.google.com/adsense/", "auth": "OAuth"},
|
|
312
|
+
{"name": "Google AdWords", "desc": "Ad campaign management", "cat": "Advertising", "url": "https://developers.google.com/adwords/api/", "auth": "OAuth"},
|
|
313
|
+
{"name": "Kevel Ad APIs", "desc": "Build your own ad server", "cat": "Advertising", "url": "https://dev.kevel.co", "auth": "apiKey"},
|
|
314
|
+
{"name": "Microsoft Ads", "desc": "Bing advertising", "cat": "Advertising", "url": "https://docs.microsoft.com/en-us/advertising/", "auth": "OAuth"},
|
|
315
|
+
|
|
316
|
+
# Analytics
|
|
317
|
+
{"name": "Amazon Mobile Analytics", "desc": "App usage analytics", "cat": "Analytics", "url": "https://aws.amazon.com/documentation/mobileanalytics/", "auth": "apiKey"},
|
|
318
|
+
{"name": "Clicky", "desc": "Website traffic analytics", "cat": "Analytics", "url": "https://clicky.com/help/api", "auth": "apiKey"},
|
|
319
|
+
{"name": "DitchCarbon", "desc": "Carbon emissions data", "cat": "Environment", "url": "https://docs.ditchcarbon.com/", "auth": "apiKey"},
|
|
320
|
+
{"name": "Google Analytics", "desc": "Web analytics", "cat": "Analytics", "url": "https://developers.google.com/analytics/", "auth": "OAuth"},
|
|
321
|
+
{"name": "Matomo", "desc": "Web analytics platform", "cat": "Analytics", "url": "https://matomo.org/docs/analytics-api/", "auth": "apiKey"},
|
|
322
|
+
{"name": "MixPanel", "desc": "Product analytics", "cat": "Analytics", "url": "https://developer.mixpanel.com/", "auth": "apiKey"},
|
|
323
|
+
{"name": "Open Web Analytics", "desc": "Open source analytics", "cat": "Analytics", "url": "https://github.com/padams/Open-Web-Analytics/wiki/Data-Access-API", "auth": "None"},
|
|
324
|
+
{"name": "Ticksel", "desc": "Human-friendly analytics", "cat": "Analytics", "url": "https://ticksel.com", "auth": "apiKey"},
|
|
325
|
+
{"name": "Woopra", "desc": "Real-time analytics", "cat": "Analytics", "url": "https://www.woopra.com/docs/developer/analytics-api/", "auth": "apiKey"},
|
|
326
|
+
{"name": "Zoho Reports", "desc": "BI and reporting", "cat": "Analytics", "url": "https://www.zoho.com/analytics/api/", "auth": "apiKey"},
|
|
327
|
+
|
|
328
|
+
# Augmented Reality
|
|
329
|
+
{"name": "Vuforia", "desc": "AR development SDK", "cat": "AR/VR", "url": "https://library.vuforia.com/", "auth": "apiKey"},
|
|
330
|
+
{"name": "Wikitude", "desc": "AR solutions", "cat": "AR/VR", "url": "http://www.wikitude.com/download/", "auth": "apiKey"},
|
|
331
|
+
|
|
332
|
+
# Barcode
|
|
333
|
+
{"name": "Dynamic QR Code", "desc": "QR code generation", "cat": "Tools", "url": "https://rapidapi.com/qr-code-dynamic-and-static1/api", "auth": "apiKey"},
|
|
334
|
+
{"name": "Google Barcode", "desc": "Barcode detection", "cat": "Tools", "url": "https://developers.google.com/vision/barcodes-overview", "auth": "apiKey"},
|
|
335
|
+
{"name": "EAN-Search", "desc": "Product barcode lookup", "cat": "E-commerce", "url": "https://www.ean-search.org/ean-database-api.html", "auth": "apiKey"},
|
|
336
|
+
|
|
337
|
+
# Big Data
|
|
338
|
+
{"name": "Google Charts", "desc": "Data visualization", "cat": "Analytics", "url": "https://developers.google.com/chart/", "auth": "None"},
|
|
339
|
+
{"name": "Keen IO", "desc": "Event data platform", "cat": "Analytics", "url": "https://keen.io/docs/api/", "auth": "apiKey"},
|
|
340
|
+
{"name": "MongoDB", "desc": "NoSQL database", "cat": "Database", "url": "https://www.mongodb.com/docs/", "auth": "apiKey"},
|
|
341
|
+
{"name": "LinkedData Center", "desc": "RDF graph database", "cat": "Database", "url": "http://linkeddata.center/", "auth": "apiKey"},
|
|
342
|
+
|
|
343
|
+
# Cryptocurrency
|
|
344
|
+
{"name": "Bitcoin", "desc": "Bitcoin development", "cat": "Cryptocurrency", "url": "https://developer.bitcoin.org/", "auth": "None"},
|
|
345
|
+
{"name": "Bitcoincharts", "desc": "Bitcoin market data", "cat": "Cryptocurrency", "url": "https://bitcoincharts.com/about/markets-api/", "auth": "None"},
|
|
346
|
+
{"name": "BitPay", "desc": "Bitcoin payments", "cat": "Cryptocurrency", "url": "https://bitpay.com/developers", "auth": "apiKey"},
|
|
347
|
+
{"name": "Block", "desc": "Crypto wallet", "cat": "Cryptocurrency", "url": "https://block.io/", "auth": "apiKey"},
|
|
348
|
+
{"name": "BlockCypher", "desc": "Blockchain infrastructure", "cat": "Cryptocurrency", "url": "https://www.blockcypher.com/", "auth": "apiKey"},
|
|
349
|
+
{"name": "BlockFacts", "desc": "Digital asset data", "cat": "Cryptocurrency", "url": "https://blockfacts.io/", "auth": "apiKey"},
|
|
350
|
+
{"name": "Coinbase", "desc": "Cryptocurrency exchange", "cat": "Cryptocurrency", "url": "https://developers.coinbase.com/", "auth": "OAuth"},
|
|
351
|
+
{"name": "CoinDesk", "desc": "Bitcoin Price Index", "cat": "Cryptocurrency", "url": "http://www.coindesk.com/api/", "auth": "None"},
|
|
352
|
+
{"name": "CoinGecko", "desc": "Cryptocurrency data", "cat": "Cryptocurrency", "url": "https://coingecko.com/en/api", "auth": "None"},
|
|
353
|
+
{"name": "Coinlore", "desc": "Crypto tick data", "cat": "Cryptocurrency", "url": "https://www.coinlore.com/cryptocurrency-data-api", "auth": "None"},
|
|
354
|
+
{"name": "CoinMarketCap", "desc": "Crypto prices", "cat": "Cryptocurrency", "url": "https://coinmarketcap.com/api/", "auth": "apiKey"},
|
|
355
|
+
{"name": "Coinpaprika", "desc": "Crypto market data", "cat": "Cryptocurrency", "url": "https://api.coinpaprika.com", "auth": "None"},
|
|
356
|
+
{"name": "CryptoCompare", "desc": "Crypto comparison", "cat": "Cryptocurrency", "url": "https://www.cryptocompare.com/api", "auth": "None"},
|
|
357
|
+
{"name": "Cryptonator", "desc": "Exchange rates", "cat": "Cryptocurrency", "url": "https://www.cryptonator.com/api/", "auth": "None"},
|
|
358
|
+
{"name": "Coinigy", "desc": "Trading platform", "cat": "Cryptocurrency", "url": "https://coinigy.docs.apiary.io", "auth": "apiKey"},
|
|
359
|
+
{"name": "Covalent", "desc": "Blockchain data", "cat": "Cryptocurrency", "url": "https://www.covalenthq.com/docs/api/", "auth": "apiKey"},
|
|
360
|
+
{"name": "Poloniex", "desc": "Crypto exchange", "cat": "Cryptocurrency", "url": "https://poloniex.com/support/api/", "auth": "apiKey"},
|
|
361
|
+
{"name": "ShapeShift", "desc": "Crypto exchange", "cat": "Cryptocurrency", "url": "https://shapeshift.io/", "auth": "None"},
|
|
362
|
+
{"name": "Technical Analysis", "desc": "Crypto technical analysis", "cat": "Cryptocurrency", "url": "https://technical-analysis-api.com", "auth": "apiKey"},
|
|
363
|
+
|
|
364
|
+
# Calendar
|
|
365
|
+
{"name": "CalendarIndex", "desc": "Holidays and working days", "cat": "Productivity", "url": "https://www.calendarindex.com", "auth": "apiKey"},
|
|
366
|
+
{"name": "DigiDates", "desc": "Date calculations", "cat": "Tools", "url": "https://digidates.de/en/", "auth": "None"},
|
|
367
|
+
{"name": "Holiday API", "desc": "Public holidays", "cat": "Productivity", "url": "https://holidayapi.pl/", "auth": "apiKey"},
|
|
368
|
+
{"name": "OpenHolidays", "desc": "European holidays", "cat": "Productivity", "url": "https://www.openholidaysapi.org/", "auth": "None"},
|
|
369
|
+
|
|
370
|
+
# Captcha
|
|
371
|
+
{"name": "Anti-Captcha", "desc": "Captcha solving", "cat": "Tools", "url": "https://anti-captcha.com/apidoc", "auth": "apiKey"},
|
|
372
|
+
{"name": "reCAPTCHA", "desc": "Spam protection", "cat": "Security", "url": "https://developers.google.com/recaptcha/", "auth": "apiKey"},
|
|
373
|
+
|
|
374
|
+
# Check-In
|
|
375
|
+
{"name": "Facebook Check-In", "desc": "Location check-ins", "cat": "Social", "url": "https://developers.facebook.com/docs/graph-api/reference/checkin", "auth": "OAuth"},
|
|
376
|
+
{"name": "Google Places", "desc": "Places database", "cat": "Places", "url": "https://developers.google.com/places/", "auth": "apiKey"},
|
|
377
|
+
{"name": "Foursquare Check-In", "desc": "Location check-ins", "cat": "Places", "url": "https://developer.foursquare.com/", "auth": "OAuth"},
|
|
378
|
+
|
|
379
|
+
# Commerce
|
|
380
|
+
{"name": "Commerce Layer", "desc": "Headless commerce", "cat": "E-commerce", "url": "https://docs.commercelayer.io/api/", "auth": "OAuth"},
|
|
381
|
+
{"name": "envoice", "desc": "Invoicing API", "cat": "Finance", "url": "https://www.envoice.in/reference/api/docs", "auth": "apiKey"},
|
|
382
|
+
{"name": "koomalooma", "desc": "Loyalty program", "cat": "E-commerce", "url": "http://business.koomalooma.com", "auth": "apiKey"},
|
|
383
|
+
{"name": "Moltin", "desc": "E-commerce API", "cat": "E-commerce", "url": "https://www.moltin.com/developers", "auth": "OAuth"},
|
|
384
|
+
{"name": "Stripe", "desc": "Payment processing", "cat": "Finance", "url": "https://stripe.com/docs/api", "auth": "apiKey"},
|
|
385
|
+
{"name": "Braintree", "desc": "Payment platform", "cat": "Finance", "url": "https://developers.braintreepayments.com", "auth": "apiKey"},
|
|
386
|
+
|
|
387
|
+
# Communication
|
|
388
|
+
{"name": "Africa's Talking", "desc": "African telco services", "cat": "Communication", "url": "https://africastalking.com/", "auth": "apiKey"},
|
|
389
|
+
{"name": "iP1sms", "desc": "SMS worldwide", "cat": "Communication", "url": "https://www.ip1sms.com/en/developer/", "auth": "apiKey"},
|
|
390
|
+
{"name": "Eqivo", "desc": "Programmable voice", "cat": "Communication", "url": "https://eqivo.org", "auth": "apiKey"},
|
|
391
|
+
{"name": "MailGun", "desc": "Transactional email", "cat": "Email", "url": "https://mailgun.com", "auth": "apiKey"},
|
|
392
|
+
{"name": "Nexmo", "desc": "SMS and voice", "cat": "Communication", "url": "https://developer.nexmo.com", "auth": "apiKey"},
|
|
393
|
+
{"name": "Sakari", "desc": "SMS API", "cat": "Communication", "url": "https://developer.sakari.io", "auth": "apiKey"},
|
|
394
|
+
{"name": "Telnyx", "desc": "Communications platform", "cat": "Communication", "url": "https://developers.telnyx.com/", "auth": "apiKey"},
|
|
395
|
+
{"name": "The SMS Works", "desc": "SMS API", "cat": "Communication", "url": "https://thesmsworks.co.uk/sms-api", "auth": "apiKey"},
|
|
396
|
+
{"name": "Twilio", "desc": "Communications APIs", "cat": "Communication", "url": "https://www.twilio.com/docs", "auth": "apiKey"},
|
|
397
|
+
|
|
398
|
+
# Content
|
|
399
|
+
{"name": "Bible API", "desc": "Bible translations", "cat": "Books", "url": "https://bible-api.com/", "auth": "None"},
|
|
400
|
+
{"name": "Fruits API", "desc": "Fruit tree data", "cat": "Food", "url": "https://github.com/Franqsanz/fruits-api", "auth": "None"},
|
|
401
|
+
{"name": "Jokes API", "desc": "Jokes database", "cat": "Entertainment", "url": "https://jokes.one/api/joke/", "auth": "apiKey"},
|
|
402
|
+
{"name": "Perfect Tense", "desc": "Grammar checking", "cat": "Language", "url": "https://www.perfecttense.com/developers", "auth": "apiKey"},
|
|
403
|
+
{"name": "Random Data Generator", "desc": "Generate test data", "cat": "Tools", "url": "https://randommer.io/randommer-api", "auth": "apiKey"},
|
|
404
|
+
{"name": "Random Facts", "desc": "Random facts", "cat": "Entertainment", "url": "https://fungenerators.com/api/facts/", "auth": "apiKey"},
|
|
405
|
+
{"name": "Today in History", "desc": "Historical events", "cat": "Education", "url": "https://history.muffinlabs.com/", "auth": "None"},
|
|
406
|
+
{"name": "Wikipedia API", "desc": "Encyclopedia", "cat": "Education", "url": "https://en.wikipedia.org/w/api.php", "auth": "None"},
|
|
407
|
+
|
|
408
|
+
# Currency
|
|
409
|
+
{"name": "Currency-api", "desc": "Exchange rates", "cat": "Finance", "url": "https://github.com/fawazahmed0/currency-api", "auth": "None"},
|
|
410
|
+
{"name": "CurrencyLayer", "desc": "Currency conversion", "cat": "Finance", "url": "https://currencylayer.com/documentation", "auth": "apiKey"},
|
|
411
|
+
{"name": "ECB Exchange Rates", "desc": "European bank rates", "cat": "Finance", "url": "https://www.ecb.europa.eu/stats/eurofxref/", "auth": "None"},
|
|
412
|
+
{"name": "ExchangeRate-API", "desc": "Currency conversion", "cat": "Finance", "url": "https://www.exchangerate-api.com/docs/overview", "auth": "apiKey"},
|
|
413
|
+
{"name": "ExchangeRatesAPI", "desc": "Foreign exchange", "cat": "Finance", "url": "https://exchangeratesapi.io/", "auth": "apiKey"},
|
|
414
|
+
{"name": "Fixer.io", "desc": "Exchange rates", "cat": "Finance", "url": "http://fixer.io/", "auth": "apiKey"},
|
|
415
|
+
{"name": "Frankfurter", "desc": "Currency data", "cat": "Finance", "url": "https://www.frankfurter.app/docs/", "auth": "None"},
|
|
416
|
+
|
|
417
|
+
# Design
|
|
418
|
+
{"name": "Icon Horse", "desc": "Favicon API", "cat": "Design", "url": "https://icon.horse/usage", "auth": "None"},
|
|
419
|
+
{"name": "Pexels", "desc": "Stock photos", "cat": "Photography", "url": "https://www.pexels.com/api/", "auth": "apiKey"},
|
|
420
|
+
{"name": "PHP-Noise", "desc": "Noise backgrounds", "cat": "Design", "url": "https://php-noise.com/", "auth": "None"},
|
|
421
|
+
|
|
422
|
+
# Dictionary
|
|
423
|
+
{"name": "Agarathi", "desc": "Tamil dictionary", "cat": "Language", "url": "https://agarathi.com/api/dictionary", "auth": "apiKey"},
|
|
424
|
+
{"name": "Cambridge Dictionaries", "desc": "Dictionary API", "cat": "Language", "url": "http://dictionary.cambridge.org/license.html", "auth": "apiKey"},
|
|
425
|
+
{"name": "Datamuse", "desc": "Word finding", "cat": "Language", "url": "https://www.datamuse.com/api/", "auth": "None"},
|
|
426
|
+
{"name": "Free Dictionary", "desc": "Word definitions", "cat": "Language", "url": "https://dictionaryapi.dev/", "auth": "None"},
|
|
427
|
+
{"name": "Lingua Robot", "desc": "Language processing", "cat": "Language", "url": "https://www.linguarobot.io/", "auth": "apiKey"},
|
|
428
|
+
{"name": "Merriam-Webster", "desc": "Dictionary and thesaurus", "cat": "Language", "url": "http://www.dictionaryapi.com/", "auth": "apiKey"},
|
|
429
|
+
{"name": "Wordnik", "desc": "Word definitions", "cat": "Language", "url": "http://developer.wordnik.com/", "auth": "apiKey"},
|
|
430
|
+
{"name": "Words API", "desc": "Word definitions", "cat": "Language", "url": "https://www.wordsapi.com/", "auth": "apiKey"},
|
|
431
|
+
{"name": "Wiktionary", "desc": "Multilingual dictionary", "cat": "Language", "url": "https://en.wiktionary.org/w/api.php", "auth": "None"},
|
|
432
|
+
|
|
433
|
+
# Entertainment
|
|
434
|
+
{"name": "AniList GraphQL", "desc": "Anime and manga database", "cat": "Entertainment", "url": "https://anilist.gitbook.io/anilist-apiv2-docs/", "auth": "OAuth"},
|
|
435
|
+
{"name": "Bob's Burgers API", "desc": "TV show data", "cat": "Entertainment", "url": "https://www.bobsburgersapi.com/documentation", "auth": "None"},
|
|
436
|
+
{"name": "Breaking Bad API", "desc": "TV show data", "cat": "Entertainment", "url": "https://breakingbadapi.com/documentation", "auth": "None"},
|
|
437
|
+
{"name": "Cat as a Service", "desc": "Cat images", "cat": "Entertainment", "url": "https://cataas.com/", "auth": "None"},
|
|
438
|
+
{"name": "Comic Vine", "desc": "Comic database", "cat": "Entertainment", "url": "http://comicvine.gamespot.com/api/", "auth": "apiKey"},
|
|
439
|
+
{"name": "Danbooru", "desc": "Image board", "cat": "Entertainment", "url": "https://danbooru.donmai.us/posts?tags=help%3Aapi", "auth": "apiKey"},
|
|
440
|
+
{"name": "Dune API", "desc": "Dune universe data", "cat": "Entertainment", "url": "https://github.com/ywalia01/dune-api", "auth": "None"},
|
|
441
|
+
{"name": "Final Space API", "desc": "TV show data", "cat": "Entertainment", "url": "https://finalspaceapi.com/docs/", "auth": "None"},
|
|
442
|
+
{"name": "Fun Translations", "desc": "Language translations", "cat": "Entertainment", "url": "https://funtranslations.com/api/", "auth": "apiKey"},
|
|
443
|
+
{"name": "Lord of the Rings API", "desc": "LOTR data", "cat": "Entertainment", "url": "https://the-one-api.dev/documentation", "auth": "apiKey"},
|
|
444
|
+
{"name": "Marvel", "desc": "Marvel comics data", "cat": "Entertainment", "url": "https://developer.marvel.com/", "auth": "apiKey"},
|
|
445
|
+
{"name": "Jikan", "desc": "My Anime List unofficial", "cat": "Entertainment", "url": "https://jikan.moe/", "auth": "None"},
|
|
446
|
+
{"name": "Owen Wilson Wow", "desc": "Movie quotes", "cat": "Entertainment", "url": "https://owen-wilson-wow-api.onrender.com/", "auth": "None"},
|
|
447
|
+
{"name": "PokeAPI", "desc": "Pokemon data", "cat": "Games", "url": "https://pokeapi.co/", "auth": "None"},
|
|
448
|
+
{"name": "Rick and Morty", "desc": "TV show data", "cat": "Entertainment", "url": "https://rickandmortyapi.com/", "auth": "None"},
|
|
449
|
+
{"name": "Riddles API", "desc": "Random riddles", "cat": "Entertainment", "url": "https://riddles-api.vercel.app/", "auth": "None"},
|
|
450
|
+
{"name": "STAPI", "desc": "Star Trek data", "cat": "Entertainment", "url": "https://stapi.co/api-documentation", "auth": "None"},
|
|
451
|
+
{"name": "SWAPI", "desc": "Star Wars data", "cat": "Entertainment", "url": "https://www.swapi.tech/", "auth": "None"},
|
|
452
|
+
{"name": "Studio Ghibli", "desc": "Ghibli films data", "cat": "Entertainment", "url": "https://ghibliapi.vercel.app/", "auth": "None"},
|
|
453
|
+
{"name": "TCGdex", "desc": "Pokemon TCG data", "cat": "Games", "url": "https://www.tcgdex.dev/", "auth": "None"},
|
|
454
|
+
|
|
455
|
+
# Events
|
|
456
|
+
{"name": "Picatic", "desc": "Event ticketing", "cat": "Events", "url": "http://developer.picatic.com/", "auth": "OAuth"},
|
|
457
|
+
|
|
458
|
+
# Face Recognition
|
|
459
|
+
{"name": "Kairos", "desc": "Face recognition", "cat": "AI", "url": "https://www.kairos.com/", "auth": "apiKey"},
|
|
460
|
+
{"name": "Skybiometry", "desc": "Face detection", "cat": "AI", "url": "https://www.skybiometry.com", "auth": "apiKey"},
|
|
461
|
+
|
|
462
|
+
# File Storage
|
|
463
|
+
{"name": "Amazon S3", "desc": "Cloud storage", "cat": "Cloud", "url": "https://aws.amazon.com/s3/", "auth": "apiKey"},
|
|
464
|
+
{"name": "Cloudinary", "desc": "Image and video management", "cat": "Media", "url": "http://cloudinary.com/documentation", "auth": "apiKey"},
|
|
465
|
+
{"name": "Filestack", "desc": "File handling", "cat": "Cloud", "url": "https://filestack.com/docs/", "auth": "apiKey"},
|
|
466
|
+
{"name": "Microsoft Graph", "desc": "Microsoft cloud files", "cat": "Cloud", "url": "https://graph.microsoft.io/", "auth": "OAuth"},
|
|
467
|
+
{"name": "PDF Blocks", "desc": "PDF manipulation", "cat": "Documents", "url": "https://www.pdfblocks.com/docs/api/", "auth": "apiKey"},
|
|
468
|
+
{"name": "SignNow", "desc": "eSignature API", "cat": "Documents", "url": "https://docs.signnow.com/", "auth": "OAuth"},
|
|
469
|
+
{"name": "Smash", "desc": "Large file upload", "cat": "Cloud", "url": "https://api.fromsmash.com/", "auth": "apiKey"},
|
|
470
|
+
{"name": "Vector Express", "desc": "Vector file processing", "cat": "Design", "url": "https://github.com/smidyo/vectorexpress-api", "auth": "apiKey"},
|
|
471
|
+
{"name": "Vertopal", "desc": "File conversion", "cat": "Tools", "url": "https://www.vertopal.com/en/developer/api/", "auth": "apiKey"},
|
|
472
|
+
|
|
473
|
+
# Finance
|
|
474
|
+
{"name": "Alpha Vantage", "desc": "Stock market data", "cat": "Finance", "url": "https://www.alphavantage.co/", "auth": "apiKey"},
|
|
475
|
+
{"name": "Atom Finance", "desc": "Market and earnings data", "cat": "Finance", "url": "https://docs.atom.finance/", "auth": "apiKey"},
|
|
476
|
+
{"name": "IEX Cloud", "desc": "Stock market data", "cat": "Finance", "url": "https://iexcloud.io/docs/api/", "auth": "apiKey"},
|
|
477
|
+
{"name": "Twelve Data", "desc": "Stock market data", "cat": "Finance", "url": "https://twelvedata.com/docs/", "auth": "apiKey"},
|
|
478
|
+
{"name": "IBANAPI", "desc": "IBAN validation", "cat": "Finance", "url": "https://ibanapi.com/get-api", "auth": "apiKey"},
|
|
479
|
+
{"name": "Parqet Logo API", "desc": "Company logos", "cat": "Finance", "url": "https://developers.parqet.com/docs/assets/logos", "auth": "None"},
|
|
480
|
+
{"name": "Portfolio Optimizer", "desc": "Investment optimization", "cat": "Finance", "url": "https://portfoliooptimizer.io/", "auth": "apiKey"},
|
|
481
|
+
|
|
482
|
+
# Fitness
|
|
483
|
+
{"name": "HealthGraph", "desc": "RunKeeper data", "cat": "Health", "url": "https://runkeeper.com/developer/healthgraph/", "auth": "OAuth"},
|
|
484
|
+
{"name": "Open Food Facts", "desc": "Food database", "cat": "Food", "url": "https://en.wiki.openfoodfacts.org/API", "auth": "None"},
|
|
485
|
+
{"name": "VeganCheck", "desc": "Product vegan check", "cat": "Food", "url": "https://jokenetwork.de/vegancheck-api", "auth": "None"},
|
|
486
|
+
|
|
487
|
+
# Google
|
|
488
|
+
{"name": "Google BigQuery", "desc": "Data analytics", "cat": "Analytics", "url": "https://cloud.google.com/bigquery/docs/reference/rest/", "auth": "OAuth"},
|
|
489
|
+
{"name": "Google Books", "desc": "Books search", "cat": "Books", "url": "https://developers.google.com/books/", "auth": "apiKey"},
|
|
490
|
+
{"name": "Google Classroom", "desc": "Education platform", "cat": "Education", "url": "https://developers.google.com/classroom/", "auth": "OAuth"},
|
|
491
|
+
{"name": "Google Custom Search", "desc": "Search API", "cat": "Search", "url": "https://developers.google.com/custom-search/", "auth": "apiKey"},
|
|
492
|
+
{"name": "Google Fitness", "desc": "Fitness data", "cat": "Health", "url": "https://developers.google.com/fit/", "auth": "OAuth"},
|
|
493
|
+
{"name": "Google Fonts", "desc": "Web fonts", "cat": "Design", "url": "https://developers.google.com/fonts/", "auth": "None"},
|
|
494
|
+
{"name": "Google Genomics", "desc": "Genomics data", "cat": "Science", "url": "https://cloud.google.com/genomics/reference/rest/", "auth": "OAuth"},
|
|
495
|
+
{"name": "Google Identity", "desc": "Authentication", "cat": "Security", "url": "https://developers.google.com/identity/", "auth": "OAuth"},
|
|
496
|
+
{"name": "Google Monitoring", "desc": "Cloud monitoring", "cat": "DevOps", "url": "https://cloud.google.com/monitoring/api/v3/", "auth": "OAuth"},
|
|
497
|
+
|
|
498
|
+
# Identity
|
|
499
|
+
{"name": "BlockScore", "desc": "Identity verification", "cat": "Security", "url": "https://docs.blockscore.com/", "auth": "apiKey"},
|
|
500
|
+
{"name": "Cognito", "desc": "Identity verification", "cat": "Security", "url": "https://cognitohq.com/docs", "auth": "apiKey"},
|
|
501
|
+
]
|
|
502
|
+
|
|
503
|
+
return n0shake_apis
|
|
504
|
+
|
|
505
|
+
def generate_more_apis():
|
|
506
|
+
"""Generate additional APIs from various categories"""
|
|
507
|
+
more_apis = [
|
|
508
|
+
# Government & Open Data
|
|
509
|
+
{"name": "USA.gov", "desc": "US government data", "cat": "Government", "url": "https://www.usa.gov/developer", "auth": "None"},
|
|
510
|
+
{"name": "Data.gov", "desc": "US open data", "cat": "Government", "url": "https://www.data.gov/developers/apis", "auth": "None"},
|
|
511
|
+
{"name": "UK Government", "desc": "UK government APIs", "cat": "Government", "url": "https://www.api.gov.uk/", "auth": "apiKey"},
|
|
512
|
+
{"name": "EU Open Data", "desc": "European Union data", "cat": "Government", "url": "https://data.europa.eu/en", "auth": "None"},
|
|
513
|
+
{"name": "World Bank", "desc": "Global development data", "cat": "Government", "url": "https://data.worldbank.org/", "auth": "None"},
|
|
514
|
+
{"name": "UN Data", "desc": "United Nations data", "cat": "Government", "url": "http://data.un.org/", "auth": "None"},
|
|
515
|
+
{"name": "Census Bureau", "desc": "US census data", "cat": "Government", "url": "https://www.census.gov/data/developers/", "auth": "apiKey"},
|
|
516
|
+
{"name": "FDA", "desc": "US drug and food data", "cat": "Healthcare", "url": "https://open.fda.gov/", "auth": "None"},
|
|
517
|
+
{"name": "CDC", "desc": "Health statistics", "cat": "Healthcare", "url": "https://www.cdc.gov/apis.html", "auth": "None"},
|
|
518
|
+
{"name": "Data.gov.uk", "desc": "UK open data", "cat": "Government", "url": "https://data.gov.uk/", "auth": "None"},
|
|
519
|
+
|
|
520
|
+
# Science & Research
|
|
521
|
+
{"name": "NASA APIs", "desc": "Space and astronomy data", "cat": "Science", "url": "https://api.nasa.gov/", "auth": "apiKey"},
|
|
522
|
+
{"name": "SpaceX", "desc": "SpaceX launch data", "cat": "Science", "url": "https://github.com/r-spacex/SpaceX-API", "auth": "None"},
|
|
523
|
+
{"name": "Open Science Framework", "desc": "Research data", "cat": "Science", "url": "https://developer.osf.io/", "auth": "OAuth"},
|
|
524
|
+
{"name": "PubMed", "desc": "Medical literature", "cat": "Healthcare", "url": "https://www.ncbi.nlm.nih.gov/home/develop/api/", "auth": "apiKey"},
|
|
525
|
+
{"name": "arXiv", "desc": "Scientific papers", "cat": "Science", "url": "https://arxiv.org/help/api/", "auth": "None"},
|
|
526
|
+
{"name": "CERN Open Data", "desc": "Particle physics data", "cat": "Science", "url": "http://opendata.cern.ch/", "auth": "None"},
|
|
527
|
+
{"name": "GBIF", "desc": "Biodiversity data", "cat": "Science", "url": "https://www.gbif.org/developer/summary", "auth": "None"},
|
|
528
|
+
{"name": "iNaturalist", "desc": "Nature observations", "cat": "Science", "url": "https://www.inaturalist.org/pages/api+reference", "auth": "OAuth"},
|
|
529
|
+
{"name": "USGS", "desc": "Geological data", "cat": "Science", "url": "https://www.usgs.gov/products/data-and-tools/apis", "auth": "None"},
|
|
530
|
+
{"name": "NOAA", "desc": "Weather and ocean data", "cat": "Weather", "url": "https://www.ncdc.noaa.gov/cdo-web/webservices/v2", "auth": "apiKey"},
|
|
531
|
+
|
|
532
|
+
# Education
|
|
533
|
+
{"name": "Khan Academy", "desc": "Educational content", "cat": "Education", "url": "https://github.com/Khan/khan-api", "auth": "OAuth"},
|
|
534
|
+
{"name": "Coursera", "desc": "Online courses", "cat": "Education", "url": "https://building.coursera.org/developer/", "auth": "OAuth"},
|
|
535
|
+
{"name": "edX", "desc": "Online learning", "cat": "Education", "url": "https://github.com/edx/course-discovery", "auth": "OAuth"},
|
|
536
|
+
{"name": "Open Trivia DB", "desc": "Trivia questions", "cat": "Education", "url": "https://opentdb.com/api_config.php", "auth": "None"},
|
|
537
|
+
{"name": "Numbers API", "desc": "Number facts", "cat": "Education", "url": "http://numbersapi.com/", "auth": "None"},
|
|
538
|
+
{"name": "Wolfram Alpha", "desc": "Computational knowledge", "cat": "Education", "url": "https://products.wolframalpha.com/api/", "auth": "apiKey"},
|
|
539
|
+
{"name": "QuizAPI", "desc": "Programming quizzes", "cat": "Education", "url": "https://quizapi.io/", "auth": "apiKey"},
|
|
540
|
+
{"name": "uClassify", "desc": "Text classification", "cat": "AI", "url": "https://www.uclassify.com/docs/restapi", "auth": "apiKey"},
|
|
541
|
+
|
|
542
|
+
# Sports
|
|
543
|
+
{"name": "ESPN", "desc": "Sports data and news", "cat": "Sports", "url": "http://www.espn.com/apis/devcenter/", "auth": "apiKey"},
|
|
544
|
+
{"name": "Football-Data.org", "desc": "Football statistics", "cat": "Sports", "url": "https://www.football-data.org/documentation/", "auth": "apiKey"},
|
|
545
|
+
{"name": "NBA", "desc": "Basketball statistics", "cat": "Sports", "url": "https://www.nba.com/stats/", "auth": "None"},
|
|
546
|
+
{"name": "NHL", "desc": "Hockey statistics", "cat": "Sports", "url": "https://gitlab.com/dword4/nhlapi", "auth": "None"},
|
|
547
|
+
{"name": "MLB", "desc": "Baseball statistics", "cat": "Sports", "url": "http://lookup-service-prod.mlb.com/", "auth": "None"},
|
|
548
|
+
{"name": "TheSportsDB", "desc": "Sports database", "cat": "Sports", "url": "https://www.thesportsdb.com/api.php", "auth": "apiKey"},
|
|
549
|
+
{"name": "API-Football", "desc": "Football data", "cat": "Sports", "url": "https://www.api-football.com/documentation", "auth": "apiKey"},
|
|
550
|
+
{"name": "Ergast F1", "desc": "Formula 1 data", "cat": "Sports", "url": "http://ergast.com/mrd/", "auth": "None"},
|
|
551
|
+
{"name": "OpenLigaDB", "desc": "German football data", "cat": "Sports", "url": "https://www.openligadb.de/", "auth": "None"},
|
|
552
|
+
{"name": "Balldontlie", "desc": "NBA statistics", "cat": "Sports", "url": "https://www.balldontlie.io/", "auth": "None"},
|
|
553
|
+
|
|
554
|
+
# Food & Recipes
|
|
555
|
+
{"name": "Spoonacular", "desc": "Recipe and nutrition", "cat": "Food", "url": "https://spoonacular.com/food-api", "auth": "apiKey"},
|
|
556
|
+
{"name": "Edamam", "desc": "Nutrition data", "cat": "Food", "url": "https://developer.edamam.com/", "auth": "apiKey"},
|
|
557
|
+
{"name": "TheMealDB", "desc": "Recipe database", "cat": "Food", "url": "https://www.themealdb.com/api.php", "auth": "apiKey"},
|
|
558
|
+
{"name": "TheCocktailDB", "desc": "Cocktail recipes", "cat": "Food", "url": "https://www.thecocktaildb.com/api.php", "auth": "apiKey"},
|
|
559
|
+
{"name": "USDA FoodData", "desc": "Food composition data", "cat": "Food", "url": "https://fdc.nal.usda.gov/api-guide.html", "auth": "apiKey"},
|
|
560
|
+
{"name": "Tasty", "desc": "Recipes from Tasty", "cat": "Food", "url": "https://rapidapi.com/apidojo/api/tasty/", "auth": "apiKey"},
|
|
561
|
+
{"name": "Nutritionix", "desc": "Nutrition database", "cat": "Food", "url": "https://www.nutritionix.com/business/api", "auth": "apiKey"},
|
|
562
|
+
{"name": "PunkAPI", "desc": "BrewDog beer recipes", "cat": "Food", "url": "https://punkapi.com/documentation/v2", "auth": "None"},
|
|
563
|
+
|
|
564
|
+
# Travel
|
|
565
|
+
{"name": "Amadeus", "desc": "Travel booking", "cat": "Travel", "url": "https://developers.amadeus.com/", "auth": "OAuth"},
|
|
566
|
+
{"name": "Skyscanner", "desc": "Flight search", "cat": "Travel", "url": "https://developers.skyscanner.net/", "auth": "apiKey"},
|
|
567
|
+
{"name": "Booking.com", "desc": "Hotel booking", "cat": "Travel", "url": "https://developers.booking.com/", "auth": "OAuth"},
|
|
568
|
+
{"name": "Tripadvisor", "desc": "Travel reviews", "cat": "Travel", "url": "https://www.tripadvisor.com/developers", "auth": "apiKey"},
|
|
569
|
+
{"name": "AirVisual", "desc": "Air quality data", "cat": "Environment", "url": "https://www.iqair.com/air-pollution-data-api", "auth": "apiKey"},
|
|
570
|
+
{"name": "REST Countries", "desc": "Country information", "cat": "Geography", "url": "https://restcountries.com/", "auth": "None"},
|
|
571
|
+
{"name": "Geonames", "desc": "Geographic data", "cat": "Geography", "url": "http://www.geonames.org/export/web-services.html", "auth": "None"},
|
|
572
|
+
{"name": "IP Geolocation", "desc": "IP location lookup", "cat": "Geography", "url": "https://ipgeolocation.io/", "auth": "apiKey"},
|
|
573
|
+
{"name": "TimeZoneDB", "desc": "Time zone data", "cat": "Tools", "url": "https://timezonedb.com/api", "auth": "apiKey"},
|
|
574
|
+
{"name": "Airports", "desc": "Airport data", "cat": "Travel", "url": "https://airport-info.p.rapidapi.com/", "auth": "apiKey"},
|
|
575
|
+
|
|
576
|
+
# Utilities & Tools
|
|
577
|
+
{"name": "Abstract API", "desc": "Various utility APIs", "cat": "Tools", "url": "https://www.abstractapi.com/", "auth": "apiKey"},
|
|
578
|
+
{"name": "APIFlash", "desc": "Screenshot API", "cat": "Tools", "url": "https://apiflash.com/", "auth": "apiKey"},
|
|
579
|
+
{"name": "ScreenshotAPI", "desc": "Website screenshots", "cat": "Tools", "url": "https://screenshotapi.net/", "auth": "apiKey"},
|
|
580
|
+
{"name": "IP2Location", "desc": "IP geolocation", "cat": "Tools", "url": "https://www.ip2location.com/web-service/", "auth": "apiKey"},
|
|
581
|
+
{"name": "Pastebin", "desc": "Text storage", "cat": "Tools", "url": "https://pastebin.com/doc_api", "auth": "apiKey"},
|
|
582
|
+
{"name": "Haveibeenpwned", "desc": "Data breach check", "cat": "Security", "url": "https://haveibeenpwned.com/API/v3", "auth": "apiKey"},
|
|
583
|
+
{"name": "IPStack", "desc": "IP lookup", "cat": "Tools", "url": "https://ipstack.com/documentation", "auth": "apiKey"},
|
|
584
|
+
{"name": "UserAgent", "desc": "Browser user agent", "cat": "Tools", "url": "https://useragent.api.io/", "auth": "None"},
|
|
585
|
+
{"name": "ZeroBounce", "desc": "Email validation", "cat": "Email", "url": "https://www.zerobounce.net/docs/", "auth": "apiKey"},
|
|
586
|
+
{"name": "Hunter.io", "desc": "Email finder", "cat": "Email", "url": "https://hunter.io/api-documentation/v2", "auth": "apiKey"},
|
|
587
|
+
|
|
588
|
+
# Real Estate
|
|
589
|
+
{"name": "Zillow", "desc": "Real estate data", "cat": "Real Estate", "url": "https://www.zillow.com/howto/api/", "auth": "apiKey"},
|
|
590
|
+
{"name": "Realtor.com", "desc": "Property listings", "cat": "Real Estate", "url": "https://www.realtor.com/api/", "auth": "apiKey"},
|
|
591
|
+
{"name": "Redfin", "desc": "Real estate search", "cat": "Real Estate", "url": "https://www.redfin.com/", "auth": "apiKey"},
|
|
592
|
+
{"name": "Estated", "desc": "Property data", "cat": "Real Estate", "url": "https://estated.com/developers/docs", "auth": "apiKey"},
|
|
593
|
+
|
|
594
|
+
# Environment
|
|
595
|
+
{"name": "OpenAQ", "desc": "Air quality data", "cat": "Environment", "url": "https://docs.openaq.org/", "auth": "None"},
|
|
596
|
+
{"name": "EPA", "desc": "Environmental data", "cat": "Environment", "url": "https://www.epa.gov/webservices", "auth": "None"},
|
|
597
|
+
{"name": "Breezometer", "desc": "Air quality and pollen", "cat": "Environment", "url": "https://docs.breezometer.com/", "auth": "apiKey"},
|
|
598
|
+
{"name": "AmbeeData", "desc": "Environmental data", "cat": "Environment", "url": "https://docs.ambeedata.com/", "auth": "apiKey"},
|
|
599
|
+
|
|
600
|
+
# Legal
|
|
601
|
+
{"name": "CourtListener", "desc": "Legal database", "cat": "Legal", "url": "https://www.courtlistener.com/api/", "auth": "apiKey"},
|
|
602
|
+
{"name": "Open States", "desc": "State legislation", "cat": "Government", "url": "https://docs.openstates.org/api-v3/", "auth": "apiKey"},
|
|
603
|
+
{"name": "Congress.gov", "desc": "US Congress data", "cat": "Government", "url": "https://api.congress.gov/", "auth": "apiKey"},
|
|
604
|
+
|
|
605
|
+
# Automotive
|
|
606
|
+
{"name": "NHTSA", "desc": "Vehicle safety data", "cat": "Automotive", "url": "https://vpic.nhtsa.dot.gov/api/", "auth": "None"},
|
|
607
|
+
{"name": "CarQuery", "desc": "Car database", "cat": "Automotive", "url": "http://www.carqueryapi.com/documentation/", "auth": "None"},
|
|
608
|
+
{"name": "VIN Decoder", "desc": "Vehicle identification", "cat": "Automotive", "url": "https://vpic.nhtsa.dot.gov/api/", "auth": "None"},
|
|
609
|
+
{"name": "FuelEconomy.gov", "desc": "Fuel economy data", "cat": "Automotive", "url": "https://www.fueleconomy.gov/feg/ws/", "auth": "None"},
|
|
610
|
+
|
|
611
|
+
# Pets
|
|
612
|
+
{"name": "TheDogAPI", "desc": "Dog breeds and images", "cat": "Animals", "url": "https://thedogapi.com/", "auth": "apiKey"},
|
|
613
|
+
{"name": "TheCatAPI", "desc": "Cat breeds and images", "cat": "Animals", "url": "https://thecatapi.com/", "auth": "apiKey"},
|
|
614
|
+
{"name": "Petfinder", "desc": "Pet adoption", "cat": "Animals", "url": "https://www.petfinder.com/developers/", "auth": "OAuth"},
|
|
615
|
+
{"name": "RandomFox", "desc": "Random fox images", "cat": "Animals", "url": "https://randomfox.ca/", "auth": "None"},
|
|
616
|
+
{"name": "Dog CEO", "desc": "Dog images", "cat": "Animals", "url": "https://dog.ceo/dog-api/", "auth": "None"},
|
|
617
|
+
{"name": "PlaceKitten", "desc": "Placeholder kittens", "cat": "Animals", "url": "https://placekitten.com/", "auth": "None"},
|
|
618
|
+
{"name": "HTTPCat", "desc": "HTTP status cats", "cat": "Animals", "url": "https://http.cat/", "auth": "None"},
|
|
619
|
+
{"name": "HTTPDog", "desc": "HTTP status dogs", "cat": "Animals", "url": "https://http.dog/", "auth": "None"},
|
|
620
|
+
|
|
621
|
+
# Placeholder and Test Data
|
|
622
|
+
{"name": "JSONPlaceholder", "desc": "Fake REST API", "cat": "Testing", "url": "https://jsonplaceholder.typicode.com/", "auth": "None"},
|
|
623
|
+
{"name": "Reqres", "desc": "Test API", "cat": "Testing", "url": "https://reqres.in/", "auth": "None"},
|
|
624
|
+
{"name": "RandomUser", "desc": "Random user generator", "cat": "Testing", "url": "https://randomuser.me/", "auth": "None"},
|
|
625
|
+
{"name": "Lorem Picsum", "desc": "Placeholder images", "cat": "Design", "url": "https://picsum.photos/", "auth": "None"},
|
|
626
|
+
{"name": "Placeholder.com", "desc": "Placeholder images", "cat": "Design", "url": "https://placeholder.com/", "auth": "None"},
|
|
627
|
+
{"name": "FakeStoreAPI", "desc": "E-commerce test data", "cat": "Testing", "url": "https://fakestoreapi.com/", "auth": "None"},
|
|
628
|
+
{"name": "MockAPI", "desc": "Mock API generator", "cat": "Testing", "url": "https://mockapi.io/", "auth": "apiKey"},
|
|
629
|
+
{"name": "Mockaroo", "desc": "Test data generator", "cat": "Testing", "url": "https://www.mockaroo.com/api/docs", "auth": "apiKey"},
|
|
630
|
+
{"name": "Faker", "desc": "Fake data generation", "cat": "Testing", "url": "https://fakerapi.it/", "auth": "None"},
|
|
631
|
+
{"name": "DummyJSON", "desc": "Test JSON data", "cat": "Testing", "url": "https://dummyjson.com/", "auth": "None"},
|
|
632
|
+
|
|
633
|
+
# E-commerce platforms
|
|
634
|
+
{"name": "Shopify", "desc": "E-commerce platform", "cat": "E-commerce", "url": "https://shopify.dev/docs/admin-api", "auth": "OAuth"},
|
|
635
|
+
{"name": "WooCommerce", "desc": "WordPress e-commerce", "cat": "E-commerce", "url": "https://woocommerce.github.io/woocommerce-rest-api-docs/", "auth": "OAuth"},
|
|
636
|
+
{"name": "BigCommerce", "desc": "E-commerce platform", "cat": "E-commerce", "url": "https://developer.bigcommerce.com/", "auth": "OAuth"},
|
|
637
|
+
{"name": "Magento", "desc": "E-commerce platform", "cat": "E-commerce", "url": "https://devdocs.magento.com/guides/v2.4/rest/bk-rest.html", "auth": "OAuth"},
|
|
638
|
+
{"name": "Saleor", "desc": "Headless commerce", "cat": "E-commerce", "url": "https://docs.saleor.io/docs/3.x/api-reference/", "auth": "OAuth"},
|
|
639
|
+
{"name": "PrestaShop", "desc": "E-commerce solution", "cat": "E-commerce", "url": "https://devdocs.prestashop.com/", "auth": "apiKey"},
|
|
640
|
+
|
|
641
|
+
# Messaging & Notifications
|
|
642
|
+
{"name": "Pushover", "desc": "Push notifications", "cat": "Communication", "url": "https://pushover.net/api", "auth": "apiKey"},
|
|
643
|
+
{"name": "Pushbullet", "desc": "Push notifications", "cat": "Communication", "url": "https://docs.pushbullet.com/", "auth": "OAuth"},
|
|
644
|
+
{"name": "OneSignal", "desc": "Push notifications", "cat": "Communication", "url": "https://documentation.onesignal.com/reference", "auth": "apiKey"},
|
|
645
|
+
{"name": "Firebase Cloud Messaging", "desc": "Cross-platform messaging", "cat": "Communication", "url": "https://firebase.google.com/docs/cloud-messaging", "auth": "apiKey"},
|
|
646
|
+
{"name": "SendGrid", "desc": "Email delivery", "cat": "Email", "url": "https://sendgrid.com/docs/api-reference/", "auth": "apiKey"},
|
|
647
|
+
{"name": "Postmark", "desc": "Transactional email", "cat": "Email", "url": "https://postmarkapp.com/developer", "auth": "apiKey"},
|
|
648
|
+
{"name": "Amazon SES", "desc": "Email service", "cat": "Email", "url": "https://docs.aws.amazon.com/ses/latest/DeveloperGuide/", "auth": "apiKey"},
|
|
649
|
+
{"name": "SparkPost", "desc": "Email delivery", "cat": "Email", "url": "https://developers.sparkpost.com/api/", "auth": "apiKey"},
|
|
650
|
+
|
|
651
|
+
# Authentication
|
|
652
|
+
{"name": "Auth0", "desc": "Identity platform", "cat": "Security", "url": "https://auth0.com/docs/api/", "auth": "OAuth"},
|
|
653
|
+
{"name": "Okta", "desc": "Identity management", "cat": "Security", "url": "https://developer.okta.com/docs/reference/", "auth": "OAuth"},
|
|
654
|
+
{"name": "Firebase Auth", "desc": "Authentication service", "cat": "Security", "url": "https://firebase.google.com/docs/auth", "auth": "apiKey"},
|
|
655
|
+
{"name": "Clerk", "desc": "User management", "cat": "Security", "url": "https://clerk.com/docs", "auth": "apiKey"},
|
|
656
|
+
{"name": "Supabase Auth", "desc": "Authentication", "cat": "Security", "url": "https://supabase.com/docs/guides/auth", "auth": "apiKey"},
|
|
657
|
+
|
|
658
|
+
# CMS & Content
|
|
659
|
+
{"name": "Contentful", "desc": "Headless CMS", "cat": "Content", "url": "https://www.contentful.com/developers/docs/references/content-delivery-api/", "auth": "apiKey"},
|
|
660
|
+
{"name": "Strapi", "desc": "Headless CMS", "cat": "Content", "url": "https://docs.strapi.io/developer-docs/latest/developer-resources/database-apis-reference/rest-api.html", "auth": "apiKey"},
|
|
661
|
+
{"name": "Sanity", "desc": "Headless CMS", "cat": "Content", "url": "https://www.sanity.io/docs/http-api", "auth": "apiKey"},
|
|
662
|
+
{"name": "Ghost", "desc": "Publishing platform", "cat": "Content", "url": "https://ghost.org/docs/content-api/", "auth": "apiKey"},
|
|
663
|
+
{"name": "Prismic", "desc": "Headless CMS", "cat": "Content", "url": "https://prismic.io/docs/api", "auth": "apiKey"},
|
|
664
|
+
{"name": "DatoCMS", "desc": "Headless CMS", "cat": "Content", "url": "https://www.datocms.com/docs/content-delivery-api", "auth": "apiKey"},
|
|
665
|
+
{"name": "Cosmic", "desc": "Headless CMS", "cat": "Content", "url": "https://docs.cosmicjs.com/", "auth": "apiKey"},
|
|
666
|
+
{"name": "Directus", "desc": "Headless CMS", "cat": "Content", "url": "https://docs.directus.io/reference/introduction.html", "auth": "apiKey"},
|
|
667
|
+
|
|
668
|
+
# Search
|
|
669
|
+
{"name": "Algolia", "desc": "Search as a service", "cat": "Search", "url": "https://www.algolia.com/doc/api-reference/", "auth": "apiKey"},
|
|
670
|
+
{"name": "Elasticsearch", "desc": "Search engine", "cat": "Search", "url": "https://www.elastic.co/guide/en/elasticsearch/reference/current/rest-apis.html", "auth": "apiKey"},
|
|
671
|
+
{"name": "MeiliSearch", "desc": "Search engine", "cat": "Search", "url": "https://docs.meilisearch.com/reference/api/", "auth": "apiKey"},
|
|
672
|
+
{"name": "Typesense", "desc": "Search engine", "cat": "Search", "url": "https://typesense.org/docs/", "auth": "apiKey"},
|
|
673
|
+
{"name": "DuckDuckGo", "desc": "Instant answers", "cat": "Search", "url": "https://duckduckgo.com/api", "auth": "None"},
|
|
674
|
+
|
|
675
|
+
# AI & ML Services
|
|
676
|
+
{"name": "OpenAI", "desc": "AI models", "cat": "AI", "url": "https://platform.openai.com/docs/api-reference", "auth": "apiKey"},
|
|
677
|
+
{"name": "Anthropic", "desc": "Claude AI", "cat": "AI", "url": "https://docs.anthropic.com/", "auth": "apiKey"},
|
|
678
|
+
{"name": "Hugging Face", "desc": "ML models", "cat": "AI", "url": "https://huggingface.co/docs/api-inference/", "auth": "apiKey"},
|
|
679
|
+
{"name": "Replicate", "desc": "ML model hosting", "cat": "AI", "url": "https://replicate.com/docs", "auth": "apiKey"},
|
|
680
|
+
{"name": "Stability AI", "desc": "Image generation", "cat": "AI", "url": "https://platform.stability.ai/docs/api-reference", "auth": "apiKey"},
|
|
681
|
+
{"name": "Cohere", "desc": "NLP models", "cat": "AI", "url": "https://docs.cohere.com/reference/about", "auth": "apiKey"},
|
|
682
|
+
{"name": "DeepL", "desc": "Translation", "cat": "Language", "url": "https://www.deepl.com/docs-api", "auth": "apiKey"},
|
|
683
|
+
{"name": "Assembly AI", "desc": "Speech to text", "cat": "AI", "url": "https://www.assemblyai.com/docs/", "auth": "apiKey"},
|
|
684
|
+
{"name": "ElevenLabs", "desc": "Text to speech", "cat": "AI", "url": "https://docs.elevenlabs.io/api-reference", "auth": "apiKey"},
|
|
685
|
+
{"name": "RunPod", "desc": "GPU cloud", "cat": "AI", "url": "https://docs.runpod.io/", "auth": "apiKey"},
|
|
686
|
+
]
|
|
687
|
+
|
|
688
|
+
return more_apis
|
|
689
|
+
|
|
690
|
+
# Parse all sources
|
|
691
|
+
print("Parsing TonnyL Awesome APIs...")
|
|
692
|
+
tonny = parse_tonny_markdown()
|
|
693
|
+
print(f" Found {len(tonny)} APIs")
|
|
694
|
+
|
|
695
|
+
print("Parsing n0shake Public APIs...")
|
|
696
|
+
n0shake = parse_n0shake_markdown()
|
|
697
|
+
print(f" Found {len(n0shake)} APIs")
|
|
698
|
+
|
|
699
|
+
print("Generating additional APIs...")
|
|
700
|
+
more = generate_more_apis()
|
|
701
|
+
print(f" Found {len(more)} APIs")
|
|
702
|
+
|
|
703
|
+
# Combine all
|
|
704
|
+
all_raw = tonny + n0shake + more
|
|
705
|
+
print(f"\nTotal raw APIs: {len(all_raw)}")
|
|
706
|
+
|
|
707
|
+
# Convert to registry format and dedupe
|
|
708
|
+
new_apis = []
|
|
709
|
+
seen_ids = set()
|
|
710
|
+
|
|
711
|
+
for api in all_raw:
|
|
712
|
+
api_id = make_id(api.get('name', ''))
|
|
713
|
+
|
|
714
|
+
# Skip if already exists or duplicate
|
|
715
|
+
if api_id in existing_ids or api_id in seen_ids or not api_id:
|
|
716
|
+
continue
|
|
717
|
+
|
|
718
|
+
seen_ids.add(api_id)
|
|
719
|
+
|
|
720
|
+
entry = {
|
|
721
|
+
"id": api_id,
|
|
722
|
+
"name": api.get('name', api_id),
|
|
723
|
+
"description": api.get('desc', ''),
|
|
724
|
+
"category": api.get('cat', 'Uncategorized'),
|
|
725
|
+
"link": api.get('url', ''),
|
|
726
|
+
"auth": api.get('auth', 'None')
|
|
727
|
+
}
|
|
728
|
+
new_apis.append(entry)
|
|
729
|
+
|
|
730
|
+
print(f"New unique APIs after deduplication: {len(new_apis)}")
|
|
731
|
+
|
|
732
|
+
# Save to file
|
|
733
|
+
output_file = Path("/Users/gustavhemmingsson/Projects/apiclaw/data/night-expansion-02-26-06.json")
|
|
734
|
+
with open(output_file, 'w') as f:
|
|
735
|
+
json.dump(new_apis, f, indent=2)
|
|
736
|
+
|
|
737
|
+
print(f"\nSaved {len(new_apis)} new APIs to {output_file}")
|
|
738
|
+
|
|
739
|
+
# Create combined file
|
|
740
|
+
combined_apis = []
|
|
741
|
+
if existing_file.exists():
|
|
742
|
+
with open(existing_file) as f:
|
|
743
|
+
combined_apis.extend(json.load(f))
|
|
744
|
+
if night_26_file.exists():
|
|
745
|
+
with open(night_26_file) as f:
|
|
746
|
+
combined_apis.extend(json.load(f))
|
|
747
|
+
if night_26_v2_file.exists():
|
|
748
|
+
with open(night_26_v2_file) as f:
|
|
749
|
+
combined_apis.extend(json.load(f))
|
|
750
|
+
combined_apis.extend(new_apis)
|
|
751
|
+
|
|
752
|
+
combined_file = Path("/Users/gustavhemmingsson/Projects/apiclaw/data/combined-02-26.json")
|
|
753
|
+
with open(combined_file, 'w') as f:
|
|
754
|
+
json.dump(combined_apis, f, indent=2)
|
|
755
|
+
|
|
756
|
+
print(f"Combined total: {len(combined_apis)} APIs saved to {combined_file}")
|