Foursquare

Learn how to use Foursquare with Composio

Overview

SLUG: FOURSQUARE

Description

Search for places and place recommendations from the Foursquare Places database

Authentication Details

generic_api_key
stringRequired

Connecting to Foursquare

Create an auth config

Use the dashboard to create an auth config for the Foursquare toolkit. This allows you to connect multiple Foursquare accounts to Composio for agents to use.

1

Select App

Navigate to the Foursquare toolkit page and click “Setup Integration”.

2

Configure Auth Config Settings

Select among the supported auth schemes of and configure them here.

3

Create and Get auth config ID

Click “Create Integration”. After creation, copy the displayed ID starting with ac_. This is your auth config ID. This is not a sensitive ID — you can save it in environment variables or a database. This ID will be used to create connections to the toolkit for a given user.

Connect Your Account

Using API Key

1from composio import Composio
2from composio.types import auth_scheme
3
4# Replace these with your actual values
5foursquare_auth_config_id = "ac_YOUR_FOURSQUARE_CONFIG_ID" # Auth config ID created above
6user_id = "0000-0000-0000" # UUID from database/app
7
8composio = Composio()
9
10def authenticate_toolkit(user_id: str, auth_config_id: str):
11 # Replace this with a method to retrieve an API key from the user.
12 # Or supply your own.
13 user_api_key = input("[!] Enter API key")
14
15 connection_request = composio.connected_accounts.initiate(
16 user_id=user_id,
17 auth_config_id=auth_config_id,
18 config={"auth_scheme": "API_KEY", "val": user_api_key}
19 )
20
21 # API Key authentication is immediate - no redirect needed
22 print(f"Successfully connected Foursquare for user {user_id}")
23 print(f"Connection status: {connection_request.status}")
24
25 return connection_request.id
26
27
28connection_id = authenticate_toolkit(user_id, foursquare_auth_config_id)
29
30# You can verify the connection using:
31connected_account = composio.connected_accounts.get(connection_id)
32print(f"Connected account: {connected_account}")

Tools

Executing tools

To prototype you can execute some tools to see the responses and working on the Foursquare toolkit’s playground

Python
1from composio import Composio
2from openai import OpenAI
3import json
4
5openai = OpenAI()
6composio = Composio()
7
8# User ID must be a valid UUID format
9user_id = "0000-0000-0000" # Replace with actual user UUID from your database
10
11tools = composio.tools.get(user_id=user_id, toolkits=["FOURSQUARE"])
12
13print("[!] Tools:")
14print(json.dumps(tools))
15
16def invoke_llm(task = "What can you do?"):
17 completion = openai.chat.completions.create(
18 model="gpt-4o",
19 messages=[
20 {
21 "role": "user",
22 "content": task, # Your task here!
23 },
24 ],
25 tools=tools,
26 )
27
28 # Handle Result from tool call
29 result = composio.provider.handle_tool_calls(user_id=user_id, response=completion)
30 print(f"[!] Completion: {completion}")
31 print(f"[!] Tool call result: {result}")
32
33invoke_llm()

Tool List

Tool Name: Retrieve nearby places v3

Description

The getnearbyplaces endpoint retrieves a list of places near a specified location, primarily supporting check-in use cases and local discovery. it returns points of interest (pois) including lower quality results not found in the standard place search, enhancing location-based experiences with additional data like photos, reviews, and tips. this endpoint is ideal for applications seeking to provide users with a comprehensive view of their surroundings, including less prominent or newer locations. while it offers a broader range of results, it may sacrifice some precision compared to more focused search endpoints. use this when you want to offer users a diverse array of nearby options, particularly for social check-in features or exploratory local recommendations.

Action Parameters

altitude
integer
fields
string
hacc
integer
limit
integer
ll
string

Action Response

data
objectRequired
error
string
successful
booleanRequired

Tool Name: Retrieve places by id

Description

Retrieves detailed information about a specific place using its unique foursquare id (fsq id). this endpoint provides comprehensive data about a venue, including its name, address, category, ratings, tips, photos, and other relevant information. it's particularly useful when you need in-depth details about a known location, such as for displaying venue profiles or gathering specific place attributes. the endpoint should be used when you have a valid fsq id and require the most up-to-date and complete information about that place. note that this endpoint focuses on individual place details and does not provide search functionality or lists of multiple venues.

Action Parameters

fields
string
fsq_id
stringRequired

Action Response

data
objectRequired
error
string
successful
booleanRequired

Tool Name: Retrieve place photos by id

Description

Retrieves photos associated with a specific place in foursquare's database. this endpoint allows you to access user-generated images for a particular point of interest (poi) using its unique foursquare id (fsq id). it's useful for enhancing your application with visual content related to locations, such as restaurants, landmarks, or businesses. the endpoint returns photo data that can be used to construct image urls for display. keep in mind that the number and quality of photos may vary depending on the popularity and user engagement of the place. this tool should be used when you need to display or analyze visual information about a specific location in your application.

Action Parameters

classifications
string
fsq_id
stringRequired
limit
integer
sort
string

Action Response

data
objectRequired
error
string
successful
booleanRequired

Tool Name: Retrieve place tips using fsq id

Description

Retrieves user-generated tips for a specific place in the foursquare database. this endpoint allows you to fetch valuable insights and experiences shared by foursquare users about a particular venue. it's useful for enhancing location-based applications with real user feedback, helping users make informed decisions about places they might visit. the endpoint returns a list of tips, which may include information such as the tip text, the user who created it, and potentially a timestamp or rating.

Action Parameters

fields
string
fsq_id
stringRequired
limit
integer
sort
string

Action Response

data
objectRequired
error
string
successful
booleanRequired

Tool Name: Search places api request

Description

The getplacessearch endpoint allows you to search for places in the foursquare database based on various criteria such as location, keywords, and categories. this tool is ideal for discovering nearby points of interest or finding specific venues. it returns a list of places matching the specified parameters, providing essential information about each location. use this endpoint for location-based features or gathering venue information in a specific area.

Action Parameters

exclude_all_chains
boolean
fields
string
limit
integer
ll
string
max_price
integer
min_price
integer
ne
string
near
string
open_at
string
open_now
boolean
query
string
radius
integer
super_venue_id
string
sw
string

Action Response

data
objectRequired
error
string
successful
booleanRequired