Location data

Instagram Location API

Find a place by name, get its Instagram location id and coordinates, then pull the posts people have tagged there — newest first, with a cursor to keep going. Useful for store and venue monitoring, local marketing, event coverage, and UGC collection.

50 free credits on signup · no card required

curl "https://api.instagramapi.dev/v1/location/posts?id=212988663" \
  -H "Authorization: Bearer $INSTAGRAMAPI_KEY"

What you get

Structured JSON, not raw HTML

  • Recent posts tagged at a location, with caption, media URLs, engagement counts, and author
  • Cursor pagination to keep walking back through a location's feed
  • Accepts an Instagram location id or a location URL
  • Place details: name, address, city, and latitude / longitude
  • Place search by keyword to resolve a venue name to its id
  • One credit per call across all three endpoints

Example response

What comes back

{
  "data": {
    "items": [
      {
        "id": "3912183471120209303",
        "shortcode": "DZK3iOsRlWX",
        "type": "photo",
        "product_type": "feed",
        "url": "https://www.instagram.com/p/DZK3iOsRlWX/",
        "caption": "NYC nights 🗽",
        "taken_at": "2026-06-04T15:59:27Z",
        "like_count": 2499414,
        "comment_count": 55165,
        "view_count": null,
        "image_url": "https://instagram.com/.../media.jpg",
        "video_url": null,
        "video_duration": null,
        "location": {
          "id": "212988663",
          "name": "New York, New York",
          "category": "City",
          "address": "",
          "city": "",
          "zip": "",
          "lat": 40.7128,
          "lng": -74.006,
          "phone": "",
          "website": "http://www.nyc.gov/",
          "external_id": "108424279189115"
        },
        "author": {
          "id": "7781",
          "username": "cityframes",
          "full_name": "City Frames",
          "is_verified": true,
          "is_private": false,
          "profile_pic_url": "https://instagram.com/.../nike.jpg"
        }
      }
    ],
    "next_cursor": "WyJlNmFmZmIz..."
  }
}

Response fields

Fields returned by GET /v1/location/posts

FieldDescription
itemsThe page of posts tagged at this location.
items[].idNumeric post/media id.
items[].shortcodeThe post's shortcode, the part after /p/ in its instagram.com URL.
items[].typeMedia type: photo, video, or carousel.
items[].product_typeMore specific format (e.g. feed, clips, igtv).
items[].urlCanonical instagram.com URL for the post.
items[].captionThe post's caption text.
items[].taken_atWhen the post was published (ISO 8601, UTC).
items[].like_countNumber of likes.
items[].comment_countNumber of comments.
items[].view_countView count for video/reel content; null for photos.
items[].image_urlURL of the post's image (cover frame for video).
items[].video_urlURL of the video file; null for photos.
items[].video_durationVideo length in seconds; null for photos.
items[].locationPlace tagged on the post, if any; null otherwise.
items[].authorThe account that published the post.
items[].location.idNumeric location id.
items[].location.nameThe place's name.
items[].location.categoryThe place's category (e.g. City, Restaurant).
items[].location.addressStreet address, when known.
items[].location.cityCity, when known.
items[].location.zipPostal code, when known.
items[].location.latLatitude.
items[].location.lngLongitude.
items[].location.phonePublic phone number, when listed.
items[].location.websiteWebsite URL, when listed.
items[].location.external_idFacebook Places id for the location.
items[].author.idNumeric account id (stable even if the username changes).
items[].author.usernameThe account's @handle.
items[].author.full_nameDisplay name shown on the profile (may be empty).
items[].author.is_verifiedWhether the account has a verified badge.
items[].author.is_privateWhether the account is private.
items[].author.profile_pic_urlURL of the account's profile picture.
next_cursorPass back as `cursor` to fetch the next page; null when there are no more results.

No login required

Nothing to authenticate but your API key

No OAuth flow

One static API key in an Authorization: Bearer header. No redirect, no refresh tokens, no expiring session.

No Meta app review

Never touch Meta's developer platform, Business Verification, or a connected Facebook Page. Sign up directly with Instagram API.

Public data only

Every endpoint returns only what's already visible on Instagram without logging in. Private accounts are never accessible.

Pricing

1 credit per request. Credits start at $8.00 per 1,000 and drop to $6.00 per 1,000 at volume — no subscription, no minimums. New accounts get 50 free credits.

See full pricing

FAQ

Instagram Location API, explained

How do I get Instagram posts for a location?

First resolve the place with GET /v1/search/locations?q=<place name> to get its id, then call GET /v1/location/posts?id=<location id>. You can also pass a full Instagram location URL as the id.

Can I get posts near a latitude / longitude?

Not directly — Instagram organises posts by tagged place, not by radius. Search for the venues in your area with /search/locations, then pull posts for each location id.

How do I monitor a store or venue for new posts?

Poll /v1/location/posts?id=<id> on a schedule, store the post ids you've seen, and stop paging when you reach one you already have. Each page is one credit.

Does this require an Instagram login or Meta app review?

No. Location data and posts tagged at public places are public. There's no OAuth, no app review, and no business verification.

What does location data cost?

1 credit per call for location details, location posts, and place search. Credits start at $8.00 per 1,000, and new accounts get 50 free.

Start pulling location api data

Create a free key and make your first request in under a minute — 50 credits on us.