身份证号校验 API

校验中国居民身份证号码的格式、省级代码、出生日期和校验位,解析性别与年龄;只做数学校验,不查询任何实名信息

数据来源:本地计算(GB 11643-1999 公民身份号码、GB/T 2260 行政区划代码)

返回统一的 JSON 格式 { code, message, cached, stale, updatedAt, data },支持跨域,免注册每天可免费调用 100 次,注册后每天 10000 次。

身份证号码校验(校验位、出生日期、性别、年龄、省份)

GET /api/idcard/check

请求参数

  • id(必填):18 位身份证号(末位可为 X,不区分大小写)或 15 位老号码,示例 11010519491231002X

返回字段

  • valid(boolean):号码是否通过全部校验(格式、省级代码、出生日期、校验位)。只代表号码本身合法,不代表真实存在或属于某人
  • reason(string|null):不合法时的原因(取第一个未通过的检查);合法时为 null
  • masked(string):打码后的号码(保留前 6 位和后 4 位),不回显完整号码
  • length(number):去掉空格后的号码长度
  • checks(object):各项检查结果;格式不对时后面几项为 null(未检查)
  • checks.format(boolean):长度与字符是否正确(18 位末位可为 X,或 15 位纯数字)
  • checks.province(boolean|null):前两位是否为有效的省级行政区代码
  • checks.birthday(boolean|null):出生日期是否存在且在 1900 年至今天(北京时间)之间
  • checks.checkDigit(boolean|null):第 18 位校验位是否正确(ISO 7064 MOD 11-2);15 位老号码没有校验位,为 null
  • province(string|null):省级行政区名称,如 北京市;代码无效时为 null。只解析到省级
  • provinceCode(string|null):省级代码(号码前两位);格式不对时为 null
  • birthday(string|null):出生日期 YYYY-MM-DD(15 位号码按 19xx 年);日期不合法时为 null
  • age(number|null):按北京时间今天计算的周岁;日期不合法时为 null
  • gender(string|null):性别:男 / 女(顺序码末位奇数为男、偶数为女);格式不对时为 null