LangChain integration for APIVerve - Access 310+ utility APIs for AI agents
Project description
langchain-apiverve
LangChain integration for APIVerve - Access 310+ utility APIs for AI agents and LLM applications.
Build powerful AI agents with access to validation, conversion, generation, analysis, and lookup APIs.
Features
- 310+ APIs - Email validation, DNS lookup, IP geolocation, QR codes, currency conversion, and more
- 29 Categories - Data Lookup, News, Domain Data, Data Conversion, Entertainment, and more
- LangChain Native - Works with any LangChain agent or chain
- Type Safe - Full Pydantic schemas for inputs and outputs
- Async Support - Both sync and async API calls
- Flexible - Use individual tools or the "run any" meta-tool
Installation
pip install langchain-apiverve
Quick Start
from langchain_apiverve import APIVerveToolkit
from langchain_openai import ChatOpenAI
from langchain.agents import create_tool_calling_agent, AgentExecutor
from langchain_core.prompts import ChatPromptTemplate
# Initialize toolkit with your API key
toolkit = APIVerveToolkit(api_key="your-api-key")
# Or set APIVERVE_API_KEY environment variable
# Get tools
tools = toolkit.get_tools()
# Create an agent
llm = ChatOpenAI(model="gpt-4")
prompt = ChatPromptTemplate.from_messages([
("system", "You are a helpful assistant with access to various utility APIs."),
("human", "{input}"),
("placeholder", "{agent_scratchpad}"),
])
agent = create_tool_calling_agent(llm, tools, prompt)
executor = AgentExecutor(agent=agent, tools=tools, verbose=True)
# Use the agent
result = executor.invoke({"input": "Is test@example.com a valid email?"})
print(result["output"])
Usage Examples
Using Individual Tools
from langchain_apiverve import APIVerveToolkit
toolkit = APIVerveToolkit(api_key="your-api-key")
# Get specific tools
tools = toolkit.get_tools(include_apis=["emailvalidator", "dnslookup"])
# Use a tool directly
email_tool = tools[0]
result = email_tool.invoke({"email": "user@example.com"})
print(result)
Using the "Run Any" Tool
from langchain_apiverve import APIVerveToolkit
toolkit = APIVerveToolkit(api_key="your-api-key")
# Get the flexible run-any tool
run_any = toolkit.get_run_any_tool()
# Call any API dynamically
result = run_any.invoke({
"api_id": "qrcodegenerator",
"parameters": {"value": "https://example.com"}
})
print(result)
Filtering Tools by Category
from langchain_apiverve import APIVerveToolkit
toolkit = APIVerveToolkit(api_key="your-api-key")
# Get only validation tools
validation_tools = toolkit.get_tools(categories=["Validation"])
# Get only lookup tools
lookup_tools = toolkit.get_tools(categories=["Lookup"])
Low-Level Client Usage
from langchain_apiverve import APIVerveClient
client = APIVerveClient(api_key="your-api-key")
# Make API calls directly
result = client.call_api("emailvalidator", {"email": "test@example.com"})
print(result)
# Async usage
import asyncio
async def main():
result = await client.acall_api("dnslookup", {"domain": "example.com"})
print(result)
asyncio.run(main())
Available APIs
APIVerve provides 310+ APIs across 29 categories:
| Category | APIs | Examples |
|---|---|---|
| Data Lookup | 15 | World Time, Thesaurus, Emoji Lookup |
| News | 1 | World News |
| Domain Data | 15 | DNS Lookup, WHOIS Lookup, SSL Certificate Checker |
| Data Conversion | 32 | Unit Converter, Number to Words, Words to Numbers |
| Entertainment | 24 | Chuck Norris Jokes, Historical Events, Random Facts |
| Weather | 8 | Air Quality, Marine Weather, Weather |
| Science | 4 | Meteorite Landings, Stars Lookup, Periodic Table |
| Finance | 13 | Mortgage Calculator, Loan Calculator, Currency Symbols |
| Transportation | 4 | Airports Lookup, Airline Lookup, Car Models |
| Data Generation | 32 | Baby Name Generator, Random Word, Random User Generator |
API Response Format
All APIVerve APIs return a consistent response format:
{
"status": "ok",
"error": null,
"data": {
// API-specific response data
}
}
Configuration
Environment Variables
| Variable | Description |
|---|---|
APIVERVE_API_KEY |
Your APIVerve API key |
Toolkit Options
toolkit = APIVerveToolkit(
api_key="...", # API key (or use env var)
base_url="...", # Custom API base URL
)
tools = toolkit.get_tools(
categories=["..."], # Filter by category
include_apis=["..."], # Only include specific APIs
exclude_apis=["..."], # Exclude specific APIs
include_run_any=True, # Include the "run any" tool
include_popular=True, # Include pre-built popular tools
)
Development
Setup
# Clone the repository
git clone https://github.com/apiverve/langchain-apiverve.git
cd langchain-apiverve
# Install with Poetry
poetry install
# Or with pip
pip install -e ".[dev]"
Running Tests
pytest
Linting
ruff check .
mypy src/
Resources
| Resource | Link |
|---|---|
| APIVerve Website | apiverve.com |
| API Documentation | docs.apiverve.com |
| API Marketplace | apiverve.com/marketplace |
| LangChain Docs | python.langchain.com |
| GitHub Issues | github.com/apiverve/langchain-apiverve/issues |
License
MIT License - see LICENSE for details.
Copyright (c) 2025 APIVerve
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file langchain_apiverve-0.1.0.tar.gz.
File metadata
- Download URL: langchain_apiverve-0.1.0.tar.gz
- Upload date:
- Size: 9.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
371471ae2cc9f22b4a41146719045bd96f042e23b2a091c41b60cc62a6e34299
|
|
| MD5 |
289a87509b2af8e79de1c2095a74d40f
|
|
| BLAKE2b-256 |
8e01d320bd6e35ec0e944660bf689410367f6811fa858f3ab93801a459e215c3
|
File details
Details for the file langchain_apiverve-0.1.0-py3-none-any.whl.
File metadata
- Download URL: langchain_apiverve-0.1.0-py3-none-any.whl
- Upload date:
- Size: 11.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
7319fb3c0be5228c0e46c22c04d6671e7b1f2e9127c05b1a1094b190a7690a37
|
|
| MD5 |
57230f5a467503d4bb7a0985d9c46ffd
|
|
| BLAKE2b-256 |
d2d50b0b7800be639896c5f68fb31d851ffb151015e9fe474582fbd35600c686
|