insane home — Operations Studio

Developers

Your CRM,
your stack.

REST endpoints, session auth, BulkVS number provisioning, and Lesnet SIP calling. Build on your CRM data without a proprietary query language.

Headless CRM architecture

Treat insanehome as your customer data backend. Grids are relational tables. Projects are isolated workspaces. Everything is accessible via REST—no proprietary query language required.

REST APIJSON payloadsBulkVS + Lesnet SIPSession auth
Example request
curl -X GET \
  'https://<your-worker-origin>/api/project-grid?projectId=...' \
  -H 'Cookie: ih_session=...' \
  -H 'Content-Type: application/json'

// Response
{
  "columns": [...],
  "rows": [...],
  "updatedAt": "2026-06-18T12:00:00Z"
}

Authentication

insanehome uses session-based authentication today. Sign in via the web app or Google OAuth—your session cookie is sent automatically on API requests from the browser. Server-to-server integrations should forward the session cookie or authenticate through the same auth endpoints the app uses.

Session cookies

After sign-in, API requests include an HTTP-only session cookie scoped to your domain. No Bearer token is required for browser-based access.

Auth endpoints

Use /api/auth/* for email and Google flows. Workspace access is enforced per session—requests outside your workspace return 403.

REST API

Core endpoints that ship today. All routes run on your worker origin—the same host as the web app.

MethodEndpoint
GET/api/account-projects
GET/PATCH/api/project
GET/PATCH/api/project-grid
GET/api/project-grid/live
GET/api/bulkvs/owned-numbers
POST/api/bulkvs/search-numbers
POST/api/bulkvs/buy-number
POST/api/lesnet-sip/session
GET/api/lesnet-sip/transcribe
POST/api/billing-checkout
POST/api/auth/*

Webhooks

Voice sessions emit events over the Lesnet SIP bridge WebSocket. Generic record webhooks with HMAC verification are on the roadmap.

Available now — Voice

session.created
session.started
session.stopped
transcription.partial
transcription.final

Coming soon — Record events

record.created
record.updated
record.deleted
automation.triggered
workspace.member.added

Lesnet session payload

{
  "sessionId": "sess_...",
  "reservationId": "res_...",
  "status": "active",
  "projectId": "proj_xyz789"
}

Outbound calls use BulkVS for numbering and the Lesnet SIP bridge for media. Connect via /api/lesnet-sip/* routes.

Integration surface

Connect insanehome to the tools you already use.

BulkVS Voice

DID search, purchase, and trunk management for outbound calling.

Lesnet SIP Bridge

Browser-to-PSTN calling and live transcription via WebSocket.

Grid API

Programmatic read/write access to your relational data model.

Session Auth

Cookie-based authentication scoped to your workspace.

Billing API

Stripe checkout integration for plan upgrades.

Custom Interfaces

Embed React-based views inside project workspaces.

Record Webhooks

Generic HMAC-signed webhooks for record events—on the roadmap.

Coming soon

Official SDK

TypeScript and Python client libraries are in active development. Join the waitlist to get early access and shape the API ergonomics.

Join waitlist
import { Insanehome } from '@insanehome/sdk';

const client = new Insanehome({ cookie: process.env.IH_SESSION });
const grid = await client.projectGrid.get({ projectId: '...' });

Start building today

API access included on all paid plans. Free tier includes read-only endpoints.