*温馨提示:*
*1,app_key为接口调用有效凭证,为确保安全,请将接口请求放置于自己的服务器上进行,并注意不要泄露。*
*2,当接口调用剩余次数在20000,5000,2000,1000,500,100次的时候,邮箱和注册的手机号会收到充值提醒。*
*3, 若返回的结果里存在result,则表内后续数据为result对象内的数据,即:result:{column1:...,...}*
*4, 为方便查阅,以下列出常见响应状态码,非 2XX 状态码的提示字段为“error”:*
| 状态码 | 描述 | 解决方案 |
|---|---|---|
| 200 | 请求成功 | |
| 400 | 规格不存在(或者请求错误) | 输入已有规格(检查json格式) |
| 401 | app_key不存在 | 输入已申请的正确app_key |
| 403 | 身份验证不通过 | 检查secret_key是否正确 |
| 412 | app类型不正确 | 输入已申请的对应类型的app_key |
| 417 | 已达到最大调用次数 | 购买调用次数 |
| 422 | 缺少对应的参数 | 检查上传的参数中缺少的对应项 |
| 506 | 上传的base64数据不是图片 | |
| 507 | 算法制作照片失败 | 查看错误信息或联系开发人员 |
*5, 除环境检测接口外,其他接口的 file 都可传图片的云端路径,云端路径不是外链!*
基本信息:
请求类型: HTTP/HTTPS
接口地址: http://apicall.id-photo-verify.com/api/env_pic
请求方式: POST
数据类型: JSON
响应类型: JSON
接口状态: 启用
接口描述:
证件照环境检测,此接口多用于调用制作照片的接口之前,用于预检测
调用此接口不会增加已调用次数
对应的app_key应用类型必须为证件照环境检测
本接口环境检测采用设定阈值的方式,通过参数传过来的阈值,与算法检测出来的各项对应值比较,得到通过与否的结果(共7个检测项)。设定的阈值越大检测越不严格,越容易通过;阈值越小检测越严格,越不容易通过。
比如facepose检测项用户传过来阈值为 20,检测结果为 30,则该检测项不通过,如果想要放宽facepose此检测项的要求,可以调整阈值,将上传的阈值改为 40,则此检测项即为通过(用户看不到算法检测出来的各项对应值)。
用户可以根据自己需求不断调整传送的阈值,建议阈值依次顺序为40,40,35,20,50,50,60
请求格式:
| 参数名称 | 是否必须 | 类型 | 描述 |
|---|---|---|---|
| file | true | string | 图片的base64数据 |
| app_key | true | string | 已申请的app_key |
| facepose | true | string/ number | 人脸是正对镜头(姿态) 阈值 |
| eyegaze | true | string/ number | 视线是否正常 阈值 |
| eyeskew | true | string/ number | 眼睛是否歪斜(双眼连线不水平) 阈值 |
| shoulderskew | true | string/ number | 肩膀是否水平正对镜头 阈值 |
| darkillum | true | string/ number | 照片光照是否昏暗 阈值 |
| unbalanceillum | true | string/ number | 人脸是否为阴阳脸 阈值 |
| bfsimilarity | true | string/ number | 衣服和背景颜色是否相似 阈值 |
响应格式:
| 参数名称 | 数据类型 | 示例值 | 描述 |
|---|---|---|---|
| code | number | 200 | 状态码 |
| msg | number | SUCCESS | 接口调用信息 |
| total_result | number | 1 | 检测结果汇总,各检测项中有一项未通过则为0,全部通过则为1 |
| *result* | object | 各个参数的检查结果:1代表通过,0代表未通过 | |
| facepose | number | 1 | 人脸是正对镜头(姿态) |
| eyegaze | number | 1 | 视线是否正常 |
| eyeskew | number | 1 | 眼睛是否歪斜(双眼连线不水平) |
| shoulderskew | number | 1 | 肩膀是否水平正对镜头 |
| darkillum | number | 1 | 照片光照是否昏暗 |
| unbalanceillum | number | 1 | 人脸是否为阴阳脸 |
| bfsimilarity | number | 1 | 衣服和背景颜色是否相似 |
示例:
ximport requests, json, base64url = "http://apicall.id-photo-verify.com/api/env_pic"with open('test.png', 'rb') as f:pic = f.read()headers = {"Content-Type": "application/json"}data = {"app_key": "13c1815dbca2413c2db75b5ac50349f4e1dd9786","file": base64.b64encode(pic).decode(),# 下列项可以改为需要的阈值'facepose': "40", # 人脸是正对镜头(姿态)'eyegaze': "40", # 视线是否正常'eyeskew': "35", # 眼睛是否歪斜(双眼连线不水平)'shoulderskew': "20", # 肩膀是否水平正对镜头'darkillum': "50", # 照片光照是否昏暗'unbalanceillum': "50", # 人脸是否为阴阳脸'bfsimilarity': "60", # 衣服和背景颜色是否相似}data_json = json.dumps(data)response = requests.post(url, headers=headers, data=data_json)print(response.text)
返回数据示例:
xxxxxxxxxx{"code": 200,"msg": "SUCCESS","result": {"bfsimilarity": 0,"darkillum": 1,"eyegaze": 1,"eyeskew": 1,"facepose": 1,"shoulderskew": 1,"unbalanceillum": 1},"total_result": 0}
基本信息:
请求类型: HTTP/HTTPS
接口地址: http://apicall.id-photo-verify.com/api/cut_pic
请求方式: POST
数据类型: JSON
响应类型: JSON
接口状态: 启用
接口描述:
制作证件照,推荐使用制作并检测接口
调用此接口不会增加已调用次数
结果返回带水印图片,无水印图片和无水印已排版图片名字(均为多种颜色)
带水印图片存储时间为 1 天,无水印图片存储时间为 7 天
通过名字获取带水印图片不会增加已调用次数
(通过获取图片的api获取无水印图片或无水印已排版图片会增加 1 次调用次数)
官网上对应的app_key应用类型必须为证件照制作
请求格式:
| 参数名称 | 是否必须 | 类型 | 描述 |
|---|---|---|---|
| file | true | string | 图片的base64数据 |
| spec_id | true | string | 已有的规格ID |
| app_key | true | string | 已申请的app_key |
| is_fair | false | int | 是否美颜,0代表不美颜,1代表美颜,默认为美颜 |
| fair_level | false | int | 美颜等级,分为1,2,3,4,5等级,传其它数字默认为1级,只在is_fair为1时有效 |
| original | false | int | 程序会按照px = mm/25.4*original去设定照片的像素大小 |
| face_width_min | false | string/int | 人脸脸颊宽度(不包含耳朵)与照片宽度的最小比例 |
| face_width_max | false | string/int | 人脸脸颊宽度(不包含耳朵)与照片宽度的最大比例 |
| *print_type | false | int | 排版类型,1表示默认(一寸8张),2表示紧凑型(一寸10张) |
响应格式:
| 参数名称 | 是否必须 | 类型 | 示例值 | 描述 |
|---|---|---|---|---|
| code | true | number | 200 | 状态码 |
| result | true | object | ||
| file_name_wm | true | list | ["56cf9c38d9a111e7a0a300163e06132ablue2_wm", "56cf9c39d9a111e7a0a300163e06132awhite2_wm", "56cf9c3ad9a111e7a0a300163e06132ared2_wm", "579b75b0d9a111e7a0a300163e06132ablue22_wm", "579b75b1d9a111e7a0a300163e06132agrey2_wm", "579b75b2d9a111e7a0a300163e06132ablue32_wm"] | 带水印图片名字,包括多种可选颜色 |
| file_name_print_wm | true | list | ["56cf9c38d9a111e7a0a300163e06132ablue2_print_wm", "56cf9c39d9a111e7a0a300163e06132awhite2_print_wm", "56cf9c3ad9a111e7a0a300163e06132ared2_print_wm", "579b75b0d9a111e7a0a300163e06132ablue22_print_wm", "579b75b1d9a111e7a0a300163e06132agrey2_print_wm", "579b75b2d9a111e7a0a300163e06132ablue32_print_wm"] | 带水印排版图片名字,包括多种可选颜色 |
| file_name | true | list | ["56cf9c38d9a111e7a0a300163e06132a68798blue2", "56cf9c39d9a111e7a0a300163e06132a65760white2", "56cf9c3ad9a111e7a0a300163e06132a03509red2", "579b75b0d9a111e7a0a300163e06132a71632blue22", "579b75b1d9a111e7a0a300163e06132a38271grey2", "579b75b2d9a111e7a0a300163e06132a81312blue32"] | 无水印图片名字,包括多种可选颜色 |
| file_name_print | true | list | ["56cf9c38d9a111e7a0a300163e06132a68798blue2_print", "56cf9c39d9a111e7a0a300163e06132a65760white2_print", "56cf9c3ad9a111e7a0a300163e06132a03509red2_print", "579b75b0d9a111e7a0a300163e06132a71632blue22_print", "579b75b1d9a111e7a0a300163e06132a38271grey2_print", "579b75b2d9a111e7a0a300163e06132a81312blue32_print"] | 无水印排版图片名字,包括多种可选颜色 |
| is_print | true | number | 1 | 有无排版 |
| size | true | list | [295, 413] | 图片尺寸 |
| size_print | true | list | [1795, 1205] | 排版后图片尺寸 |
| one_sheet_num | true | number | 8 | 排版的照片数量 |
| img_wm_url_list | true | list | ["https://...",...], | 带水印单张照url列表 |
| print_wm_url_list | true | list | ["https://...",...], | 带水印排版照url列表 |
注:名称列表和url列表内颜色顺序一一对应,url链接有效期为1个小时。
示例:
xxxxxxxxxximport requests, json, base64url = "http://apicall.id-photo-verify.com/api/cut_pic"with open("test.png", 'rb') as f: pic = f.read()headers = {"Content-Type": "application/json"}data = { "spec_id": 391, # 规格ID "app_key": "86579698612b64da4e6a24dc31b8ad9ca740fbe7", "file": base64.b64encode(pic).decode(), # 可选参数还有: is_fair int 是否美颜 0 or 1,默认 1 # fair_level int 美颜等级1~5,传其他数字默认是1,只有is_fair是1才生效 # original int 程序会按照px = mm/25.4*original去设定照片的像素大小 # face_width_min string/int 人脸脸颊宽度(不包含耳朵)与照片宽度的最小比例 # face_width_max string/int 人脸脸颊宽度(不包含耳朵)与照片宽度的最大比例}data_json = json.dumps(data)response = requests.post(url, headers=headers, data=data_json)print(response.text):
xxxxxxxxxx{ "code": 200, "result": { "file_name": [ "1dfea61a967811ea9cf900163e0070b651966blue2", "1dfea61a967811ea9cf900163e0070b645912white2", "1dfea61a967811ea9cf900163e0070b636201red2", "1dfea61a967811ea9cf900163e0070b660723blue22", "1dfea61a967811ea9cf900163e0070b610453grey2", "1dfea61a967811ea9cf900163e0070b610308blue32" ], "file_name_print": [ "1dfea61a967811ea9cf900163e0070b651966blue2_print", "1dfea61a967811ea9cf900163e0070b645912white2_print", "1dfea61a967811ea9cf900163e0070b636201red2_print", "1dfea61a967811ea9cf900163e0070b660723blue22_print", "1dfea61a967811ea9cf900163e0070b610453grey2_print", "1dfea61a967811ea9cf900163e0070b610308blue32_print" ], "file_name_print_wm": [ "1dfea61a967811ea9cf900163e0070b6blue2_print_wm", "1dfea61a967811ea9cf900163e0070b6white2_print_wm", "1dfea61a967811ea9cf900163e0070b6red2_print_wm", "1dfea61a967811ea9cf900163e0070b6blue22_print_wm", "1dfea61a967811ea9cf900163e0070b6grey2_print_wm", "1dfea61a967811ea9cf900163e0070b6blue32_print_wm" ], "file_name_wm": [ "1dfea61a967811ea9cf900163e0070b6blue2_wm", "1dfea61a967811ea9cf900163e0070b6white2_wm", "1dfea61a967811ea9cf900163e0070b6red2_wm", "1dfea61a967811ea9cf900163e0070b6blue22_wm", "1dfea61a967811ea9cf900163e0070b6grey2_wm", "1dfea61a967811ea9cf900163e0070b6blue32_wm" ], "img_wm_url_list": ["https://...","..."], "is_print": 1, "one_sheet_num": 8, "print_wm_url_list": ["https://...","..."], "size": [ 260, 378 ], "size_print": [ 1795, 1205 ] }}
基本信息:
请求类型: HTTP/HTTPS
接口地址: http://apicall.id-photo-verify.com/api/check_pic
请求方式: POST
数据类型: JSON
响应类型: JSON
接口状态: 启用
接口描述:
检测证件照是否合格
调用此接口增加 1 次已调用次数
官网上对应的app_key应用类型必须为证件照检测
请求格式:
| 参数名称 | 是否必须 | 类型 | 描述 |
|---|---|---|---|
| file | true | string | 图片的base64数据 |
| app_key | true | string | 已申请的app_key |
| spec_id | true | string | 已有的规格ID |
响应格式(随着传入的spec_id的不同,响应数据的种类会有一些变化,未出现的字段可在下一个api内查找):
| 参数名称 | 数据类型 | 示例值 | 描述 |
|---|---|---|---|
| code | number | 200 | 状态码 |
| check_result | number | 1 | 检测结果汇总,各检测项中有一项未通过则为0,全部通过则为1 |
| all_check_result | obj | {...} | 各检测项详细数值 |
| result | object | 各个参数的检查结果:1代表通过,0代表未通过 | |
| background_color | number | 1 | 背景色 |
| bg_shadow | number | 1 | 背景阴影 |
| chin_bottom | number | 1 | 下巴距图像下边缘 |
| clothes_similar | number | 1 | 服装相似度 |
| eye_space | number | 1 | 眼部距离 |
| eyes_center_left | number | 1 | 双眼中心距图像左边缘 |
| eyes_close | number | 1 | 闭眼程度 |
| eyes_nature | number | 1 | 视线 |
| eyes_space_bottom | number | 1 | 双眼中心距图像下边缘 |
| face_blur | number | 1 | 模糊 |
| face_center | number | 1 | 脸部居中 |
| number | 1 | ||
| face_expression | number | 1 | 脸部表情 |
| face_noise | number | 1 | 脸部噪音 |
| face_unbalance | number | 1 | 阴阳脸 |
| facial_pose | number | 1 | 脸部姿态 |
| facial_shelter | number | 1 | 脸部遮挡 |
| facial_width | number | 1 | 脸部宽度 |
| file_size | number | 1 | 文件大小 |
| glasses | number | 1 | 眼镜样式 |
| glasses_glare | number | 1 | 眼镜反光 |
| hairline_top | number | 1 | 头顶发际线 |
| head_length | number | 1 | 头部长度 |
| head_occupy | number | 1 | 头部占比 |
| left_right_empty | number | 1 | 左右是否各空 |
| mouse_nature | number | 1 | 嘴巴自然 |
| name | string | 英语四六级考试 | 规格名字 |
| photo_format | number | 1 | 文件类型 |
| ppi | number | 1 | 检测ppi |
| px_and_mm | number | 1 | 像素和毫米大小 |
| shoulder_equal | number | 1 | 肩膀自然 |
| sight_line | number | 1 | 视线水平 |
| pn_neck_shadow_exist | number | 1 | 脖子阴影 |
| spec_id | number | 23 | 规格ID |
示例:
xxxxxxxxxximport requests, json, base64url = "http://apicall.id-photo-verify.com/api/check_pic"with open("test.png", 'rb') as f: pic = f.read()headers = {"Content-Type": "application/json"}data = { "spec_id": 391, "app_key": "您申请的app_key", "file": base64.b64encode(pic).decode()}data_json = json.dumps(data)response = requests.post(url, headers=headers, data=data_json)print(response.text)返回数据示例:
xxxxxxxxxx{ "check_result": 0, "code": 200, "result": { "background_color": 0, "clothes_similar": 1, "eyes_close": 1, "face_blur": 1, "face_center": 1, "face_noise": 1, "facial_pose": 1, "headpose_pitch": 1, "headpose_roll": 1, "headpose_yaw": 1, "name": "简历照片(一寸)", "photo_format": 0, "px_and_mm": 0, "shoulder_equal": 1, "sight_line": 1, "spec_id": 391 }}
基本信息:
请求类型: HTTP/HTTPS
接口地址: http://apicall.id-photo-verify.com/api/cut_check_pic
请求方式: POST
数据类型: JSON
响应类型: JSON
接口状态: 启用
接口描述:
制作并检测证件照
调用此接口,不会增加调用次数
此接口的程序会先制作证件照,然后对证件照进行检测,
结果返回带水印图片、无水印图片、无水印已排版图片名字(均为多种颜色)和检测的结果。
带水印图片存储时间为 1 天,无水印图片存储时间为 7 天
通过名字获取带水印图片不会增加已调用次数
(通过获取图片的api获取无水印图片或无水印已排版图片会增加 1 次调用次数)
请求参数中“必须”项为false的,可以不用传递。如果传递自定义值,将会使用用户自定义阈值处理照片,阈值越高越容易检测通过,不传的话默认使用已经定义好的阈值处理。
官网上对应的app_key应用类型必须为证件照检测与制作
请求格式:
| 参数名称 | 是否必须 | 类型 | 描述 | 示例值 |
|---|---|---|---|---|
| file | true | string | 图片的base64格式或图片的云端路径 | |
| spec_id | true | string | 已有的规格ID | 1 |
| app_key | true | string | 已申请的app_key | |
| is_fair | false | int | 是否美颜,默认为美颜 | |
| fair_level | false | int | 美颜等级,分为1,2,3,4,5等级,另支持字典形式传输详见下方“参数说明3”,只在is_fair为1时有效 | 1 |
| head_length_max_p | false | int | 脸部长度max | |
| head_length_min_p | false | int | 脸部长度min | |
| head_occupy_max_p | false | int | 脸部占比max | |
| head_occupy_min_p | false | int | 脸部占比min | |
| eye_space_max_p | false | int | 双眼间距max | |
| eye_space_min_p | false | int | 双眼间距min | |
| hairline_top_max_p | false | string | 发际线距边缘max | 300px |
| hairline_top_min_p | false | string | 发际线距边缘min | 10px |
| eyes_center_left_max_p | false | int | 双眼中心距图像左边缘max | |
| eyes_center_left_min_p | false | int | 双眼中心距图像左边缘min | |
| eyes_space_bottom_max_p | false | int | 双眼距图像下边缘max | 414 |
| eyes_space_bottom_min_p | false | int | 双眼距图像下边缘min | 324 |
| shoulder_occupy | false | int | 肩部占比 | |
| left_right_empty | false | int | 左右各空 | |
| facial_width_max_p | false | int | 脸部宽度max | 284 |
| facial_width_min_p | false | int | 脸部宽度min | 180 |
| width_px | false | int | 像素宽度 | |
| height_px | false | int | 像素高度 | |
| width_mm | false | int | 宽度毫米 | |
| height_mm | false | int | 高度毫米 | |
| file_size_max | false | int | 文件大小最大值 | 40960 |
| file_size_min | false | int | 文件大小最小值 | 20480 |
| size_options | false | string | 尺寸说明 | |
| ppi | false | int | 分辨率 | 300 |
| photo_format | false | string | 照片格式 | |
| bit_depth | false | int | 位深度 | 24 |
| compress | false | int | 压缩比 | |
| facial_pose | false | int | 人脸姿态,是人脸姿态 yaw pitch roll的集中判断 | 35 |
| sight_line | false | int | 视线水平 | 35 |
| facial_shelter | false | int | 面部无遮挡(见下方说明) | |
| eyes_close | false | int | 闭眼 | 50 |
| eyes_nature | false | int | 视线自然 | 50 |
| mouse_nature | false | int | 嘴巴自然 | 50 |
| shoulder_equal | false | int | 肩膀等高 | 50 |
| face_unbalance | false | int | 阴阳脸 | 50 |
| glasses | false | int | 眼镜样式 | 10 |
| glasses_glare | false | int | 眼镜反光 | |
| face_expression | false | int | 脸部表情 | |
| face_center | false | int | 脸部居中,此参数为必检项,不受传参的影响 | 1 |
| false | int | |||
| face_blur | false | int | 模糊程度 | 50 |
| face_noise | false | int | 噪声程度 | 20 |
| face_over_kbt | false | int | 过曝光 | 60 |
| bg_shadow | false | int | 背景阴影 | 60 |
| clothes_similar | false | int | 服装突出 | 90 |
| chin_bottom_min_p | false | int | 下巴距图像下边缘min | |
| shoulder_missed | false | int | 身体完整性,是肩部完整 头部完整 下半身悬空的集中判断 | 60 |
| face_width_min | false | int | 人脸脸颊宽度(不包含耳朵)与照片宽度的最小比例 | |
| face_width_max | false | int | 人脸脸颊宽度(不包含耳朵)与照片宽度的最大比例 | |
| original | false | int | 程序会按照px = mm/25.4*original去设定照片的像素大小 | |
| missing_shoulder | false | int | 肩部完整 | 30 |
| incomplete_head | false | int | 头部完整 | 60 |
| lower_body_hanging | false | int | 下半身悬空 | 30 |
| headpose_yaw | false | int | 人脸姿态(见下方说明) | 50 |
| headpose_pitch | false | int | 人脸姿态(见下方说明) | 50 |
| headpose_roll | false | int | 人脸姿态(见下方说明) | 50 |
| face_too_dark | false | int | 照片过暗 | 60 |
| face_contrast | false | int | 对比度异常 | 60 |
| body_posture | false | int | 身体姿态 身子不正,自拍时斜向下,举手,手放脑后,抠鼻孔,托腮等 | 60 |
| hat_threshold | false | int | 帽子检测 | 20 |
| bare_shouldered | false | int | 光膀检测 | 60 |
| id_exist | false | int | 手持证件照检测 | 60 |
| watermark_exist | false | int | 照片有水印 | 50 |
| pn_mask_exist | false | int | 照片有挂戴口罩 | 90 |
| background_color | false | list | 自定义照片背景色,详见“参数说明4” | |
| ratios | false | list | 自定义证件照制作比率,详见“参数说明5” | |
| *print_type | false | int | 排版类型,1表示默认(一寸8张),2表示紧凑型(一寸10张) |
参数说明1,headpose_yaw、headpose_pitch、headpose_roll参数说明示意:

参数说明2,facial_shelter参数说明:面部各部位遮挡置信度(眉毛、眼睛、鼻子、嘴巴、脸颊、耳朵 饰品遮挡) 当传了facial_shelter参数后, 此参数将会分别与七个遮挡检测项匹配,并且会返回具体每个项的匹配结果,七个参数分别是: 眉毛 eyebrow_occlusion 眼睛 eye_occlusion 鼻子 nose_occlusion 嘴巴 mouth_occlusion 脸颊 cheek_occlusion 耳朵 ear_occlusion 饰品遮挡 decoration_occlusion
参数说明3,fair_level对应的值可以是字典的形式(注:不支持全部传0的情况),如: "fair_level": {"leyelarge":0.1, #左眼放大程度 "reyelarge":0.1, #右眼放大程度 "mouthlarge":0.1, #嘴巴缩小程度 "skinwhite":1, #皮肤美白程度 "skinsoft":0.1, #皮肤光滑度 "coseye":0.1, #美瞳程度 "facelift":0.1 #瘦脸程度 }, # 美颜等级,有效范围在0到1,数值越大,则美颜程度越高
参数说明4,background_color须为list类型,最多能够设置6种背景色,如: [{"start_color": 16777215,"color_name": "white", "enc_color": 16777215}, {"start_color": 4427483, "color_name": "blue", "enc_color": 4427483}] start_color 为照片上部色值,对应的是RGB色值的十进制形式, color_name 为颜色名称,str类型,制作成功时,此字段对应的值会出现在图片名称里, enc_color 为照片下部色值,如与上部色值一致,则背景为纯色,如不一致则为渐变色。
参数说明5,ratios为照片制作比率参数,须为list类型,取值范围均在0到1之间,每个参数均不可省略,如没有特定要求,可将最小值和最大值范围设宽一些;参数设定不合理,将直接影响制作的成功率,如: [0.5, 0.7, 0.5, 0.72, 0.05, 0.15, 0.35, 0.75] 第一个参数为,head_h/pic_h 的最小值, 第二个参数为,head_h/pic_h 的最大值, 第三个参数为,eye_h/pic_h 的最小值, 第四个参数为,eye_h/pic_h 的最大值, 第五个参数为,top_h/pic_h 的最小值, 第六个参数为,top_h/pic_h 的最大值, 第七个参数为,face_w/pic_w的最小值, 第八个参数为,face/pic_w的最大值。

响应格式(随着传入的spec_id的不同,响应数据的种类会有一些变化):
| 参数名称 | 数据类型 | 示例值 | 描述 |
|---|---|---|---|
| code | number | 200 | 状态码 |
| result | object | ||
| source_file | str | app/5f6caba546c5ec889feffa88e4fb6dc1.jpg | 原图的云端存储路径(使用此路径作为此接口请求中的file将大大提高效率) |
| check | object | 1 | 检测结果汇总,各检测项中有一项未通过则为0,全部通过则为1 |
| check_result | object | 各个参数的检查结果:1代表通过,0代表未通过 | |
| background_color | number | 1 | 背景色 |
| bg_shadow | number | 1 | 背景阴影 |
| chin_bottom | number | 1 | 下巴距图像下边缘 |
| clothes_similar | number | 1 | 服装相似度 |
| eye_space | number | 1 | 眼部距离 |
| eyes_center_left | number | 1 | 双眼中心距图像左边缘 |
| eyes_close | number | 1 | 闭眼程度 |
| eyes_nature | number | 1 | 视线 |
| eyes_space_bottom | number | 1 | 双眼中心距图像下边缘 |
| face_blur | number | 1 | 模糊 |
| face_center | number | 1 | 脸部居中 |
| number | 1 | ||
| face_expression | number | 1 | 脸部表情 |
| face_noise | number | 1 | 脸部噪音 |
| face_unbalance | number | 1 | 阴阳脸 |
| facial_pose | number | 1 | 脸部姿态 |
| facial_shelter | number | 1 | 脸部遮挡 |
| facial_width | number | 1 | 脸部宽度 |
| file_size | number | 1 | 文件大小 |
| glasses | number | 1 | 眼镜样式 |
| glasses_glare | number | 1 | 眼镜反光 |
| hairline_top | number | 1 | 头顶发际线 |
| head_length | number | 1 | 头部长度 |
| shoulder_missed | number | 1 | 肩膀完整性(包括肩膀、头部和胸部完整性) |
| shoulder_equal | number | 1 | 肩膀等高 |
| headpose_pitch | number | 1 | 头部姿态 |
| headpose_roll | number | 1 | 头部姿态 |
| headpose_yaw | number | 1 | 头部姿态 |
| eyebrow_occlusion | number | 1 | 眉毛遮挡 |
| eye_occlusion | number | 1 | 眼睛遮挡 |
| nose_occlusion | number | 1 | 鼻子遮挡 |
| mouth_occlusion | number | 1 | 嘴巴遮挡 |
| cheek_occlusion | number | 1 | 脸颊遮挡 |
| ear_occlusion | number | 1 | 耳朵遮挡 |
| decoration_occlusion | number | 1 | 饰品遮挡 |
| missing_shoulder | number | 1 | 肩膀完整性 |
| incomplete_head | number | 1 | 头部完整性 |
| lower_body_hanging | number | 1 | 下半身悬空 |
| face_too_dark | number | 1 | 照片过暗 |
| face_over_kbt | number | 1 | 过曝光 |
| face_contrast | number | 1 | 对比度异常 |
| body_posture | number | 1 | 身体姿态 身子不正,自拍时斜向下,举手,手放脑后,抠鼻孔,托腮等 |
| hat_detection | number | 1 | 帽子检测 |
| bare_shouldered | number | 1 | 光膀检测 |
| id_exist | number | 1 | 手持证件照检测 |
| watermark_exist | number | 1 | 照片有水印 |
| pn_neck_shadow_exist | number | 1 | 脖子阴影 |
| ppi | number | 1 | 分辨率 |
| name | string | 图片的规格名称 | 图片的规格名称 |
| file_name_wm | list | ["56cf9c38d9a111e7a0a300163e06132ablue3_wm", "56cf9c39d9a111e7a0a300163e06132awhite3_wm", "56cf9c3ad9a111e7a0a300163e06132ared3_wm", "579b75b0d9a111e7a0a300163e06132ablue23_wm", "579b75b1d9a111e7a0a300163e06132agrey3_wm", "579b75b2d9a111e7a0a300163e06132ablue33_wm"] | 带水印图片名字,包括多种可选颜色 |
| file_name_print_wm | list | ["56cf9c38d9a111e7a0a300163e06132ablue3_print_wm", "56cf9c39d9a111e7a0a300163e06132awhite3_print_wm", "56cf9c3ad9a111e7a0a300163e06132ared3_print_wm", "579b75b0d9a111e7a0a300163e06132ablue23_print_wm", "579b75b1d9a111e7a0a300163e06132agrey3_print_wm", "579b75b2d9a111e7a0a300163e06132ablue33_print_wm"] | 带水印排版图片名字,包括多种可选颜色 |
| file_name | list | ["56cf9c38d9a111e7a0a300163e06132a68798blue3", "56cf9c39d9a111e7a0a300163e06132a65760white3", "56cf9c3ad9a111e7a0a300163e06132a03509red3", "579b75b0d9a111e7a0a300163e06132a71632blue23", "579b75b1d9a111e7a0a300163e06132a38271grey3", "579b75b2d9a111e7a0a300163e06132a81312blue33"] | 无水印图片名字,包括多种可选颜色 |
| file_name_print | list | ["56cf9c38d9a111e7a0a300163e06132a68798blue3_print", "56cf9c39d9a111e7a0a300163e06132a65760white3_print", "56cf9c3ad9a111e7a0a300163e06132a03509red3_print", "579b75b0d9a111e7a0a300163e06132a71632blue23_print", "579b75b1d9a111e7a0a300163e06132a38271grey3_print", "579b75b2d9a111e7a0a300163e06132a81312blue33_print"] | 无水印排版图片名字,包括多种可选颜色 |
| is_print | number | 1 | 有无排版 |
| size | list | [295, 413] | 图片尺寸 |
| size_print | list | [1795, 1205] | 排版后图片尺寸 |
| one_sheet_num | number | 8 | 排版的照片数量 |
| not_check_result | list | [{"check_param": "face_blur", "param_message": "脸部模糊","check_value":40},...] | 检测未通过参数,check_value表示算法检测出的结果值,为null时表示结果值未以明确的方式给出 |
| img_wm_url_list | list | ["https://...",...], | 带水印单张照url列表 |
| print_wm_url_list | list | ["https://...",...], | 带水印排版照url列表 |
注:名称列表和url列表内颜色顺序一一对应,url链接有效期为1个小时。
示例:
xxxxxxxxxximport requests, json, base64url = "http://apicall.id-photo-verify.com/api/cut_check_pic"with open("test.png", 'rb') as f: pic = f.read()headers = {"Content-Type": "application/json"}data = { "spec_id": 391, "app_key": "您申请的app_key", "file": base64.b64encode(pic).decode()}data_json = json.dumps(data)response = requests.post(url, headers=headers, data=data_json)print(response.text)返回数据示例:
xxxxxxxxxx{ "code": 200, "not_check_result": [], "result": { "check": 1, "check_result": { "background_color": 1, "clothes_similar": 1, "eyes_close": 1, "face_blur": 1, "face_center": 1, "face_noise": 1, "facial_pose": 1, "file_size": 1, "headpose_pitch": 1, "headpose_roll": 1, "headpose_yaw": 1, "name": "简历照片(一寸)", "photo_format": 1, "px_and_mm": 1, "shoulder_equal": 1, "sight_line": 1, "spec_id": 391 }, "file_name": [ "0d8400b2967a11ea9cfa00163e0070b633342blue3", "0d8400b2967a11ea9cfa00163e0070b629211white3", "0d8400b2967a11ea9cfa00163e0070b639814red3", "0d8400b2967a11ea9cfa00163e0070b639486blue23", "0d8400b2967a11ea9cfa00163e0070b688485grey3", "0d8400b2967a11ea9cfa00163e0070b672410blue33" ], "file_name_print": [ "0d8400b2967a11ea9cfa00163e0070b633342blue3_print", "0d8400b2967a11ea9cfa00163e0070b629211white3_print", "0d8400b2967a11ea9cfa00163e0070b639814red3_print", "0d8400b2967a11ea9cfa00163e0070b639486blue23_print", "0d8400b2967a11ea9cfa00163e0070b688485grey3_print", "0d8400b2967a11ea9cfa00163e0070b672410blue33_print" ], "file_name_print_wm": [ "0d8400b2967a11ea9cfa00163e0070b6blue3_print_wm", "0d8400b2967a11ea9cfa00163e0070b6white3_print_wm", "0d8400b2967a11ea9cfa00163e0070b6red3_print_wm", "0d8400b2967a11ea9cfa00163e0070b6blue23_print_wm", "0d8400b2967a11ea9cfa00163e0070b6grey3_print_wm", "0d8400b2967a11ea9cfa00163e0070b6blue33_print_wm" ], "file_name_wm": [ "0d8400b2967a11ea9cfa00163e0070b6blue3_wm", "0d8400b2967a11ea9cfa00163e0070b6white3_wm", "0d8400b2967a11ea9cfa00163e0070b6red3_wm", "0d8400b2967a11ea9cfa00163e0070b6blue23_wm", "0d8400b2967a11ea9cfa00163e0070b6grey3_wm", "0d8400b2967a11ea9cfa00163e0070b6blue33_wm" ], "img_wm_url_list": ["https://...","..."], "is_print": 1, "one_sheet_num": 8, "print_wm_url_list": ["https://...","..."], "size": [ 260, 378 ], "size_print": [ 1795, 1205 ] }}
基本信息:
请求类型: HTTP/HTTPS
接口地址: http://apicall.id-photo-verify.com/api/take_pic_wm/<file_name>
请求方式: GET
响应类型: Image
接口状态: 启用
接口描述:
获取带水印图片
调用此接口不会增加调用次数
示例:
xxxxxxxxxxfrom PIL import Imageimport requests, iourl = "http://apicall.id-photo-verify.com/api/take_pic_wm/0d8400b2967a11ea9cfa00163e0070b6grey3_wm"res = requests.get(url)if res.status_code == 200:bytes_data = res.contentfile = io.BytesIO(bytes_data)img = Image.open(file)img.show()file.close()img.close()
返回数据示例:

基本信息:
请求类型: HTTP/HTTPS
接口地址: http://apicall.id-photo-verify.com/api/take_cut_pic
请求方式: POST
数据类型: JSON
响应类型: Image
接口状态: 启用
接口描述:
获取无水印图片
调用此接口会增加已调用次数,无换装证件照扣一次,换装证件照扣三次 同一文件名再次获取,不会增加已调用次数
对应的app_key必须和制作时所用的app_key一致
请求格式:
| 参数名称 | 是否必须 | 类型 | 描述 |
|---|---|---|---|
| file_name | TRUE | string | 需要获取图片的名字 |
| app_key | TRUE | string | 已申请的app_key |
示例:
xxxxxxxxxxfrom PIL import Imageimport requests, iourl = "http://apicall.id-photo-verify.com/api/take_cut_pic"headers = {"Content-Type": "application/json"}file_name = "调用'制作证件照api'时获取的无水印图片列表内的图片名"app_key = "对应的app_key必须和制作时所用的app_key一致"data = {"file_name": file_name,"app_key": app_key}data_json = json.dumps(data)response = requests.post(url, headers=headers, data=data_json)if response.status_code == 200:file = io.BytesIO(response.content)img = Image.open(file)img.show()file.close()img.close()
基本信息:
请求类型: HTTP/HTTPS
接口地址: http://apicall.id-photo-verify.com/api/take_cut_pic_v2
请求方式: POST
数据类型: JSON
响应类型: JSON
接口状态: 启用
接口描述:
同时获取无水印单张和排版图片
调用此接口会增加已调用次数,无换装证件照扣一次,换装证件照扣三次 同一文件名再次获取,不会增加已调用次数
对应的app_key必须和制作时所用的app_key一致
请求格式:
| 参数名称 | 是否必须 | 类型 | 描述 |
|---|---|---|---|
| file_name | TRUE | string | 获取的无水印单张图片的名字 |
| app_key | TRUE | string | 已申请的app_key |
示例:
xxxxxxxxxximport requests, jsonurl = "http://apicall.id-photo-verify.com/api/take_cut_pic_v2"headers = {"Content-Type": "application/json"}file_name = "调用'制作证件照api'时获取的无水印图片列表内的图片名"app_key = "对应的app_key必须和制作时所用的app_key一致"data = {"file_name": file_name,"app_key": app_key}data_json = json.dumps(data)response = requests.post(url, headers=headers, data=data_json)print(response.text)
返回数据示例:
xxxxxxxxxx{"data": {"code": 200,"file_name": "https://leqi-imgcall.oss-cn-shanghai.aliyuncs.com/result%2F1dfea61a967811ea9cf900163e0070b645912white2.jpg?OSSAccessKeyId=LTAIQ8Lif1HHVkXd&Expires=1589617826&Signature=quH43abhfbXBKnqRcjx9nHO5rG0%3D","file_name_list": "https://leqi-imgcall.oss-cn-shanghai.aliyuncs.com/result%2F1dfea61a967811ea9cf900163e0070b645912white2_print.jpg?OSSAccessKeyId=LTAIQ8Lif1HHVkXd&Expires=1589617826&Signature=sVcN%2FpPJ19EoqmhPui2RvthPnp4%3D"}}
说明:code为201时,表示制作的证件照只有单张电子照,没有排版照片。
基本信息:
请求类型: HTTP/HTTPS
接口地址: http://apicall.id-photo-verify.com/api/cut_change_clothes
请求方式: POST
数据类型: JSON
响应类型: JSON
接口状态: 启用
接口描述:
对原图按证件照规格裁剪,并为其换上正装。
调用此接口不扣使用次数,通过此接口的返文件名去获取无水印图片,扣3次使用次数。 同一个图片名称(包括单张和排版),如果需要再次获取,不会增加已调用次数
官网上对应的app_key应用类型必须为剪裁换正装
请求格式:
| 参数名称 | 是否必须 | 类型 | 描述 |
|---|---|---|---|
| file | FALSE | string | 图片的base64格式或图片的云端路径 |
| app_key | TRUE | string | 已申请的app_key |
| spec_id | TRUE | int | 规格id |
| width_px | FALSE | int | 自定义像素宽度值 |
| height_px | FALSE | int | 自定义像素高度值 |
| clothes | TRUE | string | 正装模板名称(模板信息见下表) |
| fair_level | FALSE | dict | 美颜级别(默认为0,代表不美颜,级别0-1,美颜程度依次增强) |
| origin_pic_name | FALSE | string | 初始图片名称,同一张照片进行不同换装时,请传入此参数 |
| background_color | FALSE | list | 自定义照片背景色,详见第四个接口“制作并检测证件照”下方的“参数说明4” |
| ratios | FALSE | list | 自定义证件照制作比率,详见第四个接口的“参数说明5” |
| file_size_max | FALSE | int | 文件大小最大值 |
| file_size_min | FALSE | int | 文件大小最小值 |
| *print_type | FALSE | int | 排版类型,1表示默认(一寸8张),2表示紧凑型(一寸10张) |
模板信息:
响应格式:
| 参数名 | 参数类型 | 参数说明 |
|---|---|---|
| code | int | 状态码 |
| final_pic_name | list | 无水印图片名称列表(同‘带水印图片url列表’顺序),调获取无水印图片接口,进行获取。 |
| origin_pic_name | str | 原始图片名 |
| print_pic_name | list | 无水印排版图片名称列表(同‘带水印图片url列表’顺序),调获取无水印图片接口,进行获取。 |
| print_wm_pic_url | list | 带水印排版图片url列表(同‘带水印图片url列表’顺序) |
| wm_pic_url | list | 带水印图片url列表 |
| error | str | 错误信息提示 |
| one_sheet_num | int | 排版的照片数量 |
| source_file | str | 原图的云端存储路径(使用此路径作为此接口请求中的file将大大提高效率) |
示例:
xxxxxxxxxximport requests, jsonurl = "http://apicall.id-photo-verify.com/api/cut_change_clothes"with open("test.png", 'rb') as f:pic = f.read()headers = {"Content-Type": "application/json"}data = {"spec_id": 3,"app_key": "e2917fc21bb5e35e2abbcb7497ea650c21661116","file": base64.b64encode(pic).decode(),# 再次换装时,只需要传入下方的参数即可# "origin_pic_name": "83da1ba4dab211e9ab4900163e0aee01.jpg","fair_level": 0,"clothes": "applet_boy1",}data_json = json.dumps(data)start = time.time()response = requests.post(url=url,headers=headers,data=data_json)print(response.text)
返回数据示例:
xxxxxxxxxx{"code": 200,"final_pic_name": ["2c585d52968f11ea9d1100163e0070b6clothesred"],"one_sheet_num": 8,"origin_pic_name": "2c585d52968f11ea9d1100163e0070b6.jpg","print_pic_name": ["2c585d52968f11ea9d1100163e0070b6clothesred_print"],"print_wm_pic_url": ["https://leqi-imgcall.oss-cn-shanghai.aliyuncs.com/result_wm%2F2c585d52968f11ea9d1100163e0070b6red_print.jpg?OSSAccessKeyId=LTAIQ8Lif1HHVkXd&Expires=1589621634&Signature=lwVKr6MRCBlXggiWMIP0BVi5nhg%3D"],"wm_pic_url": ["https://leqi-imgcall.oss-cn-shanghai.aliyuncs.com/result_wm%2F2c585d52968f11ea9d1100163e0070b6red.jpg?OSSAccessKeyId=LTAIQ8Lif1HHVkXd&Expires=1589621634&Signature=bDV8FnrjU1Kyx77Uvf81mYdfVm8%3D"]}
基本信息:
请求类型: HTTP/HTTPS
接口地址: http://apicall.id-photo-verify.com/api/get_specs/<spec_id>
请求方式: GET
数据类型: spec_id 需为int类型
响应类型: JSON
接口状态: 启用
接口描述:
传入spec_id,获取对应的规格详情。
调用此接口不会增加调用次数
响应格式:
| 参数名 | 参数类型 | 参数说明 |
|---|---|---|
| code | int | 状态码(200为正常请求,401为传入的规格id不存在) |
| spec_id | int | 规格id |
| spec_name | str | 规格名称 |
| width_px | int | 规格宽度像素 |
| height_px | int | 规格高度像素 |
| width_mm | int | 规格对应的宽度毫米尺寸 |
| height_mm | int | 规格对应的高度毫米尺寸 |
| file_size_max | int | 规格文件大小最大值(单位:b),为null则表示没有限制 |
| file_size_min | int | 规格文件大小最小值(单位:b),为null则表示没有限制 |
| ppi | int | 规格分辨率 |
| background_color | str | 规格背景色信息 |
| is_print | int | 是否有排版照(1,表示有;0,表示没有) |
| error | str | 错误信息提示 |
示例:
xxxxxxxxxximport requestsspec_id = 1url = "http://apicall.id-photo-verify.com/api/get_specs/" + str(spec_id)res = requests.get(url)print(res.text)
返回数据示例:
xxxxxxxxxx{"background_color": "[{\"enc_color\": 4427483, \"color_name\": \"blue\", \"start_color\": 4427483}]","code": 200,"file_size_max": null,"file_size_min": null,"height_mm": 35,"height_px": 413,"is_print": 1,"ppi": 300,"spec_id": 1,"spec_name": "一寸(蓝底)","width_mm": 25,"width_px": 295}
基本信息:
请求类型: HTTP/HTTPS
接口地址: http://apicall.id-photo-verify.com/api/cut_wedding
请求方式: POST
数据类型: JSON
响应类型: JSON
接口状态: 启用
接口描述:
此方法是对双人照片进行换底裁剪,其中裁剪结果图为一张宽高比为3:2的图片,图片的大小会影响响应的时间
调用此接口不会增加调用次数 结果返回带水印图片,无水印图片和无水印已排版图片名字(均为多种颜色) 带水印图片存储时间为 1 天,无水印图片存储时间为 7 天 通过名字获取带水印图片不会增加已调用次数 (通过获取图片的api获取无水印图片或无水印已排版图片会增加 2 次调用次数) 同一个图片名称(包括单张和排版),如果需要再次获取,不会增加已调用次数
对应的app_key应用类型必须为结婚照制作 为保证图片质量,请上传的图片尽量遵循“男右女左”的顺序、且不戴首饰 考虑到算法响应速度,图片最好不超过 6Mb
请求格式:
| 参数名称 | 参数类型 | 是否可空 | 参数示例 | 参数说明 |
|---|---|---|---|---|
| file | string | 否 | app/123.jpg | 图片的base64格式或图片的云端路径 |
| app_key | string | 否 | 已申请的app_key | |
| process | string | 是 | image/resize,mxxx | 缩放规则 |
| img_size | list | 是 | [926,617] | 制作结果宽高,宽高比例必须为3:2,若为空,则返回宽高比为3:2的未缩放图 |
| fair_level_right | dict | 是 | None | 右人像美颜级别,详细见下方说明 |
| fair_level_left | dict | 是 | None | 左人像美颜级别,详细见下方说明 |
| need_beauty_buffer | bool | 是 | True | 是否需要美颜中间参数,默认为False,在客户端本地美颜时,需要此参数为True,且img_size字段将失效 |
| use_cache | bool | 是 | True | 是否需要使用缓存,默认为True |
| bg_type | string | 是 | RGB | 背景色类型,默认为暗红色图片背景,选择RGB则为(200, 37, 40)背景色 |
fair_level说明(以下各项默认为0):
xxxxxxxxxx{"leyelarge": 1, # 左眼放大程度(0~5)"reyelarge": 1, # 右眼放大程度(0~5)"mouthlarge": 1, # 嘴巴缩小程度(0~5)"skinwhite": 1, # 皮肤美白程度(0~5)"skinsoft": 1, # 皮肤美肤程度(去皱纹、祛斑等)(0~5)"coseye": 1, # 美瞳程度(0~5)"facelift": 1 # 瘦脸程度(0~5)}
响应格式(详见下方返回示例):
| 参数名 | 参数类型 | 参数说明 |
|---|---|---|
| code | int | 状态码(200为正常请求,401为传入的规格id不存在) |
| result | object | |
| file_name | str | 无水印图片名称 |
| file_name_wm | str | 带水印图片名称 |
| img_wm_url | str | 带水印图片URL |
| source_file | str | 原图的云端存储路径(使用此路径作为此接口请求中的file将大大提高效率) |
| size | list | 图片尺寸(只有传递img_size才会有) |
| beauty_buffer | object | |
| left | str | base64编码后的左脸的美颜中间结果 |
| right | str | base64编码后的左脸的美颜中间结果 |
示例:
xxxxxxxxxx# 同步请求import requests, json, base64url = "http://apicall.id-photo-verify.com/api/cut_wedding"with open("90.jpg", 'rb') as f:pic = f.read()headers = {"Content-Type": "application/json"}data = {"app_key": "your cut_wedding app_key","file": base64.b64encode(pic).decode(),}data_json = json.dumps(data)res = requests.post(url,headers=headers, data=data_json)print(res.text)# 异步请求import asyncio, requests, json, io, base64from aiohttp import ClientSessionasync def cut_wedding():url = "http://apicall.id-photo-verify.com/api/cut_wedding"with open("63.jpg", 'rb') as f:pic = f.read()headers = {"Content-Type": "application/json"}data = {"app_key": "your cut_wedding app_key","file": base64.b64encode(pic).decode(),}data_json = json.dumps(data)async with ClientSession() as session:async with session.post(url, headers=headers, data=data_json) as res:result = await res.read()print(json.loads(result))if __name__ == '__main__':loop = asyncio.get_event_loop()loop.run_until_complete(cut_wedding())
返回示例:
xxxxxxxxxx{'code': 200,'result': {'beauty_buffer': {'left': '', 'right': ''},'file_name': '0141b4129bf111ea97cf00163e0aee0131125red2','file_name_wm': '0141b4129bf111ea97cf00163e0aee01red_wm','img_wm_url': 'https://leqi-imgcall.oss-cn-shanghai.aliyuncs.com/result_wm%2F0141b4129bf111ea97cf00163e0aee01red_wm.jpg?OSSAccessKeyId=LTAIQ8Lif1HHVkXd&Expires=1590213432&Signature=k9gEFMtfVB8ACcUK27bggQLRiGY%3D','print_file': '0141b4129bf111ea97cf00163e0aee0131125red2_print','print_wm_url': 'https://leqi-imgcall.oss-cn-shanghai.aliyuncs.com/result%2F0141b4129bf111ea97cf00163e0aee01red_print_wm.jpg?OSSAccessKeyId=LTAIQ8Lif1HHVkXd&Expires=1590213432&Signature=Z%2BQOxxc9Jdd1qdtE5XyoEjTsQYg%3D','size': []}}
基本信息:
请求类型: HTTP/HTTPS
接口地址: http://apicall.id-photo-verify.com/api/sdk_cut_pic
请求方式: POST
数据类型: JSON
响应类型: JSON
接口状态: 启用
接口描述:
此接口是为了适配集成本地美颜SDK的项目(没有集成可以使用线上的美颜),返回一张透明底色带水印的图片,可在本地美颜后请求对应的制作接口获取心仪的图片。推荐使用“制作并检测接口”获取最终图片。
调用此接口不会增加调用次数 结果返回透明底色带水印的图片URL及其名称,存储时间为 1 天 通过名字获取带水印图片不会增加已调用次数 (通过获取图片的api获取无水印图片或无水印已排版图片会增加 1 次调用次数) 同一个图片名称(包括单张和排版),如果需要再次获取,不会增加已调用次数
对应的app_key应用类型必须为本地美颜SDK适配 考虑到算法响应速度,图片最好不超过 6Mb SDK使用方式会在后续进行丰富
最新SDK下载地址:
请求格式:
| 参数名称 | 参数类型 | 是否可空 | 参数示例 | 参数说明 |
|---|---|---|---|---|
| file | string | 否 | app/123.jpg | 图片的base64格式或图片的云端路径 |
| spec_id | int | 否 | 361 | 已有的规格ID |
| app_key | string | 否 | 已申请的app_key | |
| process | string | 是 | image/resize,mxxx | 缩放规则(非特殊要求可无视) |
| img_size | list | 是 | [926,617] | 制作结果宽高,若为空,则返回原比例未缩放图 |
| ratios | list | 是 | [1,2,3,4,5] | 自定义证件照制作比率,详见第四个接口的“参数说明5” |
| fair_level | dict | 是 | None | 左人像美颜级别,详细见下方说明 |
| clothes | string | 是 | applet_boy1 | 正装模板名称(模板信息见换装接口) |
| local_beauty | bool | 是 | False | 是否本地美颜,此参数为True时返回值beauty_intermediate_result字段才有意义 |
fair_level说明(以下各项默认为0):
xxxxxxxxxx{"leyelarge": 1, # 左眼放大程度(0~5)"reyelarge": 1, # 右眼放大程度(0~5)"mouthlarge": 1, # 嘴巴缩小程度(0~5)"skinwhite": 1, # 皮肤美白程度(0~5)"skinsoft": 1, # 皮肤美肤程度(去皱纹、祛斑等)(0~5)"coseye": 1, # 美瞳程度(0~5)"facelift": 1 # 瘦脸程度(0~5)}
注:因为历史遗留的原因,制作并检测或换装接口的 fair_level 都需要除以5后再传递
响应格式(详见下方返回示例):
| 参数名 | 参数类型 | 参数说明 |
|---|---|---|
| code | int | 状态码(200为正常请求,401为传入的规格id不存在) |
| result | object | |
| size | list | 图片大小(像素宽高比) |
| source_file | str | 原图的云端存储路径(使用此路径作为此接口请求中的file将大大提高效率) |
| img_wm_url | str | 带水印图片URL |
| background_color | list | 对应规格的背景色,也可用于其他接口自定义背景色,详见第4接口参数说明4 |
| beauty_intermediate_result | str | 美颜算法的中间结果,用于本地美颜 |
示例:
xxxxxxxxxx# 同步请求import requests, json, base64def sdk_cut_pic():url = "http://apicall.id-photo-verify.com/api/sdk_cut_pic"with open("test.png", 'rb') as f:pic = f.read()headers = {"Content-Type": "application/json"}data = {"spec_id": 391,# "img_size": [480, 640], # 有需求可自行设置'local_beauty': True, # 本地美颜"app_key": "your sdk app_key","file": base64.b64encode(pic).decode(),}data_json = json.dumps(data)res = requests.post(url, headers=headers, data=data_json)print(res.status_code)print(res.text)
返回示例:
xxxxxxxxxx{"code": 200,"result": {"background_color": [{"color_name": "blue","enc_color": 4427483,"start_color": 4427483},{"color_name": "white","enc_color": 16777215,"start_color": 16777215},{"color_name": "red","enc_color": 16711680,"start_color": 16711680}],"beauty_intermediate_result": "...", # 美颜算法的中间结果,在本地美颜时有用"file_name_wm": "ef02d846a0bc11ea97cf00163e0aee0153925_SDK_wm","img_wm_url": "https://leqi-imgcall.oss-cn-shanghai.aliyuncs.com/result_wm%2Fef02d846a0bc11ea97cf00163e0aee0153925_SDK_wm.jpg?Signature=3OAaU6uk%2BILD%2Bbp5zxA%2F1Ot6GTk%3D&OSSAccessKeyId=LTAIQ8Lif1HHVkXd&Expires=1590740797","size": [480,640]}}
基本信息:
请求类型: HTTP/HTTPS
接口地址: http://apicall.id-photo-verify.com/api/get_beauty_version
请求方式: GET
响应类型: JSON
接口状态: 启用
接口描述:
此接口是为了配合本地美颜SDK接口,用于获取线上美颜版本号。
调用此接口不会增加调用次数
响应格式:
| 参数名 | 参数类型 | 参数说明 |
|---|---|---|
| code | int | 状态码(200为正常请求) |
| beauty_version | str | |
| error | str | 错误信息提示 |
基本信息:
请求类型: HTTP/HTTPS
接口地址: http://apicall.id-photo-verify.com/api/get_upload_policy
请求方式: GET/POST
响应类型: JSON
接口状态: 启用
接口描述:
为了降低服务器压力,提高接口响应效率,故新增获取OSS直传凭证的接口。
调用此接口不会增加调用次数 图片保存时间为 1 天
接口说明:
服务端签名后直传的原理如下:
通过此方式访问证件照制作接口,将提高算法的响应速度,如何保证双方正常通信请查看下方“响应格式”。
请求格式:
| 参数名 | 参数类型 | 是否可空 | 参数示例 | 参数说明 |
|---|---|---|---|---|
| file_name | str | 否 | test.png | 带后缀的图片名称,目的就是提取图片格式,必填 |
响应格式:
| 参数名 | 参数类型 | 参数说明 |
|---|---|---|
| code | int | 状态码(200为正常请求) |
| result | object | |
| OSSAccessKeyId | str | 上传凭证之一 |
| dir | str | 上传图片前缀(不要改动) |
| key | str | 文件名,按此格式上传即可 |
| expire | int | 过期时间(时间戳) |
| host | str | 请求网址 |
| policy | str | 上传凭证之一 |
| signature | str | 签名,上传凭证之一 |
| origin_pic_url | str | 即将上传的图片的预览链接,请在上传后访问查看 |
注:具体使用请参考下方示例代码,上传时文件的参数是 *file*(图片的二进制)
返回示例:
xxxxxxxxxx{"code": 200,"result": {"OSSAccessKeyId": "LTAIQ8Lif1HHVkXd","dir": "app/","expire": 1591090150,"host": "https://testleqi.oss-cn-shanghai.aliyuncs.com","key": "app/22161fdaa4ab11ea97cf00163e0aee01.png","policy": "eyJjb25kaXRpb25zIjogW1sic3RhcnRzLXdpdGgiLCAiJGtleSIsICJhcHAvIl1dLCAiZXhwaXJhdGlvbiI6ICIyMDIwLTA2LTAyVDA5OjI5OjEwWiJ9","signature": "pUo3eb9ZP/05uVUzt6N7CKZsu2M=","origin_pic_url": "http://...."}}
使用方法(ajax):
xxxxxxxxxx<script>$('#upload_img').click(function () {// 获取文件,请修改参数var img_file = $("#file")[0].files[0]$.ajax({type: 'GET',url: 'http://apicall.id-photo-verify.com/api/get_upload_policy',data: { file_name: img_file.name },dataType: 'json',success: function (res) {if (res.code == 200) {// 构建上传参数var formData = new FormData()formData.append("key", res.result.key)formData.append("OSSAccessKeyId", res.result.OSSAccessKeyId)formData.append("signature", res.result.signature)formData.append("policy", res.result.policy)formData.append("success_action_status", 200)formData.append("file", img_file)var host = res.result.host$.ajax({type: "POST",url: host,cache: false,contentType: false,processData: false,data: formData,async: false,success: function (data) {console.log("success", data) // 实际上不会返回任何消息,可自定义逻辑},})} else {console.log(res.error)}},})});</script>
注意点:以上代码仅为示例代码,不代表推荐使用代码。请根据具体业务要求更改或重新构建代码。
基本信息:
请求类型: HTTP/HTTPS
接口地址: http://apicall.id-photo-verify.com/api/whole_body_change
请求方式: POST
数据类型: JSON
响应类型: JSON
接口状态: 启用
接口描述:
此接口传入一张单人照(人物头部完整就行,不需要传全身照!!!不需要传全身照!!!不需要传全身照!!!),选择服装模板后返回对应的透明底换装图片,可参考剪裁并换装接口。目前主要用于毕业照的换装。
若需要定制服装或添加服装请联系销售人员。
调用此接口不会增加调用次数 结果返回透明底色带水印的图片URL及其名称,存储时间为 1 天 通过名字获取带水印图片不会增加已调用次数 (通过获取图片的api获取无水印图片或无水印已排版图片会增加 1 次调用次数) 同一个图片名称(包括单张和排版),如果需要再次获取,不会增加已调用次数
对应的app_key应用类型必须为全身(半身)换装
考虑到响应速度,图片请用上方获取OSS直传凭证上传文件后使用图片的云端路径访问
效果展示(灵魂画师):

请求格式:
| 参数名称 | 参数类型 | 是否可空 | 参数示例 | 参数说明 |
|---|---|---|---|---|
| file | string | 否 | app/123.jpg | 图片文件oss存储路径名称 |
| clothes_id | string | 否 | 1 | 已有的服装ID |
| app_key | string | 否 | 已申请的app_key | |
| process | string | 是 | image/resize,mxxx | 缩放规则(非特殊要求可无视) |
| img_size | list | 是 | [926,617] | 制作结果宽高(非特殊要求可无视) |
| need_resize | bool | 是 | False | 是否需要缩放,img_size只是确定比例,但是不会缩放(默认不缩放) |
| ratios | list | 是 | [1,2,3,4,5] | 自定义证件照制作比率,详见第四个接口的“参数说明5” |
| fair_level | dict | 是 | None | 人像美颜级别,详细见下方说明 |
| hat_id | string | 是 | 1 | 已有帽子ID,若不需要帽子可不传 |
| hat_params | dict | 是 | None | 帽子的参数,为字典格式,详见下方说明(非必要情况无需传递此参数) |
fair_level说明(以下各项默认为0):
xxxxxxxxxx{"leyelarge": 1, # 左眼放大程度(0~5)"reyelarge": 1, # 右眼放大程度(0~5)"mouthlarge": 1, # 嘴巴缩小程度(0~5)"skinwhite": 1, # 皮肤美白程度(0~5)"skinsoft": 1, # 皮肤美肤程度(去皱纹、祛斑等)(0~5)"coseye": 1, # 美瞳程度(0~5)"facelift": 1 # 瘦脸程度(0~5)}
帽子hat_params参数说明:
hat_params字段为字典格式,当非空时,其有必须要有如下四个点的坐标

xxxxxxxxxx{'left_top': [0, 181],'right_top': [493, 181],'left_brim': [61, 298],'right_brim': [429, 298]}
全身服装模板:
| clothes_id | 效果图 | 备注 |
|---|---|---|
| 1 | ![]() | 毕业照模板1 |
帽子模板:
| hat_id | 效果图 | 备注 |
|---|---|---|
| 1 | ![]() | 学士帽1 |
响应格式(详见下方返回示例):
| 参数名 | 参数类型 | 参数说明 |
|---|---|---|
| code | int | 状态码(200为正常请求,401为传入的规格id不存在) |
| result | object | |
| size | list | 图片大小(像素宽高比) |
| source_file | str | 原图的云端存储路径(使用此路径作为此接口请求中的file将大大提高效率) |
| img_wm_url | str | 带水印图片URL |
| file_name | list | 无水印图片名称 |
示例:
xxxxxxxxxx# 同步请求import requests, json, base64def whole_body_change():url = "http://apicall.id-photo-verify.com/api/whole_body_change"headers = {"Content-Type": "application/json"}data = {"clothes_id": 1,"hat_id": 1,"need_resize": True,"app_key": "your app_key","file": "图片云端路径",}data_json = json.dumps(data)res = requests.post(url, headers=headers, data=data_json)print(res.status_code)print(res.text)
返回示例:
xxxxxxxxxx{"code": 200,"result": {"file_name": "change_plus637e927fa3324a52312552b5c3e1d3.png","img_wm_url": "https://...","size": [316,806],"source_file": "app/637e927fa3324a52312552b5c3e1d3.jpg"}}
基本信息:
请求类型: HTTP/HTTPS
接口地址: http://apicall.id-photo-verify.com/api/cutout_pic
请求方式: POST
数据类型: JSON
响应类型: JSON
接口状态: 启用
接口描述:
此接口可以进行完整的人体抠图,也可以通过设置裁剪参数来对人体进行粗略的裁剪,多人脸也能正常抠图,不过只扣算法选中的第一张人脸。结果返回扣好图后的透明底图片。
若需要换背景可使用我们提供的本地换背景并保存的代码,目前支持语言:HTML、微信小程序、安卓、iOS、python
调用此接口不会增加调用次数 结果返回透明底色带水印的图片URL及其名称,存储时间为 1 天 通过名字获取带水印图片不会增加已调用次数 (通过获取图片的api获取无水印图片或无水印已排版图片会增加 1 次调用次数) 同一个图片名称(包括单张和排版),如果需要再次获取,不会增加已调用次数
对应的app_key应用类型必须为半身照/全身照抠图
考虑到响应速度,图片请用上方获取OSS直传凭证上传文件后使用图片的云端路径访问
请求格式:
| 参数名称 | 参数类型 | 是否可空 | 参数示例 | 参数说明 |
|---|---|---|---|---|
| file | string | 否 | app/123.jpg | 图片文件oss存储路径名称 |
| app_key | string | 否 | 已申请的app_key | |
| img_size | list | 是 | [926,617] | 制作结果宽高(非特殊要求不要传) |
| need_resize | bool | 是 | False | 是否需要缩放,img_size只是确定比例,但是不会缩放(默认不缩放,非特殊要求不要传) |
| head_height | list | 是 | [0.25, 0.50] | 头高 与 照片高度的比例范围(非特殊要求不要传) |
| headtop_margin | list | 是 | [0.05, 0.10] | 头顶部到照片上边框距离与照片高度的比例范围(非特殊要求不要传) |
注:若想自定义裁剪,img_size、need_resize、head_height、headtop_margin四个参数必填,具体可咨询技术人员
响应格式(详见下方返回示例):
| 参数名 | 参数类型 | 参数说明 |
|---|---|---|
| code | int | 状态码(200为正常请求,401为传入的规格id不存在) |
| result | object | |
| source_file | str | 原图的云端存储路径(使用此路径作为此接口请求中的file将大大提高效率) |
| img_wm_url | str | 带水印图片URL |
| file_name | list | 无水印图片名称 |
示例:
xxxxxxxxxx# 同步请求import requests, jsondef cutout_pic():url = "http://apicall.id-photo-verify.com/api/cutout_pic"headers = {"Content-Type": "application/json"}data = {"app_key": "your app_key","file": "图片云端路径",}data_json = json.dumps(data)res = requests.post(url, headers=headers, data=data_json)print(res.status_code)print(res.text)
返回示例:
xxxxxxxxxx{"code": 200,"result": {"file_name": "cutout9e3422a3271f1442b73502a137fcf2.png","img_wm_url": "https://...","source_file": "app/9e3422a3271f1442b73502a137fcf2.jpg"}}
基本信息:
请求类型: HTTP/HTTPS
接口地址: http://apicall.id-photo-verify.com/api/face_feature
请求方式: POST
响应类型: JSON
接口状态: 启用
接口描述:
此接口用于提取照片中的人脸特征信息,目前主要用于活体检测(例如:图片是否是对着照片的翻拍),后期可以通过对比此特征值来判断人脸的相似度(暂未开放,可联系销售人员进行商谈)。
调用此接口不会增加调用次数
请求格式:
| 参数名称 | 参数类型 | 是否可空 | 参数示例 | 参数说明 |
|---|---|---|---|---|
| file | string | 否 | app/123.jpg | 图片文件oss存储路径名称 |
| app_key | string | 否 | 已申请的app_key | |
| liveness_threshold | int | 是 | 80 | 活体检测阈值(可无视,设不设置都要结果) |
| need_feature | bool | 是 | False | 是否需要特征值,可用于判断人脸相似度,默认是False(暂未开放,若有需要请联系销售) |
响应格式:
| 参数名 | 参数类型 | 参数说明 |
|---|---|---|
| code | int | 状态码(200为正常请求) |
| error | str | 错误信息提示 |
| result | object | |
| source_file | str | 原图的云端存储路径(使用此路径作为此接口请求中的file将大大提高效率) |
| face_feature | str | 人脸特征信息(暂不提供,为保留字段) |
| liveness_threshold | int | 活体的检测阈值,不管有没有liveness_threshold参数都会返回 |
返回示例:
{
"code": 200,
"error": "",
"result": {
"face_feature": "",
"liveness_threshold": 100,
"source_file": "app/d321c45c7b6a411f7dce0dd332c6.jpg"
}
}
2021年01月12 1,2、4、8接口新增排版参数:print_type; 2, 新增检测项:脖子阴影--“pn_neck_shadow_exist”; 3,弃用 面部颜色(face_color)检测
2020年10月 08 1,剪裁换正装 接口新增参数 file_size_max、file_size_min;
2020年08月28 1,制作并检测 与 检测 接口返回参数新增all_check_result; 2, 结婚照接口新支持 默认的RGB 背景色;
2020年08月21 1,美颜更新至1004版本,项目中有用到本地美颜SDK的请及时更新。
2020年07月23 1,获取OSS直传凭证接口返回结果新增原图返回路径 origin_pic_url。
2020年07月20 1,新增人脸特征检测接口; 2, 全身(半身)换装新增衣领参数、服装id与帽子id类型改为string;
2020年06月13 1,全身(半身)换装新增多个服装与帽子模板; 2, 本地美颜SDK新增file_name返回字段; 3, 半身照/全身照抠图新增本地换背景代码示例;
2020年06月10 1,新增全身(半身)换装接口; 2, 新增半身照/全身照抠图接口。
2020年06月04 1,剪裁换正装接口“file”可为图片存储于云端的路径,并增加缓存功能。
2020年06月02 1,新增获取OSS直传凭证接口。 2, 制作并检查证件照、结婚照制作、本地美颜SDK接口新增返回参数“source_file”,即源图片存储于云端的路径,使用方法请查看下一条说明。 3, 制作并检查证件照、结婚照制作、本地美颜SDK接口的上传参数“file”可为图片存储于云端的路径。 4 , 制作并检查证件照、结婚照制作、本地美颜SDK接口新增缓存功能,同一张图片(无论是base64还是云端路径)的多次访问的响应速度大大提升。
2020年05月28 1,新增本地美颜SDK适配接口。 2, 剪裁换正装接口请求参数fair_level类型换为dict。 3 , 换装模板新增 男装模板14~16,女装模板13~15,童装模板19、20。
2020年05月22 1,新增结婚照制作接口。 2, 优化api文档,下载api文档改为markdown文件。
2020年05月12 1,制作并检测接口,新增“pn_mask_exist”参数。
2020年04月13日 1,换装接口,请求参数新增“ratios”字段 2,增加了换装模板
2019年12月19日 1,换装接口,返回值新增“one_sheet_num”字段
2019年12月16日 1,换装接口,新增自定义背景色功能
2019年12月9日 1,新增了一些正装模板
2019年11月19日 1,“制作并检测证件照”接口新增background_color,ratios参数。
2019年11月13日 1,新增了一些正装模板
2019年11月4日 1,新增“规格详情”接口
2019年10月22日 1,“制作并检测证件照”新增检测项:照片存在水印,检测项参数“watermark_exist”
2019年10月21日 1,“裁剪换正装”接口,请求参数支持自定义宽高像素。
2019年9月30日更新内容: 1,此次更新内容为:新增“裁剪换正装”接口。
2019年9月25日更新内容: 1,“制作证件照”和“制作并检测证件照”接口返回内容中,新增字段“img_wm_url_list”,表示单张带水印照片的url列表,新增字段“print_wm_url_list”,表示带水印排版照的url列表。
2019年9月6日更新内容: 1,“制作证件照”和“制作并检测证件照”接口返回内容中,新增字段“one_sheet_num”,表示排版的照片张数。 2,“制作并检测证件照”接口返回内容中,新增字段“not_check_result”,表示检测未通过项的参数。
2019年7月1日更新内容: 1,此次更新为新加光膀检测,参数:bare_shouldered。
2019年6月25日更新内容: 1,此次更新参数“fair_lever”的说明,支持以字典形式传输。
2019年5月10日更新内容: 1,“制作并检测证件照”接口的检测算法更新,新加检测项参数:missing_shoulder、incomplete_head、lower_body_hanging、headpose_yaw、headpose_pitch、headpose_roll、face_too_dark、face_contrast。 2,“制作并检测证件照”接口参数“facial_shelter”更新,面部遮挡检测更加全面。 3,“证件照制作”和“制作并检测证件照”接口中返回的排版照间距进行了优化,方便手动裁切。