Files
ai-contract-platform/project-docs/npc-law-database-api.md
T

9.0 KiB

国家法律法规数据库 (flk.npc.gov.cn) API 接口文档

概述

国家法律法规数据库由全国人大常委会办公厅主办,提供法律法规的查询、浏览和下载服务。本文档记录了通过逆向分析发现的API接口。

已发现的API端点

1. 搜索建议API (Search Suggestions)

端点: GET /law-search/prompts/search

描述: 根据法律名称关键词获取搜索建议列表

参数:

  • title (string, required): 搜索关键词

示例请求:

curl "https://flk.npc.gov.cn/law-search/prompts/search?title=%E6%B0%91%E6%B3%95%E5%85%B8"

示例响应:

{
  "code": 200,
  "msg": "操作成功",
  "data": [
    {
      "title": "民法典",
      "titleHighlight": "<em class='highlight'>民法典</em>"
    },
    {
      "title": "中华人民共和国民法典",
      "titleHighlight": "中华人民共和国<em class='highlight'>民法典</em>"
    },
    {
      "title": "云南省人民代表大会常务委员会关于深入学习宣传和实施《中华人民共和国民法典》的决定",
      "titleHighlight": "云南省人民代表大会常务委员会关于深入学习宣传和实施《中华人民共和国<em class='highlight'>民法典</em>》的决定"
    }
  ]
}

2. 法律详情API (Law Details)

端点: GET /law-search/search/flfgDetails

描述: 根据bbbs ID获取法律详细信息

参数:

  • bbbs (string, required): 法律的唯一标识符(32位十六进制字符串)

示例请求:

curl "https://flk.npc.gov.cn/law-search/search/flfgDetails?bbbs=ff808081729d1efe01729d50b5c500bf"

示例响应:

{
  "msg": "操作成功",
  "code": 200,
  "data": {
    "bbbs": "ff808081729d1efe01729d50b5c500bf",
    "title": "中华人民共和国民法典",
    "flxz": "法律",
    "zdjgName": "全国人民代表大会",
    "gbrq": "2020-05-28",
    "sxrq": "2021-01-01",
    "ossFile": {
      "ossWordPath": "prod/20200528/827f65fcb68f40cb941eed996c5212b0.docx",
      "ossPdfPath": "prod/20200528/bd53dd912c1048f2aecbaa229238334b.pdf"
    },
    "content": {
      "id": "79890000-3e3b-0016-4922-08dd7af76244",
      "title": "中华人民共和国民法典",
      "children": [...]
    }
  }
}

注意: bbbs ID是法律的唯一标识符,为32位十六进制字符串格式。需要先通过搜索API获取。

3. 文档下载API (Document Download)

端点: GET /law-search/download/pc

描述: 下载法律文档(DOCX格式)

参数:

  • format (string, required): 文档格式,支持 docx
  • bbbs (string, required): 法律的唯一标识符(32位十六进制字符串)

示例请求:

curl "https://flk.npc.gov.cn/law-search/download/pc?format=docx&bbbs=ff808081729d1efe01729d50b5c500bf"

4. 统计数据API (Aggregate Data)

端点: GET /law-search/index/aggregateData

描述: 获取法律法规分类统计数据

示例请求:

curl "https://flk.npc.gov.cn/law-search/index/aggregateData"

示例响应:

{
  "code": 200,
  "msg": "操作成功",
  "data": {
    "flflCount": [
      {"count": 1, "id": 1, "key": "宪法"},
      {"count": 310, "id": 2, "key": "法律"},
      {"count": 610, "id": 14, "key": "行政法规"},
      {"count": 2, "id": 15, "key": "监察法规"},
      {"count": 15755, "id": 16, "key": "地方法规"},
      {"count": 559, "id": 27, "key": "司法解释"}
    ],
    "xfsd": [...],
    "popularSearch": [
      {
        "bbbs": "ff808081729d1efe01729d50b5c500bf",
        "flxz": "法律",
        "gbrq": "2020-05-28",
        "title": "中华人民共和国民法典"
      }
    ],
    "popularDownload": [...],
    "xf": {
      "bbbs": "2c909fdd678bf17901678bf5a483004b",
      "title": "中华人民共和国宪法(2018年修正文本)"
    }
  }
}

重要发现: 此API返回的数据中包含了热门搜索和热门下载法律的完整信息,包括bbbs ID!这提供了一种直接获取法律列表的方法。

端点: POST /law-search/search/list

描述: 根据条件搜索法律列表

Content-Type: application/json

请求参数 (推测,需要进一步验证):

  • title (string): 法律名称
  • page (number): 页码
  • size (number): 每页数量
  • 其他可能的搜索参数待确认

注意: 此API需要POST请求和正确的Content-Type。在测试中遇到了编码问题,可能需要特定的请求头或参数格式。

6. 其他发现的端点

通过JavaScript逆向分析发现的其他API端点:

  • POST /law-search/highSearch/highSearch - 高级搜索
  • GET /law-search/highSearch/hitDisplay - 高级搜索命中显示
  • GET /law-search/highSearch/xgzl - 高级搜索相关资料
  • GET /law-search/search/enumData - 搜索枚举数据
  • GET /law-search/search/hitDisplay - 搜索命中显示
  • GET /law-search/search/recommend - 推荐搜索
  • GET /law-search/search/xgzl - 相关资料
  • GET /law-search/search/xgzlDetails - 相关资料详情
  • GET /law-search/search/xgwjDetails - 相关文件详情
  • GET /law-search/download/batch - 批量下载
  • GET /law-search/amazonFile/previewLink - 文件预览链接
  • GET /law-search/index/captchaImage - 验证码图片
  • GET /law-search/index/fljc - 法律检索

bbbs ID 说明

什么是bbbs ID?

bbbs是法律法规在数据库中的唯一标识符,为32位十六进制字符串格式(如 ff808081729d1efe01729d50b5c500bf)。每个法律文档都有唯一的bbbs ID。

如何获取bbbs ID?

方法1: 通过统计数据API(推荐)

  1. 调用 /law-search/index/aggregateData API
  2. 从返回的 popularSearch 或 popularDownload 数组中获取法律的bbbs ID

方法2: 通过搜索建议API

  1. 使用 /law-search/prompts/search 获取搜索建议
  2. 点击搜索结果进入详情页
  3. 从URL中提取bbbs参数

方法3: 通过新发布法规列表

  • 从统计数据API的 xfsd 字段获取最新发布的法规列表

bbbs ID 格式

bbbs ID是32位十六进制字符串,示例:

  • ff808081729d1efe01729d50b5c500bf - 中华人民共和国民法典
  • ff808181796a636a0179822a19640c92 - 中华人民共和国刑法
  • 2c909fdd678bf17901678bf5a483004b - 中华人民共和国宪法

URL结构

详情页URL格式:

https://flk.npc.gov.cn/detail2.html?[bbbs]

示例:

https://flk.npc.gov.cn/detail2.html?ff808081729d1efe01729d50b5c500bf

工作流程

推荐的法律获取流程

方法1: 使用统计数据API获取热门法律(最简单)

  1. 获取统计数据: 调用 /law-search/index/aggregateData API
  2. 提取bbbs: 从 popularSearch 或 popularDownload 数组中获取法律的bbbs ID
  3. 获取详情: 使用 /law-search/search/flfgDetails API获取法律详细信息
  4. 下载文档: 使用 /law-search/download/pc API下载DOCX文档

方法2: 通过搜索获取特定法律

  1. 搜索法律: 使用 /law-search/prompts/search API搜索法律名称
  2. 获取bbbs: 从搜索结果中获取法律名称,然后访问详情页获取bbbs
  3. 获取详情: 使用 /law-search/search/flfgDetails API获取法律详细信息
  4. 下载文档: 使用 /law-search/download/pc API下载DOCX文档

实际应用示例

获取民法典的详细信息

# 1. 获取统计数据API中的热门搜索
curl -s "https://flk.npc.gov.cn/law-search/index/aggregateData" | jq '.data.popularSearch'

# 2. 从返回结果中找到民法典的bbbs: ff808081729d1efe01729d50b5c500bf
# 3. 获取详细信息
curl -s "https://flk.npc.gov.cn/law-search/search/flfgDetails?bbbs=ff808081729d1efe01729d50b5c500bf" | jq '.data'

# 4. 下载DOCX文档
curl -O "https://flk.npc.gov.cn/law-search/download/pc?format=docx&bbbs=ff808081729d1efe01729d50b5c500bf"

获取所有310部法律的方法(待验证)

由于 /law-search/search/list API需要POST请求且参数不明确,目前可通过以下方式获取部分法律:

  1. 使用统计数据API获取热门法律(约10部)
  2. 使用搜索建议API逐个搜索法律名称
  3. 可能需要研究高级搜索API或分类列表API

限制与注意事项

  1. 编码问题: 某些API对UTF-8编码要求严格,需要正确设置请求头
  2. 反爬机制: 网站可能有反爬虫机制,频繁请求可能被限制
  3. 数据完整性: 不是所有法律都提供DOCX下载
  4. API稳定性: 这些是逆向分析发现的非官方API,可能随时变化

待研究内容

  1. 搜索列表API: /law-search/search/list 的完整参数和使用方法 - 这是获取完整法律列表的关键
  2. 高级搜索: /law-search/highSearch/highSearch 的功能 - 可能提供更强大的搜索能力
  3. 分类列表: 如何获取特定分类(如"法律"、"行政法规")的完整列表 - 可能需要参数中的分类ID
  4. bbbs ID生成规律: 研究bbbs ID是否有规律可循,是否可以预测

参考资源

更新日志

  • 2026-06-15: 初始版本,发现基本API端点