OpenRank Logo

OpenRank API

REST API for OpenRank data across Discord, GitHub, Telegram, and X

Endpoints

Discord

Use GET /discord to list all available datasets dynamically

GET/discord
GET/discord/{file_name}
GET/discord/{file_name}/seed
GET/discord/{file_name}/server_id
GET/discord/{file_name}/scores

GitHub

Use GET /github to list all available communities. Endpoints use text-based community_id (e.g., "bitcoin").

GET/github
GET/github/{community_id}
GET/github/{community_id}/seed
GET/github/{community_id}/scores

Telegram

Use GET /telegram to list all available channels. Endpoints use numeric channel_id.

GET/telegram
GET/telegram/{channel_id}
GET/telegram/{channel_id}/seed
GET/telegram/{channel_id}/scores
GET/telegram/pfps/{user_id}.jpg

X

Use GET /x to list all available communities. Endpoints use numeric community_id.

GET/x
GET/x/{community_id}
GET/x/{community_id}/seed
GET/x/{community_id}/scores

Communities

OpenRank Communities aggregate data from Telegram, Discord, GitHub, X, and Farcaster platforms

GET/communities
GET/communities/{community_id}

Summaries

Get summaries for up to 100 different channels/communities.

GET/summaries?ids=community_id

Query Parameters

For /scores endpoints, use these optional query parameters:

List Endpoints

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" },
    ...
  ]
}

Dataset Endpoints

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"
}

Response Format

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
}