辅助 API

每个辅助 API 端点均提供 cURL、Python 和 Node 示例:支持的国家和州、子类别目录,以及您的套餐涵盖的发布平台站点。

辅助端点提供 3 个参考目录,API 的其余部分会依据这些目录进行验证:支持哪些国家和州、有哪些商家类别,以及您的套餐涵盖哪些发布平台目录。这 3 个端点均为只读,不分页,且返回完整集合,因此使用 Read(读取)密钥即可,缓存比分页更重要。

端点概览

方法路径功能参考
GET/countries所有支持的国家及其州和 ISO 代码。列出支持的国家和州
GET/sub-categories完整的商家类别目录,约 6,000 条记录。列出子类别
GET/plan-sites您的套餐包含的所有发布平台目录。列出套餐站点

列出支持的国家和州

GET /countries

在 data.supportedCountries 下返回完整目录。每个国家均包含一个 ISO 代码、一个 base64 id、一个数值型 databaseId、一个条目各自带有 ISO 代码的 states 数组,以及 3 个地址标志:hasCity(城市必填)、stateRequired(州必填,且会依据 states 进行验证)和 hasPostalCode(该国家使用邮政编码)。未划分下级行政区的国家会返回空的 states 数组。

参数

此端点不接受任何参数。它始终返回完整集合。

Countries
curl https://listingsapi.com/api/v4/countries \-H "Authorization: API $LISTINGSAPI_KEY"
JSON
{  "data": {    "supportedCountries": [      {        "databaseId": 13,        "hasCity": true,        "id": "Q291bnRyeToxMw==",        "iso": "AU",        "name": "Australia",        "states": [          { "countryId": 13, "id": "139", "iso": "VIC", "name": "Victoria" },          { "countryId": 13, "id": "142", "iso": "NSW", "name": "New South Wales" }        ]      },      {        "databaseId": 17,        "hasCity": true,        "id": "Q291bnRyeToxNw==",        "iso": "BE",        "name": "Belgium",        "states": []      }    ]  }}

您需要的是这两个 iso 字段的值。在创建和更新时,国家的 iso 用作 countryIso,州的 iso 用作 stateIso。在写入前依据此列表验证这两个值,即可将服务器端的 400 转化为您自己的表单中的明确提示。

列出子类别

GET /sub-categories

在 data.subcategories 下以单个不分页的数组返回约 6,000 条类别记录。通过此查找,您可以将已知的自由文本商家类型转换为写入地点所需的数值型 id。

参数

无。每次调用都会返回整个目录。

Subcategories
curl https://listingsapi.com/api/v4/sub-categories \-H "Authorization: API $LISTINGSAPI_KEY"
JSON
{  "data": {    "subcategories": [      {        "databaseId": 4589,        "id": "U3ViQ2F0ZWdvcnk6NDU4OQ==",        "key": "3d-printing-service",        "name": "3D printing service",        "primary": true      }    ]  }}

每条记录包含 5 个字段,使用哪个字段取决于它的用途。

字段用途
databaseId作为 subCategoryId 以及 additionalCategoryIds 中的值传入的整数。
id同一条记录的 base64 标识符。
key适合用于 URL 的名称 slug。
name向用户显示的标签。
primary该类别是否可作为地点的主要子类别。

一个地点在 subCategoryId 中接受 1 个主要类别,在 additionalCategoryIds 中最多接受 9 个其他类别。

列出套餐站点

GET /plan-sites

在 data.planSites 下返回您账户的套餐所包含的所有发布平台目录。这是数值型站点 id 的权威列表,只有出现在此列表中的 id 才能在 API 的其他位置使用。

参数

无。响应范围限定为您账户的套餐。

Plan sites
curl https://listingsapi.com/api/v4/plan-sites \-H "Authorization: API $LISTINGSAPI_KEY"
JSON
{  "data": {    "planSites": [      {        "id": 1,        "name": "Google Maps",        "url": "maps.google.com",        "supportedCountries": ["US", "CA", "IN", "GB", "DE"],        "hideAddressSupportedCountries": ["US", "CA", "AU", "IN", "GB"]      },      {        "id": 184,        "name": "Facebook",        "url": "facebook.com",        "supportedCountries": ["US", "CA", "IN", "GB", "DE"],        "hideAddressSupportedCountries": ["US", "CA", "AU", "IN", "GB"]      }    ]  }}

这两个国家数组回答的是不同的问题。supportedCountries 表示站点接受哪些国家的商家信息,因此请先按您地点的 countryIso 进行筛选,再提供发布平台选项。hideAddressSupportedCountries 表示站点在哪些国家支持隐藏地址,而这正是服务区域商家所需要的。两个数组都可能包含 50 个或更多代码;上面的示例已作删减。

站点 id 是固定的,其中两个值得记住:1 是 Google Maps,184 是 Facebook,大多数连接流程都面向这两个发布平台。

地点操作链接没有独立的端点。地点操作链接是 Google 上的按钮,例如 在线订购、预订餐桌和预约服务,平台将其作为地点的一个字段来管理,而不是作为独立资源。您可以在创建和更新时通过 placeActionLinks 数组设置这些链接,并通过任意地点读取端点读取它们。

每个条目都需要 placeActionType 和 uri,可包含可选的 isPreferred 标志,每种类型最多只能有 1 个首选链接,并且在更新时接受值为 add 或 delete 的 action。有效类型、删除规则和同步行为均在地点操作链接中说明。

您可能遇到的错误

代码或状态含义解决方法
401密钥缺失或无效。发送 Authorization: API <YOUR_API_KEY>。
429,附带 Retry-After这些目录共用您账户的速率限制。缓存结果。请参阅速率限制。
countries 返回 500服务端故障,而非请求有误。采用退避策略重试;调用中没有需要修正的内容。

这些端点均不执行写入操作,因此使用 Read 密钥调用这些端点时,绝不会返回 SY90016。完整列表请参阅错误代码。

后续步骤