Skip to main content
You already keep lists somewhere. A Google Sheet, a Clay table, a CRM export. You do not need to move them into OpenNous. Keep the list where it is and call OpenNous for the one thing a spreadsheet cannot give you, a live ICP fit score and intent, computed against your own model and written into the revenue context graph. The list stays yours. OpenNous owns the score. And because the score lands in the graph, every agent you run reads the same number through 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.
Then put =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}}" }
Map 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 with identifiers, and loop for a larger sheet. Run it on a cadence from n8n, Make, or a cron job to keep every score current.
For rows OpenNous does not have yet, send their attributes in 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 as unknown_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.