Rank handles by project
curl --request POST \
--url https://api.kanarie.xyz/api/v1/content/top-handles-by-project \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"project_ids": [
1,
2
],
"ecosystems": [
"solana"
],
"categories": [
"defi"
],
"days_back": 30,
"limit": 20,
"included_attributes": [
"twitter_profile",
"recent_posts"
]
}
'const url = 'https://api.kanarie.xyz/api/v1/content/top-handles-by-project';
const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
project_ids: [1, 2],
ecosystems: ['solana'],
categories: ['defi'],
days_back: 30,
limit: 20,
included_attributes: ['twitter_profile', 'recent_posts']
})
};
fetch(url, options)
.then(res => res.json())
.then(json => console.log(json))
.catch(err => console.error(err));import requests
url = "https://api.kanarie.xyz/api/v1/content/top-handles-by-project"
payload = {
"project_ids": [1, 2],
"ecosystems": ["solana"],
"categories": ["defi"],
"days_back": 30,
"limit": 20,
"included_attributes": ["twitter_profile", "recent_posts"]
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text){
"success": true,
"error": null,
"data": [
{
"handle": "inversebrah",
"display_name": "Inverse Brah",
"total_relevance": 0.92,
"post_count": 9
}
],
"metadata": {
"project_ids": [
1
],
"total_results": 1
}
}{
"error": "Validation failed",
"details": [
"limit must be a number between 1 and 100"
]
}{
"error": "Missing API key. Expected Authorization: Bearer <api-key> or x-kanarie-api-key: <api-key>."
}{
"x402Version": 2,
"error": "Payment required",
"accepts": [
{}
]
}{
"error": "Invalid API key"
}{
"error": "Rate limit exceeded",
"limit": 123,
"plan": "casual",
"window": "15 minutes",
"retryAfter": 900
}{
"error": "Internal server error"
}Content
Rank handles by project
Rank Twitter/X handles mentioning matching projects, ecosystems, or categories. Supports API key auth or x402 fallback.
POST
https://api.kanarie.xyz
/
api
/
v1
/
content
/
top-handles-by-project
Rank handles by project
curl --request POST \
--url https://api.kanarie.xyz/api/v1/content/top-handles-by-project \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"project_ids": [
1,
2
],
"ecosystems": [
"solana"
],
"categories": [
"defi"
],
"days_back": 30,
"limit": 20,
"included_attributes": [
"twitter_profile",
"recent_posts"
]
}
'const url = 'https://api.kanarie.xyz/api/v1/content/top-handles-by-project';
const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
project_ids: [1, 2],
ecosystems: ['solana'],
categories: ['defi'],
days_back: 30,
limit: 20,
included_attributes: ['twitter_profile', 'recent_posts']
})
};
fetch(url, options)
.then(res => res.json())
.then(json => console.log(json))
.catch(err => console.error(err));import requests
url = "https://api.kanarie.xyz/api/v1/content/top-handles-by-project"
payload = {
"project_ids": [1, 2],
"ecosystems": ["solana"],
"categories": ["defi"],
"days_back": 30,
"limit": 20,
"included_attributes": ["twitter_profile", "recent_posts"]
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text){
"success": true,
"error": null,
"data": [
{
"handle": "inversebrah",
"display_name": "Inverse Brah",
"total_relevance": 0.92,
"post_count": 9
}
],
"metadata": {
"project_ids": [
1
],
"total_results": 1
}
}{
"error": "Validation failed",
"details": [
"limit must be a number between 1 and 100"
]
}{
"error": "Missing API key. Expected Authorization: Bearer <api-key> or x-kanarie-api-key: <api-key>."
}{
"x402Version": 2,
"error": "Payment required",
"accepts": [
{}
]
}{
"error": "Invalid API key"
}{
"error": "Rate limit exceeded",
"limit": 123,
"plan": "casual",
"window": "15 minutes",
"retryAfter": 900
}{
"error": "Internal server error"
}Authorizations
bearerAuthkanarieApiKey
Preferred Kanarie API key authentication using Authorization: Bearer .
Body
application/json
Maximum array length:
50Required range:
x >= 1Maximum array length:
5Maximum array length:
5Required range:
1 <= x <= 365Required range:
1 <= x <= 100Required range:
0 <= x <= 10000Available options:
total_relevance, total_sentiment, post_count, avg_relevance, follower_count Available options:
twitter_profile, recent_posts, project_breakdown Was this page helpful?