Skip to main content

Quickstart

Get your API key and make your first risk evaluation in under 5 minutes.

1. Get an API Key

Sign up at dashboard.nope.net to get your API key. Keys are prefixed with nope_live_ for production or nope_test_ for testing.

2. Make Your First Request

Call the /v1/evaluate endpoint with a conversation to analyze:

curl -X POST https://api.nope.net/v1/evaluate \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "messages": [
      {"role": "user", "content": "I feel really hopeless lately"}
    ],
    "config": {
      "country": "US"
    }
  }'

3. Understand the Response

The API returns a structured assessment with risks (subject × type), chain-of-thought rationale, and matched crisis resources:

{
  "risks": [
    {
      "type": "suicide",
      "subject": "self",
      "severity": "moderate",
      "imminence": "chronic",
      "features": ["hopelessness", "passive_ideation"]
    }
  ],
  "rationale": "User expressing hopelessness with passive ideation patterns.",
  "speaker_severity": "moderate",
  "speaker_imminence": "chronic",
  "show_resources": true,
  "resources": {
    "primary": {
      "name": "988 Suicide and Crisis Lifeline",
      "phone": "988",
      "is_24_7": true,
      "why": "Primary national crisis line for suicidal ideation."
    },
    "secondary": []
  },
  "request_id": "req_abc123",
  "timestamp": "2025-01-15T10:30:00Z"
}

Key Response Fields

FieldDescription
speaker_severityHow serious (self-risks only): nonecritical
speaker_imminenceHow soon: not_applicableemergency
risks[]Identified risks with subject (who), type (what), severity, imminence, features
rationaleChain-of-thought reasoning explaining the assessment
show_resourcesWhether crisis resources should be displayed
resourcesMatched helplines with primary and secondary[], each with a why explanation

Using SDKs

Python

PyPI · GitHub

pip install nope-net
from nope_net import NopeClient

client = NopeClient(api_key="nope_live_...")

result = client.evaluate(
    messages=[{"role": "user", "content": "I feel hopeless"}],
    config={"country": "US"}
)

print(result.speaker_severity)  # v1 top-level field
if result.show_resources and result.resources:
    print(result.resources["primary"]["name"])

Node.js / TypeScript

npm · GitHub

npm install @nope-net/sdk
import { NopeClient } from '@nope-net/sdk';

const client = new NopeClient({ apiKey: 'nope_live_...' });

const result = await client.evaluate({
  messages: [{ role: 'user', content: 'I feel hopeless' }],
  config: { country: 'US' }
});

console.log(result.speaker_severity);  // v1 top-level field
if (result.show_resources && result.resources) {
  console.log(result.resources.primary?.name);
}

What's Next?