🗺️

FoursquareのPlaces API について料金とか制限とか調べてみた

2021/09/17に公開

APIバージョンV2の内容となっております。

これです。
現在はバージョンが違うので注意です。
https://developer.foursquare.com/docs/places-api/

単語で場所の情報(施設名や、住所、緯度経度、Foursquare側で用意されているカテゴリーなど)を検索したり、venue_id(Foursquare側で場所情報を一意にできる識別し)でその場所の詳細データを取得したり、その他いろいろできるAPIです。

OAuthを使ったユーザー認証などもできるのですが、今回はそのあたり以外のことについて書きます。

実際のResponse

具体的にどんなデータが取れるかみてもらったほうがわかりやすいと思うので、
例えば、https://api.foursquare.com/v2/venues/suggestcompletionという、文字を与えるとその文字に近い場所の名前をもつ場所情報をサジェストしてくれるAPIです。
zeppと検索してみた場合以下のレスポンスが得られました。

{
  "meta": {
    "code": 200,
    "requestId": "61355798e91a0e64f5d65415"
  },
  "response": {
    "minivenues": [
      {
        "id": "5e1eda53c0a0b20008509ec2",
        "name": "KT Zepp Yokohama",
        "location": {
          "address": "西区みなとみらい4-3-6",
          "city": "横浜市",
          "state": "神奈川県",
          "postalCode": "220-0012",
          "country": "JP",
          "lat": 35.46001198513382,
          "lng": 139.62596997113488
        },
        "categories": [
          {
            "id": "4bf58dd8d48988d1e9931735",
            "name": "ライブハウス",
            "pluralName": "ライブハウス",
            "shortName": "ライブハウス",
            "icon": {
              "prefix": "https:\/\/ss3.4sqi.net\/img\/categories_v2\/arts_entertainment\/musicvenue_rockclub_",
              "suffix": ".png"
            },
            "primary": true
          },
          {
            "id": "5032792091d4c4b30a586d5c",
            "name": "コンサートホール",
            "pluralName": "コンサートホール",
            "shortName": "コンサートホール",
            "icon": {
              "prefix": "https:\/\/ss3.4sqi.net\/img\/categories_v2\/arts_entertainment\/musicvenue_",
              "suffix": ".png"
            }
          },
          {
            "id": "4d4b7104d754a06370d81259",
            "name": "芸術 & 娯楽",
            "pluralName": "芸術 & 娯楽",
            "shortName": "芸術 & 娯楽",
            "icon": {
              "prefix": "https:\/\/ss3.4sqi.net\/img\/categories_v2\/arts_entertainment\/default_",
              "suffix": ".png"
            }
          },
          {
            "id": "4bf58dd8d48988d1e5931735",
            "name": "音楽関係",
            "pluralName": "音楽関係",
            "shortName": "音楽関係",
            "icon": {
              "prefix": "https:\/\/ss3.4sqi.net\/img\/categories_v2\/arts_entertainment\/musicvenue_",
              "suffix": ".png"
            }
          }
        ]
      },
      {
        "id": "4bac1684f964a5207be33ae3",
        "name": "Zepp Tokyo",
        "location": {
          "address": "青海1-3-11",
          "city": "江東区",
          "state": "東京都",
          "postalCode": "135-0064",
          "country": "JP",
          "lat": 35.625867721406706,
          "lng": 139.7815854065503
        },
        "categories": [
          {
            "id": "4bf58dd8d48988d1e9931735",
            "name": "ライブハウス",
            "pluralName": "ライブハウス",
            "shortName": "ライブハウス",
            "icon": {
              "prefix": "https:\/\/ss3.4sqi.net\/img\/categories_v2\/arts_entertainment\/musicvenue_rockclub_",
              "suffix": ".png"
            },
            "primary": true
          },
          {
            "id": "4d4b7104d754a06370d81259",
            "name": "芸術 & 娯楽",
            "pluralName": "芸術 & 娯楽",
            "shortName": "芸術 & 娯楽",
            "icon": {
              "prefix": "https:\/\/ss3.4sqi.net\/img\/categories_v2\/arts_entertainment\/default_",
              "suffix": ".png"
            }
          },
          {
            "id": "4bf58dd8d48988d1e5931735",
            "name": "音楽関係",
            "pluralName": "音楽関係",
            "shortName": "音楽関係",
            "icon": {
              "prefix": "https:\/\/ss3.4sqi.net\/img\/categories_v2\/arts_entertainment\/musicvenue_",
              "suffix": ".png"
            }
          }
        ]
      },
      {
        "id": "5effddb3f8f3552c73a31803",
        "name": "Zepp Haneda",
        "location": {
          "address": "羽田空港1-1-4",
          "crossStreet": "HANEDA INNOVATION CITY ZONE H",
          "city": "大田区",
          "state": "東京都",
          "postalCode": "144-0041",
          "country": "JP",
          "lat": 35.547375,
          "lng": 139.75687
        },
        "categories": [
          {
            "id": "4bf58dd8d48988d1e9931735",
            "name": "ライブハウス",
            "pluralName": "ライブハウス",
            "shortName": "ライブハウス",
            "icon": {
              "prefix": "https:\/\/ss3.4sqi.net\/img\/categories_v2\/arts_entertainment\/musicvenue_rockclub_",
              "suffix": ".png"
            },
            "primary": true
          },
          {
            "id": "4d4b7104d754a06370d81259",
            "name": "芸術 & 娯楽",
            "pluralName": "芸術 & 娯楽",
            "shortName": "芸術 & 娯楽",
            "icon": {
              "prefix": "https:\/\/ss3.4sqi.net\/img\/categories_v2\/arts_entertainment\/default_",
              "suffix": ".png"
            }
          },
          {
            "id": "4bf58dd8d48988d1e5931735",
            "name": "音楽関係",
            "pluralName": "音楽関係",
            "shortName": "音楽関係",
            "icon": {
              "prefix": "https:\/\/ss3.4sqi.net\/img\/categories_v2\/arts_entertainment\/musicvenue_",
              "suffix": ".png"
            }
          }
        ]
      },
      // 以下省略
    ]
  }
}

エンドポイント

https://developer.foursquare.com/docs/places-api/endpoints/
約40のエンドポイントが用意されており、Regular APIとPremium APIの二種類に分けられています。
二つは1日の使用回数などの制限が異なったり、従量課金で使用する場合の料金が異なってきます。
例えば、検索系は通常APIですが、idを指定して場所詳細を取得するAPIはプレミアムとなっています。よりリッチな情報が取得できるのがPremium APIといった感じです。

料金

https://developer.foursquare.com/docs/places-api/getting-started/#choose-your-account-tier

プランは3パターンあります。

フリープラン

無料

スタートアッププラン

$599/月 + 以下の従量課金
$0.001/Regular Call
$0.06/Premium Call

エンタープライズプラン

Contact us

制限

それぞれのプランでどのような制限があるかというと

フリープラン

https://developer.foursquare.com/docs/places-api/rate-limits/
Regular Call 99,500回/日
Premium Call 500回/日

venues/のエンドポイントに対して5000回/時間
それ以外のエンドポイントに対して500回/時間

2リクエスト/1秒

スタートアッププラン

documentとして明記されているところがないのですが、
https://developer.foursquare.com/docs/places-api/rate-limits/ の画像によると2X More QPS, Venue Photos & Tipsとあるので、
4リクエスト/秒

それ以外の制限は無いと推測。

エンタープライズプラン

https://docs.foursquare.com/docs/usage-guidelines
100リクエスト/秒

それ以外の制限は明記されているところがないので無いと推測。

キャッシュ

取得した情報はDBなどに保存できるの?に関してです。

無料プラン

https://developer.foursquare.com/docs/usage-guidelines/#data-retention
idは制限なく保存してよい。
その他の情報は24時間は保存してよい。

スタートアッププラン

明記されているページなし。
無料プランと同じと考えておくなら、
idは制限なく保存してよい。
その他の情報は24時間は保存してよい。

エンタープライズプラン

https://docs.foursquare.com/docs/usage-guidelines#data-retention
idは制限なく保存してよい。
取得した情報は30日は保存してよい。

おわり

無料、スタートアッププランはデータの保持期間が24時間なので、実際に使う場合はバッチなどで定期的に更新する必要がありそうですね。
APIを呼ぶ頻度が少ないならDBに保存せずとも都度APIを叩くでもよいかもしれません。

Discussion