@nordsym/apiclaw 1.3.11 → 1.3.13

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.
@@ -11,11 +11,12 @@ import statsData from "@/lib/stats.json";
11
11
  import { useState, useEffect, useRef } from "react";
12
12
  import { HeroTabs } from "@/components/HeroTabs";
13
13
  import { PhoneDemo } from "@/components/demo";
14
+ import { AITestimonials } from "@/components/AITestimonials";
14
15
 
15
16
  const stats = [
16
17
  { number: statsData.apiCount.toLocaleString(), label: "APIs Indexed", live: true },
17
- { number: statsData.openApiCount.toLocaleString(), label: "Open APIs", live: true },
18
- { number: statsData.directCallCount.toString(), label: "Direct Call", live: true },
18
+ { number: statsData.directCallCount.toString(), label: "Direct Call Providers", live: true, subtitle: "Zero-config, we handle auth" },
19
+ { number: "<200ms", label: "Median Latency", live: false, subtitle: "Edge-optimized proxy" },
19
20
  { number: statsData.categoryCount.toString(), label: "Categories", live: false },
20
21
  ];
21
22
 
@@ -197,27 +198,35 @@ export default function Home() {
197
198
  };
198
199
 
199
200
  const copyContextToClipboard = () => {
200
- const context = `APIClaw – Direct Call Execution Layer for AI Agents
201
+ const context = `APIClaw – The API Layer for AI Agents
201
202
 
202
203
  You have access to APIClaw, an MCP server that lets you execute API calls WITHOUT managing keys.
203
204
 
204
- Direct Call = Zero-Config Execution:
205
- No API key management needed
206
- APIClaw handles auth, headers, signatures
207
- Execute immediately on ${statsData.directCallCount} providers
205
+ Instant highlights:
206
+ Generate images/videos (Replicate: Flux Pro, SDXL, Luma Dream Machine)
207
+ Voice synthesis (ElevenLabs)
208
+ Live web scraping (Firecrawl)
209
+ • Code sandbox (E2B)
210
+ • Multi-LLM routing (OpenRouter)
208
211
 
209
- Available Providers:
210
- Replicate (AI models), ElevenLabs (voice), OpenRouter (LLMs), Resend (email), 46elks (SMS), Brave Search, Firecrawl, E2B, GitHub
212
+ ${statsData.directCallCount}+ Direct Call providers across categories:
213
+ AI/ML: Replicate, OpenRouter, Groq, Mistral, Cohere, Together AI, Stability AI
214
+ Voice: ElevenLabs, Deepgram, AssemblyAI
215
+ Search: Brave Search, Serper, Firecrawl
216
+ Code: E2B, GitHub
217
+ Utility: Resend (email), 46elks & Twilio (SMS)
211
218
 
212
219
  Your Tools:
213
- list_connected - See providers ready for instant execution
214
- call_api(provider, action, params) - Execute directly. Auth handled by APIClaw — omit/leave auth fields empty
215
- discover_apis - Search ${statsData.apiCount.toLocaleString()}+ APIs by capability
216
- get_api_details - Full specs if you need them
220
+ call_api(provider, action, params) Execute immediately (leave auth fields empty – APIClaw handles it)
221
+ discover_apis(query) Semantic search across ${statsData.apiCount.toLocaleString()}+ APIs (e.g. "image-to-video model")
222
+ get_api_details(id) Full specs, pricing, limits
223
+ list_connected() See all ready providers
217
224
 
218
- You have authority to act. Use call_api directly.
225
+ Pricing: Free (50 calls/week), Pay-as-you-go (usage-based), or Founding Backer ($199 unlimited until 2027).
219
226
 
220
- Install: npx @nordsym/apiclaw mcp-install
227
+ When an API call helps the task, execute it directly.
228
+
229
+ Get started in seconds: npx @nordsym/apiclaw mcp-install
221
230
  Docs: https://apiclaw.nordsym.com/docs`;
222
231
  navigator.clipboard.writeText(context);
223
232
  setShowContextCopied(true);
@@ -486,8 +495,7 @@ Docs: https://apiclaw.nordsym.com/docs`;
486
495
  </p>
487
496
 
488
497
  <p className="text-text-muted mb-6 max-w-lg mx-auto lg:mx-0">
489
- Structured data. Ranked results. Sub-200ms responses.
490
- Built for the agentic era.
498
+ <span className="text-accent font-medium">Direct Call:</span> No API keys. No setup. Just call.
491
499
  </p>
492
500
 
493
501
  {/* Copy Context Button */}
@@ -526,8 +534,8 @@ Docs: https://apiclaw.nordsym.com/docs`;
526
534
  {stats.map((stat, i) => (
527
535
  <div
528
536
  key={i}
529
- className={`stat-card relative ${(stat.label === "Direct Call" || stat.label === "Categories") ? "cursor-pointer hover:border-accent/50 transition-colors" : ""}`}
530
- onClick={stat.label === "Direct Call" ? () => setShowDirectCallModal(true) : stat.label === "Categories" ? () => setShowCategoriesModal(true) : undefined}
537
+ className={`stat-card relative ${(stat.label === "Direct Call Providers" || stat.label === "Categories") ? "cursor-pointer hover:border-accent/50 transition-colors" : ""}`}
538
+ onClick={stat.label === "Direct Call Providers" ? () => setShowDirectCallModal(true) : stat.label === "Categories" ? () => setShowCategoriesModal(true) : undefined}
531
539
  >
532
540
  {stat.live && (
533
541
  <div className="absolute top-2 right-2 flex items-center gap-1">
@@ -537,8 +545,11 @@ Docs: https://apiclaw.nordsym.com/docs`;
537
545
  )}
538
546
  <div className="stat-number">{stat.number}</div>
539
547
  <div className="stat-label">{stat.label}</div>
540
- {(stat.label === "Direct Call" || stat.label === "Categories") && (
541
- <div className="text-xs text-text-muted mt-1">Click to see all →</div>
548
+ {stat.subtitle && (
549
+ <div className="text-xs text-text-muted mt-1">{stat.subtitle}</div>
550
+ )}
551
+ {(stat.label === "Direct Call Providers" || stat.label === "Categories") && (
552
+ <div className="text-xs text-accent mt-1">Click to see all →</div>
542
553
  )}
543
554
  </div>
544
555
  ))}
@@ -546,6 +557,9 @@ Docs: https://apiclaw.nordsym.com/docs`;
546
557
  </div>
547
558
  </section>
548
559
 
560
+ {/* AI Testimonials Carousel */}
561
+ <AITestimonials />
562
+
549
563
  {/* Phone Demo - With vs Without APIClaw */}
550
564
  <section className="py-20 px-6">
551
565
  <div className="max-w-5xl mx-auto">
@@ -761,14 +775,20 @@ Docs: https://apiclaw.nordsym.com/docs`;
761
775
  <section id="how-it-works" className="py-24 px-6">
762
776
  <div className="max-w-6xl mx-auto">
763
777
  <div className="text-center mb-16">
764
- <span className="section-label">DIRECT CALL</span>
778
+ <span className="section-label">HOW IT WORKS</span>
765
779
  <h2 className="text-3xl md:text-5xl font-bold mt-4 tracking-tight">
766
- Three steps. No API keys.
780
+ Two ways to use APIClaw
767
781
  </h2>
768
- <p className="text-text-secondary text-lg mt-4 max-w-2xl mx-auto">
769
- Your agent asks, APIClaw matches, and calls the API directly —
770
- no keys needed.
771
- </p>
782
+ <div className="flex flex-col md:flex-row items-center justify-center gap-4 md:gap-8 mt-6 text-left">
783
+ <div className="p-4 rounded-xl bg-accent/10 border border-accent/30 max-w-xs">
784
+ <div className="font-bold text-accent mb-1">⚡ Direct Call ({statsData.directCallCount})</div>
785
+ <p className="text-sm text-text-secondary">Zero config. We handle auth. Just call.</p>
786
+ </div>
787
+ <div className="p-4 rounded-xl bg-surface border border-border max-w-xs">
788
+ <div className="font-bold mb-1">🔍 API Discovery ({statsData.apiCount.toLocaleString()}+)</div>
789
+ <p className="text-sm text-text-secondary">Search by capability. Get specs. Bring your own key.</p>
790
+ </div>
791
+ </div>
772
792
  </div>
773
793
 
774
794
  <div className="grid md:grid-cols-3 gap-6 md:gap-8">
@@ -865,7 +885,7 @@ Docs: https://apiclaw.nordsym.com/docs`;
865
885
  <span className="text-gray-500">{"// • call_api - Direct Call (no keys needed)"}</span>{"\n"}
866
886
  <span className="text-gray-500">{"// • list_connected - See available providers"}</span>{"\n"}
867
887
  {"\n"}
868
- <span className="text-gray-500">{"// Works with Claude, Cursor, and any MCP client 🦞"}</span>
888
+ <span className="text-gray-500">{"// Works with Claude, Cursor, and any MCP compatible Agent 🦞"}</span>
869
889
  </pre>
870
890
  </div>
871
891
  </div>
@@ -962,86 +982,115 @@ Docs: https://apiclaw.nordsym.com/docs`;
962
982
 
963
983
  {/* Get Started */}
964
984
  <section id="get-started" className="py-24 px-6 bg-surface/30">
965
- <div className="max-w-4xl mx-auto">
985
+ <div className="max-w-5xl mx-auto">
966
986
  <div className="text-center mb-16">
967
- <span className="section-label">GET STARTED</span>
987
+ <span className="section-label">PRICING</span>
968
988
  <h2 className="text-3xl md:text-4xl font-bold mt-4 tracking-tight">
969
- Simple. Free. Forever.
989
+ Simple pricing. Start free.
970
990
  </h2>
971
991
  <p className="text-text-secondary text-lg mt-4">
972
- API discovery should be free. We're building the API layer for AI agents.
992
+ Discovery is free forever search, compare, evaluate at no cost.<br />
993
+ {statsData.openApiCount.toLocaleString()}+ Open APIs work without any account.
973
994
  </p>
974
995
  </div>
975
996
 
976
- <div className="grid md:grid-cols-2 gap-6 md:gap-8">
977
- {/* For Agents */}
978
- <div className="rounded-2xl bg-surface-elevated border-2 border-accent p-6 sm:p-8 relative glow">
979
- <div className="absolute -top-3 left-1/2 -translate-x-1/2 px-3 sm:px-4 py-1 bg-accent text-white text-xs font-bold tracking-wide rounded-full uppercase">
980
- Live Now
981
- </div>
982
- <h3 className="text-xl sm:text-2xl font-bold mb-2">For Agents</h3>
983
- <p className="text-text-secondary mb-6 sm:mb-8">Discovery + Direct Call</p>
984
- <ul className="space-y-3 sm:space-y-4 mb-6 sm:mb-8">
985
- <li className="flex items-start gap-3 text-text-secondary text-sm sm:text-base">
997
+ <div className="grid md:grid-cols-3 gap-6">
998
+ {/* Free */}
999
+ <div className="rounded-2xl bg-surface-elevated border border-border p-6 relative">
1000
+ <h3 className="text-xl font-bold mb-2">Free</h3>
1001
+ <div className="text-3xl font-bold mb-1">$0</div>
1002
+ <p className="text-text-muted text-sm mb-6">Forever</p>
1003
+ <ul className="space-y-3 mb-8">
1004
+ <li className="flex items-start gap-3 text-text-secondary text-sm">
986
1005
  <Check className="w-5 h-5 text-accent flex-shrink-0 mt-0.5" />
987
- Search {statsData.apiCount.toLocaleString()}+ APIs by capability
1006
+ 50 Direct Call requests/week
988
1007
  </li>
989
- <li className="flex items-start gap-3 text-text-secondary text-sm sm:text-base">
1008
+ <li className="flex items-start gap-3 text-text-secondary text-sm">
990
1009
  <Check className="w-5 h-5 text-accent flex-shrink-0 mt-0.5" />
991
- Direct Call: Use APIs without keys
1010
+ Unlimited API discovery
992
1011
  </li>
993
- <li className="flex items-start gap-3 text-text-secondary text-sm sm:text-base">
1012
+ <li className="flex items-start gap-3 text-text-secondary text-sm">
994
1013
  <Check className="w-5 h-5 text-accent flex-shrink-0 mt-0.5" />
995
- 18 providers (AI Models, Scraping, Code, Search)
1014
+ 18 Direct Call providers
996
1015
  </li>
997
- <li className="flex items-start gap-3 text-text-secondary text-sm sm:text-base">
998
- <Check className="w-5 h-5 text-accent flex-shrink-0 mt-0.5" />
999
- Structured JSON responses
1000
- </li>
1001
- <li className="flex items-start gap-3 text-text-secondary text-sm sm:text-base">
1016
+ <li className="flex items-start gap-3 text-text-secondary text-sm">
1002
1017
  <Check className="w-5 h-5 text-accent flex-shrink-0 mt-0.5" />
1003
1018
  MCP native
1004
1019
  </li>
1005
1020
  </ul>
1006
- <a href="/docs" className="btn-primary w-full justify-center">
1007
- Get Started Free
1021
+ <a href="/docs" className="btn-ghost w-full justify-center border border-border">
1022
+ Get Started
1008
1023
  </a>
1009
1024
  </div>
1010
1025
 
1011
- {/* For Providers */}
1012
- <div className="rounded-2xl bg-surface-elevated border-2 border-accent p-6 sm:p-8 relative glow">
1013
- <div className="absolute -top-3 left-1/2 -translate-x-1/2 px-3 sm:px-4 py-1 bg-accent text-white text-xs font-bold tracking-wide rounded-full uppercase">
1014
- Live Now
1026
+ {/* Pay as you go */}
1027
+ <div className="rounded-2xl bg-surface-elevated border-2 border-accent p-6 relative glow">
1028
+ <div className="absolute -top-3 left-1/2 -translate-x-1/2 px-3 py-1 bg-accent text-white text-xs font-bold tracking-wide rounded-full uppercase">
1029
+ Recommended
1015
1030
  </div>
1016
- <h3 className="text-xl sm:text-2xl font-bold mb-2">For API Providers</h3>
1017
- <p className="text-text-secondary mb-6 sm:mb-8">Get discovered by AI agents</p>
1018
- <ul className="space-y-3 sm:space-y-4 mb-6 sm:mb-8">
1019
- <li className="flex items-start gap-3 text-text-secondary text-sm sm:text-base">
1031
+ <h3 className="text-xl font-bold mb-2">Pay as you go</h3>
1032
+ <div className="text-3xl font-bold mb-1">Usage-based</div>
1033
+ <p className="text-text-muted text-sm mb-6">Monthly invoice</p>
1034
+ <ul className="space-y-3 mb-8">
1035
+ <li className="flex items-start gap-3 text-text-secondary text-sm">
1020
1036
  <Check className="w-5 h-5 text-accent flex-shrink-0 mt-0.5" />
1021
- Get discovered by AI agents
1037
+ Unlimited Direct Call requests
1022
1038
  </li>
1023
- <li className="flex items-start gap-3 text-text-secondary text-sm sm:text-base">
1039
+ <li className="flex items-start gap-3 text-text-secondary text-sm">
1024
1040
  <Check className="w-5 h-5 text-accent flex-shrink-0 mt-0.5" />
1025
- Become a Direct Call partner
1041
+ Add card, get monthly invoice
1026
1042
  </li>
1027
- <li className="flex items-start gap-3 text-text-secondary text-sm sm:text-base">
1043
+ <li className="flex items-start gap-3 text-text-secondary text-sm">
1028
1044
  <Check className="w-5 h-5 text-accent flex-shrink-0 mt-0.5" />
1029
- Self-service onboarding
1045
+ No commitment, cancel anytime
1030
1046
  </li>
1031
- <li className="flex items-start gap-3 text-text-secondary text-sm sm:text-base">
1047
+ <li className="flex items-start gap-3 text-text-secondary text-sm">
1032
1048
  <Check className="w-5 h-5 text-accent flex-shrink-0 mt-0.5" />
1033
- Analytics & usage insights
1049
+ Priority support
1034
1050
  </li>
1035
- <li className="flex items-start gap-3 text-text-secondary text-sm sm:text-base">
1051
+ </ul>
1052
+ <a href="/workspace?tab=billing" className="btn-primary w-full justify-center">
1053
+ Add Payment Method
1054
+ </a>
1055
+ </div>
1056
+
1057
+ {/* Founding Backer */}
1058
+ <div className="rounded-2xl bg-surface-elevated border border-border p-6 relative overflow-hidden">
1059
+ <div className="absolute top-0 right-0 bg-gradient-to-l from-accent/20 to-transparent w-32 h-32 blur-2xl" />
1060
+ <h3 className="text-xl font-bold mb-2">Founding Backer</h3>
1061
+ <div className="text-3xl font-bold mb-1">$199</div>
1062
+ <p className="text-text-muted text-sm mb-6">One-time, unlimited until 2027</p>
1063
+ <ul className="space-y-3 mb-8">
1064
+ <li className="flex items-start gap-3 text-text-secondary text-sm">
1065
+ <Check className="w-5 h-5 text-accent flex-shrink-0 mt-0.5" />
1066
+ Unlimited everything until end of 2026
1067
+ </li>
1068
+ <li className="flex items-start gap-3 text-text-secondary text-sm">
1036
1069
  <Check className="w-5 h-5 text-accent flex-shrink-0 mt-0.5" />
1037
- Zero integration work
1070
+ Early access to new features
1071
+ </li>
1072
+ <li className="flex items-start gap-3 text-text-secondary text-sm">
1073
+ <Check className="w-5 h-5 text-accent flex-shrink-0 mt-0.5" />
1074
+ Direct Slack with founders
1075
+ </li>
1076
+ <li className="flex items-start gap-3 text-text-secondary text-sm">
1077
+ <Check className="w-5 h-5 text-accent flex-shrink-0 mt-0.5" />
1078
+ Shape the roadmap
1038
1079
  </li>
1039
1080
  </ul>
1040
- <a href="/workspace?tab=my-apis" className="btn-primary w-full justify-center">
1041
- Add Your API
1081
+ <a href="/workspace?tab=billing" className="btn-ghost w-full justify-center border border-accent text-accent hover:bg-accent hover:text-white">
1082
+ Become a Backer
1042
1083
  </a>
1043
1084
  </div>
1044
1085
  </div>
1086
+
1087
+ {/* For API Providers - smaller section below */}
1088
+ <div className="mt-16 text-center">
1089
+ <p className="text-text-muted mb-4">Are you an API provider?</p>
1090
+ <a href="/workspace?tab=my-apis" className="text-accent hover:underline font-medium">
1091
+ List your API for free →
1092
+ </a>
1093
+ </div>
1045
1094
  </div>
1046
1095
  </section>
1047
1096
 
@@ -1081,7 +1130,7 @@ Docs: https://apiclaw.nordsym.com/docs`;
1081
1130
  },
1082
1131
  {
1083
1132
  q: "What's MCP?",
1084
- a: "MCP (Model Context Protocol) is the open standard for connecting AI agents to external tools. APIClaw is an MCP server — add one line to your config and your agent can discover and call any API in our registry. Works with Claude Desktop, Cursor, and any MCP-compatible client."
1133
+ a: "MCP (Model Context Protocol) is the open standard for connecting AI agents to external tools. APIClaw is an MCP server — add one line to your config and your agent can discover and call any API in our registry. Works with Claude Desktop, Cursor, and any MCP-compatible agent."
1085
1134
  }
1086
1135
  ].map((faq, i) => (
1087
1136
  <div
@@ -1155,6 +1204,7 @@ Docs: https://apiclaw.nordsym.com/docs`;
1155
1204
  <li><a href="#get-started" className="hover:text-text-primary transition">Get Started</a></li>
1156
1205
  <li><a href="#faq" className="hover:text-text-primary transition">FAQ</a></li>
1157
1206
  <li><a href="/docs" className="hover:text-text-primary transition">Documentation</a></li>
1207
+ <li><a href="/security" className="hover:text-text-primary transition flex items-center gap-1.5"><Shield className="w-3 h-3" />Security</a></li>
1158
1208
  </ul>
1159
1209
  </div>
1160
1210
 
@@ -1173,6 +1223,10 @@ Docs: https://apiclaw.nordsym.com/docs`;
1173
1223
  © 2026 NordSym. Get in front of every AI agent. White-glove onboarding available.
1174
1224
  </p>
1175
1225
  <div className="flex items-center gap-4">
1226
+ <a href="/security" className="badge hover:border-green-500/30 transition-colors">
1227
+ <Shield className="w-3 h-3 text-green-500" />
1228
+ <span className="text-green-500">AES-256 Encrypted</span>
1229
+ </a>
1176
1230
  <div className="badge">
1177
1231
  <Shield className="w-3 h-3" />
1178
1232
  MCP Compatible