Transcribes up to 5 call recordings and scores each with AI
Transcribes up to 5 call recordings and scores each with AI: greeting, needs found, booking or sale made, objections handled, missed opportunities, sentiment and a coaching summary, plus your own questions. Priced per minute allowance: files x maxMinutesPerFile (default 5, at most 10) x $0.04. Runs nerolabs/call-score; can take a minute or two.
Not tested: has real-world effectsour last check, 2026-10-21
0 of 0checks answered this week
n/amedian answer time
$0.08listed price per call
n/aprice it asked us
Paid test badge: not yet. The checks above are free: we call the tool without paying and read the payment request it sends back. The Verified badge needs paid calls whose answers match the promised output, and nobody can buy a badge.
Endpoint
POST https://x402-agent-tools.nerolabs.workers.dev/ai/call-score
| Category | Everything else |
|---|---|
| Provider host | x402-agent-tools.nerolabs.workers.dev |
| Networks | eip155:8453 |
| Payment schemes | exact |
| Self-reported calls, 30 days | 0 from 0 payers (the provider's figure, not ours) |
Our checks, last 30 days
We never call tools that send, buy, move money or file anything, not even without paying.
Example input (from the provider)
{
"body": {
"businessContext": "An electrician taking calls from homeowners",
"maxMinutesPerFile": 2,
"recordingUrls": [
"https://nerolabs-samples.nerolabs.workers.dev/sample-call-electrician.mp3"
]
},
"bodyType": "json",
"method": "POST",
"type": "http"
}
Promised output schema (from the provider)
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"input": {
"additionalProperties": false,
"properties": {
"body": {
"additionalProperties": false,
"properties": {
"businessContext": {
"description": "A few lines on who answers these calls and what a good call looks like: the trade or business, area covered, services, whether prices are given on the phone, and what the receptionist should do (book a visit, take name, number and postcode, flag emergencies). The review judges every call against thi",
"type": "string"
},
"customQuestions": {
"description": "Up to 10 extra questions to answer for every call, for example 'Did the receptionist mention the free quote?' or 'Which competitor did the caller mention?'. Answers appear in 'customAnswers' and do not change the price.",
"type": "array"
},
"includeSegments": {
"default": false,
"description": "Speakers mode only. Adds a 'segments' array: one entry per speaker turn with speaker, start, end and text. Useful for feeding an AI agent or building your own player.",
"type": "boolean"
},
"includeTranscript": {
"default": true,
"description": "Add the full call transcript, one line per speaker turn, so any score can be checked against what was actually said. Turn off for scores only.",
"type": "boolean"
},
"language": {
"description": "Two-letter code of the spoken language (en, es, fr, de, pt, it, nl, pl, ja, zh and about 50 more). Leave empty to detect it automatically; setting it helps accuracy on short or noisy clips.",
"type": "string"
},
"maxMinutesPerFile": {
"default": 120,
"description": "Only the first this-many minutes of each file are transcribed and charged. Your cost ceiling per file: a 6-hour livestream cannot run up a bill you did not expect.",
"maximum": 600,
"minimum": 1,
"type": "integer"
},
"recordingUrls": {
"description": "A plain list of direct links to call recordings (MP3, WAV, M4A, MP4 and more; Google Drive and Dropbox share links work), for a quick run with no spreadsheet. Use the dataset, file or Google Sheet inputs above to keep your own columns alongside each score.",
"type": "array"
}
},
"required": [
"recordingUrls"
],
"type": "object"
},
"bodyType": {
"enum": [
"json",
"form-data",
"text"
],
"type": "string"
},
"method": {
"enum": [
"POST"
],
"type": "string"
},
"type": {
"const": "http",
"type": "string"
}
},
"required": [
"type",
"method",
"bodyType",
"body"
],
"type": "object"
},
"output": {
"properties": {
"example": {
"type": "object"
},
"type": {
"type": "string"
}
},
"required": [
"type"
],
"type": "object"
}
},
"required": [
"input"
],
"type": "object"
}