Foursquare places - api

We would like to be able to pull out certain places from foursquare an categorize them on our website along with comments from foursquare users. I have the following questions:
1- Can we pull out places and categorize them the way we want on our website? e.g: restaurants/bar/lounge/club/landmarks/others.
2- can we pull out as well phone numbers (when available) and addresses (longitude-lattitude) of places ?
3- Does foursquare have any general descriptive summaries of each place?
Thanks for the help.
Chris

Foursquare has an API, more information can be found at this link
To answer your questions:
Yes, check out the Venues Platform in 4sq API, specifically, the search. When you query the API, as part of the result set for each venue, you get a category
If available, you will get them back under the 'contact' field, check out the response venue object from the search function
Yes, description field, you will need to make an API request to get the complete venue object.
Edit: one last thing, attribute and play nice :)
From my experience, you do not get a lot of venues with 'contact' and 'description' information. But foursquare is not very popular where I test my application, so it might be bad experience - experiment with it yourself.

FourSquare has a great category tree that you can use for categorizing restaurants
http://aboutfoursquare.com/foursquare-categories/
Actually, I'm using this tree in my website:
Dishes Map

Related

Social Tables data model

I've just started looking at the documentation as we are going to need to integrate Salesforce with Social Tables shortly, so I am really new to Social Tables.
Specifically, we will need to sync data between the CRM and Social Tables Events and Guests, and maybe other objects, so it would be very helpful to have a data model or similar to check the relationships and fields available in Social Tables architecture.
I haven't found anything in the documentation, is there any way to get this, even if it's at a high level?
Thanks
Danny
To make an integration with SocialTables you'll have to do a few manual steps, there is no way to do this completely programmatic from my experience. You'll also have to be prepared to contact SocialTables to get get correct guestlist ids. Also keep in mind that the API documentation isn't always correct, the API logic is also quite difficult to understand from time to time.
The first thing you need to do is figure out which version of the Venue Mapper you use. You'd want to use the 4.0 api and as far as I know this version of the api is only supported by Venue Mapper 3.0. I believe the Venue Mapper 3.0 is the frontend tool SocialTables provides to do the venue planning.
In social tables an event has two ids, one numerical one and one alpha-numerical one, when you use the 4.0/events endpoint you only get the alpha-numerical event id, and your going to need the numerical one. The only way I've been able to get the numerical id is to pull it out from the url when using the Venue Mapper, example of the url follows below:
https://plan.socialtables.com/team/{team_id}/event/{event_id}/space/{space_id}
Now you need to get the guestlist id, you can get that by using the following url, using the numerical event id:
GET https://api.socialtables.com/4.0/diagrams?event={numerical_event_id}
This endpoint return a json structure where one of the parameters is "guestlist_id".
Please be aware that the guestlist id you get from this endpoint might not be the correct one. I struggled quite a bit with this part and ended up with SocialTables sending me the guestlist id by email.
To get the guests in your guestlist use the following api endpoint:
GET https://api.socialtables.com/4.0/guestlists/{guestlist_id}
The {guestlist_id} is an alpha-numerical string similar to: cfdac1c0-yb1d-12e6-84a5-a39e92131645
And by that you should hopefully get access to your guests.
Hey thanks for using our API.
To answer your question, the best way to see the data model at the moment is to access our developer portal and use the API console to see what is returned. For events you will need to know the team id of the team you are working with use the team events endpoint to get access to the event ids.
https://developer.socialtables.com/api-console#!/Events/get_4_0_legacyvm3_teams_team_events
This will return some basic information about each event for that team. You can then request additional details for specific events by using this endpoint:
https://developer.socialtables.com/api-console#!/Events/get_4_0_legacyvm3_events_event

Display venue public photo on iOS app

My apologies if I'm not using the most technical terms in my question as I am asking on behalf of a development team who is creating an app for me, but we are having trouble making a call to the Foursquare API to get public photos (at least one) of specific venues.
Until now they have only been able to get low resolution photos and are telling me we need to be authenticated but I'm not sure they are explaining what they need to me correctly.
I have searched for hours and have not been able to understand how we would be able to obtain at least one photo for a given venue. The closest I have come to is getting a list of photos for a venue using the example query: https://api.foursquare.com/v2/venues/43695300f964a5208c291fe3/photos?oauth_token=...TOKEN...&v=20130529
This involves the OAuth_Token and I had understood we didn't need this to get an image of a venue using the API.
Once again, apologies if I'm using any terms incorrectly as I am not a programmer myself. Thanks.
That call to venues/VENUE_ID/photos is indeed a way to solve your problem: you can do that to get public photos for specific venues, where the specific venue is identified by VENUE_ID. You don't need an OAuth token; instead, you can simply pass in client_id and client_secret parameters. Examine the URL pattern we document under "Userless access" here: https://developer.foursquare.com/overview/auth#userless
Once you have these responses, you need to construct a photo URL, and this is where you can specify the desired size. For each photo response, you take prefix + size + suffix to construct a full URL. For an example, see https://developer.foursquare.com/docs/responses/photo

Filtering Foursquare Venue Results

I am currently evaluating several different APIs in order to get venue information. A key component of any provider is the ability to not just return all venues nearby but tailor the list based on previously entered user preferences.
Foursquare does not allow 'munging' their venue data with other data, like Google's places to create an aggregated service. But can I take Foursquare's venues for a given area, apply some filtering based on user preferences and recommendation engine techniques, and present a modified, personalized version of their information? Do they frown on only using their venue info as a jumping off point, even if attribution on the final results is given?
This customization would be above and beyond using retailer categories, something that can be included in the facebook request. Asking because other services require results presented exactly as returned from the API, including ads.
First, check out the policies at https://developer.foursquare.com/overview/community
We welcome you to use foursquare as your location database. You can associate additional content with our venue data in your system, but you may not combine our database with another database or export it on your own.
I think that they even encourage you to manipulate the data and create creative solutions with it, as long as you do not break their ground rule of not merging it with another database (see the full text at the link).
The API even lets you filter the results according to your needs with the categoryId and intent parameters. For example in our app, we filter out places that have less than 2 unique people checked in, because we assume its faked places.. we do other filtering on the result set as well, but we display only data from from foursquare venues database, and we attribute.

Is there a way to know if a new venue was created in foursquare?

I know you see if your friend(s) are checked in in a venue on foursquare but is there a way to see if a new venue was created in a certain place/city
No, this functionality is not available through the foursquare API.
Related discussion in this thread: https://groups.google.com/forum/?fromgroups=#!topic/foursquare-api/vdKwGYCnuy0
There is no direct way to get this info via the API at the moment, but theoretically you could search for venues in certain areas in the city, cache venue IDs and check their createdAt value (see https://developer.foursquare.com/docs/responses/venue). Repeat these steps on regular basis and compare against cached venue IDs. That way you can discover newly created venues. Of course, it may not be 100% reliable, especially in larger cities.

Get informations of a list of venues

I have a list of venues id and I want to get informations about each venue. I have to make a request for each venue with https://api.foursquare.com/v2/venues/VENUE_ID ?
There are no way to make one request for the list of venues ?
Thanks
There's no way to provide a list of venues to get back venue details. (As Martin mentions, there's a /multi/ endpoint, but each sub-request still counts against your rate limits).
Foursquare allows you to cache venue details for up to 30 days, so you be sure to do local caching to avoid unnecessary calls to the API. See the Retention section of https://foursquare.com/legal/api/platformpolicy for more details
Although it doesn't seem to be listed in the current version of the documentation, there is a multi endpoint which allows you to combine (up to) five API requests into one. Hopefully this will help somewhat with reducing the number of calls you need to make to get the details for the list of venues.