What is Semantic Kernel?
Microsoft's SDK for integrating LLMs into applications. Supports plugins, planners, and memory for building AI agents.
Searching X (Twitter) with Semantic Kernel
This integration lets your Semantic Kernel 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 semantic-kernel requestsCode Example
Here is a complete Semantic Kernel agent that searches X (Twitter) using Scavio:
import semantic_kernel as sk
from semantic_kernel.functions import kernel_function
import json
import os
import requests
# X takes search (not query). search_type is one of Top, Latest, People, Photos, Videos.
class ScavioPlugin:
@kernel_function(description="Query X (Twitter) using Scavio")
def search(self, query: str) -> str:
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())
kernel = sk.Kernel()
kernel.add_plugin(ScavioPlugin(), "scavio")Full Working Example
A production-ready example with error handling:
import semantic_kernel as sk
from semantic_kernel.functions import kernel_function
import json
import os
import requests
# X takes search (not query). search_type is one of Top, Latest, People, Photos, Videos.
class ScavioPlugin:
@kernel_function(description="Query X (Twitter) using Scavio")
def search(self, query: str) -> str:
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())
kernel = sk.Kernel()
kernel.add_plugin(ScavioPlugin(), "scavio")
result = await kernel.invoke("scavio", "search", query="AI agents")
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 Semantic Kernel integration. Paid plans start at $30/month for higher volumes.