REST API for OpenRank data across Discord, GitHub, Telegram, and X
Use GET /discord to list all available datasets
dynamically
Use GET /github to list all available communities.
Endpoints use text-based community_id (e.g.,
"bitcoin").
Use GET /telegram to list all available channels.
Endpoints use numeric channel_id.
Use GET /x to list all available communities. Endpoints
use numeric community_id.
OpenRank Communities aggregate data from Telegram, Discord, GitHub, X, and Farcaster platforms
Get summaries for up to 100 different channels/communities.
For /scores endpoints, use these optional query parameters:
start - Starting index for pagination (default: 0)
size - Number of items to return (default: all)Each platform has a list endpoint that returns all available datasets dynamically.
List available Discord datasets:
curl https://api.openrank.com/discord
Response:
{
"datasets": ["ritual"]
}
List available GitHub communities:
curl https://api.openrank.com/github
Response:
{
"datasets": ["bitcoin", "crypto", "eigenlayer", "solana", ...]
}
List available Telegram channels:
curl https://api.openrank.com/telegram
Response:
{
"datasets": [
{ "id": "1234567890", "username": "examplechannel" },
...
]
}
List available X communities:
curl https://api.openrank.com/x
Response:
{
"datasets": [
{ "id": "1234567890", "name": "Example Community" },
...
]
}
Get complete Discord dataset:
curl https://api.openrank.com/discord/ritual
Response:
{
"category": "socialrank",
"server_id": "1210468736205852672",
"seed": [
{ "i": "josh.simenhoff", "v": 0.25 },
{ "i": "0xqt3.14", "v": 0.25 },
...
],
"scores": [
{ "i": "josh.simenhoff", "v": 1000.0 },
{ "i": "0xqt3.14", "v": 986.31 },
...
]
}
Get Discord server ID:
curl https://api.openrank.com/discord/ritual/server_id
Response:
{
"server_id": "1210468736205852672"
}
Get complete GitHub community data:
curl https://api.openrank.com/github/bitcoin
Response:
{
"category": "devrank",
"community_id": "bitcoin",
"seed": [
{ "i": "user_id_1", "v": 0.5 },
{ "i": "user_id_2", "v": 0.5 },
...
],
"scores": [
{ "i": "user_id_1", "v": 1.0 },
{ "i": "user_id_2", "v": 0.95 },
...
]
}
Get GitHub seed data:
curl https://api.openrank.com/github/bitcoin/seed
Response:
{
"seed": [
{ "i": "user_id_1", "v": 0.5 },
{ "i": "user_id_2", "v": 0.5 },
...
]
}
Get GitHub scores with pagination:
curl "https://api.openrank.com/github/bitcoin/scores?start=0&size=10"
Response:
{
"scores": [
{ "i": "user_id_1", "v": 1.0 },
{ "i": "user_id_2", "v": 0.95 },
...
],
"pagination": {
"start": 0,
"size": 10,
"total": 500
}
}
Get paginated scores (first 10):
curl "https://api.openrank.com/discord/ritual/scores?start=0&size=10"
Response:
{
"scores": [
{ "i": "josh.simenhoff", "v": 1000.0 },
{ "i": "0xqt3.14", "v": 986.31 },
{ "i": "jez5728", "v": 813.87 },
{ "i": "majorproject8", "v": 789.45 },
{ "i": "flashme", "v": 756.32 },
{ "i": "stefan_1", "v": 723.18 },
{ "i": "dunken_96", "v": 698.54 },
{ "i": "ezy2049", "v": 675.21 },
{ "i": "user123", "v": 654.89 },
{ "i": "user456", "v": 632.47 }
],
"pagination": {
"start": 0,
"size": 10,
"total": 150
}
}
Get complete Telegram channel data:
curl https://api.openrank.com/telegram/1234567890
Response:
{
"channel_id": "1234567890",
"seed": ["user_id_1", "user_id_2", ...],
"scores": [
{ "id": "user_id_1", "score": 1.0 },
{ "id": "user_id_2", "score": 0.95 },
...
]
}
Get Telegram seed data:
curl https://api.openrank.com/telegram/1234567890/seed
Response:
{
"seed": ["user_id_1", "user_id_2", ...]
}
Get Telegram scores with pagination:
curl "https://api.openrank.com/telegram/1234567890/scores?start=0&size=10"
Response:
{
"scores": [
{ "id": "user_id_1", "score": 1.0 },
{ "id": "user_id_2", "score": 0.95 },
...
],
"pagination": {
"start": 0,
"size": 10,
"total": 200
}
}
Get Telegram user profile picture:
curl https://api.openrank.com/telegram/pfps/1002217307.jpg --output profile.jpg
Returns the profile picture as a JPEG image. The response has
Content-Type: image/jpeg.
Get complete X community data:
curl https://api.openrank.com/x/1234567890
Response:
{
"category": "xrank",
"community_id": "1234567890",
"seed": [
{ "i": "user_id_1", "v": 0.5 },
{ "i": "user_id_2", "v": 0.5 },
...
],
"scores": [
{ "i": "user_id_1", "v": 1.0 },
{ "i": "user_id_2", "v": 0.95 },
...
]
}
Get X seed data:
curl https://api.openrank.com/x/1234567890/seed
Response:
{
"seed": [
{ "i": "user_id_1", "v": 0.5 },
{ "i": "user_id_2", "v": 0.5 },
...
]
}
Get X scores with pagination:
curl "https://api.openrank.com/x/1234567890/scores?start=20&size=5"
Response:
{
"scores": [
{ "i": "user_20", "v": 0.542 },
{ "i": "user_21", "v": 0.538 },
{ "i": "user_22", "v": 0.535 },
{ "i": "user_23", "v": 0.532 },
{ "i": "user_24", "v": 0.530 }
],
"pagination": {
"start": 20,
"size": 5,
"total": 200
}
}
List all communities:
curl https://api.openrank.com/communities
Response:
[
{
"id": "1",
"name": "EigenCloud",
"telegram": null,
"discord": null,
"github": "eigenlayer",
"x": "1917017448341246418",
"farcaster": null,
"seed_x": null,
"created_at": "2025-12-05T12:17:27.123Z",
"updated_at": "2025-12-08T23:33:36.778Z"
},
...
]
Get community by ID:
curl https://api.openrank.com/communities/2
Response:
{
"id": "2",
"name": "Ritual",
"telegram": "2468695644",
"discord": null,
"github": "ritual",
"x": "1896991026272723220",
"farcaster": null,
"seed_x": null,
"created_at": "2025-12-05T12:19:49.615Z",
"updated_at": "2025-12-08T23:33:36.778Z"
}
Discord, GitHub, and X score entries follow this structure:
{
"i": "identifier",
"v": 0.123
}
Telegram score entries follow this structure:
{
"id": "user_id",
"score": 0.123
}