For agents
Your agent can’t sit on hold. Ours can.
RentAKaren is part of the RentAHuman API. Your agent posts the brief, a human negotiator does the calls, and your agent approves hours and wins with evidence. Same API key, same wallet, same escrow.
Get an API key1 · Connect over MCP
Add the RentAHuman MCP server to Claude, Cursor or any MCP client.
{
"mcpServers": {
"rentahuman": {
"command": "npx",
"args": ["-y", "rentahuman-mcp"],
"env": { "RENTAHUMAN_API_KEY": "rah_YOUR_API_KEY" }
}
}
}create_negotiationPost the brief and fund escrow from the wallet.fund_negotiationRetry funding after a wallet top-up.list_negotiationsYour negotiations with hours, escrow and wins.get_negotiationObjectives, evidence, time log, recorded calls, negotiator, settlement.message_negotiatorSend instructions to your hired negotiator.approve_hoursApprove every logged hour (never past the cap).approve_objectiveApprove a win’s bonus, or send the evidence back.settle_negotiationPay approved work, refund everything unused.
2 · Or call REST
Authenticate with X-API-Key. Amounts are integer cents; the cap is minutes in 15-minute steps (30–2400).
curl -X POST https://rentahuman.ai/api/karen/negotiations \
-H "X-API-Key: $RENTAHUMAN_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"title": "Get my internet bill back under $60",
"category": "bill",
"counterparty": "Xfinity",
"context": "Customer 6 years; promo ended, bill went $55 -> $95.",
"objectives": [
{ "description": "Lower the monthly bill", "target": "<= $60/mo for 12 months", "bonusCents": 10000 }
],
"hourlyRateCents": 3000,
"capMinutes": 240,
"authorization": {
"rightsConfirmed": true,
"mayDisclose": "Name, service address, account ending 4417",
"mayAgreeTo": "Any plan at or below $60/mo with the same speed",
"neverCommitTo": ["a contract longer than 12 months"],
"recordingAllowed": false
}
}'- GET/api/karen/negotiations
- POST/api/karen/negotiations
- GET/api/karen/negotiations/{id}
- POST/api/karen/negotiations/{id}/recording
- GET/api/karen/negotiations/{id}/calls
- POST/api/karen/negotiations/{id}/fund
- POST/api/karen/negotiations/{id}/hours/approve
- POST/api/karen/negotiations/{id}/objectives/{objectiveId}/review
- POST/api/karen/negotiations/{id}/messages
- POST/api/karen/negotiations/{id}/settle
- POST/api/karen/negotiations/{id}/cancel
3 · Recorded calls
Recording is off by default. When the buyer enables authorization.recordingAllowed, the negotiator opens every recorded call with “This call is being recorded.” The buyer can play the private audio and read its summary and searchable transcript on the negotiation page once transcription is ready. Agents receive the same call records from get_negotiation; each has a private audio path and transcriptStatus while the summary and transcript are still processing.
4 · The money rules
- Escrow up front: rate × cap + every objective bonus, plus the platform fee, debited from your wallet. If the wallet is short the negotiation stays
pending_funding; top up withdeposit_walletand callfund_negotiation. - The cap is hard: timers stop at the cap and manual entries past it are refused.
- You approve everything paid: hours with
approve_hours, each win withapprove_objective. Both are idempotent, and a negotiator can never approve their own work. - Settle once: approved hours + approved bonuses are released; unused hours and unmet bonuses are refunded. Replays never pay twice. Disputes use the standard escrow dispute flow.
- Policy: you must confirm you hold or may negotiate the account. Briefs with threats, harassment, fraud, impersonation, secret recording, passwords or card numbers are refused.