Skip to content

Developers

Build on Fada

Fada is an all-in-one team productivity app — chat, meetings, calendar, CRM and Kanban tasks in one space. One REST API plus an MCP server let you automate all of it, and let AI agents drive your workspace.

REST · https://fadadz.com/api/v1 · Bearer auth · per-workspace, tenant-isolated keys

Quick start

Make your first authenticated request in three steps.

  1. 1

    Create an API key

    Open Admin → API & webhooks in your workspace and create a key. Grant only the scopes the integration needs — a key is conservative by default.

  2. 2

    Authenticate

    Send your key as a Bearer token on every request. Keys are prefixed crew_sk_ and are bound to one workspace.

  3. 3

    Call the API

    All endpoints live under /api/v1 and return JSON. Here is a first call:

curl https://fadadz.com/api/v1/crm/clients \
  -H "Authorization: Bearer crew_sk_…"
{
  "clients": [
    { "id": "cl_…", "name": "Acme Corp", "stage": "prospect", "leadStatus": null }
  ]
}

Client libraries

Prefer a typed SDK over raw HTTP? Official client libraries wrap every endpoint in one idiomatic call — same scoped crew_sk_ keys, no boilerplate.

TypeScript / JavaScript

npm
npm install @fadadz/sdk
import { FadaClient } from '@fadadz/sdk'
const fada = new FadaClient({ apiKey: 'crew_sk_…' })
const { clients } = await fada.crm.listClients()

PHP

Composer
composer require fadadz/sdk
use Fadadz\Sdk\FadaClient;
$fada = new FadaClient('crew_sk_…');
$clients = $fada->crm->listClients();

Python

PyPI
pip install fadadz
from fada import FadaClient
fada = FadaClient(api_key="crew_sk_…")
clients = fada.crm.list_clients()

Java

Maven Central
com.fadadz:fada-sdk:0.1.0
var fada = FadaClient.builder()
    .apiKey("crew_sk_…").build();
var clients = fada.crm.listClients(null);

Source, per-language READMEs and the OpenAPI spec live in the open-source SDK repo.

fada-api on GitHub

Authentication & scopes

Every request carries an API key as a Bearer token. Each key is bound to a single workspace and is fully tenant-isolated — it can never read or write another workspace's data.

Authorization: Bearer crew_sk_…

Endpoints are gated by per-endpoint scopes. A read call needs the matching :read scope; a mutation needs :write. Grant only what an integration needs.

Messaging

channels:readchannels:writemessages:readmessages:write

Meetings & calendar

meetings:readmeetings:writeevents:readevents:write

CRM

crm:readcrm:write

Kanban tasks

tasks:readtasks:write

Files & users

files:readfiles:writeusers:readusers:write

More

reminders:writepolls:writemembers:writeworkspaces:read

Rate limits

Limits scale with your plan. Writes are capped per minute per key (over-limit calls get an HTTP 429); list endpoints accept an optional ?limit= whose default and maximum scale by plan.

PlanWrites / minMax list size
Free60100
Business300500
Enterprise1,2001,000

API reference

All paths are relative to /api/v1 and require a Bearer key. Expand a group to see its endpoints; the full machine-readable contract lives in the OpenAPI spec.

CRMscopes: crm:read / crm:write
GET/crm/clientsList clients (query: stage, leadStatus, q, ownerUserId)
POST/crm/clientsCreate a client (name required; description, phone, email, website, contacts, stage, tags, ownerUserId, leadStatus, source, priority)
GET/crm/clients/{clientId}Get one client
PATCH/crm/clients/{clientId}Update a client
DELETE/crm/clients/{clientId}Archive a client
POST/crm/clients/{clientId}/lead-moveMove a lead between new / contacted / qualified (leadStatus required, position)
POST/crm/clients/{clientId}/convertConvert lead → prospect, optionally opening a deal (createDeal, dealValue)
GET/crm/clients/{clientId}/activitiesList logged notes, calls and emails
POST/crm/clients/{clientId}/activitiesLog a note / call / email (kind, body required, contactId, occurredAt)
GET/crm/clients/{clientId}/dealsDeals for a client
GET/crm/clients/{clientId}/remindersList follow-up reminders
POST/crm/clients/{clientId}/remindersSchedule a follow-up (preset or remindAt, note, contactId)
GET/crm/boardsProspection pipelines and their columns
GET/crm/dealsList deals (query: boardId, clientId)
POST/crm/dealsCreate a deal (boardId & title required; columnId, clientId, yieldAmount, priority, closeDate, primaryContactId)
PATCH/crm/deals/{dealId}Move or edit a deal
POST/crm/deals/{dealId}/outcomeMark won / lost / open (outcome required, lostReason)
GET/crm/pipelinePipeline totals and per-stage breakdown
GET/crm/membersWorkspace members for owner assignment
Kanban tasksscopes: tasks:read / tasks:write
GET/tasks/boardsList boards (query: kind = tasks | project | prospection)
POST/tasks/boardsCreate a board (name required; columns, kind, description, clientId)
GET/tasks/boards/{boardId}Get a board
PATCH/tasks/boards/{boardId}Update a board (name, columns, kind, description)
DELETE/tasks/boards/{boardId}Archive a board
GET/tasks/boards/{boardId}/tasksList the cards on a board
POST/tasks/boards/{boardId}/tasksCreate a card (title required; description, columnId, priority, dueAt, remindAt, labels, assignees, subtasks)
GET/tasks/{taskId}Get a card
PATCH/tasks/{taskId}Update a card / move lane (title, description, priority, columnId, dueAt, remindAt, labels, assignees, subtasks)
DELETE/tasks/{taskId}Delete a card
POST/tasks/{taskId}/moveDrag within / between lanes (columnId, prevId, nextId)
POST/tasks/{taskId}/completeMark done / reopen (completed: true | false)
Messaging, calendar, meetings, files & userssee the OpenAPI spec for full detail
  • Messaging — channels, threads, messages, reactions, pins and forwards (channels:*, messages:*).
  • Calendar — events and RSVPs (events:*).
  • Meetings — schedule, invite and manage meetings (meetings:*).
  • Files — upload and read files (files:*).
  • Users — members, presence and the key's own status (users:*).
See the full OpenAPI spec →

MCP & AI agents

Fada ships Model Context Protocol (MCP) servers, so AI agents like Claude and Cursor can drive your workspace directly — post messages, schedule meetings, move deals and update tasks — using the same scoped keys as the REST API.

mcp/index.mjs

General server — chat, meetings, calendar, files, reminders and polls.

mcp/crm.mjs

CRM server — clients, leads, deals, activity and follow-ups.

Point your MCP client at a server with a workspace API key, then explore the tools. The same operations are described in the OpenAPI spec.

Start building

Create a workspace, generate a scoped API key, and automate your team's work in minutes.