🔌 Kedb API 开放平台

智能CRM客户管理系统统一接口文档 — 供开放API调用方、浏览器插件、电子名片小程序、邀请函、自有系统等外部系统对接使用

Base URL: https://www.kedb.com.cn (部署后替换为您的域名)
📋 版本 v2.0 🔄 更新于 2026-09-09 🔐 双重认证 📊 调用统计

📖 API 概览

Kedb 智能CRM提供两类API接口:开放API(密钥认证)供第三方开发者调用,内部API(Session认证)供浏览器插件和前端使用。所有接口均采用 RESTful 风格,返回 JSON 格式数据。

GET
/api/openapi/v1/*
开放API,API密钥认证,租户/平台级数据
POST
/api/crm/v1/*
插件专用接口,Session认证,查重/登记/标注
POST
/api/crm/*
业务接口,Session认证,客户/公海/合同等
POST
/api/auth/*
认证接口,登录/注册/验证码等

💡 新用户建议:先阅读「认证方式」了解如何获取密钥,然后从「开放API」开始对接。平台级接口需管理员创建平台密钥,租户级接口需租户申请API密钥并经管理员审核。

🔐 认证方式说明

1

方式一:API密钥认证(推荐外部系统使用)
在请求头中携带 X-App-KeyX-App-Secret。适用于电子名片小程序、邀请函、自有系统、第三方对接等。
申请流程:登录后台 → 服务市场 → 开放API平台 → 提交申请 → 管理员审核通过 → 创建密钥 → 查看密钥

2

方式二:Session认证(浏览器插件/前端使用)
先调用 GET /api/auth/captcha 获取验证码,再调用 POST /api/auth/login 获取 Session,后续请求自动携带 Cookie。

3

密钥类型区分
租户密钥:只能访问本租户数据,需租户申请+管理员审核
平台密钥:可访问全站数据,仅平台管理员可创建

GET API信息 租户平台

/api/openapi/v1/info

获取API服务基本信息,无需认证,可用于连通性检测。

响应示例
{
  "code": 0,
  "data": {
    "name": "Kedb CRM OpenAPI",
    "version": "v2.0",
    "status": "running"
  }
}

GET 客户列表 租户密钥

/api/openapi/v1/tenant/customers?page=1&pageSize=20&keyword=xxx

获取当前租户的客户列表,支持分页和关键词搜索。仅返回该租户有权限查看的数据。

请求参数(Query)
参数类型必填说明
pageint页码,默认1
pageSizeint每页条数,默认20,最大100
keywordstring搜索公司名/法人/手机号
lead_stageint1=公海 3=客户
cust_statusint1=线索 2=跟进中 3=成交 4=无效
请求头
X-App-Key: your_app_key
X-App-Secret: your_app_secret
响应示例
{
  "code": 0,
  "data": {
    "list": [
      { "id": 1, "company_name": "XX科技有限公司", "legal_person": "张三", "phone": "138****1234", "cust_status": 2, "responsible_person": "李四", "create_time": "2026-09-01 10:00:00" }
    ],
    "total": 100,
    "page": 1,
    "pageSize": 20
  }
}

GET 公海列表 租户密钥

/api/openapi/v1/tenant/pool?page=1&pageSize=20

获取当前租户公海池中的客户列表。

请求参数(Query)
参数类型必填说明
pageint页码,默认1
pageSizeint每页条数,默认20
pool_idint指定公海池ID,不传查全部公海

GET 查重检测 租户密钥

/api/openapi/v1/tenant/check?company_name=xxx&phone=xxx

检测公司或手机号是否已在库中,避免重复录入。这是最常用的接口之一。

请求参数(Query)
参数类型必填说明
company_namestring公司全称(模糊匹配)
phonestring手机号(精确匹配)
legal_personstring法人姓名

⚠️ company_name 和 phone 至少填写一项。返回结果中 exists=true 表示已存在。

GET 查询日志 租户密钥

/api/openapi/v1/tenant/logs?page=1&pageSize=20

获取当前租户的查重查询日志记录。

GET 平台统计 平台密钥

/api/openapi/v1/platform/stats

获取全平台运营统计数据,包括租户总数、用户总数、客户总数、查询次数等。仅平台密钥可调用。

GET 公司列表 平台密钥

/api/openapi/v1/platform/companies?page=1&pageSize=20

获取平台所有租户公司列表。仅平台密钥可调用。

GET API调用统计 平台密钥

/api/openapi/v1/platform/api-usage

获取各API密钥的调用次数统计。仅平台密钥可调用。

GET 获取验证码

/api/auth/captcha

获取图形验证码(SVG格式),验证码文本嵌入在SVG的 text 标签中。登录时需携带此验证码。

响应
Content-Type: image/svg+xml
Set-Cookie: connect.sid=xxx

<!-- SVG中包含验证码字符,如 <text>A</text><text>B</text>... -->

POST 用户登录

/api/auth/login

使用用户名密码登录,获取 Session。需先调用验证码接口获取验证码。

请求参数
参数类型必填说明
usernamestring用户名
passwordstring密码
captchastring验证码(从SVG中提取)
响应示例
{
  "code": 0,
  "user": {
    "id": 23,
    "username": "江志高",
    "display_name": "江志高",
    "role": "user",
    "company_id": 9,
    "company_role": "owner",
    "data_scope": "all"
  }
}

POST 用户注册

/api/auth/register

新用户注册。可通过邀请码加入已有公司,或创建新公司成为租户管理员。同一公司名称注册数量受限。

请求参数
参数类型必填说明
usernamestring用户名(唯一)
passwordstring密码(至少6位)
company_namestring公司名称
captchastring验证码
invite_codestring邀请码(加入已有公司时填写)

GET 当前用户信息

/api/auth/me

获取当前登录用户的详细信息,包括公司、角色、权限、套餐等。需Session认证。

POST 退出登录

/api/auth/logout

销毁当前Session,退出登录。

POST 修改密码

/api/auth/change-password

修改当前用户密码。需Session认证。

请求参数
参数类型必填说明
old_passwordstring原密码
new_passwordstring新密码

POST 客户列表

/api/crm/customer/list

获取客户/公海列表,支持丰富的筛选条件。需Session认证。数据权限根据用户角色自动过滤(全公司/部门/本人)。

请求参数
参数类型必填说明
pageint页码,默认1
pageSizeint每页条数,默认20
keywordstring搜索关键词
leadStagestring1=公海 mine=我的客户 3=全部客户
custStatusstring客户状态:1线索 2跟进中 3成交 4无效
categorystring客户分类
responsiblestring负责人
provincestring省份
citystring城市
poolIdint公海池ID
scopestringmine=仅我的 all=全部

POST 客户详情

/api/crm/customer/detail

根据公司名获取客户完整信息,包括基本信息、联系人列表、跟进记录。

请求参数
参数类型必填说明
companyNamestring公司全称

POST 新增客户

/api/crm/customer/create

新增客户/联系人。系统会自动检测手机号是否已存在,根据公司名自动填充省份城市。

请求参数
参数类型必填说明
companyNamestring公司全称
namestring法人/联系人姓名
phonestring手机号
categorystring客户分类(自定义)
responsiblePersonstring负责人,默认当前用户
leadStageint1=公海 3=客户,默认3
provincestring省份(可自动识别)
citystring城市(可自动识别)
sourceTypeint1=手动 2=名片 3=邀请 4=网站

POST 编辑客户

/api/crm/customer/update

更新客户信息,包括分类、状态、负责人、联系方式等。

请求参数
参数类型必填说明
companyNamestring公司全称(定位客户)
categorystring客户分类
custStatusint客户状态
responsiblePersonstring负责人
phonestring手机号
legalPersonstring法人

POST 删除客户

/api/crm/customer/delete

删除客户记录。需删除权限。

请求参数
参数类型必填说明
companyNamestring公司全称

POST 公海池子列表

/api/crm/pools

获取当前租户的所有公海池子(含默认公海和自定义公海池)。

POST 认领客户

/api/crm/claim

从公海认领客户到我的客户。认领后进入保护期,保护期内其他同事不能认领。

请求参数
参数类型必填说明
companyNamestring公司全称

POST 放回公海

/api/crm/release

将我的客户放回公海,其他同事可认领。

请求参数
参数类型必填说明
companyNamestring公司全称
poolIdint目标公海池ID,不传则放回默认公海

POST 新增联系人

/api/crm/contact/add

为客户添加联系人。一个客户可对应多个联系人。

请求参数
参数类型必填说明
companyNamestring公司全称
namestring联系人姓名
phonestring手机号
positionstring职位
emailstring邮箱

POST 添加跟进记录

/api/crm/followup/add

为客户添加跟进记录,可设置下次跟进时间。

请求参数
参数类型必填说明
companyNamestring公司全称
contentstring跟进内容
followTypestring跟进类型:电话/微信/邮件/拜访
nextTimestring下次跟进时间(YYYY-MM-DD HH:mm:ss)

POST 合同列表

/api/crm/contract/list

获取合同列表,支持按状态、客户筛选。

POST 创建合同

/api/crm/contract/create

创建新合同,关联客户和产品。

请求参数
参数类型必填说明
customerNamestring客户公司名
contractNamestring合同名称
amountdecimal合同金额
signDatestring签订日期
endDatestring到期日期

POST 仪表盘统计

/api/crm/stats

获取仪表盘统计数据,包括客户总数、各状态数量、分类分布、近7天新增趋势等。数据权限自动过滤。

POST 工作台数据

/api/crm/workbench

获取工作台完整数据,包括客户统计、待办任务、销售排行、商机分布、跟进趋势、合同回款等。

POST 报表概览

/api/report/overview

获取报表中心概览数据,包括客户总数、本月新增、跟进客户、成交客户、合同金额、回款金额等。

POST 统一查询 Session

/api/crm/v1/query

按公司名、法人、股东、手机号查询库中是否存在。至少填写一项查询条件。浏览器插件主要使用此接口。

请求参数
参数类型必填说明
company_namestring公司全称
legal_personstring法人姓名
shareholdersarray股东姓名数组
phonestring手机号

POST 批量查询

/api/crm/v1/batch-query

批量查询公司或法人是否在库中,适用于列表页批量比对场景。

请求参数
参数类型必填说明
companiesarray公司名称数组
legalPersonsarray法人姓名数组

POST 登记客户

/api/crm/v1/register

将新客户/联系人登记到系统。如果公司+手机号已存在,返回 409 错误。

请求参数
参数类型必填说明
company_namestring公司全称
phonestring手机号
namestring联系人姓名
legal_personstring法人姓名
customer_categorystring客户分类
lead_stageint1=公海 3=客户,默认3

POST 标无效

/api/crm/v1/mark-invalid

将指定公司+手机号标记为无效号码(废号共享)。

请求参数
参数类型必填说明
company_namestring公司全称
phonestring手机号
namestring联系人姓名(日志用)

POST 标有效

/api/crm/v1/mark-valid

将指定公司+手机号恢复为有效号码。

POST 插件状态

/api/crm/v1/plugin-status

查询当前用户的插件开关状态。关闭后插件不会在企业查询网站自动弹出。

POST 插件开关

/api/crm/v1/plugin-toggle

设置当前用户的插件开关。

请求参数
参数类型必填说明
enabledint1=开启 0=关闭

GET 公告列表

/api/crm/announcements

获取平台公告列表,用于首页和登录页展示。

POST 提交工单

/api/crm/ticket/submit

提交工单反馈问题,仅租户管理员可提交。管理员后台可查看和回复。

请求参数
参数类型必填说明
titlestring工单标题
contentstring问题描述
typestring类型:bug/需求/咨询/其他

GET 套餐状态

/api/crm/plan/status

获取当前用户/公司的套餐状态,包括套餐类型、到期时间、用户上限、已用用户数等。

POST 企业认证申请

/api/crm/verify/apply

提交企业认证申请,需上传营业执照和授权书。认证后公司名称被保护,其他人不能注册同名公司。

⚠️ 错误码说明

codeHTTP状态说明处理建议
0200成功-
400400参数错误检查必填参数是否齐全、格式是否正确
401401未登录/未认证先调用登录接口,或检查API密钥是否正确
403403无权限检查用户角色、租户功能开关、API密钥类型
404404数据不存在公司名不在库中,或资源已被删除
409409数据冲突公司+手机号已存在,无需重复登记
429429请求过于频繁降低调用频率,或联系管理员提升配额
500500服务器错误联系管理员查看日志,稍后重试

💡 统一响应格式:所有接口返回 {"code": 0, "data": {...}, "msg": "..."}。code=0 表示成功,非0表示失败,msg 中包含错误说明。