Skip to main content
POST
Writes scores you computed with your own system onto accounts. Each score becomes the account’s ICP fit, so get_context, the accounts list, and tiers all read it. Every score is checked against the deals you win and lose, so you can see whether your model predicts revenue. The workspace must use its own scorer first. See Choose the scorer. scorer names your model, for example acme-v3. Change the name when you change the model, and the score history shows the switch. Leave out tier and OpenNous derives it from the score and your tier bands. Sending the same score again changes nothing. A new score keeps the old one in the account’s history. Accounts OpenNous has not seen come back as unknown_identifier. Record the account first, then send its score. The step-by-step guide is Bring your own scorer.

Authorizations

Authorization
string
header
required

Workspace API key. Create one in Settings → API keys.

Body

application/json
scorer
string
required

A name for your model, such as acme-v3. Stored on each score as ext:acme-v3, so a new version shows in the score history.

Pattern: ^[A-Za-z0-9][A-Za-z0-9._\-/]{0,63}$
identifier
string

Email, domain, LinkedIn URL, or entity UUID.

score
number

Your score. Rounded to a whole number.

Required range: 0 <= x <= 100
tier
enum<string>

Optional. Derived from the score and the workspace tier bands when left out.

Available options:
tier_1,
tier_2,
tier_3,
not_icp
reason
string

Optional. Why it scored this way. Shown on the record and to agents.

Maximum string length: 500
scores
object[]

Up to 500 scores in one call. Use this or the single fields.

Maximum array length: 500

Response

A single result, or { scorer, results } for a batch. Each row reports its own outcome, so one bad row does not fail the batch.

identifier
string
resolved
boolean
entity_id
string
status
enum<string>

staked is a first score. updated moved an open score and kept the old one in the history. unchanged sent the same score again.

Available options:
staked,
updated,
unchanged
prediction_id
string
score
integer
tier
enum<string>
Available options:
tier_1,
tier_2,
tier_3,
not_icp
from
integer | null

The previous score, on updated and unchanged.

reason
enum<string>

Why a row did not resolve. Record an unknown account first, then score it.

Available options:
unknown_identifier,
ambiguous
candidates
object[]

On ambiguous. Send one of their entity ids.

error
enum<string>
Available options:
identifier_required,
invalid_score,
invalid_tier,
invalid_reason