Framework integrations
Synoppy plugs into the agent frameworks you already use. Each integration exposes all nine endpoints as ready-made tools — read, search, crawl, map, extract, classify, enrich, images, and screenshot — so your agent gets the whole web on one key. They wrap the official SDKs, so results and credit accounting match the HTTP API exactly.
Prefer Claude Desktop, Cursor, or another MCP client? Use the MCP server instead — the same nine tools, zero code.
Vercel AI SDK
synoppyTools() returns every endpoint as an AI SDK tool — spread it straight into generateText or streamText.
npm install @synoppy/ai-sdk ai zod
import { generateText } from "ai";
import { openai } from "@ai-sdk/openai";
import { synoppyTools } from "@synoppy/ai-sdk";
const { text } = await generateText({
model: openai("gpt-4o"),
tools: synoppyTools({ apiKey: process.env.SYNOPPY_API_KEY }),
maxSteps: 5,
prompt: "Summarize the latest post on https://stripe.com/blog",
});LangChain (JavaScript)
npm install @synoppy/langchain @langchain/core zod
import { ChatOpenAI } from "@langchain/openai";
import { synoppyTools } from "@synoppy/langchain";
const tools = synoppyTools({ apiKey: process.env.SYNOPPY_API_KEY });
const model = new ChatOpenAI({ model: "gpt-4o" }).bindTools(tools);LangChain (Python)
pip install langchain-synoppy
from langchain_openai import ChatOpenAI
from langchain_synoppy import get_synoppy_tools
tools = get_synoppy_tools(api_key="syn_live_...")
model = ChatOpenAI(model="gpt-4o").bind_tools(tools)LlamaIndex
pip install llama-index-tools-synoppy
from llama_index.tools.synoppy import SynoppyToolSpec
tools = SynoppyToolSpec(api_key="syn_live_...").to_tool_list()CrewAI
pip install crewai-synoppy
from crewai import Agent
from crewai_synoppy import synoppy_tools
agent = Agent(
role="Web researcher",
goal="Find and summarize current information from the web",
backstory="Uses Synoppy to read and search the live web.",
tools=synoppy_tools(api_key="syn_live_..."),
)Every tool returns a compact result plus creditsUsed, and hands back { error, code } on failure so the model can read it and recover. For typed extraction (a JSON Schema), custom timeouts, or raw responses, use the SDKs directly. Grab a key in the dashboard to start.