get_context and query, and the model sharpens from your own won and lost deals as you record outcomes.
Scoring needs a model. Create one first with
set_icp, or train it on real deals with POST /v2/icp/closed-deals. Already score accounts your own way? See Bring your own scorer.One verb
score scores one row at a time, or up to 100 graph leads with identifiers. It accepts an email, a domain, a LinkedIn URL, or an entity UUID, and writes the result into the graph.
Google Sheets
Add a=NOUS(A2) function to any column. In your sheet, open Extensions → Apps Script, paste this, and save.
=NOUS(A2) next to your email column and fill down. Each cell calls OpenNous, shows the score, and writes the judgment into the graph.
Clay
Add an HTTP API enrichment column.- Method
POST - URL
https://api.opennous.cloud/v2/score - Header
Authorization: Bearer YOUR_API_KEY - Body
{ "identifier": "{{Email}}" }
icp.score, icp.tier, and intent.score from the response into columns. Every row now carries a live OpenNous score, and each call updates the graph.
A whole list, or a weekly job
Send up to 100 rows per call withidentifiers, and loop for a larger sheet. Run it on a cadence from n8n, Make, or a cron job to keep every score current.
leads instead. Up to 1000 are scored inline and nothing is written.
Rows OpenNous does not know yet
A row only scores if OpenNous has facts to score on. A brand-new email with nothing behind it comes back asunknown_identifier, or awaiting_enrichment when OpenNous has the account but no facts to score on yet. Enrich those accounts first, then score them again. OpenNous never invents a score for an account it has no signal on.
What you get back
For the raw JSON shape, see the
/v2/score reference.