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

如何用Python调用Google Places API新版Text Search(仅获place_id)及计费疑问

问题解答

核心结论

仅请求place_id的Find Place API调用确实免费,但你当前用错了API接口——你的代码调用的是Text Search API,该接口本身属于收费范畴,且不支持fieldMask参数,这就是你要么调用失败、要么返回多余信息的根本原因。

问题分析

  1. 接口参数不匹配:你代码里的textsearch是Text Search API的端点,这个接口没有fieldMask参数,所以你设置的该参数完全无效,接口会默认返回包含地址、位置、评分等的完整结果,这类调用会产生费用。
  2. 免费规则的适用范围:谷歌文档中提到的免费调用,特指Find Place API在仅指定fieldMask=place_id时的场景,其他Places API接口(包括Text Search、Nearby Search等)无论返回什么字段,都会按对应计费规则收费。

代码修改方案

将接口替换为Find Place API的端点,同时调整参数(Find Place用input而非query参数):

import requests

def find_place(query, api_key):
    base_url = "https://maps.googleapis.com/maps/api/place/findplacefromtext/json"
    params = {
        "input": query,
        "inputtype": "textquery",
        "fieldMask": "place_id",
        "key": api_key
    }
    response = requests.get(base_url, params=params)
    return response.json()

修改后调用该接口,只会返回place_id,且这类调用属于免费额度内的请求,不会产生扣费。

额外说明

  • 如果你误通过Text Search API获取到了地址、位置等基础信息,这类调用仍然会按Text Search的规则收费,不会因为你没主动请求这些信息就免费。
  • 若想确认扣费情况,可在谷歌云控制台的账单详情中查看各类API的调用量及费用明细,也可以设置预算提醒避免意外扣费。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.01 04:55:32