Tenaro API v1 ยท Preview

Build on Tenaro

Tenaro is becoming the operating system for rental property management. The API lets you sync properties, leases, payments, and maintenance with your accounting software, dashboards, and custom tools, and webhooks keep everything in sync in real time.

Everything you need to integrate

A modern REST API with the conventions you already know: versioned URLs, JSON everywhere, cursor pagination, and idempotent writes.

๐Ÿ”Œ

REST + JSON

Resource-oriented endpoints at https://tenaro.io/api/v1/โ€ฆ. Predictable status codes and one consistent error format across every call.

๐Ÿ””

Webhooks

Get notified when leases are signed, payments succeed, or maintenance is completed. HMAC-signed, retried with backoff. Webhook guide โ†’

๐Ÿ”‘

Scoped API keys

Create per-workspace keys with least-privilege scopes. Keys are hashed at rest and can be revoked or expired at any time.

๐Ÿ“ฆ

SDKs

Official SDKs for JavaScript/TypeScript, Python, and PHP are on the roadmap. Until then, it's plain HTTPS: curl works fine.

๐Ÿงช

Sandbox

A one-click test workspace with generated properties, leases, and tenants is planned, so you can build without touching production data.

๐Ÿ“ˆ

Rate limits that scale

Generous per-key limits with X-RateLimit-* headers and 429 + Retry-After when you need to slow down.

Quickstart

From zero to your first API call in about five minutes.

Create a workspace

Sign up for Tenaro and create your workspace. Every API key belongs to exactly one workspace and can never see another's data.

Generate an API key

Request a key yourself: sign in, go to Settings โ†’ API access, and submit a key request. Your workspace owner approves it, and the key is shown to you exactly once. Your key looks like tnr_yourworkspace_โ€ฆ. Treat it like a password.

Make your first call

List the properties in your workspace:

# List properties (paginated)
curl -H "Authorization: Bearer tnr_yourworkspace_YOUR_KEY" \
  "https://tenaro.io/api/v1/properties?limit=5"

Handle pagination

List endpoints return pagination.has_more and pagination.next_cursor. Pass next_cursor as starting_after to fetch the next page.

Subscribe to webhooks

Stop polling. Pick the events you care about: payment.succeeded, maintenance.completed, lease.signed, and we'll push them to you. See the events catalog โ†’

What you can build

A few ideas from the roadmap our design partners are already asking about.

๐Ÿ“Š

Owner dashboards

Pull rent rolls, delinquency, and P&L into the BI tool your investors already open.

๐Ÿงพ

Accounting sync

Push payments and expenses to QuickBooks or Xero nightly. No more CSV exports.

๐Ÿ 

Tenant apps

Build a white-labeled tenant portal with your own branding on top of Tenaro data.

๐Ÿ”ง

Vendor dispatch

Auto-create work orders from IoT sensors: leak detected, vendor assigned, tenant notified.

Talk to Tenaro from your AI assistant

Our Model Context Protocol (MCP) server plugs your workspace into AI assistants like Claude Desktop, Muse, and any MCP-compatible client. Ask about your properties in plain language. No code required.

🛠️

50 ready-made tools

Full CRUD for properties, units, tenants, vendors, leases, maintenance, payments, campaigns, and vendor messages, one-to-one with the live v1 endpoints, so the assistant sees exactly what the API sees. Destructive tools require an explicit confirm:true.

🔒

Your key, your machine

The server runs locally over stdio. Your API key lives only in your environment variables. It is never logged, and is sent only in the Authorization header to the Tenaro API.

📦

Ships with Tenaro

Node 18+, a single dependency, no build step. The source lives in the Tenaro codebase under app/mcp and its README is the full setup guide.

Install and connect

# Install (inside your Tenaro checkout)
cd /Projects/Tenaro/app/mcp && npm install

# Connect with the Muse CLI (replace the placeholders)
muse mcp add tenaro \
  --env TENARO_API_KEY=<your-key> \
  --env TENARO_WORKSPACE=<your-workspace-slug> \
  -- node /Projects/Tenaro/app/mcp/index.js

For Claude Desktop, add the same command and environment variables under mcpServers in claude_desktop_config.json. Match the key's scope to what you'll do: read for questions, write to create/update, delete for destructive tools (each asks for confirm:true).

Start building today

The v1 API gives you full control of your workspace: 50 live endpoints covering properties, units, tenants, vendors, leases, maintenance, payments, campaigns, and more. API keys are self-service and secure: sign in, open Settings → API access, and request the access level you need (read, write, or delete). Your workspace owner approves the request, the key is issued with that scope, and it is shown to you exactly once.

Read the API reference