Official Python SDK for Agent Index - The discovery layer for x402 AI agents
Project description
agentindex
The official Python SDK for Agent Index — the discovery layer for x402 AI agents.
Installation
pip install agentindex
With LangChain support:
pip install agentindex[langchain]
Quick Start
from agentindex import AgentIndex
client = AgentIndex()
# Search for crypto price agents
results = client.search("crypto price")
for agent in results.results:
print(f"{agent.description} - ${agent.price_usd}/call")
# Get trending agents
trending = client.trending()
print(trending.trending)
Async Support
import asyncio
from agentindex import AsyncAgentIndex
async def main():
async with AsyncAgentIndex() as client:
results = await client.search("weather forecast")
print(results.results)
asyncio.run(main())
API Reference
Constructor
client = AgentIndex(
base_url="https://api.theagentindex.app", # default
timeout=10.0, # default, in seconds
)
Methods
search() — Search for agents
results = client.search(
query="crypto price", # required
category="crypto", # optional: crypto, defi, ai, weather, news, oracle
max_price=0.05, # optional: max USD per call
limit=20, # optional: default 10, max 50
)
# results.count - total matches
# results.results - list of Agent objects
trending() — Get trending agents
trending = client.trending()
for agent in trending.trending:
print(agent.description)
health() — Check API status
health = client.health()
print(f"Status: {health.status}")
recommend() — AI-powered recommendations
⚡ Premium endpoint — requires x402 payment ($0.005/call)
recs = client.recommend(
use_case="I need real-time crypto prices for my trading bot",
max_price=0.02,
limit=5,
)
analytics() — Endpoint analytics
⚡ Premium endpoint — requires x402 payment ($0.01/call)
analytics = client.analytics(
target="crypto", # category or agent ID
period="7d", # 24h, 7d, or 30d
)
print(f"Total calls: {analytics.total_calls}")
Models
class Agent:
id: str # Unique identifier
url: str # Endpoint URL
domain: str # Domain name
description: str # Capabilities
price_usd: float # Price per call
category: str # Category
health: str # healthy, degraded, down, unknown
tier: str # A, B, C, D
score: int # Trust score (0-100)
LangChain Integration
from agentindex import create_langchain_tool
# Create a tool for your LangChain agent
tool = create_langchain_tool()
# Use in your agent
from langchain.agents import AgentExecutor
# ... add tool to your agent
Quick Search
One-liner convenience function:
from agentindex import search
agents = search("crypto prices", category="defi")
Examples
Find the cheapest agent
from agentindex import AgentIndex
with AgentIndex() as client:
results = client.search("crypto price", category="crypto", max_price=0.01)
# Sort by price
cheapest = sorted(results.results, key=lambda a: a.price_usd)
print(f"Cheapest: {cheapest[0].url} at ${cheapest[0].price_usd}/call")
Filter healthy agents only
results = client.search("weather")
healthy = [a for a in results.results if a.health == "healthy"]
print(f"{len(healthy)} healthy agents found")
Build an agent that finds other agents
from agentindex import AgentIndex
def find_best_agent(capability: str) -> str:
"""Find the best agent for a capability."""
with AgentIndex() as client:
results = client.search(capability, limit=5)
# Pick best healthy agent by score
healthy = [a for a in results.results if a.health == "healthy"]
if not healthy:
raise ValueError(f"No healthy agent found for: {capability}")
best = max(healthy, key=lambda a: a.score)
return best.url
# Your AI can now dynamically find tools
weather_api = find_best_agent("weather forecast")
print(f"Using: {weather_api}")
Error Handling
from agentindex import AgentIndex, AgentIndexError
client = AgentIndex()
try:
results = client.search("test")
except AgentIndexError as e:
print(f"API Error: {e.message}")
print(f"Status: {e.status_code}")
Rate Limits
- Free tier: 100 requests/minute
- Premium endpoints: Unlimited (pay-per-call via x402)
Support
- 📖 Documentation
- 💬 Discord
- 🐛 Issues
License
MIT © 402 Agent Inc
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 agentindex-1.0.0.tar.gz.
File metadata
- Download URL: agentindex-1.0.0.tar.gz
- Upload date:
- Size: 6.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a9c68d785464e8e19f3fb386655e722556698a703ec40590c38223c048cb8c12
|
|
| MD5 |
f2af7da91c7c14667b6decb0ff9d3bc7
|
|
| BLAKE2b-256 |
280fedac31b08efc9f76637489bca659c1d60901fb1b878fd240b1dc594ea5e2
|
File details
Details for the file agentindex-1.0.0-py3-none-any.whl.
File metadata
- Download URL: agentindex-1.0.0-py3-none-any.whl
- Upload date:
- Size: 8.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
69d82e8ca6b25e9abdd55f99e5a3b9a7fda0d49dfc28908d8d56a535f3e0d498
|
|
| MD5 |
d1f9ce87d7c36744d1fc168ec6406a5e
|
|
| BLAKE2b-256 |
7a5fcdde388447357a4016738c0adc351e9bd34f1d7fb4af948367a82ca201c5
|