Skip to contentSkip to Content
API ReferenceOverview

API Reference

Rentalot provides a REST API for programmatic access to your account. Use it to sync properties from your PMS, build custom integrations, connect CRM tools, or let AI bots manage your rental operations.

Base URL

https://rentalot.ai/api/v1

Authentication

All API requests require an API key passed in the Authorization header:

Authorization: Bearer your_api_key_here

Generate and manage API keys from Settings > API Keys in your dashboard. See Authentication for details.

Endpoints

Properties

MethodEndpointDescription
GET/propertiesList all properties
POST/propertiesCreate a property
GET/properties/:idGet a property
PATCH/properties/:idUpdate a property
DELETE/properties/:idDelete a property

Property Images

MethodEndpointDescription
GET/properties/:id/imagesList images for a property
POST/properties/:id/images/presignGet a presigned upload URL
POST/properties/:id/images/confirmConfirm an uploaded image
DELETE/properties/:id/images/:imageIdDelete an image
PATCH/properties/:id/images/reorderReorder images

Contacts

MethodEndpointDescription
GET/contactsList all contacts
POST/contactsCreate a contact
GET/contacts/:idGet a contact
PATCH/contacts/:idUpdate a contact
DELETE/contacts/:idDelete a contact (soft-delete)

Contacts are also created automatically when prospects interact with your workflows.

Showings

MethodEndpointDescription
GET/showingsList all showings
POST/showingsSchedule a showing
GET/showings/:idGet a showing
PATCH/showings/:idUpdate a showing
DELETE/showings/:idCancel a showing
GET/showings/availabilityCheck available time slots

Conversations

MethodEndpointDescription
GET/conversationsList all conversations
GET/conversations/:id/messagesGet messages in a conversation
GET/conversations/searchSearch across message content

Read-only access for CRM sync and reporting.

Events

MethodEndpointDescription
GET/eventsList all calendar events

Read-only view of your full calendar (showings, synced Google Calendar events, Cal.com events).

Workflows

MethodEndpointDescription
GET/workflowsList workflow templates
GET/workflows/:idGet a template
GET/workflows/runsList workflow runs
POST/workflows/runsTrigger a workflow run
GET/workflows/runs/:idGet a run

Messages

MethodEndpointDescription
POST/messagesSend a message to a contact

Drafts

MethodEndpointDescription
GET/draftsList draft messages
POST/draftsCreate a draft
GET/drafts/:idGet a draft
PATCH/drafts/:idUpdate a draft
DELETE/drafts/:idDelete a draft
POST/drafts/:id/sendSend a draft

Follow-ups

MethodEndpointDescription
GET/followupsList scheduled follow-ups
POST/followupsSchedule a follow-up
GET/followups/:idGet a follow-up
DELETE/followups/:idCancel a follow-up

Sessions (Pre-Screening)

MethodEndpointDescription
GET/sessionsList pre-screening sessions
GET/sessions/:idGet a session
PATCH/sessions/:id/reviewApprove or deny a session

View and manage prospect submissions from public chat workflows.

Webhooks

MethodEndpointDescription
GET/webhooksList webhook subscriptions
POST/webhooksCreate a webhook
GET/webhooks/:idGet a webhook
PATCH/webhooks/:idUpdate a webhook
DELETE/webhooks/:idDelete a webhook
POST/webhooks/:id/testSend a test ping

Settings

MethodEndpointDescription
GET/settingsGet all agent settings
PATCH/settingsUpdate agent settings
GET/settings/followupsGet follow-up settings
PATCH/settings/followupsUpdate follow-up settings

Idempotency

All POST endpoints support an optional Idempotency-Key header. If you send the same key with the same request body within 24 hours, you’ll get the cached response back with an X-Idempotent-Replayed: true header. Use this to safely retry requests without creating duplicates.

Idempotency-Key: your-unique-key-here

Access by Plan

PlanAPI AccessDetails
Free TrialNoneNo API access
StarterRead-onlyGET on all resources. No writes.
ProFull CRUDRead + write on all resources. Webhooks.
ScaleFull + priorityHigher rate limits, more API keys.

Rate Limits

Rate limits are per API key and vary by plan:

PlanGlobal RPMDaily Requests
Starter30/min5,000/day
Pro120/min50,000/day
Scale600/min500,000/day

Write operations have additional per-resource daily and monthly caps. See your plan details for specifics.

Rate limit headers are included in every response:

X-RateLimit-Limit: 120 X-RateLimit-Remaining: 87 X-RateLimit-Reset: 1707667200 X-RateLimit-Resource: properties Retry-After: 3 (429 responses only)

Pagination

All list endpoints return paginated results:

{ "data": [...], "pagination": { "page": 1, "limit": 20, "total": 142, "totalPages": 8 } }

Page size is capped by your plan tier (Starter: 50, Pro: 100, Scale: 200).

Errors

All errors follow a consistent format:

{ "error": { "code": "NOT_FOUND", "message": "Property not found" } }
StatusCodeMeaning
401UNAUTHORIZEDMissing or invalid API key
403FORBIDDENPlan doesn’t allow this operation
404NOT_FOUNDResource not found
422VALIDATION_ERRORInvalid request body or parameters
429RATE_LIMITEDRate limit exceeded — check Retry-After header

Developer Tools

MCP Server

Connect any AI assistant (Claude Code, Claude Desktop, Cursor, Codex, Gemini CLI) to your Rentalot account with our MCP server . 65 tools covering all API resources.

# Claude Code claude mcp add rentalot -e RENTALOT_API_KEY=ra_your_key -- npx -y @rentalot/mcp-server # Codex codex mcp add --env RENTALOT_API_KEY=ra_your_key -- npx -y @rentalot/mcp-server # Gemini CLI gemini mcp add --transport stdio rentalot -- npx -y @rentalot/mcp-server

For Claude Desktop, Cursor, and Windsurf, add to your config JSON:

{ "mcpServers": { "rentalot": { "command": "npx", "args": ["-y", "@rentalot/mcp-server"], "env": { "RENTALOT_API_KEY": "ra_your_key" } } } }

See the full setup guide  for all supported clients and config file authentication.

CLI

Manage properties, contacts, showings, and workflows from the terminal with the Rentalot CLI .

go install github.com/Rentalot-ai/rentalot-cli/cmd/rentalot@latest rentalot --help

Also usable as a Go library:

import "github.com/Rentalot-ai/rentalot-cli/pkg/rentalotcli"

OpenAPI Spec

A machine-readable OpenAPI 3.0 spec is available at:

GET /api/v1/openapi.json

Use it to auto-generate client libraries in any language.