@nordsym/apiclaw 1.1.2 → 1.1.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/EARN-CREDITS-SPEC.md +197 -0
- package/README.md +11 -7
- package/STATUS.md +16 -15
- package/VISION.md +123 -0
- package/dist/credentials.d.ts.map +1 -1
- package/dist/credentials.js +11 -0
- package/dist/credentials.js.map +1 -1
- package/dist/execute.d.ts.map +1 -1
- package/dist/execute.js +75 -0
- package/dist/execute.js.map +1 -1
- package/dist/index.js +1 -1
- package/dist/proxy.d.ts.map +1 -1
- package/dist/proxy.js +1 -1
- package/dist/proxy.js.map +1 -1
- package/dist/registry/apis.json +93516 -7139
- package/dist/registry/apis_expanded.json +3123 -3
- package/landing/public/book/index.html +339 -0
- package/landing/src/app/docs/page.tsx +142 -115
- package/landing/src/app/earn/page.tsx +305 -0
- package/landing/src/app/page.tsx +16 -11
- package/landing/src/lib/apis.json +1 -116054
- package/landing/src/lib/stats.json +5 -5
- package/package.json +4 -1
- package/scripts/add-public-apis.py +625 -0
- package/scripts/apisguru-data.json +158837 -0
- package/scripts/bonus-batch.py +250 -0
- package/scripts/bulk-add-apisguru.js +122 -0
- package/scripts/expand-2026-batch.py +335 -0
- package/scripts/expand-from-github.py +460 -0
- package/scripts/expand-n4ze3m.py +198 -0
- package/scripts/expand-niche-batch.py +269 -0
- package/scripts/expand-nordic-niche.py +189 -0
- package/scripts/expand-tonnyL.py +343 -0
- package/scripts/final-batch.py +315 -0
- package/scripts/final-push-06.py +242 -0
- package/scripts/mega-expansion.py +495 -0
- package/scripts/mega-final-06.py +512 -0
- package/scripts/more-apis.py +353 -0
- package/scripts/night-batch-05.py +546 -0
- package/scripts/night-batch-05b.py +427 -0
- package/scripts/night-expansion-02-23-batch2.py +284 -0
- package/scripts/night-expansion-02-23.py +383 -0
- package/scripts/night-expansion-03-batch2.py +336 -0
- package/scripts/night-expansion-03-batch3.py +392 -0
- package/scripts/night-expansion-03.py +573 -0
- package/scripts/night-expansion-04-23.py +461 -0
- package/scripts/night-expansion-05-23-batch2.py +431 -0
- package/scripts/night-expansion-05-23-batch3.py +366 -0
- package/scripts/night-expansion-05-23-final.py +349 -0
- package/scripts/night-expansion-05-23.py +540 -0
- package/scripts/night-expansion-06-23-batch2.py +261 -0
- package/scripts/night-expansion-06-23-batch3.py +213 -0
- package/scripts/night-expansion-06-23-batch4.py +261 -0
- package/scripts/night-expansion-06-23.py +309 -0
- package/scripts/night-expansion-06.py +325 -0
- package/scripts/night-expansion.py +441 -0
- package/scripts/night-final-batch-04-23.py +547 -0
- package/scripts/night-mega-batch-04-23.py +874 -0
- package/scripts/super-final-06.py +341 -0
- package/src/credentials.ts +12 -0
- package/src/execute.ts +93 -0
- package/src/index.ts +1 -1
- package/src/proxy.ts +1 -1
- package/src/registry/apis.json +93516 -7139
- package/src/registry/apis_expanded.json +3123 -3
|
@@ -1,29 +1,56 @@
|
|
|
1
1
|
'use client';
|
|
2
2
|
|
|
3
3
|
import Link from 'next/link';
|
|
4
|
+
import { useState, useEffect } from 'react';
|
|
5
|
+
import { Sun, Moon } from 'lucide-react';
|
|
4
6
|
|
|
5
7
|
export default function DocsPage() {
|
|
8
|
+
const [theme, setTheme] = useState<'light' | 'dark'>('dark');
|
|
9
|
+
|
|
10
|
+
useEffect(() => {
|
|
11
|
+
const savedTheme = localStorage.getItem('apiclaw-theme') as 'light' | 'dark' | null;
|
|
12
|
+
const systemTheme = window.matchMedia('(prefers-color-scheme: dark)').matches ? 'dark' : 'light';
|
|
13
|
+
const initialTheme = savedTheme || systemTheme;
|
|
14
|
+
setTheme(initialTheme);
|
|
15
|
+
document.documentElement.classList.toggle('dark', initialTheme === 'dark');
|
|
16
|
+
}, []);
|
|
17
|
+
|
|
18
|
+
const toggleTheme = () => {
|
|
19
|
+
const newTheme = theme === 'dark' ? 'light' : 'dark';
|
|
20
|
+
setTheme(newTheme);
|
|
21
|
+
localStorage.setItem('apiclaw-theme', newTheme);
|
|
22
|
+
document.documentElement.classList.toggle('dark', newTheme === 'dark');
|
|
23
|
+
};
|
|
24
|
+
|
|
6
25
|
return (
|
|
7
|
-
<div className="min-h-screen bg-[
|
|
26
|
+
<div className="min-h-screen bg-[var(--background)] text-[var(--text-primary)]">
|
|
8
27
|
{/* Header */}
|
|
9
|
-
<header className="border-b border-
|
|
28
|
+
<header className="border-b border-[var(--border)] bg-[var(--background)]/80 backdrop-blur-xl sticky top-0 z-50">
|
|
10
29
|
<div className="max-w-6xl mx-auto px-6 py-4 flex items-center justify-between">
|
|
11
30
|
<Link href="/" className="flex items-center gap-3 group">
|
|
12
31
|
<span className="text-2xl">🦞</span>
|
|
13
|
-
<span className="text-xl font-bold
|
|
32
|
+
<span className="text-xl font-bold gradient-text-static">
|
|
14
33
|
APIClaw
|
|
15
34
|
</span>
|
|
16
35
|
</Link>
|
|
17
36
|
<nav className="flex items-center gap-6">
|
|
18
|
-
<Link href="/" className="text-
|
|
19
|
-
<Link href="/providers" className="text-
|
|
37
|
+
<Link href="/" className="text-[var(--text-secondary)] hover:text-[var(--accent)] transition-colors">Home</Link>
|
|
38
|
+
<Link href="/providers" className="text-[var(--text-secondary)] hover:text-[var(--accent)] transition-colors">Providers</Link>
|
|
39
|
+
<Link href="/earn" className="text-[var(--text-secondary)] hover:text-[var(--accent)] transition-colors">Earn Credits</Link>
|
|
20
40
|
<a
|
|
21
41
|
href="https://github.com/nordsym/apiclaw"
|
|
22
42
|
target="_blank"
|
|
23
|
-
className="text-
|
|
43
|
+
className="text-[var(--text-secondary)] hover:text-[var(--accent)] transition-colors"
|
|
24
44
|
>
|
|
25
45
|
GitHub
|
|
26
46
|
</a>
|
|
47
|
+
<button
|
|
48
|
+
onClick={toggleTheme}
|
|
49
|
+
className="p-2 rounded-lg bg-[var(--surface)] border border-[var(--border)] hover:border-[var(--accent)]/50 transition-colors"
|
|
50
|
+
aria-label="Toggle theme"
|
|
51
|
+
>
|
|
52
|
+
{theme === 'dark' ? <Sun className="w-5 h-5" /> : <Moon className="w-5 h-5" />}
|
|
53
|
+
</button>
|
|
27
54
|
</nav>
|
|
28
55
|
</div>
|
|
29
56
|
</header>
|
|
@@ -32,11 +59,11 @@ export default function DocsPage() {
|
|
|
32
59
|
{/* Hero */}
|
|
33
60
|
<div className="mb-16">
|
|
34
61
|
<h1 className="text-4xl md:text-5xl font-bold mb-4">
|
|
35
|
-
<span className="
|
|
62
|
+
<span className="gradient-text">
|
|
36
63
|
Documentation
|
|
37
64
|
</span>
|
|
38
65
|
</h1>
|
|
39
|
-
<p className="text-xl text-
|
|
66
|
+
<p className="text-xl text-[var(--text-secondary)]">
|
|
40
67
|
Everything you need to integrate APIClaw into your AI agent.
|
|
41
68
|
</p>
|
|
42
69
|
</div>
|
|
@@ -44,21 +71,21 @@ export default function DocsPage() {
|
|
|
44
71
|
{/* Quick Start */}
|
|
45
72
|
<section className="mb-16">
|
|
46
73
|
<h2 className="text-2xl font-bold mb-6 flex items-center gap-3">
|
|
47
|
-
<span className="text-
|
|
74
|
+
<span className="text-[var(--accent)]">⚡</span> Quick Start
|
|
48
75
|
</h2>
|
|
49
|
-
<div className="bg-[
|
|
50
|
-
<p className="text-
|
|
51
|
-
<pre className="bg-
|
|
76
|
+
<div className="bg-[var(--surface)] border border-[var(--border)] rounded-xl p-6 mb-6">
|
|
77
|
+
<p className="text-[var(--text-secondary)] mb-4">Get running in 30 seconds:</p>
|
|
78
|
+
<pre className="bg-[var(--surface-elevated)] border border-[var(--border)] rounded-lg p-4 overflow-x-auto">
|
|
52
79
|
<code className="text-sm">
|
|
53
|
-
<span className="text-
|
|
54
|
-
<span className="text-
|
|
55
|
-
<span className="text-
|
|
56
|
-
<span className="text-
|
|
57
|
-
<span className="text-
|
|
80
|
+
<span className="text-[var(--text-muted)]"># Run directly with npx</span>{'\n'}
|
|
81
|
+
<span className="text-emerald-500 dark:text-emerald-400">npx</span> <span className="text-[var(--accent)]">@nordsym/apiclaw</span>{'\n\n'}
|
|
82
|
+
<span className="text-[var(--text-muted)]"># Or install globally</span>{'\n'}
|
|
83
|
+
<span className="text-emerald-500 dark:text-emerald-400">npm</span> install -g <span className="text-[var(--accent)]">@nordsym/apiclaw</span>{'\n'}
|
|
84
|
+
<span className="text-emerald-500 dark:text-emerald-400">apiclaw</span>
|
|
58
85
|
</code>
|
|
59
86
|
</pre>
|
|
60
87
|
</div>
|
|
61
|
-
<p className="text-
|
|
88
|
+
<p className="text-[var(--text-secondary)]">
|
|
62
89
|
APIClaw runs as an MCP server. Add it to your Claude Desktop, Cursor, or any MCP-compatible client.
|
|
63
90
|
</p>
|
|
64
91
|
</section>
|
|
@@ -66,12 +93,12 @@ export default function DocsPage() {
|
|
|
66
93
|
{/* MCP Config */}
|
|
67
94
|
<section className="mb-16">
|
|
68
95
|
<h2 className="text-2xl font-bold mb-6 flex items-center gap-3">
|
|
69
|
-
<span className="text-
|
|
96
|
+
<span className="text-[var(--accent)]">⚙️</span> MCP Configuration
|
|
70
97
|
</h2>
|
|
71
|
-
<div className="bg-[
|
|
72
|
-
<p className="text-
|
|
73
|
-
<pre className="bg-
|
|
74
|
-
<code className="text-sm">
|
|
98
|
+
<div className="bg-[var(--surface)] border border-[var(--border)] rounded-xl p-6">
|
|
99
|
+
<p className="text-[var(--text-secondary)] mb-4">Add to your MCP config (e.g., Claude Desktop):</p>
|
|
100
|
+
<pre className="bg-[var(--surface-elevated)] border border-[var(--border)] rounded-lg p-4 overflow-x-auto">
|
|
101
|
+
<code className="text-sm text-[var(--text-primary)]">
|
|
75
102
|
{`{
|
|
76
103
|
"mcpServers": {
|
|
77
104
|
"apiclaw": {
|
|
@@ -88,96 +115,96 @@ export default function DocsPage() {
|
|
|
88
115
|
{/* Tools Reference */}
|
|
89
116
|
<section className="mb-16">
|
|
90
117
|
<h2 className="text-2xl font-bold mb-6 flex items-center gap-3">
|
|
91
|
-
<span className="text-
|
|
118
|
+
<span className="text-[var(--accent)]">🔧</span> Tools Reference
|
|
92
119
|
</h2>
|
|
93
120
|
|
|
94
121
|
<div className="space-y-6">
|
|
95
122
|
{/* apiclaw_help */}
|
|
96
|
-
<div className="bg-[
|
|
97
|
-
<h3 className="text-lg font-mono text-
|
|
98
|
-
<p className="text-
|
|
99
|
-
<pre className="bg-
|
|
100
|
-
<code className="text-sm text-
|
|
123
|
+
<div className="bg-[var(--surface)] border border-[var(--border)] rounded-xl p-6">
|
|
124
|
+
<h3 className="text-lg font-mono text-[var(--accent)] mb-2">apiclaw_help</h3>
|
|
125
|
+
<p className="text-[var(--text-secondary)] mb-4">Get help and see all available commands. Start here if you're new.</p>
|
|
126
|
+
<pre className="bg-[var(--surface-elevated)] border border-[var(--border)] rounded-lg p-4 overflow-x-auto">
|
|
127
|
+
<code className="text-sm text-[var(--text-primary)]">apiclaw_help()</code>
|
|
101
128
|
</pre>
|
|
102
129
|
</div>
|
|
103
130
|
|
|
104
131
|
{/* discover_apis */}
|
|
105
|
-
<div className="bg-[
|
|
106
|
-
<h3 className="text-lg font-mono text-
|
|
107
|
-
<p className="text-
|
|
108
|
-
<pre className="bg-
|
|
132
|
+
<div className="bg-[var(--surface)] border border-[var(--border)] rounded-xl p-6">
|
|
133
|
+
<h3 className="text-lg font-mono text-[var(--accent)] mb-2">discover_apis</h3>
|
|
134
|
+
<p className="text-[var(--text-secondary)] mb-4">Search 10,000+ APIs using natural language.</p>
|
|
135
|
+
<pre className="bg-[var(--surface-elevated)] border border-[var(--border)] rounded-lg p-4 overflow-x-auto">
|
|
109
136
|
<code className="text-sm">
|
|
110
|
-
<span className="text-purple-400">discover_apis</span>({'{\n'}
|
|
111
|
-
{" "}<span className="text-
|
|
112
|
-
{" "}<span className="text-
|
|
137
|
+
<span className="text-purple-600 dark:text-purple-400">discover_apis</span>({'{\n'}
|
|
138
|
+
{" "}<span className="text-sky-600 dark:text-sky-400">query</span>: <span className="text-emerald-600 dark:text-emerald-400">"send SMS to Sweden"</span>,{'\n'}
|
|
139
|
+
{" "}<span className="text-sky-600 dark:text-sky-400">max_results</span>: <span className="text-amber-600 dark:text-amber-400">5</span>{'\n'}
|
|
113
140
|
{'}'})
|
|
114
141
|
</code>
|
|
115
142
|
</pre>
|
|
116
|
-
<div className="mt-4 text-sm text-
|
|
117
|
-
<strong>Parameters:</strong>
|
|
143
|
+
<div className="mt-4 text-sm text-[var(--text-muted)]">
|
|
144
|
+
<strong className="text-[var(--text-primary)]">Parameters:</strong>
|
|
118
145
|
<ul className="list-disc list-inside mt-2 space-y-1">
|
|
119
|
-
<li><code className="text-
|
|
120
|
-
<li><code className="text-
|
|
121
|
-
<li><code className="text-
|
|
122
|
-
<li><code className="text-
|
|
146
|
+
<li><code className="text-[var(--accent)]">query</code> — Natural language description</li>
|
|
147
|
+
<li><code className="text-[var(--accent)]">category</code> — Filter: communication, search, ai</li>
|
|
148
|
+
<li><code className="text-[var(--accent)]">max_results</code> — Number of results (default: 5)</li>
|
|
149
|
+
<li><code className="text-[var(--accent)]">region</code> — Filter by region (e.g., "sweden")</li>
|
|
123
150
|
</ul>
|
|
124
151
|
</div>
|
|
125
152
|
</div>
|
|
126
153
|
|
|
127
154
|
{/* get_api_details */}
|
|
128
|
-
<div className="bg-[
|
|
129
|
-
<h3 className="text-lg font-mono text-
|
|
130
|
-
<p className="text-
|
|
131
|
-
<pre className="bg-
|
|
155
|
+
<div className="bg-[var(--surface)] border border-[var(--border)] rounded-xl p-6">
|
|
156
|
+
<h3 className="text-lg font-mono text-[var(--accent)] mb-2">get_api_details</h3>
|
|
157
|
+
<p className="text-[var(--text-secondary)] mb-4">Get detailed information about a specific API.</p>
|
|
158
|
+
<pre className="bg-[var(--surface-elevated)] border border-[var(--border)] rounded-lg p-4 overflow-x-auto">
|
|
132
159
|
<code className="text-sm">
|
|
133
|
-
<span className="text-purple-400">get_api_details</span>({'{\n'}
|
|
134
|
-
{" "}<span className="text-
|
|
160
|
+
<span className="text-purple-600 dark:text-purple-400">get_api_details</span>({'{\n'}
|
|
161
|
+
{" "}<span className="text-sky-600 dark:text-sky-400">api_id</span>: <span className="text-emerald-600 dark:text-emerald-400">"46elks"</span>{'\n'}
|
|
135
162
|
{'}'})
|
|
136
163
|
</code>
|
|
137
164
|
</pre>
|
|
138
165
|
</div>
|
|
139
166
|
|
|
140
167
|
{/* get_connected_providers */}
|
|
141
|
-
<div className="bg-[
|
|
142
|
-
<h3 className="text-lg font-mono text-
|
|
143
|
-
<p className="text-
|
|
144
|
-
<pre className="bg-
|
|
145
|
-
<code className="text-sm text-
|
|
168
|
+
<div className="bg-[var(--surface)] border border-[var(--border)] rounded-xl p-6">
|
|
169
|
+
<h3 className="text-lg font-mono text-[var(--accent)] mb-2">get_connected_providers</h3>
|
|
170
|
+
<p className="text-[var(--text-secondary)] mb-4">List all instant-connect providers (no API key needed).</p>
|
|
171
|
+
<pre className="bg-[var(--surface-elevated)] border border-[var(--border)] rounded-lg p-4 overflow-x-auto">
|
|
172
|
+
<code className="text-sm text-[var(--text-primary)]">get_connected_providers()</code>
|
|
146
173
|
</pre>
|
|
147
|
-
<div className="mt-4 text-sm text-
|
|
148
|
-
<strong>Currently available:</strong>
|
|
174
|
+
<div className="mt-4 text-sm text-[var(--text-muted)]">
|
|
175
|
+
<strong className="text-[var(--text-primary)]">Currently available:</strong>
|
|
149
176
|
<ul className="list-disc list-inside mt-2 space-y-1">
|
|
150
|
-
<li><code className="text-
|
|
151
|
-
<li><code className="text-
|
|
152
|
-
<li><code className="text-
|
|
153
|
-
<li><code className="text-
|
|
154
|
-
<li><code className="text-
|
|
155
|
-
<li><code className="text-
|
|
177
|
+
<li><code className="text-[var(--accent)]">brave_search</code> — Web search</li>
|
|
178
|
+
<li><code className="text-[var(--accent)]">46elks</code> — SMS (Sweden)</li>
|
|
179
|
+
<li><code className="text-[var(--accent)]">twilio</code> — SMS (Global)</li>
|
|
180
|
+
<li><code className="text-[var(--accent)]">resend</code> — Email</li>
|
|
181
|
+
<li><code className="text-[var(--accent)]">openrouter</code> — LLM routing</li>
|
|
182
|
+
<li><code className="text-[var(--accent)]">elevenlabs</code> — Text-to-speech</li>
|
|
156
183
|
</ul>
|
|
157
184
|
</div>
|
|
158
185
|
</div>
|
|
159
186
|
|
|
160
187
|
{/* call_api */}
|
|
161
|
-
<div className="bg-[
|
|
162
|
-
<h3 className="text-lg font-mono text-
|
|
163
|
-
<p className="text-
|
|
164
|
-
<pre className="bg-
|
|
188
|
+
<div className="bg-[var(--surface)] border border-[var(--border)] rounded-xl p-6">
|
|
189
|
+
<h3 className="text-lg font-mono text-[var(--accent)] mb-2">call_api</h3>
|
|
190
|
+
<p className="text-[var(--text-secondary)] mb-4">Execute an API call through an instant-connect provider.</p>
|
|
191
|
+
<pre className="bg-[var(--surface-elevated)] border border-[var(--border)] rounded-lg p-4 overflow-x-auto">
|
|
165
192
|
<code className="text-sm">
|
|
166
|
-
<span className="text-purple-400">call_api</span>({'{\n'}
|
|
167
|
-
{" "}<span className="text-
|
|
168
|
-
{" "}<span className="text-
|
|
169
|
-
{" "}<span className="text-
|
|
193
|
+
<span className="text-purple-600 dark:text-purple-400">call_api</span>({'{\n'}
|
|
194
|
+
{" "}<span className="text-sky-600 dark:text-sky-400">provider</span>: <span className="text-emerald-600 dark:text-emerald-400">"brave_search"</span>,{'\n'}
|
|
195
|
+
{" "}<span className="text-sky-600 dark:text-sky-400">endpoint</span>: <span className="text-emerald-600 dark:text-emerald-400">"search"</span>,{'\n'}
|
|
196
|
+
{" "}<span className="text-sky-600 dark:text-sky-400">params</span>: {'{ '}<span className="text-sky-600 dark:text-sky-400">q</span>: <span className="text-emerald-600 dark:text-emerald-400">"AI agents 2026"</span>{' }'}{'\n'}
|
|
170
197
|
{'}'})
|
|
171
198
|
</code>
|
|
172
199
|
</pre>
|
|
173
200
|
</div>
|
|
174
201
|
|
|
175
202
|
{/* list_categories */}
|
|
176
|
-
<div className="bg-[
|
|
177
|
-
<h3 className="text-lg font-mono text-
|
|
178
|
-
<p className="text-
|
|
179
|
-
<pre className="bg-
|
|
180
|
-
<code className="text-sm text-
|
|
203
|
+
<div className="bg-[var(--surface)] border border-[var(--border)] rounded-xl p-6">
|
|
204
|
+
<h3 className="text-lg font-mono text-[var(--accent)] mb-2">list_categories</h3>
|
|
205
|
+
<p className="text-[var(--text-secondary)] mb-4">Browse all 446 API categories.</p>
|
|
206
|
+
<pre className="bg-[var(--surface-elevated)] border border-[var(--border)] rounded-lg p-4 overflow-x-auto">
|
|
207
|
+
<code className="text-sm text-[var(--text-primary)]">list_categories()</code>
|
|
181
208
|
</pre>
|
|
182
209
|
</div>
|
|
183
210
|
</div>
|
|
@@ -186,52 +213,52 @@ export default function DocsPage() {
|
|
|
186
213
|
{/* Examples */}
|
|
187
214
|
<section className="mb-16">
|
|
188
215
|
<h2 className="text-2xl font-bold mb-6 flex items-center gap-3">
|
|
189
|
-
<span className="text-
|
|
216
|
+
<span className="text-[var(--accent)]">💡</span> Examples
|
|
190
217
|
</h2>
|
|
191
218
|
|
|
192
219
|
<div className="space-y-6">
|
|
193
|
-
<div className="bg-[
|
|
220
|
+
<div className="bg-[var(--surface)] border border-[var(--border)] rounded-xl p-6">
|
|
194
221
|
<h3 className="text-lg font-semibold mb-4">Send an SMS</h3>
|
|
195
|
-
<pre className="bg-
|
|
222
|
+
<pre className="bg-[var(--surface-elevated)] border border-[var(--border)] rounded-lg p-4 overflow-x-auto">
|
|
196
223
|
<code className="text-sm">
|
|
197
|
-
<span className="text-
|
|
198
|
-
<span className="text-purple-400">discover_apis</span>({'{ '}<span className="text-
|
|
199
|
-
<span className="text-
|
|
200
|
-
<span className="text-purple-400">call_api</span>({'{\n'}
|
|
201
|
-
{" "}<span className="text-
|
|
202
|
-
{" "}<span className="text-
|
|
203
|
-
{" "}<span className="text-
|
|
204
|
-
{" "}<span className="text-
|
|
205
|
-
{" "}<span className="text-
|
|
224
|
+
<span className="text-[var(--text-muted)]">// Find SMS providers for Sweden</span>{'\n'}
|
|
225
|
+
<span className="text-purple-600 dark:text-purple-400">discover_apis</span>({'{ '}<span className="text-sky-600 dark:text-sky-400">query</span>: <span className="text-emerald-600 dark:text-emerald-400">"send SMS Sweden"</span>{' }'}){'\n\n'}
|
|
226
|
+
<span className="text-[var(--text-muted)]">// Send via instant-connect</span>{'\n'}
|
|
227
|
+
<span className="text-purple-600 dark:text-purple-400">call_api</span>({'{\n'}
|
|
228
|
+
{" "}<span className="text-sky-600 dark:text-sky-400">provider</span>: <span className="text-emerald-600 dark:text-emerald-400">"46elks"</span>,{'\n'}
|
|
229
|
+
{" "}<span className="text-sky-600 dark:text-sky-400">endpoint</span>: <span className="text-emerald-600 dark:text-emerald-400">"sms"</span>,{'\n'}
|
|
230
|
+
{" "}<span className="text-sky-600 dark:text-sky-400">params</span>: {'{\n'}
|
|
231
|
+
{" "}<span className="text-sky-600 dark:text-sky-400">to</span>: <span className="text-emerald-600 dark:text-emerald-400">"+46701234567"</span>,{'\n'}
|
|
232
|
+
{" "}<span className="text-sky-600 dark:text-sky-400">message</span>: <span className="text-emerald-600 dark:text-emerald-400">"Hello from APIClaw!"</span>{'\n'}
|
|
206
233
|
{" }"}{'\n'}
|
|
207
234
|
{'}'})
|
|
208
235
|
</code>
|
|
209
236
|
</pre>
|
|
210
237
|
</div>
|
|
211
238
|
|
|
212
|
-
<div className="bg-[
|
|
239
|
+
<div className="bg-[var(--surface)] border border-[var(--border)] rounded-xl p-6">
|
|
213
240
|
<h3 className="text-lg font-semibold mb-4">Search the web</h3>
|
|
214
|
-
<pre className="bg-
|
|
241
|
+
<pre className="bg-[var(--surface-elevated)] border border-[var(--border)] rounded-lg p-4 overflow-x-auto">
|
|
215
242
|
<code className="text-sm">
|
|
216
|
-
<span className="text-purple-400">call_api</span>({'{\n'}
|
|
217
|
-
{" "}<span className="text-
|
|
218
|
-
{" "}<span className="text-
|
|
219
|
-
{" "}<span className="text-
|
|
243
|
+
<span className="text-purple-600 dark:text-purple-400">call_api</span>({'{\n'}
|
|
244
|
+
{" "}<span className="text-sky-600 dark:text-sky-400">provider</span>: <span className="text-emerald-600 dark:text-emerald-400">"brave_search"</span>,{'\n'}
|
|
245
|
+
{" "}<span className="text-sky-600 dark:text-sky-400">endpoint</span>: <span className="text-emerald-600 dark:text-emerald-400">"search"</span>,{'\n'}
|
|
246
|
+
{" "}<span className="text-sky-600 dark:text-sky-400">params</span>: {'{ '}<span className="text-sky-600 dark:text-sky-400">q</span>: <span className="text-emerald-600 dark:text-emerald-400">"best MCP servers 2026"</span>{' }'}{'\n'}
|
|
220
247
|
{'}'})
|
|
221
248
|
</code>
|
|
222
249
|
</pre>
|
|
223
250
|
</div>
|
|
224
251
|
|
|
225
|
-
<div className="bg-[
|
|
252
|
+
<div className="bg-[var(--surface)] border border-[var(--border)] rounded-xl p-6">
|
|
226
253
|
<h3 className="text-lg font-semibold mb-4">Generate speech</h3>
|
|
227
|
-
<pre className="bg-
|
|
254
|
+
<pre className="bg-[var(--surface-elevated)] border border-[var(--border)] rounded-lg p-4 overflow-x-auto">
|
|
228
255
|
<code className="text-sm">
|
|
229
|
-
<span className="text-purple-400">call_api</span>({'{\n'}
|
|
230
|
-
{" "}<span className="text-
|
|
231
|
-
{" "}<span className="text-
|
|
232
|
-
{" "}<span className="text-
|
|
233
|
-
{" "}<span className="text-
|
|
234
|
-
{" "}<span className="text-
|
|
256
|
+
<span className="text-purple-600 dark:text-purple-400">call_api</span>({'{\n'}
|
|
257
|
+
{" "}<span className="text-sky-600 dark:text-sky-400">provider</span>: <span className="text-emerald-600 dark:text-emerald-400">"elevenlabs"</span>,{'\n'}
|
|
258
|
+
{" "}<span className="text-sky-600 dark:text-sky-400">endpoint</span>: <span className="text-emerald-600 dark:text-emerald-400">"tts"</span>,{'\n'}
|
|
259
|
+
{" "}<span className="text-sky-600 dark:text-sky-400">params</span>: {'{\n'}
|
|
260
|
+
{" "}<span className="text-sky-600 dark:text-sky-400">text</span>: <span className="text-emerald-600 dark:text-emerald-400">"Hello, I am an AI agent!"</span>,{'\n'}
|
|
261
|
+
{" "}<span className="text-sky-600 dark:text-sky-400">voice</span>: <span className="text-emerald-600 dark:text-emerald-400">"adam"</span>{'\n'}
|
|
235
262
|
{" }"}{'\n'}
|
|
236
263
|
{'}'})
|
|
237
264
|
</code>
|
|
@@ -243,13 +270,13 @@ export default function DocsPage() {
|
|
|
243
270
|
{/* For Providers */}
|
|
244
271
|
<section className="mb-16">
|
|
245
272
|
<h2 className="text-2xl font-bold mb-6 flex items-center gap-3">
|
|
246
|
-
<span className="text-
|
|
273
|
+
<span className="text-[var(--accent)]">🤝</span> For API Providers
|
|
247
274
|
</h2>
|
|
248
|
-
<div className="bg-gradient-to-r from-
|
|
249
|
-
<p className="text-
|
|
275
|
+
<div className="bg-gradient-to-r from-[var(--accent)]/10 to-orange-500/10 border border-[var(--accent)]/20 rounded-xl p-6">
|
|
276
|
+
<p className="text-[var(--text-primary)] mb-4">
|
|
250
277
|
Want your API discoverable by 1000s of AI agents? Join APIClaw as a provider.
|
|
251
278
|
</p>
|
|
252
|
-
<ul className="list-disc list-inside text-
|
|
279
|
+
<ul className="list-disc list-inside text-[var(--text-secondary)] space-y-2 mb-6">
|
|
253
280
|
<li>Get discovered by AI agents searching for your capabilities</li>
|
|
254
281
|
<li>Direct Connect integration — agents use your API instantly</li>
|
|
255
282
|
<li>Analytics dashboard — see how agents use your API</li>
|
|
@@ -257,7 +284,7 @@ export default function DocsPage() {
|
|
|
257
284
|
</ul>
|
|
258
285
|
<Link
|
|
259
286
|
href="/providers/register"
|
|
260
|
-
className="inline-flex items-center gap-2 px-6 py-3 bg-gradient-to-r from-
|
|
287
|
+
className="inline-flex items-center gap-2 px-6 py-3 bg-gradient-to-r from-[var(--accent)] to-orange-500 rounded-lg font-semibold text-white hover:opacity-90 transition-opacity"
|
|
261
288
|
>
|
|
262
289
|
Register as Provider →
|
|
263
290
|
</Link>
|
|
@@ -267,22 +294,22 @@ export default function DocsPage() {
|
|
|
267
294
|
{/* Support */}
|
|
268
295
|
<section>
|
|
269
296
|
<h2 className="text-2xl font-bold mb-6 flex items-center gap-3">
|
|
270
|
-
<span className="text-
|
|
297
|
+
<span className="text-[var(--accent)]">💬</span> Support
|
|
271
298
|
</h2>
|
|
272
|
-
<div className="bg-[
|
|
273
|
-
<p className="text-
|
|
274
|
-
<ul className="space-y-2 text-
|
|
299
|
+
<div className="bg-[var(--surface)] border border-[var(--border)] rounded-xl p-6">
|
|
300
|
+
<p className="text-[var(--text-secondary)] mb-4">Need help? Reach out:</p>
|
|
301
|
+
<ul className="space-y-2 text-[var(--text-primary)]">
|
|
275
302
|
<li>
|
|
276
303
|
<strong>Telegram:</strong>{' '}
|
|
277
|
-
<a href="https://t.me/
|
|
304
|
+
<a href="https://t.me/Symbot_apiclaw_bot" className="text-[var(--accent)] hover:underline">@Symbot_apiclaw_bot</a>
|
|
278
305
|
</li>
|
|
279
306
|
<li>
|
|
280
307
|
<strong>GitHub:</strong>{' '}
|
|
281
|
-
<a href="https://github.com/nordsym/apiclaw/issues" className="text-
|
|
308
|
+
<a href="https://github.com/nordsym/apiclaw/issues" className="text-[var(--accent)] hover:underline">Issues</a>
|
|
282
309
|
</li>
|
|
283
310
|
<li>
|
|
284
311
|
<strong>Email:</strong>{' '}
|
|
285
|
-
<a href="mailto:gustav@nordsym.com" className="text-
|
|
312
|
+
<a href="mailto:gustav@nordsym.com" className="text-[var(--accent)] hover:underline">gustav@nordsym.com</a>
|
|
286
313
|
</li>
|
|
287
314
|
</ul>
|
|
288
315
|
</div>
|
|
@@ -290,9 +317,9 @@ export default function DocsPage() {
|
|
|
290
317
|
</div>
|
|
291
318
|
|
|
292
319
|
{/* Footer */}
|
|
293
|
-
<footer className="border-t border-
|
|
294
|
-
<div className="max-w-6xl mx-auto px-6 text-center text-
|
|
295
|
-
<p>🦞 APIClaw by <a href="https://nordsym.com" className="text-
|
|
320
|
+
<footer className="border-t border-[var(--border)] py-8 mt-16">
|
|
321
|
+
<div className="max-w-6xl mx-auto px-6 text-center text-[var(--text-muted)]">
|
|
322
|
+
<p>🦞 APIClaw by <a href="https://nordsym.com" className="text-[var(--accent)] hover:underline">NordSym</a></p>
|
|
296
323
|
</div>
|
|
297
324
|
</footer>
|
|
298
325
|
</div>
|