bi369AI
Why Bi369Pricing
Talk to Sales
Log inCreate workspace
bi369AI

Less busywork.
More business.

Your invoices, your people, your website. A suite that grows with you.

Let’s talk

The suite

  • Invoice369Simplify your invoicing
  • Teams369Take care of your people
  • Webstudio369Build your online presence
  • Pricing
  • Why Bi369
  • Help centre
  • Talk to Sales

© 2026 Bi369 AI. All rights reserved by Calpar Technologies.

  • Privacy
  • Terms
  • Refunds
  • Security
Developer API

Build with the Bi369 AI API

Automate workflows, sync data, and extend your platform with our comprehensive REST API. Everything available in the UI is available via the API.

Get your API keyRead the docs

REST API

Standard JSON REST API. Predictable resource-oriented URLs with conventional HTTP response codes.

API Key Auth

Authenticate with Bearer tokens. Generate per-workspace API keys from your admin settings.

Webhooks

Push notifications to your endpoints when events happen — no polling required.

Tenant-scoped

Every API call is scoped to your workspace. No cross-tenant data access possible.

Base URL & Authentication

All API requests go to https://api.bi369.com/v1. Include your API key as a Bearer token in the Authorization header, and your workspace slug in the X-Tenant-Slug header.

API keys are available on the Pro and Enterprise plans. You can generate and revoke keys from Admin → Settings → API Keys.

cURL
curl -X GET "https://api.bi369.com/v1/crm/leads" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -H "X-Tenant-Slug: your-workspace"

Key Endpoints

Every module in Bi369 AI exposes a full CRUD API. Here's a selection of the most commonly used endpoints — the full reference is generated from our OpenAPI spec.

👥

CRM

GET/api/v1/crm/leadsList all leads with filters
POST/api/v1/crm/leadsCreate a new lead
GET/api/v1/crm/leads/{id}Get a specific lead
PATCH/api/v1/crm/leads/{id}Update lead fields
GET/api/v1/crm/customersList all customers
POST/api/v1/crm/quotationsCreate a quotation
📋

Projects

GET/api/v1/projectsList projects
POST/api/v1/projectsCreate a project
GET/api/v1/projects/{id}/tasksList project tasks
POST/api/v1/projects/{id}/tasksAdd a task
PATCH/api/v1/tasks/{id}Update task status
💰

Finance

GET/api/v1/finance/invoicesList invoices
POST/api/v1/finance/invoicesCreate an invoice
POST/api/v1/finance/invoices/{id}/sendSend invoice
GET/api/v1/finance/expensesList expenses
GET/api/v1/finance/reports/plProfit & loss report
🏢

HR

GET/api/v1/hr/employeesList employees
POST/api/v1/hr/employeesAdd an employee
GET/api/v1/hr/leave-requestsList leave requests
POST/api/v1/hr/leave-requestsSubmit leave request
GET/api/v1/hr/attendanceGet attendance records

Code Examples

Get started in minutes. Sample code for the most common API operations.

cURL

cURL
curl -X GET "https://api.bi369.com/v1/crm/leads" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -H "X-Tenant-Slug: your-workspace"

JavaScript / Node.js

JavaScript
import { Bi369Client } from "@bi369ai/sdk";

const client = new Bi369Client({
  apiKey: process.env.BI369_API_KEY,
  tenantSlug: "your-workspace",
});

const leads = await client.crm.leads.list({
  status: "active",
  limit: 20,
});

console.log(leads.data);

Python

Python
import bi369

client = bi369.Client(
    api_key=os.environ["BI369_API_KEY"],
    tenant_slug="your-workspace",
)

leads = client.crm.leads.list(
    status="active",
    limit=20,
)

for lead in leads.data:
    print(lead.name, lead.email)

Webhooks

Subscribe to real-time events and receive a POST request to your endpoint whenever something happens in your workspace. Each webhook payload includes the event type, timestamp, tenant identifier, and full resource data.

Webhooks are signed with HMAC-SHA256 so you can verify the payload originated from Bi369 AI. Configure webhook endpoints from Admin → Settings → Webhooks.

Available events

lead.created

Fired when a new lead is added

lead.converted

Fired when a lead is converted to customer

invoice.sent

Fired when an invoice is emailed to a customer

invoice.paid

Fired when an invoice is marked as paid

project.completed

Fired when a project status changes to completed

employee.onboarded

Fired when a new employee is marked active

agent.action

Fired when an Autonomous Agent takes an action

Sample payload

JSON
// POST https://your-app.com/webhooks/bi369
{
  "event": "invoice.paid",
  "timestamp": "2024-12-01T14:32:00Z",
  "tenant": "your-workspace",
  "data": {
    "id": "inv_abc123",
    "number": "INV-0042",
    "amount": 15000,
    "currency": "USD",
    "customer": { "id": "cust_xyz", "name": "TechVista" }
  }
}

SDKs

Node.js / TypeScript
Coming soon
@bi369ai/sdk
Python
Coming soon
bi369
Go
Coming soon
github.com/bi369ai/go-sdk

SDKs are coming soon. In the meantime, the REST API works with any HTTP client. Star our GitHub repo to get notified when SDKs ship.

Rate Limits

PlanRequests / hourBurst limit
Free100 / hour10 / min
Starter1,000 / hour50 / min
Pro10,000 / hour200 / min
EnterpriseUnlimitedCustom

Rate limit headers are included in every response: X-RateLimit-Limit, X-RateLimit-Remaining, and X-RateLimit-Reset.

Ready to start building?

Get your API key by signing up for a Pro or Enterprise plan. Free trials include access to the full platform — upgrade to unlock API access.

Get API key — Pro planCompare plans

Questions? Contact us or visit the Knowledge Base.