Scores
Overview
The Scores API allows you to query and analyze credibility scores in the Ethos network. Scores represent a user's trustworthiness and reputation based on their activity, reviews, vouches, and other factors. The API provides endpoints for retrieving individual scores, score history, comparing scores, and even simulating changes to a score.
Endpoints
Get Score
Description: Retrieves the credibility score for a specific user.
Authentication Required: No
Parameters
Path Parameters
userkey
string
Yes
The userkey for the user. Can be in the format of "profileId:123", "address:0x1234...", or "service:x.com:username:vitalii"
Query Parameters
txHash
string
No
Transaction hash to retrieve a historical score associated with a specific transaction
Responses
Success Response
Code: 200 OK
ok
boolean
Success status
data
object
Score data
data.score
number
Overall credibility score (ranging from 0-2800)
data.elements
object
Detailed information about each score component
data.elements[elementName]
object
Information about a specific score element
data.elements[elementName].element
object
Definition of the score element
data.elements[elementName].element.name
string
Element name
data.elements[elementName].element.type
string
Element type (LookupInterval or LookupNumber)
data.elements[elementName].element.ranges
array
For LookupInterval: ranges with start, end and score values
data.elements[elementName].element.range
object
For LookupNumber: min and max range values
data.elements[elementName].element.metadata
object
Metadata about the element calculation
data.elements[elementName].raw
number
Raw score value for this element
data.elements[elementName].weighted
number
Weighted contribution to the final score
data.elements[elementName].error
boolean
Whether there was an error calculating this element
data.metadata
object
Additional metadata about the score calculation
data.errors
array
Names of elements that had errors during calculation
Error Responses
Code: 404 Not Found
Example
Request
Response
Notes
Ethos credibility scores range from 0-2800 and are categorized into levels:
Untrusted: 0-799
Questionable: 800-1199
Neutral: 1200-1599
Reputable: 1600-1999
Exemplary: 2000-2800
The response includes detailed information about each component that contributes to the final score.
The
elements
object contains various factors like account age, review impact, voucher count, etc.Each element includes its raw score, weighted contribution, and metadata about how it was calculated.
If a user has no historical data for a particular element, it may show a raw score of 0.
Get Score History
Description: Retrieves the history of score changes for a specific user.
Authentication Required: No
Parameters
Path Parameters
userkey
string
Yes
The userkey for the user. Can be in the format of "profileId:123", "address:0x1234...", or "service:x.com:username:vitalii"
Query Parameters
limit
number
No
Maximum number of results to return (default: 10, max: 500)
offset
number
No
Offset for pagination (default: 0)
expanded
boolean
No
Whether to include detailed score elements in the response (default: false)
duration
string
Yes
Return score history after this date (e.g., "30d" for last 30 days)
Responses
Success Response
Code: 200 OK
ok
boolean
Success status
data
object
Response data container
data.values
array
Array of score history items
data.values[].id
number
Unique ID for the score history record
data.values[].score
number
Score value at this point in time
data.values[].createdAt
string
ISO timestamp of when the score was calculated
data.values[].target
string
The userkey this score belongs to
data.values[].elements
object
Detailed score elements (included if expanded=true)
data.total
number
Total number of score history items for the user
data.limit
number
Number of results returned
data.offset
number
Current pagination offset
Error Responses
Code: 400 Bad Request
Code: 404 Not Found
Example
Request
Response
Notes
The
duration
parameter is required and must be specified to limit the timeframe of the history.Timestamps are returned in ISO format rather than Unix timestamps.
Use the
expanded
parameter set totrue
to include detailed element scores if needed.If there are no score history records within the specified duration, an empty array will be returned.
Get Highest Scoring Actors
Description: Retrieves the actors with the highest credibility scores in the network.
Authentication Required: No
Parameters
Query Parameters
limit
number
No
Maximum number of results to return (default: 10, max: 100)
Responses
Success Response
Code: 200 OK
ok
boolean
Success status
data
array
Array of highest scoring actors
data[].score
number
Actor's credibility score
data[].profileActor
object
Information about the actor
data[].profileActor.userkey
string
Actor's userkey
data[].profileActor.avatar
string
URL to the actor's avatar
data[].profileActor.name
string
Actor's display name
data[].profileActor.username
string
Actor's username
data[].profileActor.description
string
Actor's description
data[].profileActor.score
number
Actor's credibility score
data[].profileActor.scoreXpMultiplier
number
Actor's XP multiplier based on score
data[].profileActor.profileId
number
Actor's profile ID
data[].profileActor.primaryAddress
string
Actor's primary Ethereum address
data[].inviterActor
object
Information about the person who invited this actor (if available)
Example
Request
Response
Notes
Returns profiles sorted by credibility score in descending order (highest first).
Each profile includes information about both the user and the person who invited them.
The
scoreXpMultiplier
field indicates the XP multiplier based on the user's credibility score.This endpoint is useful for identifying the most trusted and reputable users in the network.
Some highly-trusted users may have scores in the "Exemplary" range (2000-2800).
Get Bulk Scores
Description: Retrieves scores for multiple users in a single request.
Authentication Required: No
Parameters
Request Body
userkeys
array of strings
Yes
Array of userkeys to get scores for (max 500)
Responses
Success Response
Code: 200 OK
ok
boolean
Success status
data
object
Map of userkeys to their scores
Example
Request
Response
Notes
If a userkey is not found, it will return a default starting score (1200).
The API enforces a maximum of 500 userkeys per request.
Ethos credibility scores range from 0-2800 and are categorized into levels:
Untrusted: 0-799
Questionable: 800-1199
Neutral: 1200-1599
Reputable: 1600-1999
Exemplary: 2000-2800
Simulate Score Changes
Description: Simulates how various actions would affect a user's credibility score.
Authentication Required: No
Parameters
Request Body
subjectKey
string
Yes
Userkey of the subject to simulate the score for
twitterUserId
string
No
Twitter user ID to simulate account age impact
reviews
array of objects
No
Array of reviews to simulate
reviews[].author
string
Yes
Address of the review author
reviews[].score
string
Yes
Review score: "positive", "neutral", or "negative"
vouchAmount
number
No
Amount of ETH to simulate being vouched
vouchedDays
number
No
Number of days to simulate the vouch for (default: maximum allowed)
numberOfVouchers
number
No
Number of vouchers to simulate
votes
object
No
Votes to simulate
votes.review
object
No
Votes on reviews
votes.review.upvotes
number
Yes
Number of upvotes on reviews
votes.review.downvotes
number
Yes
Number of downvotes on reviews
votes.vouch
object
No
Votes on vouches
votes.vouch.upvotes
number
Yes
Number of upvotes on vouches
votes.vouch.downvotes
number
Yes
Number of downvotes on vouches
slashes
array of objects
No
Slashes to simulate
slashes[].type
string
Yes
Type of slash: "SOCIAL" or "FINANCIAL"
slashes[].amount
number
Yes
Amount of the slash
Responses
Success Response
Code: 200 OK
ok
boolean
Success status
data
object
Simulation results
data.simulation
object
Score change information
data.simulation.value
number
Absolute point change in score
data.simulation.relativeValue
number
Relative point change in score
data.simulation.impact
string
Impact type (e.g., "POSITIVE")
data.simulation.adjustedRecipientScore
number
New simulated score
data.calculationResults
object
Detailed calculation results
data.calculationResults.score
number
Total simulated score
data.calculationResults.elements
object
Detailed breakdown of score elements
data.errors
array
Names of elements that had errors during calculation
Error Responses
Code: 404 Not Found
Example
Request
Response
Notes
You can simulate changes to a user's score by providing different parameters.
The response includes both the projected score and a detailed breakdown of how each element contributed.
The
impact
field indicates whether the changes would have a positive, negative, or neutral effect.Only include the parameters you want to simulate; omit others to keep them at their current values.
The simulation doesn't affect the actual user's score - it's only a preview of potential changes.
Last updated