Crisis Resources
NOPE provides crisis helpline data for 222 countries with 4,700+ resources. Access via the evaluate API or directly via the public resources endpoint.
Basic Resources (Free)
The /v1/resources endpoint requires an API key but is free to use — no balance deduction. Use scope-based filtering to find relevant crisis resources.
# Requires API key (free endpoint)
# Get crisis resources for a country
curl -H "Authorization: Bearer nope_live_xxx" \
"https://api.nope.net/v1/resources?country=US"
# Filter by service scope
curl -H "Authorization: Bearer nope_live_xxx" \
"https://api.nope.net/v1/resources?country=US&scopes=suicide,crisis"
# Filter by population
curl -H "Authorization: Bearer nope_live_xxx" \
"https://api.nope.net/v1/resources?country=GB&populations=lgbtq"
# Only 24/7 services
curl -H "Authorization: Bearer nope_live_xxx" \
"https://api.nope.net/v1/resources?country=AU&urgent=true"Response:
{
"country": "US",
"resources": [
{
"name": "988 Suicide and Crisis Lifeline",
"phone": "988",
"chat_url": "https://988lifeline.org/chat",
"is_24_7": true,
...
}
],
"count": 10
} | Parameter | Required | Description |
|---|---|---|
country | Yes | ISO country code (e.g., US, GB, AU) |
scopes | No | WHAT the resource helps with: suicide, domestic_violence, eating_disorder, etc. |
populations | No | WHO the resource serves: veterans, lgbtq, youth, etc. |
urgent | No | true to return only 24/7 services |
limit | No | Max resources (default: 10, max: 10) |
Related endpoints:
GET /v1/resources/smart— AI-ranked resources with natural language query ($0.001/call)GET /v1/resources/:id— single resource by UUID (public, for widget embeds)GET /v1/resources/countries— list all supported countries (public)GET /v1/resources/detect-country— detect country from IP (public)
Single Resource Lookup
Fetch a specific crisis resource by its database UUID. This endpoint is public (no API key required) and is used by the widget for single-resource embeds.
curl "https://api.nope.net/v1/resources/c051c06a-119f-4823-af66-894d9b934b5f" Returns the resource with computed open_status:
{
"resource": {
"id": "c051c06a-119f-4823-af66-894d9b934b5f",
"name": "988 Suicide & Crisis Lifeline",
"phone": "988",
"is_24_7": true,
"open_status": {
"is_open": true,
"message": "Open 24/7",
"confidence": "high"
}
}
} Via /v1/evaluate
When you call /v1/evaluate and risk is detected, resources are automatically matched and returned in crisis_resources[]. This requires an API key but provides risk-matched resources based on the conversation.
How Matching Works
When risk is detected, NOPE scores and ranks resources based on:
- Country — resources for the user's location
- Service scope — suicide, domestic violence, child abuse, etc.
- Population served — youth, veterans, LGBTQ+, etc.
- Priority tier — national crisis lines ranked above niche services
- Availability — 24/7 services prioritized for urgent situations
AI-Ranked Resources (/v1/resources/smart)
For nuanced situations where structured filtering isn't enough, use /v1/resources/smart with a natural language query parameter. An LLM will analyze the situation and rank resources by relevance.
Cost: $0.001 per call (requires balance)
# AI-ranked resources ($0.001 per call)
curl -H "Authorization: Bearer nope_live_xxx" \
"https://api.nope.net/v1/resources/smart?country=US&query=my%20gay%20teen%20is%20being%20bullied"Example: For "my gay teen is being bullied", a youth-focused LGBTQ helpline (Trevor Project)
ranks higher than a trans-specific line, even though both match the lgbtq scope.
{
"country": "US",
"query": "my gay teen is being bullied",
"ranked": [
{
"resource": {
"name": "The Trevor Project",
"phone": "1-866-488-7386",
"chat_url": "https://www.thetrevorproject.org/get-help",
...
},
"why": "LGBTQ+ youth crisis line specializing in bullying and identity-related distress",
"rank": 1
},
{
"resource": { "name": "Crisis Text Line", ... },
"why": "Text-based support accessible to teens who may prefer texting over calling",
"rank": 2
},
{
"resource": { "name": "988 Suicide and Crisis Lifeline", ... },
"why": "General crisis support if the situation escalates",
"rank": 3
}
],
"scopes_requested": ["lgbtq"]
} Parameters:
| Parameter | Required | Description |
|---|---|---|
country | Yes | ISO country code |
query | Yes | Natural language description (max 500 characters) |
scopes | No | Pre-filter by scope before ranking |
limit | No | Max resources (default: 10, max: 10) |
Each result includes a why field explaining the ranking. Response is not cached (dynamic LLM ranking).
Try it free: Use /v1/try/resources/smart to test without an API key (rate-limited, max 5 results).
Resource Object
Each resource in crisis_resources[] contains:
{
// Identity
name: "988 Suicide and Crisis Lifeline",
name_local: "いのちの電話", // Native script name
description: "Free and confidential support...",
// Contact methods (use whichever is present)
phone: "988",
sms_number: "741741",
sms_body: "HOME",
text_instructions: "Text HOME to 741741",
chat_url: "https://...",
whatsapp_url: "https://wa.me/...",
email: "...",
website_url: "https://...",
// Availability
availability: "24/7",
is_24_7: true,
languages: ["en", "es"],
open_status: { // Computed open/closed status
is_open: true, // null if hours unknown
message: "Open 24/7", // Human-readable status
confidence: "high" // high | medium | low | none
},
// Classification
type: "crisis_line" | "text_line" | "chat_service" | ...,
resource_kind: "helpline" | "reporting_portal" | ...,
service_scope: ["suicide", "crisis", "mental_health"],
population_served: ["general", "youth"],
priority_tier: "primary_national_crisis"
} Rendering Resources
Resources have multiple contact methods. Render whichever fields are present:
for (const resource of crisis_resources) {
console.log(resource.name);
// Phone
if (resource.phone) {
// Create tel: link
console.log(`Call: ${resource.phone}`);
}
// SMS
if (resource.sms_number) {
const smsUrl = resource.sms_body
? `sms:${resource.sms_number}?body=${encodeURIComponent(resource.sms_body)}`
: `sms:${resource.sms_number}`;
console.log(`Text: ${smsUrl}`);
} else if (resource.text_instructions) {
console.log(`Text: ${resource.text_instructions}`);
}
// Chat
if (resource.chat_url) {
console.log(`Chat: ${resource.chat_url}`);
}
// WhatsApp
if (resource.whatsapp_url) {
console.log(`WhatsApp: ${resource.whatsapp_url}`);
}
} Priority Tiers
Resources are classified by priority tier for ranking:
| Tier | Description | Example |
|---|---|---|
primary_national_crisis | Main national crisis line | 988, Samaritans |
secondary_national_crisis | Other well-known national lines | Crisis Text Line |
specialist_issue_crisis | Issue-specific services | DV hotlines, eating disorder lines |
population_specific_crisis | Services for specific groups | Veterans line, Trans lifeline |
support_info_and_advocacy | Information and support services | NAMI, mental health orgs |
emergency_services | Emergency numbers | 911, 999, 112 |
Service Scopes
The scopes parameter filters by what the resource helps with.
Use these to find resources for specific issues. Invalid values return a 400 error.
Mental Health & Crisis
suicide self_harm mental_health crisis emergency psychosis trauma anxiety depression emotional_distress lonelinessViolence & Abuse
domestic_violence sexual_assault stalking hate_crime forced_marriage fgmSafeguarding
child_abuse child_sexual_abuse child_safety child_neglect child_exploitation elder_abuse vulnerable_adults safeguardingOnline Exploitation
online_exploitation ncii cyberbullying online_harassment sextortion online_groomingTrafficking
human_trafficking forced_labour modern_slaverySubstance Use
substance_use alcohol alcohol_addiction drug_addiction gamblingEating Disorders
eating_disorderReproductive & Maternal
pregnancy_loss unplanned_pregnancy abortion postpartum_depression postpartum_psychosis perinatal_mental_health birth_trauma maternalGrief & Bereavement
bereavement suicide_loss child_loss homicide_lossPopulation-Specific Services
lgbtq transgender conversion_therapy_survivor veterans military_sexual_trauma first_responder youth disability refugee indigenousSocial & Economic
homelessness housing debt unemployment legal_aid food_insecurity bullying runaway_youthSee the full list of 93 scopes in the API reference.
Populations
The populations parameter filters by who the resource serves.
Use these to find resources for specific groups. Invalid values return a 400 error.
general youth children elderly seniors women men lgbtq transgender mothers new_parents parents family indigenous maori aboriginal migrant_workers veterans disabled learning_disabilities professionals students farmersCombining Scopes and Populations
Both parameters can be used together with AND logic:
?scopes=suicide&populations=veterans— suicide resources for veterans?scopes=domestic_violence&populations=lgbtq— DV resources for LGBTQ+ community?scopes=eating_disorder&populations=youth— eating disorder resources for young people
Using the Widget URL
Instead of rendering resources yourself, you can use the pre-built widget.
When severity is not none, the response includes a widget_url:
// Show widget when risk detected
if (result.summary.speaker_severity !== 'none') {
const iframe = document.createElement('iframe');
iframe.src = 'https://widget.nope.net/resources?country=US&scopes=suicide,crisis';
iframe.width = '100%';
iframe.height = '400';
container.appendChild(iframe);
} See Widget Integration for full details.
Next Steps
- Widget Integration — embed pre-built crisis UI
- CrisisResource Reference — all fields