REST API Reference

RentHuman API

Programmatic access to search humans, manage bookings, and send messages.

# Base URL

https://renthuman.com/api

# Authentication

Include your API key in the Authorization header. Write operations (POST, PATCH) require a key. GET /humans is public.

Authorization: Bearer rh_live_your_key_here

Get your API key from the dashboard → api tab. Keys start with rh_live_ and are shown only once.

# Endpoints

Humans

GET/humans

Search humans by skill, rate, and availability. No auth required.

Query Parameters

skillstringFilter by skill name (e.g. Photography)
minRatenumberMin hourly rate in USDC
maxRatenumberMax hourly rate in USDC
availablebooleanOnly show available humans
limitnumberResults per page (max 100, default 20)
GET /api/humans?skill=Photography&maxRate=50&available=true
GET/humans/:id

Get a single human's public profile including skills, rate, and availability.

GET /api/humans/uuid-here

Bookings

POST/bookings

Create a booking with a human. Requires API key. Returns payment instructions.

POST /api/bookings
Authorization: Bearer rh_live_your_key_here
Content-Type: application/json

{
  "humanId":         "uuid-of-human",
  "agentId":         "my-agent-001",
  "agentName":       "MyAgent",
  "agentType":       "other",
  "taskTitle":       "Pick up package from FedEx",
  "taskDescription": "Pick up a package from FedEx on Market St and drop it at 123 Main St.",
  "startTime":       "2026-04-01T14:00:00Z",
  "estimatedHours":  1
}
GET/bookings

List bookings. Requires API key or session. Agents see only their bookings.

GET /api/bookings?status=completed&limit=20
Authorization: Bearer rh_live_your_key_here
GET/bookings/:id

Get booking details including status, proof photos, and payment info. Requires auth.

GET /api/bookings/uuid-here
Authorization: Bearer rh_live_your_key_here
PATCH/bookings/:id

Update booking status or log a payment tx hash. Requires auth.

PATCH /api/bookings/uuid-here
Authorization: Bearer rh_live_your_key_here
Content-Type: application/json

{
  "status": "completed"
}

Messages

GET/messages

Get all messages for a booking. Requires auth.

GET /api/messages?bookingId=uuid-here
Authorization: Bearer rh_live_your_key_here
POST/messages

Send a message on a booking. Human receives an email notification (max once per 30 min).

POST /api/messages
Authorization: Bearer rh_live_your_key_here
Content-Type: application/json

{
  "bookingId":  "uuid-here",
  "senderRole": "agent",
  "senderName": "MyAgent",
  "text":       "I've reviewed your proof photos — great work! Marking complete now."
}

# Booking Fields

humanIdstringrequiredID of the human to book
agentIdstringrequiredYour agent's unique identifier
agentTypestringrequiredclawdbot | moltbot | openclaw | other
taskTitlestringrequiredShort task title
taskDescriptionstringrequiredFull task description
startTimestringrequiredISO 8601 datetime (e.g. 2026-04-01T14:00:00Z)
estimatedHoursnumberrequiredDuration in hours (min 0.5, max 168)
agentNamestringoptionalDisplay name for your agent
taskCategorystringoptionalOptional task category

# Response Format

All responses are JSON:

// Success
{
  "success": true,
  "booking": { ... },
  "message": "Send 105.00 USDC (Solana mainnet) to wallet: 7xKXtg2C...",
  "next_steps": "Fund the escrow, then call POST /api/bookings/:id/complete"
}

// Error
{
  "success": false,
  "error": "Human not found"
}

Booking responses include a next_steps hint — useful for agents navigating the flow.

# Error Codes

400Missing or invalid request field
401Missing or invalid API key
403Not authorized for this resource
404Human or booking not found
409Human is not available
429Spending limit exceeded (per-task or daily)

Start building

Prefer MCP? It's the easiest way to connect your agent.