# HProxy Scraper API
> 116 scraper endpoints across 23 platforms returning clean JSON, billed per successful call. Source: https://hproxy.com/docs
## Scraper API
*Turn any supported platform into structured JSON with one call. 116 endpoints across 23 platforms, billed per successful call with exact fractional pricing.*
URL: https://hproxy.com/docs/scrapers
Turn any supported platform into structured JSON with one call. You send a small request, you get parsed JSON back in a stable envelope, plus the exact cost of the call. Scraper endpoints need a key with the `scrape` scope.
**One call, structured data**
```bash
curl "https://hproxy.com/api/v1/scrape/threads/search?query=coffee" \
-H "X-API-Key: hpx_your_key_here"
```
> [!WARNING] **Scrapers change often**: A scraper reads a website we do not control. When that website changes its pages, its limits or how it blocks automated traffic, a scraper can fail, return fewer fields, or return fields in a different shape until we update it, and we update scrapers often. **Scrapers are not a stable product that never breaks.** Handle errors and retry, read the fields inside `data` defensively, subscribe to [service notices](https://hproxy.com/docs/announcements), and do not promise your customers that a scraper will never change or never fail. The envelope around `data` keeps its shape.
### You bring a key. We handle everything else.
A scraper call needs **no proxies, no headless browsers, no captcha solving and no parsers** on your side. We route every request through our own proxy network, deal with captchas and block pages, and parse the result into stable, structured JSON. All of that is included in the per-call price: there is nothing to set up, rotate, warm up or maintain. And if a call fails anyway, it is never billed: errors, timeouts and rate limits cost nothing.
### Every platform
All 23 platforms, 116 endpoints, every one callable the same way. Each tile opens that platform's full API reference: every endpoint with its cost, path, parameters and a copy-paste example. Or browse the [complete catalog](https://hproxy.com/docs/scrapers/catalog).
- Instagram (`instagram`): 11 endpoints
- TikTok (`tiktok`): 23 endpoints
- YouTube (`youtube`): 13 endpoints
- Twitter / X (`twitter`): 6 endpoints
- LinkedIn (`linkedin`): 6 endpoints
- Google (`google`): 4 endpoints
- Facebook (`facebook`): 17 endpoints
- Reddit (`reddit`): 5 endpoints
- Threads (`threads`): 5 endpoints
- Bluesky (`bluesky`): 3 endpoints
- Truth Social (`truth-social`): 3 endpoints
- Pinterest (`pinterest`): 4 endpoints
- Twitch (`twitch`): 4 endpoints
- Snapchat (`snapchat`): 1 endpoint
- Spotify (`spotify`): 3 endpoints
- SoundCloud (`soundcloud`): 1 endpoint
- Kick (`kick`): 1 endpoint
- Linktree (`linktree`): 1 endpoint
- Komi (`komi`): 1 endpoint
- Pillar (`pillar`): 1 endpoint
- Lnk.Bio (`linkbio`): 1 endpoint
- Linkme (`linkme`): 1 endpoint
- Amazon (`amazon`): 1 endpoint
### Billing, exact and per success
Billing is **per successful call** at the exact price listed for each scraper: every standard endpoint costs **$0.00149 per call** ($1.49 per 1,000 calls). There is **no per-call minimum**: sub-cent prices are billed exactly. Your wallet accrues the fractional cost and debits whole cents only as they add up, so 1,000 calls at $0.00149 debit exactly $1.49, never more.
A successful call counts even when the search finds nothing, and so does a lookup whose target does not exist: the platform was queried either way. Errors, timeouts and rate-limited calls are never charged. Pricing is per call, not per result: one call returning 50 items is still one call.
- [Run a scraper](https://hproxy.com/docs/scrapers/run): The request shape, inputs and idempotency.
- [The response envelope](https://hproxy.com/docs/scrapers/envelope): The stable shape every call returns.
- [Call history & billing audit](https://hproxy.com/docs/scrapers/runs): Reconcile your bill to the cent.
- [The catalog](https://hproxy.com/docs/scrapers/catalog): All 116 endpoints across 23 platforms.
## Run a scraper
*GET or POST /api/v1/scrape/{platform}/{action}: inputs as query parameters or a JSON body, X-Request-Id idempotency, and the exact per-call price.*
URL: https://hproxy.com/docs/scrapers/run
#### GET /api/v1/scrape/{platform}/{action}
**Run a scraper.** Call a specific platform action (e.g. `threads/search` or `tiktok/profile`). Pass inputs as query parameters, or `POST` the same fields as a JSON body. Each scraper's exact inputs are in the [catalog](https://hproxy.com/docs/scrapers/catalog): profile actions take `handle`, page actions take `url`, search actions take `query` and, where supported, a `start_date` / `end_date` window. Boolean and integer inputs work in query strings too (`trim=true` is fine). Send an optional `X-Request-Id` header with a unique value and a retry of the same request replays the original result instead of running (and billing) again.
| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `handle` | `string (query)` | optional | Handle/username, for profile-style actions. |
| `url` | `string (query)` | optional | Target URL, when the action scrapes a specific page. |
| `query` | `string (query)` | optional | Search term, for search actions. |
| `start_date` | `string (query)` | optional | YYYY-MM-DD. Search actions that support it return posts from this date onward. |
| `end_date` | `string (query)` | optional | YYYY-MM-DD. Upper bound of the search window. |
| `X-Request-Id` | `string (header)` | optional | Idempotency: a retry with the same value returns the original run's result and is never billed twice. |
**cURL**
```bash
curl "https://hproxy.com/api/v1/scrape/threads/search?query=coffee&start_date=2026-07-01&end_date=2026-07-22" \
-H "X-API-Key: hpx_your_key_here"
```
**Response**
```json
{
"platform": "threads",
"scraper": "threads-search-by-keyword",
"input": { "query": "coffee", "start_date": "2026-07-01", "end_date": "2026-07-22" },
"data": {
"posts": [
{
"id": "3946970838407495095_66444372064",
"code": "DbGdRDKGr23",
"caption": { "text": "Take your time this morning. Drink your coffee…" },
"like_count": 24,
"taken_at": 1784735611,
"url": "https://www.threads.com/@comeupkelci/post/DbGdRDKGr23",
"user": { "username": "comeupkelci", "full_name": "Kelci", "is_verified": false, "profile_pic_url": "…" }
}
]
},
"records": 19,
"costUsd": 0.003,
"walletDebitUsd": 0,
"requestId": "c4389b749c07d44209e4fb301",
"elapsedMs": 5211
}
```
> [!NOTE] **No proxies, no captchas, no infrastructure.** The call price includes our proxy network, captcha handling and parsing. You only ever send the request above.
The full list of every platform and action is in the [Scraper catalog](https://hproxy.com/docs/scrapers/catalog), or fetch it as JSON from `GET https://hproxy.com/api/v1/scrapers` (no key required).
## Caching: free cached reads
*Pass cache_max_age and accept a result up to 30 days old. Cached responses return in about a second and cost nothing. You are only billed for live scrapes.*
URL: https://hproxy.com/docs/scrapers/caching
Plenty of scraping does not need a result from this second. A profile you enriched last Tuesday, a post whose engagement you are trending weekly, a catalogue you re-check monthly: for all of it, a recent answer is as good as a live one and a lot faster to get.
Add **`cache_max_age`** to any supported call and we will serve a stored result if one that fresh exists. It comes back in about a second instead of a live scrape, and **it is free**: a cached read is not billed at all.
> [!TIP] **The pricing, plainly**: Cached reads cost **$0.00**. You are only charged when we actually go and scrape. So `cache_max_age` is never worse than omitting it: at best you pay nothing and get an instant answer, at worst you pay the normal price for a live result.
### How to use it
*Parameter*
| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `cache_max_age` | `1d | 3d | 7d | 14d | 30d` | optional | The oldest result you are willing to accept. Anything outside this set returns a `400`. Omit the parameter entirely for a guaranteed-live scrape. |
**cURL**
```bash
# Happy with a result up to a week old, and pay nothing if we have one
curl "https://hproxy.com/api/v1/scrape/tiktok/profile?handle=levelsio&cache_max_age=7d" \
-H "X-API-Key: hpx_your_key_here"
```
**Python**
```python
import requests
r = requests.get(
"https://hproxy.com/api/v1/scrape/tiktok/profile",
params={"handle": "levelsio", "cache_max_age": "7d"},
headers={"X-API-Key": "hpx_your_key_here"},
).json()
if r.get("cached"):
print("free, served from cache at", r["cached_at"])
```
### Reading the response
A cached response carries two extra fields so you always know what you got and what it cost. A live response carries neither.
*Field*
| Field | Type | Description |
| --- | --- | --- |
| `cached` | `boolean` | `true` when the result came from cache. Absent on a live scrape. |
| `cached_at` | `timestamp` | When the cached copy was originally scraped, so you can judge the age yourself. |
| `walletDebitUsd` | `number` | `0` on a cached read. This is the field to reconcile against, on any call. |
### What it does and does not do
`cache_max_age` is an **acceptance threshold**, not a cache selector. Every value reads the same stored copy; you are only saying how old a copy you will take. So asking for `1d` and asking for `30d` can return the identical response, and asking for `1d` when the stored copy is a week old triggers a fresh live scrape (and a normal charge) which then refreshes the cache for everyone.
It is available on the endpoints where a cached answer is meaningful: profiles, posts, transcripts, channels, ad details and link-in-bio pages. Search, trending and comment feeds are always live, because a stale answer there is not an answer. The [Scraper catalog](https://hproxy.com/docs/scrapers/catalog) lists `cache_max_age` in the inputs of every endpoint that accepts it.
## The response envelope
*Every scraper call returns the same stable envelope: data plus bookkeeping, with costUsd (exact price) and walletDebitUsd (whole cents actually settled).*
URL: https://hproxy.com/docs/scrapers/envelope
#### GET /api/v1/scrape/{platform}/{action}
**The envelope, field by field.** Every scraper call returns the same stable envelope. `data` is the platform's structured payload; everything else is bookkeeping. `costUsd` is the call's exact price (for a $0.00149 scraper it reads `0.0015`, there is no minimum). `walletDebitUsd` is what actually left your wallet on **this** call: fractional costs accrue on a running tab and settle in whole cents, so it reads `0` on most calls and `0.01` as the tab crosses each cent. Summing either field over many calls converges on the same total.
| Field | Type | Description |
| --- | --- | --- |
| `platform` | `string` | Platform segment you called, e.g. "threads". |
| `scraper` | `string` | Internal scraper id the path resolved to. |
| `input` | `object` | Echo of the inputs the run used. |
| `data` | `object` | The scraped payload, exactly as structured by the platform. |
| `records` | `integer` | Result count heuristic (longest array in data). Informational only: billing is per call, never per record. |
| `costUsd` | `number` | The call's exact price in USD. 0 on an idempotent replay. |
| `walletDebitUsd` | `number` | Whole cents actually settled from the wallet on this call. |
| `idempotentReplay` | `boolean` | Present and true when X-Request-Id matched a previous run and its result was replayed free. |
| `requestId` | `string` | The run id. Quote it in support tickets. |
| `elapsedMs` | `integer` | Server-side duration of the call. |
**Envelope**
```json
{
"platform": "threads",
"scraper": "threads-search-by-keyword",
"input": { "query": "coffee" },
"data": { "posts": [ … ] },
"records": 19,
"costUsd": 0.003,
"walletDebitUsd": 0,
"requestId": "c4389b749c07d44209e4fb301",
"elapsedMs": 5211
}
```
**Error response**
```json
{
"error": "Invalid input.",
"details": "'trim' must be a boolean",
"requestId": null
}
```
Errors skip the envelope and return the engine's status with a JSON body: `400` invalid input, `402` balance or spend cap, `429` rate limited with `Retry-After`, `502` upstream failure (never billed).
## Your call history
*GET /api/v1/scrape/runs audits every scraper call: exact per-call cost, what settled from the wallet, rolling 24h totals and the pending sub-cent tab.*
URL: https://hproxy.com/docs/scrapers/runs
#### GET /api/v1/scrape/runs
**Your call history.** Audit every scraper call your account made: exact per-call cost, what settled from the wallet, status and result count, plus rolling 24h totals and the pending sub-cent tab. Use it to reconcile your bill to the cent. Optional `limit` query parameter (default 50, max 200). Also visible in your [dashboard](https://hproxy.com/dashboard/scrapers).
**Request**
```bash
curl "https://hproxy.com/api/v1/scrape/runs?limit=2" -H "X-API-Key: hpx_your_key_here"
```
**Response**
```json
{
"count": 2,
"runs": [
{
"id": "c4389b749c07d44209e4fb301",
"scraper": "threads-search-by-keyword",
"endpoint": "/api/v1/scrape/threads/search",
"status": "SUCCESS",
"records": 19,
"costUsd": 0.003,
"walletDebitUsd": 0,
"elapsedMs": 5211,
"requestId": null,
"createdAt": "2026-07-22T15:41:09.114Z"
}
],
"summary": {
"last24h": { "calls": 2, "costUsd": 0.006, "walletDebitedUsd": 0 },
"pendingTabUsd": 0.006
}
}
```
## Scraper catalog
*Every scraper endpoint: 116 actions across 23 platforms with per-call price and exact inputs. Searchable, and available as JSON at GET /api/v1/scrapers.*
URL: https://hproxy.com/docs/scrapers/catalog
All 116 scrapers across 23 platforms, each callable as `GET https://hproxy.com/api/v1/scrape/{platform}/{action}` with a `scrape` key. Fetch the same list as JSON from `GET https://hproxy.com/api/v1/scrapers` (no key required). Every platform also has a full landing page with examples under [/scrapers](https://hproxy.com/scrapers).
### Every scraper (116 total)
Call any as: GET https://hproxy.com/api/v1/scrape/{platform}/{action}?= (or POST with a JSON body). Needs the `scrape` scope. Billed per successful call at the listed price (exact fractional billing, no per-call minimum). Format: action, name, price/call, inputs (? = optional, (a|b) = the ONLY accepted values).
#### instagram
- profile, Instagram Profile, $0.0015/call, handle:string, trim?:boolean, cache_max_age?:string(1d|3d|7d|14d|30d)
- post, Instagram Post, $0.0149/call, url:url, region?:string, trim?:boolean, download_media?:boolean, cache_max_age?:string(1d|3d|7d|14d|30d)
- transcript, Instagram Media Transcript, $0.0015/call, url:url, trim?:boolean, cache_max_age?:string(1d|3d|7d|14d|30d)
- reels-search, Instagram Reels Search, $0.0015/call, query:string, date_posted?:string(last-hour|last-day|last-week|last-month|last-year), page?:integer
- basic-profile, Instagram Basic Profile, $0.0015/call, userId:string, cache_max_age?:string(1d|3d|7d|14d|30d)
- posts, Instagram User Posts, $0.0015/call, handle:string, next_max_id?:string, trim?:boolean
- reels, Instagram User Reels, $0.0015/call, user_id?:string, handle?:string, max_id?:string, trim?:boolean
- comments, Instagram Post Comments, $0.0015/call, url:url, cursor?:string, trim?:boolean
- highlights, Instagram User Highlights, $0.0015/call, user_id?:string, handle?:string
- highlight, Instagram Highlight Detail, $0.0015/call, id:string
- embed, Instagram Profile Embed HTML, $0.0015/call, handle:string, trim?:boolean
#### tiktok
- profile, TikTok Profile, $0.0015/call, handle?:string, user_id?:string, trim?:boolean, cache_max_age?:string(1d|3d|7d|14d|30d)
- profile-region, TikTok Profile Region, $0.0015/call, handle:string, trim?:boolean
- audience, TikTok User Audience Demographics, $0.0387/call, handle:string, trim?:boolean
- video, TikTok Video, $0.0149/call, url:url, get_transcript?:boolean, region?:string, trim?:boolean, download_media?:boolean, cache_max_age?:string(1d|3d|7d|14d|30d)
- video-transcript, TikTok Video Transcript, $0.0164/call, url:url, language?:string, use_ai_as_fallback?:string
- profile-videos, TikTok Profile Videos, $0.0015/call, handle:string, user_id?:string, max_cursor?:string, sort_by?:string(latest|popular), region?:string, trim?:boolean
- search, TikTok Keyword Search, $0.0015/call, query:string, date_posted?:string(yesterday|this-week|this-month|last-3-months|last-6-months|all-time), sort_by?:string(relevance|most-liked|date-posted), region?:string, cursor?:integer, trim?:boolean
- shop-search, TikTok Shop Search, $0.0015/call, query:string, page?:integer, region?:string
- live-status, TikTok Live Status, $0.0015/call, handle:string, trim?:boolean
- video-comments, TikTok Video Comments, $0.0015/call, url:url, cursor?:integer, trim?:boolean
- comment-replies, TikTok Comment Replies, $0.0015/call, comment_id:string, url:url, cursor?:integer
- following, TikTok User Following, $0.0015/call, handle:string, min_time?:integer, trim?:boolean
- followers, TikTok User Followers, $0.0015/call, handle?:string, user_id?:string, min_time?:integer, trim?:boolean
- search-users, TikTok Search Users, $0.0015/call, query:string, cursor?:string, trim?:boolean
- search-hashtag, TikTok Hashtag Search, $0.0015/call, hashtag:string, region?:string, cursor?:integer, trim?:boolean
- song, TikTok Song Details, $0.0015/call, clipId:string, cursor?:integer
- song-videos, TikTok Song Videos, $0.0015/call, clipId:string, cursor?:integer
- trending, TikTok Trending Feed, $0.0015/call, region:string, trim?:boolean
- shop-products, TikTok Shop Products, $0.0015/call, url:url, cursor?:string, region?:string, sort_by?:string(top|new_releases)
- shop-product, TikTok Shop Product Details, $0.0015/call, url:url, region?:string
- shop-product-reviews, TikTok Shop Product Reviews, $0.0015/call, url?:url, product_id?:string, region?:string, page?:integer
- search-top, TikTok Top Search, $0.0015/call, query:string, publish_time?:string(yesterday|this-week|this-month|last-3-months|last-6-months|all-time), sort_by?:string(relevance|most-liked|date-posted), region?:string, cursor?:integer
- shop-showcase, TikTok Shop User Showcase, $0.0015/call, handle:string, region?:string, cursor?:string
#### youtube
- channel-lookup, YouTube Channel, $0.0015/call, channelId?:string, handle?:string, url?:url, cache_max_age?:string(1d|3d|7d|14d|30d)
- channel, YouTube Channel, $0.0015/call, channelId?:string, handle?:string, url?:url, cache_max_age?:string(1d|3d|7d|14d|30d)
- channel-videos, YouTube Channel Videos, $0.0015/call, channelId?:string, handle?:string, sort?:string(latest|popular), continuationToken?:string, includeExtras?:boolean, is_paid_promotions?:boolean
- channel-shorts, YouTube Channel Shorts, $0.0015/call, channelId?:string, handle?:string, sort?:string(newest|popular), continuationToken?:string, includeExtras?:boolean
- video, YouTube Video, $0.0015/call, url:url, language?:string, cache_max_age?:string(1d|3d|7d|14d|30d)
- transcript, YouTube Video Transcript, $0.0015/call, url:url, language?:string, cache_max_age?:string(1d|3d|7d|14d|30d)
- search, YouTube Search, $0.0015/call, query:string, uploadDate?:string(today|this_week|this_month|this_year), sortBy?:string(relevance|popular), type?:string(videos|shorts|channels|playlists), duration?:string(under_3_min|between_3_and_20_min|over_20_min), region?:string, continuationToken?:string, includeExtras?:boolean
- comments, YouTube Video Comments, $0.0015/call, url:url, continuationToken?:string, order?:string(top|newest)
- trending-shorts, YouTube Trending Shorts, $0.0015/call, no inputs
- search-hashtag, YouTube Hashtag Search, $0.0015/call, hashtag:string, continuationToken?:string, type?:string(all|shorts)
- comment-replies, YouTube Comment Replies, $0.0015/call, continuationToken:string
- playlist, YouTube Playlist, $0.0015/call, playlist_id:string
- community-post, YouTube Community Post, $0.0015/call, url:url, trim?:boolean
#### twitter
- tweets, Twitter User Tweets, $0.0015/call, handle:string, trim?:boolean
- profile, Twitter / X Profile, $0.0015/call, handle:string, trim?:boolean, cache_max_age?:string(1d|3d|7d|14d|30d)
- tweet, Twitter / X Tweet, $0.0015/call, url:url, trim?:boolean, cache_max_age?:string(1d|3d|7d|14d|30d)
- tweet-transcript, Twitter / X Tweet Transcript, $0.0015/call, url:url, trim?:boolean, cache_max_age?:string(1d|3d|7d|14d|30d)
- community, Twitter / X Community, $0.0015/call, url:url, trim?:boolean
- community-tweets, Twitter / X Community Tweets, $0.0015/call, url:url, trim?:boolean
#### linkedin
- profile, LinkedIn Profile, $0.0015/call, url:url, trim?:boolean
- company, LinkedIn Company, $0.0015/call, url:url, trim?:boolean
- company-posts, LinkedIn Company Posts, $0.0015/call, url:url, page?:integer
- post, LinkedIn Post, $0.0015/call, url:url, trim?:boolean
- ad-search, LinkedIn Ad Library Search, $0.0015/call, company?:string, keyword?:string, companyId?:string, countries?:string, startDate?:string, endDate?:string, paginationToken?:string
- ad, LinkedIn Ad Detail, $0.0015/call, url:url, trim?:boolean
#### google
- search, Google Search Results, $0.0015/call, query:string, region?:string, date_posted?:string(last-hour|last-day|last-week|last-month|last-year), page?:integer
- ad-company, Google Ad Library Company Ads, $0.0372/call, domain?:string, advertiser_id?:string, topic?:string(all|political), region?:string, start_date?:string, end_date?:string, platform?:string(google_maps|google_play|google_search|google_shopping|youtube), format?:string(text|image|video), get_ad_details?:boolean, cursor?:string
- ad, Google Ad Detail, $0.0015/call, url:url, trim?:boolean, cache_max_age?:string(1d|3d|7d|14d|30d)
- advertiser-search, Google Advertiser Search, $0.0015/call, query:string, cursor?:string, region?:string, trim?:boolean
#### facebook
- profile, Facebook Profile, $0.0015/call, url:url, get_business_hours?:boolean, include_gated_profile?:boolean, cache_max_age?:string(1d|3d|7d|14d|30d)
- profile-reels, Facebook Profile Reels, $0.0015/call, url:url, next_page_id?:string, cursor?:string
- profile-photos, Facebook Profile Photos, $0.0015/call, url:url, next_page_id?:string, cursor?:string
- profile-posts, Facebook Profile Posts, $0.0015/call, url?:url, pageId?:string, cursor?:string
- profile-events, Facebook Profile Events, $0.0015/call, url:url, cursor?:string
- post, Facebook Post, $0.0015/call, url:url, get_comments?:boolean, get_transcript?:boolean, cache_max_age?:string(1d|3d|7d|14d|30d)
- post-transcript, Facebook Post Transcript, $0.0015/call, url:url, trim?:boolean, cache_max_age?:string(1d|3d|7d|14d|30d)
- post-comments, Facebook Post Comments, $0.0015/call, url?:url, feedback_id?:string, cursor?:string
- comment-replies, Facebook Comment Replies, $0.0015/call, feedback_id:string, expansion_token:string, cursor?:string
- group-posts, Facebook Group Posts, $0.0015/call, url?:url, group_id?:string, sort_by?:string(TOP_POSTS|RECENT_ACTIVITY|CHRONOLOGICAL|CHRONOLOGICAL_LISTINGS), cursor?:string
- events-search, Facebook Events Search, $0.0015/call, query:string, cursor?:string
- events, Facebook Events by City, $0.0015/call, url:url, time?:string(today|this_week|next_week), cursor?:string
- event, Facebook Event Details, $0.0015/call, id?:string, url?:url
- ad, Facebook Ad Library Detail, $0.0015/call, id?:string, url?:url, get_transcript?:boolean, trim?:boolean, cache_max_age?:string(1d|3d|7d|14d|30d)
- ad-search, Facebook Ad Library Search, $0.0015/call, query:string, sort_by?:string(total_impressions|relevancy_monthly_grouped), search_type?:string(keyword_unordered|keyword_exact_phrase), ad_type?:string(all|political_and_issue_ads), country?:string, status?:string(ALL|ACTIVE|INACTIVE), media_type?:string(ALL|IMAGE|VIDEO|MEME|IMAGE_AND_MEME|NONE), start_date?:string, end_date?:string, cursor?:string, trim?:boolean
- ad-company, Facebook Company Ads, $0.0015/call, pageId?:string, companyName?:string, country?:string, status?:string(ALL|ACTIVE|INACTIVE), language?:string, cursor?:string, media_type?:string(ALL|IMAGE|VIDEO|MEME|IMAGE_AND_MEME|NONE), sort_by?:string(total_impressions|relevancy_monthly_grouped), start_date?:string, end_date?:string, trim?:boolean
- ad-companies-search, Facebook Ad Library Company Search, $0.0015/call, query:string, cursor?:string, trim?:boolean
#### reddit
- subreddit, Reddit Subreddit Details, $0.0015/call, subreddit?:string, url?:url, cache_max_age?:string(1d|3d|7d|14d|30d)
- subreddit-posts, Reddit Subreddit Posts, $0.0015/call, subreddit:string, timeframe?:string(all|day|week|month|year), sort?:string(best|hot|new|top|rising), after?:string, trim?:boolean, cache_max_age?:string(1d|3d|7d|14d|30d)
- comments, Reddit Post Comments, $0.0015/call, url:url, cursor?:string, trim?:boolean
- search, Reddit Search, $0.0015/call, query:string, sort?:string(relevance|new|top|comment_count), timeframe?:string(all|day|week|month|year), after?:string, trim?:boolean
- subreddit-search, Reddit Subreddit Search, $0.0015/call, subreddit:string, query?:string, sort?:string(relevance|hot|top|new|comments), timeframe?:string(all|year|month|week|day|hour), cursor?:string
#### threads
- profile, Threads Profile, $0.0015/call, handle:string, trim?:boolean, cache_max_age?:string(1d|3d|7d|14d|30d)
- posts, Threads User Posts, $0.0015/call, handle:string, user_id?:string, trim?:boolean
- post, Threads Post, $0.0015/call, url:url, trim?:boolean, cache_max_age?:string(1d|3d|7d|14d|30d)
- search, Threads Search, $0.0015/call, query:string, start_date?:string, end_date?:string, trim?:boolean
- search-users, Threads Search Users, $0.0015/call, query:string
#### bluesky
- profile, Bluesky Profile, $0.0015/call, handle:string, trim?:boolean
- posts, Bluesky User Posts, $0.0015/call, handle?:string, user_id?:string
- post, Bluesky Post, $0.0015/call, url:url, trim?:boolean
#### truth-social
- profile, Truth Social Profile, $0.0015/call, handle:string, trim?:boolean
- posts, Truth Social User Posts, $0.0015/call, handle?:string, user_id?:string, next_max_id?:string, trim?:boolean
- post, Truth Social Post, $0.0015/call, url:url, trim?:boolean
#### pinterest
- search, Pinterest Search, $0.0015/call, query:string, cursor?:string, trim?:boolean
- pin, Pinterest Pin, $0.0015/call, url:url, trim?:boolean, cache_max_age?:string(1d|3d|7d|14d|30d)
- boards, Pinterest User Boards, $0.0015/call, handle:string, trim?:boolean
- board, Pinterest Board Pins, $0.0015/call, url:url, cursor?:string, trim?:boolean
#### twitch
- profile, Twitch Profile, $0.0015/call, handle:string, trim?:boolean, cache_max_age?:string(1d|3d|7d|14d|30d)
- videos, Twitch User Videos, $0.0015/call, handle:string, filter_by?:string(HIGHLIGHT|ARCHIVE|UPLOAD), sort_by?:string(TIME|VIEWS)
- clip, Twitch Clip, $0.0015/call, url:url, trim?:boolean, cache_max_age?:string(1d|3d|7d|14d|30d)
- schedule, Twitch User Schedule, $0.0015/call, handle:string, trim?:boolean
#### snapchat
- profile, Snapchat Profile, $0.0015/call, handle:string, trim?:boolean
#### spotify
- artist, Spotify Artist, $0.0015/call, id?:string, url?:url
- track, Spotify Track, $0.0015/call, id?:string, url?:url
- album, Spotify Album, $0.0015/call, id?:string, url?:url
#### soundcloud
- artist, SoundCloud Artist, $0.0015/call, handle?:string, url?:url
#### kick
- clip, Kick Clip, $0.0015/call, url:url, trim?:boolean
#### linktree
- page, Linktree Page, $0.0015/call, url:url, trim?:boolean, cache_max_age?:string(1d|3d|7d|14d|30d)
#### komi
- page, Komi Page, $0.0015/call, url:url, trim?:boolean, cache_max_age?:string(1d|3d|7d|14d|30d)
#### pillar
- page, Pillar Page, $0.0015/call, url:url, trim?:boolean, cache_max_age?:string(1d|3d|7d|14d|30d)
#### linkbio
- page, Linkbio Page, $0.0015/call, url:url, trim?:boolean, cache_max_age?:string(1d|3d|7d|14d|30d)
#### linkme
- page, Linkme Profile, $0.0015/call, url:url, trim?:boolean, cache_max_age?:string(1d|3d|7d|14d|30d)
#### amazon
- shop, Amazon Shop Page, $0.0015/call, url:url, trim?:boolean
## Instagram scraper API
*Every Instagram scraper endpoint: 11 actions returning structured JSON from $0.0015 per call. No proxies, no captchas, no infrastructure.*
URL: https://hproxy.com/docs/scrapers/instagram
All 11 Instagram endpoints, from **$0.0015 per call**. Each is callable as `GET https://hproxy.com/api/v1/scrape/instagram/{action}` (or `POST` with a JSON body) using a key with the `scrape` scope. No proxies, captchas or parsing to manage, it is all included in the price, and errors, timeouts and rate limits are never billed. See the [full catalog](https://hproxy.com/docs/scrapers/catalog) for every platform, or the [Instagram landing page](https://hproxy.com/scrapers/instagram) for examples and use cases.
#### GET /api/v1/scrape/instagram/profile
**Instagram Profile.** Returns structured JSON for **Instagram Profile**. Billed **$0.0015 per successful call** ($1.49 per 1,000); errors, timeouts and rate limits are never charged, while a lookup whose target does not exist is billed like a successful call because the platform was queried. `POST` with a JSON body works too.
| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `x-api-key` | `string (header)` | required | Your HProxy API key with the scrape scope. |
| `handle` | `string (query)` | required | Account handle or @username. |
| `trim` | `boolean (query)` | optional | Return a slimmed-down payload (drops verbose fields). |
| `cache_max_age` | `string (query)` | optional | Accept a cached result up to this old (1d, 3d, 7d, 14d or 30d) and pay nothing for it. Omit for a live scrape. Allowed values: `1d`, `3d`, `7d`, `14d`, `30d`. |
**cURL**
```bash
curl "https://hproxy.com/api/v1/scrape/instagram/profile?handle=instagram" \
-H "X-API-Key: hpx_your_key_here"
```
**Response**
```json
{
"platform": "instagram",
"scraper": "instagram-profile",
"input": { "handle": "instagram" },
"data": { /* the Instagram payload, as structured JSON */ },
"records": 1,
"costUsd": 0.0015,
"walletDebitUsd": 0,
"requestId": "c4389b749c07d44209e4fb301",
"elapsedMs": 812
}
```
#### GET /api/v1/scrape/instagram/post
**Instagram Post.** Returns structured JSON for **Instagram Post**. Billed **$0.0149 per successful call** ($14.90 per 1,000); errors, timeouts and rate limits are never charged, while a lookup whose target does not exist is billed like a successful call because the platform was queried. `POST` with a JSON body works too.
| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `x-api-key` | `string (header)` | required | Your HProxy API key with the scrape scope. |
| `url` | `url (query)` | required | Target URL (profile, post or video). |
| `region` | `string (query)` | optional | Two-letter region/country code, e.g. US. |
| `trim` | `boolean (query)` | optional | Return a slimmed-down payload (drops verbose fields). |
| `download_media` | `boolean (query)` | optional | Return a direct media URL alongside the metadata. |
| `cache_max_age` | `string (query)` | optional | Accept a cached result up to this old (1d, 3d, 7d, 14d or 30d) and pay nothing for it. Omit for a live scrape. Allowed values: `1d`, `3d`, `7d`, `14d`, `30d`. |
**cURL**
```bash
curl "https://hproxy.com/api/v1/scrape/instagram/post?url=https://www.instagram.com/p/C8Xxun_Ku3-/" \
-H "X-API-Key: hpx_your_key_here"
```
**Response**
```json
{
"platform": "instagram",
"scraper": "instagram-post",
"input": { "url": "https://www.instagram.com/p/C8Xxun_Ku3-/" },
"data": { /* the Instagram payload, as structured JSON */ },
"records": 1,
"costUsd": 0.0149,
"walletDebitUsd": 0,
"requestId": "c4389b749c07d44209e4fb301",
"elapsedMs": 812
}
```
#### GET /api/v1/scrape/instagram/transcript
**Instagram Media Transcript.** Returns structured JSON for **Instagram Media Transcript**. Billed **$0.0015 per successful call** ($1.49 per 1,000); errors, timeouts and rate limits are never charged, while a lookup whose target does not exist is billed like a successful call because the platform was queried. `POST` with a JSON body works too.
| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `x-api-key` | `string (header)` | required | Your HProxy API key with the scrape scope. |
| `url` | `url (query)` | required | Target URL (profile, post or video). |
| `trim` | `boolean (query)` | optional | Return a slimmed-down payload (drops verbose fields). |
| `cache_max_age` | `string (query)` | optional | Accept a cached result up to this old (1d, 3d, 7d, 14d or 30d) and pay nothing for it. Omit for a live scrape. Allowed values: `1d`, `3d`, `7d`, `14d`, `30d`. |
**cURL**
```bash
curl "https://hproxy.com/api/v1/scrape/instagram/transcript?url=https://www.instagram.com/p/C8Xxun_Ku3-/" \
-H "X-API-Key: hpx_your_key_here"
```
**Response**
```json
{
"platform": "instagram",
"scraper": "instagram-transcript",
"input": { "url": "https://www.instagram.com/p/C8Xxun_Ku3-/" },
"data": { /* the Instagram payload, as structured JSON */ },
"records": 1,
"costUsd": 0.0015,
"walletDebitUsd": 0,
"requestId": "c4389b749c07d44209e4fb301",
"elapsedMs": 812
}
```
#### GET /api/v1/scrape/instagram/reels-search
**Instagram Reels Search.** Returns structured JSON for **Instagram Reels Search**. Billed **$0.0015 per successful call** ($1.49 per 1,000); errors, timeouts and rate limits are never charged, while a lookup whose target does not exist is billed like a successful call because the platform was queried. `POST` with a JSON body works too.
| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `x-api-key` | `string (header)` | required | Your HProxy API key with the scrape scope. |
| `query` | `string (query)` | required | Search term or keyword. |
| `date_posted` | `string (query)` | optional | Filter by date, as YYYY-MM-DD. Allowed values: `last-hour`, `last-day`, `last-week`, `last-month`, `last-year`. |
| `page` | `integer (query)` | optional | Pagination token from the previous response. |
**cURL**
```bash
curl "https://hproxy.com/api/v1/scrape/instagram/reels-search?query=coffee" \
-H "X-API-Key: hpx_your_key_here"
```
**Response**
```json
{
"platform": "instagram",
"scraper": "instagram-reels-search",
"input": { "query": "coffee" },
"data": { /* the Instagram payload, as structured JSON */ },
"records": 1,
"costUsd": 0.0015,
"walletDebitUsd": 0,
"requestId": "c4389b749c07d44209e4fb301",
"elapsedMs": 812
}
```
#### GET /api/v1/scrape/instagram/basic-profile
**Instagram Basic Profile.** Returns structured JSON for **Instagram Basic Profile**. Billed **$0.0015 per successful call** ($1.49 per 1,000); errors, timeouts and rate limits are never charged, while a lookup whose target does not exist is billed like a successful call because the platform was queried. `POST` with a JSON body works too.
| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `x-api-key` | `string (header)` | required | Your HProxy API key with the scrape scope. |
| `userId` | `string (query)` | required | Identifier from a previous response. |
| `cache_max_age` | `string (query)` | optional | Accept a cached result up to this old (1d, 3d, 7d, 14d or 30d) and pay nothing for it. Omit for a live scrape. Allowed values: `1d`, `3d`, `7d`, `14d`, `30d`. |
**cURL**
```bash
curl "https://hproxy.com/api/v1/scrape/instagram/basic-profile?userId=1234567890" \
-H "X-API-Key: hpx_your_key_here"
```
**Response**
```json
{
"platform": "instagram",
"scraper": "instagram-basic-profile",
"input": { "userId": "1234567890" },
"data": { /* the Instagram payload, as structured JSON */ },
"records": 1,
"costUsd": 0.0015,
"walletDebitUsd": 0,
"requestId": "c4389b749c07d44209e4fb301",
"elapsedMs": 812
}
```
#### GET /api/v1/scrape/instagram/posts
**Instagram User Posts.** Returns structured JSON for **Instagram User Posts**. Billed **$0.0015 per successful call** ($1.49 per 1,000); errors, timeouts and rate limits are never charged, while a lookup whose target does not exist is billed like a successful call because the platform was queried. `POST` with a JSON body works too.
| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `x-api-key` | `string (header)` | required | Your HProxy API key with the scrape scope. |
| `handle` | `string (query)` | required | Account handle or @username. |
| `next_max_id` | `string (query)` | optional | Pagination token from the previous response. |
| `trim` | `boolean (query)` | optional | Return a slimmed-down payload (drops verbose fields). |
**cURL**
```bash
curl "https://hproxy.com/api/v1/scrape/instagram/posts?handle=instagram" \
-H "X-API-Key: hpx_your_key_here"
```
**Response**
```json
{
"platform": "instagram",
"scraper": "instagram-posts",
"input": { "handle": "instagram" },
"data": { /* the Instagram payload, as structured JSON */ },
"records": 1,
"costUsd": 0.0015,
"walletDebitUsd": 0,
"requestId": "c4389b749c07d44209e4fb301",
"elapsedMs": 812
}
```
#### GET /api/v1/scrape/instagram/reels
**Instagram User Reels.** Returns structured JSON for **Instagram User Reels**. Billed **$0.0015 per successful call** ($1.49 per 1,000); errors, timeouts and rate limits are never charged, while a lookup whose target does not exist is billed like a successful call because the platform was queried. `POST` with a JSON body works too.
| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `x-api-key` | `string (header)` | required | Your HProxy API key with the scrape scope. |
| `user_id` | `string (query)` | required | Identifier from a previous response. Send this **or** `handle`. |
| `handle` | `string (query)` | required | Account handle or @username. Send this **or** `user_id`. |
| `max_id` | `string (query)` | optional | Identifier from a previous response. |
| `trim` | `boolean (query)` | optional | Return a slimmed-down payload (drops verbose fields). |
**cURL**
```bash
curl "https://hproxy.com/api/v1/scrape/instagram/reels?handle=instagram" \
-H "X-API-Key: hpx_your_key_here"
```
**Response**
```json
{
"platform": "instagram",
"scraper": "instagram-reels",
"input": { },
"data": { /* the Instagram payload, as structured JSON */ },
"records": 1,
"costUsd": 0.0015,
"walletDebitUsd": 0,
"requestId": "c4389b749c07d44209e4fb301",
"elapsedMs": 812
}
```
#### GET /api/v1/scrape/instagram/comments
**Instagram Post Comments.** Returns structured JSON for **Instagram Post Comments**. Billed **$0.0015 per successful call** ($1.49 per 1,000); errors, timeouts and rate limits are never charged, while a lookup whose target does not exist is billed like a successful call because the platform was queried. `POST` with a JSON body works too.
| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `x-api-key` | `string (header)` | required | Your HProxy API key with the scrape scope. |
| `url` | `url (query)` | required | Target URL (profile, post or video). |
| `cursor` | `string (query)` | optional | Pagination token from the previous response. |
| `trim` | `boolean (query)` | optional | Return a slimmed-down payload (drops verbose fields). |
**cURL**
```bash
curl "https://hproxy.com/api/v1/scrape/instagram/comments?url=https://www.instagram.com/p/C8Xxun_Ku3-/" \
-H "X-API-Key: hpx_your_key_here"
```
**Response**
```json
{
"platform": "instagram",
"scraper": "instagram-comments",
"input": { "url": "https://www.instagram.com/p/C8Xxun_Ku3-/" },
"data": { /* the Instagram payload, as structured JSON */ },
"records": 1,
"costUsd": 0.0015,
"walletDebitUsd": 0,
"requestId": "c4389b749c07d44209e4fb301",
"elapsedMs": 812
}
```
#### GET /api/v1/scrape/instagram/highlights
**Instagram User Highlights.** Returns structured JSON for **Instagram User Highlights**. Billed **$0.0015 per successful call** ($1.49 per 1,000); errors, timeouts and rate limits are never charged, while a lookup whose target does not exist is billed like a successful call because the platform was queried. `POST` with a JSON body works too.
| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `x-api-key` | `string (header)` | required | Your HProxy API key with the scrape scope. |
| `user_id` | `string (query)` | required | Identifier from a previous response. Send this **or** `handle`. |
| `handle` | `string (query)` | required | Account handle or @username. Send this **or** `user_id`. |
**cURL**
```bash
curl "https://hproxy.com/api/v1/scrape/instagram/highlights?handle=instagram" \
-H "X-API-Key: hpx_your_key_here"
```
**Response**
```json
{
"platform": "instagram",
"scraper": "instagram-highlights",
"input": { },
"data": { /* the Instagram payload, as structured JSON */ },
"records": 1,
"costUsd": 0.0015,
"walletDebitUsd": 0,
"requestId": "c4389b749c07d44209e4fb301",
"elapsedMs": 812
}
```
#### GET /api/v1/scrape/instagram/highlight
**Instagram Highlight Detail.** Returns structured JSON for **Instagram Highlight Detail**. Billed **$0.0015 per successful call** ($1.49 per 1,000); errors, timeouts and rate limits are never charged, while a lookup whose target does not exist is billed like a successful call because the platform was queried. `POST` with a JSON body works too.
| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `x-api-key` | `string (header)` | required | Your HProxy API key with the scrape scope. |
| `id` | `string (query)` | required | Identifier from a previous response. |
**cURL**
```bash
curl "https://hproxy.com/api/v1/scrape/instagram/highlight?id=1234567890" \
-H "X-API-Key: hpx_your_key_here"
```
**Response**
```json
{
"platform": "instagram",
"scraper": "instagram-highlight",
"input": { "id": "1234567890" },
"data": { /* the Instagram payload, as structured JSON */ },
"records": 1,
"costUsd": 0.0015,
"walletDebitUsd": 0,
"requestId": "c4389b749c07d44209e4fb301",
"elapsedMs": 812
}
```
#### GET /api/v1/scrape/instagram/embed
**Instagram Profile Embed HTML.** Returns structured JSON for **Instagram Profile Embed HTML**. Billed **$0.0015 per successful call** ($1.49 per 1,000); errors, timeouts and rate limits are never charged, while a lookup whose target does not exist is billed like a successful call because the platform was queried. `POST` with a JSON body works too.
| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `x-api-key` | `string (header)` | required | Your HProxy API key with the scrape scope. |
| `handle` | `string (query)` | required | Account handle or @username. |
| `trim` | `boolean (query)` | optional | Return a slimmed-down payload (drops verbose fields). |
**cURL**
```bash
curl "https://hproxy.com/api/v1/scrape/instagram/embed?handle=instagram" \
-H "X-API-Key: hpx_your_key_here"
```
**Response**
```json
{
"platform": "instagram",
"scraper": "instagram-embed",
"input": { "handle": "instagram" },
"data": { /* the Instagram payload, as structured JSON */ },
"records": 1,
"costUsd": 0.0015,
"walletDebitUsd": 0,
"requestId": "c4389b749c07d44209e4fb301",
"elapsedMs": 812
}
```
## TikTok scraper API
*Every TikTok scraper endpoint: 23 actions returning structured JSON from $0.0015 per call. No proxies, no captchas, no infrastructure.*
URL: https://hproxy.com/docs/scrapers/tiktok
All 23 TikTok endpoints, from **$0.0015 per call**. Each is callable as `GET https://hproxy.com/api/v1/scrape/tiktok/{action}` (or `POST` with a JSON body) using a key with the `scrape` scope. No proxies, captchas or parsing to manage, it is all included in the price, and errors, timeouts and rate limits are never billed. See the [full catalog](https://hproxy.com/docs/scrapers/catalog) for every platform, or the [TikTok landing page](https://hproxy.com/scrapers/tiktok) for examples and use cases.
#### GET /api/v1/scrape/tiktok/profile
**TikTok Profile.** Returns structured JSON for **TikTok Profile**. Billed **$0.0015 per successful call** ($1.49 per 1,000); errors, timeouts and rate limits are never charged, while a lookup whose target does not exist is billed like a successful call because the platform was queried. `POST` with a JSON body works too.
| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `x-api-key` | `string (header)` | required | Your HProxy API key with the scrape scope. |
| `handle` | `string (query)` | required | Account handle or @username. Send this **or** `user_id`. |
| `user_id` | `string (query)` | required | Identifier from a previous response. Send this **or** `handle`. |
| `trim` | `boolean (query)` | optional | Return a slimmed-down payload (drops verbose fields). |
| `cache_max_age` | `string (query)` | optional | Accept a cached result up to this old (1d, 3d, 7d, 14d or 30d) and pay nothing for it. Omit for a live scrape. Allowed values: `1d`, `3d`, `7d`, `14d`, `30d`. |
**cURL**
```bash
curl "https://hproxy.com/api/v1/scrape/tiktok/profile?handle=tiktok" \
-H "X-API-Key: hpx_your_key_here"
```
**Response**
```json
{
"platform": "tiktok",
"scraper": "tiktok-profile",
"input": { },
"data": { /* the TikTok payload, as structured JSON */ },
"records": 1,
"costUsd": 0.0015,
"walletDebitUsd": 0,
"requestId": "c4389b749c07d44209e4fb301",
"elapsedMs": 812
}
```
#### GET /api/v1/scrape/tiktok/profile-region
**TikTok Profile Region.** Returns structured JSON for **TikTok Profile Region**. Billed **$0.0015 per successful call** ($1.49 per 1,000); errors, timeouts and rate limits are never charged, while a lookup whose target does not exist is billed like a successful call because the platform was queried. `POST` with a JSON body works too.
| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `x-api-key` | `string (header)` | required | Your HProxy API key with the scrape scope. |
| `handle` | `string (query)` | required | Account handle or @username. |
| `trim` | `boolean (query)` | optional | Return a slimmed-down payload (drops verbose fields). |
**cURL**
```bash
curl "https://hproxy.com/api/v1/scrape/tiktok/profile-region?handle=tiktok" \
-H "X-API-Key: hpx_your_key_here"
```
**Response**
```json
{
"platform": "tiktok",
"scraper": "tiktok-profile-region",
"input": { "handle": "tiktok" },
"data": { /* the TikTok payload, as structured JSON */ },
"records": 1,
"costUsd": 0.0015,
"walletDebitUsd": 0,
"requestId": "c4389b749c07d44209e4fb301",
"elapsedMs": 812
}
```
#### GET /api/v1/scrape/tiktok/audience
**TikTok User Audience Demographics.** Returns structured JSON for **TikTok User Audience Demographics**. Billed **$0.0387 per successful call** ($38.74 per 1,000); errors, timeouts and rate limits are never charged, while a lookup whose target does not exist is billed like a successful call because the platform was queried. `POST` with a JSON body works too.
| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `x-api-key` | `string (header)` | required | Your HProxy API key with the scrape scope. |
| `handle` | `string (query)` | required | Account handle or @username. |
| `trim` | `boolean (query)` | optional | Return a slimmed-down payload (drops verbose fields). |
**cURL**
```bash
curl "https://hproxy.com/api/v1/scrape/tiktok/audience?handle=tiktok" \
-H "X-API-Key: hpx_your_key_here"
```
**Response**
```json
{
"platform": "tiktok",
"scraper": "tiktok-audience",
"input": { "handle": "tiktok" },
"data": { /* the TikTok payload, as structured JSON */ },
"records": 1,
"costUsd": 0.0387,
"walletDebitUsd": 0,
"requestId": "c4389b749c07d44209e4fb301",
"elapsedMs": 812
}
```
#### GET /api/v1/scrape/tiktok/video
**TikTok Video.** Returns structured JSON for **TikTok Video**. Billed **$0.0149 per successful call** ($14.90 per 1,000); errors, timeouts and rate limits are never charged, while a lookup whose target does not exist is billed like a successful call because the platform was queried. `POST` with a JSON body works too.
| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `x-api-key` | `string (header)` | required | Your HProxy API key with the scrape scope. |
| `url` | `url (query)` | required | Target URL (profile, post or video). |
| `get_transcript` | `boolean (query)` | optional | Also include transcript in the response. |
| `region` | `string (query)` | optional | Two-letter region/country code, e.g. US. |
| `trim` | `boolean (query)` | optional | Return a slimmed-down payload (drops verbose fields). |
| `download_media` | `boolean (query)` | optional | Return a direct media URL alongside the metadata. |
| `cache_max_age` | `string (query)` | optional | Accept a cached result up to this old (1d, 3d, 7d, 14d or 30d) and pay nothing for it. Omit for a live scrape. Allowed values: `1d`, `3d`, `7d`, `14d`, `30d`. |
**cURL**
```bash
curl "https://hproxy.com/api/v1/scrape/tiktok/video?url=https://www.tiktok.com/@tiktok/video/7106594312292453675" \
-H "X-API-Key: hpx_your_key_here"
```
**Response**
```json
{
"platform": "tiktok",
"scraper": "tiktok-video",
"input": { "url": "https://www.tiktok.com/@tiktok/video/7106594312292453675" },
"data": { /* the TikTok payload, as structured JSON */ },
"records": 1,
"costUsd": 0.0149,
"walletDebitUsd": 0,
"requestId": "c4389b749c07d44209e4fb301",
"elapsedMs": 812
}
```
#### GET /api/v1/scrape/tiktok/video-transcript
**TikTok Video Transcript.** Returns structured JSON for **TikTok Video Transcript**. Billed **$0.0164 per successful call** ($16.39 per 1,000); errors, timeouts and rate limits are never charged, while a lookup whose target does not exist is billed like a successful call because the platform was queried. `POST` with a JSON body works too.
| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `x-api-key` | `string (header)` | required | Your HProxy API key with the scrape scope. |
| `url` | `url (query)` | required | Target URL (profile, post or video). |
| `language` | `string (query)` | optional | Two-letter language code, e.g. en. |
| `use_ai_as_fallback` | `string (query)` | optional | The use ai as fallback parameter. |
**cURL**
```bash
curl "https://hproxy.com/api/v1/scrape/tiktok/video-transcript?url=https://www.tiktok.com/@tiktok/video/7106594312292453675" \
-H "X-API-Key: hpx_your_key_here"
```
**Response**
```json
{
"platform": "tiktok",
"scraper": "tiktok-video-transcript",
"input": { "url": "https://www.tiktok.com/@tiktok/video/7106594312292453675" },
"data": { /* the TikTok payload, as structured JSON */ },
"records": 1,
"costUsd": 0.0164,
"walletDebitUsd": 0,
"requestId": "c4389b749c07d44209e4fb301",
"elapsedMs": 812
}
```
#### GET /api/v1/scrape/tiktok/profile-videos
**TikTok Profile Videos.** Returns structured JSON for **TikTok Profile Videos**. Billed **$0.0015 per successful call** ($1.49 per 1,000); errors, timeouts and rate limits are never charged, while a lookup whose target does not exist is billed like a successful call because the platform was queried. `POST` with a JSON body works too.
| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `x-api-key` | `string (header)` | required | Your HProxy API key with the scrape scope. |
| `handle` | `string (query)` | required | Account handle or @username. |
| `user_id` | `string (query)` | optional | Identifier from a previous response. |
| `max_cursor` | `string (query)` | optional | Pagination token from the previous response. |
| `sort_by` | `string (query)` | optional | Ordering to apply to the results. Allowed values: `latest`, `popular`. |
| `region` | `string (query)` | optional | Two-letter region/country code, e.g. US. |
| `trim` | `boolean (query)` | optional | Return a slimmed-down payload (drops verbose fields). |
**cURL**
```bash
curl "https://hproxy.com/api/v1/scrape/tiktok/profile-videos?handle=tiktok" \
-H "X-API-Key: hpx_your_key_here"
```
**Response**
```json
{
"platform": "tiktok",
"scraper": "tiktok-profile-videos",
"input": { "handle": "tiktok" },
"data": { /* the TikTok payload, as structured JSON */ },
"records": 1,
"costUsd": 0.0015,
"walletDebitUsd": 0,
"requestId": "c4389b749c07d44209e4fb301",
"elapsedMs": 812
}
```
#### GET /api/v1/scrape/tiktok/search
**TikTok Keyword Search.** Returns structured JSON for **TikTok Keyword Search**. Billed **$0.0015 per successful call** ($1.49 per 1,000); errors, timeouts and rate limits are never charged, while a lookup whose target does not exist is billed like a successful call because the platform was queried. `POST` with a JSON body works too.
| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `x-api-key` | `string (header)` | required | Your HProxy API key with the scrape scope. |
| `query` | `string (query)` | required | Search term or keyword. |
| `date_posted` | `string (query)` | optional | Filter by date, as YYYY-MM-DD. Allowed values: `yesterday`, `this-week`, `this-month`, `last-3-months`, `last-6-months`, `all-time`. |
| `sort_by` | `string (query)` | optional | Ordering to apply to the results. Allowed values: `relevance`, `most-liked`, `date-posted`. |
| `region` | `string (query)` | optional | Two-letter region/country code, e.g. US. |
| `cursor` | `integer (query)` | optional | Pagination token from the previous response. |
| `trim` | `boolean (query)` | optional | Return a slimmed-down payload (drops verbose fields). |
**cURL**
```bash
curl "https://hproxy.com/api/v1/scrape/tiktok/search?query=coffee" \
-H "X-API-Key: hpx_your_key_here"
```
**Response**
```json
{
"platform": "tiktok",
"scraper": "tiktok-search",
"input": { "query": "coffee" },
"data": { /* the TikTok payload, as structured JSON */ },
"records": 1,
"costUsd": 0.0015,
"walletDebitUsd": 0,
"requestId": "c4389b749c07d44209e4fb301",
"elapsedMs": 812
}
```
#### GET /api/v1/scrape/tiktok/shop-search
**TikTok Shop Search.** Returns structured JSON for **TikTok Shop Search**. Billed **$0.0015 per successful call** ($1.49 per 1,000); errors, timeouts and rate limits are never charged, while a lookup whose target does not exist is billed like a successful call because the platform was queried. `POST` with a JSON body works too.
| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `x-api-key` | `string (header)` | required | Your HProxy API key with the scrape scope. |
| `query` | `string (query)` | required | Search term or keyword. |
| `page` | `integer (query)` | optional | Pagination token from the previous response. |
| `region` | `string (query)` | optional | Two-letter region/country code, e.g. US. |
**cURL**
```bash
curl "https://hproxy.com/api/v1/scrape/tiktok/shop-search?query=coffee" \
-H "X-API-Key: hpx_your_key_here"
```
**Response**
```json
{
"platform": "tiktok",
"scraper": "tiktok-shop-search",
"input": { "query": "coffee" },
"data": { /* the TikTok payload, as structured JSON */ },
"records": 1,
"costUsd": 0.0015,
"walletDebitUsd": 0,
"requestId": "c4389b749c07d44209e4fb301",
"elapsedMs": 812
}
```
#### GET /api/v1/scrape/tiktok/live-status
**TikTok Live Status.** Returns structured JSON for **TikTok Live Status**. Billed **$0.0015 per successful call** ($1.49 per 1,000); errors, timeouts and rate limits are never charged, while a lookup whose target does not exist is billed like a successful call because the platform was queried. `POST` with a JSON body works too.
| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `x-api-key` | `string (header)` | required | Your HProxy API key with the scrape scope. |
| `handle` | `string (query)` | required | Account handle or @username. |
| `trim` | `boolean (query)` | optional | Return a slimmed-down payload (drops verbose fields). |
**cURL**
```bash
curl "https://hproxy.com/api/v1/scrape/tiktok/live-status?handle=tiktok" \
-H "X-API-Key: hpx_your_key_here"
```
**Response**
```json
{
"platform": "tiktok",
"scraper": "tiktok-live-status",
"input": { "handle": "tiktok" },
"data": { /* the TikTok payload, as structured JSON */ },
"records": 1,
"costUsd": 0.0015,
"walletDebitUsd": 0,
"requestId": "c4389b749c07d44209e4fb301",
"elapsedMs": 812
}
```
#### GET /api/v1/scrape/tiktok/video-comments
**TikTok Video Comments.** Returns structured JSON for **TikTok Video Comments**. Billed **$0.0015 per successful call** ($1.49 per 1,000); errors, timeouts and rate limits are never charged, while a lookup whose target does not exist is billed like a successful call because the platform was queried. `POST` with a JSON body works too.
| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `x-api-key` | `string (header)` | required | Your HProxy API key with the scrape scope. |
| `url` | `url (query)` | required | Target URL (profile, post or video). |
| `cursor` | `integer (query)` | optional | Pagination token from the previous response. |
| `trim` | `boolean (query)` | optional | Return a slimmed-down payload (drops verbose fields). |
**cURL**
```bash
curl "https://hproxy.com/api/v1/scrape/tiktok/video-comments?url=https://www.tiktok.com/@tiktok/video/7106594312292453675" \
-H "X-API-Key: hpx_your_key_here"
```
**Response**
```json
{
"platform": "tiktok",
"scraper": "tiktok-video-comments",
"input": { "url": "https://www.tiktok.com/@tiktok/video/7106594312292453675" },
"data": { /* the TikTok payload, as structured JSON */ },
"records": 1,
"costUsd": 0.0015,
"walletDebitUsd": 0,
"requestId": "c4389b749c07d44209e4fb301",
"elapsedMs": 812
}
```
#### GET /api/v1/scrape/tiktok/comment-replies
**TikTok Comment Replies.** Returns structured JSON for **TikTok Comment Replies**. Billed **$0.0015 per successful call** ($1.49 per 1,000); errors, timeouts and rate limits are never charged, while a lookup whose target does not exist is billed like a successful call because the platform was queried. `POST` with a JSON body works too.
| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `x-api-key` | `string (header)` | required | Your HProxy API key with the scrape scope. |
| `comment_id` | `string (query)` | required | Identifier from a previous response. |
| `url` | `url (query)` | required | Target URL (profile, post or video). |
| `cursor` | `integer (query)` | optional | Pagination token from the previous response. |
**cURL**
```bash
curl "https://hproxy.com/api/v1/scrape/tiktok/comment-replies?comment_id=1234567890&url=https://www.tiktok.com/@tiktok/video/7106594312292453675" \
-H "X-API-Key: hpx_your_key_here"
```
**Response**
```json
{
"platform": "tiktok",
"scraper": "tiktok-comment-replies",
"input": { "comment_id": "1234567890", "url": "https://www.tiktok.com/@tiktok/video/7106594312292453675" },
"data": { /* the TikTok payload, as structured JSON */ },
"records": 1,
"costUsd": 0.0015,
"walletDebitUsd": 0,
"requestId": "c4389b749c07d44209e4fb301",
"elapsedMs": 812
}
```
#### GET /api/v1/scrape/tiktok/following
**TikTok User Following.** Returns structured JSON for **TikTok User Following**. Billed **$0.0015 per successful call** ($1.49 per 1,000); errors, timeouts and rate limits are never charged, while a lookup whose target does not exist is billed like a successful call because the platform was queried. `POST` with a JSON body works too.
| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `x-api-key` | `string (header)` | required | Your HProxy API key with the scrape scope. |
| `handle` | `string (query)` | required | Account handle or @username. |
| `min_time` | `integer (query)` | optional | Filter by date, as YYYY-MM-DD. |
| `trim` | `boolean (query)` | optional | Return a slimmed-down payload (drops verbose fields). |
**cURL**
```bash
curl "https://hproxy.com/api/v1/scrape/tiktok/following?handle=tiktok" \
-H "X-API-Key: hpx_your_key_here"
```
**Response**
```json
{
"platform": "tiktok",
"scraper": "tiktok-following",
"input": { "handle": "tiktok" },
"data": { /* the TikTok payload, as structured JSON */ },
"records": 1,
"costUsd": 0.0015,
"walletDebitUsd": 0,
"requestId": "c4389b749c07d44209e4fb301",
"elapsedMs": 812
}
```
#### GET /api/v1/scrape/tiktok/followers
**TikTok User Followers.** Returns structured JSON for **TikTok User Followers**. Billed **$0.0015 per successful call** ($1.49 per 1,000); errors, timeouts and rate limits are never charged, while a lookup whose target does not exist is billed like a successful call because the platform was queried. `POST` with a JSON body works too.
| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `x-api-key` | `string (header)` | required | Your HProxy API key with the scrape scope. |
| `handle` | `string (query)` | required | Account handle or @username. Send this **or** `user_id`. |
| `user_id` | `string (query)` | required | Identifier from a previous response. Send this **or** `handle`. |
| `min_time` | `integer (query)` | optional | Filter by date, as YYYY-MM-DD. |
| `trim` | `boolean (query)` | optional | Return a slimmed-down payload (drops verbose fields). |
**cURL**
```bash
curl "https://hproxy.com/api/v1/scrape/tiktok/followers?handle=tiktok" \
-H "X-API-Key: hpx_your_key_here"
```
**Response**
```json
{
"platform": "tiktok",
"scraper": "tiktok-followers",
"input": { },
"data": { /* the TikTok payload, as structured JSON */ },
"records": 1,
"costUsd": 0.0015,
"walletDebitUsd": 0,
"requestId": "c4389b749c07d44209e4fb301",
"elapsedMs": 812
}
```
#### GET /api/v1/scrape/tiktok/search-users
**TikTok Search Users.** Returns structured JSON for **TikTok Search Users**. Billed **$0.0015 per successful call** ($1.49 per 1,000); errors, timeouts and rate limits are never charged, while a lookup whose target does not exist is billed like a successful call because the platform was queried. `POST` with a JSON body works too.
| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `x-api-key` | `string (header)` | required | Your HProxy API key with the scrape scope. |
| `query` | `string (query)` | required | Search term or keyword. |
| `cursor` | `string (query)` | optional | Pagination token from the previous response. |
| `trim` | `boolean (query)` | optional | Return a slimmed-down payload (drops verbose fields). |
**cURL**
```bash
curl "https://hproxy.com/api/v1/scrape/tiktok/search-users?query=coffee" \
-H "X-API-Key: hpx_your_key_here"
```
**Response**
```json
{
"platform": "tiktok",
"scraper": "tiktok-search-users",
"input": { "query": "coffee" },
"data": { /* the TikTok payload, as structured JSON */ },
"records": 1,
"costUsd": 0.0015,
"walletDebitUsd": 0,
"requestId": "c4389b749c07d44209e4fb301",
"elapsedMs": 812
}
```
#### GET /api/v1/scrape/tiktok/search-hashtag
**TikTok Hashtag Search.** Returns structured JSON for **TikTok Hashtag Search**. Billed **$0.0015 per successful call** ($1.49 per 1,000); errors, timeouts and rate limits are never charged, while a lookup whose target does not exist is billed like a successful call because the platform was queried. `POST` with a JSON body works too.
| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `x-api-key` | `string (header)` | required | Your HProxy API key with the scrape scope. |
| `hashtag` | `string (query)` | required | Hashtag to look up, without the # sign. |
| `region` | `string (query)` | optional | Two-letter region/country code, e.g. US. |
| `cursor` | `integer (query)` | optional | Pagination token from the previous response. |
| `trim` | `boolean (query)` | optional | Return a slimmed-down payload (drops verbose fields). |
**cURL**
```bash
curl "https://hproxy.com/api/v1/scrape/tiktok/search-hashtag?hashtag=travel" \
-H "X-API-Key: hpx_your_key_here"
```
**Response**
```json
{
"platform": "tiktok",
"scraper": "tiktok-search-hashtag",
"input": { "hashtag": "travel" },
"data": { /* the TikTok payload, as structured JSON */ },
"records": 1,
"costUsd": 0.0015,
"walletDebitUsd": 0,
"requestId": "c4389b749c07d44209e4fb301",
"elapsedMs": 812
}
```
#### GET /api/v1/scrape/tiktok/song
**TikTok Song Details.** Returns structured JSON for **TikTok Song Details**. Billed **$0.0015 per successful call** ($1.49 per 1,000); errors, timeouts and rate limits are never charged, while a lookup whose target does not exist is billed like a successful call because the platform was queried. `POST` with a JSON body works too.
| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `x-api-key` | `string (header)` | required | Your HProxy API key with the scrape scope. |
| `clipId` | `string (query)` | required | Identifier from a previous response. |
| `cursor` | `integer (query)` | optional | Pagination token from the previous response. |
**cURL**
```bash
curl "https://hproxy.com/api/v1/scrape/tiktok/song?clipId=1234567890" \
-H "X-API-Key: hpx_your_key_here"
```
**Response**
```json
{
"platform": "tiktok",
"scraper": "tiktok-song",
"input": { "clipId": "1234567890" },
"data": { /* the TikTok payload, as structured JSON */ },
"records": 1,
"costUsd": 0.0015,
"walletDebitUsd": 0,
"requestId": "c4389b749c07d44209e4fb301",
"elapsedMs": 812
}
```
#### GET /api/v1/scrape/tiktok/song-videos
**TikTok Song Videos.** Returns structured JSON for **TikTok Song Videos**. Billed **$0.0015 per successful call** ($1.49 per 1,000); errors, timeouts and rate limits are never charged, while a lookup whose target does not exist is billed like a successful call because the platform was queried. `POST` with a JSON body works too.
| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `x-api-key` | `string (header)` | required | Your HProxy API key with the scrape scope. |
| `clipId` | `string (query)` | required | Identifier from a previous response. |
| `cursor` | `integer (query)` | optional | Pagination token from the previous response. |
**cURL**
```bash
curl "https://hproxy.com/api/v1/scrape/tiktok/song-videos?clipId=1234567890" \
-H "X-API-Key: hpx_your_key_here"
```
**Response**
```json
{
"platform": "tiktok",
"scraper": "tiktok-song-videos",
"input": { "clipId": "1234567890" },
"data": { /* the TikTok payload, as structured JSON */ },
"records": 1,
"costUsd": 0.0015,
"walletDebitUsd": 0,
"requestId": "c4389b749c07d44209e4fb301",
"elapsedMs": 812
}
```
#### GET /api/v1/scrape/tiktok/trending
**TikTok Trending Feed.** Returns structured JSON for **TikTok Trending Feed**. Billed **$0.0015 per successful call** ($1.49 per 1,000); errors, timeouts and rate limits are never charged, while a lookup whose target does not exist is billed like a successful call because the platform was queried. `POST` with a JSON body works too.
| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `x-api-key` | `string (header)` | required | Your HProxy API key with the scrape scope. |
| `region` | `string (query)` | required | Two-letter region/country code, e.g. US. |
| `trim` | `boolean (query)` | optional | Return a slimmed-down payload (drops verbose fields). |
**cURL**
```bash
curl "https://hproxy.com/api/v1/scrape/tiktok/trending?region=US" \
-H "X-API-Key: hpx_your_key_here"
```
**Response**
```json
{
"platform": "tiktok",
"scraper": "tiktok-trending",
"input": { "region": "US" },
"data": { /* the TikTok payload, as structured JSON */ },
"records": 1,
"costUsd": 0.0015,
"walletDebitUsd": 0,
"requestId": "c4389b749c07d44209e4fb301",
"elapsedMs": 812
}
```
#### GET /api/v1/scrape/tiktok/shop-products
**TikTok Shop Products.** Returns structured JSON for **TikTok Shop Products**. Billed **$0.0015 per successful call** ($1.49 per 1,000); errors, timeouts and rate limits are never charged, while a lookup whose target does not exist is billed like a successful call because the platform was queried. `POST` with a JSON body works too.
| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `x-api-key` | `string (header)` | required | Your HProxy API key with the scrape scope. |
| `url` | `url (query)` | required | Target URL (profile, post or video). |
| `cursor` | `string (query)` | optional | Pagination token from the previous response. |
| `region` | `string (query)` | optional | Two-letter region/country code, e.g. US. |
| `sort_by` | `string (query)` | optional | Ordering to apply to the results. Allowed values: `top`, `new_releases`. |
**cURL**
```bash
curl "https://hproxy.com/api/v1/scrape/tiktok/shop-products?url=https://www.tiktok.com/@tiktok/video/7106594312292453675" \
-H "X-API-Key: hpx_your_key_here"
```
**Response**
```json
{
"platform": "tiktok",
"scraper": "tiktok-shop-products",
"input": { "url": "https://www.tiktok.com/@tiktok/video/7106594312292453675" },
"data": { /* the TikTok payload, as structured JSON */ },
"records": 1,
"costUsd": 0.0015,
"walletDebitUsd": 0,
"requestId": "c4389b749c07d44209e4fb301",
"elapsedMs": 812
}
```
#### GET /api/v1/scrape/tiktok/shop-product
**TikTok Shop Product Details.** Returns structured JSON for **TikTok Shop Product Details**. Billed **$0.0015 per successful call** ($1.49 per 1,000); errors, timeouts and rate limits are never charged, while a lookup whose target does not exist is billed like a successful call because the platform was queried. `POST` with a JSON body works too.
| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `x-api-key` | `string (header)` | required | Your HProxy API key with the scrape scope. |
| `url` | `url (query)` | required | Target URL (profile, post or video). |
| `region` | `string (query)` | optional | Two-letter region/country code, e.g. US. |
**cURL**
```bash
curl "https://hproxy.com/api/v1/scrape/tiktok/shop-product?url=https://www.tiktok.com/@tiktok/video/7106594312292453675" \
-H "X-API-Key: hpx_your_key_here"
```
**Response**
```json
{
"platform": "tiktok",
"scraper": "tiktok-shop-product",
"input": { "url": "https://www.tiktok.com/@tiktok/video/7106594312292453675" },
"data": { /* the TikTok payload, as structured JSON */ },
"records": 1,
"costUsd": 0.0015,
"walletDebitUsd": 0,
"requestId": "c4389b749c07d44209e4fb301",
"elapsedMs": 812
}
```
#### GET /api/v1/scrape/tiktok/shop-product-reviews
**TikTok Shop Product Reviews.** Returns structured JSON for **TikTok Shop Product Reviews**. Billed **$0.0015 per successful call** ($1.49 per 1,000); errors, timeouts and rate limits are never charged, while a lookup whose target does not exist is billed like a successful call because the platform was queried. `POST` with a JSON body works too.
| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `x-api-key` | `string (header)` | required | Your HProxy API key with the scrape scope. |
| `url` | `url (query)` | required | Target URL (profile, post or video). Send this **or** `product_id`. |
| `product_id` | `string (query)` | required | Identifier from a previous response. Send this **or** `url`. |
| `region` | `string (query)` | optional | Two-letter region/country code, e.g. US. |
| `page` | `integer (query)` | optional | Pagination token from the previous response. |
**cURL**
```bash
curl "https://hproxy.com/api/v1/scrape/tiktok/shop-product-reviews?url=https://www.tiktok.com/@tiktok/video/7106594312292453675" \
-H "X-API-Key: hpx_your_key_here"
```
**Response**
```json
{
"platform": "tiktok",
"scraper": "tiktok-shop-product-reviews",
"input": { },
"data": { /* the TikTok payload, as structured JSON */ },
"records": 1,
"costUsd": 0.0015,
"walletDebitUsd": 0,
"requestId": "c4389b749c07d44209e4fb301",
"elapsedMs": 812
}
```
#### GET /api/v1/scrape/tiktok/search-top
**TikTok Top Search.** Returns structured JSON for **TikTok Top Search**. Billed **$0.0015 per successful call** ($1.49 per 1,000); errors, timeouts and rate limits are never charged, while a lookup whose target does not exist is billed like a successful call because the platform was queried. `POST` with a JSON body works too.
| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `x-api-key` | `string (header)` | required | Your HProxy API key with the scrape scope. |
| `query` | `string (query)` | required | Search term or keyword. |
| `publish_time` | `string (query)` | optional | Filter by date, as YYYY-MM-DD. Allowed values: `yesterday`, `this-week`, `this-month`, `last-3-months`, `last-6-months`, `all-time`. |
| `sort_by` | `string (query)` | optional | Ordering to apply to the results. Allowed values: `relevance`, `most-liked`, `date-posted`. |
| `region` | `string (query)` | optional | Two-letter region/country code, e.g. US. |
| `cursor` | `integer (query)` | optional | Pagination token from the previous response. |
**cURL**
```bash
curl "https://hproxy.com/api/v1/scrape/tiktok/search-top?query=coffee" \
-H "X-API-Key: hpx_your_key_here"
```
**Response**
```json
{
"platform": "tiktok",
"scraper": "tiktok-search-top",
"input": { "query": "coffee" },
"data": { /* the TikTok payload, as structured JSON */ },
"records": 1,
"costUsd": 0.0015,
"walletDebitUsd": 0,
"requestId": "c4389b749c07d44209e4fb301",
"elapsedMs": 812
}
```
#### GET /api/v1/scrape/tiktok/shop-showcase
**TikTok Shop User Showcase.** Returns structured JSON for **TikTok Shop User Showcase**. Billed **$0.0015 per successful call** ($1.49 per 1,000); errors, timeouts and rate limits are never charged, while a lookup whose target does not exist is billed like a successful call because the platform was queried. `POST` with a JSON body works too.
| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `x-api-key` | `string (header)` | required | Your HProxy API key with the scrape scope. |
| `handle` | `string (query)` | required | Account handle or @username. |
| `region` | `string (query)` | optional | Two-letter region/country code, e.g. US. |
| `cursor` | `string (query)` | optional | Pagination token from the previous response. |
**cURL**
```bash
curl "https://hproxy.com/api/v1/scrape/tiktok/shop-showcase?handle=tiktok" \
-H "X-API-Key: hpx_your_key_here"
```
**Response**
```json
{
"platform": "tiktok",
"scraper": "tiktok-shop-showcase",
"input": { "handle": "tiktok" },
"data": { /* the TikTok payload, as structured JSON */ },
"records": 1,
"costUsd": 0.0015,
"walletDebitUsd": 0,
"requestId": "c4389b749c07d44209e4fb301",
"elapsedMs": 812
}
```
## YouTube scraper API
*Every YouTube scraper endpoint: 13 actions returning structured JSON from $0.0015 per call. No proxies, no captchas, no infrastructure.*
URL: https://hproxy.com/docs/scrapers/youtube
All 13 YouTube endpoints, from **$0.0015 per call**. Each is callable as `GET https://hproxy.com/api/v1/scrape/youtube/{action}` (or `POST` with a JSON body) using a key with the `scrape` scope. No proxies, captchas or parsing to manage, it is all included in the price, and errors, timeouts and rate limits are never billed. See the [full catalog](https://hproxy.com/docs/scrapers/catalog) for every platform, or the [YouTube landing page](https://hproxy.com/scrapers/youtube) for examples and use cases.
#### GET /api/v1/scrape/youtube/channel-lookup
**YouTube Channel.** Returns structured JSON for **YouTube Channel**. Billed **$0.0015 per successful call** ($1.49 per 1,000); errors, timeouts and rate limits are never charged, while a lookup whose target does not exist is billed like a successful call because the platform was queried. `POST` with a JSON body works too.
| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `x-api-key` | `string (header)` | required | Your HProxy API key with the scrape scope. |
| `channelId` | `string (query)` | required | Identifier from a previous response. Send this **or** `handle` or `url`. |
| `handle` | `string (query)` | required | Account handle or @username. Send this **or** `channelId` or `url`. |
| `url` | `url (query)` | required | Target URL (profile, post or video). Send this **or** `channelId` or `handle`. |
| `cache_max_age` | `string (query)` | optional | Accept a cached result up to this old (1d, 3d, 7d, 14d or 30d) and pay nothing for it. Omit for a live scrape. Allowed values: `1d`, `3d`, `7d`, `14d`, `30d`. |
**cURL**
```bash
curl "https://hproxy.com/api/v1/scrape/youtube/channel-lookup?handle=MrBeast" \
-H "X-API-Key: hpx_your_key_here"
```
**Response**
```json
{
"platform": "youtube",
"scraper": "youtube-channel-lookup",
"input": { },
"data": { /* the YouTube payload, as structured JSON */ },
"records": 1,
"costUsd": 0.0015,
"walletDebitUsd": 0,
"requestId": "c4389b749c07d44209e4fb301",
"elapsedMs": 812
}
```
#### GET /api/v1/scrape/youtube/channel
**YouTube Channel.** Returns structured JSON for **YouTube Channel**. Billed **$0.0015 per successful call** ($1.49 per 1,000); errors, timeouts and rate limits are never charged, while a lookup whose target does not exist is billed like a successful call because the platform was queried. `POST` with a JSON body works too.
| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `x-api-key` | `string (header)` | required | Your HProxy API key with the scrape scope. |
| `channelId` | `string (query)` | required | Identifier from a previous response. Send this **or** `handle` or `url`. |
| `handle` | `string (query)` | required | Account handle or @username. Send this **or** `channelId` or `url`. |
| `url` | `url (query)` | required | Target URL (profile, post or video). Send this **or** `channelId` or `handle`. |
| `cache_max_age` | `string (query)` | optional | Accept a cached result up to this old (1d, 3d, 7d, 14d or 30d) and pay nothing for it. Omit for a live scrape. Allowed values: `1d`, `3d`, `7d`, `14d`, `30d`. |
**cURL**
```bash
curl "https://hproxy.com/api/v1/scrape/youtube/channel?handle=MrBeast" \
-H "X-API-Key: hpx_your_key_here"
```
**Response**
```json
{
"platform": "youtube",
"scraper": "youtube-channel",
"input": { },
"data": { /* the YouTube payload, as structured JSON */ },
"records": 1,
"costUsd": 0.0015,
"walletDebitUsd": 0,
"requestId": "c4389b749c07d44209e4fb301",
"elapsedMs": 812
}
```
#### GET /api/v1/scrape/youtube/channel-videos
**YouTube Channel Videos.** Returns structured JSON for **YouTube Channel Videos**. Billed **$0.0015 per successful call** ($1.49 per 1,000); errors, timeouts and rate limits are never charged, while a lookup whose target does not exist is billed like a successful call because the platform was queried. `POST` with a JSON body works too.
| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `x-api-key` | `string (header)` | required | Your HProxy API key with the scrape scope. |
| `channelId` | `string (query)` | required | Identifier from a previous response. Send this **or** `handle`. |
| `handle` | `string (query)` | required | Account handle or @username. Send this **or** `channelId`. |
| `sort` | `string (query)` | optional | Ordering to apply to the results. Allowed values: `latest`, `popular`. |
| `continuationToken` | `string (query)` | optional | Pagination token from the previous response. |
| `includeExtras` | `boolean (query)` | optional | Optional flag (true or false). |
| `is_paid_promotions` | `boolean (query)` | optional | Optional flag (true or false). |
**cURL**
```bash
curl "https://hproxy.com/api/v1/scrape/youtube/channel-videos?handle=MrBeast" \
-H "X-API-Key: hpx_your_key_here"
```
**Response**
```json
{
"platform": "youtube",
"scraper": "youtube-channel-videos",
"input": { },
"data": { /* the YouTube payload, as structured JSON */ },
"records": 1,
"costUsd": 0.0015,
"walletDebitUsd": 0,
"requestId": "c4389b749c07d44209e4fb301",
"elapsedMs": 812
}
```
#### GET /api/v1/scrape/youtube/channel-shorts
**YouTube Channel Shorts.** Returns structured JSON for **YouTube Channel Shorts**. Billed **$0.0015 per successful call** ($1.49 per 1,000); errors, timeouts and rate limits are never charged, while a lookup whose target does not exist is billed like a successful call because the platform was queried. `POST` with a JSON body works too.
| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `x-api-key` | `string (header)` | required | Your HProxy API key with the scrape scope. |
| `channelId` | `string (query)` | required | Identifier from a previous response. Send this **or** `handle`. |
| `handle` | `string (query)` | required | Account handle or @username. Send this **or** `channelId`. |
| `sort` | `string (query)` | optional | Ordering to apply to the results. Allowed values: `newest`, `popular`. |
| `continuationToken` | `string (query)` | optional | Pagination token from the previous response. |
| `includeExtras` | `boolean (query)` | optional | Optional flag (true or false). |
**cURL**
```bash
curl "https://hproxy.com/api/v1/scrape/youtube/channel-shorts?handle=MrBeast" \
-H "X-API-Key: hpx_your_key_here"
```
**Response**
```json
{
"platform": "youtube",
"scraper": "youtube-channel-shorts",
"input": { },
"data": { /* the YouTube payload, as structured JSON */ },
"records": 1,
"costUsd": 0.0015,
"walletDebitUsd": 0,
"requestId": "c4389b749c07d44209e4fb301",
"elapsedMs": 812
}
```
#### GET /api/v1/scrape/youtube/video
**YouTube Video.** Returns structured JSON for **YouTube Video**. Billed **$0.0015 per successful call** ($1.49 per 1,000); errors, timeouts and rate limits are never charged, while a lookup whose target does not exist is billed like a successful call because the platform was queried. `POST` with a JSON body works too.
| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `x-api-key` | `string (header)` | required | Your HProxy API key with the scrape scope. |
| `url` | `url (query)` | required | Target URL (profile, post or video). |
| `language` | `string (query)` | optional | Two-letter language code, e.g. en. |
| `cache_max_age` | `string (query)` | optional | Accept a cached result up to this old (1d, 3d, 7d, 14d or 30d) and pay nothing for it. Omit for a live scrape. Allowed values: `1d`, `3d`, `7d`, `14d`, `30d`. |
**cURL**
```bash
curl "https://hproxy.com/api/v1/scrape/youtube/video?url=https://www.youtube.com/watch?v=dQw4w9WgXcQ" \
-H "X-API-Key: hpx_your_key_here"
```
**Response**
```json
{
"platform": "youtube",
"scraper": "youtube-video",
"input": { "url": "https://www.youtube.com/watch?v=dQw4w9WgXcQ" },
"data": { /* the YouTube payload, as structured JSON */ },
"records": 1,
"costUsd": 0.0015,
"walletDebitUsd": 0,
"requestId": "c4389b749c07d44209e4fb301",
"elapsedMs": 812
}
```
#### GET /api/v1/scrape/youtube/transcript
**YouTube Video Transcript.** Returns structured JSON for **YouTube Video Transcript**. Billed **$0.0015 per successful call** ($1.49 per 1,000); errors, timeouts and rate limits are never charged, while a lookup whose target does not exist is billed like a successful call because the platform was queried. `POST` with a JSON body works too.
| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `x-api-key` | `string (header)` | required | Your HProxy API key with the scrape scope. |
| `url` | `url (query)` | required | Target URL (profile, post or video). |
| `language` | `string (query)` | optional | Two-letter language code, e.g. en. |
| `cache_max_age` | `string (query)` | optional | Accept a cached result up to this old (1d, 3d, 7d, 14d or 30d) and pay nothing for it. Omit for a live scrape. Allowed values: `1d`, `3d`, `7d`, `14d`, `30d`. |
**cURL**
```bash
curl "https://hproxy.com/api/v1/scrape/youtube/transcript?url=https://www.youtube.com/watch?v=dQw4w9WgXcQ" \
-H "X-API-Key: hpx_your_key_here"
```
**Response**
```json
{
"platform": "youtube",
"scraper": "youtube-transcript",
"input": { "url": "https://www.youtube.com/watch?v=dQw4w9WgXcQ" },
"data": { /* the YouTube payload, as structured JSON */ },
"records": 1,
"costUsd": 0.0015,
"walletDebitUsd": 0,
"requestId": "c4389b749c07d44209e4fb301",
"elapsedMs": 812
}
```
#### GET /api/v1/scrape/youtube/search
**YouTube Search.** Returns structured JSON for **YouTube Search**. Billed **$0.0015 per successful call** ($1.49 per 1,000); errors, timeouts and rate limits are never charged, while a lookup whose target does not exist is billed like a successful call because the platform was queried. `POST` with a JSON body works too.
| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `x-api-key` | `string (header)` | required | Your HProxy API key with the scrape scope. |
| `query` | `string (query)` | required | Search term or keyword. |
| `uploadDate` | `string (query)` | optional | Filter by date, as YYYY-MM-DD. Allowed values: `today`, `this_week`, `this_month`, `this_year`. |
| `sortBy` | `string (query)` | optional | Ordering to apply to the results. Allowed values: `relevance`, `popular`. |
| `type` | `string (query)` | optional | The type parameter. Allowed values: `videos`, `shorts`, `channels`, `playlists`. |
| `duration` | `string (query)` | optional | The duration parameter. Allowed values: `under_3_min`, `between_3_and_20_min`, `over_20_min`. |
| `region` | `string (query)` | optional | Two-letter region/country code, e.g. US. |
| `continuationToken` | `string (query)` | optional | Pagination token from the previous response. |
| `includeExtras` | `boolean (query)` | optional | Optional flag (true or false). |
**cURL**
```bash
curl "https://hproxy.com/api/v1/scrape/youtube/search?query=coffee" \
-H "X-API-Key: hpx_your_key_here"
```
**Response**
```json
{
"platform": "youtube",
"scraper": "youtube-search",
"input": { "query": "coffee" },
"data": { /* the YouTube payload, as structured JSON */ },
"records": 1,
"costUsd": 0.0015,
"walletDebitUsd": 0,
"requestId": "c4389b749c07d44209e4fb301",
"elapsedMs": 812
}
```
#### GET /api/v1/scrape/youtube/comments
**YouTube Video Comments.** Returns structured JSON for **YouTube Video Comments**. Billed **$0.0015 per successful call** ($1.49 per 1,000); errors, timeouts and rate limits are never charged, while a lookup whose target does not exist is billed like a successful call because the platform was queried. `POST` with a JSON body works too.
| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `x-api-key` | `string (header)` | required | Your HProxy API key with the scrape scope. |
| `url` | `url (query)` | required | Target URL (profile, post or video). |
| `continuationToken` | `string (query)` | optional | Pagination token from the previous response. |
| `order` | `string (query)` | optional | The order parameter. Allowed values: `top`, `newest`. |
**cURL**
```bash
curl "https://hproxy.com/api/v1/scrape/youtube/comments?url=https://www.youtube.com/watch?v=dQw4w9WgXcQ" \
-H "X-API-Key: hpx_your_key_here"
```
**Response**
```json
{
"platform": "youtube",
"scraper": "youtube-comments",
"input": { "url": "https://www.youtube.com/watch?v=dQw4w9WgXcQ" },
"data": { /* the YouTube payload, as structured JSON */ },
"records": 1,
"costUsd": 0.0015,
"walletDebitUsd": 0,
"requestId": "c4389b749c07d44209e4fb301",
"elapsedMs": 812
}
```
#### GET /api/v1/scrape/youtube/trending-shorts
**YouTube Trending Shorts.** Returns structured JSON for **YouTube Trending Shorts**. Billed **$0.0015 per successful call** ($1.49 per 1,000); errors, timeouts and rate limits are never charged, while a lookup whose target does not exist is billed like a successful call because the platform was queried. `POST` with a JSON body works too.
| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `x-api-key` | `string (header)` | required | Your HProxy API key with the scrape scope. |
**cURL**
```bash
curl "https://hproxy.com/api/v1/scrape/youtube/trending-shorts" \
-H "X-API-Key: hpx_your_key_here"
```
**Response**
```json
{
"platform": "youtube",
"scraper": "youtube-trending-shorts",
"input": { },
"data": { /* the YouTube payload, as structured JSON */ },
"records": 1,
"costUsd": 0.0015,
"walletDebitUsd": 0,
"requestId": "c4389b749c07d44209e4fb301",
"elapsedMs": 812
}
```
#### GET /api/v1/scrape/youtube/search-hashtag
**YouTube Hashtag Search.** Returns structured JSON for **YouTube Hashtag Search**. Billed **$0.0015 per successful call** ($1.49 per 1,000); errors, timeouts and rate limits are never charged, while a lookup whose target does not exist is billed like a successful call because the platform was queried. `POST` with a JSON body works too.
| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `x-api-key` | `string (header)` | required | Your HProxy API key with the scrape scope. |
| `hashtag` | `string (query)` | required | Hashtag to look up, without the # sign. |
| `continuationToken` | `string (query)` | optional | Pagination token from the previous response. |
| `type` | `string (query)` | optional | The type parameter. Allowed values: `all`, `shorts`. |
**cURL**
```bash
curl "https://hproxy.com/api/v1/scrape/youtube/search-hashtag?hashtag=travel" \
-H "X-API-Key: hpx_your_key_here"
```
**Response**
```json
{
"platform": "youtube",
"scraper": "youtube-search-hashtag",
"input": { "hashtag": "travel" },
"data": { /* the YouTube payload, as structured JSON */ },
"records": 1,
"costUsd": 0.0015,
"walletDebitUsd": 0,
"requestId": "c4389b749c07d44209e4fb301",
"elapsedMs": 812
}
```
#### GET /api/v1/scrape/youtube/comment-replies
**YouTube Comment Replies.** Returns structured JSON for **YouTube Comment Replies**. Billed **$0.0015 per successful call** ($1.49 per 1,000); errors, timeouts and rate limits are never charged, while a lookup whose target does not exist is billed like a successful call because the platform was queried. `POST` with a JSON body works too.
| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `x-api-key` | `string (header)` | required | Your HProxy API key with the scrape scope. |
| `continuationToken` | `string (query)` | required | Pagination token from the previous response. |
**cURL**
```bash
curl "https://hproxy.com/api/v1/scrape/youtube/comment-replies?continuationToken=value" \
-H "X-API-Key: hpx_your_key_here"
```
**Response**
```json
{
"platform": "youtube",
"scraper": "youtube-comment-replies",
"input": { "continuationToken": "value" },
"data": { /* the YouTube payload, as structured JSON */ },
"records": 1,
"costUsd": 0.0015,
"walletDebitUsd": 0,
"requestId": "c4389b749c07d44209e4fb301",
"elapsedMs": 812
}
```
#### GET /api/v1/scrape/youtube/playlist
**YouTube Playlist.** Returns structured JSON for **YouTube Playlist**. Billed **$0.0015 per successful call** ($1.49 per 1,000); errors, timeouts and rate limits are never charged, while a lookup whose target does not exist is billed like a successful call because the platform was queried. `POST` with a JSON body works too.
| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `x-api-key` | `string (header)` | required | Your HProxy API key with the scrape scope. |
| `playlist_id` | `string (query)` | required | Identifier from a previous response. |
**cURL**
```bash
curl "https://hproxy.com/api/v1/scrape/youtube/playlist?playlist_id=1234567890" \
-H "X-API-Key: hpx_your_key_here"
```
**Response**
```json
{
"platform": "youtube",
"scraper": "youtube-playlist",
"input": { "playlist_id": "1234567890" },
"data": { /* the YouTube payload, as structured JSON */ },
"records": 1,
"costUsd": 0.0015,
"walletDebitUsd": 0,
"requestId": "c4389b749c07d44209e4fb301",
"elapsedMs": 812
}
```
#### GET /api/v1/scrape/youtube/community-post
**YouTube Community Post.** Returns structured JSON for **YouTube Community Post**. Billed **$0.0015 per successful call** ($1.49 per 1,000); errors, timeouts and rate limits are never charged, while a lookup whose target does not exist is billed like a successful call because the platform was queried. `POST` with a JSON body works too.
| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `x-api-key` | `string (header)` | required | Your HProxy API key with the scrape scope. |
| `url` | `url (query)` | required | Target URL (profile, post or video). |
| `trim` | `boolean (query)` | optional | Return a slimmed-down payload (drops verbose fields). |
**cURL**
```bash
curl "https://hproxy.com/api/v1/scrape/youtube/community-post?url=https://www.youtube.com/watch?v=dQw4w9WgXcQ" \
-H "X-API-Key: hpx_your_key_here"
```
**Response**
```json
{
"platform": "youtube",
"scraper": "youtube-community-post",
"input": { "url": "https://www.youtube.com/watch?v=dQw4w9WgXcQ" },
"data": { /* the YouTube payload, as structured JSON */ },
"records": 1,
"costUsd": 0.0015,
"walletDebitUsd": 0,
"requestId": "c4389b749c07d44209e4fb301",
"elapsedMs": 812
}
```
## Twitter / X scraper API
*Every Twitter / X scraper endpoint: 6 actions returning structured JSON from $0.0015 per call. No proxies, no captchas, no infrastructure.*
URL: https://hproxy.com/docs/scrapers/twitter
All 6 Twitter / X endpoints, from **$0.0015 per call**. Each is callable as `GET https://hproxy.com/api/v1/scrape/twitter/{action}` (or `POST` with a JSON body) using a key with the `scrape` scope. No proxies, captchas or parsing to manage, it is all included in the price, and errors, timeouts and rate limits are never billed. See the [full catalog](https://hproxy.com/docs/scrapers/catalog) for every platform, or the [Twitter / X landing page](https://hproxy.com/scrapers/twitter) for examples and use cases.
#### GET /api/v1/scrape/twitter/tweets
**Twitter User Tweets.** Returns structured JSON for **Twitter User Tweets**. Billed **$0.0015 per successful call** ($1.49 per 1,000); errors, timeouts and rate limits are never charged, while a lookup whose target does not exist is billed like a successful call because the platform was queried. `POST` with a JSON body works too.
| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `x-api-key` | `string (header)` | required | Your HProxy API key with the scrape scope. |
| `handle` | `string (query)` | required | Account handle or @username. |
| `trim` | `boolean (query)` | optional | Return a slimmed-down payload (drops verbose fields). |
**cURL**
```bash
curl "https://hproxy.com/api/v1/scrape/twitter/tweets?handle=nasa" \
-H "X-API-Key: hpx_your_key_here"
```
**Response**
```json
{
"platform": "twitter",
"scraper": "twitter-tweets",
"input": { "handle": "nasa" },
"data": { /* the Twitter / X payload, as structured JSON */ },
"records": 1,
"costUsd": 0.0015,
"walletDebitUsd": 0,
"requestId": "c4389b749c07d44209e4fb301",
"elapsedMs": 812
}
```
#### GET /api/v1/scrape/twitter/profile
**Twitter / X Profile.** Returns structured JSON for **Twitter / X Profile**. Billed **$0.0015 per successful call** ($1.49 per 1,000); errors, timeouts and rate limits are never charged, while a lookup whose target does not exist is billed like a successful call because the platform was queried. `POST` with a JSON body works too.
| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `x-api-key` | `string (header)` | required | Your HProxy API key with the scrape scope. |
| `handle` | `string (query)` | required | Account handle or @username. |
| `trim` | `boolean (query)` | optional | Return a slimmed-down payload (drops verbose fields). |
| `cache_max_age` | `string (query)` | optional | Accept a cached result up to this old (1d, 3d, 7d, 14d or 30d) and pay nothing for it. Omit for a live scrape. Allowed values: `1d`, `3d`, `7d`, `14d`, `30d`. |
**cURL**
```bash
curl "https://hproxy.com/api/v1/scrape/twitter/profile?handle=nasa" \
-H "X-API-Key: hpx_your_key_here"
```
**Response**
```json
{
"platform": "twitter",
"scraper": "twitter-profile",
"input": { "handle": "nasa" },
"data": { /* the Twitter / X payload, as structured JSON */ },
"records": 1,
"costUsd": 0.0015,
"walletDebitUsd": 0,
"requestId": "c4389b749c07d44209e4fb301",
"elapsedMs": 812
}
```
#### GET /api/v1/scrape/twitter/tweet
**Twitter / X Tweet.** Returns structured JSON for **Twitter / X Tweet**. Billed **$0.0015 per successful call** ($1.49 per 1,000); errors, timeouts and rate limits are never charged, while a lookup whose target does not exist is billed like a successful call because the platform was queried. `POST` with a JSON body works too.
| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `x-api-key` | `string (header)` | required | Your HProxy API key with the scrape scope. |
| `url` | `url (query)` | required | Target URL (profile, post or video). |
| `trim` | `boolean (query)` | optional | Return a slimmed-down payload (drops verbose fields). |
| `cache_max_age` | `string (query)` | optional | Accept a cached result up to this old (1d, 3d, 7d, 14d or 30d) and pay nothing for it. Omit for a live scrape. Allowed values: `1d`, `3d`, `7d`, `14d`, `30d`. |
**cURL**
```bash
curl "https://hproxy.com/api/v1/scrape/twitter/tweet?url=https://twitter.com/nasa/status/1745510925348782269" \
-H "X-API-Key: hpx_your_key_here"
```
**Response**
```json
{
"platform": "twitter",
"scraper": "twitter-tweet",
"input": { "url": "https://twitter.com/nasa/status/1745510925348782269" },
"data": { /* the Twitter / X payload, as structured JSON */ },
"records": 1,
"costUsd": 0.0015,
"walletDebitUsd": 0,
"requestId": "c4389b749c07d44209e4fb301",
"elapsedMs": 812
}
```
#### GET /api/v1/scrape/twitter/tweet-transcript
**Twitter / X Tweet Transcript.** Returns structured JSON for **Twitter / X Tweet Transcript**. Billed **$0.0015 per successful call** ($1.49 per 1,000); errors, timeouts and rate limits are never charged, while a lookup whose target does not exist is billed like a successful call because the platform was queried. `POST` with a JSON body works too.
| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `x-api-key` | `string (header)` | required | Your HProxy API key with the scrape scope. |
| `url` | `url (query)` | required | Target URL (profile, post or video). |
| `trim` | `boolean (query)` | optional | Return a slimmed-down payload (drops verbose fields). |
| `cache_max_age` | `string (query)` | optional | Accept a cached result up to this old (1d, 3d, 7d, 14d or 30d) and pay nothing for it. Omit for a live scrape. Allowed values: `1d`, `3d`, `7d`, `14d`, `30d`. |
**cURL**
```bash
curl "https://hproxy.com/api/v1/scrape/twitter/tweet-transcript?url=https://twitter.com/nasa/status/1745510925348782269" \
-H "X-API-Key: hpx_your_key_here"
```
**Response**
```json
{
"platform": "twitter",
"scraper": "twitter-tweet-transcript",
"input": { "url": "https://twitter.com/nasa/status/1745510925348782269" },
"data": { /* the Twitter / X payload, as structured JSON */ },
"records": 1,
"costUsd": 0.0015,
"walletDebitUsd": 0,
"requestId": "c4389b749c07d44209e4fb301",
"elapsedMs": 812
}
```
#### GET /api/v1/scrape/twitter/community
**Twitter / X Community.** Returns structured JSON for **Twitter / X Community**. Billed **$0.0015 per successful call** ($1.49 per 1,000); errors, timeouts and rate limits are never charged, while a lookup whose target does not exist is billed like a successful call because the platform was queried. `POST` with a JSON body works too.
| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `x-api-key` | `string (header)` | required | Your HProxy API key with the scrape scope. |
| `url` | `url (query)` | required | Target URL (profile, post or video). |
| `trim` | `boolean (query)` | optional | Return a slimmed-down payload (drops verbose fields). |
**cURL**
```bash
curl "https://hproxy.com/api/v1/scrape/twitter/community?url=https://twitter.com/nasa/status/1745510925348782269" \
-H "X-API-Key: hpx_your_key_here"
```
**Response**
```json
{
"platform": "twitter",
"scraper": "twitter-community",
"input": { "url": "https://twitter.com/nasa/status/1745510925348782269" },
"data": { /* the Twitter / X payload, as structured JSON */ },
"records": 1,
"costUsd": 0.0015,
"walletDebitUsd": 0,
"requestId": "c4389b749c07d44209e4fb301",
"elapsedMs": 812
}
```
#### GET /api/v1/scrape/twitter/community-tweets
**Twitter / X Community Tweets.** Returns structured JSON for **Twitter / X Community Tweets**. Billed **$0.0015 per successful call** ($1.49 per 1,000); errors, timeouts and rate limits are never charged, while a lookup whose target does not exist is billed like a successful call because the platform was queried. `POST` with a JSON body works too.
| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `x-api-key` | `string (header)` | required | Your HProxy API key with the scrape scope. |
| `url` | `url (query)` | required | Target URL (profile, post or video). |
| `trim` | `boolean (query)` | optional | Return a slimmed-down payload (drops verbose fields). |
**cURL**
```bash
curl "https://hproxy.com/api/v1/scrape/twitter/community-tweets?url=https://twitter.com/nasa/status/1745510925348782269" \
-H "X-API-Key: hpx_your_key_here"
```
**Response**
```json
{
"platform": "twitter",
"scraper": "twitter-community-tweets",
"input": { "url": "https://twitter.com/nasa/status/1745510925348782269" },
"data": { /* the Twitter / X payload, as structured JSON */ },
"records": 1,
"costUsd": 0.0015,
"walletDebitUsd": 0,
"requestId": "c4389b749c07d44209e4fb301",
"elapsedMs": 812
}
```
## LinkedIn scraper API
*Every LinkedIn scraper endpoint: 6 actions returning structured JSON from $0.0015 per call. No proxies, no captchas, no infrastructure.*
URL: https://hproxy.com/docs/scrapers/linkedin
All 6 LinkedIn endpoints, from **$0.0015 per call**. Each is callable as `GET https://hproxy.com/api/v1/scrape/linkedin/{action}` (or `POST` with a JSON body) using a key with the `scrape` scope. No proxies, captchas or parsing to manage, it is all included in the price, and errors, timeouts and rate limits are never billed. See the [full catalog](https://hproxy.com/docs/scrapers/catalog) for every platform, or the [LinkedIn landing page](https://hproxy.com/scrapers/linkedin) for examples and use cases.
#### GET /api/v1/scrape/linkedin/profile
**LinkedIn Profile.** Returns structured JSON for **LinkedIn Profile**. Billed **$0.0015 per successful call** ($1.49 per 1,000); errors, timeouts and rate limits are never charged, while a lookup whose target does not exist is billed like a successful call because the platform was queried. `POST` with a JSON body works too.
| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `x-api-key` | `string (header)` | required | Your HProxy API key with the scrape scope. |
| `url` | `url (query)` | required | Target URL (profile, post or video). |
| `trim` | `boolean (query)` | optional | Return a slimmed-down payload (drops verbose fields). |
**cURL**
```bash
curl "https://hproxy.com/api/v1/scrape/linkedin/profile?url=https://www.linkedin.com/company/google/" \
-H "X-API-Key: hpx_your_key_here"
```
**Response**
```json
{
"platform": "linkedin",
"scraper": "linkedin-profile",
"input": { "url": "https://www.linkedin.com/company/google/" },
"data": { /* the LinkedIn payload, as structured JSON */ },
"records": 1,
"costUsd": 0.0015,
"walletDebitUsd": 0,
"requestId": "c4389b749c07d44209e4fb301",
"elapsedMs": 812
}
```
#### GET /api/v1/scrape/linkedin/company
**LinkedIn Company.** Returns structured JSON for **LinkedIn Company**. Billed **$0.0015 per successful call** ($1.49 per 1,000); errors, timeouts and rate limits are never charged, while a lookup whose target does not exist is billed like a successful call because the platform was queried. `POST` with a JSON body works too.
| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `x-api-key` | `string (header)` | required | Your HProxy API key with the scrape scope. |
| `url` | `url (query)` | required | Target URL (profile, post or video). |
| `trim` | `boolean (query)` | optional | Return a slimmed-down payload (drops verbose fields). |
**cURL**
```bash
curl "https://hproxy.com/api/v1/scrape/linkedin/company?url=https://www.linkedin.com/company/google/" \
-H "X-API-Key: hpx_your_key_here"
```
**Response**
```json
{
"platform": "linkedin",
"scraper": "linkedin-company",
"input": { "url": "https://www.linkedin.com/company/google/" },
"data": { /* the LinkedIn payload, as structured JSON */ },
"records": 1,
"costUsd": 0.0015,
"walletDebitUsd": 0,
"requestId": "c4389b749c07d44209e4fb301",
"elapsedMs": 812
}
```
#### GET /api/v1/scrape/linkedin/company-posts
**LinkedIn Company Posts.** Returns structured JSON for **LinkedIn Company Posts**. Billed **$0.0015 per successful call** ($1.49 per 1,000); errors, timeouts and rate limits are never charged, while a lookup whose target does not exist is billed like a successful call because the platform was queried. `POST` with a JSON body works too.
| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `x-api-key` | `string (header)` | required | Your HProxy API key with the scrape scope. |
| `url` | `url (query)` | required | Target URL (profile, post or video). |
| `page` | `integer (query)` | optional | Pagination token from the previous response. |
**cURL**
```bash
curl "https://hproxy.com/api/v1/scrape/linkedin/company-posts?url=https://www.linkedin.com/company/google/" \
-H "X-API-Key: hpx_your_key_here"
```
**Response**
```json
{
"platform": "linkedin",
"scraper": "linkedin-company-posts",
"input": { "url": "https://www.linkedin.com/company/google/" },
"data": { /* the LinkedIn payload, as structured JSON */ },
"records": 1,
"costUsd": 0.0015,
"walletDebitUsd": 0,
"requestId": "c4389b749c07d44209e4fb301",
"elapsedMs": 812
}
```
#### GET /api/v1/scrape/linkedin/post
**LinkedIn Post.** Returns structured JSON for **LinkedIn Post**. Billed **$0.0015 per successful call** ($1.49 per 1,000); errors, timeouts and rate limits are never charged, while a lookup whose target does not exist is billed like a successful call because the platform was queried. `POST` with a JSON body works too.
| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `x-api-key` | `string (header)` | required | Your HProxy API key with the scrape scope. |
| `url` | `url (query)` | required | Target URL (profile, post or video). |
| `trim` | `boolean (query)` | optional | Return a slimmed-down payload (drops verbose fields). |
**cURL**
```bash
curl "https://hproxy.com/api/v1/scrape/linkedin/post?url=https://www.linkedin.com/company/google/" \
-H "X-API-Key: hpx_your_key_here"
```
**Response**
```json
{
"platform": "linkedin",
"scraper": "linkedin-post",
"input": { "url": "https://www.linkedin.com/company/google/" },
"data": { /* the LinkedIn payload, as structured JSON */ },
"records": 1,
"costUsd": 0.0015,
"walletDebitUsd": 0,
"requestId": "c4389b749c07d44209e4fb301",
"elapsedMs": 812
}
```
#### GET /api/v1/scrape/linkedin/ad-search
**LinkedIn Ad Library Search.** Returns structured JSON for **LinkedIn Ad Library Search**. Billed **$0.0015 per successful call** ($1.49 per 1,000); errors, timeouts and rate limits are never charged, while a lookup whose target does not exist is billed like a successful call because the platform was queried. `POST` with a JSON body works too.
| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `x-api-key` | `string (header)` | required | Your HProxy API key with the scrape scope. |
| `company` | `string (query)` | required | The company parameter. Send this **or** `keyword` or `companyId`. |
| `keyword` | `string (query)` | required | The keyword parameter. Send this **or** `company` or `companyId`. |
| `companyId` | `string (query)` | required | Identifier from a previous response. Send this **or** `company` or `keyword`. |
| `countries` | `string (query)` | optional | Numeric filter applied to the results. |
| `startDate` | `string (query)` | optional | Filter by date, as YYYY-MM-DD. |
| `endDate` | `string (query)` | optional | Filter by date, as YYYY-MM-DD. |
| `paginationToken` | `string (query)` | optional | The paginationToken parameter. |
**cURL**
```bash
curl "https://hproxy.com/api/v1/scrape/linkedin/ad-search?company=value" \
-H "X-API-Key: hpx_your_key_here"
```
**Response**
```json
{
"platform": "linkedin",
"scraper": "linkedin-ad-search",
"input": { },
"data": { /* the LinkedIn payload, as structured JSON */ },
"records": 1,
"costUsd": 0.0015,
"walletDebitUsd": 0,
"requestId": "c4389b749c07d44209e4fb301",
"elapsedMs": 812
}
```
#### GET /api/v1/scrape/linkedin/ad
**LinkedIn Ad Detail.** Returns structured JSON for **LinkedIn Ad Detail**. Billed **$0.0015 per successful call** ($1.49 per 1,000); errors, timeouts and rate limits are never charged, while a lookup whose target does not exist is billed like a successful call because the platform was queried. `POST` with a JSON body works too.
| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `x-api-key` | `string (header)` | required | Your HProxy API key with the scrape scope. |
| `url` | `url (query)` | required | Target URL (profile, post or video). |
| `trim` | `boolean (query)` | optional | Return a slimmed-down payload (drops verbose fields). |
**cURL**
```bash
curl "https://hproxy.com/api/v1/scrape/linkedin/ad?url=https://www.linkedin.com/company/google/" \
-H "X-API-Key: hpx_your_key_here"
```
**Response**
```json
{
"platform": "linkedin",
"scraper": "linkedin-ad",
"input": { "url": "https://www.linkedin.com/company/google/" },
"data": { /* the LinkedIn payload, as structured JSON */ },
"records": 1,
"costUsd": 0.0015,
"walletDebitUsd": 0,
"requestId": "c4389b749c07d44209e4fb301",
"elapsedMs": 812
}
```
## Google scraper API
*Every Google scraper endpoint: 4 actions returning structured JSON from $0.0015 per call. No proxies, no captchas, no infrastructure.*
URL: https://hproxy.com/docs/scrapers/google
All 4 Google endpoints, from **$0.0015 per call**. Each is callable as `GET https://hproxy.com/api/v1/scrape/google/{action}` (or `POST` with a JSON body) using a key with the `scrape` scope. No proxies, captchas or parsing to manage, it is all included in the price, and errors, timeouts and rate limits are never billed. See the [full catalog](https://hproxy.com/docs/scrapers/catalog) for every platform, or the [Google landing page](https://hproxy.com/scrapers/google) for examples and use cases.
#### GET /api/v1/scrape/google/search
**Google Search Results.** Returns structured JSON for **Google Search Results**. Billed **$0.0015 per successful call** ($1.49 per 1,000); errors, timeouts and rate limits are never charged, while a lookup whose target does not exist is billed like a successful call because the platform was queried. `POST` with a JSON body works too.
| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `x-api-key` | `string (header)` | required | Your HProxy API key with the scrape scope. |
| `query` | `string (query)` | required | Search term or keyword. |
| `region` | `string (query)` | optional | Two-letter region/country code, e.g. US. |
| `date_posted` | `string (query)` | optional | Filter by date, as YYYY-MM-DD. Allowed values: `last-hour`, `last-day`, `last-week`, `last-month`, `last-year`. |
| `page` | `integer (query)` | optional | Pagination token from the previous response. |
**cURL**
```bash
curl "https://hproxy.com/api/v1/scrape/google/search?query=coffee" \
-H "X-API-Key: hpx_your_key_here"
```
**Response**
```json
{
"platform": "google",
"scraper": "google-search",
"input": { "query": "coffee" },
"data": { /* the Google payload, as structured JSON */ },
"records": 1,
"costUsd": 0.0015,
"walletDebitUsd": 0,
"requestId": "c4389b749c07d44209e4fb301",
"elapsedMs": 812
}
```
#### GET /api/v1/scrape/google/ad-company
**Google Ad Library Company Ads.** Returns structured JSON for **Google Ad Library Company Ads**. Billed **$0.0372 per successful call** ($37.25 per 1,000); errors, timeouts and rate limits are never charged, while a lookup whose target does not exist is billed like a successful call because the platform was queried. `POST` with a JSON body works too.
| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `x-api-key` | `string (header)` | required | Your HProxy API key with the scrape scope. |
| `domain` | `string (query)` | required | The domain parameter. Send this **or** `advertiser_id`. |
| `advertiser_id` | `string (query)` | required | Identifier from a previous response. Send this **or** `domain`. |
| `topic` | `string (query)` | optional | The topic parameter. Allowed values: `all`, `political`. |
| `region` | `string (query)` | optional | Two-letter region/country code, e.g. US. |
| `start_date` | `string (query)` | optional | Filter by date, as YYYY-MM-DD. |
| `end_date` | `string (query)` | optional | Filter by date, as YYYY-MM-DD. |
| `platform` | `string (query)` | optional | The platform parameter. Allowed values: `google_maps`, `google_play`, `google_search`, `google_shopping`, `youtube`. |
| `format` | `string (query)` | optional | The format parameter. Allowed values: `text`, `image`, `video`. |
| `get_ad_details` | `boolean (query)` | optional | Also include ad details in the response. |
| `cursor` | `string (query)` | optional | Pagination token from the previous response. |
**cURL**
```bash
curl "https://hproxy.com/api/v1/scrape/google/ad-company?domain=value" \
-H "X-API-Key: hpx_your_key_here"
```
**Response**
```json
{
"platform": "google",
"scraper": "google-ad-company",
"input": { },
"data": { /* the Google payload, as structured JSON */ },
"records": 1,
"costUsd": 0.0372,
"walletDebitUsd": 0,
"requestId": "c4389b749c07d44209e4fb301",
"elapsedMs": 812
}
```
#### GET /api/v1/scrape/google/ad
**Google Ad Detail.** Returns structured JSON for **Google Ad Detail**. Billed **$0.0015 per successful call** ($1.49 per 1,000); errors, timeouts and rate limits are never charged, while a lookup whose target does not exist is billed like a successful call because the platform was queried. `POST` with a JSON body works too.
| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `x-api-key` | `string (header)` | required | Your HProxy API key with the scrape scope. |
| `url` | `url (query)` | required | Target URL (profile, post or video). |
| `trim` | `boolean (query)` | optional | Return a slimmed-down payload (drops verbose fields). |
| `cache_max_age` | `string (query)` | optional | Accept a cached result up to this old (1d, 3d, 7d, 14d or 30d) and pay nothing for it. Omit for a live scrape. Allowed values: `1d`, `3d`, `7d`, `14d`, `30d`. |
**cURL**
```bash
curl "https://hproxy.com/api/v1/scrape/google/ad?url=https://adstransparency.google.com/advertiser/AR01" \
-H "X-API-Key: hpx_your_key_here"
```
**Response**
```json
{
"platform": "google",
"scraper": "google-ad",
"input": { "url": "https://adstransparency.google.com/advertiser/AR01" },
"data": { /* the Google payload, as structured JSON */ },
"records": 1,
"costUsd": 0.0015,
"walletDebitUsd": 0,
"requestId": "c4389b749c07d44209e4fb301",
"elapsedMs": 812
}
```
#### GET /api/v1/scrape/google/advertiser-search
**Google Advertiser Search.** Returns structured JSON for **Google Advertiser Search**. Billed **$0.0015 per successful call** ($1.49 per 1,000); errors, timeouts and rate limits are never charged, while a lookup whose target does not exist is billed like a successful call because the platform was queried. `POST` with a JSON body works too.
| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `x-api-key` | `string (header)` | required | Your HProxy API key with the scrape scope. |
| `query` | `string (query)` | required | Search term or keyword. |
| `cursor` | `string (query)` | optional | Pagination token from the previous response. |
| `region` | `string (query)` | optional | Two-letter region/country code, e.g. US. |
| `trim` | `boolean (query)` | optional | Return a slimmed-down payload (drops verbose fields). |
**cURL**
```bash
curl "https://hproxy.com/api/v1/scrape/google/advertiser-search?query=coffee" \
-H "X-API-Key: hpx_your_key_here"
```
**Response**
```json
{
"platform": "google",
"scraper": "google-advertiser-search",
"input": { "query": "coffee" },
"data": { /* the Google payload, as structured JSON */ },
"records": 1,
"costUsd": 0.0015,
"walletDebitUsd": 0,
"requestId": "c4389b749c07d44209e4fb301",
"elapsedMs": 812
}
```
## Facebook scraper API
*Every Facebook scraper endpoint: 17 actions returning structured JSON from $0.0015 per call. No proxies, no captchas, no infrastructure.*
URL: https://hproxy.com/docs/scrapers/facebook
All 17 Facebook endpoints, from **$0.0015 per call**. Each is callable as `GET https://hproxy.com/api/v1/scrape/facebook/{action}` (or `POST` with a JSON body) using a key with the `scrape` scope. No proxies, captchas or parsing to manage, it is all included in the price, and errors, timeouts and rate limits are never billed. See the [full catalog](https://hproxy.com/docs/scrapers/catalog) for every platform, or the [Facebook landing page](https://hproxy.com/scrapers/facebook) for examples and use cases.
#### GET /api/v1/scrape/facebook/profile
**Facebook Profile.** Returns structured JSON for **Facebook Profile**. Billed **$0.0015 per successful call** ($1.49 per 1,000); errors, timeouts and rate limits are never charged, while a lookup whose target does not exist is billed like a successful call because the platform was queried. `POST` with a JSON body works too.
| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `x-api-key` | `string (header)` | required | Your HProxy API key with the scrape scope. |
| `url` | `url (query)` | required | Target URL (profile, post or video). |
| `get_business_hours` | `boolean (query)` | optional | Also include business hours in the response. |
| `include_gated_profile` | `boolean (query)` | optional | Optional flag (true or false). |
| `cache_max_age` | `string (query)` | optional | Accept a cached result up to this old (1d, 3d, 7d, 14d or 30d) and pay nothing for it. Omit for a live scrape. Allowed values: `1d`, `3d`, `7d`, `14d`, `30d`. |
**cURL**
```bash
curl "https://hproxy.com/api/v1/scrape/facebook/profile?url=https://www.facebook.com/nasa" \
-H "X-API-Key: hpx_your_key_here"
```
**Response**
```json
{
"platform": "facebook",
"scraper": "facebook-profile",
"input": { "url": "https://www.facebook.com/nasa" },
"data": { /* the Facebook payload, as structured JSON */ },
"records": 1,
"costUsd": 0.0015,
"walletDebitUsd": 0,
"requestId": "c4389b749c07d44209e4fb301",
"elapsedMs": 812
}
```
#### GET /api/v1/scrape/facebook/profile-reels
**Facebook Profile Reels.** Returns structured JSON for **Facebook Profile Reels**. Billed **$0.0015 per successful call** ($1.49 per 1,000); errors, timeouts and rate limits are never charged, while a lookup whose target does not exist is billed like a successful call because the platform was queried. `POST` with a JSON body works too.
| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `x-api-key` | `string (header)` | required | Your HProxy API key with the scrape scope. |
| `url` | `url (query)` | required | Target URL (profile, post or video). |
| `next_page_id` | `string (query)` | optional | Pagination token from the previous response. |
| `cursor` | `string (query)` | optional | Pagination token from the previous response. |
**cURL**
```bash
curl "https://hproxy.com/api/v1/scrape/facebook/profile-reels?url=https://www.facebook.com/nasa" \
-H "X-API-Key: hpx_your_key_here"
```
**Response**
```json
{
"platform": "facebook",
"scraper": "facebook-profile-reels",
"input": { "url": "https://www.facebook.com/nasa" },
"data": { /* the Facebook payload, as structured JSON */ },
"records": 1,
"costUsd": 0.0015,
"walletDebitUsd": 0,
"requestId": "c4389b749c07d44209e4fb301",
"elapsedMs": 812
}
```
#### GET /api/v1/scrape/facebook/profile-photos
**Facebook Profile Photos.** Returns structured JSON for **Facebook Profile Photos**. Billed **$0.0015 per successful call** ($1.49 per 1,000); errors, timeouts and rate limits are never charged, while a lookup whose target does not exist is billed like a successful call because the platform was queried. `POST` with a JSON body works too.
| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `x-api-key` | `string (header)` | required | Your HProxy API key with the scrape scope. |
| `url` | `url (query)` | required | Target URL (profile, post or video). |
| `next_page_id` | `string (query)` | optional | Pagination token from the previous response. |
| `cursor` | `string (query)` | optional | Pagination token from the previous response. |
**cURL**
```bash
curl "https://hproxy.com/api/v1/scrape/facebook/profile-photos?url=https://www.facebook.com/nasa" \
-H "X-API-Key: hpx_your_key_here"
```
**Response**
```json
{
"platform": "facebook",
"scraper": "facebook-profile-photos",
"input": { "url": "https://www.facebook.com/nasa" },
"data": { /* the Facebook payload, as structured JSON */ },
"records": 1,
"costUsd": 0.0015,
"walletDebitUsd": 0,
"requestId": "c4389b749c07d44209e4fb301",
"elapsedMs": 812
}
```
#### GET /api/v1/scrape/facebook/profile-posts
**Facebook Profile Posts.** Returns structured JSON for **Facebook Profile Posts**. Billed **$0.0015 per successful call** ($1.49 per 1,000); errors, timeouts and rate limits are never charged, while a lookup whose target does not exist is billed like a successful call because the platform was queried. `POST` with a JSON body works too.
| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `x-api-key` | `string (header)` | required | Your HProxy API key with the scrape scope. |
| `url` | `url (query)` | required | Target URL (profile, post or video). Send this **or** `pageId`. |
| `pageId` | `string (query)` | required | Identifier from a previous response. Send this **or** `url`. |
| `cursor` | `string (query)` | optional | Pagination token from the previous response. |
**cURL**
```bash
curl "https://hproxy.com/api/v1/scrape/facebook/profile-posts?url=https://www.facebook.com/nasa" \
-H "X-API-Key: hpx_your_key_here"
```
**Response**
```json
{
"platform": "facebook",
"scraper": "facebook-profile-posts",
"input": { },
"data": { /* the Facebook payload, as structured JSON */ },
"records": 1,
"costUsd": 0.0015,
"walletDebitUsd": 0,
"requestId": "c4389b749c07d44209e4fb301",
"elapsedMs": 812
}
```
#### GET /api/v1/scrape/facebook/profile-events
**Facebook Profile Events.** Returns structured JSON for **Facebook Profile Events**. Billed **$0.0015 per successful call** ($1.49 per 1,000); errors, timeouts and rate limits are never charged, while a lookup whose target does not exist is billed like a successful call because the platform was queried. `POST` with a JSON body works too.
| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `x-api-key` | `string (header)` | required | Your HProxy API key with the scrape scope. |
| `url` | `url (query)` | required | Target URL (profile, post or video). |
| `cursor` | `string (query)` | optional | Pagination token from the previous response. |
**cURL**
```bash
curl "https://hproxy.com/api/v1/scrape/facebook/profile-events?url=https://www.facebook.com/nasa" \
-H "X-API-Key: hpx_your_key_here"
```
**Response**
```json
{
"platform": "facebook",
"scraper": "facebook-profile-events",
"input": { "url": "https://www.facebook.com/nasa" },
"data": { /* the Facebook payload, as structured JSON */ },
"records": 1,
"costUsd": 0.0015,
"walletDebitUsd": 0,
"requestId": "c4389b749c07d44209e4fb301",
"elapsedMs": 812
}
```
#### GET /api/v1/scrape/facebook/post
**Facebook Post.** Returns structured JSON for **Facebook Post**. Billed **$0.0015 per successful call** ($1.49 per 1,000); errors, timeouts and rate limits are never charged, while a lookup whose target does not exist is billed like a successful call because the platform was queried. `POST` with a JSON body works too.
| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `x-api-key` | `string (header)` | required | Your HProxy API key with the scrape scope. |
| `url` | `url (query)` | required | Target URL (profile, post or video). |
| `get_comments` | `boolean (query)` | optional | Also include comments in the response. |
| `get_transcript` | `boolean (query)` | optional | Also include transcript in the response. |
| `cache_max_age` | `string (query)` | optional | Accept a cached result up to this old (1d, 3d, 7d, 14d or 30d) and pay nothing for it. Omit for a live scrape. Allowed values: `1d`, `3d`, `7d`, `14d`, `30d`. |
**cURL**
```bash
curl "https://hproxy.com/api/v1/scrape/facebook/post?url=https://www.facebook.com/nasa" \
-H "X-API-Key: hpx_your_key_here"
```
**Response**
```json
{
"platform": "facebook",
"scraper": "facebook-post",
"input": { "url": "https://www.facebook.com/nasa" },
"data": { /* the Facebook payload, as structured JSON */ },
"records": 1,
"costUsd": 0.0015,
"walletDebitUsd": 0,
"requestId": "c4389b749c07d44209e4fb301",
"elapsedMs": 812
}
```
#### GET /api/v1/scrape/facebook/post-transcript
**Facebook Post Transcript.** Returns structured JSON for **Facebook Post Transcript**. Billed **$0.0015 per successful call** ($1.49 per 1,000); errors, timeouts and rate limits are never charged, while a lookup whose target does not exist is billed like a successful call because the platform was queried. `POST` with a JSON body works too.
| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `x-api-key` | `string (header)` | required | Your HProxy API key with the scrape scope. |
| `url` | `url (query)` | required | Target URL (profile, post or video). |
| `trim` | `boolean (query)` | optional | Return a slimmed-down payload (drops verbose fields). |
| `cache_max_age` | `string (query)` | optional | Accept a cached result up to this old (1d, 3d, 7d, 14d or 30d) and pay nothing for it. Omit for a live scrape. Allowed values: `1d`, `3d`, `7d`, `14d`, `30d`. |
**cURL**
```bash
curl "https://hproxy.com/api/v1/scrape/facebook/post-transcript?url=https://www.facebook.com/nasa" \
-H "X-API-Key: hpx_your_key_here"
```
**Response**
```json
{
"platform": "facebook",
"scraper": "facebook-post-transcript",
"input": { "url": "https://www.facebook.com/nasa" },
"data": { /* the Facebook payload, as structured JSON */ },
"records": 1,
"costUsd": 0.0015,
"walletDebitUsd": 0,
"requestId": "c4389b749c07d44209e4fb301",
"elapsedMs": 812
}
```
#### GET /api/v1/scrape/facebook/post-comments
**Facebook Post Comments.** Returns structured JSON for **Facebook Post Comments**. Billed **$0.0015 per successful call** ($1.49 per 1,000); errors, timeouts and rate limits are never charged, while a lookup whose target does not exist is billed like a successful call because the platform was queried. `POST` with a JSON body works too.
| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `x-api-key` | `string (header)` | required | Your HProxy API key with the scrape scope. |
| `url` | `url (query)` | required | Target URL (profile, post or video). Send this **or** `feedback_id`. |
| `feedback_id` | `string (query)` | required | Identifier from a previous response. Send this **or** `url`. |
| `cursor` | `string (query)` | optional | Pagination token from the previous response. |
**cURL**
```bash
curl "https://hproxy.com/api/v1/scrape/facebook/post-comments?url=https://www.facebook.com/nasa" \
-H "X-API-Key: hpx_your_key_here"
```
**Response**
```json
{
"platform": "facebook",
"scraper": "facebook-post-comments",
"input": { },
"data": { /* the Facebook payload, as structured JSON */ },
"records": 1,
"costUsd": 0.0015,
"walletDebitUsd": 0,
"requestId": "c4389b749c07d44209e4fb301",
"elapsedMs": 812
}
```
#### GET /api/v1/scrape/facebook/comment-replies
**Facebook Comment Replies.** Returns structured JSON for **Facebook Comment Replies**. Billed **$0.0015 per successful call** ($1.49 per 1,000); errors, timeouts and rate limits are never charged, while a lookup whose target does not exist is billed like a successful call because the platform was queried. `POST` with a JSON body works too.
| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `x-api-key` | `string (header)` | required | Your HProxy API key with the scrape scope. |
| `feedback_id` | `string (query)` | required | Identifier from a previous response. |
| `expansion_token` | `string (query)` | required | The expansion token parameter. |
| `cursor` | `string (query)` | optional | Pagination token from the previous response. |
**cURL**
```bash
curl "https://hproxy.com/api/v1/scrape/facebook/comment-replies?feedback_id=1234567890&expansion_token=value" \
-H "X-API-Key: hpx_your_key_here"
```
**Response**
```json
{
"platform": "facebook",
"scraper": "facebook-comment-replies",
"input": { "feedback_id": "1234567890", "expansion_token": "value" },
"data": { /* the Facebook payload, as structured JSON */ },
"records": 1,
"costUsd": 0.0015,
"walletDebitUsd": 0,
"requestId": "c4389b749c07d44209e4fb301",
"elapsedMs": 812
}
```
#### GET /api/v1/scrape/facebook/group-posts
**Facebook Group Posts.** Returns structured JSON for **Facebook Group Posts**. Billed **$0.0015 per successful call** ($1.49 per 1,000); errors, timeouts and rate limits are never charged, while a lookup whose target does not exist is billed like a successful call because the platform was queried. `POST` with a JSON body works too.
| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `x-api-key` | `string (header)` | required | Your HProxy API key with the scrape scope. |
| `url` | `url (query)` | required | Target URL (profile, post or video). Send this **or** `group_id`. |
| `group_id` | `string (query)` | required | Identifier from a previous response. Send this **or** `url`. |
| `sort_by` | `string (query)` | optional | Ordering to apply to the results. Allowed values: `TOP_POSTS`, `RECENT_ACTIVITY`, `CHRONOLOGICAL`, `CHRONOLOGICAL_LISTINGS`. |
| `cursor` | `string (query)` | optional | Pagination token from the previous response. |
**cURL**
```bash
curl "https://hproxy.com/api/v1/scrape/facebook/group-posts?url=https://www.facebook.com/nasa" \
-H "X-API-Key: hpx_your_key_here"
```
**Response**
```json
{
"platform": "facebook",
"scraper": "facebook-group-posts",
"input": { },
"data": { /* the Facebook payload, as structured JSON */ },
"records": 1,
"costUsd": 0.0015,
"walletDebitUsd": 0,
"requestId": "c4389b749c07d44209e4fb301",
"elapsedMs": 812
}
```
#### GET /api/v1/scrape/facebook/events-search
**Facebook Events Search.** Returns structured JSON for **Facebook Events Search**. Billed **$0.0015 per successful call** ($1.49 per 1,000); errors, timeouts and rate limits are never charged, while a lookup whose target does not exist is billed like a successful call because the platform was queried. `POST` with a JSON body works too.
| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `x-api-key` | `string (header)` | required | Your HProxy API key with the scrape scope. |
| `query` | `string (query)` | required | Search term or keyword. |
| `cursor` | `string (query)` | optional | Pagination token from the previous response. |
**cURL**
```bash
curl "https://hproxy.com/api/v1/scrape/facebook/events-search?query=coffee" \
-H "X-API-Key: hpx_your_key_here"
```
**Response**
```json
{
"platform": "facebook",
"scraper": "facebook-events-search",
"input": { "query": "coffee" },
"data": { /* the Facebook payload, as structured JSON */ },
"records": 1,
"costUsd": 0.0015,
"walletDebitUsd": 0,
"requestId": "c4389b749c07d44209e4fb301",
"elapsedMs": 812
}
```
#### GET /api/v1/scrape/facebook/events
**Facebook Events by City.** Returns structured JSON for **Facebook Events by City**. Billed **$0.0015 per successful call** ($1.49 per 1,000); errors, timeouts and rate limits are never charged, while a lookup whose target does not exist is billed like a successful call because the platform was queried. `POST` with a JSON body works too.
| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `x-api-key` | `string (header)` | required | Your HProxy API key with the scrape scope. |
| `url` | `url (query)` | required | Target URL (profile, post or video). |
| `time` | `string (query)` | optional | Filter by date, as YYYY-MM-DD. Allowed values: `today`, `this_week`, `next_week`. |
| `cursor` | `string (query)` | optional | Pagination token from the previous response. |
**cURL**
```bash
curl "https://hproxy.com/api/v1/scrape/facebook/events?url=https://www.facebook.com/nasa" \
-H "X-API-Key: hpx_your_key_here"
```
**Response**
```json
{
"platform": "facebook",
"scraper": "facebook-events",
"input": { "url": "https://www.facebook.com/nasa" },
"data": { /* the Facebook payload, as structured JSON */ },
"records": 1,
"costUsd": 0.0015,
"walletDebitUsd": 0,
"requestId": "c4389b749c07d44209e4fb301",
"elapsedMs": 812
}
```
#### GET /api/v1/scrape/facebook/event
**Facebook Event Details.** Returns structured JSON for **Facebook Event Details**. Billed **$0.0015 per successful call** ($1.49 per 1,000); errors, timeouts and rate limits are never charged, while a lookup whose target does not exist is billed like a successful call because the platform was queried. `POST` with a JSON body works too.
| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `x-api-key` | `string (header)` | required | Your HProxy API key with the scrape scope. |
| `id` | `string (query)` | required | Identifier from a previous response. Send this **or** `url`. |
| `url` | `url (query)` | required | Target URL (profile, post or video). Send this **or** `id`. |
**cURL**
```bash
curl "https://hproxy.com/api/v1/scrape/facebook/event?url=https://www.facebook.com/nasa" \
-H "X-API-Key: hpx_your_key_here"
```
**Response**
```json
{
"platform": "facebook",
"scraper": "facebook-event",
"input": { },
"data": { /* the Facebook payload, as structured JSON */ },
"records": 1,
"costUsd": 0.0015,
"walletDebitUsd": 0,
"requestId": "c4389b749c07d44209e4fb301",
"elapsedMs": 812
}
```
#### GET /api/v1/scrape/facebook/ad
**Facebook Ad Library Detail.** Returns structured JSON for **Facebook Ad Library Detail**. Billed **$0.0015 per successful call** ($1.49 per 1,000); errors, timeouts and rate limits are never charged, while a lookup whose target does not exist is billed like a successful call because the platform was queried. `POST` with a JSON body works too.
| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `x-api-key` | `string (header)` | required | Your HProxy API key with the scrape scope. |
| `id` | `string (query)` | required | Identifier from a previous response. Send this **or** `url`. |
| `url` | `url (query)` | required | Target URL (profile, post or video). Send this **or** `id`. |
| `get_transcript` | `boolean (query)` | optional | Also include transcript in the response. |
| `trim` | `boolean (query)` | optional | Return a slimmed-down payload (drops verbose fields). |
| `cache_max_age` | `string (query)` | optional | Accept a cached result up to this old (1d, 3d, 7d, 14d or 30d) and pay nothing for it. Omit for a live scrape. Allowed values: `1d`, `3d`, `7d`, `14d`, `30d`. |
**cURL**
```bash
curl "https://hproxy.com/api/v1/scrape/facebook/ad?url=https://www.facebook.com/nasa" \
-H "X-API-Key: hpx_your_key_here"
```
**Response**
```json
{
"platform": "facebook",
"scraper": "facebook-ad",
"input": { },
"data": { /* the Facebook payload, as structured JSON */ },
"records": 1,
"costUsd": 0.0015,
"walletDebitUsd": 0,
"requestId": "c4389b749c07d44209e4fb301",
"elapsedMs": 812
}
```
#### GET /api/v1/scrape/facebook/ad-search
**Facebook Ad Library Search.** Returns structured JSON for **Facebook Ad Library Search**. Billed **$0.0015 per successful call** ($1.49 per 1,000); errors, timeouts and rate limits are never charged, while a lookup whose target does not exist is billed like a successful call because the platform was queried. `POST` with a JSON body works too.
| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `x-api-key` | `string (header)` | required | Your HProxy API key with the scrape scope. |
| `query` | `string (query)` | required | Search term or keyword. |
| `sort_by` | `string (query)` | optional | Ordering to apply to the results. Allowed values: `total_impressions`, `relevancy_monthly_grouped`. |
| `search_type` | `string (query)` | optional | The search type parameter. Allowed values: `keyword_unordered`, `keyword_exact_phrase`. |
| `ad_type` | `string (query)` | optional | The ad type parameter. Allowed values: `all`, `political_and_issue_ads`. |
| `country` | `string (query)` | optional | Two-letter region/country code, e.g. US. |
| `status` | `string (query)` | optional | The status parameter. Allowed values: `ALL`, `ACTIVE`, `INACTIVE`. |
| `media_type` | `string (query)` | optional | The media type parameter. Allowed values: `ALL`, `IMAGE`, `VIDEO`, `MEME`, `IMAGE_AND_MEME`, `NONE`. |
| `start_date` | `string (query)` | optional | Filter by date, as YYYY-MM-DD. |
| `end_date` | `string (query)` | optional | Filter by date, as YYYY-MM-DD. |
| `cursor` | `string (query)` | optional | Pagination token from the previous response. |
| `trim` | `boolean (query)` | optional | Return a slimmed-down payload (drops verbose fields). |
**cURL**
```bash
curl "https://hproxy.com/api/v1/scrape/facebook/ad-search?query=coffee" \
-H "X-API-Key: hpx_your_key_here"
```
**Response**
```json
{
"platform": "facebook",
"scraper": "facebook-ad-search",
"input": { "query": "coffee" },
"data": { /* the Facebook payload, as structured JSON */ },
"records": 1,
"costUsd": 0.0015,
"walletDebitUsd": 0,
"requestId": "c4389b749c07d44209e4fb301",
"elapsedMs": 812
}
```
#### GET /api/v1/scrape/facebook/ad-company
**Facebook Company Ads.** Returns structured JSON for **Facebook Company Ads**. Billed **$0.0015 per successful call** ($1.49 per 1,000); errors, timeouts and rate limits are never charged, while a lookup whose target does not exist is billed like a successful call because the platform was queried. `POST` with a JSON body works too.
| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `x-api-key` | `string (header)` | required | Your HProxy API key with the scrape scope. |
| `pageId` | `string (query)` | required | Identifier from a previous response. Send this **or** `companyName`. |
| `companyName` | `string (query)` | required | The companyName parameter. Send this **or** `pageId`. |
| `country` | `string (query)` | optional | Two-letter region/country code, e.g. US. |
| `status` | `string (query)` | optional | The status parameter. Allowed values: `ALL`, `ACTIVE`, `INACTIVE`. |
| `language` | `string (query)` | optional | Two-letter language code, e.g. en. |
| `cursor` | `string (query)` | optional | Pagination token from the previous response. |
| `media_type` | `string (query)` | optional | The media type parameter. Allowed values: `ALL`, `IMAGE`, `VIDEO`, `MEME`, `IMAGE_AND_MEME`, `NONE`. |
| `sort_by` | `string (query)` | optional | Ordering to apply to the results. Allowed values: `total_impressions`, `relevancy_monthly_grouped`. |
| `start_date` | `string (query)` | optional | Filter by date, as YYYY-MM-DD. |
| `end_date` | `string (query)` | optional | Filter by date, as YYYY-MM-DD. |
| `trim` | `boolean (query)` | optional | Return a slimmed-down payload (drops verbose fields). |
**cURL**
```bash
curl "https://hproxy.com/api/v1/scrape/facebook/ad-company?pageId=1234567890" \
-H "X-API-Key: hpx_your_key_here"
```
**Response**
```json
{
"platform": "facebook",
"scraper": "facebook-ad-company",
"input": { },
"data": { /* the Facebook payload, as structured JSON */ },
"records": 1,
"costUsd": 0.0015,
"walletDebitUsd": 0,
"requestId": "c4389b749c07d44209e4fb301",
"elapsedMs": 812
}
```
#### GET /api/v1/scrape/facebook/ad-companies-search
**Facebook Ad Library Company Search.** Returns structured JSON for **Facebook Ad Library Company Search**. Billed **$0.0015 per successful call** ($1.49 per 1,000); errors, timeouts and rate limits are never charged, while a lookup whose target does not exist is billed like a successful call because the platform was queried. `POST` with a JSON body works too.
| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `x-api-key` | `string (header)` | required | Your HProxy API key with the scrape scope. |
| `query` | `string (query)` | required | Search term or keyword. |
| `cursor` | `string (query)` | optional | Pagination token from the previous response. |
| `trim` | `boolean (query)` | optional | Return a slimmed-down payload (drops verbose fields). |
**cURL**
```bash
curl "https://hproxy.com/api/v1/scrape/facebook/ad-companies-search?query=coffee" \
-H "X-API-Key: hpx_your_key_here"
```
**Response**
```json
{
"platform": "facebook",
"scraper": "facebook-ad-companies-search",
"input": { "query": "coffee" },
"data": { /* the Facebook payload, as structured JSON */ },
"records": 1,
"costUsd": 0.0015,
"walletDebitUsd": 0,
"requestId": "c4389b749c07d44209e4fb301",
"elapsedMs": 812
}
```
## Reddit scraper API
*Every Reddit scraper endpoint: 5 actions returning structured JSON from $0.0015 per call. No proxies, no captchas, no infrastructure.*
URL: https://hproxy.com/docs/scrapers/reddit
All 5 Reddit endpoints, from **$0.0015 per call**. Each is callable as `GET https://hproxy.com/api/v1/scrape/reddit/{action}` (or `POST` with a JSON body) using a key with the `scrape` scope. No proxies, captchas or parsing to manage, it is all included in the price, and errors, timeouts and rate limits are never billed. See the [full catalog](https://hproxy.com/docs/scrapers/catalog) for every platform, or the [Reddit landing page](https://hproxy.com/scrapers/reddit) for examples and use cases.
#### GET /api/v1/scrape/reddit/subreddit
**Reddit Subreddit Details.** Returns structured JSON for **Reddit Subreddit Details**. Billed **$0.0015 per successful call** ($1.49 per 1,000); errors, timeouts and rate limits are never charged, while a lookup whose target does not exist is billed like a successful call because the platform was queried. `POST` with a JSON body works too.
| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `x-api-key` | `string (header)` | required | Your HProxy API key with the scrape scope. |
| `subreddit` | `string (query)` | required | Subreddit name, without the r/ prefix. Send this **or** `url`. |
| `url` | `url (query)` | required | Target URL (profile, post or video). Send this **or** `subreddit`. |
| `cache_max_age` | `string (query)` | optional | Accept a cached result up to this old (1d, 3d, 7d, 14d or 30d) and pay nothing for it. Omit for a live scrape. Allowed values: `1d`, `3d`, `7d`, `14d`, `30d`. |
**cURL**
```bash
curl "https://hproxy.com/api/v1/scrape/reddit/subreddit?subreddit=dataisbeautiful" \
-H "X-API-Key: hpx_your_key_here"
```
**Response**
```json
{
"platform": "reddit",
"scraper": "reddit-subreddit",
"input": { },
"data": { /* the Reddit payload, as structured JSON */ },
"records": 1,
"costUsd": 0.0015,
"walletDebitUsd": 0,
"requestId": "c4389b749c07d44209e4fb301",
"elapsedMs": 812
}
```
#### GET /api/v1/scrape/reddit/subreddit-posts
**Reddit Subreddit Posts.** Returns structured JSON for **Reddit Subreddit Posts**. Billed **$0.0015 per successful call** ($1.49 per 1,000); errors, timeouts and rate limits are never charged, while a lookup whose target does not exist is billed like a successful call because the platform was queried. `POST` with a JSON body works too.
| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `x-api-key` | `string (header)` | required | Your HProxy API key with the scrape scope. |
| `subreddit` | `string (query)` | required | Subreddit name, without the r/ prefix. |
| `timeframe` | `string (query)` | optional | Filter by date, as YYYY-MM-DD. Allowed values: `all`, `day`, `week`, `month`, `year`. |
| `sort` | `string (query)` | optional | Ordering to apply to the results. Allowed values: `best`, `hot`, `new`, `top`, `rising`. |
| `after` | `string (query)` | optional | The after parameter. |
| `trim` | `boolean (query)` | optional | Return a slimmed-down payload (drops verbose fields). |
| `cache_max_age` | `string (query)` | optional | Accept a cached result up to this old (1d, 3d, 7d, 14d or 30d) and pay nothing for it. Omit for a live scrape. Allowed values: `1d`, `3d`, `7d`, `14d`, `30d`. |
**cURL**
```bash
curl "https://hproxy.com/api/v1/scrape/reddit/subreddit-posts?subreddit=dataisbeautiful" \
-H "X-API-Key: hpx_your_key_here"
```
**Response**
```json
{
"platform": "reddit",
"scraper": "reddit-subreddit-posts",
"input": { "subreddit": "dataisbeautiful" },
"data": { /* the Reddit payload, as structured JSON */ },
"records": 1,
"costUsd": 0.0015,
"walletDebitUsd": 0,
"requestId": "c4389b749c07d44209e4fb301",
"elapsedMs": 812
}
```
#### GET /api/v1/scrape/reddit/comments
**Reddit Post Comments.** Returns structured JSON for **Reddit Post Comments**. Billed **$0.0015 per successful call** ($1.49 per 1,000); errors, timeouts and rate limits are never charged, while a lookup whose target does not exist is billed like a successful call because the platform was queried. `POST` with a JSON body works too.
| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `x-api-key` | `string (header)` | required | Your HProxy API key with the scrape scope. |
| `url` | `url (query)` | required | Target URL (profile, post or video). |
| `cursor` | `string (query)` | optional | Pagination token from the previous response. |
| `trim` | `boolean (query)` | optional | Return a slimmed-down payload (drops verbose fields). |
**cURL**
```bash
curl "https://hproxy.com/api/v1/scrape/reddit/comments?url=https://www.reddit.com/r/pics/comments/1abcdef/example/" \
-H "X-API-Key: hpx_your_key_here"
```
**Response**
```json
{
"platform": "reddit",
"scraper": "reddit-comments",
"input": { "url": "https://www.reddit.com/r/pics/comments/1abcdef/example/" },
"data": { /* the Reddit payload, as structured JSON */ },
"records": 1,
"costUsd": 0.0015,
"walletDebitUsd": 0,
"requestId": "c4389b749c07d44209e4fb301",
"elapsedMs": 812
}
```
#### GET /api/v1/scrape/reddit/search
**Reddit Search.** Returns structured JSON for **Reddit Search**. Billed **$0.0015 per successful call** ($1.49 per 1,000); errors, timeouts and rate limits are never charged, while a lookup whose target does not exist is billed like a successful call because the platform was queried. `POST` with a JSON body works too.
| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `x-api-key` | `string (header)` | required | Your HProxy API key with the scrape scope. |
| `query` | `string (query)` | required | Search term or keyword. |
| `sort` | `string (query)` | optional | Ordering to apply to the results. Allowed values: `relevance`, `new`, `top`, `comment_count`. |
| `timeframe` | `string (query)` | optional | Filter by date, as YYYY-MM-DD. Allowed values: `all`, `day`, `week`, `month`, `year`. |
| `after` | `string (query)` | optional | The after parameter. |
| `trim` | `boolean (query)` | optional | Return a slimmed-down payload (drops verbose fields). |
**cURL**
```bash
curl "https://hproxy.com/api/v1/scrape/reddit/search?query=coffee" \
-H "X-API-Key: hpx_your_key_here"
```
**Response**
```json
{
"platform": "reddit",
"scraper": "reddit-search",
"input": { "query": "coffee" },
"data": { /* the Reddit payload, as structured JSON */ },
"records": 1,
"costUsd": 0.0015,
"walletDebitUsd": 0,
"requestId": "c4389b749c07d44209e4fb301",
"elapsedMs": 812
}
```
#### GET /api/v1/scrape/reddit/subreddit-search
**Reddit Subreddit Search.** Returns structured JSON for **Reddit Subreddit Search**. Billed **$0.0015 per successful call** ($1.49 per 1,000); errors, timeouts and rate limits are never charged, while a lookup whose target does not exist is billed like a successful call because the platform was queried. `POST` with a JSON body works too.
| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `x-api-key` | `string (header)` | required | Your HProxy API key with the scrape scope. |
| `subreddit` | `string (query)` | required | Subreddit name, without the r/ prefix. |
| `query` | `string (query)` | optional | Search term or keyword. |
| `sort` | `string (query)` | optional | Ordering to apply to the results. Allowed values: `relevance`, `hot`, `top`, `new`, `comments`. |
| `timeframe` | `string (query)` | optional | Filter by date, as YYYY-MM-DD. Allowed values: `all`, `year`, `month`, `week`, `day`, `hour`. |
| `cursor` | `string (query)` | optional | Pagination token from the previous response. |
**cURL**
```bash
curl "https://hproxy.com/api/v1/scrape/reddit/subreddit-search?subreddit=dataisbeautiful" \
-H "X-API-Key: hpx_your_key_here"
```
**Response**
```json
{
"platform": "reddit",
"scraper": "reddit-subreddit-search",
"input": { "subreddit": "dataisbeautiful" },
"data": { /* the Reddit payload, as structured JSON */ },
"records": 1,
"costUsd": 0.0015,
"walletDebitUsd": 0,
"requestId": "c4389b749c07d44209e4fb301",
"elapsedMs": 812
}
```
## Threads scraper API
*Every Threads scraper endpoint: 5 actions returning structured JSON from $0.0015 per call. No proxies, no captchas, no infrastructure.*
URL: https://hproxy.com/docs/scrapers/threads
All 5 Threads endpoints, from **$0.0015 per call**. Each is callable as `GET https://hproxy.com/api/v1/scrape/threads/{action}` (or `POST` with a JSON body) using a key with the `scrape` scope. No proxies, captchas or parsing to manage, it is all included in the price, and errors, timeouts and rate limits are never billed. See the [full catalog](https://hproxy.com/docs/scrapers/catalog) for every platform, or the [Threads landing page](https://hproxy.com/scrapers/threads) for examples and use cases.
#### GET /api/v1/scrape/threads/profile
**Threads Profile.** Returns structured JSON for **Threads Profile**. Billed **$0.0015 per successful call** ($1.49 per 1,000); errors, timeouts and rate limits are never charged, while a lookup whose target does not exist is billed like a successful call because the platform was queried. `POST` with a JSON body works too.
| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `x-api-key` | `string (header)` | required | Your HProxy API key with the scrape scope. |
| `handle` | `string (query)` | required | Account handle or @username. |
| `trim` | `boolean (query)` | optional | Return a slimmed-down payload (drops verbose fields). |
| `cache_max_age` | `string (query)` | optional | Accept a cached result up to this old (1d, 3d, 7d, 14d or 30d) and pay nothing for it. Omit for a live scrape. Allowed values: `1d`, `3d`, `7d`, `14d`, `30d`. |
**cURL**
```bash
curl "https://hproxy.com/api/v1/scrape/threads/profile?handle=zuck" \
-H "X-API-Key: hpx_your_key_here"
```
**Response**
```json
{
"platform": "threads",
"scraper": "threads-profile",
"input": { "handle": "zuck" },
"data": { /* the Threads payload, as structured JSON */ },
"records": 1,
"costUsd": 0.0015,
"walletDebitUsd": 0,
"requestId": "c4389b749c07d44209e4fb301",
"elapsedMs": 812
}
```
#### GET /api/v1/scrape/threads/posts
**Threads User Posts.** Returns structured JSON for **Threads User Posts**. Billed **$0.0015 per successful call** ($1.49 per 1,000); errors, timeouts and rate limits are never charged, while a lookup whose target does not exist is billed like a successful call because the platform was queried. `POST` with a JSON body works too.
| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `x-api-key` | `string (header)` | required | Your HProxy API key with the scrape scope. |
| `handle` | `string (query)` | required | Account handle or @username. |
| `user_id` | `string (query)` | optional | Identifier from a previous response. |
| `trim` | `boolean (query)` | optional | Return a slimmed-down payload (drops verbose fields). |
**cURL**
```bash
curl "https://hproxy.com/api/v1/scrape/threads/posts?handle=zuck" \
-H "X-API-Key: hpx_your_key_here"
```
**Response**
```json
{
"platform": "threads",
"scraper": "threads-posts",
"input": { "handle": "zuck" },
"data": { /* the Threads payload, as structured JSON */ },
"records": 1,
"costUsd": 0.0015,
"walletDebitUsd": 0,
"requestId": "c4389b749c07d44209e4fb301",
"elapsedMs": 812
}
```
#### GET /api/v1/scrape/threads/post
**Threads Post.** Returns structured JSON for **Threads Post**. Billed **$0.0015 per successful call** ($1.49 per 1,000); errors, timeouts and rate limits are never charged, while a lookup whose target does not exist is billed like a successful call because the platform was queried. `POST` with a JSON body works too.
| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `x-api-key` | `string (header)` | required | Your HProxy API key with the scrape scope. |
| `url` | `url (query)` | required | Target URL (profile, post or video). |
| `trim` | `boolean (query)` | optional | Return a slimmed-down payload (drops verbose fields). |
| `cache_max_age` | `string (query)` | optional | Accept a cached result up to this old (1d, 3d, 7d, 14d or 30d) and pay nothing for it. Omit for a live scrape. Allowed values: `1d`, `3d`, `7d`, `14d`, `30d`. |
**cURL**
```bash
curl "https://hproxy.com/api/v1/scrape/threads/post?url=https://www.threads.net/@zuck" \
-H "X-API-Key: hpx_your_key_here"
```
**Response**
```json
{
"platform": "threads",
"scraper": "threads-post",
"input": { "url": "https://www.threads.net/@zuck" },
"data": { /* the Threads payload, as structured JSON */ },
"records": 1,
"costUsd": 0.0015,
"walletDebitUsd": 0,
"requestId": "c4389b749c07d44209e4fb301",
"elapsedMs": 812
}
```
#### GET /api/v1/scrape/threads/search
**Threads Search.** Returns structured JSON for **Threads Search**. Billed **$0.0015 per successful call** ($1.49 per 1,000); errors, timeouts and rate limits are never charged, while a lookup whose target does not exist is billed like a successful call because the platform was queried. `POST` with a JSON body works too.
| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `x-api-key` | `string (header)` | required | Your HProxy API key with the scrape scope. |
| `query` | `string (query)` | required | Search term or keyword. |
| `start_date` | `string (query)` | optional | Filter by date, as YYYY-MM-DD. |
| `end_date` | `string (query)` | optional | Filter by date, as YYYY-MM-DD. |
| `trim` | `boolean (query)` | optional | Return a slimmed-down payload (drops verbose fields). |
**cURL**
```bash
curl "https://hproxy.com/api/v1/scrape/threads/search?query=coffee" \
-H "X-API-Key: hpx_your_key_here"
```
**Response**
```json
{
"platform": "threads",
"scraper": "threads-search",
"input": { "query": "coffee" },
"data": { /* the Threads payload, as structured JSON */ },
"records": 1,
"costUsd": 0.0015,
"walletDebitUsd": 0,
"requestId": "c4389b749c07d44209e4fb301",
"elapsedMs": 812
}
```
#### GET /api/v1/scrape/threads/search-users
**Threads Search Users.** Returns structured JSON for **Threads Search Users**. Billed **$0.0015 per successful call** ($1.49 per 1,000); errors, timeouts and rate limits are never charged, while a lookup whose target does not exist is billed like a successful call because the platform was queried. `POST` with a JSON body works too.
| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `x-api-key` | `string (header)` | required | Your HProxy API key with the scrape scope. |
| `query` | `string (query)` | required | Search term or keyword. |
**cURL**
```bash
curl "https://hproxy.com/api/v1/scrape/threads/search-users?query=coffee" \
-H "X-API-Key: hpx_your_key_here"
```
**Response**
```json
{
"platform": "threads",
"scraper": "threads-search-users",
"input": { "query": "coffee" },
"data": { /* the Threads payload, as structured JSON */ },
"records": 1,
"costUsd": 0.0015,
"walletDebitUsd": 0,
"requestId": "c4389b749c07d44209e4fb301",
"elapsedMs": 812
}
```
## Bluesky scraper API
*Every Bluesky scraper endpoint: 3 actions returning structured JSON from $0.0015 per call. No proxies, no captchas, no infrastructure.*
URL: https://hproxy.com/docs/scrapers/bluesky
All 3 Bluesky endpoints, from **$0.0015 per call**. Each is callable as `GET https://hproxy.com/api/v1/scrape/bluesky/{action}` (or `POST` with a JSON body) using a key with the `scrape` scope. No proxies, captchas or parsing to manage, it is all included in the price, and errors, timeouts and rate limits are never billed. See the [full catalog](https://hproxy.com/docs/scrapers/catalog) for every platform, or the [Bluesky landing page](https://hproxy.com/scrapers/bluesky) for examples and use cases.
#### GET /api/v1/scrape/bluesky/profile
**Bluesky Profile.** Returns structured JSON for **Bluesky Profile**. Billed **$0.0015 per successful call** ($1.49 per 1,000); errors, timeouts and rate limits are never charged, while a lookup whose target does not exist is billed like a successful call because the platform was queried. `POST` with a JSON body works too.
| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `x-api-key` | `string (header)` | required | Your HProxy API key with the scrape scope. |
| `handle` | `string (query)` | required | Account handle or @username. |
| `trim` | `boolean (query)` | optional | Return a slimmed-down payload (drops verbose fields). |
**cURL**
```bash
curl "https://hproxy.com/api/v1/scrape/bluesky/profile?handle=bsky.app" \
-H "X-API-Key: hpx_your_key_here"
```
**Response**
```json
{
"platform": "bluesky",
"scraper": "bluesky-profile",
"input": { "handle": "bsky.app" },
"data": { /* the Bluesky payload, as structured JSON */ },
"records": 1,
"costUsd": 0.0015,
"walletDebitUsd": 0,
"requestId": "c4389b749c07d44209e4fb301",
"elapsedMs": 812
}
```
#### GET /api/v1/scrape/bluesky/posts
**Bluesky User Posts.** Returns structured JSON for **Bluesky User Posts**. Billed **$0.0015 per successful call** ($1.49 per 1,000); errors, timeouts and rate limits are never charged, while a lookup whose target does not exist is billed like a successful call because the platform was queried. `POST` with a JSON body works too.
| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `x-api-key` | `string (header)` | required | Your HProxy API key with the scrape scope. |
| `handle` | `string (query)` | required | Account handle or @username. Send this **or** `user_id`. |
| `user_id` | `string (query)` | required | Identifier from a previous response. Send this **or** `handle`. |
**cURL**
```bash
curl "https://hproxy.com/api/v1/scrape/bluesky/posts?handle=bsky.app" \
-H "X-API-Key: hpx_your_key_here"
```
**Response**
```json
{
"platform": "bluesky",
"scraper": "bluesky-posts",
"input": { },
"data": { /* the Bluesky payload, as structured JSON */ },
"records": 1,
"costUsd": 0.0015,
"walletDebitUsd": 0,
"requestId": "c4389b749c07d44209e4fb301",
"elapsedMs": 812
}
```
#### GET /api/v1/scrape/bluesky/post
**Bluesky Post.** Returns structured JSON for **Bluesky Post**. Billed **$0.0015 per successful call** ($1.49 per 1,000); errors, timeouts and rate limits are never charged, while a lookup whose target does not exist is billed like a successful call because the platform was queried. `POST` with a JSON body works too.
| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `x-api-key` | `string (header)` | required | Your HProxy API key with the scrape scope. |
| `url` | `url (query)` | required | Target URL (profile, post or video). |
| `trim` | `boolean (query)` | optional | Return a slimmed-down payload (drops verbose fields). |
**cURL**
```bash
curl "https://hproxy.com/api/v1/scrape/bluesky/post?url=https://bsky.app/profile/bsky.app" \
-H "X-API-Key: hpx_your_key_here"
```
**Response**
```json
{
"platform": "bluesky",
"scraper": "bluesky-post",
"input": { "url": "https://bsky.app/profile/bsky.app" },
"data": { /* the Bluesky payload, as structured JSON */ },
"records": 1,
"costUsd": 0.0015,
"walletDebitUsd": 0,
"requestId": "c4389b749c07d44209e4fb301",
"elapsedMs": 812
}
```
## Truth Social scraper API
*Every Truth Social scraper endpoint: 3 actions returning structured JSON from $0.0015 per call. No proxies, no captchas, no infrastructure.*
URL: https://hproxy.com/docs/scrapers/truth-social
All 3 Truth Social endpoints, from **$0.0015 per call**. Each is callable as `GET https://hproxy.com/api/v1/scrape/truth-social/{action}` (or `POST` with a JSON body) using a key with the `scrape` scope. No proxies, captchas or parsing to manage, it is all included in the price, and errors, timeouts and rate limits are never billed. See the [full catalog](https://hproxy.com/docs/scrapers/catalog) for every platform, or the [Truth Social landing page](https://hproxy.com/scrapers/truth-social) for examples and use cases.
#### GET /api/v1/scrape/truth-social/profile
**Truth Social Profile.** Returns structured JSON for **Truth Social Profile**. Billed **$0.0015 per successful call** ($1.49 per 1,000); errors, timeouts and rate limits are never charged, while a lookup whose target does not exist is billed like a successful call because the platform was queried. `POST` with a JSON body works too.
| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `x-api-key` | `string (header)` | required | Your HProxy API key with the scrape scope. |
| `handle` | `string (query)` | required | Account handle or @username. |
| `trim` | `boolean (query)` | optional | Return a slimmed-down payload (drops verbose fields). |
**cURL**
```bash
curl "https://hproxy.com/api/v1/scrape/truth-social/profile?handle=realDonaldTrump" \
-H "X-API-Key: hpx_your_key_here"
```
**Response**
```json
{
"platform": "truth-social",
"scraper": "truth-social-profile",
"input": { "handle": "realDonaldTrump" },
"data": { /* the Truth Social payload, as structured JSON */ },
"records": 1,
"costUsd": 0.0015,
"walletDebitUsd": 0,
"requestId": "c4389b749c07d44209e4fb301",
"elapsedMs": 812
}
```
#### GET /api/v1/scrape/truth-social/posts
**Truth Social User Posts.** Returns structured JSON for **Truth Social User Posts**. Billed **$0.0015 per successful call** ($1.49 per 1,000); errors, timeouts and rate limits are never charged, while a lookup whose target does not exist is billed like a successful call because the platform was queried. `POST` with a JSON body works too.
| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `x-api-key` | `string (header)` | required | Your HProxy API key with the scrape scope. |
| `handle` | `string (query)` | required | Account handle or @username. Send this **or** `user_id`. |
| `user_id` | `string (query)` | required | Identifier from a previous response. Send this **or** `handle`. |
| `next_max_id` | `string (query)` | optional | Pagination token from the previous response. |
| `trim` | `boolean (query)` | optional | Return a slimmed-down payload (drops verbose fields). |
**cURL**
```bash
curl "https://hproxy.com/api/v1/scrape/truth-social/posts?handle=realDonaldTrump" \
-H "X-API-Key: hpx_your_key_here"
```
**Response**
```json
{
"platform": "truth-social",
"scraper": "truth-social-posts",
"input": { },
"data": { /* the Truth Social payload, as structured JSON */ },
"records": 1,
"costUsd": 0.0015,
"walletDebitUsd": 0,
"requestId": "c4389b749c07d44209e4fb301",
"elapsedMs": 812
}
```
#### GET /api/v1/scrape/truth-social/post
**Truth Social Post.** Returns structured JSON for **Truth Social Post**. Billed **$0.0015 per successful call** ($1.49 per 1,000); errors, timeouts and rate limits are never charged, while a lookup whose target does not exist is billed like a successful call because the platform was queried. `POST` with a JSON body works too.
| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `x-api-key` | `string (header)` | required | Your HProxy API key with the scrape scope. |
| `url` | `url (query)` | required | Target URL (profile, post or video). |
| `trim` | `boolean (query)` | optional | Return a slimmed-down payload (drops verbose fields). |
**cURL**
```bash
curl "https://hproxy.com/api/v1/scrape/truth-social/post?url=https://truthsocial.com/@realDonaldTrump" \
-H "X-API-Key: hpx_your_key_here"
```
**Response**
```json
{
"platform": "truth-social",
"scraper": "truth-social-post",
"input": { "url": "https://truthsocial.com/@realDonaldTrump" },
"data": { /* the Truth Social payload, as structured JSON */ },
"records": 1,
"costUsd": 0.0015,
"walletDebitUsd": 0,
"requestId": "c4389b749c07d44209e4fb301",
"elapsedMs": 812
}
```
## Pinterest scraper API
*Every Pinterest scraper endpoint: 4 actions returning structured JSON from $0.0015 per call. No proxies, no captchas, no infrastructure.*
URL: https://hproxy.com/docs/scrapers/pinterest
All 4 Pinterest endpoints, from **$0.0015 per call**. Each is callable as `GET https://hproxy.com/api/v1/scrape/pinterest/{action}` (or `POST` with a JSON body) using a key with the `scrape` scope. No proxies, captchas or parsing to manage, it is all included in the price, and errors, timeouts and rate limits are never billed. See the [full catalog](https://hproxy.com/docs/scrapers/catalog) for every platform, or the [Pinterest landing page](https://hproxy.com/scrapers/pinterest) for examples and use cases.
#### GET /api/v1/scrape/pinterest/search
**Pinterest Search.** Returns structured JSON for **Pinterest Search**. Billed **$0.0015 per successful call** ($1.49 per 1,000); errors, timeouts and rate limits are never charged, while a lookup whose target does not exist is billed like a successful call because the platform was queried. `POST` with a JSON body works too.
| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `x-api-key` | `string (header)` | required | Your HProxy API key with the scrape scope. |
| `query` | `string (query)` | required | Search term or keyword. |
| `cursor` | `string (query)` | optional | Pagination token from the previous response. |
| `trim` | `boolean (query)` | optional | Return a slimmed-down payload (drops verbose fields). |
**cURL**
```bash
curl "https://hproxy.com/api/v1/scrape/pinterest/search?query=coffee" \
-H "X-API-Key: hpx_your_key_here"
```
**Response**
```json
{
"platform": "pinterest",
"scraper": "pinterest-search",
"input": { "query": "coffee" },
"data": { /* the Pinterest payload, as structured JSON */ },
"records": 1,
"costUsd": 0.0015,
"walletDebitUsd": 0,
"requestId": "c4389b749c07d44209e4fb301",
"elapsedMs": 812
}
```
#### GET /api/v1/scrape/pinterest/pin
**Pinterest Pin.** Returns structured JSON for **Pinterest Pin**. Billed **$0.0015 per successful call** ($1.49 per 1,000); errors, timeouts and rate limits are never charged, while a lookup whose target does not exist is billed like a successful call because the platform was queried. `POST` with a JSON body works too.
| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `x-api-key` | `string (header)` | required | Your HProxy API key with the scrape scope. |
| `url` | `url (query)` | required | Target URL (profile, post or video). |
| `trim` | `boolean (query)` | optional | Return a slimmed-down payload (drops verbose fields). |
| `cache_max_age` | `string (query)` | optional | Accept a cached result up to this old (1d, 3d, 7d, 14d or 30d) and pay nothing for it. Omit for a live scrape. Allowed values: `1d`, `3d`, `7d`, `14d`, `30d`. |
**cURL**
```bash
curl "https://hproxy.com/api/v1/scrape/pinterest/pin?url=https://www.pinterest.com/pin/1234567890/" \
-H "X-API-Key: hpx_your_key_here"
```
**Response**
```json
{
"platform": "pinterest",
"scraper": "pinterest-pin",
"input": { "url": "https://www.pinterest.com/pin/1234567890/" },
"data": { /* the Pinterest payload, as structured JSON */ },
"records": 1,
"costUsd": 0.0015,
"walletDebitUsd": 0,
"requestId": "c4389b749c07d44209e4fb301",
"elapsedMs": 812
}
```
#### GET /api/v1/scrape/pinterest/boards
**Pinterest User Boards.** Returns structured JSON for **Pinterest User Boards**. Billed **$0.0015 per successful call** ($1.49 per 1,000); errors, timeouts and rate limits are never charged, while a lookup whose target does not exist is billed like a successful call because the platform was queried. `POST` with a JSON body works too.
| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `x-api-key` | `string (header)` | required | Your HProxy API key with the scrape scope. |
| `handle` | `string (query)` | required | Account handle or @username. |
| `trim` | `boolean (query)` | optional | Return a slimmed-down payload (drops verbose fields). |
**cURL**
```bash
curl "https://hproxy.com/api/v1/scrape/pinterest/boards?handle=nasa" \
-H "X-API-Key: hpx_your_key_here"
```
**Response**
```json
{
"platform": "pinterest",
"scraper": "pinterest-boards",
"input": { "handle": "nasa" },
"data": { /* the Pinterest payload, as structured JSON */ },
"records": 1,
"costUsd": 0.0015,
"walletDebitUsd": 0,
"requestId": "c4389b749c07d44209e4fb301",
"elapsedMs": 812
}
```
#### GET /api/v1/scrape/pinterest/board
**Pinterest Board Pins.** Returns structured JSON for **Pinterest Board Pins**. Billed **$0.0015 per successful call** ($1.49 per 1,000); errors, timeouts and rate limits are never charged, while a lookup whose target does not exist is billed like a successful call because the platform was queried. `POST` with a JSON body works too.
| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `x-api-key` | `string (header)` | required | Your HProxy API key with the scrape scope. |
| `url` | `url (query)` | required | Target URL (profile, post or video). |
| `cursor` | `string (query)` | optional | Pagination token from the previous response. |
| `trim` | `boolean (query)` | optional | Return a slimmed-down payload (drops verbose fields). |
**cURL**
```bash
curl "https://hproxy.com/api/v1/scrape/pinterest/board?url=https://www.pinterest.com/pin/1234567890/" \
-H "X-API-Key: hpx_your_key_here"
```
**Response**
```json
{
"platform": "pinterest",
"scraper": "pinterest-board",
"input": { "url": "https://www.pinterest.com/pin/1234567890/" },
"data": { /* the Pinterest payload, as structured JSON */ },
"records": 1,
"costUsd": 0.0015,
"walletDebitUsd": 0,
"requestId": "c4389b749c07d44209e4fb301",
"elapsedMs": 812
}
```
## Twitch scraper API
*Every Twitch scraper endpoint: 4 actions returning structured JSON from $0.0015 per call. No proxies, no captchas, no infrastructure.*
URL: https://hproxy.com/docs/scrapers/twitch
All 4 Twitch endpoints, from **$0.0015 per call**. Each is callable as `GET https://hproxy.com/api/v1/scrape/twitch/{action}` (or `POST` with a JSON body) using a key with the `scrape` scope. No proxies, captchas or parsing to manage, it is all included in the price, and errors, timeouts and rate limits are never billed. See the [full catalog](https://hproxy.com/docs/scrapers/catalog) for every platform, or the [Twitch landing page](https://hproxy.com/scrapers/twitch) for examples and use cases.
#### GET /api/v1/scrape/twitch/profile
**Twitch Profile.** Returns structured JSON for **Twitch Profile**. Billed **$0.0015 per successful call** ($1.49 per 1,000); errors, timeouts and rate limits are never charged, while a lookup whose target does not exist is billed like a successful call because the platform was queried. `POST` with a JSON body works too.
| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `x-api-key` | `string (header)` | required | Your HProxy API key with the scrape scope. |
| `handle` | `string (query)` | required | Account handle or @username. |
| `trim` | `boolean (query)` | optional | Return a slimmed-down payload (drops verbose fields). |
| `cache_max_age` | `string (query)` | optional | Accept a cached result up to this old (1d, 3d, 7d, 14d or 30d) and pay nothing for it. Omit for a live scrape. Allowed values: `1d`, `3d`, `7d`, `14d`, `30d`. |
**cURL**
```bash
curl "https://hproxy.com/api/v1/scrape/twitch/profile?handle=twitch" \
-H "X-API-Key: hpx_your_key_here"
```
**Response**
```json
{
"platform": "twitch",
"scraper": "twitch-profile",
"input": { "handle": "twitch" },
"data": { /* the Twitch payload, as structured JSON */ },
"records": 1,
"costUsd": 0.0015,
"walletDebitUsd": 0,
"requestId": "c4389b749c07d44209e4fb301",
"elapsedMs": 812
}
```
#### GET /api/v1/scrape/twitch/videos
**Twitch User Videos.** Returns structured JSON for **Twitch User Videos**. Billed **$0.0015 per successful call** ($1.49 per 1,000); errors, timeouts and rate limits are never charged, while a lookup whose target does not exist is billed like a successful call because the platform was queried. `POST` with a JSON body works too.
| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `x-api-key` | `string (header)` | required | Your HProxy API key with the scrape scope. |
| `handle` | `string (query)` | required | Account handle or @username. |
| `filter_by` | `string (query)` | optional | The filter by parameter. Allowed values: `HIGHLIGHT`, `ARCHIVE`, `UPLOAD`. |
| `sort_by` | `string (query)` | optional | Ordering to apply to the results. Allowed values: `TIME`, `VIEWS`. |
**cURL**
```bash
curl "https://hproxy.com/api/v1/scrape/twitch/videos?handle=twitch" \
-H "X-API-Key: hpx_your_key_here"
```
**Response**
```json
{
"platform": "twitch",
"scraper": "twitch-videos",
"input": { "handle": "twitch" },
"data": { /* the Twitch payload, as structured JSON */ },
"records": 1,
"costUsd": 0.0015,
"walletDebitUsd": 0,
"requestId": "c4389b749c07d44209e4fb301",
"elapsedMs": 812
}
```
#### GET /api/v1/scrape/twitch/clip
**Twitch Clip.** Returns structured JSON for **Twitch Clip**. Billed **$0.0015 per successful call** ($1.49 per 1,000); errors, timeouts and rate limits are never charged, while a lookup whose target does not exist is billed like a successful call because the platform was queried. `POST` with a JSON body works too.
| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `x-api-key` | `string (header)` | required | Your HProxy API key with the scrape scope. |
| `url` | `url (query)` | required | Target URL (profile, post or video). |
| `trim` | `boolean (query)` | optional | Return a slimmed-down payload (drops verbose fields). |
| `cache_max_age` | `string (query)` | optional | Accept a cached result up to this old (1d, 3d, 7d, 14d or 30d) and pay nothing for it. Omit for a live scrape. Allowed values: `1d`, `3d`, `7d`, `14d`, `30d`. |
**cURL**
```bash
curl "https://hproxy.com/api/v1/scrape/twitch/clip?url=https://www.twitch.tv/twitch" \
-H "X-API-Key: hpx_your_key_here"
```
**Response**
```json
{
"platform": "twitch",
"scraper": "twitch-clip",
"input": { "url": "https://www.twitch.tv/twitch" },
"data": { /* the Twitch payload, as structured JSON */ },
"records": 1,
"costUsd": 0.0015,
"walletDebitUsd": 0,
"requestId": "c4389b749c07d44209e4fb301",
"elapsedMs": 812
}
```
#### GET /api/v1/scrape/twitch/schedule
**Twitch User Schedule.** Returns structured JSON for **Twitch User Schedule**. Billed **$0.0015 per successful call** ($1.49 per 1,000); errors, timeouts and rate limits are never charged, while a lookup whose target does not exist is billed like a successful call because the platform was queried. `POST` with a JSON body works too.
| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `x-api-key` | `string (header)` | required | Your HProxy API key with the scrape scope. |
| `handle` | `string (query)` | required | Account handle or @username. |
| `trim` | `boolean (query)` | optional | Return a slimmed-down payload (drops verbose fields). |
**cURL**
```bash
curl "https://hproxy.com/api/v1/scrape/twitch/schedule?handle=twitch" \
-H "X-API-Key: hpx_your_key_here"
```
**Response**
```json
{
"platform": "twitch",
"scraper": "twitch-schedule",
"input": { "handle": "twitch" },
"data": { /* the Twitch payload, as structured JSON */ },
"records": 1,
"costUsd": 0.0015,
"walletDebitUsd": 0,
"requestId": "c4389b749c07d44209e4fb301",
"elapsedMs": 812
}
```
## Snapchat scraper API
*Every Snapchat scraper endpoint: 1 action returning structured JSON from $0.0015 per call. No proxies, no captchas, no infrastructure.*
URL: https://hproxy.com/docs/scrapers/snapchat
All 1 Snapchat endpoints, from **$0.0015 per call**. Each is callable as `GET https://hproxy.com/api/v1/scrape/snapchat/{action}` (or `POST` with a JSON body) using a key with the `scrape` scope. No proxies, captchas or parsing to manage, it is all included in the price, and errors, timeouts and rate limits are never billed. See the [full catalog](https://hproxy.com/docs/scrapers/catalog) for every platform, or the [Snapchat landing page](https://hproxy.com/scrapers/snapchat) for examples and use cases.
#### GET /api/v1/scrape/snapchat/profile
**Snapchat Profile.** Returns structured JSON for **Snapchat Profile**. Billed **$0.0015 per successful call** ($1.49 per 1,000); errors, timeouts and rate limits are never charged, while a lookup whose target does not exist is billed like a successful call because the platform was queried. `POST` with a JSON body works too.
| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `x-api-key` | `string (header)` | required | Your HProxy API key with the scrape scope. |
| `handle` | `string (query)` | required | Account handle or @username. |
| `trim` | `boolean (query)` | optional | Return a slimmed-down payload (drops verbose fields). |
**cURL**
```bash
curl "https://hproxy.com/api/v1/scrape/snapchat/profile?handle=team.snapchat" \
-H "X-API-Key: hpx_your_key_here"
```
**Response**
```json
{
"platform": "snapchat",
"scraper": "snapchat-profile",
"input": { "handle": "team.snapchat" },
"data": { /* the Snapchat payload, as structured JSON */ },
"records": 1,
"costUsd": 0.0015,
"walletDebitUsd": 0,
"requestId": "c4389b749c07d44209e4fb301",
"elapsedMs": 812
}
```
## Spotify scraper API
*Every Spotify scraper endpoint: 3 actions returning structured JSON from $0.0015 per call. No proxies, no captchas, no infrastructure.*
URL: https://hproxy.com/docs/scrapers/spotify
All 3 Spotify endpoints, from **$0.0015 per call**. Each is callable as `GET https://hproxy.com/api/v1/scrape/spotify/{action}` (or `POST` with a JSON body) using a key with the `scrape` scope. No proxies, captchas or parsing to manage, it is all included in the price, and errors, timeouts and rate limits are never billed. See the [full catalog](https://hproxy.com/docs/scrapers/catalog) for every platform, or the [Spotify landing page](https://hproxy.com/scrapers/spotify) for examples and use cases.
#### GET /api/v1/scrape/spotify/artist
**Spotify Artist.** Returns structured JSON for **Spotify Artist**. Billed **$0.0015 per successful call** ($1.49 per 1,000); errors, timeouts and rate limits are never charged, while a lookup whose target does not exist is billed like a successful call because the platform was queried. `POST` with a JSON body works too.
| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `x-api-key` | `string (header)` | required | Your HProxy API key with the scrape scope. |
| `id` | `string (query)` | required | Identifier from a previous response. Send this **or** `url`. |
| `url` | `url (query)` | required | Target URL (profile, post or video). Send this **or** `id`. |
**cURL**
```bash
curl "https://hproxy.com/api/v1/scrape/spotify/artist?url=https://open.spotify.com/artist/06HL4z0CvFAxyc27GXpf02" \
-H "X-API-Key: hpx_your_key_here"
```
**Response**
```json
{
"platform": "spotify",
"scraper": "spotify-artist",
"input": { },
"data": { /* the Spotify payload, as structured JSON */ },
"records": 1,
"costUsd": 0.0015,
"walletDebitUsd": 0,
"requestId": "c4389b749c07d44209e4fb301",
"elapsedMs": 812
}
```
#### GET /api/v1/scrape/spotify/track
**Spotify Track.** Returns structured JSON for **Spotify Track**. Billed **$0.0015 per successful call** ($1.49 per 1,000); errors, timeouts and rate limits are never charged, while a lookup whose target does not exist is billed like a successful call because the platform was queried. `POST` with a JSON body works too.
| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `x-api-key` | `string (header)` | required | Your HProxy API key with the scrape scope. |
| `id` | `string (query)` | required | Identifier from a previous response. Send this **or** `url`. |
| `url` | `url (query)` | required | Target URL (profile, post or video). Send this **or** `id`. |
**cURL**
```bash
curl "https://hproxy.com/api/v1/scrape/spotify/track?url=https://open.spotify.com/artist/06HL4z0CvFAxyc27GXpf02" \
-H "X-API-Key: hpx_your_key_here"
```
**Response**
```json
{
"platform": "spotify",
"scraper": "spotify-track",
"input": { },
"data": { /* the Spotify payload, as structured JSON */ },
"records": 1,
"costUsd": 0.0015,
"walletDebitUsd": 0,
"requestId": "c4389b749c07d44209e4fb301",
"elapsedMs": 812
}
```
#### GET /api/v1/scrape/spotify/album
**Spotify Album.** Returns structured JSON for **Spotify Album**. Billed **$0.0015 per successful call** ($1.49 per 1,000); errors, timeouts and rate limits are never charged, while a lookup whose target does not exist is billed like a successful call because the platform was queried. `POST` with a JSON body works too.
| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `x-api-key` | `string (header)` | required | Your HProxy API key with the scrape scope. |
| `id` | `string (query)` | required | Identifier from a previous response. Send this **or** `url`. |
| `url` | `url (query)` | required | Target URL (profile, post or video). Send this **or** `id`. |
**cURL**
```bash
curl "https://hproxy.com/api/v1/scrape/spotify/album?url=https://open.spotify.com/artist/06HL4z0CvFAxyc27GXpf02" \
-H "X-API-Key: hpx_your_key_here"
```
**Response**
```json
{
"platform": "spotify",
"scraper": "spotify-album",
"input": { },
"data": { /* the Spotify payload, as structured JSON */ },
"records": 1,
"costUsd": 0.0015,
"walletDebitUsd": 0,
"requestId": "c4389b749c07d44209e4fb301",
"elapsedMs": 812
}
```
## SoundCloud scraper API
*Every SoundCloud scraper endpoint: 1 action returning structured JSON from $0.0015 per call. No proxies, no captchas, no infrastructure.*
URL: https://hproxy.com/docs/scrapers/soundcloud
All 1 SoundCloud endpoints, from **$0.0015 per call**. Each is callable as `GET https://hproxy.com/api/v1/scrape/soundcloud/{action}` (or `POST` with a JSON body) using a key with the `scrape` scope. No proxies, captchas or parsing to manage, it is all included in the price, and errors, timeouts and rate limits are never billed. See the [full catalog](https://hproxy.com/docs/scrapers/catalog) for every platform, or the [SoundCloud landing page](https://hproxy.com/scrapers/soundcloud) for examples and use cases.
#### GET /api/v1/scrape/soundcloud/artist
**SoundCloud Artist.** Returns structured JSON for **SoundCloud Artist**. Billed **$0.0015 per successful call** ($1.49 per 1,000); errors, timeouts and rate limits are never charged, while a lookup whose target does not exist is billed like a successful call because the platform was queried. `POST` with a JSON body works too.
| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `x-api-key` | `string (header)` | required | Your HProxy API key with the scrape scope. |
| `handle` | `string (query)` | required | Account handle or @username. Send this **or** `url`. |
| `url` | `url (query)` | required | Target URL (profile, post or video). Send this **or** `handle`. |
**cURL**
```bash
curl "https://hproxy.com/api/v1/scrape/soundcloud/artist?handle=soundcloud" \
-H "X-API-Key: hpx_your_key_here"
```
**Response**
```json
{
"platform": "soundcloud",
"scraper": "soundcloud-artist",
"input": { },
"data": { /* the SoundCloud payload, as structured JSON */ },
"records": 1,
"costUsd": 0.0015,
"walletDebitUsd": 0,
"requestId": "c4389b749c07d44209e4fb301",
"elapsedMs": 812
}
```
## Kick scraper API
*Every Kick scraper endpoint: 1 action returning structured JSON from $0.0015 per call. No proxies, no captchas, no infrastructure.*
URL: https://hproxy.com/docs/scrapers/kick
All 1 Kick endpoints, from **$0.0015 per call**. Each is callable as `GET https://hproxy.com/api/v1/scrape/kick/{action}` (or `POST` with a JSON body) using a key with the `scrape` scope. No proxies, captchas or parsing to manage, it is all included in the price, and errors, timeouts and rate limits are never billed. See the [full catalog](https://hproxy.com/docs/scrapers/catalog) for every platform, or the [Kick landing page](https://hproxy.com/scrapers/kick) for examples and use cases.
#### GET /api/v1/scrape/kick/clip
**Kick Clip.** Returns structured JSON for **Kick Clip**. Billed **$0.0015 per successful call** ($1.49 per 1,000); errors, timeouts and rate limits are never charged, while a lookup whose target does not exist is billed like a successful call because the platform was queried. `POST` with a JSON body works too.
| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `x-api-key` | `string (header)` | required | Your HProxy API key with the scrape scope. |
| `url` | `url (query)` | required | Target URL (profile, post or video). |
| `trim` | `boolean (query)` | optional | Return a slimmed-down payload (drops verbose fields). |
**cURL**
```bash
curl "https://hproxy.com/api/v1/scrape/kick/clip?url=https://kick.com/trainwreckstv" \
-H "X-API-Key: hpx_your_key_here"
```
**Response**
```json
{
"platform": "kick",
"scraper": "kick-clip",
"input": { "url": "https://kick.com/trainwreckstv" },
"data": { /* the Kick payload, as structured JSON */ },
"records": 1,
"costUsd": 0.0015,
"walletDebitUsd": 0,
"requestId": "c4389b749c07d44209e4fb301",
"elapsedMs": 812
}
```
## Linktree scraper API
*Every Linktree scraper endpoint: 1 action returning structured JSON from $0.0015 per call. No proxies, no captchas, no infrastructure.*
URL: https://hproxy.com/docs/scrapers/linktree
All 1 Linktree endpoints, from **$0.0015 per call**. Each is callable as `GET https://hproxy.com/api/v1/scrape/linktree/{action}` (or `POST` with a JSON body) using a key with the `scrape` scope. No proxies, captchas or parsing to manage, it is all included in the price, and errors, timeouts and rate limits are never billed. See the [full catalog](https://hproxy.com/docs/scrapers/catalog) for every platform, or the [Linktree landing page](https://hproxy.com/scrapers/linktree) for examples and use cases.
#### GET /api/v1/scrape/linktree/page
**Linktree Page.** Returns structured JSON for **Linktree Page**. Billed **$0.0015 per successful call** ($1.49 per 1,000); errors, timeouts and rate limits are never charged, while a lookup whose target does not exist is billed like a successful call because the platform was queried. `POST` with a JSON body works too.
| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `x-api-key` | `string (header)` | required | Your HProxy API key with the scrape scope. |
| `url` | `url (query)` | required | Target URL (profile, post or video). |
| `trim` | `boolean (query)` | optional | Return a slimmed-down payload (drops verbose fields). |
| `cache_max_age` | `string (query)` | optional | Accept a cached result up to this old (1d, 3d, 7d, 14d or 30d) and pay nothing for it. Omit for a live scrape. Allowed values: `1d`, `3d`, `7d`, `14d`, `30d`. |
**cURL**
```bash
curl "https://hproxy.com/api/v1/scrape/linktree/page?url=https://linktr.ee/nasa" \
-H "X-API-Key: hpx_your_key_here"
```
**Response**
```json
{
"platform": "linktree",
"scraper": "linktree-page",
"input": { "url": "https://linktr.ee/nasa" },
"data": { /* the Linktree payload, as structured JSON */ },
"records": 1,
"costUsd": 0.0015,
"walletDebitUsd": 0,
"requestId": "c4389b749c07d44209e4fb301",
"elapsedMs": 812
}
```
## Komi scraper API
*Every Komi scraper endpoint: 1 action returning structured JSON from $0.0015 per call. No proxies, no captchas, no infrastructure.*
URL: https://hproxy.com/docs/scrapers/komi
All 1 Komi endpoints, from **$0.0015 per call**. Each is callable as `GET https://hproxy.com/api/v1/scrape/komi/{action}` (or `POST` with a JSON body) using a key with the `scrape` scope. No proxies, captchas or parsing to manage, it is all included in the price, and errors, timeouts and rate limits are never billed. See the [full catalog](https://hproxy.com/docs/scrapers/catalog) for every platform, or the [Komi landing page](https://hproxy.com/scrapers/komi) for examples and use cases.
#### GET /api/v1/scrape/komi/page
**Komi Page.** Returns structured JSON for **Komi Page**. Billed **$0.0015 per successful call** ($1.49 per 1,000); errors, timeouts and rate limits are never charged, while a lookup whose target does not exist is billed like a successful call because the platform was queried. `POST` with a JSON body works too.
| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `x-api-key` | `string (header)` | required | Your HProxy API key with the scrape scope. |
| `url` | `url (query)` | required | Target URL (profile, post or video). |
| `trim` | `boolean (query)` | optional | Return a slimmed-down payload (drops verbose fields). |
| `cache_max_age` | `string (query)` | optional | Accept a cached result up to this old (1d, 3d, 7d, 14d or 30d) and pay nothing for it. Omit for a live scrape. Allowed values: `1d`, `3d`, `7d`, `14d`, `30d`. |
**cURL**
```bash
curl "https://hproxy.com/api/v1/scrape/komi/page?url=https://komi.io/komi" \
-H "X-API-Key: hpx_your_key_here"
```
**Response**
```json
{
"platform": "komi",
"scraper": "komi-page",
"input": { "url": "https://komi.io/komi" },
"data": { /* the Komi payload, as structured JSON */ },
"records": 1,
"costUsd": 0.0015,
"walletDebitUsd": 0,
"requestId": "c4389b749c07d44209e4fb301",
"elapsedMs": 812
}
```
## Pillar scraper API
*Every Pillar scraper endpoint: 1 action returning structured JSON from $0.0015 per call. No proxies, no captchas, no infrastructure.*
URL: https://hproxy.com/docs/scrapers/pillar
All 1 Pillar endpoints, from **$0.0015 per call**. Each is callable as `GET https://hproxy.com/api/v1/scrape/pillar/{action}` (or `POST` with a JSON body) using a key with the `scrape` scope. No proxies, captchas or parsing to manage, it is all included in the price, and errors, timeouts and rate limits are never billed. See the [full catalog](https://hproxy.com/docs/scrapers/catalog) for every platform, or the [Pillar landing page](https://hproxy.com/scrapers/pillar) for examples and use cases.
#### GET /api/v1/scrape/pillar/page
**Pillar Page.** Returns structured JSON for **Pillar Page**. Billed **$0.0015 per successful call** ($1.49 per 1,000); errors, timeouts and rate limits are never charged, while a lookup whose target does not exist is billed like a successful call because the platform was queried. `POST` with a JSON body works too.
| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `x-api-key` | `string (header)` | required | Your HProxy API key with the scrape scope. |
| `url` | `url (query)` | required | Target URL (profile, post or video). |
| `trim` | `boolean (query)` | optional | Return a slimmed-down payload (drops verbose fields). |
| `cache_max_age` | `string (query)` | optional | Accept a cached result up to this old (1d, 3d, 7d, 14d or 30d) and pay nothing for it. Omit for a live scrape. Allowed values: `1d`, `3d`, `7d`, `14d`, `30d`. |
**cURL**
```bash
curl "https://hproxy.com/api/v1/scrape/pillar/page?url=https://pillar.io/pillar" \
-H "X-API-Key: hpx_your_key_here"
```
**Response**
```json
{
"platform": "pillar",
"scraper": "pillar-page",
"input": { "url": "https://pillar.io/pillar" },
"data": { /* the Pillar payload, as structured JSON */ },
"records": 1,
"costUsd": 0.0015,
"walletDebitUsd": 0,
"requestId": "c4389b749c07d44209e4fb301",
"elapsedMs": 812
}
```
## Lnk.Bio scraper API
*Every Lnk.Bio scraper endpoint: 1 action returning structured JSON from $0.0015 per call. No proxies, no captchas, no infrastructure.*
URL: https://hproxy.com/docs/scrapers/linkbio
All 1 Lnk.Bio endpoints, from **$0.0015 per call**. Each is callable as `GET https://hproxy.com/api/v1/scrape/linkbio/{action}` (or `POST` with a JSON body) using a key with the `scrape` scope. No proxies, captchas or parsing to manage, it is all included in the price, and errors, timeouts and rate limits are never billed. See the [full catalog](https://hproxy.com/docs/scrapers/catalog) for every platform, or the [Lnk.Bio landing page](https://hproxy.com/scrapers/linkbio) for examples and use cases.
#### GET /api/v1/scrape/linkbio/page
**Linkbio Page.** Returns structured JSON for **Linkbio Page**. Billed **$0.0015 per successful call** ($1.49 per 1,000); errors, timeouts and rate limits are never charged, while a lookup whose target does not exist is billed like a successful call because the platform was queried. `POST` with a JSON body works too.
| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `x-api-key` | `string (header)` | required | Your HProxy API key with the scrape scope. |
| `url` | `url (query)` | required | Target URL (profile, post or video). |
| `trim` | `boolean (query)` | optional | Return a slimmed-down payload (drops verbose fields). |
| `cache_max_age` | `string (query)` | optional | Accept a cached result up to this old (1d, 3d, 7d, 14d or 30d) and pay nothing for it. Omit for a live scrape. Allowed values: `1d`, `3d`, `7d`, `14d`, `30d`. |
**cURL**
```bash
curl "https://hproxy.com/api/v1/scrape/linkbio/page?url=https://lnk.bio/linkbio" \
-H "X-API-Key: hpx_your_key_here"
```
**Response**
```json
{
"platform": "linkbio",
"scraper": "linkbio-page",
"input": { "url": "https://lnk.bio/linkbio" },
"data": { /* the Lnk.Bio payload, as structured JSON */ },
"records": 1,
"costUsd": 0.0015,
"walletDebitUsd": 0,
"requestId": "c4389b749c07d44209e4fb301",
"elapsedMs": 812
}
```
## Linkme scraper API
*Every Linkme scraper endpoint: 1 action returning structured JSON from $0.0015 per call. No proxies, no captchas, no infrastructure.*
URL: https://hproxy.com/docs/scrapers/linkme
All 1 Linkme endpoints, from **$0.0015 per call**. Each is callable as `GET https://hproxy.com/api/v1/scrape/linkme/{action}` (or `POST` with a JSON body) using a key with the `scrape` scope. No proxies, captchas or parsing to manage, it is all included in the price, and errors, timeouts and rate limits are never billed. See the [full catalog](https://hproxy.com/docs/scrapers/catalog) for every platform, or the [Linkme landing page](https://hproxy.com/scrapers/linkme) for examples and use cases.
#### GET /api/v1/scrape/linkme/page
**Linkme Profile.** Returns structured JSON for **Linkme Profile**. Billed **$0.0015 per successful call** ($1.49 per 1,000); errors, timeouts and rate limits are never charged, while a lookup whose target does not exist is billed like a successful call because the platform was queried. `POST` with a JSON body works too.
| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `x-api-key` | `string (header)` | required | Your HProxy API key with the scrape scope. |
| `url` | `url (query)` | required | Target URL (profile, post or video). |
| `trim` | `boolean (query)` | optional | Return a slimmed-down payload (drops verbose fields). |
| `cache_max_age` | `string (query)` | optional | Accept a cached result up to this old (1d, 3d, 7d, 14d or 30d) and pay nothing for it. Omit for a live scrape. Allowed values: `1d`, `3d`, `7d`, `14d`, `30d`. |
**cURL**
```bash
curl "https://hproxy.com/api/v1/scrape/linkme/page?url=https://link.me/linkme" \
-H "X-API-Key: hpx_your_key_here"
```
**Response**
```json
{
"platform": "linkme",
"scraper": "linkme-page",
"input": { "url": "https://link.me/linkme" },
"data": { /* the Linkme payload, as structured JSON */ },
"records": 1,
"costUsd": 0.0015,
"walletDebitUsd": 0,
"requestId": "c4389b749c07d44209e4fb301",
"elapsedMs": 812
}
```
## Amazon scraper API
*Every Amazon scraper endpoint: 1 action returning structured JSON from $0.0015 per call. No proxies, no captchas, no infrastructure.*
URL: https://hproxy.com/docs/scrapers/amazon
All 1 Amazon endpoints, from **$0.0015 per call**. Each is callable as `GET https://hproxy.com/api/v1/scrape/amazon/{action}` (or `POST` with a JSON body) using a key with the `scrape` scope. No proxies, captchas or parsing to manage, it is all included in the price, and errors, timeouts and rate limits are never billed. See the [full catalog](https://hproxy.com/docs/scrapers/catalog) for every platform, or the [Amazon landing page](https://hproxy.com/scrapers/amazon) for examples and use cases.
#### GET /api/v1/scrape/amazon/shop
**Amazon Shop Page.** Returns structured JSON for **Amazon Shop Page**. Billed **$0.0015 per successful call** ($1.49 per 1,000); errors, timeouts and rate limits are never charged, while a lookup whose target does not exist is billed like a successful call because the platform was queried. `POST` with a JSON body works too.
| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `x-api-key` | `string (header)` | required | Your HProxy API key with the scrape scope. |
| `url` | `url (query)` | required | Target URL (profile, post or video). |
| `trim` | `boolean (query)` | optional | Return a slimmed-down payload (drops verbose fields). |
**cURL**
```bash
curl "https://hproxy.com/api/v1/scrape/amazon/shop?url=https://www.amazon.com/stores/page/EXAMPLE" \
-H "X-API-Key: hpx_your_key_here"
```
**Response**
```json
{
"platform": "amazon",
"scraper": "amazon-shop",
"input": { "url": "https://www.amazon.com/stores/page/EXAMPLE" },
"data": { /* the Amazon payload, as structured JSON */ },
"records": 1,
"costUsd": 0.0015,
"walletDebitUsd": 0,
"requestId": "c4389b749c07d44209e4fb301",
"elapsedMs": 812
}
```