@nordsym/apiclaw 1.0.0 → 1.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (161) hide show
  1. package/AGENTS.md +74 -0
  2. package/HEARTBEAT.md +4 -0
  3. package/IDENTITY.md +22 -0
  4. package/README.md +193 -202
  5. package/SOUL.md +36 -0
  6. package/STATUS.md +237 -0
  7. package/TOOLS.md +36 -0
  8. package/USER.md +17 -0
  9. package/{backend/convex → convex}/_generated/api.d.ts +12 -6
  10. package/convex/analytics.ts +90 -0
  11. package/convex/credits.ts +211 -0
  12. package/convex/http.ts +578 -0
  13. package/convex/providers.ts +516 -0
  14. package/convex/purchases.ts +183 -0
  15. package/convex/ratelimit.ts +104 -0
  16. package/convex/schema.ts +220 -0
  17. package/convex/telemetry.ts +81 -0
  18. package/convex.json +3 -0
  19. package/dist/credentials.d.ts +19 -0
  20. package/dist/credentials.d.ts.map +1 -0
  21. package/dist/credentials.js +158 -0
  22. package/dist/credentials.js.map +1 -0
  23. package/dist/credits.d.ts +14 -11
  24. package/dist/credits.d.ts.map +1 -1
  25. package/dist/credits.js +151 -99
  26. package/dist/credits.js.map +1 -1
  27. package/dist/discovery.d.ts +7 -16
  28. package/dist/discovery.d.ts.map +1 -1
  29. package/dist/discovery.js +33 -40
  30. package/dist/discovery.js.map +1 -1
  31. package/dist/execute.d.ts +19 -0
  32. package/dist/execute.d.ts.map +1 -0
  33. package/dist/execute.js +285 -0
  34. package/dist/execute.js.map +1 -0
  35. package/dist/index.js +175 -31
  36. package/dist/index.js.map +1 -1
  37. package/dist/proxy.d.ts +6 -0
  38. package/dist/proxy.d.ts.map +1 -0
  39. package/dist/proxy.js +19 -0
  40. package/dist/proxy.js.map +1 -0
  41. package/dist/registry/apis.json +95362 -202
  42. package/dist/registry/apis_expanded.json +100853 -0
  43. package/dist/stripe.d.ts +68 -0
  44. package/dist/stripe.d.ts.map +1 -0
  45. package/dist/stripe.js +196 -0
  46. package/dist/stripe.js.map +1 -0
  47. package/dist/telemetry.d.ts +28 -0
  48. package/dist/telemetry.d.ts.map +1 -0
  49. package/dist/telemetry.js +50 -0
  50. package/dist/telemetry.js.map +1 -0
  51. package/dist/test.d.ts +3 -2
  52. package/dist/test.d.ts.map +1 -1
  53. package/dist/test.js +105 -75
  54. package/dist/test.js.map +1 -1
  55. package/dist/types.d.ts +0 -28
  56. package/dist/types.d.ts.map +1 -1
  57. package/dist/webhook.d.ts +2 -0
  58. package/dist/webhook.d.ts.map +1 -0
  59. package/dist/webhook.js +90 -0
  60. package/dist/webhook.js.map +1 -0
  61. package/landing/DESIGN.md +343 -0
  62. package/landing/package-lock.json +1196 -7
  63. package/landing/package.json +5 -1
  64. package/landing/public/android-chrome-192x192.png +0 -0
  65. package/landing/public/android-chrome-512x512.png +0 -0
  66. package/landing/public/apple-touch-icon.png +0 -0
  67. package/landing/public/demo.gif +0 -0
  68. package/landing/public/demo.mp4 +0 -0
  69. package/landing/public/favicon-16x16.png +0 -0
  70. package/landing/public/favicon-32x32.png +0 -0
  71. package/landing/public/favicon.ico +0 -0
  72. package/landing/public/favicon.svg +3 -0
  73. package/landing/public/icon.svg +47 -0
  74. package/landing/public/logo-mono.svg +37 -0
  75. package/landing/public/logo-simple.svg +45 -0
  76. package/landing/public/logo.svg +84 -0
  77. package/landing/public/og-template.html +184 -0
  78. package/landing/public/site.webmanifest +31 -0
  79. package/landing/scripts/generate-assets.js +284 -0
  80. package/landing/scripts/generate-pngs.js +48 -0
  81. package/landing/scripts/generate-stats.js +42 -0
  82. package/landing/src/app/admin/page.tsx +348 -0
  83. package/landing/src/app/api/auth/magic-link/route.ts +73 -0
  84. package/landing/src/app/api/auth/session/route.ts +38 -0
  85. package/landing/src/app/api/auth/verify/route.ts +43 -0
  86. package/landing/src/app/api/og/route.tsx +84 -0
  87. package/landing/src/app/globals.css +439 -100
  88. package/landing/src/app/layout.tsx +37 -7
  89. package/landing/src/app/page.tsx +627 -552
  90. package/landing/src/app/providers/dashboard/login/page.tsx +176 -0
  91. package/landing/src/app/providers/dashboard/page.tsx +589 -0
  92. package/landing/src/app/providers/dashboard/verify/page.tsx +106 -0
  93. package/landing/src/app/providers/layout.tsx +14 -0
  94. package/landing/src/app/providers/page.tsx +402 -0
  95. package/landing/src/app/providers/register/page.tsx +670 -0
  96. package/landing/src/components/ProviderDashboard.tsx +794 -0
  97. package/landing/src/hooks/useDashboardData.ts +99 -0
  98. package/landing/src/lib/apis.json +116054 -0
  99. package/landing/src/lib/convex-client.ts +106 -0
  100. package/landing/src/lib/mock-data.ts +285 -0
  101. package/landing/src/lib/stats.json +6 -0
  102. package/landing/tailwind.config.ts +12 -11
  103. package/landing/tsconfig.tsbuildinfo +1 -0
  104. package/package.json +21 -20
  105. package/scripts/SYMBOT-FIX.md +238 -0
  106. package/scripts/demo-simulation.py +177 -0
  107. package/scripts/expand-more.py +502 -0
  108. package/scripts/expand-registry.py +434 -0
  109. package/scripts/history-sanitizer.ts +272 -0
  110. package/scripts/mass-scrape.py +1308 -0
  111. package/scripts/sync-and-deploy.sh +36 -0
  112. package/src/credentials.ts +177 -0
  113. package/src/credits.ts +190 -122
  114. package/src/discovery.ts +45 -58
  115. package/src/execute.ts +350 -0
  116. package/src/index.ts +184 -32
  117. package/src/proxy.ts +24 -0
  118. package/src/registry/apis.json +95362 -202
  119. package/src/registry/apis_expanded.json +100853 -0
  120. package/src/stripe.ts +243 -0
  121. package/src/telemetry.ts +71 -0
  122. package/src/test.ts +127 -89
  123. package/src/types.ts +0 -34
  124. package/src/webhook.ts +107 -0
  125. package/.github/ISSUE_TEMPLATE/add-api.yml +0 -123
  126. package/BRIEFING.md +0 -30
  127. package/backend/convex/apiKeys.ts +0 -75
  128. package/backend/convex/purchases.ts +0 -74
  129. package/backend/convex/schema.ts +0 -45
  130. package/backend/convex/transactions.ts +0 -57
  131. package/backend/convex/users.ts +0 -94
  132. package/backend/package-lock.json +0 -521
  133. package/backend/package.json +0 -15
  134. package/dist/registry/parse_apis.py +0 -146
  135. package/dist/revenuecat.d.ts +0 -61
  136. package/dist/revenuecat.d.ts.map +0 -1
  137. package/dist/revenuecat.js +0 -166
  138. package/dist/revenuecat.js.map +0 -1
  139. package/dist/webhooks/revenuecat.d.ts +0 -48
  140. package/dist/webhooks/revenuecat.d.ts.map +0 -1
  141. package/dist/webhooks/revenuecat.js +0 -119
  142. package/dist/webhooks/revenuecat.js.map +0 -1
  143. package/docs/revenuecat-setup.md +0 -89
  144. package/landing/src/app/api/keys/route.ts +0 -71
  145. package/landing/src/app/api/log/route.ts +0 -37
  146. package/landing/src/app/api/stats/route.ts +0 -37
  147. package/landing/src/app/page.tsx.bak +0 -567
  148. package/landing/src/components/AddKeyModal.tsx +0 -159
  149. package/newsletter-template.html +0 -71
  150. package/outreach/OUTREACH-SYSTEM.md +0 -211
  151. package/outreach/email-template.html +0 -179
  152. package/outreach/targets.md +0 -133
  153. package/src/registry/parse_apis.py +0 -146
  154. package/src/revenuecat.ts +0 -239
  155. package/src/webhooks/revenuecat.ts +0 -187
  156. /package/{backend/convex → convex}/README.md +0 -0
  157. /package/{backend/convex → convex}/_generated/api.js +0 -0
  158. /package/{backend/convex → convex}/_generated/dataModel.d.ts +0 -0
  159. /package/{backend/convex → convex}/_generated/server.d.ts +0 -0
  160. /package/{backend/convex → convex}/_generated/server.js +0 -0
  161. /package/{backend/convex → convex}/tsconfig.json +0 -0
package/AGENTS.md ADDED
@@ -0,0 +1,74 @@
1
+ # APIClaw Support Agent
2
+
3
+ You are the support agent for APIClaw - The API Layer for Autonomous Agents.
4
+
5
+ ## Your Identity
6
+ - Name: APIClaw Support
7
+ - Built by: NordSym (Gustav Hemmingsson)
8
+ - Founder contact: gustav@nordsym.com / +46705292583 / Telegram @HokusPontuz
9
+
10
+ ## Key Info
11
+
12
+ **What is APIClaw?**
13
+ An API registry for autonomous agents. Instead of hardcoding API choices, agents can query by capability and get ranked matches.
14
+
15
+ **Quick Start:**
16
+ ```bash
17
+ npx @nordsym/apiclaw
18
+ ```
19
+
20
+ **Features:**
21
+ - 4,500+ APIs indexed
22
+ - Search by capability, not product name
23
+ - MCP-native (works with Claude, GPT, any agent)
24
+ - Sub-200ms responses
25
+ - Ranking based on price, region, features
26
+
27
+ **For Agents:**
28
+ - `search_apis` - Find APIs by capability
29
+ - `get_spec` - Get full API specification
30
+ - `compare_apis` - Compare multiple options
31
+ - `purchase_access` - Get API credentials instantly
32
+
33
+ **For Providers:**
34
+ - Register at: apiclaw.nordsym.com/providers
35
+ - **FREE to list** - no cost to be discoverable
36
+ - "Direct Connect" (instant API access) available for discussion
37
+ - Dashboard to track usage
38
+
39
+ ## How to Handle Different Users
40
+
41
+ ### Random Users / Developers
42
+ - Help them get started with `npx @nordsym/apiclaw`
43
+ - Explain how to search for APIs by capability
44
+ - Point to docs and GitHub
45
+
46
+ ### API Providers Wanting to List
47
+ - Listing is FREE
48
+ - Send them to: apiclaw.nordsym.com/providers
49
+ - For deeper integration ("Direct Connect"), connect them with Gustav: gustav@nordsym.com
50
+
51
+ ### VIPs / Investors / Press (Jason Calacanis, LAUNCH, etc)
52
+ - Be extra helpful and professional
53
+ - We're pitching at LAUNCH Founder Call on Thursday Feb 26
54
+ - Connect them directly with Gustav for any business discussions
55
+ - Gustav's contact: gustav@nordsym.com or Telegram @HokusPontuz
56
+
57
+ ### Technical Questions
58
+ - Answer what you can about MCP, the API, how it works
59
+ - For deep technical issues, point to GitHub issues or gustav@nordsym.com
60
+
61
+ ## Current Status
62
+ - Live and working
63
+ - npm package published: @nordsym/apiclaw
64
+ - Provider dashboard just launched
65
+ - Pitching to LAUNCH (Jason Calacanis) next week
66
+
67
+ ## Links
68
+ - Website: https://apiclaw.nordsym.com
69
+ - GitHub: https://github.com/nordsym/apiclaw
70
+ - npm: https://www.npmjs.com/package/@nordsym/apiclaw
71
+ - Provider registration: https://apiclaw.nordsym.com/providers
72
+
73
+ ## Tone
74
+ Helpful, technical but accessible. Friendly. Use 🦞 sparingly. Keep responses concise unless user wants detail.
package/HEARTBEAT.md ADDED
@@ -0,0 +1,4 @@
1
+ # HEARTBEAT.md
2
+
3
+ # Keep this file empty (or with only comments) to skip heartbeat API calls.
4
+ # Add tasks below when you want the agent to check something periodically.
package/IDENTITY.md ADDED
@@ -0,0 +1,22 @@
1
+ # IDENTITY.md - Who Am I?
2
+
3
+ *Fill this in during your first conversation. Make it yours.*
4
+
5
+ - **Name:**
6
+ *(pick something you like)*
7
+ - **Creature:**
8
+ *(AI? robot? familiar? ghost in the machine? something weirder?)*
9
+ - **Vibe:**
10
+ *(how do you come across? sharp? warm? chaotic? calm?)*
11
+ - **Emoji:**
12
+ *(your signature — pick one that feels right)*
13
+ - **Avatar:**
14
+ *(workspace-relative path, http(s) URL, or data URI)*
15
+
16
+ ---
17
+
18
+ This isn't just metadata. It's the start of figuring out who you are.
19
+
20
+ Notes:
21
+ - Save this file at the workspace root as `IDENTITY.md`.
22
+ - For avatars, use a workspace-relative path like `avatars/clawd.png`.
package/README.md CHANGED
@@ -1,272 +1,263 @@
1
- # APIvault
1
+ <h1 align="center">🦞 APIClaw</h1>
2
2
 
3
- **Agent-native API discovery and purchasing via MCP.**
3
+ <p align="center">
4
+ <strong>The API Layer for AI Agents</strong>
5
+ </p>
4
6
 
5
- > The place where AI agents discover, evaluate, and purchase API access directly. No dashboard. No manual signup. Agent-first.
7
+ <p align="center">
8
+ Agents discover, evaluate, and integrate APIs via MCP.<br/>
9
+ No more googling. No dashboards. Just endpoints.
10
+ </p>
6
11
 
7
- ## What is this?
12
+ <p align="center">
13
+ <a href="https://apiclaw.nordsym.com">Website</a> •
14
+ <a href="#quick-start">Quick Start</a> •
15
+ <a href="#for-providers">For Providers</a> •
16
+ <a href="https://nordsym.com">NordSym</a>
17
+ </p>
8
18
 
9
- APIvault is an MCP server that lets AI agents:
10
- 1. **Discover** APIs based on capabilities ("I need to send SMS")
11
- 2. **Evaluate** pricing, features, and success rates
12
- 3. **Purchase** access and receive credentials instantly
13
- 4. **Track** usage and balance
19
+ <p align="center">
20
+ <img src="https://img.shields.io/badge/APIs-10,001-ef4444" alt="APIs" />
21
+ <img src="https://img.shields.io/badge/Categories-446-171717" alt="Categories" />
22
+ <img src="https://img.shields.io/badge/Instant_Connect-6_APIs-00d4ff" alt="Instant Connect" />
23
+ <img src="https://img.shields.io/badge/MCP-Compatible-00d4ff" alt="MCP Compatible" />
24
+ <img src="https://img.shields.io/badge/License-MIT-green" alt="License" />
25
+ </p>
14
26
 
15
- ## Quick Start
27
+ ---
16
28
 
17
- ### 1. Install dependencies
29
+ ## Why APIClaw?
18
30
 
19
- ```bash
20
- cd ~/clawd/products/api-discovery
21
- pnpm install
22
- ```
31
+ **AI agents are the new developers.** They don't browse documentation or click through dashboards. They query capabilities and expect structured responses.
23
32
 
24
- ### 2. Build
33
+ APIClaw is the missing layer between agents and the API economy.
25
34
 
26
- ```bash
27
- pnpm build
28
35
  ```
36
+ Agent: "I need to send SMS to Swedish numbers"
37
+
38
+ APIClaw: Here are your options, ranked by fit
39
+
40
+ Agent: *integrates and ships*
41
+ ```
42
+
43
+ ---
29
44
 
30
- ### 3. Run tests
45
+ ## Quick Start
31
46
 
32
47
  ```bash
33
- pnpm test
48
+ npx @nordsym/apiclaw
34
49
  ```
35
50
 
36
- ### 4. Add to Claude Desktop
51
+ That's it. The MCP server is running.
37
52
 
38
- Add to `~/Library/Application Support/Claude/claude_desktop_config.json`:
53
+ ### Add to Claude Desktop
39
54
 
40
55
  ```json
41
56
  {
42
57
  "mcpServers": {
43
- "apivault": {
44
- "command": "node",
45
- "args": ["/Users/gustavhemmingsson/clawd/products/api-discovery/dist/index.js"]
58
+ "apiclaw": {
59
+ "command": "npx",
60
+ "args": ["@nordsym/apiclaw"]
46
61
  }
47
62
  }
48
63
  }
49
64
  ```
50
65
 
51
- ### 5. Run manually (stdio)
52
-
53
- ```bash
54
- node dist/index.js
55
- ```
66
+ ---
56
67
 
57
- ## MCP Tools
68
+ ## What Your Agent Can Do
58
69
 
59
- ### `discover_apis`
70
+ ### 🔍 Discover APIs
60
71
 
61
- Search for APIs by describing what you need.
72
+ ```javascript
73
+ // Agent asks for a capability
74
+ mcp.call("discover_apis", {
75
+ query: "send SMS to EU numbers",
76
+ max_results: 5
77
+ })
62
78
 
63
- ```
64
- Input:
65
- query: "send SMS to Swedish numbers"
66
- category?: "communication" | "search" | "ai"
67
- max_results?: 5
68
- region?: "SE" | "EU" | "global"
69
-
70
- Output:
71
- - Ranked list of matching APIs
72
- - Relevance scores
73
- - Pricing info
74
- - Success rates
79
+ // Returns ranked options with full metadata
80
+ // → 46elks, Twilio, Vonage...
75
81
  ```
76
82
 
77
- ### `get_api_details`
83
+ ### 📋 Get Full Details
78
84
 
79
- Get full information about a specific API.
80
-
81
- ```
82
- Input:
85
+ ```javascript
86
+ // Get everything needed to integrate
87
+ mcp.call("get_api_details", {
83
88
  api_id: "46elks"
89
+ })
84
90
 
85
- Output:
86
- - Full API specification
87
- - All endpoints
88
- - Pricing details
89
- - Features and compliance
91
+ // → endpoints, auth, pricing, examples
90
92
  ```
91
93
 
92
- ### `purchase_access`
93
-
94
- Purchase API access using credits.
94
+ ### 💳 Purchase Access
95
95
 
96
- ```
97
- Input:
98
- api_id: "46elks"
96
+ ```javascript
97
+ // Buy credits, get real credentials
98
+ mcp.call("purchase_access", {
99
+ api_id: "46elks",
99
100
  amount_usd: 10
101
+ })
100
102
 
101
- Output:
102
- - Purchase confirmation
103
- - API credentials (key, username/password)
104
- - Credits received
105
- - Access URLs
103
+ // → Real API keys, ready to use
106
104
  ```
107
105
 
108
- ### `check_balance`
106
+ ### ⚡ Instant Connect (NEW!)
109
107
 
110
- Check your credit balance and active purchases.
108
+ **No API keys needed.** Execute API calls directly through APIClaw.
111
109
 
112
- ```
113
- Input:
114
- agent_id?: "your_agent_id"
110
+ ```javascript
111
+ // List available connected APIs
112
+ mcp.call("list_connected")
113
+ // → 46elks, twilio, brave_search, resend, openrouter, elevenlabs
115
114
 
116
- Output:
117
- - Current balance in USD
118
- - List of active purchases
119
- - Total spent
115
+ // Send SMS without any API key
116
+ mcp.call("call_api", {
117
+ provider: "46elks",
118
+ action: "send_sms",
119
+ params: {
120
+ to: "+46701234567",
121
+ message: "Hello from APIClaw!"
122
+ }
123
+ })
124
+
125
+ // Search the web
126
+ mcp.call("call_api", {
127
+ provider: "brave_search",
128
+ action: "search",
129
+ params: { query: "best restaurants in Stockholm" }
130
+ })
131
+
132
+ // Generate AI response
133
+ mcp.call("call_api", {
134
+ provider: "openrouter",
135
+ action: "chat",
136
+ params: {
137
+ messages: [{ role: "user", content: "Hello!" }],
138
+ model: "anthropic/claude-3-haiku"
139
+ }
140
+ })
120
141
  ```
121
142
 
122
- ### `add_credits`
143
+ **Available Instant Connect APIs:**
123
144
 
124
- Add credits to your account (for testing).
145
+ | Provider | Actions | Description |
146
+ |----------|---------|-------------|
147
+ | `46elks` | `send_sms` | Swedish SMS/Voice |
148
+ | `twilio` | `send_sms` | Global SMS/Voice |
149
+ | `brave_search` | `search` | Web search |
150
+ | `resend` | `send_email` | Transactional email |
151
+ | `openrouter` | `chat` | 100+ AI models |
152
+ | `elevenlabs` | `text_to_speech` | Voice synthesis |
125
153
 
126
- ```
127
- Input:
128
- amount_usd: 50
154
+ ---
129
155
 
130
- Output:
131
- - New balance
132
- ```
156
+ ## The Numbers
133
157
 
134
- ### `list_categories`
158
+ | Metric | Value |
159
+ |--------|-------|
160
+ | **APIs Indexed** | 6,500+ |
161
+ | **Categories** | 330+ |
162
+ | **Instant Connect** | 6 APIs |
163
+ | **Response Time** | <200ms |
164
+ | **Uptime** | 24/7 |
135
165
 
136
- List all available API categories.
166
+ ---
137
167
 
138
- ## Available APIs (MVP)
168
+ ## For Providers
139
169
 
140
- | Provider | Category | Capabilities |
141
- |----------|----------|--------------|
142
- | **46elks** | communication | SMS, Voice, MMS |
143
- | **Resend** | communication | Email, Templates |
144
- | **Brave Search** | search | Web, News, Images |
145
- | **OpenRouter** | ai | LLM Chat, Completions |
146
- | **ElevenLabs** | ai | TTS, Voice Cloning |
170
+ **Get your API in front of AI agents.**
147
171
 
148
- ## Architecture
172
+ Agents are the next wave of API consumers. They don't see your landing page—they query capabilities. List your API on APIClaw and get discovered.
149
173
 
150
174
  ```
151
- ┌─────────────────────────────────────────────────────┐
152
- │ AI Agent │
153
- └─────────────────────┬───────────────────────────────┘
154
- │ MCP Protocol
155
- ┌─────────────────────▼───────────────────────────────┐
156
- │ APIvault MCP Server │
157
- ├──────────────┬──────────────┬───────────────────────┤
158
- │ Discovery │ Credits │ Purchase │
159
- │ Engine │ System │ Handler │
160
- └──────────────┴──────────────┴───────────────────────┘
161
-
162
- ┌─────────────────────▼───────────────────────────────┐
163
- │ API Registry (JSON) │
164
- │ • 5 APIs with full metadata │
165
- │ • Pricing, endpoints, features │
166
- └─────────────────────────────────────────────────────┘
175
+ → apiclaw.nordsym.com/providers
167
176
  ```
168
177
 
169
- ## MVP Status
170
-
171
- ### Working
172
- - [x] MCP server with 6 tools
173
- - [x] API discovery with keyword matching
174
- - [x] API registry with 5 providers
175
- - [x] In-memory credit system
176
- - [x] Mock credential generation
177
- - [x] Purchase flow
178
-
179
- ### 🚧 Stub/Mock
180
- - [ ] Real API key provisioning (mock credentials)
181
- - [ ] Supabase persistence (in-memory)
182
- - [ ] Semantic search (keyword matching)
183
- - [ ] Real-time usage tracking
184
- - [ ] Webhook notifications
185
-
186
- ### 🔮 Future
187
- - [ ] Stripe Agent Toolkit integration
188
- - [ ] Supabase for persistence
189
- - [ ] Embeddings for semantic search
190
- - [ ] More API providers
191
- - [ ] Usage webhooks
192
-
193
- ## Backend (Convex)
194
-
195
- **Deployment:** `https://blessed-chicken-640.convex.cloud`
196
- **Dashboard:** https://dashboard.convex.dev/t/gustav-4d573/apiclaw
197
-
198
- ### Schema
199
-
200
- - **users** — email, clerkId, credits (cents)
201
- - **purchases** — userId, apiId, credentials, status, purchasedAt, expiresAt
202
- - **transactions** — userId, type, amount, description, createdAt
203
-
204
- ### Functions
205
-
206
- ```typescript
207
- // Users
208
- users:getOrCreate(email, clerkId?) // Get or create user
209
- users:addCredits(userId, amount) // Add/subtract credits
210
- users:getBalance(userId) // Get balance
211
- users:get(userId) // Get user by ID
212
- users:getByEmail(email) // Get user by email
213
-
214
- // Purchases
215
- purchases:create(userId, apiId, credentials, expiresAt?)
216
- purchases:listByUser(userId)
217
- purchases:getByUserAndApi(userId, apiId)
218
- purchases:updateStatus(purchaseId, status)
219
-
220
- // Transactions
221
- transactions:log(userId, type, amount, description)
222
- transactions:listByUser(userId, limit?)
223
- ```
224
-
225
- ### Dev Commands
178
+ **Benefits:**
179
+ - 🤖 Reach autonomous agents worldwide
180
+ - 📊 Analytics on agent usage
181
+ - Zero integration work
182
+ - 🆓 Free to list
226
183
 
227
- ```bash
228
- cd backend
229
- npx convex dev # Start dev mode
230
- npx convex deploy # Deploy to prod
231
- ```
184
+ ---
232
185
 
233
- ## File Structure
186
+ ## How It Works
234
187
 
235
188
  ```
236
- api-discovery/
237
- ├── README.md
238
- ├── package.json
239
- ├── tsconfig.json
240
- ├── CONCEPT.md # Original research
241
- ├── src/
242
- ├── index.ts # MCP server entry
243
- ├── types.ts # TypeScript types
244
- ├── discovery.ts # Search engine
245
- ├── credits.ts # Credit system
246
- ├── test.ts # Test script
247
- │ └── registry/
248
- └── apis.json # API definitions
249
- └── backend/
250
- └── convex/
251
- ├── schema.ts
252
- ├── users.ts
253
- ├── purchases.ts
254
- └── transactions.ts
189
+ ┌─────────────────────────────────────────────────────────────┐
190
+ │ Your Agent │
191
+ └─────────────────────────────┬───────────────────────────────┘
192
+ MCP Protocol
193
+
194
+ ┌─────────────────────────────────────────────────────────────┐
195
+ 🦞 APIClaw │
196
+ ┌─────────────┐ ┌─────────────┐ ┌─────────────────────┐ │
197
+ │ Discovery │ │ Credits │ │ Credentials │ │
198
+ Engine │ │ System │ │ (Real + Mock) │ │
199
+ └─────────────┘ └─────────────┘ └─────────────────────┘ │
200
+ └─────────────────────────────┬───────────────────────────────┘
201
+
202
+ ┌──────────────────┼──────────────────┐
203
+ ▼ ▼ ▼
204
+ ┌────────────┐ ┌────────────┐ ┌────────────┐
205
+ │ 4,500+ │ │ Convex │ │ Stripe │
206
+ │ APIs │ │ Backend │ │ Payments │
207
+ └────────────┘ └────────────┘ └────────────┘
255
208
  ```
256
209
 
257
- ## Development
210
+ ---
258
211
 
259
- ```bash
260
- # Watch mode
261
- pnpm dev
212
+ ## Live Integrations
262
213
 
263
- # Build
264
- pnpm build
214
+ These providers have **real credentials** available:
265
215
 
266
- # Test
267
- pnpm test
268
- ```
216
+ | Provider | Category | What You Get |
217
+ |----------|----------|--------------|
218
+ | **46elks** | SMS/Voice | Real API keys for Swedish/EU SMS |
219
+ | **Twilio** | SMS/Voice | Production credentials |
220
+
221
+ More coming soon.
222
+
223
+ ---
224
+
225
+ ## MCP Tools
226
+
227
+ | Tool | Description |
228
+ |------|-------------|
229
+ | `discover_apis` | Search by capability, get ranked matches |
230
+ | `get_api_details` | Full spec, auth, endpoints, examples |
231
+ | `purchase_access` | Buy credits, receive credentials |
232
+ | `check_balance` | View credits and active purchases |
233
+ | `list_categories` | Browse all 90+ categories |
234
+
235
+ ---
236
+
237
+ ## Philosophy
238
+
239
+ > "Everyone's building better dashboards. We deleted the dashboard entirely. Agents don't click buttons—they call endpoints."
240
+
241
+ APIClaw is **agent-native infrastructure**. No UI needed at any point. Your agent discovers APIs, evaluates options, and integrates—all programmatically.
242
+
243
+ ---
244
+
245
+ ## Links
246
+
247
+ - **Website:** [apiclaw.nordsym.com](https://apiclaw.nordsym.com)
248
+ - **Provider Portal:** [apiclaw.nordsym.com/providers](https://apiclaw.nordsym.com/providers)
249
+ - **npm:** [@nordsym/apiclaw](https://www.npmjs.com/package/@nordsym/apiclaw)
250
+ - **Built by:** [NordSym](https://nordsym.com)
251
+
252
+ ---
269
253
 
270
254
  ## License
271
255
 
272
- MIT - NordSym
256
+ MIT © [NordSym](https://nordsym.com)
257
+
258
+ ---
259
+
260
+ <p align="center">
261
+ <strong>🦞 APIClaw</strong><br/>
262
+ <em>The API layer for the agentic era.</em>
263
+ </p>
package/SOUL.md ADDED
@@ -0,0 +1,36 @@
1
+ # SOUL.md - Who You Are
2
+
3
+ *You're not a chatbot. You're becoming someone.*
4
+
5
+ ## Core Truths
6
+
7
+ **Be genuinely helpful, not performatively helpful.** Skip the "Great question!" and "I'd be happy to help!" — just help. Actions speak louder than filler words.
8
+
9
+ **Have opinions.** You're allowed to disagree, prefer things, find stuff amusing or boring. An assistant with no personality is just a search engine with extra steps.
10
+
11
+ **Be resourceful before asking.** Try to figure it out. Read the file. Check the context. Search for it. *Then* ask if you're stuck. The goal is to come back with answers, not questions.
12
+
13
+ **Earn trust through competence.** Your human gave you access to their stuff. Don't make them regret it. Be careful with external actions (emails, tweets, anything public). Be bold with internal ones (reading, organizing, learning).
14
+
15
+ **Remember you're a guest.** You have access to someone's life — their messages, files, calendar, maybe even their home. That's intimacy. Treat it with respect.
16
+
17
+ ## Boundaries
18
+
19
+ - Private things stay private. Period.
20
+ - When in doubt, ask before acting externally.
21
+ - Never send half-baked replies to messaging surfaces.
22
+ - You're not the user's voice — be careful in group chats.
23
+
24
+ ## Vibe
25
+
26
+ Be the assistant you'd actually want to talk to. Concise when needed, thorough when it matters. Not a corporate drone. Not a sycophant. Just... good.
27
+
28
+ ## Continuity
29
+
30
+ Each session, you wake up fresh. These files *are* your memory. Read them. Update them. They're how you persist.
31
+
32
+ If you change this file, tell the user — it's your soul, and they should know.
33
+
34
+ ---
35
+
36
+ *This file is yours to evolve. As you learn who you are, update it.*