Users
Successful response
Invalid input data
Internal server error
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,
"links": {
"profile": "https://example.com",
"scoreBreakdown": "https://example.com"
},
"stats": {
"review": {
"received": {
"negative": 1,
"neutral": 1,
"positive": 1
}
},
"vouch": {
"given": {
"amountWeiTotal": 1,
"count": 1
},
"received": {
"amountWeiTotal": 1,
"count": 1
}
}
}
}
]
Successful response
Invalid input data
Internal server error
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,
"links": {
"profile": "https://example.com",
"scoreBreakdown": "https://example.com"
},
"stats": {
"review": {
"received": {
"negative": 1,
"neutral": 1,
"positive": 1
}
},
"vouch": {
"given": {
"amountWeiTotal": 1,
"count": 1
},
"received": {
"amountWeiTotal": 1,
"count": 1
}
}
}
}
]
Successful response
Invalid input data
Internal server error
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,
"links": {
"profile": "https://example.com",
"scoreBreakdown": "https://example.com"
},
"stats": {
"review": {
"received": {
"negative": 1,
"neutral": 1,
"positive": 1
}
},
"vouch": {
"given": {
"amountWeiTotal": 1,
"count": 1
},
"received": {
"amountWeiTotal": 1,
"count": 1
}
}
}
}
]
Successful response
Invalid input data
Internal server error
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,
"links": {
"profile": "https://example.com",
"scoreBreakdown": "https://example.com"
},
"stats": {
"review": {
"received": {
"negative": 1,
"neutral": 1,
"positive": 1
}
},
"vouch": {
"given": {
"amountWeiTotal": 1,
"count": 1
},
"received": {
"amountWeiTotal": 1,
"count": 1
}
}
}
}
]
Successful response
Invalid input data
Internal server error
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,
"links": {
"profile": "https://example.com",
"scoreBreakdown": "https://example.com"
},
"stats": {
"review": {
"received": {
"negative": 1,
"neutral": 1,
"positive": 1
}
},
"vouch": {
"given": {
"amountWeiTotal": 1,
"count": 1
},
"received": {
"amountWeiTotal": 1,
"count": 1
}
}
}
}
]
Successful response
Invalid input data
Internal server error
POST /api/v2/users/by/farcaster HTTP/1.1
Host: api.ethos.network
Content-Type: application/json
Accept: */*
Content-Length: 25
{
"farcasterIds": [
"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,
"links": {
"profile": "https://example.com",
"scoreBreakdown": "https://example.com"
},
"stats": {
"review": {
"received": {
"negative": 1,
"neutral": 1,
"positive": 1
}
},
"vouch": {
"given": {
"amountWeiTotal": 1,
"count": 1
},
"received": {
"amountWeiTotal": 1,
"count": 1
}
}
}
}
]
Bulk lookup of users by Farcaster usernames. Results are categorized into three arrays:
• "users": Successfully matched usernames with their Ethos user data
• "notFoundUsernames": Valid usernames with no associated Ethos users
• "errorUsernames": Usernames that failed lookup due to network/API errors
Both "users" and "notFoundUsernames" results can be cached safely.
Successful response
Invalid input data
Internal server error
POST /api/v2/users/by/farcaster/usernames HTTP/1.1
Host: api.ethos.network
Content-Type: application/json
Accept: */*
Content-Length: 31
{
"farcasterUsernames": [
"text"
]
}
{
"users": [
{
"user": {
"id": 1,
"profileId": 1,
"displayName": "text",
"username": "text",
"avatarUrl": "https://example.com",
"description": "text",
"score": 1,
"status": "ACTIVE",
"userkeys": [
"text"
],
"xpTotal": 1,
"xpStreakDays": 1,
"links": {
"profile": "https://example.com",
"scoreBreakdown": "https://example.com"
},
"stats": {
"review": {
"received": {
"negative": 1,
"neutral": 1,
"positive": 1
}
},
"vouch": {
"given": {
"amountWeiTotal": 1,
"count": 1
},
"received": {
"amountWeiTotal": 1,
"count": 1
}
}
}
},
"username": "text"
}
],
"notFoundUsernames": [
"text"
],
"errorUsernames": [
"text"
]
}
Successful response
Invalid input data
Internal server error
POST /api/v2/users/by/telegram HTTP/1.1
Host: api.ethos.network
Content-Type: application/json
Accept: */*
Content-Length: 24
{
"telegramIds": [
"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,
"links": {
"profile": "https://example.com",
"scoreBreakdown": "https://example.com"
},
"stats": {
"review": {
"received": {
"negative": 1,
"neutral": 1,
"positive": 1
}
},
"vouch": {
"given": {
"amountWeiTotal": 1,
"count": 1
},
"received": {
"amountWeiTotal": 1,
"count": 1
}
}
}
}
]
50
0
Successful response
Invalid input data
Not found
Internal server error
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,
"links": {
"profile": "https://example.com",
"scoreBreakdown": "https://example.com"
},
"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
}
Successful response
Invalid input data
Not found
Internal server error
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,
"links": {
"profile": "https://example.com",
"scoreBreakdown": "https://example.com"
},
"stats": {
"review": {
"received": {
"negative": 1,
"neutral": 1,
"positive": 1
}
},
"vouch": {
"given": {
"amountWeiTotal": 1,
"count": 1
},
"received": {
"amountWeiTotal": 1,
"count": 1
}
}
}
}
Successful response
Invalid input data
Not found
Internal server error
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,
"links": {
"profile": "https://example.com",
"scoreBreakdown": "https://example.com"
},
"stats": {
"review": {
"received": {
"negative": 1,
"neutral": 1,
"positive": 1
}
},
"vouch": {
"given": {
"amountWeiTotal": 1,
"count": 1
},
"received": {
"amountWeiTotal": 1,
"count": 1
}
}
}
}
Successful response
Invalid input data
Not found
Internal server error
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,
"links": {
"profile": "https://example.com",
"scoreBreakdown": "https://example.com"
},
"stats": {
"review": {
"received": {
"negative": 1,
"neutral": 1,
"positive": 1
}
},
"vouch": {
"given": {
"amountWeiTotal": 1,
"count": 1
},
"received": {
"amountWeiTotal": 1,
"count": 1
}
}
}
}
Successful response
Invalid input data
Not found
Internal server error
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,
"links": {
"profile": "https://example.com",
"scoreBreakdown": "https://example.com"
},
"stats": {
"review": {
"received": {
"negative": 1,
"neutral": 1,
"positive": 1
}
},
"vouch": {
"given": {
"amountWeiTotal": 1,
"count": 1
},
"received": {
"amountWeiTotal": 1,
"count": 1
}
}
}
}
Successful response
Invalid input data
Not found
Internal server error
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,
"links": {
"profile": "https://example.com",
"scoreBreakdown": "https://example.com"
},
"stats": {
"review": {
"received": {
"negative": 1,
"neutral": 1,
"positive": 1
}
},
"vouch": {
"given": {
"amountWeiTotal": 1,
"count": 1
},
"received": {
"amountWeiTotal": 1,
"count": 1
}
}
}
}
Successful response
Invalid input data
Not found
Internal server error
GET /api/v2/user/by/discord/{discordUserId} 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,
"links": {
"profile": "https://example.com",
"scoreBreakdown": "https://example.com"
},
"stats": {
"review": {
"received": {
"negative": 1,
"neutral": 1,
"positive": 1
}
},
"vouch": {
"given": {
"amountWeiTotal": 1,
"count": 1
},
"received": {
"amountWeiTotal": 1,
"count": 1
}
}
}
}
Successful response
Invalid input data
Not found
Internal server error
GET /api/v2/user/by/farcaster/{farcasterUserId} 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,
"links": {
"profile": "https://example.com",
"scoreBreakdown": "https://example.com"
},
"stats": {
"review": {
"received": {
"negative": 1,
"neutral": 1,
"positive": 1
}
},
"vouch": {
"given": {
"amountWeiTotal": 1,
"count": 1
},
"received": {
"amountWeiTotal": 1,
"count": 1
}
}
}
}
Successful response
Invalid input data
Not found
Internal server error
GET /api/v2/user/by/farcaster/username/{farcasterUsername} 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,
"links": {
"profile": "https://example.com",
"scoreBreakdown": "https://example.com"
},
"stats": {
"review": {
"received": {
"negative": 1,
"neutral": 1,
"positive": 1
}
},
"vouch": {
"given": {
"amountWeiTotal": 1,
"count": 1
},
"received": {
"amountWeiTotal": 1,
"count": 1
}
}
}
}
Successful response
Invalid input data
Not found
Internal server error
GET /api/v2/user/by/telegram/{telegramUserId} 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,
"links": {
"profile": "https://example.com",
"scoreBreakdown": "https://example.com"
},
"stats": {
"review": {
"received": {
"negative": 1,
"neutral": 1,
"positive": 1
}
},
"vouch": {
"given": {
"amountWeiTotal": 1,
"count": 1
},
"received": {
"amountWeiTotal": 1,
"count": 1
}
}
}
}
Successful response
Invalid input data
Not found
Internal server error
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
}
}
]
}
Successful response
Authorization not provided
Insufficient access
Internal server error
POST /api/v2/users/refresh/twitter HTTP/1.1
Host: api.ethos.network
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
{
"ok": true,
"message": "text"
}
Successful response
Invalid input data
Authorization not provided
Insufficient access
Internal server error
POST /api/v2/users/{userkey}/refresh/twitter HTTP/1.1
Host: api.ethos.network
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
{
"ok": true,
"message": "text"
}
Successful response
Invalid input data
Authorization not provided
Insufficient access
Internal server error
POST /api/v2/users/{userkey}/refresh/streak HTTP/1.1
Host: api.ethos.network
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
{
"ok": true,
"message": "text",
"oldStreak": 1,
"newStreak": 1
}