Score Content
Score text or a media file against the fraud categories available to your team.
POST https://app.resemble.ai/api/v2/signal
Provide either text or file, not both.
Request parameters
| Field | Type | Required | Description |
|---|---|---|---|
text | string | One of text, file | Text to analyze. Send as JSON. |
file | file | One of text, file | Audio, image, or video file, up to 15 MB. Send as multipart/form-data. |
media_type | string | No | audio, video, or image. Detected from the file’s MIME type when omitted. |
Headers
| Header | Value | Description |
|---|---|---|
Authorization | Bearer YOUR_API_TOKEN | Required. Your API token. |
Content-Type | application/json | Required for text submissions. Use multipart/form-data for file uploads. |
Examples
Score text
$ curl --request POST 'https://app.resemble.ai/api/v2/signal' \ > -H 'Authorization: Bearer YOUR_API_TOKEN' \ > -H 'Content-Type: application/json' \ > --data '{ > "text": "wire the funds now to this account" > }'
Score an audio file
$ curl --request POST 'https://app.resemble.ai/api/v2/signal' \ > -H 'Authorization: Bearer YOUR_API_TOKEN' \ > -F 'file=@suspicious_call.wav' \ > -F 'media_type=audio'
Response
1 { 2 "success": true, 3 "item": { 4 "id": 12345, 5 "input_modality": "text", 6 "verdict": "fraud", 7 "top_category": { "name": "CEO Impersonation / Wire Diversion", "icon": "👔", "score": 0.91 }, 8 "category_scores": [ 9 { "name": "CEO Impersonation / Wire Diversion", "icon": "👔", "score": 0.91 }, 10 { "name": "Vendor Invoice / Payment Redirection", "icon": "📨", "score": 0.70 } 11 ], 12 "benign_score": 0.12, 13 "margin_over_second": 0.21, 14 "examples": ["transfer the funds immediately", "send the wire today"], 15 "top_matches": [ 16 { "category": "CEO Impersonation / Wire Diversion", "text": "wire funds to this account…", "score": 0.92 } 17 ], 18 "duration_seconds": null, 19 "created_at": "2026-06-14T10:30:45.123Z" 20 } 21 }
Response fields
| Field | Type | Description |
|---|---|---|
success | boolean | Whether the API request succeeded. |
item.id | integer | Submission identifier, used with Delete Submission. |
item.input_modality | string | text, audio, video, or image. |
item.verdict | string | safe, suspicious, or fraud. |
item.top_category | object | Highest-scoring category, with name, icon, and a 0–1 score. |
item.category_scores | array | Top categories with their scores. Use this to show alternatives. |
item.benign_score | number | How strongly the content matched benign, non-fraud content. |
item.margin_over_second | number | Gap between the top category score and the runner-up. |
item.examples | array | Sample phrases from the top category, useful for explaining the verdict. |
item.top_matches | array | The closest individual training examples that matched. |
item.duration_seconds | number | null | Media duration for audio and video; null for text and image. |
item.created_at | string | Submission timestamp. |
Error handling
| Status | Cause |
|---|---|
400 | Neither text nor file was provided, or media_type is not audio, video, or image. |
403 | The account does not have Signal access. |
413 | The uploaded file exceeds the 15 MB limit. |
1 { 2 "success": false, 3 "message": "File exceeds 15 MB limit", 4 "max_bytes": 15728640 5 }
