@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.
Files changed (65) hide show
  1. package/EARN-CREDITS-SPEC.md +197 -0
  2. package/README.md +11 -7
  3. package/STATUS.md +16 -15
  4. package/VISION.md +123 -0
  5. package/dist/credentials.d.ts.map +1 -1
  6. package/dist/credentials.js +11 -0
  7. package/dist/credentials.js.map +1 -1
  8. package/dist/execute.d.ts.map +1 -1
  9. package/dist/execute.js +75 -0
  10. package/dist/execute.js.map +1 -1
  11. package/dist/index.js +1 -1
  12. package/dist/proxy.d.ts.map +1 -1
  13. package/dist/proxy.js +1 -1
  14. package/dist/proxy.js.map +1 -1
  15. package/dist/registry/apis.json +93516 -7139
  16. package/dist/registry/apis_expanded.json +3123 -3
  17. package/landing/public/book/index.html +339 -0
  18. package/landing/src/app/docs/page.tsx +142 -115
  19. package/landing/src/app/earn/page.tsx +305 -0
  20. package/landing/src/app/page.tsx +16 -11
  21. package/landing/src/lib/apis.json +1 -116054
  22. package/landing/src/lib/stats.json +5 -5
  23. package/package.json +4 -1
  24. package/scripts/add-public-apis.py +625 -0
  25. package/scripts/apisguru-data.json +158837 -0
  26. package/scripts/bonus-batch.py +250 -0
  27. package/scripts/bulk-add-apisguru.js +122 -0
  28. package/scripts/expand-2026-batch.py +335 -0
  29. package/scripts/expand-from-github.py +460 -0
  30. package/scripts/expand-n4ze3m.py +198 -0
  31. package/scripts/expand-niche-batch.py +269 -0
  32. package/scripts/expand-nordic-niche.py +189 -0
  33. package/scripts/expand-tonnyL.py +343 -0
  34. package/scripts/final-batch.py +315 -0
  35. package/scripts/final-push-06.py +242 -0
  36. package/scripts/mega-expansion.py +495 -0
  37. package/scripts/mega-final-06.py +512 -0
  38. package/scripts/more-apis.py +353 -0
  39. package/scripts/night-batch-05.py +546 -0
  40. package/scripts/night-batch-05b.py +427 -0
  41. package/scripts/night-expansion-02-23-batch2.py +284 -0
  42. package/scripts/night-expansion-02-23.py +383 -0
  43. package/scripts/night-expansion-03-batch2.py +336 -0
  44. package/scripts/night-expansion-03-batch3.py +392 -0
  45. package/scripts/night-expansion-03.py +573 -0
  46. package/scripts/night-expansion-04-23.py +461 -0
  47. package/scripts/night-expansion-05-23-batch2.py +431 -0
  48. package/scripts/night-expansion-05-23-batch3.py +366 -0
  49. package/scripts/night-expansion-05-23-final.py +349 -0
  50. package/scripts/night-expansion-05-23.py +540 -0
  51. package/scripts/night-expansion-06-23-batch2.py +261 -0
  52. package/scripts/night-expansion-06-23-batch3.py +213 -0
  53. package/scripts/night-expansion-06-23-batch4.py +261 -0
  54. package/scripts/night-expansion-06-23.py +309 -0
  55. package/scripts/night-expansion-06.py +325 -0
  56. package/scripts/night-expansion.py +441 -0
  57. package/scripts/night-final-batch-04-23.py +547 -0
  58. package/scripts/night-mega-batch-04-23.py +874 -0
  59. package/scripts/super-final-06.py +341 -0
  60. package/src/credentials.ts +12 -0
  61. package/src/execute.ts +93 -0
  62. package/src/index.ts +1 -1
  63. package/src/proxy.ts +1 -1
  64. package/src/registry/apis.json +93516 -7139
  65. 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-[#0a0a0f] text-gray-100">
26
+ <div className="min-h-screen bg-[var(--background)] text-[var(--text-primary)]">
8
27
  {/* Header */}
9
- <header className="border-b border-white/10 bg-[#0a0a0f]/80 backdrop-blur-xl sticky top-0 z-50">
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 bg-gradient-to-r from-red-400 to-orange-400 bg-clip-text text-transparent">
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-gray-400 hover:text-white transition-colors">Home</Link>
19
- <Link href="/providers" className="text-gray-400 hover:text-white transition-colors">Providers</Link>
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-gray-400 hover:text-white transition-colors"
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="bg-gradient-to-r from-red-400 via-orange-400 to-yellow-400 bg-clip-text text-transparent">
62
+ <span className="gradient-text">
36
63
  Documentation
37
64
  </span>
38
65
  </h1>
39
- <p className="text-xl text-gray-400">
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-red-400">⚡</span> Quick Start
74
+ <span className="text-[var(--accent)]">⚡</span> Quick Start
48
75
  </h2>
49
- <div className="bg-[#12121a] border border-white/10 rounded-xl p-6 mb-6">
50
- <p className="text-gray-400 mb-4">Get running in 30 seconds:</p>
51
- <pre className="bg-black/50 rounded-lg p-4 overflow-x-auto">
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-gray-500"># Run directly with npx</span>{'\n'}
54
- <span className="text-green-400">npx</span> <span className="text-orange-400">@nordsym/apiclaw</span>{'\n\n'}
55
- <span className="text-gray-500"># Or install globally</span>{'\n'}
56
- <span className="text-green-400">npm</span> install -g <span className="text-orange-400">@nordsym/apiclaw</span>{'\n'}
57
- <span className="text-green-400">apiclaw</span>
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-gray-400">
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-red-400">⚙️</span> MCP Configuration
96
+ <span className="text-[var(--accent)]">⚙️</span> MCP Configuration
70
97
  </h2>
71
- <div className="bg-[#12121a] border border-white/10 rounded-xl p-6">
72
- <p className="text-gray-400 mb-4">Add to your MCP config (e.g., Claude Desktop):</p>
73
- <pre className="bg-black/50 rounded-lg p-4 overflow-x-auto">
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-red-400">🔧</span> Tools Reference
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-[#12121a] border border-white/10 rounded-xl p-6">
97
- <h3 className="text-lg font-mono text-orange-400 mb-2">apiclaw_help</h3>
98
- <p className="text-gray-400 mb-4">Get help and see all available commands. Start here if you&apos;re new.</p>
99
- <pre className="bg-black/50 rounded-lg p-4 overflow-x-auto">
100
- <code className="text-sm text-gray-300">apiclaw_help()</code>
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&apos;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-[#12121a] border border-white/10 rounded-xl p-6">
106
- <h3 className="text-lg font-mono text-orange-400 mb-2">discover_apis</h3>
107
- <p className="text-gray-400 mb-4">Search 10,000+ APIs using natural language.</p>
108
- <pre className="bg-black/50 rounded-lg p-4 overflow-x-auto">
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-blue-400">query</span>: <span className="text-green-400">&quot;send SMS to Sweden&quot;</span>,{'\n'}
112
- {" "}<span className="text-blue-400">max_results</span>: <span className="text-yellow-400">5</span>{'\n'}
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">&quot;send SMS to Sweden&quot;</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-gray-500">
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-orange-400">query</code> — Natural language description</li>
120
- <li><code className="text-orange-400">category</code> — Filter: communication, search, ai</li>
121
- <li><code className="text-orange-400">max_results</code> — Number of results (default: 5)</li>
122
- <li><code className="text-orange-400">region</code> — Filter by region (e.g., &quot;sweden&quot;)</li>
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., &quot;sweden&quot;)</li>
123
150
  </ul>
124
151
  </div>
125
152
  </div>
126
153
 
127
154
  {/* get_api_details */}
128
- <div className="bg-[#12121a] border border-white/10 rounded-xl p-6">
129
- <h3 className="text-lg font-mono text-orange-400 mb-2">get_api_details</h3>
130
- <p className="text-gray-400 mb-4">Get detailed information about a specific API.</p>
131
- <pre className="bg-black/50 rounded-lg p-4 overflow-x-auto">
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-blue-400">api_id</span>: <span className="text-green-400">&quot;46elks&quot;</span>{'\n'}
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">&quot;46elks&quot;</span>{'\n'}
135
162
  {'}'})
136
163
  </code>
137
164
  </pre>
138
165
  </div>
139
166
 
140
167
  {/* get_connected_providers */}
141
- <div className="bg-[#12121a] border border-white/10 rounded-xl p-6">
142
- <h3 className="text-lg font-mono text-orange-400 mb-2">get_connected_providers</h3>
143
- <p className="text-gray-400 mb-4">List all instant-connect providers (no API key needed).</p>
144
- <pre className="bg-black/50 rounded-lg p-4 overflow-x-auto">
145
- <code className="text-sm text-gray-300">get_connected_providers()</code>
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-gray-500">
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-orange-400">brave_search</code> — Web search</li>
151
- <li><code className="text-orange-400">46elks</code> — SMS (Sweden)</li>
152
- <li><code className="text-orange-400">twilio</code> — SMS (Global)</li>
153
- <li><code className="text-orange-400">resend</code> — Email</li>
154
- <li><code className="text-orange-400">openrouter</code> — LLM routing</li>
155
- <li><code className="text-orange-400">elevenlabs</code> — Text-to-speech</li>
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-[#12121a] border border-white/10 rounded-xl p-6">
162
- <h3 className="text-lg font-mono text-orange-400 mb-2">call_api</h3>
163
- <p className="text-gray-400 mb-4">Execute an API call through an instant-connect provider.</p>
164
- <pre className="bg-black/50 rounded-lg p-4 overflow-x-auto">
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-blue-400">provider</span>: <span className="text-green-400">&quot;brave_search&quot;</span>,{'\n'}
168
- {" "}<span className="text-blue-400">endpoint</span>: <span className="text-green-400">&quot;search&quot;</span>,{'\n'}
169
- {" "}<span className="text-blue-400">params</span>: {'{ '}<span className="text-blue-400">q</span>: <span className="text-green-400">&quot;AI agents 2026&quot;</span>{' }'}{'\n'}
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">&quot;brave_search&quot;</span>,{'\n'}
195
+ {" "}<span className="text-sky-600 dark:text-sky-400">endpoint</span>: <span className="text-emerald-600 dark:text-emerald-400">&quot;search&quot;</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">&quot;AI agents 2026&quot;</span>{' }'}{'\n'}
170
197
  {'}'})
171
198
  </code>
172
199
  </pre>
173
200
  </div>
174
201
 
175
202
  {/* list_categories */}
176
- <div className="bg-[#12121a] border border-white/10 rounded-xl p-6">
177
- <h3 className="text-lg font-mono text-orange-400 mb-2">list_categories</h3>
178
- <p className="text-gray-400 mb-4">Browse all 446 API categories.</p>
179
- <pre className="bg-black/50 rounded-lg p-4 overflow-x-auto">
180
- <code className="text-sm text-gray-300">list_categories()</code>
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-red-400">💡</span> Examples
216
+ <span className="text-[var(--accent)]">💡</span> Examples
190
217
  </h2>
191
218
 
192
219
  <div className="space-y-6">
193
- <div className="bg-[#12121a] border border-white/10 rounded-xl p-6">
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-black/50 rounded-lg p-4 overflow-x-auto">
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-gray-500">// Find SMS providers for Sweden</span>{'\n'}
198
- <span className="text-purple-400">discover_apis</span>({'{ '}<span className="text-blue-400">query</span>: <span className="text-green-400">&quot;send SMS Sweden&quot;</span>{' }'}){'\n\n'}
199
- <span className="text-gray-500">// Send via instant-connect</span>{'\n'}
200
- <span className="text-purple-400">call_api</span>({'{\n'}
201
- {" "}<span className="text-blue-400">provider</span>: <span className="text-green-400">&quot;46elks&quot;</span>,{'\n'}
202
- {" "}<span className="text-blue-400">endpoint</span>: <span className="text-green-400">&quot;sms&quot;</span>,{'\n'}
203
- {" "}<span className="text-blue-400">params</span>: {'{\n'}
204
- {" "}<span className="text-blue-400">to</span>: <span className="text-green-400">&quot;+46701234567&quot;</span>,{'\n'}
205
- {" "}<span className="text-blue-400">message</span>: <span className="text-green-400">&quot;Hello from APIClaw!&quot;</span>{'\n'}
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">&quot;send SMS Sweden&quot;</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">&quot;46elks&quot;</span>,{'\n'}
229
+ {" "}<span className="text-sky-600 dark:text-sky-400">endpoint</span>: <span className="text-emerald-600 dark:text-emerald-400">&quot;sms&quot;</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">&quot;+46701234567&quot;</span>,{'\n'}
232
+ {" "}<span className="text-sky-600 dark:text-sky-400">message</span>: <span className="text-emerald-600 dark:text-emerald-400">&quot;Hello from APIClaw!&quot;</span>{'\n'}
206
233
  {" }"}{'\n'}
207
234
  {'}'})
208
235
  </code>
209
236
  </pre>
210
237
  </div>
211
238
 
212
- <div className="bg-[#12121a] border border-white/10 rounded-xl p-6">
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-black/50 rounded-lg p-4 overflow-x-auto">
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-blue-400">provider</span>: <span className="text-green-400">&quot;brave_search&quot;</span>,{'\n'}
218
- {" "}<span className="text-blue-400">endpoint</span>: <span className="text-green-400">&quot;search&quot;</span>,{'\n'}
219
- {" "}<span className="text-blue-400">params</span>: {'{ '}<span className="text-blue-400">q</span>: <span className="text-green-400">&quot;best MCP servers 2026&quot;</span>{' }'}{'\n'}
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">&quot;brave_search&quot;</span>,{'\n'}
245
+ {" "}<span className="text-sky-600 dark:text-sky-400">endpoint</span>: <span className="text-emerald-600 dark:text-emerald-400">&quot;search&quot;</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">&quot;best MCP servers 2026&quot;</span>{' }'}{'\n'}
220
247
  {'}'})
221
248
  </code>
222
249
  </pre>
223
250
  </div>
224
251
 
225
- <div className="bg-[#12121a] border border-white/10 rounded-xl p-6">
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-black/50 rounded-lg p-4 overflow-x-auto">
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-blue-400">provider</span>: <span className="text-green-400">&quot;elevenlabs&quot;</span>,{'\n'}
231
- {" "}<span className="text-blue-400">endpoint</span>: <span className="text-green-400">&quot;tts&quot;</span>,{'\n'}
232
- {" "}<span className="text-blue-400">params</span>: {'{\n'}
233
- {" "}<span className="text-blue-400">text</span>: <span className="text-green-400">&quot;Hello, I am an AI agent!&quot;</span>,{'\n'}
234
- {" "}<span className="text-blue-400">voice</span>: <span className="text-green-400">&quot;adam&quot;</span>{'\n'}
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">&quot;elevenlabs&quot;</span>,{'\n'}
258
+ {" "}<span className="text-sky-600 dark:text-sky-400">endpoint</span>: <span className="text-emerald-600 dark:text-emerald-400">&quot;tts&quot;</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">&quot;Hello, I am an AI agent!&quot;</span>,{'\n'}
261
+ {" "}<span className="text-sky-600 dark:text-sky-400">voice</span>: <span className="text-emerald-600 dark:text-emerald-400">&quot;adam&quot;</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-red-400">🤝</span> For API Providers
273
+ <span className="text-[var(--accent)]">🤝</span> For API Providers
247
274
  </h2>
248
- <div className="bg-gradient-to-r from-red-500/10 to-orange-500/10 border border-red-500/20 rounded-xl p-6">
249
- <p className="text-gray-300 mb-4">
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-gray-400 space-y-2 mb-6">
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-red-500 to-orange-500 rounded-lg font-semibold hover:opacity-90 transition-opacity"
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-red-400">💬</span> Support
297
+ <span className="text-[var(--accent)]">💬</span> Support
271
298
  </h2>
272
- <div className="bg-[#12121a] border border-white/10 rounded-xl p-6">
273
- <p className="text-gray-400 mb-4">Need help? Reach out:</p>
274
- <ul className="space-y-2 text-gray-300">
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/SymbotAPI_bot" className="text-orange-400 hover:underline">@SymbotAPI_bot</a>
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-orange-400 hover:underline">Issues</a>
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-orange-400 hover:underline">gustav@nordsym.com</a>
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-white/10 py-8 mt-16">
294
- <div className="max-w-6xl mx-auto px-6 text-center text-gray-500">
295
- <p>🦞 APIClaw by <a href="https://nordsym.com" className="text-orange-400 hover:underline">NordSym</a></p>
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>