API KEY
DATA LOOKUPS
API Ninjas gives your agent quick data lookups: weather and forecasts, currency, stock, and crypto prices, geocoding and timezones, domain, DNS, and IP checks, email and phone validation, and text tools such as sentiment and language detection.
For more tools, view docs.
import { ScalekitClient } from "@scalekit-sdk/node";
import { createReactAgent } from "@langchain/langgraph/prebuilt";
const sk = new ScalekitClient(env.SCALEKIT_ENV_URL, env.SCALEKIT_CLIENT_ID, env.SCALEKIT_CLIENT_SECRET);
// API Ninjas tools scoped to this user
const { tools } = await sk.tools.listScopedTools("user_123", {
filter: { connectionNames: ["apininjas"], toolNames: [
"apininjas_geocode",
"apininjas_get_weather_forecast",
"apininjas_get_world_time"] },
pageSize: 100,
});
const agent = createReactAgent({ llm, tools });
await agent.invoke({ messages: [{ role: "user", content: "Get the 5-day forecast and local time for our Berlin offsite" }] });import OpenAI from "openai";
import { ScalekitClient } from "@scalekit-sdk/node";
const sk = new ScalekitClient(env.SCALEKIT_ENV_URL, env.SCALEKIT_CLIENT_ID, env.SCALEKIT_CLIENT_SECRET);
const openai = new OpenAI();
const { tools } = await sk.tools.listScopedTools("user_123", {
filter: { connectionNames: ["apininjas"] }, pageSize: 100,
});
const res = await openai.chat.completions.create({
model: "gpt-5",
messages: [{ role: "user", content: "Get the 5-day forecast and local time for our Berlin offsite" }],
tools,
});
// Execute the tool call with the user's vaulted API Ninjas API key
await sk.tools.executeTool(res.choices[0].message.tool_calls[0], "user_123");import Anthropic from "@anthropic-ai/sdk";
import { ScalekitClient } from "@scalekit-sdk/node";
const sk = new ScalekitClient(env.SCALEKIT_ENV_URL, env.SCALEKIT_CLIENT_ID, env.SCALEKIT_CLIENT_SECRET);
const anthropic = new Anthropic();
const { tools } = await sk.tools.listScopedTools("user_123", {
filter: { connectionNames: ["apininjas"] }, pageSize: 100,
});
const msg = await anthropic.messages.create({
model: "claude-sonnet-5",
max_tokens: 1024,
messages: [{ role: "user", content: "Get the 5-day forecast and local time for our Berlin offsite" }],
tools,
});
// Tool call runs with the user's vaulted API Ninjas API key
await sk.tools.executeTool(msg.content, "user_123");import { Agent } from "@google/adk/agents";
import { ScalekitClient } from "@scalekit-sdk/node";
const sk = new ScalekitClient(env.SCALEKIT_ENV_URL, env.SCALEKIT_CLIENT_ID, env.SCALEKIT_CLIENT_SECRET);
const { tools } = await sk.tools.listScopedTools("user_123", {
filter: { connectionNames: ["apininjas"] }, pageSize: 100,
});
const agent = new Agent({
name: "research_agent",
model: "gemini-2.5-pro",
instruction: "API Ninjas tools scoped to this user",
tools,
});
await agent.run("Get the 5-day forecast and local time for our Berlin offsite");// shared key
audit → bot_service_account
// scalekit
audit → user_abc ✓