Developer Platform

    Build on RentalTide

    Integrate with the RentalTide REST API to build custom integrations, automate workflows, and extend your rental operations programmatically.

    RESTful API
    OAuth 2.0
    Webhook Events
    99.9% Uptime

    Get Started in Four Steps

    From sign-up to your first API call in minutes.

    1

    Create Account

    Sign up for a free RentalTide account at app.rentaltide.com.

    2

    Register Your App

    Navigate to Settings > API & Integrations to register a new application.

    3

    Get Credentials

    Copy your Client ID and Client Secret from the app dashboard.

    4

    Start Building

    Authenticate via OAuth 2.0 and start making API calls.

    Manage Your API Credentials

    Securely manage your API keys, rotate secrets, and control access scopes from a single dashboard.

    Client ID & Secret

    Unique credentials generated per application to authenticate API requests securely.

    Token Rotation

    Rotate your client secret at any time without downtime. Old tokens remain valid during the grace period.

    Scopes & Permissions

    Fine-grained access control — request only the permissions your integration needs.

    Rate Limits

    Generous rate limits with clear headers so you can build reliable integrations.

    API Credentials

    rt_live_ck_2xK9mP4v...L7qR
    ••••••••••••••••••••••••••••
    bookings:read
    bookings:write
    assets:read
    customers:read
    webhooks:manage

    Make Your First API Call

    Authenticate with OAuth 2.0 and fetch bookings in just a few lines of code.

    terminal
    1# 1. Get an OAuth token
    2curl -X POST https://v3.api.rentaltide.com/oauth/token \
    3 -H "Content-Type: application/json" \
    4 -d '{
    5 "grant_type": "client_credentials",
    6 "client_id": "rt_live_ck_2xK9mP4vL7qR",
    7 "client_secret": "rt_live_sk_••••••••••"
    8 }'
    9
    10# 2. Fetch bookings
    11curl https://v3.api.rentaltide.com/v3/bookings \
    12 -H "Authorization: Bearer ACCESS_TOKEN" \
    13 -H "Content-Type: application/json"

    Sample Response

    response.json
    1{
    2 "data": [
    3 {
    4 "id": "bk_2xK9mP4vL7",
    5 "status": "confirmed",
    6 "asset": {
    7 "id": "ast_8nRj3Kw2",
    8 "name": "Pontoon Sunset Cruiser"
    9 },
    10 "customer": {
    11 "id": "cus_4mQp7Yx9",
    12 "name": "Jane Cooper"
    13 },
    14 "start_time": "2026-03-15T10:00:00Z",
    15 "end_time": "2026-03-15T14:00:00Z",
    16 "total": 24900,
    17 "currency": "usd"
    18 }
    19 ],
    20 "has_more": true,
    21 "next_cursor": "cur_9vZk2Lm8"
    22}
    New: Two-Way Audio API

    Build With Two-Way Audio

    Integrate real-time voice communication directly into your app. Initiate phone calls or walkie-talkie sessions, look up renters by phone, and take action on bookings — all through the API.

    Phone Calls

    Initiate full-duplex voice calls between your app and any RentalTide location or staff member.

    Walkie-Talkie Mode

    Push-to-talk communication for instant coordination across teams on the water.

    Renter Lookup

    Search renters by phone number to instantly pull up customer profiles during calls.

    Booking Context

    Fetch active bookings for any renter to give your agents full context before they speak.

    Real-Time Events

    Receive WebSocket events for call:incoming, call:answered, call:ended, and more.

    AI-Ready

    Purpose-built for AI calling assistants — look up, connect, and take action in a single flow.

    Required OAuth scopes:
    read:customers
    read:bookings
    write:bookings
    audio:call

    Audio API in Action

    Explore the endpoints you need to build voice-enabled integrations.

    initiate-call.js
    1// Initiate a call into a rental location
    2const call = await fetch(
    3 "https://v3.api.rentaltide.com/calls/partner/initiate",
    4 {
    5 method: "POST",
    6 headers: {
    7 Authorization: `Bearer ${access_token}`,
    8 "Content-Type": "application/json",
    9 },
    10 body: JSON.stringify({
    11 customerId: "cus_4mQp7Yx9",
    12 locationId: "loc_8nRj3Kw2",
    13 targetType: "location",
    14 targetId: "loc_8nRj3Kw2",
    15 callerName: "AI Assistant",
    16 callerPhone: "+15551234567",
    17 callMode: "phone", // or "walkie_talkie"
    18 context: {
    19 reason: "booking_followup",
    20 bookingId: "bk_2xK9mP4vL7",
    21 },
    22 }),
    23 }
    24);
    25
    26const { call: callData, token, roomName } = await call.json();
    27// Connect to the Twilio room with the returned token
    28console.log(`Call initiated: ${callData.callId}`);

    Example: AI Calling Assistant

    End-to-end flow — customer calls in, AI looks up their info, connects to the location.

    ai-calling-assistant.js
    1const API = "https://v3.api.rentaltide.com";
    2
    3// Full AI calling assistant flow
    4// 1. Customer calls in - look up their info
    5const phone = incomingCall.callerPhone; // e.g. "+15551234567"
    6
    7const renterRes = await fetch(
    8 `${API}/calls/partner/renters/search?phone=${encodeURIComponent(phone)}`,
    9 { headers: { Authorization: `Bearer ${access_token}` } }
    10);
    11const { renters } = await renterRes.json();
    12
    13if (renters.length > 0) {
    14 const renter = renters[0];
    15
    16 // 2. Fetch their active bookings for full context
    17 const bookingRes = await fetch(
    18 `${API}/calls/partner/renters/${renter.id}/bookings?status=active`,
    19 { headers: { Authorization: `Bearer ${access_token}` } }
    20 );
    21 const { bookings } = await bookingRes.json();
    22 const activeRental = bookings[0];
    23
    24 // 3. Initiate two-way audio with the location
    25 const callRes = await fetch(`${API}/calls/partner/initiate`, {
    26 method: "POST",
    27 headers: {
    28 Authorization: `Bearer ${access_token}`,
    29 "Content-Type": "application/json",
    30 },
    31 body: JSON.stringify({
    32 customerId: renter.customerId,
    33 locationId: activeRental.locationId,
    34 targetType: "location",
    35 targetId: activeRental.locationId,
    36 callerName: `${renter.firstName} (via AI)`,
    37 callerPhone: phone,
    38 callMode: "phone",
    39 context: {
    40 renterId: renter.id,
    41 activeBooking: activeRental.rentalId,
    42 },
    43 }),
    44 });
    45
    46 const { token, roomName } = await callRes.json();
    47
    48 // 4. Connect to the Twilio room with the token
    49 const { connect } = await import("twilio-video");
    50 await connect(token, { name: roomName, audio: true, video: false });
    51}

    What You Can Build

    AI Phone Agents

    Build an AI that answers customer calls, looks up their rentals, and routes to the right location.

    Fleet Dispatch Radio

    Walkie-talkie channels for real-time coordination between dock staff and boats on the water.

    Automated Follow-ups

    Trigger outbound calls for booking confirmations, weather alerts, or check-in reminders.

    CRM Call Logging

    Log every call with full renter context, booking status, and call duration back to your CRM.

    Explore the Complete API Documentation

    Comprehensive reference for every endpoint, webhook event, and data model in the RentalTide API.

    50+ Endpoints
    Webhook Events
    SDKs Coming Soon