How to scrape Instagram Tagged Posts with Kotlin
Posts other accounts tagged a profile in. This tutorial gets it with a short Kotlin program and the Instagram Tagged Posts API. Each successful call costs 1 credit; errors and not-found answers are free.
1. Get an API key
Sign in to get a key and 100 free credits, no card. Then put the key in an environment variable so it stays out of your code:
export SCRAPEIO_API_KEY="your_key_here"2. Set up Kotlin
Kotlin on JVM 11 or newer3. Write the code
Save this as Scrape.kt. Replace YOUR_USER_ID with a real user_id.
import java.net.URI
import java.net.URLEncoder
import java.net.http.HttpClient
import java.net.http.HttpRequest
import java.net.http.HttpResponse
fun main() {
val params = mapOf("user_id" to "YOUR_USER_ID")
val query = params.entries.joinToString("&") { "${it.key}=${URLEncoder.encode(it.value, Charsets.UTF_8)}" }
val req = HttpRequest.newBuilder()
.uri(URI.create("https://scrapeio.com/v1/instagram/user/tagged-posts?" + query))
.header("x-api-key", System.getenv("SCRAPEIO_API_KEY"))
.build()
val res = HttpClient.newHttpClient().send(req, HttpResponse.BodyHandlers.ofString())
check(res.statusCode() == 200) { "HTTP ${res.statusCode()}" }
println(res.body())
}This prints the first page. To get the next one, send the value of data.cursor as the cursor parameter and call again until data.has_more is false.
4. Run it
kotlinc Scrape.kt -include-runtime -d scrape.jar && java -jar scrape.jarThe response has the same envelope on every endpoint: success, cached, credits_used, credits_remaining and data. Shared fields such as handle, followers, plays, likes and created_at have the same names on every platform.
Parameters
| Name | Type | Description |
|---|---|---|
user_id | string | Instagram user id. |
handle | string | Instagram username. Send this or user_id. |
cursor | string | Cursor from the previous page's data.cursor. |
Errors and what you pay
| Status | Meaning | Charged |
|---|---|---|
200 | Success | Yes, unless cached |
400 | A parameter is missing or wrong | No |
401 | The key is missing or invalid | No |
402 | Not enough credits | No |
403 | The account or post is private | No |
404 | Not found on the platform | No |
429 | More than 300 requests a minute | No |
502 | Every source is down; retry shortly | No |
Same endpoint in other languages
Python · Node.js · JavaScript · TypeScript · Go · Rust · Java · C# · PHP · Ruby · Swift · R
Prefer no code?
Connect the MCP server to Claude Code, Cursor or Codex and ask in plain English. The agent uses the instagram_tagged_posts tool for you.
100 free credits, no card. Credits never expire.
Get API keyMore Instagram tutorials in Kotlin
- How to scrape Instagram Profile with Kotlin
- How to scrape Instagram User Posts with Kotlin
- How to scrape Instagram User Reels with Kotlin
- How to scrape Instagram Post with Kotlin
- How to scrape Instagram Comments with Kotlin
- How to scrape Instagram Comment Replies with Kotlin
- How to scrape Instagram Transcript with Kotlin
- How to scrape Instagram Search with Kotlin
- How to scrape Instagram Search Posts with Kotlin
- How to scrape Instagram Hashtag with Kotlin
- How to scrape Instagram Similar Accounts with Kotlin
- How to scrape Instagram Reels Search with Kotlin
- How to scrape Instagram Audio Reels with Kotlin
- How to scrape Instagram Basic Profile with Kotlin
- How to scrape Instagram Highlights with Kotlin
- How to scrape Instagram Highlight Detail with Kotlin
- How to scrape Instagram Post Count with Kotlin
- How to scrape Instagram Search Profiles with Kotlin
- How to scrape Instagram Search Hashtag with Kotlin
- How to scrape Instagram Reels Trending with Kotlin
- How to scrape Instagram Search Popular with Kotlin
- How to scrape Instagram User Embed with Kotlin