How to scrape Linktree with Swift
A Linktree page: name, bio, avatar, every link and social icon. This tutorial gets it with a short Swift program and the Linktree 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 Swift
Swift 5.7 or newer (macOS or Linux)3. Write the code
Save this as main.swift. Replace PASTE_URL_HERE with a real url.
import Foundation
#if canImport(FoundationNetworking)
import FoundationNetworking
#endif
var components = URLComponents(string: "https://scrapeio.com/v1/linktree")!
components.queryItems = [URLQueryItem(name: "url", value: "PASTE_URL_HERE")]
var request = URLRequest(url: components.url!)
request.setValue(ProcessInfo.processInfo.environment["SCRAPEIO_API_KEY"], forHTTPHeaderField: "x-api-key")
let done = DispatchSemaphore(value: 0)
URLSession.shared.dataTask(with: request) { data, response, error in
defer { done.signal() }
guard let data = data, (response as? HTTPURLResponse)?.statusCode == 200 else {
print("Request failed:", error?.localizedDescription ?? "HTTP \((response as? HTTPURLResponse)?.statusCode ?? 0)")
return
}
print(String(data: data, encoding: .utf8) ?? "")
}.resume()
done.wait()4. Run it
swift main.swiftThe 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 |
|---|---|---|
url (required) | string | Linktree URL or username. |
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 · Kotlin · R
Prefer no code?
Connect the MCP server to Claude Code, Cursor or Codex and ask in plain English. The agent uses the linktree tool for you.
100 free credits, no card. Credits never expire.
Get API key