Every deal, thread, task, invoice, portal, and AI agent in UNOBITS is backed by a sub-15ms REST & Webhook engine. Build integrations without third-party connector fees or rate-limit surprises.
Execute live mock REST requests, view syntax-highlighted code snippets across 6 languages, and inspect response bodies in real-time.
Test endpoints interactively and view native code snippets across languages.
curl -X POST "https://api.unobits.app/v1/workspaces/deals" \
-H "Authorization: Bearer uno_live_8f32dae0" \
-H "Content-Type: application/json" \
-d '{
"deal_name": "Acme Global Enterprise Expansion",
"value": 45000,
"currency": "USD",
"pipeline_stage": "proposal_review",
"contact": {
"name": "Sarah Connor",
"email": "sarah@acmeglobal.com"
}
}'Click Send Request above or switch tabs to simulate sub-15ms live API responses.
No polling necessary. Stream JSON events directly to your backend, verify HMAC-SHA256 signatures, and rely on automatic exponential retry policies.
Zero polling. Receive instant JSON webhooks with cryptographic HMAC-SHA256 signatures directly on your backend servers.
{
"event": "crm.deal.won",
"event_id": "evt_9021a88b",
"created_at": "2026-08-09T00:00:00.000Z",
"data": {
"deal_id": "deal_98f310a2bc",
"deal_name": "Acme Global Enterprise Expansion",
"amount": 45000,
"currency": "USD",
"owner": {
"name": "Jordan Hayes",
"email": "jordan@unobits.app"
},
"account": {
"id": "acc_7710a",
"name": "Acme Corp"
},
"actions_triggered": [
"provision_client_portal",
"slack_victory_ping"
]
}
}Every webhook request includes an x-unobits-signature header to guarantee payload authenticity and prevent replay attacks.
const crypto = require('crypto');
function verifyWebhookSignature(payload, signatureHeader, secret) {
const [tPart, v1Part] = signatureHeader.split(',');
const timestamp = tPart.split('=')[1];
const signature = v1Part.split('=')[1];
const hmac = crypto
.createHmac('sha256', secret)
.update(`${timestamp}.${payload}`)
.digest('hex');
return crypto.timingSafeEqual(Buffer.from(signature), Buffer.from(hmac));
}If your endpoint returns a non-2xx status code or times out, UNOBITS automatically retries with exponential backoff before sending events to the Dead Letter Queue.
Generate scoped API tokens with exact read/write permissions for CRM, Omni-Inbox, Financial Invoices, Task Workflows, or Donna AI dispatch.
Never grant full admin privileges to microservices. Check fine-grained scopes to issue scoped tokens with minimum required permissions.
deals:readFetch deal pipelines, contacts, and historical stage logs.
deals:writeCreate deals, update pipeline stages, and update contact records.
inbox:readAccess customer message threads across Email, Slack, WhatsApp, and SMS.
inbox:replySend outbound emails or chat responses directly into client threads.
finance:readInspect invoices, payments, recurring retainers, and accounting balances.
finance:writeGenerate invoices, trigger payment links, and record client transactions.
workflows:executeTrigger async tasks, task assignments, and multi-step business logic.
ai:dispatchInvoke Donna AI to generate executive briefings and summarize threads.
portals:adminProvision white-label client portal access links and expire sessions.
Store API keys strictly in server environment variables or KMS vaults. Keys with finance:write should never be exposed in client JS bundles.
Auto-generated daily from our OpenAPI 3.1 schema for TypeScript, Python, Go, Rust, Ruby, and PHP with plug-and-play middleware.
Maintained and auto-generated daily from our latest OpenAPI 3.1 schema.
Production-ready snippets for handling webhooks, route handlers, and middleware in your framework of choice.
// src/app/api/webhooks/unobits/route.ts
import { NextResponse } from 'next/server';
import { UnobitsClient, verifyWebhookSignature } from '@unobits/sdk';
const unobits = new UnobitsClient({ apiKey: process.env.UNOBITS_API_KEY! });
export async function POST(req: Request) {
const rawBody = await req.text();
const signature = req.headers.get('x-unobits-signature') || '';
const isValid = verifyWebhookSignature(rawBody, signature, process.env.UNOBITS_WEBHOOK_SECRET!);
if (!isValid) {
return NextResponse.json({ error: 'Invalid HMAC signature' }, { status: 401 });
}
const payload = JSON.parse(rawBody);
if (payload.event === 'crm.deal.won') {
// Auto-trigger client portal setup
await unobits.portals.sessions.create({ dealId: payload.data.deal_id });
}
return NextResponse.json({ received: true });
}Search, filter, and inspect schema parameters, required scopes, and expected JSON response models across every domain.
Provision a deal record, bind contact information, and initiate pipeline automations.
| Field | Type | Required | Description |
|---|---|---|---|
| deal_name | string | Yes | Name of the deal opportunity. |
| value | number | Yes | Monetary value of the deal. |
| pipeline_stage | string | Optional | Stage slug (e.g. proposal, won). |
| contact | object | Optional | Associated primary contact details. |
{
"id": "deal_98f310a2bc",
"status": "active",
"deal_name": "Acme Enterprise",
"value": 45000,
"currency": "USD"
}Machine-readable OpenAPI 3.1 specs, Postman collections, edge execution metrics, and developer community links.
Multi-region redundancy
Global edge routing
Sub-second event stream
Higher on Enterprise
Import our complete endpoint definition directly into Stainless, Fern, Swagger, Insomnia, or Postman to auto-generate client SDKs and mock servers.