Integrations / Api Overview

API Overview

RentBridge's REST API lets you build custom integrations, automate workflows, and pull data into your own systems. Everything the app can do, the API can do — 60+ endpoints.

Base URL

https://api.rentbridge.ai/api/v1

Authentication

The API uses JWT bearer tokens — the same authentication as the app.

  1. Log in to get a token:
curl -X POST https://api.rentbridge.ai/api/v1/auth/login \
  -H "Content-Type: application/json" \
  -d '{"email": "you@company.com", "password": "..."}'
  1. Use the returned access_token on every request:
Authorization: Bearer YOUR_ACCESS_TOKEN

Tokens expire after 30 minutes — re-authenticate to get a fresh one. The token carries your organization and role; you only ever see your own organization's data.

Coming soon: long-lived scoped API keys for server-to-server integrations.

Rate Limits

Requests are rate-limited per client:

Scope Limit
Auth endpoints (/auth/*) 10 requests/minute
Support chat 20 requests/minute
Everything else 100 requests/minute

Exceeding a limit returns 429 Too Many Requests — back off and retry.

Response Format

Responses are plain JSON objects (or arrays) — no envelope:

{
  "id": "…",
  "rental_number": "R-2026-0042",
  "status": "reserved",
  "total": 1140.00
}

Errors use standard HTTP status codes with a detail field:

{ "detail": "Rental not found" }
Code Meaning
200 / 201 Success / created
400 Bad request — check your parameters
401 Missing or expired token
403 Your role can't access this (e.g., platform dashboard needs admin/owner)
404 Not found (or not in your organization)
422 Validation error — the response details which field
429 Rate limited

Core Resources

Equipment — /equipment

CRUD plus AI helpers:

  • GET /equipment · POST /equipment · GET|PUT|DELETE /equipment/{id}
  • PATCH /equipment/{id}/status — status-only update
  • GET /equipment/{id}/recommended-price — AI pricing recommendation
  • GET /equipment/{id}/maintenance-prediction — AI maintenance prediction
  • POST /equipment/smart-search — filtered availability search
  • GET /equipment/import/template — CSV import template

Rentals & Booking Flow — /rentals

  • GET /rentals · POST /rentals · GET|PUT|DELETE /rentals/{id}
  • POST /rentals/{id}/transition — validated status transition (quote → reserved → active → returned → closed, cancel pre-active). Handles equipment status, settlement creation, and learning feedback automatically.

Dynamic Pricing — /pricing

  • POST /pricing/quote — live quote: base rate × demand multiplier × seasonal adjustment − duration discount

Insurance — /insurance

  • POST /insurance/rentals/{rental_id}/quotes — generate partner quotes (idempotent)
  • POST /insurance/quotes/{quote_id}/purchase — bind a policy
  • GET /insurance/commission-summary — commission earned + attach rate

Settlements — /settlements

  • GET /settlements · GET /settlements/summary — GMV, commission, payouts, deposits held
  • POST /settlements/rentals/{rental_id} — create settlement (idempotent)
  • POST /settlements/{id}/payout — Branch instant payout
  • POST /settlements/{id}/deposit/release — release or forfeit escrowed deposit

Customers, Locations, Maintenance

Standard CRUD at /customers, /locations, /maintenance, plus per-customer reports (/customers/{id}/reports/rental-history, /customers/{id}/reports/spend-analytics).

Fleet & Analytics

  • GET /fleet/overview · GET /fleet/map · GET /fleet/alerts · PATCH /fleet/{id}/status
  • GET /analytics/fleet — utilization, revenue MTD, top equipment
  • GET /reports/equipment-performance · GET /reports/export — CSV export

AI Agents — /agents

  • POST /agents/utilization · POST /agents/pricing/{equipment_id} · POST /agents/maintenance/check · POST /agents/report

Learning Loops — /learning

  • GET /learning/status · GET /learning/insights/{loop} · POST /learning/process

Dashboards — /dashboards

  • GET /dashboards/owner · GET /dashboards/renter/{customer_id} · GET /dashboards/platform (admin/owner only)

Example: Quote and Book a Rental

# 1. Get a dynamic quote
curl -X POST https://api.rentbridge.ai/api/v1/pricing/quote \
  -H "Authorization: Bearer $TOKEN" -H "Content-Type: application/json" \
  -d '{"equipment_id": "…", "start_date": "2026-08-01", "end_date": "2026-08-10"}'

# 2. Create the rental (status: quote)
curl -X POST https://api.rentbridge.ai/api/v1/rentals \
  -H "Authorization: Bearer $TOKEN" -H "Content-Type: application/json" \
  -d '{"customer_id": "…", "equipment_id": "…", "start_date": "2026-08-01", "expected_end_date": "2026-08-10"}'

# 3. Advance it through the booking flow
curl -X POST https://api.rentbridge.ai/api/v1/rentals/{id}/transition \
  -H "Authorization: Bearer $TOKEN" -H "Content-Type: application/json" \
  -d '{"new_status": "reserved"}'

Best Practices

  • Use the transition endpoint for status changes — it enforces the state machine and triggers settlements/learning correctly; don't PUT the status field directly
  • Idempotent by design: insurance quote generation and settlement creation are safe to retry
  • Respect rate limits: batch with list endpoints and filters rather than per-item calls
  • Never commit credentials — keep login credentials and tokens in environment variables

Coming Soon

  • Long-lived scoped API keys
  • Outbound webhooks (see Webhooks)
  • Official SDKs (Node.js, Python)

Support

Questions about the API? Contact support via the Help icon in your dashboard or email support@rentbridge.ai.

Last updated: April 2026