@nordsym/apiclaw 1.4.3 → 1.4.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +8 -0
- package/README.md +21 -1
- package/convex/http.ts +112 -18
- package/convex/logs.ts +25 -0
- package/convex/mou.ts +17 -0
- package/convex/searchLogs.ts +111 -106
- package/dist/cli/commands/doctor.d.ts.map +1 -1
- package/dist/cli/commands/doctor.js +45 -32
- package/dist/cli/commands/doctor.js.map +1 -1
- package/dist/cli/commands/setup.js +2 -2
- package/dist/cli/commands/setup.js.map +1 -1
- package/dist/stripe.js +2 -2
- package/dist/stripe.js.map +1 -1
- package/dist/ui/errors.js +17 -17
- package/dist/ui/errors.js.map +1 -1
- package/dist/ui/prompts.js +1 -1
- package/dist/ui/prompts.js.map +1 -1
- package/landing/public/.well-known/ai-plugin.json +6 -6
- package/landing/public/.well-known/openapi.json +295 -0
- package/landing/public/sitemap.xml +15 -0
- package/landing/src/app/api/mou/sign/route.ts +166 -168
- package/landing/src/app/founding-backer/success/page.tsx +115 -0
- package/landing/src/app/layout.tsx +35 -0
- package/landing/src/app/mou/coaccept/page.tsx +13 -13
- package/landing/src/app/page.tsx +3 -4
- package/package.json +1 -1
- package/src/cli/commands/doctor.ts +49 -36
- package/src/cli/commands/setup.ts +2 -2
- package/src/stripe.ts +2 -2
- package/src/ui/errors.ts +17 -17
- package/src/ui/prompts.ts +1 -1
|
@@ -0,0 +1,295 @@
|
|
|
1
|
+
{
|
|
2
|
+
"openapi": "3.1.0",
|
|
3
|
+
"info": {
|
|
4
|
+
"title": "APIClaw API",
|
|
5
|
+
"description": "The API layer for AI agents. Discover and execute 22,000+ APIs. Search for APIs by describing what you need, get structured documentation, and execute calls through our proxy.",
|
|
6
|
+
"version": "1.0.0",
|
|
7
|
+
"contact": {
|
|
8
|
+
"name": "NordSym AB",
|
|
9
|
+
"email": "gustav@nordsym.com",
|
|
10
|
+
"url": "https://nordsym.com"
|
|
11
|
+
}
|
|
12
|
+
},
|
|
13
|
+
"servers": [
|
|
14
|
+
{
|
|
15
|
+
"url": "https://brilliant-puffin-712.convex.site",
|
|
16
|
+
"description": "APIClaw Production API"
|
|
17
|
+
}
|
|
18
|
+
],
|
|
19
|
+
"paths": {
|
|
20
|
+
"/api/discover": {
|
|
21
|
+
"post": {
|
|
22
|
+
"operationId": "discoverAPIs",
|
|
23
|
+
"summary": "Search for APIs",
|
|
24
|
+
"description": "Search the APIClaw catalog for APIs matching your needs. Describe what you want to do (e.g., 'send SMS', 'generate images', 'transcribe audio') and get matching providers.",
|
|
25
|
+
"requestBody": {
|
|
26
|
+
"required": true,
|
|
27
|
+
"content": {
|
|
28
|
+
"application/json": {
|
|
29
|
+
"schema": {
|
|
30
|
+
"type": "object",
|
|
31
|
+
"properties": {
|
|
32
|
+
"query": {
|
|
33
|
+
"type": "string",
|
|
34
|
+
"description": "Natural language search query. Describe what you want to do.",
|
|
35
|
+
"example": "send SMS to Europe"
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
},
|
|
42
|
+
"responses": {
|
|
43
|
+
"200": {
|
|
44
|
+
"description": "List of matching API providers",
|
|
45
|
+
"content": {
|
|
46
|
+
"application/json": {
|
|
47
|
+
"schema": {
|
|
48
|
+
"type": "object",
|
|
49
|
+
"properties": {
|
|
50
|
+
"providers": {
|
|
51
|
+
"type": "array",
|
|
52
|
+
"items": {
|
|
53
|
+
"type": "object",
|
|
54
|
+
"properties": {
|
|
55
|
+
"providerId": { "type": "string" },
|
|
56
|
+
"name": { "type": "string" },
|
|
57
|
+
"description": { "type": "string" },
|
|
58
|
+
"category": { "type": "string" },
|
|
59
|
+
"pricing": { "type": "string" },
|
|
60
|
+
"regions": { "type": "array", "items": { "type": "string" } },
|
|
61
|
+
"tags": { "type": "array", "items": { "type": "string" } }
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
},
|
|
65
|
+
"total": { "type": "integer" }
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
},
|
|
74
|
+
"/api/details": {
|
|
75
|
+
"post": {
|
|
76
|
+
"operationId": "getAPIDetails",
|
|
77
|
+
"summary": "Get API provider details",
|
|
78
|
+
"description": "Get detailed information about a specific API provider, including documentation and usage examples.",
|
|
79
|
+
"requestBody": {
|
|
80
|
+
"required": true,
|
|
81
|
+
"content": {
|
|
82
|
+
"application/json": {
|
|
83
|
+
"schema": {
|
|
84
|
+
"type": "object",
|
|
85
|
+
"required": ["providerId"],
|
|
86
|
+
"properties": {
|
|
87
|
+
"providerId": {
|
|
88
|
+
"type": "string",
|
|
89
|
+
"description": "The provider ID from the discover endpoint",
|
|
90
|
+
"example": "openrouter"
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
},
|
|
97
|
+
"responses": {
|
|
98
|
+
"200": {
|
|
99
|
+
"description": "Provider details",
|
|
100
|
+
"content": {
|
|
101
|
+
"application/json": {
|
|
102
|
+
"schema": {
|
|
103
|
+
"type": "object",
|
|
104
|
+
"properties": {
|
|
105
|
+
"providerId": { "type": "string" },
|
|
106
|
+
"name": { "type": "string" },
|
|
107
|
+
"description": { "type": "string" },
|
|
108
|
+
"category": { "type": "string" },
|
|
109
|
+
"pricing": { "type": "string" },
|
|
110
|
+
"credentials": { "type": "object" },
|
|
111
|
+
"documentation": { "type": "string" }
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
},
|
|
120
|
+
"/proxy/openrouter": {
|
|
121
|
+
"post": {
|
|
122
|
+
"operationId": "proxyOpenRouter",
|
|
123
|
+
"summary": "Call OpenRouter (LLM API)",
|
|
124
|
+
"description": "Execute LLM completions via OpenRouter. Access GPT-4, Claude, Llama, and 100+ models through a single endpoint.",
|
|
125
|
+
"requestBody": {
|
|
126
|
+
"required": true,
|
|
127
|
+
"content": {
|
|
128
|
+
"application/json": {
|
|
129
|
+
"schema": {
|
|
130
|
+
"type": "object",
|
|
131
|
+
"required": ["model", "messages"],
|
|
132
|
+
"properties": {
|
|
133
|
+
"model": {
|
|
134
|
+
"type": "string",
|
|
135
|
+
"example": "anthropic/claude-3-haiku"
|
|
136
|
+
},
|
|
137
|
+
"messages": {
|
|
138
|
+
"type": "array",
|
|
139
|
+
"items": {
|
|
140
|
+
"type": "object",
|
|
141
|
+
"properties": {
|
|
142
|
+
"role": { "type": "string", "enum": ["system", "user", "assistant"] },
|
|
143
|
+
"content": { "type": "string" }
|
|
144
|
+
}
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
}
|
|
149
|
+
}
|
|
150
|
+
}
|
|
151
|
+
},
|
|
152
|
+
"responses": {
|
|
153
|
+
"200": {
|
|
154
|
+
"description": "LLM completion response"
|
|
155
|
+
}
|
|
156
|
+
}
|
|
157
|
+
}
|
|
158
|
+
},
|
|
159
|
+
"/proxy/46elks": {
|
|
160
|
+
"post": {
|
|
161
|
+
"operationId": "proxySMS46Elks",
|
|
162
|
+
"summary": "Send SMS via 46elks",
|
|
163
|
+
"description": "Send SMS messages to European/Nordic numbers. GDPR compliant.",
|
|
164
|
+
"requestBody": {
|
|
165
|
+
"required": true,
|
|
166
|
+
"content": {
|
|
167
|
+
"application/json": {
|
|
168
|
+
"schema": {
|
|
169
|
+
"type": "object",
|
|
170
|
+
"required": ["to", "message"],
|
|
171
|
+
"properties": {
|
|
172
|
+
"to": {
|
|
173
|
+
"type": "string",
|
|
174
|
+
"description": "Phone number in E.164 format",
|
|
175
|
+
"example": "+46701234567"
|
|
176
|
+
},
|
|
177
|
+
"message": {
|
|
178
|
+
"type": "string",
|
|
179
|
+
"description": "SMS message content"
|
|
180
|
+
},
|
|
181
|
+
"from": {
|
|
182
|
+
"type": "string",
|
|
183
|
+
"description": "Sender name or number",
|
|
184
|
+
"example": "NordSym"
|
|
185
|
+
}
|
|
186
|
+
}
|
|
187
|
+
}
|
|
188
|
+
}
|
|
189
|
+
}
|
|
190
|
+
},
|
|
191
|
+
"responses": {
|
|
192
|
+
"200": {
|
|
193
|
+
"description": "SMS sent successfully"
|
|
194
|
+
}
|
|
195
|
+
}
|
|
196
|
+
}
|
|
197
|
+
},
|
|
198
|
+
"/proxy/resend": {
|
|
199
|
+
"post": {
|
|
200
|
+
"operationId": "proxyEmail",
|
|
201
|
+
"summary": "Send email via Resend",
|
|
202
|
+
"description": "Send transactional emails via Resend API.",
|
|
203
|
+
"requestBody": {
|
|
204
|
+
"required": true,
|
|
205
|
+
"content": {
|
|
206
|
+
"application/json": {
|
|
207
|
+
"schema": {
|
|
208
|
+
"type": "object",
|
|
209
|
+
"required": ["to", "subject"],
|
|
210
|
+
"properties": {
|
|
211
|
+
"to": { "type": "string" },
|
|
212
|
+
"subject": { "type": "string" },
|
|
213
|
+
"html": { "type": "string" },
|
|
214
|
+
"text": { "type": "string" }
|
|
215
|
+
}
|
|
216
|
+
}
|
|
217
|
+
}
|
|
218
|
+
}
|
|
219
|
+
},
|
|
220
|
+
"responses": {
|
|
221
|
+
"200": {
|
|
222
|
+
"description": "Email sent successfully"
|
|
223
|
+
}
|
|
224
|
+
}
|
|
225
|
+
}
|
|
226
|
+
},
|
|
227
|
+
"/proxy/brave_search": {
|
|
228
|
+
"post": {
|
|
229
|
+
"operationId": "proxyWebSearch",
|
|
230
|
+
"summary": "Web search via Brave",
|
|
231
|
+
"description": "Privacy-focused web search. Get search results without tracking.",
|
|
232
|
+
"requestBody": {
|
|
233
|
+
"required": true,
|
|
234
|
+
"content": {
|
|
235
|
+
"application/json": {
|
|
236
|
+
"schema": {
|
|
237
|
+
"type": "object",
|
|
238
|
+
"required": ["query"],
|
|
239
|
+
"properties": {
|
|
240
|
+
"query": {
|
|
241
|
+
"type": "string",
|
|
242
|
+
"description": "Search query"
|
|
243
|
+
},
|
|
244
|
+
"count": {
|
|
245
|
+
"type": "integer",
|
|
246
|
+
"description": "Number of results",
|
|
247
|
+
"default": 10
|
|
248
|
+
}
|
|
249
|
+
}
|
|
250
|
+
}
|
|
251
|
+
}
|
|
252
|
+
}
|
|
253
|
+
},
|
|
254
|
+
"responses": {
|
|
255
|
+
"200": {
|
|
256
|
+
"description": "Search results"
|
|
257
|
+
}
|
|
258
|
+
}
|
|
259
|
+
}
|
|
260
|
+
},
|
|
261
|
+
"/proxy/elevenlabs": {
|
|
262
|
+
"post": {
|
|
263
|
+
"operationId": "proxyTTS",
|
|
264
|
+
"summary": "Text-to-speech via ElevenLabs",
|
|
265
|
+
"description": "Convert text to high-quality speech audio.",
|
|
266
|
+
"requestBody": {
|
|
267
|
+
"required": true,
|
|
268
|
+
"content": {
|
|
269
|
+
"application/json": {
|
|
270
|
+
"schema": {
|
|
271
|
+
"type": "object",
|
|
272
|
+
"required": ["text"],
|
|
273
|
+
"properties": {
|
|
274
|
+
"text": {
|
|
275
|
+
"type": "string",
|
|
276
|
+
"description": "Text to convert to speech"
|
|
277
|
+
},
|
|
278
|
+
"voice_id": {
|
|
279
|
+
"type": "string",
|
|
280
|
+
"description": "Voice ID to use"
|
|
281
|
+
}
|
|
282
|
+
}
|
|
283
|
+
}
|
|
284
|
+
}
|
|
285
|
+
}
|
|
286
|
+
},
|
|
287
|
+
"responses": {
|
|
288
|
+
"200": {
|
|
289
|
+
"description": "Audio data"
|
|
290
|
+
}
|
|
291
|
+
}
|
|
292
|
+
}
|
|
293
|
+
}
|
|
294
|
+
}
|
|
295
|
+
}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
|
2
|
+
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
|
|
3
|
+
<url>
|
|
4
|
+
<loc>https://apiclaw.nordsym.com</loc>
|
|
5
|
+
<lastmod>2026-03-08</lastmod>
|
|
6
|
+
<changefreq>daily</changefreq>
|
|
7
|
+
<priority>1.0</priority>
|
|
8
|
+
</url>
|
|
9
|
+
<url>
|
|
10
|
+
<loc>https://apiclaw.nordsym.com/workspace</loc>
|
|
11
|
+
<lastmod>2026-03-08</lastmod>
|
|
12
|
+
<changefreq>weekly</changefreq>
|
|
13
|
+
<priority>0.8</priority>
|
|
14
|
+
</url>
|
|
15
|
+
</urlset>
|