Ethos Developers - API Docs
  • API Documentation
    • Introduction
    • API v2
      • Activity
      • Categories
      • Chains
      • Contributions
      • Nfts
      • Projects
      • Project Votes
      • Score
      • System
      • Users
      • Xp
    • API v1 (deprecated)
      • Activities
      • Addresses
      • Attestations
      • Categories
      • Contracts
      • Contributions
      • Curated Lists
      • ENS
      • Events
      • Exchange Rates
      • Fees
      • Invitations
      • Markets
      • Notifications
      • Profiles
      • Replies
      • Reviews
      • Scores
      • Search
      • Signatures
      • Slashes
      • Twitter
      • Users
      • Vouches
      • XP
  • Whitepaper
    • Whitepaper
Powered by GitBook
On this page
  1. API Documentation
  2. API v2

Users

PreviousSystemNextXp

Search users by query string

get
Query parameters
querystring · min: 2 · max: 100Required
userKeyTypestring · enumOptionalPossible values:
limitinteger · max: 50OptionalDefault: 50
offsetnumberOptionalDefault: 0
Responses
200
Successful response
application/json
400
Invalid input data
application/json
404
Not found
application/json
500
Internal server error
application/json
get
GET /api/v2/users/search HTTP/1.1
Host: api.ethos.network
Accept: */*
{
  "values": [
    {
      "id": 1,
      "profileId": 1,
      "displayName": "text",
      "username": "text",
      "avatarUrl": "https://example.com",
      "description": "text",
      "score": 1,
      "status": "ACTIVE",
      "userkeys": [
        "text"
      ],
      "xpTotal": 1,
      "xpStreakDays": 1,
      "stats": {
        "review": {
          "received": {
            "negative": 1,
            "neutral": 1,
            "positive": 1
          }
        },
        "vouch": {
          "given": {
            "amountWeiTotal": 1,
            "count": 1
          },
          "received": {
            "amountWeiTotal": 1,
            "count": 1
          }
        }
      }
    }
  ],
  "total": 1,
  "limit": 1,
  "offset": 1
}

Get a specific user by user ID

get
Path parameters
userIdintegerRequired
Responses
200
Successful response
application/json
400
Invalid input data
application/json
404
Not found
application/json
500
Internal server error
application/json
get
GET /api/v2/user/{userId} HTTP/1.1
Host: api.ethos.network
Accept: */*
{
  "id": 1,
  "profileId": 1,
  "displayName": "text",
  "username": "text",
  "avatarUrl": "https://example.com",
  "description": "text",
  "score": 1,
  "status": "ACTIVE",
  "userkeys": [
    "text"
  ],
  "xpTotal": 1,
  "xpStreakDays": 1,
  "stats": {
    "review": {
      "received": {
        "negative": 1,
        "neutral": 1,
        "positive": 1
      }
    },
    "vouch": {
      "given": {
        "amountWeiTotal": 1,
        "count": 1
      },
      "received": {
        "amountWeiTotal": 1,
        "count": 1
      }
    }
  }
}

Get a user by Ethereum address

get
Path parameters
addressstringRequired
Responses
200
Successful response
application/json
400
Invalid input data
application/json
404
Not found
application/json
500
Internal server error
application/json
get
GET /api/v2/user/by/address/{address} HTTP/1.1
Host: api.ethos.network
Accept: */*
{
  "id": 1,
  "profileId": 1,
  "displayName": "text",
  "username": "text",
  "avatarUrl": "https://example.com",
  "description": "text",
  "score": 1,
  "status": "ACTIVE",
  "userkeys": [
    "text"
  ],
  "xpTotal": 1,
  "xpStreakDays": 1,
  "stats": {
    "review": {
      "received": {
        "negative": 1,
        "neutral": 1,
        "positive": 1
      }
    },
    "vouch": {
      "given": {
        "amountWeiTotal": 1,
        "count": 1
      },
      "received": {
        "amountWeiTotal": 1,
        "count": 1
      }
    }
  }
}

Get a user by profile ID

get
Path parameters
profileIdintegerRequired
Responses
200
Successful response
application/json
400
Invalid input data
application/json
404
Not found
application/json
500
Internal server error
application/json
get
GET /api/v2/user/by/profile-id/{profileId} HTTP/1.1
Host: api.ethos.network
Accept: */*
{
  "id": 1,
  "profileId": 1,
  "displayName": "text",
  "username": "text",
  "avatarUrl": "https://example.com",
  "description": "text",
  "score": 1,
  "status": "ACTIVE",
  "userkeys": [
    "text"
  ],
  "xpTotal": 1,
  "xpStreakDays": 1,
  "stats": {
    "review": {
      "received": {
        "negative": 1,
        "neutral": 1,
        "positive": 1
      }
    },
    "vouch": {
      "given": {
        "amountWeiTotal": 1,
        "count": 1
      },
      "received": {
        "amountWeiTotal": 1,
        "count": 1
      }
    }
  }
}

Get a user by username

get
Path parameters
usernamestring · min: 1Required
Responses
200
Successful response
application/json
400
Invalid input data
application/json
404
Not found
application/json
500
Internal server error
application/json
get
GET /api/v2/user/by/username/{username} HTTP/1.1
Host: api.ethos.network
Accept: */*
{
  "id": 1,
  "profileId": 1,
  "displayName": "text",
  "username": "text",
  "avatarUrl": "https://example.com",
  "description": "text",
  "score": 1,
  "status": "ACTIVE",
  "userkeys": [
    "text"
  ],
  "xpTotal": 1,
  "xpStreakDays": 1,
  "stats": {
    "review": {
      "received": {
        "negative": 1,
        "neutral": 1,
        "positive": 1
      }
    },
    "vouch": {
      "given": {
        "amountWeiTotal": 1,
        "count": 1
      },
      "received": {
        "amountWeiTotal": 1,
        "count": 1
      }
    }
  }
}

Get a user by Twitter/X account ID or username

get
Path parameters
accountIdOrUsernamestring · min: 1Required
Responses
200
Successful response
application/json
400
Invalid input data
application/json
404
Not found
application/json
500
Internal server error
application/json
get
GET /api/v2/user/by/x/{accountIdOrUsername} HTTP/1.1
Host: api.ethos.network
Accept: */*
{
  "id": 1,
  "profileId": 1,
  "displayName": "text",
  "username": "text",
  "avatarUrl": "https://example.com",
  "description": "text",
  "score": 1,
  "status": "ACTIVE",
  "userkeys": [
    "text"
  ],
  "xpTotal": 1,
  "xpStreakDays": 1,
  "stats": {
    "review": {
      "received": {
        "negative": 1,
        "neutral": 1,
        "positive": 1
      }
    },
    "vouch": {
      "given": {
        "amountWeiTotal": 1,
        "count": 1
      },
      "received": {
        "amountWeiTotal": 1,
        "count": 1
      }
    }
  }
}

Get a user by Discord user ID

get
Path parameters
discordIdstring · min: 1Required
Responses
200
Successful response
application/json
400
Invalid input data
application/json
404
Not found
application/json
500
Internal server error
application/json
get
GET /api/v2/user/by/discord/{discordId} HTTP/1.1
Host: api.ethos.network
Accept: */*
{
  "id": 1,
  "profileId": 1,
  "displayName": "text",
  "username": "text",
  "avatarUrl": "https://example.com",
  "description": "text",
  "score": 1,
  "status": "ACTIVE",
  "userkeys": [
    "text"
  ],
  "xpTotal": 1,
  "xpStreakDays": 1,
  "stats": {
    "review": {
      "received": {
        "negative": 1,
        "neutral": 1,
        "positive": 1
      }
    },
    "vouch": {
      "given": {
        "amountWeiTotal": 1,
        "count": 1
      },
      "received": {
        "amountWeiTotal": 1,
        "count": 1
      }
    }
  }
}

Get overall position on leaderboard and position in each category for user

get
Path parameters
userkeystringRequired
Responses
200
Successful response
application/json
400
Invalid input data
application/json
404
Not found
application/json
500
Internal server error
application/json
get
GET /api/v2/users/{userkey}/categories HTTP/1.1
Host: api.ethos.network
Accept: */*
{
  "overallRank": 1,
  "categoryRanks": [
    {
      "rank": 1,
      "category": {
        "id": 1,
        "slug": "text",
        "name": "text",
        "description": "text",
        "showOnLeaderboard": true,
        "showInDailyService": true,
        "bannerImageUrl": "https://example.com",
        "userCount": 1
      }
    }
  ]
}

Refresh x.com profile details like name, avatar, etc.

post
Authorizations
Responses
200
Successful response
application/json
401
Authorization not provided
application/json
403
Insufficient access
application/json
500
Internal server error
application/json
post
POST /api/v2/users/refresh/twitter HTTP/1.1
Host: api.ethos.network
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
{
  "ok": true,
  "message": "text"
}

Refresh x.com profile details like name, avatar, etc.

post
Authorizations
Path parameters
userkeystringRequired
Responses
200
Successful response
application/json
400
Invalid input data
application/json
401
Authorization not provided
application/json
403
Insufficient access
application/json
500
Internal server error
application/json
post
POST /api/v2/users/{userkey}/refresh/twitter HTTP/1.1
Host: api.ethos.network
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
{
  "ok": true,
  "message": "text"
}
  • POSTGet multiple users by user IDs
  • POSTGet multiple users by Ethereum addresses
  • POSTGet multiple users by profile IDs
  • POSTGet multiple users by Twitter/X account IDs or usernames
  • POSTGet multiple users by Discord user IDs
  • GETSearch users by query string
  • GETGet a specific user by user ID
  • GETGet a user by Ethereum address
  • GETGet a user by profile ID
  • GETGet a user by username
  • GETGet a user by Twitter/X account ID or username
  • GETGet a user by Discord user ID
  • GETGet overall position on leaderboard and position in each category for user
  • POSTRefresh x.com profile details like name, avatar, etc.
  • POSTRefresh x.com profile details like name, avatar, etc.

Get multiple users by user IDs

post
Body
userIdsinteger[] · min: 1 · max: 500Required
Responses
200
Successful response
application/json
400
Invalid input data
application/json
500
Internal server error
application/json
post
POST /api/v2/users/by/ids HTTP/1.1
Host: api.ethos.network
Content-Type: application/json
Accept: */*
Content-Length: 15

{
  "userIds": [
    1
  ]
}
[
  {
    "id": 1,
    "profileId": 1,
    "displayName": "text",
    "username": "text",
    "avatarUrl": "https://example.com",
    "description": "text",
    "score": 1,
    "status": "ACTIVE",
    "userkeys": [
      "text"
    ],
    "xpTotal": 1,
    "xpStreakDays": 1,
    "stats": {
      "review": {
        "received": {
          "negative": 1,
          "neutral": 1,
          "positive": 1
        }
      },
      "vouch": {
        "given": {
          "amountWeiTotal": 1,
          "count": 1
        },
        "received": {
          "amountWeiTotal": 1,
          "count": 1
        }
      }
    }
  }
]

Get multiple users by Ethereum addresses

post
Body
addressesstring[] · min: 1 · max: 500Required
Responses
200
Successful response
application/json
400
Invalid input data
application/json
500
Internal server error
application/json
post
POST /api/v2/users/by/address HTTP/1.1
Host: api.ethos.network
Content-Type: application/json
Accept: */*
Content-Length: 22

{
  "addresses": [
    "text"
  ]
}
[
  {
    "id": 1,
    "profileId": 1,
    "displayName": "text",
    "username": "text",
    "avatarUrl": "https://example.com",
    "description": "text",
    "score": 1,
    "status": "ACTIVE",
    "userkeys": [
      "text"
    ],
    "xpTotal": 1,
    "xpStreakDays": 1,
    "stats": {
      "review": {
        "received": {
          "negative": 1,
          "neutral": 1,
          "positive": 1
        }
      },
      "vouch": {
        "given": {
          "amountWeiTotal": 1,
          "count": 1
        },
        "received": {
          "amountWeiTotal": 1,
          "count": 1
        }
      }
    }
  }
]

Get multiple users by profile IDs

post
Body
profileIdsinteger[] · min: 1 · max: 500Required
Responses
200
Successful response
application/json
400
Invalid input data
application/json
500
Internal server error
application/json
post
POST /api/v2/users/by/profile-id HTTP/1.1
Host: api.ethos.network
Content-Type: application/json
Accept: */*
Content-Length: 18

{
  "profileIds": [
    1
  ]
}
[
  {
    "id": 1,
    "profileId": 1,
    "displayName": "text",
    "username": "text",
    "avatarUrl": "https://example.com",
    "description": "text",
    "score": 1,
    "status": "ACTIVE",
    "userkeys": [
      "text"
    ],
    "xpTotal": 1,
    "xpStreakDays": 1,
    "stats": {
      "review": {
        "received": {
          "negative": 1,
          "neutral": 1,
          "positive": 1
        }
      },
      "vouch": {
        "given": {
          "amountWeiTotal": 1,
          "count": 1
        },
        "received": {
          "amountWeiTotal": 1,
          "count": 1
        }
      }
    }
  }
]

Get multiple users by Twitter/X account IDs or usernames

post
Body
accountIdsOrUsernamesstring[] · min: 1 · max: 500Required
Responses
200
Successful response
application/json
400
Invalid input data
application/json
500
Internal server error
application/json
post
POST /api/v2/users/by/x HTTP/1.1
Host: api.ethos.network
Content-Type: application/json
Accept: */*
Content-Length: 34

{
  "accountIdsOrUsernames": [
    "text"
  ]
}
[
  {
    "id": 1,
    "profileId": 1,
    "displayName": "text",
    "username": "text",
    "avatarUrl": "https://example.com",
    "description": "text",
    "score": 1,
    "status": "ACTIVE",
    "userkeys": [
      "text"
    ],
    "xpTotal": 1,
    "xpStreakDays": 1,
    "stats": {
      "review": {
        "received": {
          "negative": 1,
          "neutral": 1,
          "positive": 1
        }
      },
      "vouch": {
        "given": {
          "amountWeiTotal": 1,
          "count": 1
        },
        "received": {
          "amountWeiTotal": 1,
          "count": 1
        }
      }
    }
  }
]

Get multiple users by Discord user IDs

post
Body
discordIdsstring[] · min: 1 · max: 500Required
Responses
200
Successful response
application/json
400
Invalid input data
application/json
500
Internal server error
application/json
post
POST /api/v2/users/by/discord HTTP/1.1
Host: api.ethos.network
Content-Type: application/json
Accept: */*
Content-Length: 23

{
  "discordIds": [
    "text"
  ]
}
[
  {
    "id": 1,
    "profileId": 1,
    "displayName": "text",
    "username": "text",
    "avatarUrl": "https://example.com",
    "description": "text",
    "score": 1,
    "status": "ACTIVE",
    "userkeys": [
      "text"
    ],
    "xpTotal": 1,
    "xpStreakDays": 1,
    "stats": {
      "review": {
        "received": {
          "negative": 1,
          "neutral": 1,
          "positive": 1
        }
      },
      "vouch": {
        "given": {
          "amountWeiTotal": 1,
          "count": 1
        },
        "received": {
          "amountWeiTotal": 1,
          "count": 1
        }
      }
    }
  }
]