Skip to content

关联关系挖掘接口文档

1. API 通用说明

1.1 公共请求参数

参数名称类型必选参数类型参数说明
apikeystringheader接口请求令牌
datastringbody请求参数数据体
timestampstringbody时间戳

参数示例

json
{
  "data": "",
  "timestamp": 0
}

1.2 公共返回参数

参数名称类型参数说明
datastring响应数据体
statusinteger状态码
messagestring返回消息

参数示例

json
{
  "status": 200,
  "data": "",
  "message": ""
}

1.3 接口状态码

状态码错误描述
200成功!
211无记录
99101输入参数错误
99109验证不通过
99001请传输参数 apikey
99004没有使用该接口权限
99005IP 受限
99006请求次数达到限制
99999系统出现异常

1.4 API 接口列表

  • 域名根路径: https://api.daokoujinke.com/apis/ent/
接口请求方法URL接口说明
关联排查 - 群组查询POST/company/relation/query/group发现群组企业之间的关联关系
关联排查 - 一对多查询POST/company/relation/query/one2many发现一个指定企业/个人与多个企业之间的关联关系
关联排查 - 关联详情POST/company/relation/detail/advanced返回两个关联企业的所有关联路径
疑似关联企业POST/company/relation/suspected返回指定入参企业的所有疑似关联企业
疑似关联评分POST/company/relation/score返回两个疑似关联企业的关联得分

2. API 详细说明

2.1 关联排查 - 群组查询

  • 接口地址: https://api.daokoujinke.com/apis/ent/company/relation/query/group
  • 请求方法: POST
  • 返回格式: JSON
  • Content-Type: application/json;charset=UTF-8
  • 接口说明: 发现群组企业之间的关联关系

请求参数

参数名称类型必选参数说明
nodeIdsJSONArray<String>起始企业名称或者统一社会信用代码,支持混合传入
filtersJSONObject过滤条件

请求示例

json
{
  "nodeIds": [
    "914404001927878256N",
    "xxxx有限公司",
    "xxxx科技发展公司",
    "xxxx集团",
    "xxxxx传媒有限公司",
    "xxxx科技有限公司"
  ],
  "filters": {
    "rules": [
      {
        "logic": "and",
        "type": "sh",
        "conditions": [
          {
            "name": "stock_ratio",
            "computation": {
              "type": "number",
              "value": 0.001,
              "operator": "gte"
            }
          }
        ]
      },
      {
        "type": "tm"
      }
    ]
  }
}

返回结果说明

参数名类型备注
suggestedMatchesArray返回的是库里匹配不到的企业,一般是企业名称错误导致的
relatedPartiesArray返回有关系的多方企业名称
notExistObject不在用例库中的数据
suggestedMatches 数据项结构
参数名类型备注
inputNamestring用户输入的企业名称
matchedNamestring系统能匹配到的类似的企业名称
matchedIdstring类似企业的唯一标识
notExist 数据项结构
参数名类型备注
nodeIdsArray不在库中企业数据

返回结果示例

json
{
  "status": 200,
  "message": "成功",
  "data": {
    "suggestedMatches": [
      {
        "matchedName": "xxxx有限公司北京分公司",
        "matchedId": "123123123123123123",
        "inputName": "xxxx有限公司"
      }
    ],
    "relatedParties": [
      {
        "relations": [
          "xxxx集团",
          "xxxx科技有限公司"
        ]
      }
    ],
    "notExist": {
      "nodeIds": [
        "xxxx科技发展公司",
        "xxxxx传媒有限公司"
      ]
    }
  }
}

2.2 关联排查 - 一对多查询

  • 接口地址: https://api.daokoujinke.com/apis/ent/company/relation/query/one2many
  • 请求方法: POST
  • 返回格式: JSON
  • Content-Type: application/json;charset=UTF-8
  • 接口说明: 发现一个指定企业/个人与多个企业之间的关联关系

请求参数

参数名称类型必选参数说明
startTypestring起点主体类型,枚举值:"org"(企业)或 "person"(自然人)
startIdstring起点主体名称,传入企业全称或自然人姓名
endIdsJSONArray目标主体名称列表,最多支持 50 个
filtersJSONObject关联关系过滤规则(如关系类型、时间范围、持股比例等)
targetNames 数据项结构
参数名类型备注
typestring主体类型,枚举值:"org"(企业)或 "person"(自然人)
namestring主体名称

请求示例

json
{
  "startType": "org",
  "startId": "xxxxx传媒有限公司",
  "endIds": [
    {
      "type": "org",
      "id": "xxxxx有限责任公司"
    },
    {
      "type": "org",
      "id": "xxxxx分公司"
    },
    {
      "type": "org",
      "id": "xxxxx科技发展有限公司"
    }
  ],
  "filters": {
    "rules": [
      {
        "logic": "and",
        "type": "sh",
        "conditions": [
          {
            "name": "stock_ratio",
            "computation": {
              "type": "number",
              "value": 0.001,
              "operator": "gte"
            }
          }
        ]
      },
      {
        "type": "tm"
      }
    ]
  }
}

返回结果说明

参数名类型备注
suggestedMatchesArray返回的是库里匹配不到的企业,一般是企业名称错误导致的
relatedPartiesArray返回有关系的多方企业名称
notExistObject不在用例库中的数据
relatedParties 数据项结构
参数名类型备注
relationsArray返回有关系的多方企业名称

返回结果示例

json
{
  "status": 200,
  "message": "成功",
  "data": {
    "suggestedMatches": [
      {
        "matchedName": "xxxxx有限责任公司北京分公司",
        "matchedId": "202367312jk234hg123kh",
        "inputName": "xxxxx有限责任公司"
      }
    ],
    "notExist": {
      "sourceId": "3736125jdhawgqwjqgh",
      "sourceType": "org",
      "targetNames": [
        {
          "id": "123712613256218hdgeqwqweq",
          "type": "org"
        },
        {
          "id": "2025837363623jhsgsfgssggf",
          "type": "org"
        }
      ]
    },
    "relatedParties": [
      "xxxxx科技发展有限公司"
    ]
  }
}

2.3 关联排查 - 关联详情

  • 接口地址: https://api.daokoujinke.com/apis/ent/company/relation/detail/advanced
  • 请求方法: POST
  • 返回格式: JSON
  • Content-Type: application/json;charset=UTF-8
  • 接口说明: 返回两个关联企业的所有关联路径

请求参数

参数名称类型必选参数说明
startIdstring起始企业,企业全称或统一社会信用代码
endIdstring目标企业,企业全称或统一社会信用代码
degreeInteger最大关联度数,取值范围 1~15,默认为 6
ruleListJSONArray关联关系过滤规则

请求示例

json
{
  "startId": "xxxxxxx有限公司",
  "endId": "xxxxxx有限公司",
  "degree": 1,
  "ruleList": "[{\"type\":\"tm\",\"conditionList\":[]},{\"type\":\"sh\",\"conditionList\":[{\"name\":\"invest_rate\",\"type\":\"string\",\"op\":\"gte\",\"value\":\"0.0100\"}]}]"
}

注意ruleList 在实际请求中为字符串格式的 JSON 数组(如上所示),但在逻辑解析时按对象数组处理。

Java 参数参考

java
@Data
public class QueryReq {
    /**
     * 规则列表
     */
    private List<Rule> ruleList;

    @Data
    private static class Rule {
        /**
         * 可选值,and / or
         * 用来指定 conditionList里的条件是用且逻辑还是或逻辑
         * 比如对于 weak弱关联类型,可以用 or 来查询 地址、邮箱、电话、疑似
         * 对于 sh股东关联类型可以用 and 来查询 持股比例 > xx值 且 持股比例 <xx值
         * 如果 conditionList里的元素不是明确要使用 or 处理,其他情况都是取 and 值
         */
        private String op;

        /**
         * 对某一个边使用的条件
         */
        private List<Condition> conditionList;

        /**
         * 边类型
         * 同一个边类型在 ruleList数组里只能出现一次,参考下面 json 的 "type": "weak"
         */
        private String type;
    }

    @Data
    private static class Condition {
        /**
         * 比较值,比如 eq,gt, lt 等
         */
        private String op;

        /**
         * 边属性名 name,参考下面表格
         */
        private String name;

        /**
         * 值类型,比如 string,参考下面表格
         */
        private String type;

        /**
         * 取值,参考下面表格
         */
        private String value;
    }
}

使用说明

  1. ruleList 是数组,每个元素是对一种边类型(type)条件的描述,同一个边类型在数组里只能出现一次。
  2. conditionList 同层次的 op 属性,表示 conditionList 里的条件的判断逻辑,可取值 andor
  3. conditionList 下每个条件 Conditionop 表示比较符号,取值如下:
操作符含义
eq等于
gte大于等于
lte小于等于
gt大于
lt小于

关联条件表

关联类型type过滤字段边属性名取值 (value)type (值类型)
股东sh持股比例invest_rate[0.0, 1.0]string
历史股东sh_his离职时间end_dateyyyy-MM-ddstring
持股比例invest_rate[0.0, 1.0]string
高管tm
历史高管tm_his离职时间end_dateyyyy-MM-ddstring
法人lp
历史法人lp_his离职时间end_dateyyyy-MM-ddstring
实际受控人act持股比例invest_rate[0.0, 1.0]string
分支机构branches
年报披露关联企业annual_related开始时间pub_dateyyyy-MM-ddstring
应收关系receive
应付关系pay
担保assure
客户cu结束时间end_dateyyyy-MM-ddstring
供应商su结束时间end_dateyyyy-MM-ddstring
司法诉讼lawsuit
招投标bidding
疑似关联weak弱关联weak_typesuspstring
邮箱关联weak弱关联weak_typeemailstring
电话关联weak弱关联weak_typetelstring
地址关联weak弱关联weak_typeaddrstring

返回结果说明

参数名类型备注
maxPathCountInteger最大返回路径数
returnedPathCountInteger实际返回路径数
deduplicatedPathCountInteger去重后路径数
totalPathCountInteger符合条件的总路径数
maxPathHopsInteger最大跳数
minPathHopsInteger最小跳数
pathsJSONArray关联路径列表
graphDataJSONObject图数据结构
paths 数据项结构
参数名类型备注
relationTypesArray<String>关系类型列表
nodeIdsArray<String>节点 ID 列表
pathLengthInteger路径长度
pathRelevanceScoreFloat路径相关性得分
pathDescriptionString路径可读描述
relationsArray<Object>路径中的关系
graphData 数据项结构
参数名类型备注
entitiesArray<Object>实体节点列表
relationsArray<Object>关系边列表
entities 子项
参数名类型备注
entityNameString实体名称
entityTypeString实体类型
entityIdString实体 ID
relations 数据项结构
参数名类型备注
fromNodeIdString关系起点
toNodeIdString关系终点
relationNameString关系显示名称
relationTypeString关系类型
equityRatioBigDecimal持股比例
relevanceScoreBigDecimal该关系的权重
holderCategoryString股东类别
weakRelationTypeString弱关联类型(仅 weak 有效)
weakRelationNameString弱关联名称(仅 weak 有效)
directionInteger方向标识:1 表示 from → to

返回结果示例

json
{
  "status": 200,
  "message": "成功",
  "data": {
    "maxPathCount": 10,
    "returnedPathCount": 2,
    "deduplicatedPathCount": 2,
    "totalPathCount": 2,
    "maxPathHops": 1,
    "minPathHops": 1,
    "paths": [
      {
        "relationTypes": ["sh"],
        "nodeIds": ["2011d8ad4b84c0103644870526342079", "201116c92c5942327840210512822797"],
        "pathLength": 1,
        "relations": [
          {
            "fromNodeId": "201116c92c5942327840210512822797",
            "relationName": "股东(持股33.33%)",
            "relationType": "sh",
            "equityRatio": 0.33333301544189453,
            "relevanceScore": 0.33333301544189453,
            "toNodeId": "2011d8ad4b84c0103644870526342079",
            "holderCategory": "企业",
            "direction": 1
          }
        ],
        "pathRelevanceScore": 0.8,
        "pathDescription": "xxxx计算有限公司<-xxxx(北京)有限公司"
      },
      {
        "relationTypes": ["lawsuit"],
        "nodeIds": ["2011d8ad4b84c0103644870526342079", "201116c92c5942327840210512822797"],
        "pathLength": 1,
        "relations": [
          {
            "fromNodeId": "201116c92c5942327840210512822797",
            "weakRelationType": null,
            "weakRelationName": null,
            "relationName": "诉讼",
            "relationType": "lawsuit",
            "equityRatio": 0,
            "relevanceScore": 0,
            "toNodeId": "2011d8ad4b84c0103644870526342079",
            "holderCategory": null,
            "direction": 1
          }
        ],
        "pathRelevanceScore": 0.1,
        "pathDescription": "xxxxx计算有限公司<-xxxxxx(北京)有限公司"
      }
    ],
    "graphData": {
      "entities": [
        {
          "entityName": "xxxxxx(北京)有限公司",
          "entityType": "org",
          "entityId": "201116c92c5942327840210512822797"
        },
        {
          "entityName": "xxxxx计算有限公司",
          "entityType": "org",
          "entityId": "2011d8ad4b84c0103644870526342079"
        }
      ],
      "relations": [
        {
          "fromNodeId": "201116c92c5942327840210512822797",
          "weakRelationType": null,
          "weakRelationName": null,
          "relationName": "诉讼",
          "relationType": "lawsuit",
          "equityRatio": 0,
          "relevanceScore": 0,
          "toNodeId": "2011d8ad4b84c0103644870526342079",
          "holderCategory": null,
          "direction": 1
        },
        {
          "fromNodeId": "201116c92c5942327840210512822797",
          "relationName": "股东(持股33.33%)",
          "relationType": "sh",
          "equityRatio": 0.33333301544189453,
          "relevanceScore": 0.33333301544189453,
          "toNodeId": "2011d8ad4b84c0103644870526342079",
          "holderCategory": "企业",
          "direction": 1
        }
      ]
    }
  }
}

2.4 疑似关联企业

  • 接口地址: https://api.daokoujinke.com/apis/ent/company/relation/suspected
  • 请求方法: POST
  • 返回格式: JSON
  • Content-Type: application/json;charset=UTF-8
  • 接口说明: 返回指定入参企业的所有疑似关联企业

请求参数

参数名称类型必选参数说明
ucCodestring企业的统一社会信用代码
orgNamestring企业名称

请求示例

json
{
  "orgName": "xxxxxx有限公司",
  "ucCode": ""
}

返回结果说明

参数名类型备注
industryNamestring行业
legalRepresentativestring法定代表人
companyTypestring企业类型
establishmentDatestring成立日期
companyStatusstring企业经营状态
suspectedRelatedCompaniesArray疑似关联的公司列表
suspectedRelatedCompanies 数据项结构
参数名类型备注
companyNamestring关联公司名称
relationTypestring关联类型
creditCodestring统一社会信用代码
relationEvidencestring关联依据

返回结果示例

json
{
  "status": 200,
  "message": "成功",
  "data": {
    "industryName": "其他互联网平台",
    "legalRepresentative": "刘延峰",
    "suspectedRelatedCompanies": [
      {
        "relationType": "疑似关联",
        "creditCode": "111011DSfdsfsdf",
        "relationEvidence": "电话",
        "companyName": "xxxxxxxx文化传媒有限公司"
      },
      {
        "relationType": "疑似关联",
        "creditCode": "9111011dsaqwdads",
        "relationEvidence": "电话",
        "companyName": "xxxxxx科技有限公司"
      },
      {
        "relationType": "疑似关联",
        "creditCode": "9111011635sqweqweqw",
        "relationEvidence": "电话",
        "companyName": "xxxxxxx传媒有限公司"
      },
      {
        "relationType": "疑似关联",
        "creditCode": "9112011cvcsfews",
        "relationEvidence": "电话",
        "companyName": "xxxxxx传媒有限公司上海分公司"
      }
    ],
    "companyType": "其他有限责任公司",
    "establishmentDate": "2014-07-01",
    "companyStatus": "存续"
  }
}

2.5 疑似关联评分

  • 接口地址: https://api.daokoujinke.com/apis/ent/company/relation/score
  • 请求方法: POST
  • 返回格式: JSON
  • Content-Type: application/json;charset=UTF-8
  • 接口说明: 返回两个疑似关联企业的关联得分

请求参数

参数名称类型必选参数说明
keyWord1string企业名称
keyWord2string企业名称

请求示例

json
{
  "keyWord1": "xxxxxx集团有限公司",
  "keyWord2": "xxxxxxx有限公司"
}

返回结果说明

参数名类型备注
scorestring关联分数
company1Object企业信息 1
company2Object企业信息 2
company1/company2 数据项结构
参数名类型备注
entNamestring企业名称
creditNostring统一社会信用代码

返回结果示例

json
{
  "status": 200,
  "message": "成功",
  "data": {
    "score": "0.0",
    "company1": {
      "entName": "xxxxxx集团有限公司",
      "creditNo": null
    },
    "company2": {
      "entName": "xxxxxxx有限公司",
      "creditNo": null
    }
  }
}

3. filters 的 JSON 格式描述

边类型 (type)关系类型过滤字段字段类型取值范围
susp疑似关联
email邮箱关联
tel电话关联
addr地址关联
sh股东stock_rationumber[0.0, 1.0]
sh_deep股权穿透stock_rationumber[0.0, 1.0]
act实控人stock_rationumber[0.0, 1.0]
tm高管
lp法人
tm_his历史高管end_datestringyyyy-MM-dd
lp_his历史法人end_datestringyyyy-MM-dd
sh_his历史股东end_datestringyyyy-MM-dd
branches分支机构
receive应收关系
assure担保
annual_related年报披露关联企业pub_datestringyyyy-MM-dd
cu客户pub_datestringyyyy-MM-dd
su供应商pub_datestringyyyy-MM-dd
pay应付关系