API KEY
FINTECH TESTING
Plaid Sandbox gives your agent Plaid's test environment: create test Items without Plaid Link, add custom transactions, fire test webhooks, force login and verification states, and read accounts, balances, and transactions from test banks.
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);
// Plaid Sandbox tools scoped to this user
const { tools } = await sk.tools.listScopedTools("user_123", {
filter: { connectionNames: ["plaidsandbox"], toolNames: [
"plaidsandbox_sandbox_public_token_create",
"plaidsandbox_item_public_token_exchange",
"plaidsandbox_transactions_sync"] },
pageSize: 100,
});
const agent = createReactAgent({ llm, tools });
await agent.invoke({ messages: [{ role: "user", content: "Create a test Item at First Platypus Bank and sync its transactions" }] });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: ["plaidsandbox"] }, pageSize: 100,
});
const res = await openai.chat.completions.create({
model: "gpt-5",
messages: [{ role: "user", content: "Create a test Item at First Platypus Bank and sync its transactions" }],
tools,
});
// Execute the tool call with the user's vaulted Plaid Sandbox 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: ["plaidsandbox"] }, pageSize: 100,
});
const msg = await anthropic.messages.create({
model: "claude-sonnet-5",
max_tokens: 1024,
messages: [{ role: "user", content: "Create a test Item at First Platypus Bank and sync its transactions" }],
tools,
});
// Tool call runs with the user's vaulted Plaid Sandbox 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: ["plaidsandbox"] }, pageSize: 100,
});
const agent = new Agent({
name: "sandbox_test_agent",
model: "gemini-2.5-pro",
instruction: "Plaid Sandbox tools scoped to this user",
tools,
});
await agent.run("Create a test Item at First Platypus Bank and sync its transactions");// shared key
audit → bot_service_account
// scalekit
audit → user_abc ✓