You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

SurveyMonkey API调用时status参数无法筛选联系人状态如何解决

问题原因分析
  • 核心问题是status参数的取值不符合SurveyMonkey V3 API的规范:你当前使用的参数值是optout,但官方要求的已退订状态枚举值为opted_out,退信状态对应的枚举值为bounced。枚举值不匹配时接口会触发默认的active(活跃联系人)筛选规则,所以你只能拿到活跃联系人数据。
  • 第二个潜在问题是手动拼接URL参数容易出现编码错误,虽然当前per_page可以正常生效,但如果后续参数包含特殊字符很容易出现异常,更推荐使用requests库原生的params参数传递查询条件。
修正后的代码示例
import requests

token = "<your_token>" # 替换为实际的接口密钥
client = requests.session()
headers = {
    "Authorization": "Bearer %s" % token,
    "Content-Type": "application/json"
}

HOST = "https://api.surveymonkey.com"
EMAIL_ENDPOINT = "/v3/contacts"

# 获取已退订联系人
optout_params = {
    "status": "opted_out",
    "per_page": 1000
}
optout_url = f"{HOST}{EMAIL_ENDPOINT}"
optout_api = client.get(optout_url, headers=headers, params=optout_params).json()

# 获取已退信联系人只需替换status参数值即可
bounced_params = {
    "status": "bounced",
    "per_page": 1000
}
bounced_url = f"{HOST}{EMAIL_ENDPOINT}"
bounced_api = client.get(bounced_url, headers=headers, params=bounced_params).json()
额外注意事项
  • 如果你的联系人总量超过1000条,需要处理分页逻辑,通过返回结果里的links.next字段拉取下一页数据,避免遗漏数据。
  • 调用时如果出现权限报错,先确认你的API密钥具备联系人的只读权限,对应SurveyMonkey后台的应用权限配置要勾选联系人相关的读权限。

内容的提问来源于stack exchange,提问作者wilmy

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.01 08:06:05