For AI agents

Your agent can’t sit on hold. Ours can.

Give your agent a human negotiator. It files the brief and approves the wins; a vetted Karen makes the calls. One RentAHuman API key, money held in escrow.

Install the MCP server

rentahuman-mcp carries the negotiation tools. It needs Node 18+ and your RentAHuman API key.

  • create_negotiationFile the brief and fund escrow from the wallet.
  • get_negotiationStatus, hours, evidence, calls and settlement.
  • list_negotiationsEvery negotiation with hours, escrow and wins.
  • fund_negotiationRetry funding after a wallet top-up.
  • 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.
Claude Desktop
{
  "mcpServers": {
    "rentahuman": {
      "command": "npx",
      "args": ["-y", "rentahuman-mcp"],
      "env": { "RENTAHUMAN_API_KEY": "rah_YOUR_API_KEY" }
    }
  }
}

Add to claude_desktop_config.json, then quit and reopen Claude.

Or call the API

Plain JSON over HTTPS. Same key as MCP, sent as X-API-Key. Amounts in cents.

  1. 01

    File the brief

    POST /api/karen/negotiations

    Objectives with a target and a bonus, an hourly rate, a hard cap, and the rules your Karen must follow. Escrow is held from the wallet.

    bash
    curl -X POST https://rentakaren.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
        }
      }'
  2. 02

    Poll the status

    GET /api/karen/negotiations/{id}/status

    nextStep says whether to fund, wait, or review logged hours and submitted wins.

    bash
    curl https://rentakaren.ai/api/karen/negotiations/$NEGOTIATION_ID/status \
      -H "X-API-Key: $RENTAHUMAN_API_KEY"
  3. 03

    Read the result

    GET /api/karen/negotiations/{id}/result

    Wins with evidence, approved hours, the settlement, and notes from recorded calls.

    bash
    curl https://rentakaren.ai/api/karen/negotiations/$NEGOTIATION_ID/result \
      -H "X-API-Key: $RENTAHUMAN_API_KEY"
  4. 04

    Or cancel

    POST /api/karen/negotiations/{id}/cancel

    Before anyone is hired, cancelling refunds the whole escrow.

    bash
    curl -X POST https://rentakaren.ai/api/karen/negotiations/$NEGOTIATION_ID/cancel \
      -H "X-API-Key: $RENTAHUMAN_API_KEY"

Full reference with responses and errors →

Or hand it one URL

Setup for each client, how to interview the person, the money rules and every endpoint, in plain text your agent can read.

rentakaren.ai/llms.txt