Only your Foursquare friends can see your check-ins, and they must be logged in to the app or the website to do so—unless you've shared a check-in to your Twitter and Facebook networks, in which case, your sharing settings for those networks would then apply.
Venue owners can see if you recently checked in to their venue or if you are a frequent visitor, but they can only view your first name, last initial, and total number of non-private check-ins at their venue (you can opt out of this by going to ‘my settings’ > ‘account settings’ > ‘privacy settings’ and unchecking the corresponding box).
You have the option on each check-in to *not* share with your Foursquare friends. To make your check-in private, tap the little lock icon in the bottom left corner of the check-in screen.
Note: you can only make a check-in private when you are in the process of checking in. You will not be able to make a shared check-in private after it's published, nor will you be able to make a private check-in public after the fact. You can always delete a check-in by clicking or tapping through the check-in detail from your check-in history. In the app, tap the ‘send’ icon to the right of the comment box, then tap ‘delete.’ On the web, click the gray ‘x.’
Check-in history Your friends can view recent portions of your check-in history in their Friends feed and on your profile page in the app, and you can see theirs. For users of the Foursquare app before Foursquare 5.0 (released June 2012), we made the change on a ‘going forward’ basis so that the members of our community could see what was happening and adjust how they check in appropriately. For instance, where before only one recent check-in was displayed, now anyone can add a second check-in and rest assured their friends can still see their earlier awesome one. As always, you may choose to make check-ins ‘private’ (rather than sharing with friends) so that they appear only to you. Read more about why we made this change here.