What is CrewAI?
Framework for orchestrating autonomous AI agents that collaborate to complete tasks. Supports multi-agent crews with defined roles.
Searching X (Twitter) with CrewAI
This integration lets your CrewAI agent search X (Twitter) in real time via the Scavio API. The agent gets back structured JSON with post text, author handles, created_at timestamps, favorites, retweets, replies, quotes -- ready for reasoning and decision-making.
Setup
pip install crewai requestsCode Example
Here is a complete CrewAI agent that searches X (Twitter) using Scavio:
from crewai import Agent, Task, Crew
from crewai.tools import tool
import json
import os
import requests
# X takes search (not query). search_type is one of Top, Latest, People, Photos, Videos.
@tool("Scavio Search")
def scavio_search(query: str) -> str:
"""Query X (Twitter) through the Scavio API (POST /api/v1/x/search)."""
response = requests.post(
"https://api.scavio.dev/api/v1/x/search",
headers={
"Authorization": "Bearer " + os.environ["SCAVIO_API_KEY"],
"Content-Type": "application/json",
},
json={"search": query, "search_type": "Latest"},
timeout=60,
)
response.raise_for_status()
return json.dumps(response.json())
researcher = Agent(
role="X (Twitter) Research Specialist",
goal="Find accurate, up-to-date information using X (Twitter) data",
backstory="You are an expert researcher with access to real-time search data.",
tools=[scavio_search],
)
task = Task(
description="Research: AI agents",
expected_output="A detailed summary with sources",
agent=researcher,
)
crew = Crew(agents=[researcher], tasks=[task])
result = crew.kickoff()
print(result)Full Working Example
A production-ready example with error handling:
from crewai import Agent, Task, Crew
from crewai.tools import tool
import json
import os
import requests
# X takes search (not query). search_type is one of Top, Latest, People, Photos, Videos.
@tool("Scavio Search")
def scavio_search(query: str) -> str:
"""Query X (Twitter) through the Scavio API (POST /api/v1/x/search)."""
response = requests.post(
"https://api.scavio.dev/api/v1/x/search",
headers={
"Authorization": "Bearer " + os.environ["SCAVIO_API_KEY"],
"Content-Type": "application/json",
},
json={"search": query, "search_type": "Latest"},
timeout=60,
)
response.raise_for_status()
return json.dumps(response.json())
researcher = Agent(
role="X (Twitter) Research Specialist",
goal="Find accurate, up-to-date information",
backstory="Expert researcher with real-time search access.",
tools=[scavio_search],
)
task = Task(
description="Research: AI agents",
expected_output="Detailed summary with key findings and sources",
agent=researcher,
)
crew = Crew(agents=[researcher], tasks=[task], verbose=True)
result = crew.kickoff()
print(result)Pricing
Scavio offers a free tier with 50 credits on signup (1 credit per search). No credit card required. This is enough to build and test your CrewAI integration. Paid plans start at $30/month for higher volumes.