GET /books/artifacts/{artifact_id}/content
Get Artifact Content
Parameters
artifact_id path · requiredRange header · optionalResponse · 200
Successful Response
Errors
HTTP 422· Validation Error
Documentation
Guides and API reference for browser automation, proxy connections, and research with Hive.
Getting started
Use your Hive API key in the Authorization: Bearer $HIVE_API_KEY header. Send JSON request bodies with Content-Type: application/json. Keep your key on your server.
Examples use https://hive.arglegal.live as the base URL. Check GET /capabilities before requesting a service. Use a unique Idempotency-Key for tunnel creation and Books submissions; reuse it only when repeating the same request.
Quick start
Set HIVE_API_KEY in your environment, then run this request. The response includes its selected browser family, profile ID and automation endpoint.
curl --fail-with-body -X POST "https://hive.arglegal.live/browser/session" \
-H "Authorization: Bearer $HIVE_API_KEY" \
-H "Content-Type: application/json" \
-d '{}'Browsers use direct access from Hive by default. To enable a managed proxy, send {"use_proxy":true,"country":"AR"}. Country, region, ASN, mobile network, and identity constraints apply to proxy connections. A country value alone does not change a direct session’s exit IP.
Next, follow the browser automation guide to open a page with Playwright.
Browser transport
Create a reusable profile with POST /browser/profiles and {"browser":"chrome"} or {"browser":"firefox"}. Omit the family for a random choice. Chrome uses Donut; Firefox uses Camoufox.
Save the returned id, then create sessions with {"profile_id":"YOUR_PROFILE_ID"}. Cookies, origin storage and fingerprint survive session closure and service replacement. Use the existing context shown below.
Add {"network":{"country":"AR","asn":"7303","region":"Buenos Aires"}} when creating a profile to save its proxy policy. A profile also binds on its first managed proxy launch. Later sessions need only the profile ID: Hive restores the network settings, verifies a matching exit and applies its locale and timezone. Replacements retain the saved ASN, region and timezone; unavailable matches return 503. Inspect network.last_exit on the profile for the last verified IP. Sticky routing does not guarantee a permanent IP.
Profiles belong to your API key. Active reuse and conflicting selections return 409; unknown profiles return 404. Close the session before reuse or deletion. Unavailable engines fail without switching your identity.
import os
from playwright.sync_api import sync_playwright
auth = {"Authorization": "Bearer " + os.environ["HIVE_API_KEY"]}
# session is the result of POST /browser/session.
with sync_playwright() as p:
browser = (p.firefox.connect(session["ws_endpoint"], headers=auth)
if session["browser"] == "firefox" else
p.chromium.connect_over_cdp(session["cdp_url"], headers=auth))
context = browser.contexts[0]
page = context.pages[0] if context.pages else context.new_page()
page.goto("https://example.com")
browser.close()
# DELETE /browser/session?session_id=... to release the lease.Network transport
import httpx
from urllib.parse import quote
# tunnel is the result of POST /network/tunnels.
ep = tunnel["endpoints"]["http"]
credentials = tunnel["credentials"]
user = quote(credentials["username"], safe="")
password = quote(credentials["password"], safe="")
proxy = f"http://{user}:{password}@{ep['host']}:{ep['port']}"
with httpx.Client(proxy=proxy, timeout=30) as client:
response = client.get("https://example.com")
response.raise_for_status()
# SOCKS clients use endpoints.socks5 with socks5h:// for remote DNS.Resources & exchanges
Create a resource with POST /resources/phone, /resources/mail, /resources/captcha, or /resources/network. Keep the returned resource_id. Read the recorded state with GET, poll for progress with POST, and DELETE the resource when finished.
Phone requests use service and a two-letter country. Mail can specify a domain. Captcha requests use captcha_type with site_key and page_url, or image_b64 for an image. For a browser-bound challenge, supply browser_context with the submitting browser’s user_agent and relevant cookies. Cookie entries use name, value, domain, path, and optional http_only, secure, and expires. Hive forwards that context for the solve without storing cookie values in resource records. A token is ready to submit when the resource becomes ready; the target website still decides whether to accept it. The reference below lists each field.
Exchanges return one result: send messages to POST /exchange/llm or a prompt to POST /exchange/image.
{
"messages": [
{
"role": "user",
"content": "Summarize this paragraph."
}
],
"max_tokens": 200
}Research
Search for people, find company employees, and retrieve public profiles, posts, comments, and reactions. Use filters and pagination to select the results you need.
Check /capabilities for service availability and the API reference for each operation’s request fields. Pagination is finite: limit is 1–1000, page is 1–100, and pages is 1–20, with tighter limits on individual target and filter lists.
POST /scrapers/linkedin/people/searchPOST /scrapers/linkedin/company/employeesPOST /scrapers/linkedin/profile/detailsPOST /scrapers/linkedin/profile/postsPOST /scrapers/linkedin/post/searchPOST /scrapers/linkedin/post/commentsPOST /scrapers/linkedin/profile/commentsPOST /scrapers/linkedin/profile/reactions{
"profiles": [
"https://www.linkedin.com/in/<profile-id>/"
],
"detail_level": "full"
}Public research
Find candidate people and retrieve public profiles and posts on Instagram, X, Facebook, and TikTok; search Facebook groups, Reddit posts and comments, X quotes and Spaces, and saved Instagram Highlight stories. Discover username candidates with Sherlock, search Google, and find image matches or text with Google Lens. Use the same Hive bearer key and strict snake_case JSON bodies for every operation. Unknown fields and invalid targets are rejected before work begins.
Profile requests accept 1–10 handles or canonical public URLs in profiles. Facebook also accepts numeric IDs and profile.php URLs. Results contain items, count, and unresolved. Each entry echoes the exact target and zero-based input_index, in input order, including duplicates. Unresolved reasons are not_found, private, unavailable, malformed_data, or ambiguous; omitted profiles are unavailable, not proof of nonexistence. Resolved entries include public source links, and available identity, biography, image, verification, and count fields. Missing optional fields are omitted; profiles can be private, sparse, renamed, or unavailable.
Sherlock accepts 1–5 usernames of up to 64 characters and a limit of 1–100 per distinct username (default 20). Every result has username, site, profile_url, and status: candidate. Matching handles do not establish identity. truncated: true means a work or result limit omitted results; null means completeness is unknown.
Google accepts 1–5 queries, each up to 512 characters and 32 words; pages is 1–3 per query (default 1), and limit is 1–100 results per distinct query (default 20). Optional country and language select a supported two-letter country and search interface language. Organic results preserve query, rank, title, url, and an optional snippet.
Google Lens accepts one public HTTPS image_url or a private uploaded asset_id without credentials or private addresses, plus distinct search_types: visual, exact, and/or text. The URL is at most 4096 characters. limit is 1–100 total records (default 20), interleaved in requested type order. Visual and exact matches carry a title and public URL with optional image metadata; text records carry extracted text. A valid search may return no matches. Results do not promise completeness, totals, or a next page.
Google and Sherlock return up to 500 items for five inputs, grouped in input order; duplicate inputs are collected once. Sherlock scans each username independently so earlier inputs cannot consume later inputs’ collection windows. X account creation dates use ISO 8601 UTC; an ambiguous verification flag without badge type or blue status becomes null.
operation_health provides each operation’s reason, observed_at (Unix time), and retry_after_s. Reasons distinguish rate limiting, timeout, invalid response, limited capacity, service unavailability, missing resources and invalid requests. Capacity is shared across operations and bearer keys on the deployment. Retry timing is a minimum recheck delay; a null value means no delay is known. Elapsed time does not establish recovery. Accounting recovery can clear a capacity failure to unverified until a new search succeeds. Job recovery still uses the original key.
Read scrapers.<name>.status and operation_status from GET /capabilities. unconfigured means no active configuration; configured means all operations are unverified; usable means at least one observed success with no recorded failure; degraded means an operation has a known failure. A usable LinkedIn service does not establish that all eight operations work. Observations survive restart and reset when service configuration changes. Discovery never launches research.
Calls have finite execution limits and create no lease. Do not automatically repeat a timed-out or disconnected research call: work may already have completed. Social posts and people search support same-key recovery, as do Lens jobs. The older synchronous LinkedIn, profile/details, Sherlock, Google and Lens search routes do not support idempotent replay. Errors use bad_request, unauthorized, not_found, idempotency_conflict, expired, rate_limited, unavailable, or upstream_timeout. Invalid Hive authentication returns 401. Invalid fields return 400 with safe field detail before execution. Service failures return 503 unavailable; retained job errors and capability operation status use the same code. Keep using your Hive key. Respect retry_after_s when present.
Upload private image bytes with POST /scrapers/assets and Content-Type image/jpeg, image/png, or image/webp (10 MiB maximum). Use the returned asset_id instead of image_url. Images are encrypted, bearer-scoped, and retained for 24 hours. Their bytes are sent to the image-search service for the requested search. Download with GET /scrapers/assets/{asset_id}; delete with DELETE /scrapers/assets/{asset_id}.
Submit Lens work through POST /scrapers/google_lens/jobs with a required Idempotency-Key. The 202 response contains a poll_url for GET /scrapers/google_lens/jobs/{job_id}. Repeat the same key and body after a lost submission to retrieve the same job. Poll until completed (with result), failed, or outcome_unknown. An interrupted run is never automatically restarted. Results expire after 24 hours (410); keys stay reserved for seven days. Different bodies under one key return 409.
Lens unwraps supported Google redirect links. Embedded thumbnails have a bearer-authenticated Hive image_url, image_sha256, and image_kind: thumbnail. These hashes identify the returned thumbnail bytes, not full-resolution originals. Resolve relative image paths against your Hive origin; send your Hive key only to Hive, never to public image hosts.
Instagram, X, Facebook and TikTok expose native people/search: a free-text query (1–200 characters), up to five locations hints (1–100 characters), and limit 1–50. Hints are appended in caller order to one query; ambiguous names remain text, and city and employer filters are not enforced. The response reports effective_query, location_handling and filters_enforced: false. Instagram commas become spaces to keep one search. Candidates reuse profile fields and add the exact query, absolute rank, status: candidate and missing_fields. Missing biography/avatar fields remain null; collection-wide partial status is carried on every page. Facebook returns people with canonical profile URLs and nullable usernames or IDs; its location line is not a biography. Opaque people links retain their source URL without an inferred handle or numeric ID; details/posts require supported handle or numeric targets. Facebook cards without a usable source profile URL are omitted and make the whole collection partial; if every returned card is unusable, the search fails. TikTok returns user cards. Candidates are not verified identities and have no lookup target attribution.
People search uses the same job, key and cached-page workflow as posts, with at most 50 candidates in native order after identity deduplication. Keep the same query, locations and limit on later pages. No extra profile enrichment occurs. Replays and cached pages never repeat a search. A valid empty result differs from a failed search; completeness remains unknown. Check discovery health separately from profile lookup and posts in operation_status.
Instagram, X, Facebook and TikTok also expose profile/posts. Initial requests require Idempotency-Key; send Prefer: respond-async for a prompt 202 job, or wait up to 20 seconds for a page. Poll GET /scrapers/jobs/{job_id} with your bearer. Repeat the original key and body to recover the same job; results expire after 24 hours.
Posts accept 1–10 profiles and a total page limit of 1–50. Later pages send the same body plus result_id and page, without requiring a key or starting another collection. Recent jobs collect up to 50 posts per target by default (40 for Facebook, up to 100 for X) and 500 attributed items. Target outcomes preserve input order and duplicates. Source authors, carousel order, video thumbnails, actual tags and separate caption mentions are preserved. Facebook covers public people and pages, including numeric profiles. TikTok preserves ordered slideshow photos, playable references when supplied, and separate cover thumbnails. A post page URL is not video bytes. Null metadata and history_complete: null indicate unknown information. Public media references can expire; send Hive credentials only to Hive.
For older posts on any of the four services, submit one profile with archive: true. X, TikTok, Instagram and Facebook Pages use archive_end_date and archive_window_days (1–30); Pages also require archive_kind: page. X supports media_filter: images or videos. Facebook personal profiles use archive_kind: person and a cursor without dates; set per_target_limit to at least 5 (default 100) so cursors can advance. Read all cached pages first. Continue Instagram within a date window and Facebook personal profiles by submitting next_archive_cursor as archive_cursor in a new job. Hive filters repeated Facebook personal posts and marks a stalled cursor partial. When an Instagram window has no cursor, use next_archive_end_date to search older dates. X, TikTok and Facebook Pages continue directly with next_archive_end_date. Use a new idempotency key per job. Narrow a truncated date window when no cursor is available. X and TikTok allow up to 1,000 posts per archive window; Instagram and Facebook allow up to 500. Provider coverage cannot prove a complete platform history.
For deeper X collection, submit POST /scrapers/x/profile/dumps with one profiles entry and an Idempotency-Key. Poll GET /scrapers/x/profile/dumps/{job_id}, then page deduplicated posts at GET /scrapers/x/profile/dumps/{job_id}/posts with after=0 and each returned next_after. A running job can add posts after has_more: false. Continue partial jobs with POST /scrapers/x/profile/dumps/{job_id}/resume; retry_stalled=true revisits a cursor cycle. Posts include photo and video source URLs, including video variants; clients download media bytes themselves. history_coverage compares the collected post count with X's displayed count, and timelines_exhausted means X stopped offering cursors. Neither proves complete account history.
Set retain_media: true to preserve returned photos and video thumbnails as private JPEG/PNG/WebP evidence. Each media item reports retention_status, a fixed retention_reason, and an optional asset with its authenticated relative URL, exact-byte SHA-256, size, MIME and expiry. The original source URL and original/thumbnail role remain separate. Recent jobs allow 20 unique images, 32 MiB and 30 seconds; archive jobs allow 100 images, 96 MiB and 120 seconds. Each image is capped at 10 MiB and 40 million pixels. Assets share the bearer/global image quotas and expire after 24 hours. Videos remain public references. media_count_reported and media_complete identify known missing images: Instagram archive carousels currently supply only their first slide and mark the page partial. Unresolved targets, media failures and retention limits also set collection-wide partial status. Duplicate sources reuse assets; replay never redownloads, including after deletion or expiry. Keep the same retention value on cached page requests.
Read GET /scrapers/capacity for shared research availability and retry guidance. Recheck after a known retry delay; elapsed time does not prove recovery. Polling and replay preserve existing work, and individual requests can still be unavailable.
Keep the collection-wide partial status on every cached page when interpreting results. The last cached page does not establish complete account history.
Use an Idempotency-Key of 1–200 printable ASCII characters without spaces. It binds your bearer, service, operation, ordered business request and limit. A different body under the same key, or a changed body/limit with result_id, returns 409 idempotency_conflict. Foreign or wrong-operation references return 404 not_found; expired results return 410 expired. Replay tombstones reserve keys for seven days. Reads never renew expiry. A terminal failed or outcome_unknown job cannot relaunch through replay; keep the key after an interruption.
A 202 submission includes Location, Retry-After: 2 and, when requested, Preference-Applied: respond-async. Polling returns HTTP 200 with the job envelope; completion puts the first page under result. Completed replays and cached pages return HTTP 200 even with Prefer: respond-async. Initial collection starts at page 1; later pages are 1–500 and must stay inside the collected window. An out-of-window page returns 400 bad_request. Follow next_page until null. Polls, replays and cached pages perform zero additional work.
The Bash workflow below needs curl, jq and sha256sum. Choose one service/operation and preserve its key and request. It demonstrates an explicit same-key replay, bounded polling, a second cached page when available, and an authenticated image download. A thumbnail hash identifies that thumbnail’s exact bytes; an original image hash identifies the retained original bytes.
# Run in Bash with curl, jq and sha256sum installed.
set -euo pipefail
: "${HIVE_API_KEY:?Set your Hive bearer in the environment}"
HIVE_ORIGIN="https://hive.arglegal.live"
HIVE_SERVICE="instagram" # instagram, x, facebook or tiktok
HIVE_OPERATION="profile/posts"
# Keep this key and the exact request after a disconnect; use a new key only
# for an intentional new collection. Do not enable shell tracing.
HIVE_RESEARCH_KEY="investigation-social-001"
request='{"profiles":["nasa"],"limit":2,"retain_media":true}'
# For native people discovery instead, set these before calling submit:
# HIVE_OPERATION="people/search"
# request='{"query":"José García","locations":["Madrid"],"limit":2}'
submit() {
curl --fail-with-body --max-time 30 -sS \
"$HIVE_ORIGIN/scrapers/$HIVE_SERVICE/$HIVE_OPERATION" \
-H "Authorization: Bearer $HIVE_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: $HIVE_RESEARCH_KEY" \
-H "Prefer: respond-async" --data "$request"
}
reply="$(submit)"
# If the response was lost, run submit again with the SAME key and request.
# This explicit replay also demonstrates recovery without another collection.
reply="$(submit)"
for ((poll=0; poll<32; poll++)); do
status="$(jq -r '.status // "completed"' <<< "$reply")"
case "$status" in
completed) break ;;
failed|outcome_unknown)
jq '{job_id,status,error}' <<< "$reply"
exit 1 ;; # Keep the key; a new key would start separate work.
pending|running) ;;
*) exit 1 ;;
esac
poll_url="$(jq -r '.poll_url' <<< "$reply")"
[[ "$poll_url" =~ ^/scrapers/jobs/[a-zA-Z0-9_-]+$ ]]
reply="$(curl --fail-with-body --max-time 30 -sS \
"$HIVE_ORIGIN$poll_url?wait_seconds=25" -H "Authorization: Bearer $HIVE_API_KEY")"
done
[[ "$(jq -r '.status // "completed"' <<< "$reply")" == completed ]] || exit 1
page="$(jq '.result // .' <<< "$reply")"
jq '{result_id,page,count,collected_count,next_page,partial}' <<< "$page"
# The first completed page is stable. Follow next_page only when present.
if [[ "$(jq -r '.next_page' <<< "$page")" != null ]]; then
next_request="$(jq --argjson page "$page" \
'. + {result_id:$page.result_id,page:$page.next_page}' <<< "$request")"
curl --fail-with-body --max-time 30 -sS \
"$HIVE_ORIGIN/scrapers/$HIVE_SERVICE/$HIVE_OPERATION" \
-H "Authorization: Bearer $HIVE_API_KEY" \
-H "Content-Type: application/json" --data "$next_request"
fi
# Hash one retained original image or thumbnail from the first page.
asset="$(jq -c '[.items[].media[]? | select(.retention_status == "retained")][0] // null' <<< "$page")"
if [[ "$asset" != null ]]; then
asset_url="$(jq -r '.asset.url' <<< "$asset")"
[[ "$asset_url" =~ ^/scrapers/assets/[a-zA-Z0-9_-]+$ ]]
curl --fail-with-body --max-time 30 -sS \
"$HIVE_ORIGIN$asset_url" -H "Authorization: Bearer $HIVE_API_KEY" \
--output retained-image.bin
expected="$(jq -r '.asset.sha256' <<< "$asset")"
printf '%s retained-image.bin\n' "$expected" | sha256sum --check -
jq '{role,sha256:.asset.sha256,expires_at:.asset.expires_at}' <<< "$asset"
fiThese response shapes are illustrative. Social submission examples show the initial 202 job separately from the completed page under the polled result. A completed replay can return the page directly with 200. Public data and optional fields can differ.
POST /scrapers/instagram/profile/details{
"profiles": [
"nasa"
]
}{
"items": [
{
"username": "nasa",
"profile_url": "https://www.instagram.com/nasa/",
"display_name": "NASA",
"target": "nasa",
"input_index": 0
}
],
"count": 1,
"unresolved": []
}POST /scrapers/instagram/profile/posts{
"Idempotency-Key": "instagram-profile-posts-001",
"Prefer": "respond-async"
}curl --fail-with-body --max-time 30 -sS "https://hive.arglegal.live/scrapers/instagram/profile/posts" \
-H "Authorization: Bearer $HIVE_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: instagram-profile-posts-001" \
-H "Prefer: respond-async" \
--data '{"profiles":["nasa"],"limit":2}'{
"profiles": [
"nasa"
],
"limit": 2
}{
"job_id": "rjob_aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
"service": "instagram",
"operation": "profile/posts",
"status": "pending",
"created_at": 1789913600,
"expires_at": 1790000000,
"poll_url": "/scrapers/jobs/rjob_aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
"result": null,
"error": null
}{
"items": [
{
"target": "nasa",
"input_index": 0,
"post_id": "123",
"url": "https://www.instagram.com/p/example/",
"author": {
"username": "nasa",
"profile_url": "https://www.instagram.com/nasa"
},
"timestamp": "2026-09-01T12:00:00+00:00",
"text": "Public post example.",
"media": [],
"geotag": null,
"tagged_users": null,
"mentions": null,
"context": []
}
],
"count": 1,
"result_id": "rresult_11111111111111111111111111111111",
"page": 1,
"limit": 2,
"next_page": null,
"collected_count": 1,
"collection_limit": 500,
"expires_at": 1790000000,
"truncated": null,
"partial": false,
"targets": [
{
"target": "nasa",
"input_index": 0,
"status": "resolved",
"collected_count": 1,
"reason": null
}
],
"unresolved": [],
"per_target_limit": 50,
"history_complete": null
}POST /scrapers/instagram/people/search{
"Idempotency-Key": "instagram-people-search-001",
"Prefer": "respond-async"
}curl --fail-with-body --max-time 30 -sS "https://hive.arglegal.live/scrapers/instagram/people/search" \
-H "Authorization: Bearer $HIVE_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: instagram-people-search-001" \
-H "Prefer: respond-async" \
--data '{"query":"José García","locations":["Madrid"],"limit":2}'{
"query": "José García",
"locations": [
"Madrid"
],
"limit": 2
}{
"job_id": "rjob_aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
"service": "instagram",
"operation": "people/search",
"status": "pending",
"created_at": 1789905600,
"expires_at": 1789992000,
"poll_url": "/scrapers/jobs/rjob_aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
"result": null,
"error": null
}{
"items": [
{
"query": "José García",
"rank": 1,
"status": "candidate",
"username": "example_person",
"profile_url": "https://www.instagram.com/example_person",
"profile_id": "123456",
"display_name": "José García",
"biography": null,
"image_url": "https://images.example.com/avatar.jpg",
"missing_fields": [
"biography"
]
}
],
"count": 1,
"result_id": "rresult_22222222222222222222222222222222",
"page": 1,
"limit": 2,
"next_page": null,
"collected_count": 1,
"collection_limit": 50,
"expires_at": 1789992000,
"truncated": null,
"partial": true,
"query": "José García",
"locations": [
"Madrid"
],
"effective_query": "José García Madrid",
"location_handling": "query_hint",
"filters_enforced": false
}POST /scrapers/instagram/profile/followers{
"Idempotency-Key": "instagram-profile-followers-001",
"Prefer": "respond-async"
}curl --fail-with-body --max-time 30 -sS "https://hive.arglegal.live/scrapers/instagram/profile/followers" \
-H "Authorization: Bearer $HIVE_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: instagram-profile-followers-001" \
-H "Prefer: respond-async" \
--data '{"profile":"nasa","collection_size":100,"limit":2}'{
"profile": "nasa",
"collection_size": 100,
"limit": 2
}{
"job_id": "rjob_aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
"service": "instagram",
"operation": "profile/followers",
"status": "pending",
"created_at": 1789913600,
"expires_at": 1790000000,
"poll_url": "/scrapers/jobs/rjob_aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
"result": null,
"error": null,
"retry_after_s": null
}{
"items": [
{
"username": "exampleperson",
"profile_url": "https://www.instagram.com/exampleperson/",
"profile_id": "123",
"display_name": null,
"image_url": null,
"biography": null,
"location": null,
"created_at": null,
"is_private": null,
"is_verified": null,
"source_profile": "nasa",
"relation": "followers",
"relation_evidence": "source_attribution"
}
],
"count": 1,
"result_id": "rresult_33333333333333333333333333333333",
"page": 1,
"limit": 2,
"next_page": null,
"collected_count": 1,
"collection_limit": 100,
"expires_at": 1790000000,
"truncated": null,
"partial": true,
"requested_collection_size": 100,
"collection_complete": null,
"partial_reasons": [
"rejected_rows"
],
"source_profile": "nasa",
"relation": "followers",
"upstream_continuation_available": false
}Synthetic attributed followers edge. Returned source and direction must prove each edge; the source root handle and observed root ID are excluded. Biography, location and account creation remain null, with other optional identity fields nullable. One finite first collection supports cached pages only; no continuation credentials are accepted or returned. Graph completeness remains unknown. Account restrictions, caps and private/hidden profiles can limit results; public identity fields do not grant private content access.
POST /scrapers/instagram/profile/following{
"Idempotency-Key": "instagram-profile-following-001",
"Prefer": "respond-async"
}curl --fail-with-body --max-time 30 -sS "https://hive.arglegal.live/scrapers/instagram/profile/following" \
-H "Authorization: Bearer $HIVE_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: instagram-profile-following-001" \
-H "Prefer: respond-async" \
--data '{"profile":"nasa","collection_size":100,"limit":2}'{
"profile": "nasa",
"collection_size": 100,
"limit": 2
}{
"job_id": "rjob_aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
"service": "instagram",
"operation": "profile/following",
"status": "pending",
"created_at": 1789913600,
"expires_at": 1790000000,
"poll_url": "/scrapers/jobs/rjob_aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
"result": null,
"error": null,
"retry_after_s": null
}{
"items": [
{
"username": "exampleperson",
"profile_url": "https://www.instagram.com/exampleperson/",
"profile_id": "123",
"display_name": null,
"image_url": null,
"biography": null,
"location": null,
"created_at": null,
"is_private": null,
"is_verified": null,
"source_profile": "nasa",
"relation": "following",
"relation_evidence": "source_attribution"
}
],
"count": 1,
"result_id": "rresult_33333333333333333333333333333333",
"page": 1,
"limit": 2,
"next_page": null,
"collected_count": 1,
"collection_limit": 100,
"expires_at": 1790000000,
"truncated": null,
"partial": true,
"requested_collection_size": 100,
"collection_complete": null,
"partial_reasons": [
"rejected_rows"
],
"source_profile": "nasa",
"relation": "following",
"upstream_continuation_available": false
}Synthetic attributed following edge. Returned source and direction must prove each edge; the source root handle and observed root ID are excluded. Biography, location and account creation remain null, with other optional identity fields nullable. One finite first collection supports cached pages only; no continuation credentials are accepted or returned. Graph completeness remains unknown. Account restrictions, caps and private/hidden profiles can limit results; public identity fields do not grant private content access.
POST /scrapers/instagram/profile/tagged{
"Idempotency-Key": "instagram-profile-tagged-001",
"Prefer": "respond-async"
}curl --fail-with-body --max-time 30 -sS "https://hive.arglegal.live/scrapers/instagram/profile/tagged" \
-H "Authorization: Bearer $HIVE_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: instagram-profile-tagged-001" \
-H "Prefer: respond-async" \
--data '{"profile":"nasa","collection_size":50,"limit":2}'{
"profile": "nasa",
"collection_size": 50,
"limit": 2
}{
"job_id": "rjob_aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
"service": "instagram",
"operation": "profile/tagged",
"status": "pending",
"created_at": 1789913600,
"expires_at": 1790000000,
"poll_url": "/scrapers/jobs/rjob_aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
"result": null,
"error": null,
"retry_after_s": null
}{
"items": [
{
"post_id": "456",
"url": "https://www.instagram.com/p/ExamplePost/",
"author": {
"username": "examplephotographer",
"profile_url": "https://www.instagram.com/examplephotographer/"
},
"timestamp": "2020-06-01T12:00:00+00:00",
"text": "Synthetic science post.",
"media": [],
"geotag": null,
"tagged_users": [
{
"username": "nasa",
"profile_url": "https://www.instagram.com/nasa/"
}
],
"mentions": null,
"tagged_profile": "nasa",
"relation_evidence": "tagged_users"
}
],
"count": 1,
"result_id": "rresult_33333333333333333333333333333333",
"page": 1,
"limit": 2,
"next_page": null,
"collected_count": 1,
"collection_limit": 50,
"expires_at": 1790000000,
"truncated": null,
"partial": true,
"requested_collection_size": 50,
"collection_complete": null,
"partial_reasons": [
"rejected_rows"
],
"tagged_profile": "nasa"
}Synthetic incoming post with an actual returned NASA tag, retaining its source author. Caption mentions and echoed request fields do not establish tags. Ambiguous output cannot establish no tags; retained valid rows may be partial. Collection completeness is unknown. Source media references can expire and these operations retain no media bytes.
POST /scrapers/instagram/profile/highlights{
"Idempotency-Key": "instagram-profile-highlights-001",
"Prefer": "respond-async"
}curl --fail-with-body --max-time 30 -sS "https://hive.arglegal.live/scrapers/instagram/profile/highlights" \
-H "Authorization: Bearer $HIVE_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: instagram-profile-highlights-001" \
-H "Prefer: respond-async" \
--data '{"profile":"nasa","collection_size":10,"limit":2}'{
"profile": "nasa",
"collection_size": 10,
"limit": 2
}{
"job_id": "rjob_aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
"service": "instagram",
"operation": "profile/highlights",
"status": "pending",
"created_at": 1789913600,
"expires_at": 1790000000,
"poll_url": "/scrapers/jobs/rjob_aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
"result": null,
"error": null,
"retry_after_s": null
}{
"items": [
{
"highlight_id": "123",
"source_profile": "nasa",
"title": "Synthetic saved Highlight",
"cover_image_url": null,
"reported_media_count": null,
"created_at": null,
"updated_at": null,
"latest_story_at": null,
"content_retrieved": false,
"relation_evidence": "profile_container"
}
],
"count": 1,
"result_id": "rresult_33333333333333333333333333333333",
"page": 1,
"limit": 2,
"next_page": null,
"collected_count": 1,
"collection_limit": 10,
"expires_at": 1790000000,
"truncated": null,
"partial": true,
"requested_collection_size": 10,
"collection_complete": null,
"partial_reasons": [
"rejected_rows"
],
"source_profile": "nasa",
"profile_status": "partial",
"profile_reason": "partial_response",
"content_available": false
}Synthetic saved Highlight metadata only: observed ID with nullable cover, count and dates. profile_status distinguishes success, partial, private, not_found, unavailable and rate_limited; a public profile with zero summaries differs from a failed or missing profile. Story content is unavailable, no content arrays are requested, and unexpected content is rejected. These summaries do not establish complete history. Covers may expire and no media bytes are retained.
POST /scrapers/instagram/profile/highlights/content{
"Idempotency-Key": "hive-doc-instagram-profile-highlights-content",
"Prefer": "respond-async"
}curl --fail-with-body --max-time 30 -sS "https://hive.arglegal.live/scrapers/instagram/profile/highlights/content" \
-H "Authorization: Bearer $HIVE_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: hive-doc-instagram-profile-highlights-content" \
-H "Prefer: respond-async" \
--data '{"limit":2,"profile":"nasa","collection_size":5,"highlight_limit":1}'{
"limit": 2,
"profile": "nasa",
"collection_size": 5,
"highlight_limit": 1
}{
"job_id": "rjob_22222222222222222222222222222222",
"service": "instagram",
"operation": "profile/highlights/content",
"status": "pending",
"created_at": 1791068400,
"expires_at": 1791154800,
"poll_url": "/scrapers/jobs/rjob_22222222222222222222222222222222",
"result": null,
"error": null,
"retry_after_s": null
}{
"items": [
{
"story_id": "3975089864169193671_528817151",
"media_id": "3975089864169193671",
"source_profile": "nasa",
"owner_id": "528817151",
"highlight_id": "18195781759377100",
"highlight_title": "Roman",
"highlight_url": "https://www.instagram.com/stories/highlights/18195781759377100/",
"timestamp": "2026-08-30T11:00:53+00:00",
"expires_at": null,
"media_type": "video",
"media_url": "https://cdn.example.com/story.mp4",
"thumbnail_url": "https://cdn.example.com/image.jpg",
"width": 640,
"height": 1136,
"caption": null,
"music_title": null,
"music_artist": null,
"mentions": [
"nasakennedy"
],
"hashtags": [],
"links": [],
"position": 1,
"relation_evidence": "observed_owner_and_highlight",
"media_retained": false
},
{
"story_id": "3975097618556613637_528817151",
"media_id": "3975097618556613637",
"source_profile": "nasa",
"owner_id": "528817151",
"highlight_id": "18195781759377100",
"highlight_title": "Roman",
"highlight_url": "https://www.instagram.com/stories/highlights/18195781759377100/",
"timestamp": "2026-08-30T11:16:12+00:00",
"expires_at": null,
"media_type": "video",
"media_url": "https://cdn.example.com/story.mp4",
"thumbnail_url": "https://cdn.example.com/image.jpg",
"width": 640,
"height": 1136,
"caption": null,
"music_title": null,
"music_artist": null,
"mentions": [],
"hashtags": [],
"links": [],
"position": 2,
"relation_evidence": "observed_owner_and_highlight",
"media_retained": false
}
],
"count": 2,
"result_id": "rresult_11111111111111111111111111111111",
"page": 1,
"limit": 2,
"next_page": 2,
"collected_count": 5,
"collection_limit": 200,
"expires_at": 1791154800,
"truncated": true,
"partial": false,
"source_profile": "nasa",
"requested_collection_size": 5,
"requested_highlight_limit": 1,
"content_scope": "saved_highlight_stories",
"collection_complete": null,
"partial_reasons": [],
"media_retained": false
}Retrieve actual saved Highlight Story IDs, observed owner identities, timestamps and image or video references. A compound Story ID preserves its owner suffix; media_id is the numeric media component. Links may expire and media bytes are not retained. Collection size is 1–200 and highlight_limit is 1–25. These are illustrative cached snapshots; examples do not establish current operation readiness or promise complete coverage.
POST /scrapers/x/profile/details{
"profiles": [
"nasa"
]
}{
"items": [
{
"username": "nasa",
"profile_url": "https://x.com/NASA",
"display_name": "NASA",
"target": "nasa",
"input_index": 0
}
],
"count": 1,
"unresolved": []
}POST /scrapers/x/profile/posts{
"Idempotency-Key": "x-profile-posts-001",
"Prefer": "respond-async"
}curl --fail-with-body --max-time 30 -sS "https://hive.arglegal.live/scrapers/x/profile/posts" \
-H "Authorization: Bearer $HIVE_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: x-profile-posts-001" \
-H "Prefer: respond-async" \
--data '{"profiles":["nasa"],"limit":2}'{
"profiles": [
"nasa"
],
"limit": 2
}{
"job_id": "rjob_aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
"service": "x",
"operation": "profile/posts",
"status": "pending",
"created_at": 1789913600,
"expires_at": 1790000000,
"poll_url": "/scrapers/jobs/rjob_aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
"result": null,
"error": null
}{
"items": [
{
"target": "nasa",
"input_index": 0,
"post_id": "123",
"url": "https://x.com/nasa/status/123",
"author": {
"username": "nasa",
"profile_url": "https://x.com/nasa"
},
"timestamp": "2026-09-01T12:00:00+00:00",
"text": "Public post example.",
"media": [],
"geotag": null,
"tagged_users": null,
"mentions": null,
"context": []
}
],
"count": 1,
"result_id": "rresult_11111111111111111111111111111111",
"page": 1,
"limit": 2,
"next_page": null,
"collected_count": 1,
"collection_limit": 1000,
"expires_at": 1790000000,
"truncated": null,
"partial": false,
"targets": [
{
"target": "nasa",
"input_index": 0,
"status": "resolved",
"collected_count": 1,
"reason": null
}
],
"unresolved": [],
"per_target_limit": 50,
"history_complete": null
}POST /scrapers/x/people/search{
"Idempotency-Key": "x-people-search-001",
"Prefer": "respond-async"
}curl --fail-with-body --max-time 30 -sS "https://hive.arglegal.live/scrapers/x/people/search" \
-H "Authorization: Bearer $HIVE_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: x-people-search-001" \
-H "Prefer: respond-async" \
--data '{"query":"José García","locations":["Madrid"],"limit":2}'{
"query": "José García",
"locations": [
"Madrid"
],
"limit": 2
}{
"job_id": "rjob_aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
"service": "x",
"operation": "people/search",
"status": "pending",
"created_at": 1789905600,
"expires_at": 1789992000,
"poll_url": "/scrapers/jobs/rjob_aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
"result": null,
"error": null
}{
"items": [
{
"query": "José García",
"rank": 1,
"status": "candidate",
"username": "example_person",
"profile_url": "https://x.com/example_person",
"profile_id": "123456",
"display_name": "José García",
"biography": "Synthetic public biography",
"image_url": "https://images.example.com/avatar.jpg",
"missing_fields": [],
"location": "Madrid"
}
],
"count": 1,
"result_id": "rresult_22222222222222222222222222222222",
"page": 1,
"limit": 2,
"next_page": null,
"collected_count": 1,
"collection_limit": 50,
"expires_at": 1789992000,
"truncated": null,
"partial": false,
"query": "José García",
"locations": [
"Madrid"
],
"effective_query": "José García Madrid",
"location_handling": "query_hint",
"filters_enforced": false
}POST /scrapers/x/profile/followers{
"Idempotency-Key": "x-followers-001",
"Prefer": "respond-async"
}curl --fail-with-body --max-time 30 -sS "https://hive.arglegal.live/scrapers/x/profile/followers" \
-H "Authorization: Bearer $HIVE_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: x-followers-001" \
-H "Prefer: respond-async" \
--data '{"profile":"nasa","collection_size":100,"limit":2}'{
"profile": "nasa",
"collection_size": 100,
"limit": 2
}{
"job_id": "rjob_aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
"service": "x",
"operation": "profile/followers",
"status": "pending",
"created_at": 1789913600,
"expires_at": 1790000000,
"poll_url": "/scrapers/jobs/rjob_aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
"result": null,
"error": null,
"retry_after_s": null
}{
"items": [
{
"username": "example_person",
"profile_url": "https://x.com/example_person",
"source_profile": "nasa",
"relation": "followers",
"relation_evidence": "source_attribution"
}
],
"count": 1,
"result_id": "rresult_33333333333333333333333333333333",
"page": 1,
"limit": 2,
"next_page": null,
"collected_count": 1,
"collection_limit": 100,
"expires_at": 1790000000,
"truncated": null,
"partial": true,
"source_profile": "nasa",
"relation": "followers",
"requested_collection_size": 100,
"graph_complete": null,
"partial_reasons": [
"missing_optional_fields"
]
}Synthetic attributed edge. Optional profile fields may be missing. Full graph completeness is unknown; null next_page only ends cached pages. There is no upstream graph continuation.
POST /scrapers/x/profile/following{
"Idempotency-Key": "x-following-001",
"Prefer": "respond-async"
}curl --fail-with-body --max-time 30 -sS "https://hive.arglegal.live/scrapers/x/profile/following" \
-H "Authorization: Bearer $HIVE_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: x-following-001" \
-H "Prefer: respond-async" \
--data '{"profile":"nasa","collection_size":100,"limit":2}'{
"profile": "nasa",
"collection_size": 100,
"limit": 2
}{
"job_id": "rjob_aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
"service": "x",
"operation": "profile/following",
"status": "pending",
"created_at": 1789913600,
"expires_at": 1790000000,
"poll_url": "/scrapers/jobs/rjob_aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
"result": null,
"error": null,
"retry_after_s": null
}{
"items": [
{
"username": "example_person",
"profile_url": "https://x.com/example_person",
"source_profile": "nasa",
"relation": "following",
"relation_evidence": "source_attribution"
}
],
"count": 1,
"result_id": "rresult_33333333333333333333333333333333",
"page": 1,
"limit": 2,
"next_page": null,
"collected_count": 1,
"collection_limit": 100,
"expires_at": 1790000000,
"truncated": null,
"partial": true,
"source_profile": "nasa",
"relation": "following",
"requested_collection_size": 100,
"graph_complete": null,
"partial_reasons": [
"missing_optional_fields"
]
}Synthetic attributed edge. Optional profile fields may be missing. Full graph completeness is unknown; null next_page only ends cached pages. There is no upstream graph continuation. Following is conditional: ambiguous output without qualified source and direction attribution fails unavailable. The source root is excluded.
POST /scrapers/x/posts/search{
"Idempotency-Key": "x-posts-search-001",
"Prefer": "respond-async"
}curl --fail-with-body --max-time 30 -sS "https://hive.arglegal.live/scrapers/x/posts/search" \
-H "Authorization: Bearer $HIVE_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: x-posts-search-001" \
-H "Prefer: respond-async" \
--data '{"query":"Artemis","from_username":"nasa","since_date":"2020-01-01","until_date":"2021-01-01","collection_size":100,"limit":2}'{
"query": "Artemis",
"from_username": "nasa",
"since_date": "2020-01-01",
"until_date": "2021-01-01",
"collection_size": 100,
"limit": 2
}{
"job_id": "rjob_aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
"service": "x",
"operation": "posts/search",
"status": "pending",
"created_at": 1789913600,
"expires_at": 1790000000,
"poll_url": "/scrapers/jobs/rjob_aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
"result": null,
"error": null,
"retry_after_s": null
}{
"items": [
{
"post_id": "456",
"url": "https://x.com/example_person/status/456",
"author": {
"username": "example_person",
"profile_url": "https://x.com/example_person"
},
"timestamp": "2020-06-01T12:00:00+00:00",
"text": "Synthetic public post example.",
"media": [],
"geotag": null,
"tagged_users": null,
"mentions": null,
"effective_query": "Artemis from:nasa since:2020-01-01 until:2021-01-01",
"relation_kind": "search_match",
"relation_evidence": "search_query",
"relation_target_post_id": null,
"in_reply_to_post_id": null,
"conversation_id": null,
"quoted_post_id": null,
"is_reply": null,
"is_quote": null
}
],
"count": 1,
"result_id": "rresult_33333333333333333333333333333333",
"page": 1,
"limit": 2,
"next_page": null,
"collected_count": 1,
"collection_limit": 100,
"expires_at": 1790000000,
"truncated": null,
"partial": true,
"effective_query": "Artemis from:nasa since:2020-01-01 until:2021-01-01",
"query_scope": "post_search",
"requested_collection_size": 100,
"target_post_id": null,
"search_complete": null,
"filters_enforced": false,
"partial_reasons": [
"rejected_rows_or_unknown_parent"
]
}Search operators are passed upstream; matching and recall are not independently guaranteed. until_date is exclusive. Synthetic result. Cached pagination never expands the collected window; completeness is unknown.
POST /scrapers/x/post/replies{
"Idempotency-Key": "x-post-replies-001",
"Prefer": "respond-async"
}curl --fail-with-body --max-time 30 -sS "https://hive.arglegal.live/scrapers/x/post/replies" \
-H "Authorization: Bearer $HIVE_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: x-post-replies-001" \
-H "Prefer: respond-async" \
--data '{"post_id":"123","collection_size":100,"limit":2}'{
"post_id": "123",
"collection_size": 100,
"limit": 2
}{
"job_id": "rjob_aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
"service": "x",
"operation": "post/replies",
"status": "pending",
"created_at": 1789913600,
"expires_at": 1790000000,
"poll_url": "/scrapers/jobs/rjob_aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
"result": null,
"error": null,
"retry_after_s": null
}{
"items": [
{
"post_id": "456",
"url": "https://x.com/example_person/status/456",
"author": {
"username": "example_person",
"profile_url": "https://x.com/example_person"
},
"timestamp": "2020-06-01T12:00:00+00:00",
"text": "Synthetic public post example.",
"media": [],
"geotag": null,
"tagged_users": null,
"mentions": null,
"effective_query": "conversation_id:123",
"relation_kind": "conversation_candidate",
"relation_evidence": "search_query",
"relation_target_post_id": "123",
"in_reply_to_post_id": null,
"conversation_id": "123",
"quoted_post_id": null,
"is_reply": null,
"is_quote": null
}
],
"count": 1,
"result_id": "rresult_33333333333333333333333333333333",
"page": 1,
"limit": 2,
"next_page": null,
"collected_count": 1,
"collection_limit": 100,
"expires_at": 1790000000,
"truncated": null,
"partial": true,
"effective_query": "conversation_id:123",
"query_scope": "conversation_candidates",
"requested_collection_size": 100,
"target_post_id": "123",
"search_complete": null,
"filters_enforced": false,
"partial_reasons": [
"rejected_rows_or_unknown_parent"
]
}Conversation matches are candidates. Only observed in_reply_to_post_id values establish direct or nested replies; a null parent stays unknown. This is not a complete reply tree. Synthetic result. Cached pagination never expands the collected window; completeness is unknown.
POST /scrapers/x/post/quotes{
"Idempotency-Key": "hive-doc-x-post-quotes",
"Prefer": "respond-async"
}curl --fail-with-body --max-time 30 -sS "https://hive.arglegal.live/scrapers/x/post/quotes" \
-H "Authorization: Bearer $HIVE_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: hive-doc-x-post-quotes" \
-H "Prefer: respond-async" \
--data '{"limit":2,"post_id":"2065225362544726371","collection_size":50}'{
"limit": 2,
"post_id": "2065225362544726371",
"collection_size": 50
}{
"job_id": "rjob_22222222222222222222222222222222",
"service": "x",
"operation": "post/quotes",
"status": "pending",
"created_at": 1791068400,
"expires_at": 1791154800,
"poll_url": "/scrapers/jobs/rjob_22222222222222222222222222222222",
"result": null,
"error": null,
"retry_after_s": null
}{
"items": [
{
"post_id": "2065250261493600416",
"url": "https://x.com/i/status/2065250261493600416",
"author": {
"username": "theo",
"profile_url": "https://x.com/theo",
"profile_id": null,
"display_name": "Theo - t3.gg",
"image_url": "https://cdn.example.com/image.jpg"
},
"timestamp": "2026-06-12T01:50:07+00:00",
"text": "This might actually be a bit too generous. I am getting suspicious",
"media": [],
"media_count_reported": null,
"media_complete": null,
"geotag": null,
"tagged_users": null,
"mentions": [],
"likes_count": 4391,
"comments_count": 190,
"views_count": 409207,
"reposts_count": 53,
"quotes_count": 3,
"relation_kind": "incoming_quote",
"relation_evidence": "provider_quote_target",
"relation_target_post_id": "2065225362544726371",
"quoted_post_id": "2065225362544726371",
"in_reply_to_post_id": null,
"conversation_id": "2065250261493600416",
"is_reply": null,
"is_quote": true
},
{
"post_id": "2065257221077020850",
"url": "https://x.com/i/status/2065257221077020850",
"author": {
"username": "minchoi",
"profile_url": "https://x.com/minchoi",
"profile_id": null,
"display_name": "Min Choi",
"image_url": "https://cdn.example.com/image.jpg"
},
"timestamp": "2026-06-12T02:17:46+00:00",
"text": "Codex now lets you save rate limit resets and use them later.\n\nSmall change, but useful.\nhttps://t.co/aDOQwejJ78",
"media": [
{
"type": "image",
"url": "https://pbs.twimg.com/media/HKknmxXa8AAjyEC.jpg",
"role": "original",
"group_index": 0,
"mime_type": null,
"bitrate": null,
"retention_status": "skipped",
"retention_reason": "not_requested",
"asset": null
}
],
"media_count_reported": null,
"media_complete": null,
"geotag": null,
"tagged_users": null,
"mentions": [],
"likes_count": 218,
"comments_count": 22,
"views_count": 31149,
"reposts_count": 7,
"quotes_count": 1,
"relation_kind": "incoming_quote",
"relation_evidence": "provider_quote_target",
"relation_target_post_id": "2065225362544726371",
"quoted_post_id": "2065225362544726371",
"in_reply_to_post_id": null,
"conversation_id": "2065257221077020850",
"is_reply": null,
"is_quote": true
}
],
"count": 2,
"result_id": "rresult_11111111111111111111111111111111",
"page": 1,
"limit": 2,
"next_page": 2,
"collected_count": 50,
"collection_limit": 500,
"expires_at": 1791154800,
"truncated": true,
"partial": false,
"target_post_id": "2065225362544726371",
"requested_collection_size": 50,
"quotes_complete": null,
"upstream_continuation_available": false,
"partial_reasons": []
}Collect incoming quote posts of the requested original, verified through actual quoted-post IDs. Separate quote posts by one author are retained. Missing author IDs or reply parents remain null. Collection size is 1–500; there is no upstream continuation beyond the cached result. These are illustrative cached snapshots; examples do not establish current operation readiness or promise complete coverage.
POST /scrapers/x/profile/spaces{
"Idempotency-Key": "hive-doc-x-profile-spaces",
"Prefer": "respond-async"
}curl --fail-with-body --max-time 30 -sS "https://hive.arglegal.live/scrapers/x/profile/spaces" \
-H "Authorization: Bearer $HIVE_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: hive-doc-x-profile-spaces" \
-H "Prefer: respond-async" \
--data '{"limit":2,"profile":"barkmeta","collection_size":5}'{
"limit": 2,
"profile": "barkmeta",
"collection_size": 5
}{
"job_id": "rjob_22222222222222222222222222222222",
"service": "x",
"operation": "profile/spaces",
"status": "pending",
"created_at": 1791068400,
"expires_at": 1791154800,
"poll_url": "/scrapers/jobs/rjob_22222222222222222222222222222222",
"result": null,
"error": null,
"retry_after_s": null
}{
"items": [
{
"post_id": "2106510350287884296",
"post_url": "https://x.com/barkmeta/status/2106510350287884296",
"timestamp": "2026-10-03T22:22:59+00:00",
"text": "https://t.co/dsIBjaUJT0",
"shared_by": "barkmeta",
"space_urls": [
"https://x.com/i/spaces/1nJOLQwXDwVxR"
],
"relation_evidence": "authored_post_space_link",
"host_relationship": null
},
{
"post_id": "2106489814304612553",
"post_url": "https://x.com/barkmeta/status/2106489814304612553",
"timestamp": "2026-10-03T21:01:23+00:00",
"text": "https://t.co/DENPHq5NQa",
"shared_by": "barkmeta",
"space_urls": [
"https://x.com/i/spaces/1rGmqprjLZLGy"
],
"relation_evidence": "authored_post_space_link",
"host_relationship": null
}
],
"count": 2,
"result_id": "rresult_11111111111111111111111111111111",
"page": 1,
"limit": 2,
"next_page": 2,
"collected_count": 5,
"collection_limit": 100,
"expires_at": 1791154800,
"truncated": true,
"partial": false,
"collection_complete": null,
"partial_reasons": [],
"source_profile": "barkmeta",
"requested_collection_size": 5,
"effective_query": "from:barkmeta filter:spaces",
"search_complete": null,
"discovery_scope": "authored_space_links"
}Discover Space links in authored posts by a handle. shared_by identifies the posting account; sharing a Space does not prove hosting. Use each explicit Space ID for recording lookup. Collection size is 1–100. These are illustrative cached snapshots; examples do not establish current operation readiness or promise complete coverage.
POST /scrapers/x/space/recording{
"Idempotency-Key": "hive-doc-x-space-recording",
"Prefer": "respond-async"
}curl --fail-with-body --max-time 30 -sS "https://hive.arglegal.live/scrapers/x/space/recording" \
-H "Authorization: Bearer $HIVE_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: hive-doc-x-space-recording" \
-H "Prefer: respond-async" \
--data '{"limit":1,"space_id":"1MJgNbvMojbGL"}'{
"limit": 1,
"space_id": "1MJgNbvMojbGL"
}{
"job_id": "rjob_22222222222222222222222222222222",
"service": "x",
"operation": "space/recording",
"status": "pending",
"created_at": 1791068400,
"expires_at": 1791154800,
"poll_url": "/scrapers/jobs/rjob_22222222222222222222222222222222",
"result": null,
"error": null,
"retry_after_s": null
}{
"items": [
{
"space_id": "1MJgNbvMojbGL",
"space_url": "https://x.com/i/spaces/1MJgNbvMojbGL",
"title": null,
"state": "ended",
"started_at": "2026-09-30T21:02:13.104000+00:00",
"ended_at": "2026-10-01T00:01:58.749000+00:00",
"creator": {
"username": "barkmeta",
"profile_url": "https://x.com/barkmeta",
"profile_id": "336348053",
"display_name": "Bark",
"image_url": null
},
"hosts": [
{
"username": "barkmeta",
"profile_url": "https://x.com/barkmeta",
"profile_id": "336348053",
"display_name": "Bark",
"image_url": "https://cdn.example.com/image.jpg"
},
{
"username": "shieldmetax",
"profile_url": "https://x.com/shieldmetax",
"profile_id": "3588771076",
"display_name": "Shield",
"image_url": "https://cdn.example.com/image.jpg"
},
{
"username": "cornkry",
"profile_url": "https://x.com/cornkry",
"profile_id": "970795858190045187",
"display_name": "Corn",
"image_url": "https://cdn.example.com/image.jpg"
}
],
"speakers": [
{
"username": "godsburnt",
"profile_url": "https://x.com/godsburnt",
"profile_id": "1547753041092231168",
"display_name": "Shibo",
"image_url": "https://cdn.example.com/image.jpg"
},
{
"username": "kingfud",
"profile_url": "https://x.com/kingfud",
"profile_id": "556601889",
"display_name": "FUD",
"image_url": "https://cdn.example.com/image.jpg"
},
{
"username": "web3smb",
"profile_url": "https://x.com/web3smb",
"profile_id": "832980412452503556",
"display_name": "Web",
"image_url": "https://cdn.example.com/image.jpg"
},
{
"username": "veemeta",
"profile_url": "https://x.com/veemeta",
"profile_id": "32831485",
"display_name": "Vee",
"image_url": "https://cdn.example.com/image.jpg"
},
{
"username": "hofers",
"profile_url": "https://x.com/hofers",
"profile_id": "1053309451",
"display_name": "Hofer",
"image_url": "https://cdn.example.com/image.jpg"
},
{
"username": "leahbluewater",
"profile_url": "https://x.com/leahbluewater",
"profile_id": "555216272",
"display_name": "Leah",
"image_url": "https://cdn.example.com/image.jpg"
},
{
"username": "doskyart",
"profile_url": "https://x.com/doskyart",
"profile_id": "1735567855964344320",
"display_name": "Dosky🦠",
"image_url": "https://cdn.example.com/image.jpg"
},
{
"username": "anthemhayek",
"profile_url": "https://x.com/anthemhayek",
"profile_id": "22429454",
"display_name": "AnTheM",
"image_url": "https://cdn.example.com/image.jpg"
},
{
"username": "artsymeta",
"profile_url": "https://x.com/artsymeta",
"profile_id": "4825824006",
"display_name": "Artsy",
"image_url": "https://cdn.example.com/image.jpg"
},
{
"username": "cheeksmeta",
"profile_url": "https://x.com/cheeksmeta",
"profile_id": "1422223114038087694",
"display_name": "Cheeks",
"image_url": "https://cdn.example.com/image.jpg"
},
{
"username": "motionmetax",
"profile_url": "https://x.com/motionmetax",
"profile_id": "1302437599005609984",
"display_name": "Motion",
"image_url": "https://cdn.example.com/image.jpg"
},
{
"username": "duvalx",
"profile_url": "https://x.com/duvalx",
"profile_id": "1503422852246216710",
"display_name": "Duval",
"image_url": "https://cdn.example.com/image.jpg"
},
{
"username": "jagobx",
"profile_url": "https://x.com/jagobx",
"profile_id": "1246103444378746880",
"display_name": "Jag",
"image_url": "https://cdn.example.com/image.jpg"
},
{
"username": "vipmetax",
"profile_url": "https://x.com/vipmetax",
"profile_id": "2986504127",
"display_name": "VIP",
"image_url": "https://cdn.example.com/image.jpg"
},
{
"username": "rosemetax",
"profile_url": "https://x.com/rosemetax",
"profile_id": "1548699110601105409",
"display_name": "Rose",
"image_url": "https://cdn.example.com/image.jpg"
},
{
"username": "rafmeta",
"profile_url": "https://x.com/rafmeta",
"profile_id": "1528005302657892353",
"display_name": "Raf",
"image_url": "https://cdn.example.com/image.jpg"
},
{
"username": "brettmetax",
"profile_url": "https://x.com/brettmetax",
"profile_id": "1851760662097408000",
"display_name": "Brett",
"image_url": "https://cdn.example.com/image.jpg"
},
{
"username": "maymetax",
"profile_url": "https://x.com/maymetax",
"profile_id": "970695375530151941",
"display_name": "May",
"image_url": "https://cdn.example.com/image.jpg"
},
{
"username": "barkmediafrica",
"profile_url": "https://x.com/barkmediafrica",
"profile_id": "2102882733143789568",
"display_name": "BMA",
"image_url": "https://cdn.example.com/image.jpg"
},
{
"username": "notnftnews",
"profile_url": "https://x.com/notnftnews",
"profile_id": "128511600",
"display_name": "Noot",
"image_url": "https://cdn.example.com/image.jpg"
}
],
"replay_reported": true,
"recording_url": "https://prod-fastly-us-east-1.video.pscp.tv/Transcoding/v1/hls/3yv6QtBxgVKMVFGaW0Nje7RnA-LuZ-0KZk-AsMGD6z8Ag3eWZlTEeuEewsOs6uzAU3syr4YJscPzJPtj5uOQuA/non_transcode/us-east-1/periscope-replay-direct-prod-us-east-1-public/audio-space/playlist_16655931155200980624.m3u8?type=replay",
"recording_status": "accessible",
"access_evidence": "playlist_and_audio_sample",
"audio_retained": false,
"relation_evidence": "observed_space_id"
}
],
"count": 1,
"result_id": "rresult_11111111111111111111111111111111",
"page": 1,
"limit": 1,
"next_page": null,
"collected_count": 1,
"collection_limit": 1,
"expires_at": 1791154800,
"truncated": null,
"partial": false,
"collection_complete": null,
"partial_reasons": [],
"space_id": "1MJgNbvMojbGL",
"audio_retained": false
}Look up one explicit public Space and its observed creator, hosts, speakers and replay reference. accessible requires an ended Space plus a fetched playlist and recognizable audio sample. This proves a bounded sample, not the whole recording or future URL availability. Audio bytes are not retained. These are illustrative cached snapshots; examples do not establish current operation readiness or promise complete coverage.
POST /scrapers/x/space/transcript{
"Idempotency-Key": "hive-doc-x-space-transcript",
"Prefer": "respond-async"
}curl --fail-with-body --max-time 30 -sS "https://hive.arglegal.live/scrapers/x/space/transcript" \
-H "Authorization: Bearer $HIVE_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: hive-doc-x-space-transcript" \
-H "Prefer: respond-async" \
--data '{"limit":1,"space_id":"1MJgNbvMojbGL","max_minutes":1}'{
"limit": 1,
"space_id": "1MJgNbvMojbGL",
"max_minutes": 1
}{
"job_id": "rjob_22222222222222222222222222222222",
"service": "x",
"operation": "space/transcript",
"status": "pending",
"created_at": 1791068400,
"expires_at": 1791154800,
"poll_url": "/scrapers/jobs/rjob_22222222222222222222222222222222",
"result": null,
"error": null,
"retry_after_s": null
}{
"items": [
{
"space_id": "1MJgNbvMojbGL",
"space_url": "https://x.com/i/spaces/1MJgNbvMojbGL",
"title": "THE GREAT RESET 🚨 BITCOIN WEDNESDAY",
"transcript_status": "missing_transcript",
"text": null,
"language": null,
"duration_seconds": 60,
"transcribed_seconds": null,
"segments": null,
"prefix_limited": false,
"transcript_complete": null,
"method": null,
"audio_retained": false,
"relation_evidence": "source_request"
}
],
"count": 1,
"result_id": "rresult_11111111111111111111111111111111",
"page": 1,
"limit": 1,
"next_page": null,
"collected_count": 1,
"collection_limit": 1,
"expires_at": 1791154800,
"truncated": null,
"partial": true,
"collection_complete": null,
"partial_reasons": [
"missing_transcript",
"rejected_rows_or_provider_partial"
],
"space_id": "1MJgNbvMojbGL",
"requested_max_minutes": 1,
"audio_retained": false
}Request a finite speech-to-text prefix of one public Space, max_minutes 1–30. Missing speech is preserved as a partial missing_transcript result and does not qualify operation health. The tested source returned no speech, so transcript extraction remains unqualified. There is no complete-recording transcript guarantee. These are illustrative cached snapshots; examples do not establish current operation readiness or promise complete coverage.
POST /scrapers/facebook/profile/details{
"profiles": [
"nasa"
]
}{
"items": [
{
"username": "nasa",
"profile_url": "https://www.facebook.com/NASA",
"display_name": "NASA",
"target": "nasa",
"input_index": 0
}
],
"count": 1,
"unresolved": []
}POST /scrapers/facebook/profile/posts{
"Idempotency-Key": "facebook-profile-posts-001",
"Prefer": "respond-async"
}curl --fail-with-body --max-time 30 -sS "https://hive.arglegal.live/scrapers/facebook/profile/posts" \
-H "Authorization: Bearer $HIVE_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: facebook-profile-posts-001" \
-H "Prefer: respond-async" \
--data '{"profiles":["nasa"],"limit":2}'{
"profiles": [
"nasa"
],
"limit": 2
}{
"job_id": "rjob_aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
"service": "facebook",
"operation": "profile/posts",
"status": "pending",
"created_at": 1789913600,
"expires_at": 1790000000,
"poll_url": "/scrapers/jobs/rjob_aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
"result": null,
"error": null
}{
"items": [
{
"target": "nasa",
"input_index": 0,
"post_id": "123",
"url": "https://www.facebook.com/nasa/posts/123",
"author": {
"username": "nasa",
"profile_url": "https://www.facebook.com/nasa"
},
"timestamp": "2026-09-01T12:00:00+00:00",
"text": "Public post example.",
"media": [],
"geotag": null,
"tagged_users": null,
"mentions": null,
"context": []
}
],
"count": 1,
"result_id": "rresult_11111111111111111111111111111111",
"page": 1,
"limit": 2,
"next_page": null,
"collected_count": 1,
"collection_limit": 500,
"expires_at": 1790000000,
"truncated": null,
"partial": false,
"targets": [
{
"target": "nasa",
"input_index": 0,
"status": "resolved",
"collected_count": 1,
"reason": null
}
],
"unresolved": [],
"per_target_limit": 40,
"history_complete": null,
"history_scope": "recent_public_timeline"
}POST /scrapers/facebook/people/search{
"Idempotency-Key": "facebook-people-search-001",
"Prefer": "respond-async"
}curl --fail-with-body --max-time 30 -sS "https://hive.arglegal.live/scrapers/facebook/people/search" \
-H "Authorization: Bearer $HIVE_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: facebook-people-search-001" \
-H "Prefer: respond-async" \
--data '{"query":"José García","locations":["Madrid"],"limit":2}'{
"query": "José García",
"locations": [
"Madrid"
],
"limit": 2
}{
"job_id": "rjob_aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
"service": "facebook",
"operation": "people/search",
"status": "pending",
"created_at": 1789905600,
"expires_at": 1789992000,
"poll_url": "/scrapers/jobs/rjob_aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
"result": null,
"error": null
}{
"items": [
{
"query": "José García",
"rank": 1,
"status": "candidate",
"username": null,
"profile_url": "https://www.facebook.com/profile.php?id=123456",
"profile_id": "123456",
"display_name": "José García",
"biography": null,
"image_url": "https://images.example.com/avatar.jpg",
"missing_fields": [
"biography"
],
"profile_type": "person",
"location": "Madrid"
}
],
"count": 1,
"result_id": "rresult_22222222222222222222222222222222",
"page": 1,
"limit": 2,
"next_page": null,
"collected_count": 1,
"collection_limit": 50,
"expires_at": 1789992000,
"truncated": null,
"partial": true,
"query": "José García",
"locations": [
"Madrid"
],
"effective_query": "José García Madrid",
"location_handling": "query_hint",
"filters_enforced": false
}POST /scrapers/facebook/pages/search{
"Idempotency-Key": "facebook-pages-search-001",
"Prefer": "respond-async"
}curl --fail-with-body --max-time 30 -sS "https://hive.arglegal.live/scrapers/facebook/pages/search" \
-H "Authorization: Bearer $HIVE_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: facebook-pages-search-001" \
-H "Prefer: respond-async" \
--data '{"query":"space science","collection_size":50,"limit":2}'{
"query": "space science",
"collection_size": 50,
"limit": 2
}{
"job_id": "rjob_aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
"service": "facebook",
"operation": "pages/search",
"status": "pending",
"created_at": 1789913600,
"expires_at": 1790000000,
"poll_url": "/scrapers/jobs/rjob_aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
"result": null,
"error": null,
"retry_after_s": null
}{
"items": [
{
"username": "examplepage",
"profile_url": "https://www.facebook.com/examplepage",
"profile_id": "123",
"profile_type": "page",
"query": "space science",
"biography": null,
"location": null,
"website_url": null,
"is_verified": null
}
],
"count": 1,
"result_id": "rresult_33333333333333333333333333333333",
"page": 1,
"limit": 2,
"next_page": null,
"collected_count": 1,
"collection_limit": 50,
"expires_at": 1790000000,
"truncated": null,
"partial": true,
"requested_collection_size": 50,
"collection_complete": null,
"partial_reasons": [
"rejected_rows"
],
"query": "space science",
"query_handling": "upstream_hint",
"filters_enforced": false
}Synthetic public page candidate, with nullable observed metadata. Only page rows are accepted; a page is neither a group nor a verified identity. The query is an upstream hint and matching/recall are unknown. Cached next_page:null does not establish collection completeness.
POST /scrapers/facebook/posts/search{
"Idempotency-Key": "facebook-posts-search-001",
"Prefer": "respond-async"
}curl --fail-with-body --max-time 30 -sS "https://hive.arglegal.live/scrapers/facebook/posts/search" \
-H "Authorization: Bearer $HIVE_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: facebook-posts-search-001" \
-H "Prefer: respond-async" \
--data '{"query":"space science","keyword":"science","since_date":"2020-01-01","until_date":"2021-01-01","collection_size":50,"limit":2}'{
"query": "space science",
"keyword": "science",
"since_date": "2020-01-01",
"until_date": "2021-01-01",
"collection_size": 50,
"limit": 2
}{
"job_id": "rjob_aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
"service": "facebook",
"operation": "posts/search",
"status": "pending",
"created_at": 1789913600,
"expires_at": 1790000000,
"poll_url": "/scrapers/jobs/rjob_aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
"result": null,
"error": null,
"retry_after_s": null
}{
"items": [
{
"post_id": "456",
"url": "https://www.facebook.com/examplepage/posts/456",
"author": {
"username": "examplepage",
"profile_url": "https://www.facebook.com/examplepage"
},
"timestamp": "2020-06-01T12:00:00+00:00",
"text": "Synthetic science post.",
"media": [],
"geotag": null,
"tagged_users": null,
"mentions": null,
"query": "space science",
"relation_evidence": "search_query"
}
],
"count": 1,
"result_id": "rresult_33333333333333333333333333333333",
"page": 1,
"limit": 2,
"next_page": null,
"collected_count": 1,
"collection_limit": 50,
"expires_at": 1790000000,
"truncated": null,
"partial": true,
"requested_collection_size": 50,
"collection_complete": null,
"partial_reasons": [
"rejected_rows"
],
"keyword": "science",
"since_date": "2020-01-01",
"until_date": "2021-01-01",
"local_filters": [
"keyword",
"since_date",
"until_date"
],
"query": "space science",
"query_handling": "upstream_hint",
"group_url": null,
"post_url": null
}Synthetic public post search. query is an upstream hint; keyword is a literal case-insensitive substring checked locally, since_date is inclusive and until_date exclusive in UTC. Rows missing fields required by a requested local filter are rejected and the collection remains partial. Search matching and recall remain unknown; no extra query follows filtering.
POST /scrapers/facebook/group/posts{
"Idempotency-Key": "facebook-group-posts-001",
"Prefer": "respond-async"
}curl --fail-with-body --max-time 30 -sS "https://hive.arglegal.live/scrapers/facebook/group/posts" \
-H "Authorization: Bearer $HIVE_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: facebook-group-posts-001" \
-H "Prefer: respond-async" \
--data '{"group_url":"https://www.facebook.com/groups/publicgroup","keyword":"science","since_date":"2020-01-01","until_date":"2021-01-01","collection_size":50,"limit":2}'{
"group_url": "https://www.facebook.com/groups/publicgroup",
"keyword": "science",
"since_date": "2020-01-01",
"until_date": "2021-01-01",
"collection_size": 50,
"limit": 2
}{
"job_id": "rjob_aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
"service": "facebook",
"operation": "group/posts",
"status": "pending",
"created_at": 1789913600,
"expires_at": 1790000000,
"poll_url": "/scrapers/jobs/rjob_aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
"result": null,
"error": null,
"retry_after_s": null
}{
"items": [
{
"post_id": "456",
"url": "https://www.facebook.com/groups/publicgroup/posts/456",
"author": {
"username": "exampleperson",
"profile_url": "https://www.facebook.com/exampleperson"
},
"timestamp": "2020-06-01T12:00:00+00:00",
"text": "Synthetic science post.",
"media": [],
"geotag": null,
"tagged_users": null,
"mentions": null,
"group_url": "https://www.facebook.com/groups/publicgroup",
"group_title": null,
"relation_evidence": "group_permalink"
}
],
"count": 1,
"result_id": "rresult_33333333333333333333333333333333",
"page": 1,
"limit": 2,
"next_page": null,
"collected_count": 1,
"collection_limit": 50,
"expires_at": 1790000000,
"truncated": null,
"partial": true,
"requested_collection_size": 50,
"collection_complete": null,
"partial_reasons": [
"rejected_rows"
],
"keyword": "science",
"since_date": "2020-01-01",
"until_date": "2021-01-01",
"local_filters": [
"keyword",
"since_date",
"until_date"
],
"query": null,
"query_handling": null,
"group_url": "https://www.facebook.com/groups/publicgroup",
"post_url": null
}Synthetic chronological collection from one explicit public group URL. Matching observed group permalinks establish membership. Keyword/date filters are checked locally with inclusive since_date and exclusive until_date; a lower date can narrow the upstream crawl, while filtering never extends its finite window. Private groups are unsupported and collection completeness is unknown.
POST /scrapers/facebook/post/comments{
"Idempotency-Key": "facebook-post-comments-001",
"Prefer": "respond-async"
}curl --fail-with-body --max-time 30 -sS "https://hive.arglegal.live/scrapers/facebook/post/comments" \
-H "Authorization: Bearer $HIVE_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: facebook-post-comments-001" \
-H "Prefer: respond-async" \
--data '{"post_url":"https://www.facebook.com/examplepage/posts/456","keyword":"science","since_date":"2020-01-01","until_date":"2021-01-01","collection_size":100,"limit":2}'{
"post_url": "https://www.facebook.com/examplepage/posts/456",
"keyword": "science",
"since_date": "2020-01-01",
"until_date": "2021-01-01",
"collection_size": 100,
"limit": 2
}{
"job_id": "rjob_aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
"service": "facebook",
"operation": "post/comments",
"status": "pending",
"created_at": 1789913600,
"expires_at": 1790000000,
"poll_url": "/scrapers/jobs/rjob_aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
"result": null,
"error": null,
"retry_after_s": null
}{
"items": [
{
"comment_id": "789",
"url": "https://www.facebook.com/examplepage/posts/456?comment_id=789",
"post_url": "https://www.facebook.com/examplepage/posts/456",
"author": {
"username": null,
"profile_url": null,
"profile_id": "987",
"display_name": null,
"image_url": null
},
"timestamp": "2020-06-01T13:00:00+00:00",
"text": "Synthetic science comment.",
"likes_count": null,
"parent_comment_id": null,
"comment_scope": "top_level_candidate",
"relation_evidence": "comment_permalink"
}
],
"count": 1,
"result_id": "rresult_33333333333333333333333333333333",
"page": 1,
"limit": 2,
"next_page": null,
"collected_count": 1,
"collection_limit": 100,
"expires_at": 1790000000,
"truncated": null,
"partial": true,
"requested_collection_size": 100,
"collection_complete": null,
"partial_reasons": [
"rejected_rows"
],
"keyword": "science",
"since_date": "2020-01-01",
"until_date": "2021-01-01",
"local_filters": [
"keyword",
"since_date",
"until_date"
],
"query": null,
"query_handling": null,
"group_url": null,
"post_url": "https://www.facebook.com/examplepage/posts/456"
}Synthetic comment with an observed parent-post permalink. Unknown depth stays a top-level candidate and parent_comment_id remains null. No nested replies or full comment-thread claim is made. Missing commenter URLs remain null rather than becoming fabricated links. Local literal keyword and UTC date filters use the same rules as posts.
POST /scrapers/facebook/groups/search{
"Idempotency-Key": "hive-doc-facebook-groups-search",
"Prefer": "respond-async"
}curl --fail-with-body --max-time 30 -sS "https://hive.arglegal.live/scrapers/facebook/groups/search" \
-H "Authorization: Bearer $HIVE_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: hive-doc-facebook-groups-search" \
-H "Prefer: respond-async" \
--data '{"limit":2,"query":"Argentinos en Melbourne","collection_size":5}'{
"limit": 2,
"query": "Argentinos en Melbourne",
"collection_size": 5
}{
"job_id": "rjob_22222222222222222222222222222222",
"service": "facebook",
"operation": "groups/search",
"status": "pending",
"created_at": 1791068400,
"expires_at": 1791154800,
"poll_url": "/scrapers/jobs/rjob_22222222222222222222222222222222",
"result": null,
"error": null,
"retry_after_s": null
}{
"items": [
{
"group_id": "361701421159198",
"group_url": "https://www.facebook.com/groups/361701421159198",
"name": "ARGENTINOS EN MELBOURNE - SIN FILTROS -",
"vanity": null,
"privacy": "public",
"visibility": "visible",
"members_count": 1390,
"description": "COMUNIDAD ARGENTOS.\nEste es grupo creado con el propósito de dar un lugar de encuentro a los Argentinos que vivimos en Australia.\nPostear datos útiles que nos sirvan a todos, cosas curiosas, el que quiera invitar a todos para un encuent...",
"location": "Melbourne, Victoria, Australia",
"image_url": "https://cdn.example.com/image.jpg",
"posts_today": 2,
"posts_last_month": 34,
"average_posts_per_day": 1.1,
"created_at": "2019-07-07T01:32:11+00:00",
"admin_moderator_count": 4,
"query": "Argentinos en Melbourne",
"content_retrieved": false,
"relation_evidence": "public_group_profile"
},
{
"group_id": "2094162451204965",
"group_url": "https://www.facebook.com/groups/2094162451204965",
"name": "Argentinos en Melbourne",
"vanity": null,
"privacy": "public",
"visibility": "visible",
"members_count": 3,
"description": "Grupo de Argentinos en Melbourne y también en todo Australia.",
"location": "Melbourne, Victoria, Australia",
"image_url": "https://cdn.example.com/image.jpg",
"posts_today": 0,
"posts_last_month": 0,
"average_posts_per_day": 0,
"created_at": "2026-07-09T21:25:36+00:00",
"admin_moderator_count": 1,
"query": "Argentinos en Melbourne",
"content_retrieved": false,
"relation_evidence": "public_group_profile"
}
],
"count": 2,
"result_id": "rresult_11111111111111111111111111111111",
"page": 1,
"limit": 2,
"next_page": 2,
"collected_count": 5,
"collection_limit": 200,
"expires_at": 1791154800,
"truncated": null,
"partial": false,
"query": "Argentinos en Melbourne",
"requested_collection_size": 5,
"search_source": "public_web_index",
"query_handling": "upstream_hint",
"filters_enforced": false,
"collection_complete": null,
"content_retrieved": false,
"partial_reasons": []
}Discover actual group IDs, names, public URLs and available metadata through a public web index. Indexed private group names do not grant content access. Matching and exhaustive recall remain unknown. These are illustrative cached snapshots; examples do not establish current operation readiness or promise complete coverage.
POST /scrapers/tiktok/profile/details{
"profiles": [
"nasa"
]
}{
"items": [
{
"username": "nasa",
"profile_url": "https://www.tiktok.com/@nasa",
"display_name": "NASA",
"target": "nasa",
"input_index": 0
}
],
"count": 1,
"unresolved": []
}POST /scrapers/tiktok/profile/posts{
"Idempotency-Key": "tiktok-profile-posts-001",
"Prefer": "respond-async"
}curl --fail-with-body --max-time 30 -sS "https://hive.arglegal.live/scrapers/tiktok/profile/posts" \
-H "Authorization: Bearer $HIVE_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: tiktok-profile-posts-001" \
-H "Prefer: respond-async" \
--data '{"profiles":["nasa"],"limit":2}'{
"profiles": [
"nasa"
],
"limit": 2
}{
"job_id": "rjob_aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
"service": "tiktok",
"operation": "profile/posts",
"status": "pending",
"created_at": 1789913600,
"expires_at": 1790000000,
"poll_url": "/scrapers/jobs/rjob_aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
"result": null,
"error": null
}{
"items": [
{
"target": "nasa",
"input_index": 0,
"post_id": "123",
"url": "https://www.tiktok.com/@nasa/video/123",
"author": {
"username": "nasa",
"profile_url": "https://www.tiktok.com/@nasa"
},
"timestamp": "2026-09-01T12:00:00+00:00",
"text": "Public post example.",
"media": [],
"geotag": null,
"tagged_users": null,
"mentions": null,
"context": []
}
],
"count": 1,
"result_id": "rresult_11111111111111111111111111111111",
"page": 1,
"limit": 2,
"next_page": null,
"collected_count": 1,
"collection_limit": 500,
"expires_at": 1790000000,
"truncated": null,
"partial": false,
"targets": [
{
"target": "nasa",
"input_index": 0,
"status": "resolved",
"collected_count": 1,
"reason": null
}
],
"unresolved": [],
"per_target_limit": 50,
"history_complete": null,
"history_scope": "collected_window"
}POST /scrapers/tiktok/people/search{
"Idempotency-Key": "tiktok-people-search-001",
"Prefer": "respond-async"
}curl --fail-with-body --max-time 30 -sS "https://hive.arglegal.live/scrapers/tiktok/people/search" \
-H "Authorization: Bearer $HIVE_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: tiktok-people-search-001" \
-H "Prefer: respond-async" \
--data '{"query":"José García","locations":["Madrid"],"limit":2}'{
"query": "José García",
"locations": [
"Madrid"
],
"limit": 2
}{
"job_id": "rjob_aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
"service": "tiktok",
"operation": "people/search",
"status": "pending",
"created_at": 1789905600,
"expires_at": 1789992000,
"poll_url": "/scrapers/jobs/rjob_aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
"result": null,
"error": null
}{
"items": [
{
"query": "José García",
"rank": 1,
"status": "candidate",
"username": "example_person",
"profile_url": "https://www.tiktok.com/@example_person",
"profile_id": "123456",
"display_name": "José García",
"biography": "Synthetic public biography",
"image_url": "https://images.example.com/avatar.jpg",
"missing_fields": []
}
],
"count": 1,
"result_id": "rresult_22222222222222222222222222222222",
"page": 1,
"limit": 2,
"next_page": null,
"collected_count": 1,
"collection_limit": 50,
"expires_at": 1789992000,
"truncated": null,
"partial": false,
"query": "José García",
"locations": [
"Madrid"
],
"effective_query": "José García Madrid",
"location_handling": "query_hint",
"filters_enforced": false
}POST /scrapers/sherlock/search{
"usernames": [
"nasa"
],
"limit": 20
}{
"items": [
{
"username": "nasa",
"site": "GitHub",
"profile_url": "https://github.com/nasa",
"status": "candidate"
}
],
"count": 1,
"truncated": null
}POST /scrapers/google/search{
"queries": [
"site:nasa.gov Artemis"
],
"limit": 20,
"pages": 1,
"country": "us",
"language": "en"
}{
"items": [
{
"query": "site:nasa.gov Artemis",
"rank": 1,
"title": "Artemis",
"url": "https://www.nasa.gov/artemis/",
"snippet": "Explore the Artemis program."
}
],
"count": 1
}POST /scrapers/google_lens/search{
"image_url": "https://gpm.nasa.gov/sites/default/files/document_files/NASA-Logo-Large.png",
"search_types": [
"visual",
"exact",
"text"
],
"limit": 20
}{
"items": [
{
"type": "visual",
"title": "NASA",
"url": "https://www.nasa.gov/"
},
{
"type": "exact",
"title": "NASA logo",
"url": "https://www.nasa.gov/logos/"
},
{
"type": "text",
"text": "NASA"
}
],
"count": 3
}POST /scrapers/reddit/search{
"Idempotency-Key": "hive-doc-reddit-search",
"Prefer": "respond-async"
}curl --fail-with-body --max-time 30 -sS "https://hive.arglegal.live/scrapers/reddit/search" \
-H "Authorization: Bearer $HIVE_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: hive-doc-reddit-search" \
-H "Prefer: respond-async" \
--data '{"limit":2,"query":"python web scraping","content_type":"both","sort":"relevance","time_filter":"all","subreddits":[],"include_nsfw":false,"collection_size":10}'{
"limit": 2,
"query": "python web scraping",
"content_type": "both",
"sort": "relevance",
"time_filter": "all",
"subreddits": [],
"include_nsfw": false,
"collection_size": 10
}{
"job_id": "rjob_22222222222222222222222222222222",
"service": "reddit",
"operation": "search",
"status": "pending",
"created_at": 1791068400,
"expires_at": 1791154800,
"poll_url": "/scrapers/jobs/rjob_22222222222222222222222222222222",
"result": null,
"error": null,
"retry_after_s": null
}{
"items": [
{
"full_id": "t3_a1rp7c",
"post_id": "a1rp7c",
"url": "https://www.reddit.com/r/learnprogramming/comments/a1rp7c/i_made_a_python_web_scraping_guide_for_beginners/",
"subreddit": "learnprogramming",
"author": {
"username": "brendanmartin",
"profile_id": "t2_u94ni",
"profile_url": "https://www.reddit.com/user/brendanmartin/",
"image_url": "https://cdn.example.com/image.jpg",
"is_deleted": null
},
"text": "I've been web scraping professionally for a few years and decided to make a series of web scraping tutorials that I wish I had when I started.\n\nThe series will follow a large project I'm building that analyzes political rhetoric in the n...",
"content_state": "available",
"timestamp": "2018-11-30T11:39:30+00:00",
"score": 2193,
"query": "python web scraping",
"relation_evidence": "search_result_permalink",
"kind": "post",
"title": "I made a Python web scraping guide for beginners",
"comments_count": 150,
"outbound_url": null,
"is_nsfw": false
},
{
"full_id": "t1_pbake4z",
"post_id": "1wmrzed",
"url": "https://www.reddit.com/r/dataanalysis/comments/1wmrzed/web_scraping/pbake4z/",
"subreddit": "dataanalysis",
"author": {
"username": "ItsSignalsJerry_",
"profile_id": "t2_17b10vcuh9",
"profile_url": "https://www.reddit.com/user/ItsSignalsJerry_/",
"image_url": "https://cdn.example.com/image.jpg",
"is_deleted": null
},
"text": "The point of CAPTCHA is to prevent bots. A scraper is a bot.\n\nAlso, R is not what you should be using scraping the web when Python makes it much easier.",
"content_state": "available",
"timestamp": "2026-09-22T02:48:33+00:00",
"score": 18,
"query": "python web scraping",
"relation_evidence": "search_result_permalink",
"kind": "comment",
"comment_id": "pbake4z",
"parent_id": "t3_1wmrzed",
"parent_evidence": "post_context",
"post_title": "Web scraping"
}
],
"count": 2,
"result_id": "rresult_11111111111111111111111111111111",
"page": 1,
"limit": 2,
"next_page": 2,
"collected_count": 10,
"collection_limit": 200,
"expires_at": 1791154800,
"truncated": null,
"partial": false,
"requested_collection_size": 10,
"query": "python web scraping",
"content_type": "both",
"sort": "relevance",
"time_filter": "all",
"subreddits": [],
"collection_complete": null,
"query_handling": "upstream_hint",
"filters_enforced": false,
"partial_reasons": []
}Search public Reddit posts, comments or both with optional subreddit, sort and time hints. Returned IDs, permalinks and authors come from source rows. Native query operators are upstream hints and do not guarantee matching. Collection size is 1–200. These are illustrative cached snapshots; examples do not establish current operation readiness or promise complete coverage.
POST /scrapers/reddit/post/comments{
"Idempotency-Key": "hive-doc-reddit-post-comments",
"Prefer": "respond-async"
}curl --fail-with-body --max-time 30 -sS "https://hive.arglegal.live/scrapers/reddit/post/comments" \
-H "Authorization: Bearer $HIVE_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: hive-doc-reddit-post-comments" \
-H "Prefer: respond-async" \
--data '{"limit":3,"post_url":"https://www.reddit.com/r/stocksandtrading/comments/1wp6ilq/the_bullish_case_for_kraken_robotics_the/","sort":"best","collection_size":20}'{
"limit": 3,
"post_url": "https://www.reddit.com/r/stocksandtrading/comments/1wp6ilq/the_bullish_case_for_kraken_robotics_the/",
"sort": "best",
"collection_size": 20
}{
"job_id": "rjob_22222222222222222222222222222222",
"service": "reddit",
"operation": "post/comments",
"status": "pending",
"created_at": 1791068400,
"expires_at": 1791154800,
"poll_url": "/scrapers/jobs/rjob_22222222222222222222222222222222",
"result": null,
"error": null,
"retry_after_s": null
}{
"items": [
{
"comment_id": "pbsphka",
"full_id": "t1_pbsphka",
"post_id": "1wp6ilq",
"url": "https://www.reddit.com/r/stocksandtrading/comments/1wp6ilq/the_bullish_case_for_kraken_robotics_the/pbsphka/",
"post_url": "https://www.reddit.com/r/stocksandtrading/comments/1wp6ilq/the_bullish_case_for_kraken_robotics_the/",
"subreddit": "stocksandtrading",
"author": {
"username": "AutoModerator",
"profile_id": null,
"profile_url": "https://www.reddit.com/user/AutoModerator/",
"image_url": null,
"is_deleted": false
},
"text": "🚀 🌑 -- Join our discord!! https://discord.gg/jcewXNmf6C -- 🚀 🌑\n\nI am a bot, and this action was performed automatically. Please contact the moderators of this subreddit if you have any questions or concerns.",
"content_state": "available",
"timestamp": "2026-09-24T16:35:25.787000+00:00",
"edited_at": null,
"score": null,
"depth": 0,
"parent_id": "t3_1wp6ilq",
"path": [
"t1_pbsphka"
],
"parent_present_in_collection": true,
"children_ids": [],
"direct_reply_count": 0,
"captured_sequence": 1,
"relation_evidence": "observed_parent_and_path"
},
{
"comment_id": "pbw6fsu",
"full_id": "t1_pbw6fsu",
"post_id": "1wp6ilq",
"url": "https://www.reddit.com/r/stocksandtrading/comments/1wp6ilq/the_bullish_case_for_kraken_robotics_the/pbw6fsu/",
"post_url": "https://www.reddit.com/r/stocksandtrading/comments/1wp6ilq/the_bullish_case_for_kraken_robotics_the/",
"subreddit": "stocksandtrading",
"author": {
"username": "therackage",
"profile_id": null,
"profile_url": "https://www.reddit.com/user/therackage/",
"image_url": null,
"is_deleted": false
},
"text": "“And that gap is the whole story”\n\nThanks ChatGPT.",
"content_state": "available",
"timestamp": "2026-09-25T02:24:29.917000+00:00",
"edited_at": null,
"score": 9,
"depth": 0,
"parent_id": "t3_1wp6ilq",
"path": [
"t1_pbw6fsu"
],
"parent_present_in_collection": true,
"children_ids": [
"t1_pbw6p8d"
],
"direct_reply_count": 1,
"captured_sequence": 2,
"relation_evidence": "observed_parent_and_path"
},
{
"comment_id": "pbw6p8d",
"full_id": "t1_pbw6p8d",
"post_id": "1wp6ilq",
"url": "https://www.reddit.com/r/stocksandtrading/comments/1wp6ilq/the_bullish_case_for_kraken_robotics_the/pbw6p8d/",
"post_url": "https://www.reddit.com/r/stocksandtrading/comments/1wp6ilq/the_bullish_case_for_kraken_robotics_the/",
"subreddit": "stocksandtrading",
"author": {
"username": "GrahamPhisher",
"profile_id": null,
"profile_url": "https://www.reddit.com/user/GrahamPhisher/",
"image_url": null,
"is_deleted": false
},
"text": "Local LLM powered by a B70 after processing an entire night of stock analysis and web scraping from a python program with a 58% win rate*\n\nAnd yes the gap is the story, that's what traders should be looking to leverage.",
"content_state": "available",
"timestamp": "2026-09-25T02:25:53.698000+00:00",
"edited_at": null,
"score": 3,
"depth": 1,
"parent_id": "t1_pbw6fsu",
"path": [
"t1_pbw6fsu",
"t1_pbw6p8d"
],
"parent_present_in_collection": true,
"children_ids": [],
"direct_reply_count": 0,
"captured_sequence": 3,
"relation_evidence": "observed_parent_and_path"
}
],
"count": 3,
"result_id": "rresult_11111111111111111111111111111111",
"page": 1,
"limit": 3,
"next_page": 2,
"collected_count": 4,
"collection_limit": 1000,
"expires_at": 1791154800,
"truncated": null,
"partial": false,
"requested_collection_size": 20,
"post_url": "https://www.reddit.com/r/stocksandtrading/comments/1wp6ilq/the_bullish_case_for_kraken_robotics_the/",
"post_id": "1wp6ilq",
"sort": "best",
"thread_status": "observed",
"collection_complete": null,
"tree_complete": true,
"max_depth": 100,
"missing_ancestor_ids": [],
"nested_replies_requested": true,
"collapsed_replies_requested": true,
"partial_reasons": []
}Expand accessible nested and collapsed replies with actual parent IDs, paths and deleted placeholders. A parent may appear on another cached page. tree_complete refers only to the accessible source tree when supported by its summary; null is unknown. Deleted text and private comments are not recovered. Collection size is 1–1000, with maximum depth 100. These are illustrative cached snapshots; examples do not establish current operation readiness or promise complete coverage.
POST /scrapers/telegram/groups/search{
"Idempotency-Key": "hive-doc-telegram-groups-search",
"Prefer": "respond-async"
}curl --fail-with-body --max-time 30 -sS "https://hive.arglegal.live/scrapers/telegram/groups/search" \
-H "Authorization: Bearer $HIVE_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: hive-doc-telegram-groups-search" \
-H "Prefer: respond-async" \
--data '{"query":"python","language":null,"limit":2,"collection_size":5}'{
"query": "python",
"language": null,
"limit": 2,
"collection_size": 5
}{
"job_id": "rjob_00000000000000000000000000000001",
"service": "telegram",
"operation": "groups/search",
"status": "pending",
"created_at": 1791493200,
"expires_at": 1791579600,
"poll_url": "/scrapers/jobs/rjob_00000000000000000000000000000001",
"result": null,
"error": null,
"retry_after_s": null
}{
"count": 1,
"page": 1,
"limit": 2,
"next_page": null,
"collected_count": 1,
"expires_at": 1791579600,
"truncated": null,
"partial": false,
"collection_complete": null,
"partial_reasons": [],
"items": [
{
"group_url": "https://t.me/pythongroup",
"username": "pythongroup",
"title": "Python group",
"description": "Illustrative public group description",
"query": "python",
"rank": 1,
"matched_all_words": true,
"language": null,
"observed_at": "2026-10-08T12:00:00+00:00",
"relation_evidence": "public_group_index"
}
],
"result_id": "rresult_00000000000000000000000000000001",
"collection_limit": 200,
"requested_collection_size": 5,
"query": "python",
"language": null,
"search_source": "public_web_index",
"query_handling": "upstream_hint",
"filters_enforced": false,
"content_retrieved": false
}Discover public discussion-group candidates by topic or name. Public index results are not exhaustive; discovery collects neither messages nor member lists. These are illustrative cached snapshots; examples do not establish current operation readiness or promise complete coverage.
POST /scrapers/telegram/group/details{
"Idempotency-Key": "hive-doc-telegram-group-details",
"Prefer": "respond-async"
}curl --fail-with-body --max-time 30 -sS "https://hive.arglegal.live/scrapers/telegram/group/details" \
-H "Authorization: Bearer $HIVE_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: hive-doc-telegram-group-details" \
-H "Prefer: respond-async" \
--data '{"group_url":"https://t.me/pythontelegrambotgroup","limit":2}'{
"group_url": "https://t.me/pythontelegrambotgroup",
"limit": 2
}{
"job_id": "rjob_00000000000000000000000000000002",
"service": "telegram",
"operation": "group/details",
"status": "pending",
"created_at": 1791493200,
"expires_at": 1791579600,
"poll_url": "/scrapers/jobs/rjob_00000000000000000000000000000002",
"result": null,
"error": null,
"retry_after_s": null
}{
"count": 1,
"page": 1,
"limit": 2,
"next_page": null,
"collected_count": 1,
"expires_at": 1791579600,
"truncated": null,
"partial": false,
"collection_complete": null,
"partial_reasons": [],
"items": [
{
"group_url": "https://t.me/pythontelegrambotgroup",
"username": "pythontelegrambotgroup",
"title": "Python Telegram Bot discussion",
"description": "Illustrative public group description",
"members_count": null,
"online_count": null,
"is_verified": null,
"image_url": null,
"observed_at": "2026-10-08T12:00:00+00:00"
}
],
"result_id": "rresult_00000000000000000000000000000002",
"collection_limit": 1,
"requested_collection_size": 1,
"group_url": "https://t.me/pythontelegrambotgroup"
}Read metadata for one public discussion group. Channels and bots are not returned as groups. Hidden previews and source failures do not prove an empty group. These are illustrative cached snapshots; examples do not establish current operation readiness or promise complete coverage.
POST /scrapers/telegram/group/messages{
"Idempotency-Key": "hive-doc-telegram-group-messages",
"Prefer": "respond-async"
}curl --fail-with-body --max-time 30 -sS "https://hive.arglegal.live/scrapers/telegram/group/messages" \
-H "Authorization: Bearer $HIVE_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: hive-doc-telegram-group-messages" \
-H "Prefer: respond-async" \
--data '{"group_url":"https://t.me/pythontelegrambotgroup","limit":2,"collection_size":5,"keyword":null,"since":null,"until":null}'{
"group_url": "https://t.me/pythontelegrambotgroup",
"limit": 2,
"collection_size": 5,
"keyword": null,
"since": null,
"until": null
}{
"job_id": "rjob_00000000000000000000000000000003",
"service": "telegram",
"operation": "group/messages",
"status": "pending",
"created_at": 1791493200,
"expires_at": 1791579600,
"poll_url": "/scrapers/jobs/rjob_00000000000000000000000000000003",
"result": null,
"error": null,
"retry_after_s": null
}{
"count": 1,
"page": 1,
"limit": 2,
"next_page": null,
"collected_count": 1,
"expires_at": 1791579600,
"truncated": null,
"partial": false,
"collection_complete": null,
"partial_reasons": [],
"items": [
{
"group_url": "https://t.me/pythontelegrambotgroup",
"message_id": "1",
"url": "https://t.me/pythontelegrambotgroup/1",
"text": "Illustrative public discussion message",
"timestamp": "2026-10-08T12:00:00+00:00",
"edited": false,
"sender": {
"name": null,
"username": null,
"profile_url": null
},
"reply_to_message_id": null,
"reply_to_url": null,
"media": [],
"relation_evidence": "observed_group_message"
}
],
"result_id": "rresult_00000000000000000000000000000003",
"collection_limit": 200,
"requested_collection_size": 5,
"group_url": "https://t.me/pythontelegrambotgroup",
"keyword": null,
"since": null,
"until": null,
"history_scope": "public_accessible_snapshot",
"history_complete": null,
"filters_enforced": false
}Collect up to 200 accessible group messages with observed IDs, UTC timestamps, public senders, reply links and media references. Keyword and time filters are source hints. Full history stays unknown; media references can expire and bytes are not retained. These are illustrative cached snapshots; examples do not establish current operation readiness or promise complete coverage.
Books
Submit POST /books/queries, then poll the opaque query ID. Inspect results through GET /books/items/{book_id}. Submit POST /books/downloads, poll the download, and retrieve its artifact when ready.
Query and download submissions require an Idempotency-Key. Availability is reported separately in /capabilities; configuration alone does not establish a working download.
{
"query": "Pride and Prejudice",
"limit": 10
}Use a returned book_id and one of its available formats in the download body: {"book_id":"<returned-book-id>","format":"epub"}.
Reference
Renew before lease_expires_at to keep using the same route and credentials. Browser sessions can run for up to one hour; max_expires_at gives the final deadline. Create a new session once the current one expires.
Use rotate when you need a new exit IP. Hive checks the replacement against your requested country, region, ASN, and network type. If no matching replacement is available, your current connection stays in place.
Pass the same identity_token to request a sticky allocation. A request that cannot preserve that identity fails rather than assigning a different one. Use mobile: true; non-mobile allocations are currently unavailable.
Browser WebSocket connections use your Hive bearer key. Proxy connections use the separate username and password returned when you create a tunnel. Save those credentials from the creation response.
SOCKS5 and HTTP proxy authentication travels unencrypted. HTTPS CONNECT encrypts traffic to the destination after the proxy handshake; it does not encrypt the proxy credentials.
Errors
400 invalid request · 401 invalid Hive authentication · 403 forbidden · 404 not found · 409 conflicting or expired state · 429 rate limited · 503 service or constraints unavailable · 504 timeout.
Errors expose stable error codes. Do not blindly retry allocations or timed-out research calls. Reuse an idempotency key where supported, and inspect an existing resource before creating another.
API reference
All endpoints use the same base URL. Fields marked required must be supplied.
/books/artifacts/{artifact_id}/contentGet Artifact Content
artifact_id path · requiredRange header · optionalSuccessful Response
HTTP 422 · Validation Error/books/downloadsSubmit Download
Idempotency-Key header · optionalSee the lifecycle example for this operation.
Successful Response
HTTP 422 · Validation Error/books/downloads/{download_id}Get Download
download_id path · requiredSuccessful Response
HTTP 422 · Validation Error/books/items/{book_id}Get Item
book_id path · requiredSuccessful Response
HTTP 422 · Validation Error/books/queriesSubmit Query
Idempotency-Key header · optionalSee the lifecycle example for this operation.
Successful Response
HTTP 422 · Validation Error/books/queries/{query_id}Get Query
query_id path · requiredSuccessful Response
HTTP 422 · Validation Error/browser/captureCapture public URL text and a full-page PNG
Create an isolated temporary browser, navigate once, return bounded current text and a full-page PNG, and close browser and egress ownership. Defaults to direct internet access through the public-only Relay guard; use_proxy=true opts into managed proxy access. Does not reuse profiles, log in, solve challenges, or guarantee access. navigation_status reports the target HTTP response, including denial. A full-page image exceeding 16 million pixels or 4 MiB fails; text_truncated reports text limits.
asn string | integer | null · optionalDefault: null.
browser string · optionalPattern: ^(chrome|firefox)$. Default: "chrome".
country string · optionalPattern: ^[A-Za-z]{2}$. Default: "US".
identity_token string | null · optionalDefault: null. Minimum length: 1. Maximum length: 128.
max_text_chars integer · optionalMinimum: 1. Maximum: 100000. Default: 20000.
mobile boolean · optionalDefault: true.
region string | null · optionalDefault: null. Minimum length: 1. Maximum length: 100.
timeout_s integer · optionalMinimum: 5. Maximum: 60. Default: 30.
url string · requiredMinimum length: 1. Maximum length: 4096.
use_proxy boolean · optionalDefault: false.
wait_ms integer · optionalMinimum: 0. Maximum: 5000. Default: 500.
window_size string · optionalPattern: ^[1-9][0-9]{2,3}x[1-9][0-9]{2,3}$. Default: "1280x720".
Success
blocked_requests integer · requiredMinimum: 0.
navigation_status integer | null · requiredMinimum: 100. Maximum: 599.
screenshot object · requiredscreenshot.data_base64 string · requiredMinimum length: 1. Maximum length: 5592408.
screenshot.full_page boolean · requiredscreenshot.height integer · requiredMinimum: 1. Maximum: 16384.
screenshot.media_type string · requiredPattern: ^image/png$.
screenshot.sha256 string · requiredPattern: ^[a-f0-9]{64}$.
screenshot.size_bytes integer · requiredMinimum: 1. Maximum: 4194304.
screenshot.width integer · requiredMinimum: 1. Maximum: 16384.
text string · requiredMaximum length: 100000.
text_truncated boolean · requiredtitle string · requiredMaximum length: 512.
HTTP 400 · Invalid requestHTTP 401 · Invalid Hive authenticationHTTP 409 · Conflicting state or idempotency keyHTTP 410 · Result expiredHTTP 429 · Capture capacity unavailableHTTP 503 · Requested service or constraints unavailableHTTP 504 · Capture deadline exceeded/browser/profilesList your browser profiles
limit query · optionaloffset query · optionalSuccess
HTTP 400 · Invalid requestHTTP 401 · Invalid Hive authenticationHTTP 409 · Conflicting state or idempotency keyHTTP 410 · Result expiredHTTP 503 · Requested service or constraints unavailable/browser/profilesGenerate a persistent browser identity
Idempotency-Key header · optionalReuse the same key and request to replay a successful allocation.
browser chrome | firefox | null · optionalDefault: null.
network object | null · optionalDefault: null.
Success
browser chrome | firefox · requiredcreated_at string · requiredengine donut | camoufox · requiredid string · requirednetwork object | null · optionalDefault: null.
runtime_version string | null · requiredschema_version integer · requiredstatus string · requiredupdated_at string · requiredHTTP 400 · Invalid requestHTTP 401 · Invalid Hive authenticationHTTP 409 · Conflicting state or idempotency keyHTTP 410 · Result expiredHTTP 503 · Requested service or constraints unavailable/browser/profiles/{profile_id}Delete an idle browser profile
profile_id path · requiredSuccess
HTTP 400 · Invalid requestHTTP 401 · Invalid Hive authenticationHTTP 409 · Conflicting state or idempotency keyHTTP 410 · Result expiredHTTP 503 · Requested service or constraints unavailable/browser/profiles/{profile_id}Inspect your browser profile
profile_id path · requiredSuccess
browser chrome | firefox · requiredcreated_at string · requiredengine donut | camoufox · requiredid string · requirednetwork object | null · optionalDefault: null.
runtime_version string | null · requiredschema_version integer · requiredstatus string · requiredupdated_at string · requiredHTTP 400 · Invalid requestHTTP 401 · Invalid Hive authenticationHTTP 409 · Conflicting state or idempotency keyHTTP 410 · Result expiredHTTP 503 · Requested service or constraints unavailable/browser/sessionClose a browser session
session_id query · requiredSuccess
HTTP 400 · Invalid requestHTTP 401 · Invalid Hive authenticationHTTP 409 · Conflicting state or idempotency keyHTTP 410 · Result expiredHTTP 503 · Requested service or constraints unavailable/browser/sessionInspect a browser session
session_id query · requiredSuccess
automation_protocol cdp | playwright · requiredbrowser chrome | firefox · optionalcdp_url string · optionalengine donut | camoufox · optionallease_expires_at string · optionalFormat: date-time.
max_expires_at string · optionalFixed one-hour session deadline. Renewal cannot extend it. Format: date-time.
profile object · optionalprofile.browser chrome | firefox · requiredprofile.created_at string · requiredprofile.engine donut | camoufox · requiredprofile.id string · requiredprofile.network object | null · optionalDefault: null.
profile.runtime_version string | null · requiredprofile.schema_version integer · requiredprofile.status string · requiredprofile.updated_at string · requiredprofile_id string · optionalPattern: ^[0-9a-f]{32}$.
session_id string · requiredstatus string · optionalviewer_url string · optionalws_endpoint string · optionalHTTP 400 · Invalid requestHTTP 401 · Invalid Hive authenticationHTTP 409 · Conflicting state or idempotency keyHTTP 410 · Result expiredHTTP 503 · Requested service or constraints unavailable/browser/sessionCreate a persistent browser session
Idempotency-Key header · optionalReuse the same key and request to replay a successful allocation.
asn string | integer | null · optionalDefault: null.
browser chrome | firefox | null · optionalDefault: null.
country string · optionalProxy exit country when use_proxy is true. Does not change the exit IP of a direct session. Pattern: ^[A-Za-z]{2}$. Default: "US".
identity_token string | null · optionalDefault: null. Minimum length: 1. Maximum length: 128.
mobile boolean · optionalDefault: true.
profile_id string | null · optionalDefault: null. Pattern: ^[0-9a-f]{32}$.
region string | null · optionalDefault: null. Minimum length: 1. Maximum length: 100.
use_proxy boolean · optionalOpt into managed proxy access. Omit to inherit a profile's saved network; otherwise access is direct. False conflicts with a network-bound profile. Default: false.
window_size string · optionalPattern: ^[1-9][0-9]{2,3}x[1-9][0-9]{2,3}$. Default: "1280x720".
Success
automation_protocol cdp | playwright · requiredbrowser chrome | firefox · optionalcdp_url string · optionalengine donut | camoufox · optionallease_expires_at string · optionalFormat: date-time.
max_expires_at string · optionalFixed one-hour session deadline. Renewal cannot extend it. Format: date-time.
profile object · optionalprofile.browser chrome | firefox · requiredprofile.created_at string · requiredprofile.engine donut | camoufox · requiredprofile.id string · requiredprofile.network object | null · optionalDefault: null.
profile.runtime_version string | null · requiredprofile.schema_version integer · requiredprofile.status string · requiredprofile.updated_at string · requiredprofile_id string · optionalPattern: ^[0-9a-f]{32}$.
session_id string · requiredstatus string · optionalviewer_url string · optionalws_endpoint string · optionalHTTP 400 · Invalid requestHTTP 401 · Invalid Hive authenticationHTTP 409 · Conflicting state or idempotency keyHTTP 410 · Result expiredHTTP 503 · Requested service or constraints unavailable/browser/session/renewExtend the existing browser lease
session_id query · requiredSuccess
automation_protocol cdp | playwright · requiredbrowser chrome | firefox · optionalcdp_url string · optionalengine donut | camoufox · optionallease_expires_at string · optionalFormat: date-time.
max_expires_at string · optionalFixed one-hour session deadline. Renewal cannot extend it. Format: date-time.
profile object · optionalprofile.browser chrome | firefox · requiredprofile.created_at string · requiredprofile.engine donut | camoufox · requiredprofile.id string · requiredprofile.network object | null · optionalDefault: null.
profile.runtime_version string | null · requiredprofile.schema_version integer · requiredprofile.status string · requiredprofile.updated_at string · requiredprofile_id string · optionalPattern: ^[0-9a-f]{32}$.
session_id string · requiredstatus string · optionalviewer_url string · optionalws_endpoint string · optionalHTTP 400 · Invalid requestHTTP 401 · Invalid Hive authenticationHTTP 409 · Conflicting state or idempotency keyHTTP 410 · Result expiredHTTP 503 · Requested service or constraints unavailable/capabilitiesDiscover services and supported constraints
Inspect each scraper's operation_status and operation_health. Each health entry has reason (null, rate_limited, timeout, invalid_response, capacity_limited, service_unavailable, not_found, or invalid_request), observed_at (Unix seconds or null), and retry_after_s (remaining minimum recheck delay or null when unknown). Capacity is shared across operations on this deployment. GET /scrapers/capacity reports availability and retry guidance. Hive manages service recovery; clients do not manage its upstream accounts. Google Lens private image jobs require scrapers.google_lens.private_image_ready=true. Discovery never starts research. An elapsed delay does not prove recovery; recover existing jobs with the original idempotency key.
Success
HTTP 400 · Invalid requestHTTP 401 · Invalid Hive authenticationHTTP 409 · Conflicting state or idempotency keyHTTP 410 · Result expiredHTTP 503 · Requested service or constraints unavailable/exchange/imageGenerate image artifacts
count integer · optionalMinimum: 1. Maximum: 4.
prompt string · requiredMinimum length: 1.
size string · optionalSuccess
HTTP 400 · Invalid requestHTTP 401 · Invalid Hive authenticationHTTP 409 · Conflicting state or idempotency keyHTTP 410 · Result expiredHTTP 503 · Requested service or constraints unavailable/exchange/llmGenerate a completion
max_tokens integer · optionalMinimum: 1. Maximum: 16384.
messages object[] · requiredMinimum items: 1.
messages[].content string · requiredmessages[].role string · requiredresponse_format object · optionalSuccess
HTTP 400 · Invalid requestHTTP 401 · Invalid Hive authenticationHTTP 409 · Conflicting state or idempotency keyHTTP 410 · Result expiredHTTP 503 · Requested service or constraints unavailable/healthzRead service availability
Success
HTTP 400 · Invalid requestHTTP 401 · Invalid Hive authenticationHTTP 409 · Conflicting state or idempotency keyHTTP 410 · Result expiredHTTP 503 · Requested service or constraints unavailable/network/pinDiscover an available geographic and ASN pin
country query · requiredregion query · optionalasn query · optionalmobile query · optionalSuccess
HTTP 400 · Invalid requestHTTP 401 · Invalid Hive authenticationHTTP 409 · Conflicting state or idempotency keyHTTP 410 · Result expiredHTTP 503 · Requested service or constraints unavailable/network/tunnelsRevoke all tunnels owned by this API key
Success
HTTP 400 · Invalid requestHTTP 401 · Invalid Hive authenticationHTTP 409 · Conflicting state or idempotency keyHTTP 410 · Result expiredHTTP 503 · Requested service or constraints unavailable/network/tunnelsCreate a verified network tunnel
Idempotency-Key header · optionalReuse the same key and request to replay a successful allocation.
asn string | integer | null · optionalDefault: null.
country string · requiredPattern: ^[A-Za-z]{2}$.
identity_token string | null · optionalDefault: null. Minimum length: 1. Maximum length: 128.
idle_timeout_s integer | null · optionalDefault: null. Minimum: 1.
max_bytes integer | null · optionalDefault: null. Minimum: 1.
max_connections integer | null · optionalDefault: null. Minimum: 1.
mobile boolean · optionalDefault: true.
region string | null · optionalDefault: null. Minimum length: 1. Maximum length: 100.
source_ip string | null · optionalDefault: null.
ttl_s integer | null · optionalDefault: null. Minimum: 1.
Success
created_at string · optionalFormat: date-time.
credentials object · optionalcredentials.password string · requiredcredentials.username string · requiredendpoints object · optionalendpoints.http object · optionalendpoints.http.host string · requiredendpoints.http.port integer · requiredendpoints.http.scheme string · requiredendpoints.socks5 object · optionalendpoints.socks5.host string · requiredendpoints.socks5.port integer · requiredendpoints.socks5.scheme string · requiredid string · optionallease_expires_at string · optionalFormat: date-time.
limits object · optionallimits.idle_timeout_s integer · optionallimits.max_bytes integer · optionallimits.max_connections integer · optionallimits.max_ttl_s integer · optionalnetwork object · optionalnetwork.connection_type string · optionalnetwork.exit object · optionalnetwork.exit.asn string · optionalnetwork.exit.country string · optionalnetwork.exit.hosting boolean · optionalnetwork.exit.ip string · optionalnetwork.exit.isp string · optionalnetwork.exit.mobile boolean · optionalnetwork.exit.region string · optionalnetwork.exit.verified_at string · optionalFormat: date-time.
network.quality object · optionalnetwork.quality.verified boolean · optionalnetwork.rotatable boolean · optionalnetwork.rotation object · optionalnetwork.rotation.rotated boolean · optionalsource_bound boolean · optionalstatus string · optionalterminal_reason string | null · optionalupdated_at string · optionalFormat: date-time.
HTTP 400 · Invalid requestHTTP 401 · Invalid Hive authenticationHTTP 409 · Conflicting state or idempotency keyHTTP 410 · Result expiredHTTP 503 · Requested service or constraints unavailable/network/tunnels/{tunnel_id}Revoke a tunnel
tunnel_id path · requiredSuccess
HTTP 400 · Invalid requestHTTP 401 · Invalid Hive authenticationHTTP 409 · Conflicting state or idempotency keyHTTP 410 · Result expiredHTTP 503 · Requested service or constraints unavailable/network/tunnels/{tunnel_id}Inspect a tunnel
tunnel_id path · requiredSuccess
created_at string · optionalFormat: date-time.
endpoints object · optionalendpoints.http object · optionalendpoints.http.host string · requiredendpoints.http.port integer · requiredendpoints.http.scheme string · requiredendpoints.socks5 object · optionalendpoints.socks5.host string · requiredendpoints.socks5.port integer · requiredendpoints.socks5.scheme string · requiredid string · optionallease_expires_at string · optionalFormat: date-time.
limits object · optionallimits.idle_timeout_s integer · optionallimits.max_bytes integer · optionallimits.max_connections integer · optionallimits.max_ttl_s integer · optionalnetwork object · optionalnetwork.connection_type string · optionalnetwork.exit object · optionalnetwork.exit.asn string · optionalnetwork.exit.country string · optionalnetwork.exit.hosting boolean · optionalnetwork.exit.ip string · optionalnetwork.exit.isp string · optionalnetwork.exit.mobile boolean · optionalnetwork.exit.region string · optionalnetwork.exit.verified_at string · optionalFormat: date-time.
network.quality object · optionalnetwork.quality.verified boolean · optionalnetwork.rotatable boolean · optionalnetwork.rotation object · optionalnetwork.rotation.rotated boolean · optionalsource_bound boolean · optionalstatus string · optionalterminal_reason string | null · optionalupdated_at string · optionalFormat: date-time.
HTTP 400 · Invalid requestHTTP 401 · Invalid Hive authenticationHTTP 409 · Conflicting state or idempotency keyHTTP 410 · Result expiredHTTP 503 · Requested service or constraints unavailable/network/tunnels/{tunnel_id}/credentialsReplace tunnel credentials
tunnel_id path · requiredSuccess
credentials object · optionalcredentials.password string · requiredcredentials.username string · requiredid string · optionalHTTP 400 · Invalid requestHTTP 401 · Invalid Hive authenticationHTTP 409 · Conflicting state or idempotency keyHTTP 410 · Result expiredHTTP 503 · Requested service or constraints unavailable/network/tunnels/{tunnel_id}/renewExtend the lease without changing the exit
tunnel_id path · requiredttl_s integer · optionalMinimum: 1.
Success
created_at string · optionalFormat: date-time.
endpoints object · optionalendpoints.http object · optionalendpoints.http.host string · requiredendpoints.http.port integer · requiredendpoints.http.scheme string · requiredendpoints.socks5 object · optionalendpoints.socks5.host string · requiredendpoints.socks5.port integer · requiredendpoints.socks5.scheme string · requiredid string · optionallease_expires_at string · optionalFormat: date-time.
limits object · optionallimits.idle_timeout_s integer · optionallimits.max_bytes integer · optionallimits.max_connections integer · optionallimits.max_ttl_s integer · optionalnetwork object · optionalnetwork.connection_type string · optionalnetwork.exit object · optionalnetwork.exit.asn string · optionalnetwork.exit.country string · optionalnetwork.exit.hosting boolean · optionalnetwork.exit.ip string · optionalnetwork.exit.isp string · optionalnetwork.exit.mobile boolean · optionalnetwork.exit.region string · optionalnetwork.exit.verified_at string · optionalFormat: date-time.
network.quality object · optionalnetwork.quality.verified boolean · optionalnetwork.rotatable boolean · optionalnetwork.rotation object · optionalnetwork.rotation.rotated boolean · optionalsource_bound boolean · optionalstatus string · optionalterminal_reason string | null · optionalupdated_at string · optionalFormat: date-time.
HTTP 400 · Invalid requestHTTP 401 · Invalid Hive authenticationHTTP 409 · Conflicting state or idempotency keyHTTP 410 · Result expiredHTTP 503 · Requested service or constraints unavailable/network/tunnels/{tunnel_id}/rotateSelect a verified different exit with the same constraints
tunnel_id path · requiredSuccess
created_at string · optionalFormat: date-time.
endpoints object · optionalendpoints.http object · optionalendpoints.http.host string · requiredendpoints.http.port integer · requiredendpoints.http.scheme string · requiredendpoints.socks5 object · optionalendpoints.socks5.host string · requiredendpoints.socks5.port integer · requiredendpoints.socks5.scheme string · requiredid string · optionallease_expires_at string · optionalFormat: date-time.
limits object · optionallimits.idle_timeout_s integer · optionallimits.max_bytes integer · optionallimits.max_connections integer · optionallimits.max_ttl_s integer · optionalnetwork object · optionalnetwork.connection_type string · optionalnetwork.exit object · optionalnetwork.exit.asn string · optionalnetwork.exit.country string · optionalnetwork.exit.hosting boolean · optionalnetwork.exit.ip string · optionalnetwork.exit.isp string · optionalnetwork.exit.mobile boolean · optionalnetwork.exit.region string · optionalnetwork.exit.verified_at string · optionalFormat: date-time.
network.quality object · optionalnetwork.quality.verified boolean · optionalnetwork.rotatable boolean · optionalnetwork.rotation object · optionalnetwork.rotation.rotated boolean · optionalsource_bound boolean · optionalstatus string · optionalterminal_reason string | null · optionalupdated_at string · optionalFormat: date-time.
HTTP 400 · Invalid requestHTTP 401 · Invalid Hive authenticationHTTP 409 · Conflicting state or idempotency keyHTTP 410 · Result expiredHTTP 503 · Requested service or constraints unavailable/readyzRead service availability
Success
HTTP 400 · Invalid requestHTTP 401 · Invalid Hive authenticationHTTP 409 · Conflicting state or idempotency keyHTTP 410 · Result expiredHTTP 503 · Requested service or constraints unavailable/resources/captchaCreate a captcha resource
Idempotency-Key header · optionalReuse the same key and request to replay a successful allocation.
Provide captcha_type and the matching site_key/page_url or image_b64, or the equivalent descriptor.
action string · optionalbrowser_context object · optionalOptional context from the browser submitting the token. Cookie values are transient and are not stored in Hive resource records. Only include cookies needed for this CAPTCHA. Context support depends on solver availability; unsupported combinations fail explicitly.
browser_context.cookies object[] · optionalMaximum items: 100.
browser_context.cookies[].domain string · requiredbrowser_context.cookies[].expires number · optionalUnix timestamp; omit or use -1 for session cookies.
browser_context.cookies[].http_only boolean · optionalDefault: false.
browser_context.cookies[].name string · requiredbrowser_context.cookies[].path string · requiredbrowser_context.cookies[].secure boolean · optionalDefault: false.
browser_context.cookies[].value string · requiredbrowser_context.user_agent string · optionalMinimum length: 1. Maximum length: 1024.
captcha_type recaptcha_v2 | recaptcha_v2_enterprise | recaptcha_v3 | hcaptcha | turnstile | image · optionaldescriptor object · optionaldescriptor.action string · optionaldescriptor.browser_context object · optionalOptional context from the browser submitting the token. Cookie values are transient and are not stored in Hive resource records. Only include cookies needed for this CAPTCHA. Context support depends on solver availability; unsupported combinations fail explicitly.
descriptor.browser_context.cookies object[] · optionalMaximum items: 100.
descriptor.browser_context.cookies[].domain string · requireddescriptor.browser_context.cookies[].expires number · optionalUnix timestamp; omit or use -1 for session cookies.
descriptor.browser_context.cookies[].http_only boolean · optionalDefault: false.
descriptor.browser_context.cookies[].name string · requireddescriptor.browser_context.cookies[].path string · requireddescriptor.browser_context.cookies[].secure boolean · optionalDefault: false.
descriptor.browser_context.cookies[].value string · requireddescriptor.browser_context.user_agent string · optionalMinimum length: 1. Maximum length: 1024.
descriptor.enterprise boolean · optionaldescriptor.image_b64 string · optionaldescriptor.min_score number · optionalMinimum: 0. Maximum: 1.
descriptor.page_url string · optionalFormat: uri.
descriptor.site_key string · optionaldescriptor.type recaptcha_v2 | recaptcha_v2_enterprise | recaptcha_v3 | hcaptcha | turnstile | image · optionalenterprise boolean · optionalimage_b64 string · optionalmin_score number · optionalMinimum: 0. Maximum: 1.
page_url string · optionalFormat: uri.
site_key string · optionalSuccess
HTTP 400 · Invalid requestHTTP 401 · Invalid Hive authenticationHTTP 409 · Conflicting state or idempotency keyHTTP 410 · Result expiredHTTP 503 · Requested service or constraints unavailable/resources/mailCreate a mail resource
Idempotency-Key header · optionalReuse the same key and request to replay a successful allocation.
country string · optionalPattern: ^[A-Za-z]{2}$.
domain string · optionalservice string · optionalSuccess
HTTP 400 · Invalid requestHTTP 401 · Invalid Hive authenticationHTTP 409 · Conflicting state or idempotency keyHTTP 410 · Result expiredHTTP 503 · Requested service or constraints unavailable/resources/networkCreate a network resource
Idempotency-Key header · optionalReuse the same key and request to replay a successful allocation.
asn string | integer | null · optionalDefault: null.
country string · requiredPattern: ^[A-Za-z]{2}$.
identity_token string | null · optionalDefault: null. Minimum length: 1. Maximum length: 128.
mobile boolean · optionalDefault: true.
region string | null · optionalDefault: null. Minimum length: 1. Maximum length: 100.
Success
HTTP 400 · Invalid requestHTTP 401 · Invalid Hive authenticationHTTP 409 · Conflicting state or idempotency keyHTTP 410 · Result expiredHTTP 503 · Requested service or constraints unavailable/resources/phoneCreate a phone resource
Idempotency-Key header · optionalReuse the same key and request to replay a successful allocation.
country string · optionalPattern: ^[A-Za-z]{2}$.
service string · optionalSuccess
HTTP 400 · Invalid requestHTTP 401 · Invalid Hive authenticationHTTP 409 · Conflicting state or idempotency keyHTTP 410 · Result expiredHTTP 503 · Requested service or constraints unavailable/resources/{resource_id}Release a resource
resource_id path · requiredSuccess
HTTP 400 · Invalid requestHTTP 401 · Invalid Hive authenticationHTTP 409 · Conflicting state or idempotency keyHTTP 410 · Result expiredHTTP 503 · Requested service or constraints unavailable/resources/{resource_id}Read a resource
resource_id path · requiredSuccess
HTTP 400 · Invalid requestHTTP 401 · Invalid Hive authenticationHTTP 409 · Conflicting state or idempotency keyHTTP 410 · Result expiredHTTP 503 · Requested service or constraints unavailable/resources/{resource_id}/pollPoll resource progress
resource_id path · requiredIdempotency-Key header · optionalReuse the same key and request to replay a successful allocation.
Success
HTTP 400 · Invalid requestHTTP 401 · Invalid Hive authenticationHTTP 409 · Conflicting state or idempotency keyHTTP 410 · Result expiredHTTP 503 · Requested service or constraints unavailable/resources/{resource_id}/renewExtend the resource lease
resource_id path · requiredIdempotency-Key header · optionalReuse the same key and request to replay a successful allocation.
Success
HTTP 400 · Invalid requestHTTP 401 · Invalid Hive authenticationHTTP 409 · Conflicting state or idempotency keyHTTP 410 · Result expiredHTTP 503 · Requested service or constraints unavailable/scrapers/assetsUpload Research Image
Upload private image bytes (10 MiB maximum); retained encrypted for 24 hours.
Successful Response
asset_id string · requiredexpires_at integer · requiredmedia_type image/jpeg | image/png | image/webp · requiredsha256 string · requiredsize_bytes integer · requiredurl string · requiredBearer-authenticated, relative Hive download URL.
HTTP 400 · Invalid research requestHTTP 401 · Invalid Hive authenticationHTTP 404 · Public profile not foundHTTP 429 · Research rate limitedHTTP 503 · Research unavailableHTTP 504 · Research timed out/scrapers/assets/{asset_id}Delete Research Image
Delete an image. Already-submitted jobs retain their private input copy until completion.
asset_id path · requiredSuccessful Response
HTTP 400 · Invalid research requestHTTP 401 · Invalid Hive authenticationHTTP 404 · Public profile not foundHTTP 429 · Research rate limitedHTTP 503 · Research unavailableHTTP 504 · Research timed out/scrapers/assets/{asset_id}Download Research Image
Download this bearer's uploaded image, Lens thumbnail or retained post image before its expiry.
asset_id path · requiredSuccessful Response
HTTP 400 · Invalid research requestHTTP 401 · Invalid Hive authenticationHTTP 404 · Public profile not foundHTTP 429 · Research rate limitedHTTP 503 · Research unavailableHTTP 504 · Research timed out/scrapers/capacityResearch Capacity
Read service availability and retry guidance without starting work.
Successful Response
available boolean · requiredWhether shared research admission is currently available. Individual requests can still be unavailable.
reason capacity_limited | service_unavailable | null · requiredretry_after_s integer | null · requiredMinimum delay before rechecking, when known. Elapsed time does not prove recovery.
HTTP 400 · Invalid research requestHTTP 401 · Invalid Hive authenticationHTTP 404 · Public profile not foundHTTP 429 · Research rate limitedHTTP 503 · Research unavailableHTTP 504 · Research timed out/scrapers/facebook/group/postsGroup Posts
One chronological collection from an explicit public group URL; observed group permalinks establish membership.
Idempotency-Key header · optionalRequired for initial collection; cached result_id pages start no new work.
prefer header · optionalcollection_size integer · optionalFinite upstream collection bound. limit only pages this immutable snapshot. Minimum: 1. Maximum: 200. Default: 50.
group_url string · requiredMinimum length: 1. Maximum length: 512.
keyword string | null · optionalOptional literal case-insensitive substring checked on returned text; not Boolean search syntax. Maximum length: 200.
limit integer · optionalMinimum: 1. Maximum: 50. Default: 20.
page integer · optionalOne-based cached page. Initial collection requires page 1; later pages require result_id and cannot extend the collected window. Minimum: 1. Maximum: 500. Default: 1.
result_id string | null · optionalOwner- and operation-bound immutable collection. Keep the same business request, ordered inputs and limit. Cached pages require no Idempotency-Key and launch no additional work. Pattern: ^rresult_[a-f0-9]{32}$.
since_date string | null · optionalInclusive lower UTC date checked against returned timestamps. Pattern: ^\d{4}-\d{2}-\d{2}$.
until_date string | null · optionalExclusive upper UTC date checked against returned timestamps. Pattern: ^\d{4}-\d{2}-\d{2}$.
Successful Response
collected_count integer · requiredMinimum: 0. Maximum: 2000.
collection_complete null · requiredUnknown upstream completeness; a final cached page does not prove exhaustion.
collection_limit integer · requiredMinimum: 1. Maximum: 2000.
count integer · requiredMinimum: 0. Maximum: 50.
expires_at integer · requiredUnix seconds; the collection expires 24 hours after submission. Polling, replay and cached pages do not renew it.
group_url string · requireditems object[] · requiredMaximum items: 50.
items[].author object · requireditems[].author.display_name string | null · optionalitems[].author.image_url string | null · optionalitems[].author.profile_id string | null · optionalitems[].author.profile_url string · requireditems[].author.username string | null · optionalitems[].comments_count integer | null · optionalMinimum: 0.
items[].geotag object | null · requireditems[].group_title string | null · requireditems[].group_url string · requireditems[].likes_count integer | null · optionalMinimum: 0.
items[].media object[] · requiredMaximum items: 500.
items[].media[].asset object | null · optionalitems[].media[].bitrate integer | null · optionalMinimum: 0.
items[].media[].group_index integer · requiredZero-based position in the source carousel or album; variants share a group. Minimum: 0. Maximum: 499.
items[].media[].mime_type string | null · optionalitems[].media[].retention_reason not_requested | video_not_retained | count_limit | job_byte_limit | destination_rejected | source_unavailable | unsupported_format | invalid_image | too_large | quota_exceeded | timeout | download_failed | storage_unavailable | null · optionalDefault: "not_requested".
items[].media[].retention_status retained | skipped | failed · optionalDefault: "skipped".
items[].media[].role original | thumbnail · requireditems[].media[].type image | video · requireditems[].media[].url string · requiredOriginal public source reference; may expire. Separate from the authenticated retained asset URL.
items[].media_complete boolean | null · optionalFalse when the provider reports media missing from this post; null when completeness cannot be established.
items[].media_count_reported integer | null · optionalMedia count reported by the source provider, when available. Minimum: 0.
items[].mentions object[] | null · requiredCaption/text mentions, separate from actual tags. Maximum items: 100.
items[].post_id string · requireditems[].quotes_count integer | null · optionalMinimum: 0.
items[].relation_evidence group_permalink · requireditems[].reposts_count integer | null · optionalMinimum: 0.
items[].tagged_users object[] | null · requiredActual source tags; null means unavailable. Maximum items: 100.
items[].text string | null · requireditems[].timestamp string | null · requiredUTC ISO 8601 time; null means unavailable, never inferred epoch zero.
items[].url string · requireditems[].views_count integer | null · optionalMinimum: 0.
keyword string | null · requiredlimit integer · requiredMinimum: 1. Maximum: 50.
local_filters keyword | since_date | until_date[] · requirednext_page integer | null · requiredMinimum: 2. Maximum: 500.
page integer · requiredMinimum: 1. Maximum: 500.
partial boolean · requiredCollection-wide flag repeated on every cached page: missing candidate core fields, unresolved post targets, or image retention failures/limits can set it, even when absent from this page.
partial_reasons string[] · requiredMaximum items: 10.
post_url null · requiredquery null · requiredquery_handling null · requiredrequested_collection_size integer · requiredMinimum: 1. Maximum: 1000.
result_id string · requiredPattern: ^rresult_[a-f0-9]{32}$.
since_date string | null · requiredtruncated true | null · requiredTrue when collection omitted results; null means completeness is unknown.
until_date string | null · requiredAccepted
created_at integer · requirederror string | null · optionalexpires_at integer · requiredjob_id string · requiredoperation string · requiredpoll_url string · requiredRelative Hive URL. Poll with the same bearer; wait_seconds up to 25 waits for completion. GET returns this envelope (200), with the completed first page under result. Terminal jobs never launch another paid run on replay; eligible saved archive data has an explicit recover endpoint.
result object | null · optionalretry_after_s integer | null · optionalservice string · requiredstatus pending | running | completed | failed | outcome_unknown · requiredHTTP 400 · Invalid research requestHTTP 401 · Invalid Hive authenticationHTTP 404 · Public profile not foundHTTP 409 · Conflicting immutable request or unavailable recoveryHTTP 410 · Research job or result expiredHTTP 429 · Research rate limitedHTTP 503 · Research unavailableHTTP 504 · Research timed out/scrapers/facebook/groups/searchGroup Search
Search group names and public profiles; private group content is never retrieved.
Idempotency-Key header · optionalRequired for initial collection; replay and cached pages start no new work.
prefer header · optionalcollection_size integer · optionalMinimum: 1. Maximum: 200. Default: 50.
limit integer · optionalMinimum: 1. Maximum: 50. Default: 20.
page integer · optionalOne-based cached page. Initial collection requires page 1; later pages require result_id and cannot extend the collected window. Minimum: 1. Maximum: 500. Default: 1.
query string · requiredOne group-name query. Public web-index candidates are not an exhaustive Facebook search. Minimum length: 1. Maximum length: 200.
result_id string | null · optionalOwner- and operation-bound immutable collection. Keep the same business request, ordered inputs and limit. Cached pages require no Idempotency-Key and launch no additional work. Pattern: ^rresult_[a-f0-9]{32}$.
Successful Response
collected_count integer · requiredMinimum: 0. Maximum: 2000.
collection_complete null · requiredcollection_limit integer · requiredMinimum: 1. Maximum: 2000.
content_retrieved false · requiredcount integer · requiredMinimum: 0. Maximum: 50.
expires_at integer · requiredUnix seconds; the collection expires 24 hours after submission. Polling, replay and cached pages do not renew it.
filters_enforced false · requireditems object[] · requiredMaximum items: 50.
items[].admin_moderator_count integer | null · requiredMinimum: 0.
items[].average_posts_per_day number | null · requiredMinimum: 0.
items[].content_retrieved false · requireditems[].created_at string | null · requireditems[].description string | null · requireditems[].group_id string · requireditems[].group_url string · requireditems[].image_url string | null · requireditems[].location string | null · requireditems[].members_count integer | null · requiredMinimum: 0.
items[].name string · requireditems[].posts_last_month integer | null · requiredMinimum: 0.
items[].posts_today integer | null · requiredMinimum: 0.
items[].privacy public | private | null · requireditems[].query string · requireditems[].relation_evidence public_group_profile · requireditems[].vanity string | null · requireditems[].visibility visible | hidden | null · requiredlimit integer · requiredMinimum: 1. Maximum: 50.
next_page integer | null · requiredMinimum: 2. Maximum: 500.
page integer · requiredMinimum: 1. Maximum: 500.
partial boolean · requiredCollection-wide flag repeated on every cached page: missing candidate core fields, unresolved post targets, or image retention failures/limits can set it, even when absent from this page.
partial_reasons unavailable_or_invalid_group_rows[] · requiredquery string · requiredquery_handling upstream_hint · requiredrequested_collection_size integer · requiredMinimum: 1. Maximum: 200.
result_id string · requiredPattern: ^rresult_[a-f0-9]{32}$.
search_source public_web_index · requiredtruncated true | null · requiredTrue when collection omitted results; null means completeness is unknown.
Accepted
created_at integer · requirederror string | null · optionalexpires_at integer · requiredjob_id string · requiredoperation string · requiredpoll_url string · requiredRelative Hive URL. Poll with the same bearer; wait_seconds up to 25 waits for completion. GET returns this envelope (200), with the completed first page under result. Terminal jobs never launch another paid run on replay; eligible saved archive data has an explicit recover endpoint.
result object | null · optionalretry_after_s integer | null · optionalservice string · requiredstatus pending | running | completed | failed | outcome_unknown · requiredHTTP 400 · Invalid research requestHTTP 401 · Invalid Hive authenticationHTTP 404 · Public profile not foundHTTP 409 · Conflicting immutable request or unavailable recoveryHTTP 410 · Research job or result expiredHTTP 429 · Research rate limitedHTTP 503 · Research unavailableHTTP 504 · Research timed out/scrapers/facebook/pages/searchPage Search
One finite public page search. Page candidates are not groups or verified identities.
Idempotency-Key header · optionalRequired for initial collection; cached result_id pages start no new work.
prefer header · optionalcollection_size integer · optionalFinite upstream collection bound. limit only pages this immutable snapshot. Minimum: 1. Maximum: 200. Default: 50.
limit integer · optionalMinimum: 1. Maximum: 50. Default: 20.
page integer · optionalOne-based cached page. Initial collection requires page 1; later pages require result_id and cannot extend the collected window. Minimum: 1. Maximum: 500. Default: 1.
query string · requiredMinimum length: 1. Maximum length: 200.
result_id string | null · optionalOwner- and operation-bound immutable collection. Keep the same business request, ordered inputs and limit. Cached pages require no Idempotency-Key and launch no additional work. Pattern: ^rresult_[a-f0-9]{32}$.
Successful Response
collected_count integer · requiredMinimum: 0. Maximum: 2000.
collection_complete null · requiredUnknown upstream completeness; a final cached page does not prove exhaustion.
collection_limit integer · requiredMinimum: 1. Maximum: 2000.
count integer · requiredMinimum: 0. Maximum: 50.
expires_at integer · requiredUnix seconds; the collection expires 24 hours after submission. Polling, replay and cached pages do not renew it.
filters_enforced false · requireditems object[] · requiredMaximum items: 50.
items[].biography string | null · requireditems[].display_name string | null · optionalitems[].image_url string | null · optionalitems[].is_verified boolean | null · requireditems[].location string | null · requireditems[].profile_id string · requireditems[].profile_type page · requireditems[].profile_url string · requireditems[].query string · requireditems[].username string | null · optionalitems[].website_url string | null · requiredlimit integer · requiredMinimum: 1. Maximum: 50.
next_page integer | null · requiredMinimum: 2. Maximum: 500.
page integer · requiredMinimum: 1. Maximum: 500.
partial boolean · requiredCollection-wide flag repeated on every cached page: missing candidate core fields, unresolved post targets, or image retention failures/limits can set it, even when absent from this page.
partial_reasons string[] · requiredMaximum items: 10.
query string · requiredquery_handling upstream_hint · requiredrequested_collection_size integer · requiredMinimum: 1. Maximum: 1000.
result_id string · requiredPattern: ^rresult_[a-f0-9]{32}$.
truncated true | null · requiredTrue when collection omitted results; null means completeness is unknown.
Accepted
created_at integer · requirederror string | null · optionalexpires_at integer · requiredjob_id string · requiredoperation string · requiredpoll_url string · requiredRelative Hive URL. Poll with the same bearer; wait_seconds up to 25 waits for completion. GET returns this envelope (200), with the completed first page under result. Terminal jobs never launch another paid run on replay; eligible saved archive data has an explicit recover endpoint.
result object | null · optionalretry_after_s integer | null · optionalservice string · requiredstatus pending | running | completed | failed | outcome_unknown · requiredHTTP 400 · Invalid research requestHTTP 401 · Invalid Hive authenticationHTTP 404 · Public profile not foundHTTP 409 · Conflicting immutable request or unavailable recoveryHTTP 410 · Research job or result expiredHTTP 429 · Research rate limitedHTTP 503 · Research unavailableHTTP 504 · Research timed out/scrapers/facebook/people/searchFacebook People Search
Collect at most 50 native people candidates, including numeric profiles without usernames. Opaque people links retain their returned URL without an inferred numeric ID or username; details/posts still require supported handle or numeric targets. Location texts are appended in caller order as query hints, never enforced city filters. Prefer: respond-async returns promptly; default wait is at most 20 seconds. Cached pages/replays launch no new work.
Idempotency-Key header · optionalRequired for initial collection; cached result_id pages need no key.
prefer header · optionallimit integer · optionalMinimum: 1. Maximum: 50. Default: 20.
locations string[] · optionalUp to five location hints of 1–100 characters, appended in caller order to one native query. Ambiguous names remain text; no city resolution or AND/OR geographic filters are enforced. Maximum items: 5.
page integer · optionalOne-based cached page. Initial collection requires page 1; later pages require result_id and cannot extend the collected window. Minimum: 1. Maximum: 500. Default: 1.
query string · requiredFree-text name, optionally with employer/city. Echoed exactly; matching does not verify identity or enforce filters. Minimum length: 1. Maximum length: 200.
result_id string | null · optionalOwner- and operation-bound immutable collection. Keep the same business request, ordered inputs and limit. Cached pages require no Idempotency-Key and launch no additional work. Pattern: ^rresult_[a-f0-9]{32}$.
Successful Response
collected_count integer · requiredMinimum: 0. Maximum: 2000.
collection_limit integer · requiredMinimum: 1. Maximum: 2000.
count integer · requiredMinimum: 0. Maximum: 50.
effective_query string · requiredText sent to native account search, including location hints. Instagram commas become spaces to keep one query.
expires_at integer · requiredUnix seconds; the collection expires 24 hours after submission. Polling, replay and cached pages do not renew it.
filters_enforced false · requiredCity and employer restrictions are not enforced. Returned accounts are candidates, never verified identities.
items object[] · requiredMaximum items: 50.
items[].biography string | null · optionalitems[].category string | null · optionalitems[].cover_image_url string | null · optionalitems[].display_name string | null · optionalitems[].followers_count integer | null · optionalMinimum: 0.
items[].following_count integer | null · optionalMinimum: 0.
items[].image_url string | null · optionalitems[].is_private boolean | null · optionalitems[].is_verified boolean | null · optionalitems[].likes_count integer | null · optionalMinimum: 0.
items[].location string | null · optionalitems[].missing_fields display_name | biography | image_url[] · requiredUnavailable core profile fields. No inferred or purchased enrichment. Maximum items: 3.
items[].posts_count integer | null · optionalMinimum: 0.
items[].profile_id string | null · optionalitems[].profile_type person | page | null · optionalitems[].profile_url string · requireditems[].public_links object[] | null · optionalitems[].query string · requireditems[].rank integer · requiredAbsolute one-based position after canonical account deduplication, preserving native order. Minimum: 1. Maximum: 50.
items[].status candidate · requireditems[].username string | null · optionalitems[].website_url string | null · optionallimit integer · requiredMinimum: 1. Maximum: 50.
location_handling not_requested | query_hint · requiredlocations string[] · requirednext_page integer | null · requiredMinimum: 2. Maximum: 500.
page integer · requiredMinimum: 1. Maximum: 500.
partial boolean · requiredCollection-wide flag repeated on every cached page: missing candidate core fields, unresolved post targets, or image retention failures/limits can set it, even when absent from this page.
query string · requiredresult_id string · requiredPattern: ^rresult_[a-f0-9]{32}$.
truncated true | null · requiredTrue when collection omitted results; null means completeness is unknown.
Durable native people search; poll the owner-scoped URL.
created_at integer · requirederror string | null · optionalexpires_at integer · requiredjob_id string · requiredoperation string · requiredpoll_url string · requiredRelative Hive URL. Poll with the same bearer; wait_seconds up to 25 waits for completion. GET returns this envelope (200), with the completed first page under result. Terminal jobs never launch another paid run on replay; eligible saved archive data has an explicit recover endpoint.
result object | null · optionalretry_after_s integer | null · optionalservice string · requiredstatus pending | running | completed | failed | outcome_unknown · requiredHTTP 400 · Invalid research requestHTTP 401 · Invalid Hive authenticationHTTP 404 · Public profile not foundHTTP 409 · Conflicting immutable request or unavailable recoveryHTTP 410 · Research job or result expiredHTTP 429 · Research rate limitedHTTP 503 · Research unavailableHTTP 504 · Research timed out/scrapers/facebook/post/commentsComments
One top-level public-comment collection. Nested replies and full thread completeness are unavailable.
Idempotency-Key header · optionalRequired for initial collection; cached result_id pages start no new work.
prefer header · optionalcollection_size integer · optionalMinimum: 1. Maximum: 200. Default: 100.
keyword string | null · optionalOptional literal case-insensitive substring checked on returned text; not Boolean search syntax. Maximum length: 200.
limit integer · optionalMinimum: 1. Maximum: 50. Default: 20.
page integer · optionalOne-based cached page. Initial collection requires page 1; later pages require result_id and cannot extend the collected window. Minimum: 1. Maximum: 500. Default: 1.
post_url string · requiredMinimum length: 1. Maximum length: 512.
result_id string | null · optionalOwner- and operation-bound immutable collection. Keep the same business request, ordered inputs and limit. Cached pages require no Idempotency-Key and launch no additional work. Pattern: ^rresult_[a-f0-9]{32}$.
since_date string | null · optionalInclusive lower UTC date checked against returned timestamps. Pattern: ^\d{4}-\d{2}-\d{2}$.
until_date string | null · optionalExclusive upper UTC date checked against returned timestamps. Pattern: ^\d{4}-\d{2}-\d{2}$.
Successful Response
collected_count integer · requiredMinimum: 0. Maximum: 2000.
collection_complete null · requiredUnknown upstream completeness; a final cached page does not prove exhaustion.
collection_limit integer · requiredMinimum: 1. Maximum: 2000.
count integer · requiredMinimum: 0. Maximum: 50.
expires_at integer · requiredUnix seconds; the collection expires 24 hours after submission. Polling, replay and cached pages do not renew it.
group_url null · requireditems object[] · requiredMaximum items: 50.
items[].author object · requireditems[].author.display_name string | null · requireditems[].author.image_url string | null · requireditems[].author.profile_id string | null · requireditems[].author.profile_url string | null · requireditems[].author.username string | null · requireditems[].comment_id string · requireditems[].comment_scope top_level | top_level_candidate · requireditems[].likes_count integer | null · requiredMinimum: 0.
items[].parent_comment_id null · requireditems[].post_url string · requireditems[].relation_evidence comment_permalink · requireditems[].text string | null · requireditems[].timestamp string | null · requireditems[].url string · requiredkeyword string | null · requiredlimit integer · requiredMinimum: 1. Maximum: 50.
local_filters keyword | since_date | until_date[] · requirednext_page integer | null · requiredMinimum: 2. Maximum: 500.
page integer · requiredMinimum: 1. Maximum: 500.
partial boolean · requiredCollection-wide flag repeated on every cached page: missing candidate core fields, unresolved post targets, or image retention failures/limits can set it, even when absent from this page.
partial_reasons string[] · requiredMaximum items: 10.
post_url string · requiredquery null · requiredquery_handling null · requiredrequested_collection_size integer · requiredMinimum: 1. Maximum: 1000.
result_id string · requiredPattern: ^rresult_[a-f0-9]{32}$.
since_date string | null · requiredtruncated true | null · requiredTrue when collection omitted results; null means completeness is unknown.
until_date string | null · requiredAccepted
created_at integer · requirederror string | null · optionalexpires_at integer · requiredjob_id string · requiredoperation string · requiredpoll_url string · requiredRelative Hive URL. Poll with the same bearer; wait_seconds up to 25 waits for completion. GET returns this envelope (200), with the completed first page under result. Terminal jobs never launch another paid run on replay; eligible saved archive data has an explicit recover endpoint.
result object | null · optionalretry_after_s integer | null · optionalservice string · requiredstatus pending | running | completed | failed | outcome_unknown · requiredHTTP 400 · Invalid research requestHTTP 401 · Invalid Hive authenticationHTTP 404 · Public profile not foundHTTP 409 · Conflicting immutable request or unavailable recoveryHTTP 410 · Research job or result expiredHTTP 429 · Research rate limitedHTTP 503 · Research unavailableHTTP 504 · Research timed out/scrapers/facebook/posts/searchPost Search
One public post query; requested literal keyword/date filters are checked locally on returned fields.
Idempotency-Key header · optionalRequired for initial collection; cached result_id pages start no new work.
prefer header · optionalcollection_size integer · optionalFinite upstream collection bound. limit only pages this immutable snapshot. Minimum: 1. Maximum: 200. Default: 50.
keyword string | null · optionalOptional literal case-insensitive substring checked on returned text; not Boolean search syntax. Maximum length: 200.
limit integer · optionalMinimum: 1. Maximum: 50. Default: 20.
page integer · optionalOne-based cached page. Initial collection requires page 1; later pages require result_id and cannot extend the collected window. Minimum: 1. Maximum: 500. Default: 1.
query string · requiredOne upstream public keyword query; matching and recall are not guaranteed. Minimum length: 1. Maximum length: 200.
result_id string | null · optionalOwner- and operation-bound immutable collection. Keep the same business request, ordered inputs and limit. Cached pages require no Idempotency-Key and launch no additional work. Pattern: ^rresult_[a-f0-9]{32}$.
since_date string | null · optionalInclusive lower UTC date checked against returned timestamps. Pattern: ^\d{4}-\d{2}-\d{2}$.
until_date string | null · optionalExclusive upper UTC date checked against returned timestamps. Pattern: ^\d{4}-\d{2}-\d{2}$.
Successful Response
collected_count integer · requiredMinimum: 0. Maximum: 2000.
collection_complete null · requiredUnknown upstream completeness; a final cached page does not prove exhaustion.
collection_limit integer · requiredMinimum: 1. Maximum: 2000.
count integer · requiredMinimum: 0. Maximum: 50.
expires_at integer · requiredUnix seconds; the collection expires 24 hours after submission. Polling, replay and cached pages do not renew it.
group_url null · requireditems object[] · requiredMaximum items: 50.
items[].author object · requireditems[].author.display_name string | null · optionalitems[].author.image_url string | null · optionalitems[].author.profile_id string | null · optionalitems[].author.profile_url string · requireditems[].author.username string | null · optionalitems[].comments_count integer | null · optionalMinimum: 0.
items[].geotag object | null · requireditems[].likes_count integer | null · optionalMinimum: 0.
items[].media object[] · requiredMaximum items: 500.
items[].media[].asset object | null · optionalitems[].media[].bitrate integer | null · optionalMinimum: 0.
items[].media[].group_index integer · requiredZero-based position in the source carousel or album; variants share a group. Minimum: 0. Maximum: 499.
items[].media[].mime_type string | null · optionalitems[].media[].retention_reason not_requested | video_not_retained | count_limit | job_byte_limit | destination_rejected | source_unavailable | unsupported_format | invalid_image | too_large | quota_exceeded | timeout | download_failed | storage_unavailable | null · optionalDefault: "not_requested".
items[].media[].retention_status retained | skipped | failed · optionalDefault: "skipped".
items[].media[].role original | thumbnail · requireditems[].media[].type image | video · requireditems[].media[].url string · requiredOriginal public source reference; may expire. Separate from the authenticated retained asset URL.
items[].media_complete boolean | null · optionalFalse when the provider reports media missing from this post; null when completeness cannot be established.
items[].media_count_reported integer | null · optionalMedia count reported by the source provider, when available. Minimum: 0.
items[].mentions object[] | null · requiredCaption/text mentions, separate from actual tags. Maximum items: 100.
items[].post_id string · requireditems[].query string · requireditems[].quotes_count integer | null · optionalMinimum: 0.
items[].relation_evidence search_query · requireditems[].reposts_count integer | null · optionalMinimum: 0.
items[].tagged_users object[] | null · requiredActual source tags; null means unavailable. Maximum items: 100.
items[].text string | null · requireditems[].timestamp string | null · requiredUTC ISO 8601 time; null means unavailable, never inferred epoch zero.
items[].url string · requireditems[].views_count integer | null · optionalMinimum: 0.
keyword string | null · requiredlimit integer · requiredMinimum: 1. Maximum: 50.
local_filters keyword | since_date | until_date[] · requirednext_page integer | null · requiredMinimum: 2. Maximum: 500.
page integer · requiredMinimum: 1. Maximum: 500.
partial boolean · requiredCollection-wide flag repeated on every cached page: missing candidate core fields, unresolved post targets, or image retention failures/limits can set it, even when absent from this page.
partial_reasons string[] · requiredMaximum items: 10.
post_url null · requiredquery string · requiredquery_handling upstream_hint · requiredrequested_collection_size integer · requiredMinimum: 1. Maximum: 1000.
result_id string · requiredPattern: ^rresult_[a-f0-9]{32}$.
since_date string | null · requiredtruncated true | null · requiredTrue when collection omitted results; null means completeness is unknown.
until_date string | null · requiredAccepted
created_at integer · requirederror string | null · optionalexpires_at integer · requiredjob_id string · requiredoperation string · requiredpoll_url string · requiredRelative Hive URL. Poll with the same bearer; wait_seconds up to 25 waits for completion. GET returns this envelope (200), with the completed first page under result. Terminal jobs never launch another paid run on replay; eligible saved archive data has an explicit recover endpoint.
result object | null · optionalretry_after_s integer | null · optionalservice string · requiredstatus pending | running | completed | failed | outcome_unknown · requiredHTTP 400 · Invalid research requestHTTP 401 · Invalid Hive authenticationHTTP 404 · Public profile not foundHTTP 409 · Conflicting immutable request or unavailable recoveryHTTP 410 · Research job or result expiredHTTP 429 · Research rate limitedHTTP 503 · Research unavailableHTTP 504 · Research timed out/scrapers/facebook/profile/detailsFacebook Profile Details
Retrieve public Facebook profile or page details for up to ten targets.
One to ten Facebook handles, numeric IDs, or canonical profile/page URLs.
profiles string[] · requiredMinimum items: 1. Maximum items: 10.
Successful Response
count integer · requiredMinimum: 0. Maximum: 10.
items object[] · requiredMaximum items: 10.
items[].biography string | null · optionalitems[].category string | null · optionalitems[].cover_image_url string | null · optionalitems[].display_name string | null · optionalitems[].followers_count integer | null · optionalMinimum: 0.
items[].following_count integer | null · optionalMinimum: 0.
items[].image_url string | null · optionalitems[].input_index integer · requiredMinimum: 0. Maximum: 9.
items[].is_private boolean | null · optionalitems[].is_verified boolean | null · optionalitems[].likes_count integer | null · optionalMinimum: 0.
items[].location string | null · optionalitems[].posts_count integer | null · optionalMinimum: 0.
items[].profile_id string | null · optionalitems[].profile_type person | page | null · optionalitems[].profile_url string · requireditems[].public_links object[] | null · optionalitems[].target string · requireditems[].username string | null · optionalitems[].website_url string | null · optionalunresolved object[] · requiredMaximum items: 10.
unresolved[].input_index integer · requiredMinimum: 0. Maximum: 9.
unresolved[].reason not_found | private | unavailable | malformed_data | ambiguous · requiredunresolved[].target string · requiredHTTP 400 · Invalid research requestHTTP 401 · Invalid Hive authenticationHTTP 404 · Public profile not foundHTTP 429 · Research rate limitedHTTP 503 · Research unavailableHTTP 504 · Research timed out/scrapers/facebook/profile/postsFacebook Profile Posts
Return recent public person/page posts, including numeric profiles. At most 40 posts per target; pages cannot recover older history. Prefer: respond-async submits promptly.
Idempotency-Key header · optionalRequired for initial collection; cached result_id pages need no key.
prefer header · optionalCollect recent posts, dated Page history, or cursor-based personal history.
archive boolean · optionalDefault: false.
archive_cursor string | null · optionalMinimum length: 1. Maximum length: 262144.
archive_end_date string | null · optionalPattern: ^\d{4}-\d{2}-\d{2}$.
archive_kind person | page | null · optionalRequired in archive mode: Pages use date windows; personal profiles use a continuation cursor with expanded photo albums.
archive_window_days integer · optionalMinimum: 1. Maximum: 30. Default: 30.
limit integer · optionalMinimum: 1. Maximum: 50. Default: 20.
page integer · optionalOne-based cached page. Initial collection requires page 1; later pages require result_id and cannot extend the collected window. Minimum: 1. Maximum: 500. Default: 1.
per_target_limit integer · optionalMaximum posts in one collection: 40 recent by default, up to 500 in archive mode. Personal archives require at least 5 so provider cursors can advance; they default to 100. Minimum: 1. Maximum: 500. Default: 40.
profiles string[] · requiredMinimum items: 1. Maximum items: 10.
result_id string | null · optionalOwner- and operation-bound immutable collection. Keep the same business request, ordered inputs and limit. Cached pages require no Idempotency-Key and launch no additional work. Pattern: ^rresult_[a-f0-9]{32}$.
retain_media boolean · optionalPreserve photos/video thumbnails. Recent jobs allow 20 unique images and 32 MiB over 30 seconds; archive jobs allow 100 images and 96 MiB over 120 seconds. Each image is capped at 10 MiB and 40 million pixels. Shared bearer/global quotas still apply. No video download; assets expire after 24 hours. Cached pages/replay never download again. Default: false.
Successful Response
archive_end_date string | null · optionalPattern: ^\d{4}-\d{2}-\d{2}$.
archive_start_date string | null · optionalPattern: ^\d{4}-\d{2}-\d{2}$.
collected_count integer · requiredMinimum: 0. Maximum: 2000.
collection_limit integer · requiredMinimum: 1. Maximum: 2000.
count integer · requiredMinimum: 0. Maximum: 50.
expires_at integer · requiredUnix seconds; the collection expires 24 hours after submission. Polling, replay and cached pages do not renew it.
history_complete null · requiredFull platform history is unknown. Pages cover only the cached collection.
history_scope collected_window | recent_public_timeline | archive_date_window | archive_cursor_window · optionalDate windows continue through next_archive_end_date; cursor windows continue through next_archive_cursor. Page numbers only traverse the cached result. Default: "collected_window".
items object[] · requiredMaximum items: 50.
items[].author object · requireditems[].author.display_name string | null · optionalitems[].author.image_url string | null · optionalitems[].author.profile_id string | null · optionalitems[].author.profile_url string · requireditems[].author.username string | null · optionalitems[].comments_count integer | null · optionalMinimum: 0.
items[].context object[] · requiredMaximum items: 2.
items[].context[].author object · requireditems[].context[].author.display_name string | null · optionalitems[].context[].author.image_url string | null · optionalitems[].context[].author.profile_id string | null · optionalitems[].context[].author.profile_url string · requireditems[].context[].author.username string | null · optionalitems[].context[].comments_count integer | null · optionalMinimum: 0.
items[].context[].geotag object | null · requireditems[].context[].kind repost | quote · requireditems[].context[].likes_count integer | null · optionalMinimum: 0.
items[].context[].media object[] · requiredMaximum items: 500.
items[].context[].media[].asset object | null · optionalitems[].context[].media[].bitrate integer | null · optionalMinimum: 0.
items[].context[].media[].group_index integer · requiredZero-based position in the source carousel or album; variants share a group. Minimum: 0. Maximum: 499.
items[].context[].media[].mime_type string | null · optionalitems[].context[].media[].retention_reason not_requested | video_not_retained | count_limit | job_byte_limit | destination_rejected | source_unavailable | unsupported_format | invalid_image | too_large | quota_exceeded | timeout | download_failed | storage_unavailable | null · optionalDefault: "not_requested".
items[].context[].media[].retention_status retained | skipped | failed · optionalDefault: "skipped".
items[].context[].media[].role original | thumbnail · requireditems[].context[].media[].type image | video · requireditems[].context[].media[].url string · requiredOriginal public source reference; may expire. Separate from the authenticated retained asset URL.
items[].context[].media_complete boolean | null · optionalFalse when the provider reports media missing from this post; null when completeness cannot be established.
items[].context[].media_count_reported integer | null · optionalMedia count reported by the source provider, when available. Minimum: 0.
items[].context[].mentions object[] | null · requiredCaption/text mentions, separate from actual tags. Maximum items: 100.
items[].context[].post_id string · requireditems[].context[].quotes_count integer | null · optionalMinimum: 0.
items[].context[].reposts_count integer | null · optionalMinimum: 0.
items[].context[].tagged_users object[] | null · requiredActual source tags; null means unavailable. Maximum items: 100.
items[].context[].text string | null · requireditems[].context[].timestamp string | null · requiredUTC ISO 8601 time; null means unavailable, never inferred epoch zero.
items[].context[].url string · requireditems[].context[].views_count integer | null · optionalMinimum: 0.
items[].geotag object | null · requireditems[].input_index integer · requiredMinimum: 0. Maximum: 9.
items[].is_pinned boolean | null · optionalitems[].is_quote boolean | null · optionalitems[].is_repost boolean | null · optionalitems[].likes_count integer | null · optionalMinimum: 0.
items[].media object[] · requiredMaximum items: 500.
items[].media[].asset object | null · optionalitems[].media[].bitrate integer | null · optionalMinimum: 0.
items[].media[].group_index integer · requiredZero-based position in the source carousel or album; variants share a group. Minimum: 0. Maximum: 499.
items[].media[].mime_type string | null · optionalitems[].media[].retention_reason not_requested | video_not_retained | count_limit | job_byte_limit | destination_rejected | source_unavailable | unsupported_format | invalid_image | too_large | quota_exceeded | timeout | download_failed | storage_unavailable | null · optionalDefault: "not_requested".
items[].media[].retention_status retained | skipped | failed · optionalDefault: "skipped".
items[].media[].role original | thumbnail · requireditems[].media[].type image | video · requireditems[].media[].url string · requiredOriginal public source reference; may expire. Separate from the authenticated retained asset URL.
items[].media_complete boolean | null · optionalFalse when the provider reports media missing from this post; null when completeness cannot be established.
items[].media_count_reported integer | null · optionalMedia count reported by the source provider, when available. Minimum: 0.
items[].mentions object[] | null · requiredCaption/text mentions, separate from actual tags. Maximum items: 100.
items[].post_id string · requireditems[].quotes_count integer | null · optionalMinimum: 0.
items[].reposts_count integer | null · optionalMinimum: 0.
items[].tagged_users object[] | null · requiredActual source tags; null means unavailable. Maximum items: 100.
items[].target string · requireditems[].text string | null · requireditems[].timestamp string | null · requiredUTC ISO 8601 time; null means unavailable, never inferred epoch zero.
items[].url string · requireditems[].views_count integer | null · optionalMinimum: 0.
limit integer · requiredMinimum: 1. Maximum: 50.
next_archive_cursor string | null · optionalSubmit as archive_cursor in a new Instagram or Facebook personal archive job with the same profile and window settings after consuming cached pages. Null when the provider reached the visible end or could not safely continue. Maximum length: 262144.
next_archive_end_date string | null · optionalSubmit a new archive job ending on this date after consuming all cached pages. Null when the date range is exhausted or the current window hit its collection cap; narrow a capped window before continuing. Pattern: ^\d{4}-\d{2}-\d{2}$.
next_page integer | null · requiredMinimum: 2. Maximum: 500.
page integer · requiredMinimum: 1. Maximum: 500.
partial boolean · requiredCollection-wide flag repeated on every cached page: missing candidate core fields, unresolved post targets, or image retention failures/limits can set it, even when absent from this page.
per_target_limit integer · requiredMinimum: 1. Maximum: 1000.
result_id string · requiredPattern: ^rresult_[a-f0-9]{32}$.
targets object[] · requiredMaximum items: 10.
targets[].collected_count integer · requiredMinimum: 0. Maximum: 1000.
targets[].input_index integer · requiredMinimum: 0. Maximum: 9.
targets[].reason not_found | private | unavailable | malformed_data | ambiguous | null · requiredtargets[].status resolved | unresolved · requiredtargets[].target string · requiredtruncated true | null · requiredTrue when collection omitted results; null means completeness is unknown.
unresolved object[] · requiredMaximum items: 10.
unresolved[].input_index integer · requiredMinimum: 0. Maximum: 9.
unresolved[].reason not_found | private | unavailable | malformed_data | ambiguous · requiredunresolved[].target string · requiredDurable job; poll the returned owner-scoped URL.
created_at integer · requirederror string | null · optionalexpires_at integer · requiredjob_id string · requiredoperation string · requiredpoll_url string · requiredRelative Hive URL. Poll with the same bearer; wait_seconds up to 25 waits for completion. GET returns this envelope (200), with the completed first page under result. Terminal jobs never launch another paid run on replay; eligible saved archive data has an explicit recover endpoint.
result object | null · optionalretry_after_s integer | null · optionalservice string · requiredstatus pending | running | completed | failed | outcome_unknown · requiredHTTP 400 · Invalid research requestHTTP 401 · Invalid Hive authenticationHTTP 404 · Public profile not foundHTTP 409 · Conflicting immutable request or unavailable recoveryHTTP 410 · Research job or result expiredHTTP 429 · Research rate limitedHTTP 503 · Research unavailableHTTP 504 · Research timed out/scrapers/google/searchGoogle Search
Search Google for bounded organic results, preserving each query and its reported rank.
One to five queries of up to 32 words; search operators are supported.
country string | null · optionalSupported two-letter search country code, such as us or gb. Minimum length: 2. Maximum length: 2.
language string | null · optionalSearch interface language, such as en, zh-CN or pt-BR; does not restrict result language. Minimum length: 2. Maximum length: 5.
limit integer · optionalMaximum organic results per distinct query. Minimum: 1. Maximum: 100. Default: 20.
pages integer · optionalMaximum pages per query. Minimum: 1. Maximum: 3. Default: 1.
queries string[] · requiredMinimum items: 1. Maximum items: 5.
Successful Response
count integer · requiredMinimum: 0. Maximum: 500.
items object[] · requiredMaximum items: 500.
items[].query string · requireditems[].rank integer · requiredMinimum: 1.
items[].snippet string | null · optionalitems[].title string · requireditems[].url string · requiredHTTP 400 · Invalid research requestHTTP 401 · Invalid Hive authenticationHTTP 404 · Public profile not foundHTTP 429 · Research rate limitedHTTP 503 · Research unavailableHTTP 504 · Research timed out/scrapers/google_lens/jobsSubmit Google Lens Job
Submit once and safely replay the same key and body for seven days. Poll the returned URL; interrupted work is not automatically repeated.
Idempotency-Key header · requiredSearch one public HTTPS image or an owner-scoped uploaded image.
asset_id string | null · optionalPrivate image from POST /scrapers/assets; mutually exclusive with image_url. Pattern: ^rasset_[a-f0-9]{32}$.
image_url string | null · optionalPublic HTTPS image URL, or the exact relative URL returned by POST /scrapers/assets. Minimum length: 1. Maximum length: 4096.
limit integer · optionalMaximum total records across all requested types, interleaved in the requested order. Minimum: 1. Maximum: 100. Default: 20.
search_types visual | exact | text[] · optionalRequested Lens modes; defaults to visual matches. Minimum items: 1. Maximum items: 3. Items must be distinct.
Successful Response
created_at integer · requirederror string | null · optionalexpires_at integer · requiredjob_id string · requiredpoll_url string · requiredresult object | null · optionalretry_after_s integer | null · optionalstatus pending | running | completed | failed | outcome_unknown · requiredHTTP 400 · Invalid research requestHTTP 401 · Invalid Hive authenticationHTTP 404 · Public profile not foundHTTP 409 · Conflicting immutable request or unavailable recoveryHTTP 410 · Research job or result expiredHTTP 429 · Research rate limitedHTTP 503 · Research unavailableHTTP 504 · Research timed out/scrapers/google_lens/jobs/{job_id}Get Google Lens Job
Poll without starting a new search. Results expire after 24 hours.
job_id path · requiredSuccessful Response
created_at integer · requirederror string | null · optionalexpires_at integer · requiredjob_id string · requiredpoll_url string · requiredresult object | null · optionalretry_after_s integer | null · optionalstatus pending | running | completed | failed | outcome_unknown · requiredHTTP 400 · Invalid research requestHTTP 401 · Invalid Hive authenticationHTTP 404 · Public profile not foundHTTP 410 · Research result expiredHTTP 429 · Research rate limitedHTTP 503 · Research unavailableHTTP 504 · Research timed out/scrapers/google_lens/searchGoogle Lens Search
Find visual or exact image matches and extract text using Google Lens. Results share one total limit; a search can return no matches.
Search one public HTTPS image or an owner-scoped uploaded image.
asset_id string | null · optionalPrivate image from POST /scrapers/assets; mutually exclusive with image_url. Pattern: ^rasset_[a-f0-9]{32}$.
image_url string | null · optionalPublic HTTPS image URL, or the exact relative URL returned by POST /scrapers/assets. Minimum length: 1. Maximum length: 4096.
limit integer · optionalMaximum total records across all requested types, interleaved in the requested order. Minimum: 1. Maximum: 100. Default: 20.
search_types visual | exact | text[] · optionalRequested Lens modes; defaults to visual matches. Minimum items: 1. Maximum items: 3. Items must be distinct.
Successful Response
count integer · requiredMinimum: 0. Maximum: 100.
items object | object[] · requiredMaximum items: 100.
items[].image_expires_at integer | null · optionalitems[].image_height integer | null · optionalMinimum: 1. Maximum: 100000.
items[].image_kind thumbnail | null · optionalitems[].image_sha256 string | null · optionalPattern: ^[a-f0-9]{64}$.
items[].image_url string | null · optionalMaximum length: 4096.
items[].image_width integer | null · optionalMinimum: 1. Maximum: 100000.
items[].source string | null · optionalMaximum length: 512.
items[].source_icon_url string | null · optionalMaximum length: 4096.
items[].title string · requiredMinimum length: 1. Maximum length: 4096.
items[].type visual | exact · requireditems[].url string · requiredMaximum length: 4096.
items[].text string · requiredMinimum length: 1. Maximum length: 20000.
items[].type text · requiredpartial boolean | null · optionalHTTP 400 · Invalid research requestHTTP 401 · Invalid Hive authenticationHTTP 404 · Public profile not foundHTTP 429 · Research rate limitedHTTP 503 · Research unavailableHTTP 504 · Research timed out/scrapers/instagram/people/searchInstagram People Search
Collect at most 50 native account candidates. Commas become spaces; locations are query hints. Missing biography/avatar fields are explicit. Prefer: respond-async returns promptly; default wait is at most 20 seconds. Cached pages/replays launch no new work.
Idempotency-Key header · optionalRequired for initial collection; cached result_id pages need no key.
prefer header · optionallimit integer · optionalMinimum: 1. Maximum: 50. Default: 20.
locations string[] · optionalUp to five location hints of 1–100 characters, appended in caller order to one native query. Ambiguous names remain text; no city resolution or AND/OR geographic filters are enforced. Maximum items: 5.
page integer · optionalOne-based cached page. Initial collection requires page 1; later pages require result_id and cannot extend the collected window. Minimum: 1. Maximum: 500. Default: 1.
query string · requiredFree-text name, optionally with employer/city. Echoed exactly; matching does not verify identity or enforce filters. Minimum length: 1. Maximum length: 200.
result_id string | null · optionalOwner- and operation-bound immutable collection. Keep the same business request, ordered inputs and limit. Cached pages require no Idempotency-Key and launch no additional work. Pattern: ^rresult_[a-f0-9]{32}$.
Successful Response
collected_count integer · requiredMinimum: 0. Maximum: 2000.
collection_limit integer · requiredMinimum: 1. Maximum: 2000.
count integer · requiredMinimum: 0. Maximum: 50.
effective_query string · requiredText sent to native account search, including location hints. Instagram commas become spaces to keep one query.
expires_at integer · requiredUnix seconds; the collection expires 24 hours after submission. Polling, replay and cached pages do not renew it.
filters_enforced false · requiredCity and employer restrictions are not enforced. Returned accounts are candidates, never verified identities.
items object[] · requiredMaximum items: 50.
items[].biography string | null · optionalitems[].category string | null · optionalitems[].display_name string | null · optionalitems[].followers_count integer | null · optionalMinimum: 0.
items[].following_count integer | null · optionalMinimum: 0.
items[].image_url string | null · optionalitems[].is_business boolean | null · optionalitems[].is_private boolean | null · optionalitems[].is_verified boolean | null · optionalitems[].missing_fields display_name | biography | image_url[] · requiredUnavailable core profile fields. No inferred or purchased enrichment. Maximum items: 3.
items[].posts_count integer | null · optionalMinimum: 0.
items[].profile_id string | null · optionalitems[].profile_url string · requireditems[].public_links object[] | null · optionalitems[].query string · requireditems[].rank integer · requiredAbsolute one-based position after canonical account deduplication, preserving native order. Minimum: 1. Maximum: 50.
items[].status candidate · requireditems[].username string · requireditems[].website_url string | null · optionallimit integer · requiredMinimum: 1. Maximum: 50.
location_handling not_requested | query_hint · requiredlocations string[] · requirednext_page integer | null · requiredMinimum: 2. Maximum: 500.
page integer · requiredMinimum: 1. Maximum: 500.
partial boolean · requiredCollection-wide flag repeated on every cached page: missing candidate core fields, unresolved post targets, or image retention failures/limits can set it, even when absent from this page.
query string · requiredresult_id string · requiredPattern: ^rresult_[a-f0-9]{32}$.
truncated true | null · requiredTrue when collection omitted results; null means completeness is unknown.
Durable native account search; poll the owner-scoped URL.
created_at integer · requirederror string | null · optionalexpires_at integer · requiredjob_id string · requiredoperation string · requiredpoll_url string · requiredRelative Hive URL. Poll with the same bearer; wait_seconds up to 25 waits for completion. GET returns this envelope (200), with the completed first page under result. Terminal jobs never launch another paid run on replay; eligible saved archive data has an explicit recover endpoint.
result object | null · optionalretry_after_s integer | null · optionalservice string · requiredstatus pending | running | completed | failed | outcome_unknown · requiredHTTP 400 · Invalid research requestHTTP 401 · Invalid Hive authenticationHTTP 404 · Public profile not foundHTTP 409 · Conflicting immutable request or unavailable recoveryHTTP 410 · Research job or result expiredHTTP 429 · Research rate limitedHTTP 503 · Research unavailableHTTP 504 · Research timed out/scrapers/instagram/profile/detailsInstagram Profile Details
Retrieve public Instagram profile details for up to ten handles or URLs.
One to ten Instagram handles or canonical public profile URLs.
profiles string[] · requiredMinimum items: 1. Maximum items: 10.
Successful Response
count integer · requiredMinimum: 0. Maximum: 10.
items object[] · requiredMaximum items: 10.
items[].biography string | null · optionalitems[].category string | null · optionalitems[].display_name string | null · optionalitems[].followers_count integer | null · optionalMinimum: 0.
items[].following_count integer | null · optionalMinimum: 0.
items[].image_url string | null · optionalitems[].input_index integer · requiredMinimum: 0. Maximum: 9.
items[].is_business boolean | null · optionalitems[].is_private boolean | null · optionalitems[].is_verified boolean | null · optionalitems[].posts_count integer | null · optionalMinimum: 0.
items[].profile_id string | null · optionalitems[].profile_url string · requireditems[].public_links object[] | null · optionalitems[].target string · requireditems[].username string · requireditems[].website_url string | null · optionalunresolved object[] · requiredMaximum items: 10.
unresolved[].input_index integer · requiredMinimum: 0. Maximum: 9.
unresolved[].reason not_found | private | unavailable | malformed_data | ambiguous · requiredunresolved[].target string · requiredHTTP 400 · Invalid research requestHTTP 401 · Invalid Hive authenticationHTTP 404 · Public profile not foundHTTP 429 · Research rate limitedHTTP 503 · Research unavailableHTTP 504 · Research timed out/scrapers/instagram/profile/followersInstagram Followers
One attributed public follower collection, nullable metadata and unknown full graph; cached pages only.
Idempotency-Key header · optionalRequired for initial collection; cached result_id pages start no new work.
prefer header · optionalcollection_size integer · optionalOne finite first collection. Raw continuation tokens are never accepted or returned; cached pages cannot continue the upstream graph. Minimum: 25. Maximum: 1000. Default: 100.
limit integer · optionalMinimum: 1. Maximum: 50. Default: 20.
page integer · optionalOne-based cached page. Initial collection requires page 1; later pages require result_id and cannot extend the collected window. Minimum: 1. Maximum: 500. Default: 1.
profile string · requiredMinimum length: 1. Maximum length: 256.
result_id string | null · optionalOwner- and operation-bound immutable collection. Keep the same business request, ordered inputs and limit. Cached pages require no Idempotency-Key and launch no additional work. Pattern: ^rresult_[a-f0-9]{32}$.
Successful Response
collected_count integer · requiredMinimum: 0. Maximum: 2000.
collection_complete null · requiredUnknown upstream completeness; a final cached page does not prove exhaustion.
collection_limit integer · requiredMinimum: 1. Maximum: 2000.
count integer · requiredMinimum: 0. Maximum: 50.
expires_at integer · requiredUnix seconds; the collection expires 24 hours after submission. Polling, replay and cached pages do not renew it.
items object[] · requiredMaximum items: 50.
items[].biography null · requireditems[].created_at null · requireditems[].display_name string | null · optionalitems[].image_url string | null · optionalitems[].is_private boolean | null · requireditems[].is_verified boolean | null · requireditems[].location null · requireditems[].profile_id string · requireditems[].profile_url string · requireditems[].relation followers | following · requireditems[].relation_evidence source_attribution · requireditems[].source_profile string · requireditems[].username string · requiredlimit integer · requiredMinimum: 1. Maximum: 50.
next_page integer | null · requiredMinimum: 2. Maximum: 500.
page integer · requiredMinimum: 1. Maximum: 500.
partial boolean · requiredCollection-wide flag repeated on every cached page: missing candidate core fields, unresolved post targets, or image retention failures/limits can set it, even when absent from this page.
partial_reasons string[] · requiredMaximum items: 10.
relation followers | following · requiredrequested_collection_size integer · requiredMinimum: 1. Maximum: 1000.
result_id string · requiredPattern: ^rresult_[a-f0-9]{32}$.
source_profile string · requiredtruncated true | null · requiredTrue when collection omitted results; null means completeness is unknown.
upstream_continuation_available false · requiredAccepted
created_at integer · requirederror string | null · optionalexpires_at integer · requiredjob_id string · requiredoperation string · requiredpoll_url string · requiredRelative Hive URL. Poll with the same bearer; wait_seconds up to 25 waits for completion. GET returns this envelope (200), with the completed first page under result. Terminal jobs never launch another paid run on replay; eligible saved archive data has an explicit recover endpoint.
result object | null · optionalretry_after_s integer | null · optionalservice string · requiredstatus pending | running | completed | failed | outcome_unknown · requiredHTTP 400 · Invalid research requestHTTP 401 · Invalid Hive authenticationHTTP 404 · Public profile not foundHTTP 409 · Conflicting immutable request or unavailable recoveryHTTP 410 · Research job or result expiredHTTP 429 · Research rate limitedHTTP 503 · Research unavailableHTTP 504 · Research timed out/scrapers/instagram/profile/followingInstagram Following
One attributed public following collection; native continuation is unavailable through this public API.
Idempotency-Key header · optionalRequired for initial collection; cached result_id pages start no new work.
prefer header · optionalcollection_size integer · optionalOne finite first collection. Raw continuation tokens are never accepted or returned; cached pages cannot continue the upstream graph. Minimum: 25. Maximum: 1000. Default: 100.
limit integer · optionalMinimum: 1. Maximum: 50. Default: 20.
page integer · optionalOne-based cached page. Initial collection requires page 1; later pages require result_id and cannot extend the collected window. Minimum: 1. Maximum: 500. Default: 1.
profile string · requiredMinimum length: 1. Maximum length: 256.
result_id string | null · optionalOwner- and operation-bound immutable collection. Keep the same business request, ordered inputs and limit. Cached pages require no Idempotency-Key and launch no additional work. Pattern: ^rresult_[a-f0-9]{32}$.
Successful Response
collected_count integer · requiredMinimum: 0. Maximum: 2000.
collection_complete null · requiredUnknown upstream completeness; a final cached page does not prove exhaustion.
collection_limit integer · requiredMinimum: 1. Maximum: 2000.
count integer · requiredMinimum: 0. Maximum: 50.
expires_at integer · requiredUnix seconds; the collection expires 24 hours after submission. Polling, replay and cached pages do not renew it.
items object[] · requiredMaximum items: 50.
items[].biography null · requireditems[].created_at null · requireditems[].display_name string | null · optionalitems[].image_url string | null · optionalitems[].is_private boolean | null · requireditems[].is_verified boolean | null · requireditems[].location null · requireditems[].profile_id string · requireditems[].profile_url string · requireditems[].relation followers | following · requireditems[].relation_evidence source_attribution · requireditems[].source_profile string · requireditems[].username string · requiredlimit integer · requiredMinimum: 1. Maximum: 50.
next_page integer | null · requiredMinimum: 2. Maximum: 500.
page integer · requiredMinimum: 1. Maximum: 500.
partial boolean · requiredCollection-wide flag repeated on every cached page: missing candidate core fields, unresolved post targets, or image retention failures/limits can set it, even when absent from this page.
partial_reasons string[] · requiredMaximum items: 10.
relation followers | following · requiredrequested_collection_size integer · requiredMinimum: 1. Maximum: 1000.
result_id string · requiredPattern: ^rresult_[a-f0-9]{32}$.
source_profile string · requiredtruncated true | null · requiredTrue when collection omitted results; null means completeness is unknown.
upstream_continuation_available false · requiredAccepted
created_at integer · requirederror string | null · optionalexpires_at integer · requiredjob_id string · requiredoperation string · requiredpoll_url string · requiredRelative Hive URL. Poll with the same bearer; wait_seconds up to 25 waits for completion. GET returns this envelope (200), with the completed first page under result. Terminal jobs never launch another paid run on replay; eligible saved archive data has an explicit recover endpoint.
result object | null · optionalretry_after_s integer | null · optionalservice string · requiredstatus pending | running | completed | failed | outcome_unknown · requiredHTTP 400 · Invalid research requestHTTP 401 · Invalid Hive authenticationHTTP 404 · Public profile not foundHTTP 409 · Conflicting immutable request or unavailable recoveryHTTP 410 · Research job or result expiredHTTP 429 · Research rate limitedHTTP 503 · Research unavailableHTTP 504 · Research timed out/scrapers/instagram/profile/highlightsInstagram Highlights
Saved public Highlight metadata only; finite summaries and fixed profile outcome, with no Story content or complete-history claim.
Idempotency-Key header · optionalRequired for initial collection; cached result_id pages start no new work.
prefer header · optionalcollection_size integer · optionalMaximum saved Highlight summaries; use the content route for actual Story items. Minimum: 1. Maximum: 100. Default: 10.
limit integer · optionalMinimum: 1. Maximum: 50. Default: 20.
page integer · optionalOne-based cached page. Initial collection requires page 1; later pages require result_id and cannot extend the collected window. Minimum: 1. Maximum: 500. Default: 1.
profile string · requiredMinimum length: 1. Maximum length: 256.
result_id string | null · optionalOwner- and operation-bound immutable collection. Keep the same business request, ordered inputs and limit. Cached pages require no Idempotency-Key and launch no additional work. Pattern: ^rresult_[a-f0-9]{32}$.
Successful Response
collected_count integer · requiredMinimum: 0. Maximum: 2000.
collection_complete null · requiredUnknown upstream completeness; a final cached page does not prove exhaustion.
collection_limit integer · requiredMinimum: 1. Maximum: 2000.
content_available false · requiredcount integer · requiredMinimum: 0. Maximum: 50.
expires_at integer · requiredUnix seconds; the collection expires 24 hours after submission. Polling, replay and cached pages do not renew it.
items object[] · requiredMaximum items: 50.
items[].content_retrieved false · requireditems[].cover_image_url string | null · requireditems[].created_at string | null · requireditems[].highlight_id string · requireditems[].latest_story_at string | null · requireditems[].relation_evidence profile_container · requireditems[].reported_media_count integer | null · requiredMinimum: 0.
items[].source_profile string · requireditems[].title string | null · requireditems[].updated_at string | null · requiredlimit integer · requiredMinimum: 1. Maximum: 50.
next_page integer | null · requiredMinimum: 2. Maximum: 500.
page integer · requiredMinimum: 1. Maximum: 500.
partial boolean · requiredCollection-wide flag repeated on every cached page: missing candidate core fields, unresolved post targets, or image retention failures/limits can set it, even when absent from this page.
partial_reasons string[] · requiredMaximum items: 10.
profile_reason private | not_found | rate_limited | fetch_failed | partial_response | null · requiredprofile_status success | partial | private | not_found | unavailable | rate_limited · requiredrequested_collection_size integer · requiredMinimum: 1. Maximum: 1000.
result_id string · requiredPattern: ^rresult_[a-f0-9]{32}$.
source_profile string · requiredtruncated true | null · requiredTrue when collection omitted results; null means completeness is unknown.
Accepted
created_at integer · requirederror string | null · optionalexpires_at integer · requiredjob_id string · requiredoperation string · requiredpoll_url string · requiredRelative Hive URL. Poll with the same bearer; wait_seconds up to 25 waits for completion. GET returns this envelope (200), with the completed first page under result. Terminal jobs never launch another paid run on replay; eligible saved archive data has an explicit recover endpoint.
result object | null · optionalretry_after_s integer | null · optionalservice string · requiredstatus pending | running | completed | failed | outcome_unknown · requiredHTTP 400 · Invalid research requestHTTP 401 · Invalid Hive authenticationHTTP 404 · Public profile not foundHTTP 409 · Conflicting immutable request or unavailable recoveryHTTP 410 · Research job or result expiredHTTP 429 · Research rate limitedHTTP 503 · Research unavailableHTTP 504 · Research timed out/scrapers/instagram/profile/highlights/contentContent
Actual saved Story items with IDs, dates and media references; media bytes are not retained.
Idempotency-Key header · optionalRequired for initial collection; replay and cached pages start no new work.
prefer header · optionalcollection_size integer · optionalFinite number of actual Story items; limit only pages the saved collection. Minimum: 1. Maximum: 200. Default: 50.
highlight_limit integer · optionalMaximum saved Highlight reels expanded for this profile. Minimum: 1. Maximum: 25. Default: 5.
limit integer · optionalMinimum: 1. Maximum: 50. Default: 20.
page integer · optionalOne-based cached page. Initial collection requires page 1; later pages require result_id and cannot extend the collected window. Minimum: 1. Maximum: 500. Default: 1.
profile string · requiredMinimum length: 1. Maximum length: 512.
result_id string | null · optionalOwner- and operation-bound immutable collection. Keep the same business request, ordered inputs and limit. Cached pages require no Idempotency-Key and launch no additional work. Pattern: ^rresult_[a-f0-9]{32}$.
Successful Response
collected_count integer · requiredMinimum: 0. Maximum: 2000.
collection_complete null · requiredcollection_limit integer · requiredMinimum: 1. Maximum: 2000.
content_scope saved_highlight_stories · requiredcount integer · requiredMinimum: 0. Maximum: 50.
expires_at integer · requiredUnix seconds; the collection expires 24 hours after submission. Polling, replay and cached pages do not renew it.
items object[] · requiredMaximum items: 50.
items[].caption string | null · requireditems[].expires_at null · requireditems[].hashtags string[] · requiredMaximum items: 100.
items[].height integer | null · requiredMinimum: 0.
items[].highlight_id string · requiredPattern: ^[1-9][0-9]{0,39}$.
items[].highlight_title string | null · requireditems[].highlight_url string · requireditems[].links string[] · requiredMaximum items: 100.
items[].media_id string · requiredObserved numeric media component of the Story ID. Pattern: ^[1-9][0-9]{0,39}$.
items[].media_retained false · requireditems[].media_type image | video · requireditems[].media_url string · requireditems[].mentions string[] · requiredMaximum items: 100.
items[].music_artist string | null · requireditems[].music_title string | null · requireditems[].owner_id string | null · requireditems[].position integer · requiredMinimum: 1.
items[].relation_evidence observed_owner_and_highlight · requireditems[].source_profile string · requireditems[].story_id string · requiredObserved Story ID, including its validated owner suffix when returned. Pattern: ^[1-9][0-9]{0,39}(?:_[1-9][0-9]{0,39})?$.
items[].thumbnail_url string | null · requireditems[].timestamp string · requireditems[].width integer | null · requiredMinimum: 0.
limit integer · requiredMinimum: 1. Maximum: 50.
media_retained false · requirednext_page integer | null · requiredMinimum: 2. Maximum: 500.
page integer · requiredMinimum: 1. Maximum: 500.
partial boolean · requiredCollection-wide flag repeated on every cached page: missing candidate core fields, unresolved post targets, or image retention failures/limits can set it, even when absent from this page.
partial_reasons string[] · requiredMaximum items: 10.
requested_collection_size integer · requiredMinimum: 1. Maximum: 200.
requested_highlight_limit integer · requiredMinimum: 1. Maximum: 25.
result_id string · requiredPattern: ^rresult_[a-f0-9]{32}$.
source_profile string · requiredtruncated true | null · requiredTrue when collection omitted results; null means completeness is unknown.
Accepted
created_at integer · requirederror string | null · optionalexpires_at integer · requiredjob_id string · requiredoperation string · requiredpoll_url string · requiredRelative Hive URL. Poll with the same bearer; wait_seconds up to 25 waits for completion. GET returns this envelope (200), with the completed first page under result. Terminal jobs never launch another paid run on replay; eligible saved archive data has an explicit recover endpoint.
result object | null · optionalretry_after_s integer | null · optionalservice string · requiredstatus pending | running | completed | failed | outcome_unknown · requiredHTTP 400 · Invalid research requestHTTP 401 · Invalid Hive authenticationHTTP 404 · Public profile not foundHTTP 409 · Conflicting immutable request or unavailable recoveryHTTP 410 · Research job or result expiredHTTP 429 · Research rate limitedHTTP 503 · Research unavailableHTTP 504 · Research timed out/scrapers/instagram/profile/postsInstagram Profile Posts
Return a cached page or wait up to 20 seconds. Prefer: respond-async submits promptly. Media URLs may expire; full history is unknown.
Idempotency-Key header · optionalRequired for initial collection; cached result_id pages need no key.
prefer header · optionalCollect recent posts or continue a dated public-profile archive.
archive boolean · optionalWalk a dated public profile window. Continue the same window using next_archive_cursor, then use next_archive_end_date. Default: false.
archive_cursor string | null · optionalOpaque continuation returned as next_archive_cursor by the previous completed archive job for the same profile and date window. Minimum length: 1. Maximum length: 262144.
archive_end_date string | null · optionalInclusive UTC date at the end of the archive window; required with archive=true. Pattern: ^\d{4}-\d{2}-\d{2}$.
archive_window_days integer · optionalMaximum UTC days in this archive window, up to 365. Post and runtime bounds still apply; follow the returned cursor before moving to an older window. Minimum: 1. Maximum: 365. Default: 30.
limit integer · optionalMinimum: 1. Maximum: 50. Default: 20.
page integer · optionalOne-based cached page. Initial collection requires page 1; later pages require result_id and cannot extend the collected window. Minimum: 1. Maximum: 500. Default: 1.
per_target_limit integer · optionalMaximum posts per profile: 50 by default, up to 500 across the collection. Larger windows collect carousel media for more posts. Archive mode defaults to 500 if omitted. Minimum: 1. Maximum: 500. Default: 50.
post_urls string[] | null · optionalLook up up to ten specific public posts for this single profile, including full carousel media. Each post must belong to or explicitly list the profile as a coauthor. Cannot be combined with archive mode. Minimum items: 1. Maximum items: 10.
profiles string[] · requiredMinimum items: 1. Maximum items: 10.
result_id string | null · optionalOwner- and operation-bound immutable collection. Keep the same business request, ordered inputs and limit. Cached pages require no Idempotency-Key and launch no additional work. Pattern: ^rresult_[a-f0-9]{32}$.
retain_media boolean · optionalPreserve photos/video thumbnails. Recent jobs allow 20 unique images and 32 MiB over 30 seconds; archive jobs allow 100 images and 96 MiB over 120 seconds. Each image is capped at 10 MiB and 40 million pixels. Shared bearer/global quotas still apply. No video download; assets expire after 24 hours. Cached pages/replay never download again. Default: false.
Successful Response
archive_end_date string | null · optionalPattern: ^\d{4}-\d{2}-\d{2}$.
archive_start_date string | null · optionalPattern: ^\d{4}-\d{2}-\d{2}$.
collected_count integer · requiredMinimum: 0. Maximum: 2000.
collection_limit integer · requiredMinimum: 1. Maximum: 2000.
count integer · requiredMinimum: 0. Maximum: 50.
expires_at integer · requiredUnix seconds; the collection expires 24 hours after submission. Polling, replay and cached pages do not renew it.
history_complete null · requiredFull platform history is unknown. Pages cover only the cached collection.
history_scope collected_window | recent_public_timeline | archive_date_window | archive_cursor_window · optionalDate windows continue through next_archive_end_date; cursor windows continue through next_archive_cursor. Page numbers only traverse the cached result. Default: "collected_window".
items object[] · requiredMaximum items: 50.
items[].author object · requireditems[].author.display_name string | null · optionalitems[].author.image_url string | null · optionalitems[].author.profile_id string | null · optionalitems[].author.profile_url string · requireditems[].author.username string | null · optionalitems[].comments_count integer | null · optionalMinimum: 0.
items[].context object[] · requiredMaximum items: 2.
items[].context[].author object · requireditems[].context[].author.display_name string | null · optionalitems[].context[].author.image_url string | null · optionalitems[].context[].author.profile_id string | null · optionalitems[].context[].author.profile_url string · requireditems[].context[].author.username string | null · optionalitems[].context[].comments_count integer | null · optionalMinimum: 0.
items[].context[].geotag object | null · requireditems[].context[].kind repost | quote · requireditems[].context[].likes_count integer | null · optionalMinimum: 0.
items[].context[].media object[] · requiredMaximum items: 500.
items[].context[].media[].asset object | null · optionalitems[].context[].media[].bitrate integer | null · optionalMinimum: 0.
items[].context[].media[].group_index integer · requiredZero-based position in the source carousel or album; variants share a group. Minimum: 0. Maximum: 499.
items[].context[].media[].mime_type string | null · optionalitems[].context[].media[].retention_reason not_requested | video_not_retained | count_limit | job_byte_limit | destination_rejected | source_unavailable | unsupported_format | invalid_image | too_large | quota_exceeded | timeout | download_failed | storage_unavailable | null · optionalDefault: "not_requested".
items[].context[].media[].retention_status retained | skipped | failed · optionalDefault: "skipped".
items[].context[].media[].role original | thumbnail · requireditems[].context[].media[].type image | video · requireditems[].context[].media[].url string · requiredOriginal public source reference; may expire. Separate from the authenticated retained asset URL.
items[].context[].media_complete boolean | null · optionalFalse when the provider reports media missing from this post; null when completeness cannot be established.
items[].context[].media_count_reported integer | null · optionalMedia count reported by the source provider, when available. Minimum: 0.
items[].context[].mentions object[] | null · requiredCaption/text mentions, separate from actual tags. Maximum items: 100.
items[].context[].post_id string · requireditems[].context[].quotes_count integer | null · optionalMinimum: 0.
items[].context[].reposts_count integer | null · optionalMinimum: 0.
items[].context[].tagged_users object[] | null · requiredActual source tags; null means unavailable. Maximum items: 100.
items[].context[].text string | null · requireditems[].context[].timestamp string | null · requiredUTC ISO 8601 time; null means unavailable, never inferred epoch zero.
items[].context[].url string · requireditems[].context[].views_count integer | null · optionalMinimum: 0.
items[].geotag object | null · requireditems[].input_index integer · requiredMinimum: 0. Maximum: 9.
items[].is_pinned boolean | null · optionalitems[].is_quote boolean | null · optionalitems[].is_repost boolean | null · optionalitems[].likes_count integer | null · optionalMinimum: 0.
items[].media object[] · requiredMaximum items: 500.
items[].media[].asset object | null · optionalitems[].media[].bitrate integer | null · optionalMinimum: 0.
items[].media[].group_index integer · requiredZero-based position in the source carousel or album; variants share a group. Minimum: 0. Maximum: 499.
items[].media[].mime_type string | null · optionalitems[].media[].retention_reason not_requested | video_not_retained | count_limit | job_byte_limit | destination_rejected | source_unavailable | unsupported_format | invalid_image | too_large | quota_exceeded | timeout | download_failed | storage_unavailable | null · optionalDefault: "not_requested".
items[].media[].retention_status retained | skipped | failed · optionalDefault: "skipped".
items[].media[].role original | thumbnail · requireditems[].media[].type image | video · requireditems[].media[].url string · requiredOriginal public source reference; may expire. Separate from the authenticated retained asset URL.
items[].media_complete boolean | null · optionalFalse when the provider reports media missing from this post; null when completeness cannot be established.
items[].media_count_reported integer | null · optionalMedia count reported by the source provider, when available. Minimum: 0.
items[].mentions object[] | null · requiredCaption/text mentions, separate from actual tags. Maximum items: 100.
items[].post_id string · requireditems[].quotes_count integer | null · optionalMinimum: 0.
items[].reposts_count integer | null · optionalMinimum: 0.
items[].tagged_users object[] | null · requiredActual source tags; null means unavailable. Maximum items: 100.
items[].target string · requireditems[].text string | null · requireditems[].timestamp string | null · requiredUTC ISO 8601 time; null means unavailable, never inferred epoch zero.
items[].url string · requireditems[].views_count integer | null · optionalMinimum: 0.
limit integer · requiredMinimum: 1. Maximum: 50.
next_archive_cursor string | null · optionalSubmit as archive_cursor in a new Instagram or Facebook personal archive job with the same profile and window settings after consuming cached pages. Null when the provider reached the visible end or could not safely continue. Maximum length: 262144.
next_archive_end_date string | null · optionalSubmit a new archive job ending on this date after consuming all cached pages. Null when the date range is exhausted or the current window hit its collection cap; narrow a capped window before continuing. Pattern: ^\d{4}-\d{2}-\d{2}$.
next_page integer | null · requiredMinimum: 2. Maximum: 500.
page integer · requiredMinimum: 1. Maximum: 500.
partial boolean · requiredCollection-wide flag repeated on every cached page: missing candidate core fields, unresolved post targets, or image retention failures/limits can set it, even when absent from this page.
per_target_limit integer · requiredMinimum: 1. Maximum: 1000.
result_id string · requiredPattern: ^rresult_[a-f0-9]{32}$.
targets object[] · requiredMaximum items: 10.
targets[].collected_count integer · requiredMinimum: 0. Maximum: 1000.
targets[].input_index integer · requiredMinimum: 0. Maximum: 9.
targets[].reason not_found | private | unavailable | malformed_data | ambiguous | null · requiredtargets[].status resolved | unresolved · requiredtargets[].target string · requiredtruncated true | null · requiredTrue when collection omitted results; null means completeness is unknown.
unresolved object[] · requiredMaximum items: 10.
unresolved[].input_index integer · requiredMinimum: 0. Maximum: 9.
unresolved[].reason not_found | private | unavailable | malformed_data | ambiguous · requiredunresolved[].target string · requiredDurable job; poll the returned owner-scoped URL.
created_at integer · requirederror string | null · optionalexpires_at integer · requiredjob_id string · requiredoperation string · requiredpoll_url string · requiredRelative Hive URL. Poll with the same bearer; wait_seconds up to 25 waits for completion. GET returns this envelope (200), with the completed first page under result. Terminal jobs never launch another paid run on replay; eligible saved archive data has an explicit recover endpoint.
result object | null · optionalretry_after_s integer | null · optionalservice string · requiredstatus pending | running | completed | failed | outcome_unknown · requiredHTTP 400 · Invalid research requestHTTP 401 · Invalid Hive authenticationHTTP 404 · Public profile not foundHTTP 409 · Conflicting immutable request or unavailable recoveryHTTP 410 · Research job or result expiredHTTP 429 · Research rate limitedHTTP 503 · Research unavailableHTTP 504 · Research timed out/scrapers/instagram/profile/taggedInstagram Tagged
Collect genuinely tagged incoming posts with their actual source authors; mentions alone never establish a tag.
Idempotency-Key header · optionalRequired for initial collection; cached result_id pages start no new work.
prefer header · optionalcollection_size integer · optionalMinimum: 1. Maximum: 200. Default: 50.
limit integer · optionalMinimum: 1. Maximum: 50. Default: 20.
page integer · optionalOne-based cached page. Initial collection requires page 1; later pages require result_id and cannot extend the collected window. Minimum: 1. Maximum: 500. Default: 1.
profile string · requiredMinimum length: 1. Maximum length: 256.
result_id string | null · optionalOwner- and operation-bound immutable collection. Keep the same business request, ordered inputs and limit. Cached pages require no Idempotency-Key and launch no additional work. Pattern: ^rresult_[a-f0-9]{32}$.
Successful Response
collected_count integer · requiredMinimum: 0. Maximum: 2000.
collection_complete null · requiredUnknown upstream completeness; a final cached page does not prove exhaustion.
collection_limit integer · requiredMinimum: 1. Maximum: 2000.
count integer · requiredMinimum: 0. Maximum: 50.
expires_at integer · requiredUnix seconds; the collection expires 24 hours after submission. Polling, replay and cached pages do not renew it.
items object[] · requiredMaximum items: 50.
items[].author object · requireditems[].author.display_name string | null · optionalitems[].author.image_url string | null · optionalitems[].author.profile_id string | null · optionalitems[].author.profile_url string · requireditems[].author.username string | null · optionalitems[].comments_count integer | null · optionalMinimum: 0.
items[].geotag object | null · requireditems[].likes_count integer | null · optionalMinimum: 0.
items[].media object[] · requiredMaximum items: 500.
items[].media[].asset object | null · optionalitems[].media[].bitrate integer | null · optionalMinimum: 0.
items[].media[].group_index integer · requiredZero-based position in the source carousel or album; variants share a group. Minimum: 0. Maximum: 499.
items[].media[].mime_type string | null · optionalitems[].media[].retention_reason not_requested | video_not_retained | count_limit | job_byte_limit | destination_rejected | source_unavailable | unsupported_format | invalid_image | too_large | quota_exceeded | timeout | download_failed | storage_unavailable | null · optionalDefault: "not_requested".
items[].media[].retention_status retained | skipped | failed · optionalDefault: "skipped".
items[].media[].role original | thumbnail · requireditems[].media[].type image | video · requireditems[].media[].url string · requiredOriginal public source reference; may expire. Separate from the authenticated retained asset URL.
items[].media_complete boolean | null · optionalFalse when the provider reports media missing from this post; null when completeness cannot be established.
items[].media_count_reported integer | null · optionalMedia count reported by the source provider, when available. Minimum: 0.
items[].mentions object[] | null · requiredCaption/text mentions, separate from actual tags. Maximum items: 100.
items[].post_id string · requireditems[].quotes_count integer | null · optionalMinimum: 0.
items[].relation_evidence tagged_users · requiredActual returned tag fields establish this relation; a caption mention or echoed target does not.
items[].reposts_count integer | null · optionalMinimum: 0.
items[].tagged_profile string · requireditems[].tagged_users object[] | null · requiredActual source tags; null means unavailable. Maximum items: 100.
items[].text string | null · requireditems[].timestamp string | null · requiredUTC ISO 8601 time; null means unavailable, never inferred epoch zero.
items[].url string · requireditems[].views_count integer | null · optionalMinimum: 0.
limit integer · requiredMinimum: 1. Maximum: 50.
next_page integer | null · requiredMinimum: 2. Maximum: 500.
page integer · requiredMinimum: 1. Maximum: 500.
partial boolean · requiredCollection-wide flag repeated on every cached page: missing candidate core fields, unresolved post targets, or image retention failures/limits can set it, even when absent from this page.
partial_reasons string[] · requiredMaximum items: 10.
requested_collection_size integer · requiredMinimum: 1. Maximum: 1000.
result_id string · requiredPattern: ^rresult_[a-f0-9]{32}$.
tagged_profile string · requiredtruncated true | null · requiredTrue when collection omitted results; null means completeness is unknown.
Accepted
created_at integer · requirederror string | null · optionalexpires_at integer · requiredjob_id string · requiredoperation string · requiredpoll_url string · requiredRelative Hive URL. Poll with the same bearer; wait_seconds up to 25 waits for completion. GET returns this envelope (200), with the completed first page under result. Terminal jobs never launch another paid run on replay; eligible saved archive data has an explicit recover endpoint.
result object | null · optionalretry_after_s integer | null · optionalservice string · requiredstatus pending | running | completed | failed | outcome_unknown · requiredHTTP 400 · Invalid research requestHTTP 401 · Invalid Hive authenticationHTTP 404 · Public profile not foundHTTP 409 · Conflicting immutable request or unavailable recoveryHTTP 410 · Research job or result expiredHTTP 429 · Research rate limitedHTTP 503 · Research unavailableHTTP 504 · Research timed out/scrapers/jobs/{job_id}Get Social Research Job
Wait up to 25 seconds for completion without starting or replaying work.
job_id path · requiredwait_seconds query · optionalSuccessful Response
created_at integer · requirederror string | null · optionalexpires_at integer · requiredjob_id string · requiredoperation string · requiredpoll_url string · requiredRelative Hive URL. Poll with the same bearer; wait_seconds up to 25 waits for completion. GET returns this envelope (200), with the completed first page under result. Terminal jobs never launch another paid run on replay; eligible saved archive data has an explicit recover endpoint.
result object | null · optionalretry_after_s integer | null · optionalservice string · requiredstatus pending | running | completed | failed | outcome_unknown · requiredcreated_at integer · requirederror string | null · optionalexpires_at integer · requiredjob_id string · requiredoperation string · requiredpoll_url string · requiredRelative Hive URL. Poll with the same bearer; wait_seconds up to 25 waits for completion. GET returns this envelope (200), with the completed first page under result. Terminal jobs never launch another paid run on replay; eligible saved archive data has an explicit recover endpoint.
result object | null · optionalretry_after_s integer | null · optionalservice string · requiredstatus pending | running | completed | failed | outcome_unknown · requiredcreated_at integer · requirederror string | null · optionalexpires_at integer · requiredjob_id string · requiredoperation string · requiredpoll_url string · requiredRelative Hive URL. Poll with the same bearer; wait_seconds up to 25 waits for completion. GET returns this envelope (200), with the completed first page under result. Terminal jobs never launch another paid run on replay; eligible saved archive data has an explicit recover endpoint.
result object | null · optionalretry_after_s integer | null · optionalservice string · requiredstatus pending | running | completed | failed | outcome_unknown · requiredcreated_at integer · requirederror string | null · optionalexpires_at integer · requiredjob_id string · requiredoperation string · requiredpoll_url string · requiredRelative Hive URL. Poll with the same bearer; wait_seconds up to 25 waits for completion. GET returns this envelope (200), with the completed first page under result. Terminal jobs never launch another paid run on replay; eligible saved archive data has an explicit recover endpoint.
result object | null · optionalretry_after_s integer | null · optionalservice string · requiredstatus pending | running | completed | failed | outcome_unknown · requiredcreated_at integer · requirederror string | null · optionalexpires_at integer · requiredjob_id string · requiredoperation string · requiredpoll_url string · requiredRelative Hive URL. Poll with the same bearer; wait_seconds up to 25 waits for completion. GET returns this envelope (200), with the completed first page under result. Terminal jobs never launch another paid run on replay; eligible saved archive data has an explicit recover endpoint.
result object | null · optionalretry_after_s integer | null · optionalservice string · requiredstatus pending | running | completed | failed | outcome_unknown · requiredcreated_at integer · requirederror string | null · optionalexpires_at integer · requiredjob_id string · requiredoperation string · requiredpoll_url string · requiredRelative Hive URL. Poll with the same bearer; wait_seconds up to 25 waits for completion. GET returns this envelope (200), with the completed first page under result. Terminal jobs never launch another paid run on replay; eligible saved archive data has an explicit recover endpoint.
result object | null · optionalretry_after_s integer | null · optionalservice string · requiredstatus pending | running | completed | failed | outcome_unknown · requiredcreated_at integer · requirederror string | null · optionalexpires_at integer · requiredjob_id string · requiredoperation string · requiredpoll_url string · requiredRelative Hive URL. Poll with the same bearer; wait_seconds up to 25 waits for completion. GET returns this envelope (200), with the completed first page under result. Terminal jobs never launch another paid run on replay; eligible saved archive data has an explicit recover endpoint.
result object | null · optionalretry_after_s integer | null · optionalservice string · requiredstatus pending | running | completed | failed | outcome_unknown · requiredcreated_at integer · requirederror string | null · optionalexpires_at integer · requiredjob_id string · requiredoperation string · requiredpoll_url string · requiredRelative Hive URL. Poll with the same bearer; wait_seconds up to 25 waits for completion. GET returns this envelope (200), with the completed first page under result. Terminal jobs never launch another paid run on replay; eligible saved archive data has an explicit recover endpoint.
result object | null · optionalretry_after_s integer | null · optionalservice string · requiredstatus pending | running | completed | failed | outcome_unknown · requiredcreated_at integer · requirederror string | null · optionalexpires_at integer · requiredjob_id string · requiredoperation string · requiredpoll_url string · requiredRelative Hive URL. Poll with the same bearer; wait_seconds up to 25 waits for completion. GET returns this envelope (200), with the completed first page under result. Terminal jobs never launch another paid run on replay; eligible saved archive data has an explicit recover endpoint.
result object | null · optionalretry_after_s integer | null · optionalservice string · requiredstatus pending | running | completed | failed | outcome_unknown · requiredcreated_at integer · requirederror string | null · optionalexpires_at integer · requiredjob_id string · requiredoperation string · requiredpoll_url string · requiredRelative Hive URL. Poll with the same bearer; wait_seconds up to 25 waits for completion. GET returns this envelope (200), with the completed first page under result. Terminal jobs never launch another paid run on replay; eligible saved archive data has an explicit recover endpoint.
result object | null · optionalretry_after_s integer | null · optionalservice string · requiredstatus pending | running | completed | failed | outcome_unknown · requiredcreated_at integer · requirederror string | null · optionalexpires_at integer · requiredjob_id string · requiredoperation string · requiredpoll_url string · requiredRelative Hive URL. Poll with the same bearer; wait_seconds up to 25 waits for completion. GET returns this envelope (200), with the completed first page under result. Terminal jobs never launch another paid run on replay; eligible saved archive data has an explicit recover endpoint.
result object | null · optionalretry_after_s integer | null · optionalservice string · requiredstatus pending | running | completed | failed | outcome_unknown · requiredcreated_at integer · requirederror string | null · optionalexpires_at integer · requiredjob_id string · requiredoperation string · requiredpoll_url string · requiredRelative Hive URL. Poll with the same bearer; wait_seconds up to 25 waits for completion. GET returns this envelope (200), with the completed first page under result. Terminal jobs never launch another paid run on replay; eligible saved archive data has an explicit recover endpoint.
result object | null · optionalretry_after_s integer | null · optionalservice string · requiredstatus pending | running | completed | failed | outcome_unknown · requiredcreated_at integer · requirederror string | null · optionalexpires_at integer · requiredjob_id string · requiredoperation string · requiredpoll_url string · requiredRelative Hive URL. Poll with the same bearer; wait_seconds up to 25 waits for completion. GET returns this envelope (200), with the completed first page under result. Terminal jobs never launch another paid run on replay; eligible saved archive data has an explicit recover endpoint.
result object | null · optionalretry_after_s integer | null · optionalservice string · requiredstatus pending | running | completed | failed | outcome_unknown · requiredcreated_at integer · requirederror string | null · optionalexpires_at integer · requiredjob_id string · requiredoperation string · requiredpoll_url string · requiredRelative Hive URL. Poll with the same bearer; wait_seconds up to 25 waits for completion. GET returns this envelope (200), with the completed first page under result. Terminal jobs never launch another paid run on replay; eligible saved archive data has an explicit recover endpoint.
result object | null · optionalretry_after_s integer | null · optionalservice string · requiredstatus pending | running | completed | failed | outcome_unknown · requiredcreated_at integer · requirederror string | null · optionalexpires_at integer · requiredjob_id string · requiredoperation string · requiredpoll_url string · requiredRelative Hive URL. Poll with the same bearer; wait_seconds up to 25 waits for completion. GET returns this envelope (200), with the completed first page under result. Terminal jobs never launch another paid run on replay; eligible saved archive data has an explicit recover endpoint.
result object | null · optionalretry_after_s integer | null · optionalservice string · requiredstatus pending | running | completed | failed | outcome_unknown · requiredcreated_at integer · requirederror string | null · optionalexpires_at integer · requiredjob_id string · requiredoperation string · requiredpoll_url string · requiredRelative Hive URL. Poll with the same bearer; wait_seconds up to 25 waits for completion. GET returns this envelope (200), with the completed first page under result. Terminal jobs never launch another paid run on replay; eligible saved archive data has an explicit recover endpoint.
result object | null · optionalretry_after_s integer | null · optionalservice string · requiredstatus pending | running | completed | failed | outcome_unknown · requiredcreated_at integer · requirederror string | null · optionalexpires_at integer · requiredjob_id string · requiredoperation string · requiredpoll_url string · requiredRelative Hive URL. Poll with the same bearer; wait_seconds up to 25 waits for completion. GET returns this envelope (200), with the completed first page under result. Terminal jobs never launch another paid run on replay; eligible saved archive data has an explicit recover endpoint.
result object | null · optionalretry_after_s integer | null · optionalservice string · requiredstatus pending | running | completed | failed | outcome_unknown · requiredcreated_at integer · requirederror string | null · optionalexpires_at integer · requiredjob_id string · requiredoperation string · requiredpoll_url string · requiredRelative Hive URL. Poll with the same bearer; wait_seconds up to 25 waits for completion. GET returns this envelope (200), with the completed first page under result. Terminal jobs never launch another paid run on replay; eligible saved archive data has an explicit recover endpoint.
result object | null · optionalretry_after_s integer | null · optionalservice string · requiredstatus pending | running | completed | failed | outcome_unknown · requiredcreated_at integer · requirederror string | null · optionalexpires_at integer · requiredjob_id string · requiredoperation string · requiredpoll_url string · requiredRelative Hive URL. Poll with the same bearer; wait_seconds up to 25 waits for completion. GET returns this envelope (200), with the completed first page under result. Terminal jobs never launch another paid run on replay; eligible saved archive data has an explicit recover endpoint.
result object | null · optionalretry_after_s integer | null · optionalservice string · requiredstatus pending | running | completed | failed | outcome_unknown · requiredcreated_at integer · requirederror string | null · optionalexpires_at integer · requiredjob_id string · requiredoperation string · requiredpoll_url string · requiredRelative Hive URL. Poll with the same bearer; wait_seconds up to 25 waits for completion. GET returns this envelope (200), with the completed first page under result. Terminal jobs never launch another paid run on replay; eligible saved archive data has an explicit recover endpoint.
result object | null · optionalretry_after_s integer | null · optionalservice string · requiredstatus pending | running | completed | failed | outcome_unknown · requiredcreated_at integer · requirederror string | null · optionalexpires_at integer · requiredjob_id string · requiredoperation string · requiredpoll_url string · requiredRelative Hive URL. Poll with the same bearer; wait_seconds up to 25 waits for completion. GET returns this envelope (200), with the completed first page under result. Terminal jobs never launch another paid run on replay; eligible saved archive data has an explicit recover endpoint.
result object | null · optionalretry_after_s integer | null · optionalservice string · requiredstatus pending | running | completed | failed | outcome_unknown · requiredcreated_at integer · requirederror string | null · optionalexpires_at integer · requiredjob_id string · requiredoperation string · requiredpoll_url string · requiredRelative Hive URL. Poll with the same bearer; wait_seconds up to 25 waits for completion. GET returns this envelope (200), with the completed first page under result. Terminal jobs never launch another paid run on replay; eligible saved archive data has an explicit recover endpoint.
result object | null · optionalretry_after_s integer | null · optionalservice string · requiredstatus pending | running | completed | failed | outcome_unknown · requiredcreated_at integer · requirederror string | null · optionalexpires_at integer · requiredjob_id string · requiredoperation string · requiredpoll_url string · requiredRelative Hive URL. Poll with the same bearer; wait_seconds up to 25 waits for completion. GET returns this envelope (200), with the completed first page under result. Terminal jobs never launch another paid run on replay; eligible saved archive data has an explicit recover endpoint.
result object | null · optionalretry_after_s integer | null · optionalservice string · requiredstatus pending | running | completed | failed | outcome_unknown · requiredcreated_at integer · requirederror string | null · optionalexpires_at integer · requiredjob_id string · requiredoperation string · requiredpoll_url string · requiredRelative Hive URL. Poll with the same bearer; wait_seconds up to 25 waits for completion. GET returns this envelope (200), with the completed first page under result. Terminal jobs never launch another paid run on replay; eligible saved archive data has an explicit recover endpoint.
result object | null · optionalretry_after_s integer | null · optionalservice string · requiredstatus pending | running | completed | failed | outcome_unknown · requiredcreated_at integer · requirederror string | null · optionalexpires_at integer · requiredjob_id string · requiredoperation string · requiredpoll_url string · requiredRelative Hive URL. Poll with the same bearer; wait_seconds up to 25 waits for completion. GET returns this envelope (200), with the completed first page under result. Terminal jobs never launch another paid run on replay; eligible saved archive data has an explicit recover endpoint.
result object | null · optionalretry_after_s integer | null · optionalservice string · requiredstatus pending | running | completed | failed | outcome_unknown · requiredHTTP 400 · Invalid research requestHTTP 401 · Invalid Hive authenticationHTTP 404 · Public profile not foundHTTP 409 · Conflicting immutable request or unavailable recoveryHTTP 410 · Research job or result expiredHTTP 429 · Research rate limitedHTTP 503 · Research unavailableHTTP 504 · Research timed out/scrapers/jobs/{job_id}/recoverRecover Social Research Job
Recover accepted terminal X archive data through GET-only reads. No new provider run; original result expiry remains.
job_id path · requiredSuccessful Response
created_at integer · requirederror string | null · optionalexpires_at integer · requiredjob_id string · requiredoperation string · requiredpoll_url string · requiredRelative Hive URL. Poll with the same bearer; wait_seconds up to 25 waits for completion. GET returns this envelope (200), with the completed first page under result. Terminal jobs never launch another paid run on replay; eligible saved archive data has an explicit recover endpoint.
result object | null · optionalretry_after_s integer | null · optionalservice string · requiredstatus pending | running | completed | failed | outcome_unknown · requiredAccepted
created_at integer · requirederror string | null · optionalexpires_at integer · requiredjob_id string · requiredoperation string · requiredpoll_url string · requiredRelative Hive URL. Poll with the same bearer; wait_seconds up to 25 waits for completion. GET returns this envelope (200), with the completed first page under result. Terminal jobs never launch another paid run on replay; eligible saved archive data has an explicit recover endpoint.
result object | null · optionalretry_after_s integer | null · optionalservice string · requiredstatus pending | running | completed | failed | outcome_unknown · requiredHTTP 400 · Invalid research requestHTTP 401 · Invalid Hive authenticationHTTP 404 · Public profile not foundHTTP 409 · Conflicting immutable request or unavailable recoveryHTTP 410 · Research job or result expiredHTTP 429 · Research rate limitedHTTP 503 · Research unavailableHTTP 504 · Research timed out/scrapers/linkedin/company/employeesCompany Employees
Retrieve public LinkedIn data using the documented filters and pagination fields.
companies string[] · requiredMinimum items: 1. Maximum items: 20.
company_headcounts string[] · optionalMaximum items: 10.
detail_level basic | full · optionalDefault: "basic".
exclude_functions string[] · optionalMaximum items: 30.
exclude_industries string[] · optionalMaximum items: 50.
exclude_locations string[] · optionalMaximum items: 50.
exclude_past_titles string[] · optionalMaximum items: 50.
exclude_seniority_levels string[] · optionalMaximum items: 20.
exclude_titles string[] · optionalMaximum items: 50.
experience_levels string[] · optionalMaximum items: 10.
functions string[] · optionalMaximum items: 30.
industries string[] · optionalMaximum items: 50.
limit integer · optionalMinimum: 1. Maximum: 1000. Default: 100.
locations string[] · optionalMaximum items: 50.
page integer · optionalMinimum: 1. Maximum: 100. Default: 1.
pages integer · optionalMinimum: 1. Maximum: 20. Default: 1.
past_titles string[] · optionalMaximum items: 50.
query string | null · optionalMinimum length: 1. Maximum length: 300.
recently_changed_jobs boolean | null · optionalseniority_levels string[] · optionalMaximum items: 20.
titles string[] · optionalMaximum items: 50.
years_at_company string[] · optionalMaximum items: 10.
Successful Response
count integer · requireditems object[] · requireditems[].about string | null · optionalitems[].certifications object[] · optionalitems[].certifications[].credential_id string | null · optionalitems[].certifications[].credential_url string | null · optionalitems[].certifications[].expires_at string | null · optionalitems[].certifications[].issued_at string | null · optionalitems[].certifications[].issuer string | null · optionalitems[].certifications[].name string | null · optionalitems[].connection_count integer | null · optionalitems[].courses object[] · optionalitems[].courses[].associated_with string | null · optionalitems[].courses[].name string | null · optionalitems[].courses[].number string | null · optionalitems[].current_positions object[] · optionalitems[].current_positions[].company string | null · optionalitems[].current_positions[].company_url string | null · optionalitems[].current_positions[].date_range object | null · optionalitems[].current_positions[].description string | null · optionalitems[].current_positions[].duration string | null · optionalitems[].current_positions[].employment_type string | null · optionalitems[].current_positions[].location string | null · optionalitems[].current_positions[].skills string[] · optionalitems[].current_positions[].title string | null · optionalitems[].current_positions[].workplace_type string | null · optionalitems[].education object[] · optionalitems[].education[].activities string | null · optionalitems[].education[].date_range object | null · optionalitems[].education[].degree string | null · optionalitems[].education[].description string | null · optionalitems[].education[].field_of_study string | null · optionalitems[].education[].school string | null · optionalitems[].education[].school_url string | null · optionalitems[].experience object[] · optionalitems[].experience[].company string | null · optionalitems[].experience[].company_url string | null · optionalitems[].experience[].date_range object | null · optionalitems[].experience[].description string | null · optionalitems[].experience[].duration string | null · optionalitems[].experience[].employment_type string | null · optionalitems[].experience[].location string | null · optionalitems[].experience[].skills string[] · optionalitems[].experience[].title string | null · optionalitems[].experience[].workplace_type string | null · optionalitems[].first_name string | null · optionalitems[].follower_count integer | null · optionalitems[].headline string | null · optionalitems[].honors object[] · optionalitems[].honors[].description string | null · optionalitems[].honors[].issued_at string | null · optionalitems[].honors[].issuer string | null · optionalitems[].honors[].title string | null · optionalitems[].image object | null · optionalitems[].languages object[] · optionalitems[].languages[].name string · requireditems[].languages[].proficiency string | null · optionalitems[].last_name string | null · optionalitems[].location string | null · optionalitems[].name string | null · optionalitems[].profile_url string | null · optionalitems[].projects object[] · optionalitems[].projects[].date_range object | null · optionalitems[].projects[].description string | null · optionalitems[].projects[].name string | null · optionalitems[].projects[].url string | null · optionalitems[].public_id string | null · optionalitems[].publications object[] · optionalitems[].publications[].description string | null · optionalitems[].publications[].published_at string | null · optionalitems[].publications[].publisher string | null · optionalitems[].publications[].title string | null · optionalitems[].publications[].url string | null · optionalitems[].recommendations object[] · optionalitems[].recommendations[].author object | null · optionalitems[].recommendations[].relationship string | null · optionalitems[].recommendations[].text string | null · optionalitems[].skills object[] · optionalitems[].skills[].endorsements integer | null · optionalitems[].skills[].name string · requireditems[].volunteering object[] · optionalitems[].volunteering[].cause string | null · optionalitems[].volunteering[].date_range object | null · optionalitems[].volunteering[].description string | null · optionalitems[].volunteering[].organization string | null · optionalitems[].volunteering[].role string | null · optionalnext_page integer | null · optionalpage integer | null · optionaltotal integer | null · optionalHTTP 400 · Invalid research requestHTTP 401 · Invalid Hive authenticationHTTP 404 · Public profile not foundHTTP 429 · Research rate limitedHTTP 503 · Research unavailableHTTP 504 · Research timed out/scrapers/linkedin/people/searchPeople Search
Retrieve public LinkedIn data using the documented filters and pagination fields.
company_headcounts string[] · optionalMaximum items: 10.
company_locations string[] · optionalMaximum items: 70.
current_companies string[] · optionalMaximum items: 50.
current_titles string[] · optionalMaximum items: 50.
detail_level basic | full · optionalDefault: "basic".
exclude_company_locations string[] · optionalMaximum items: 70.
exclude_current_companies string[] · optionalMaximum items: 50.
exclude_current_titles string[] · optionalMaximum items: 50.
exclude_functions string[] · optionalMaximum items: 30.
exclude_industries string[] · optionalMaximum items: 50.
exclude_locations string[] · optionalMaximum items: 70.
exclude_past_companies string[] · optionalMaximum items: 50.
exclude_past_titles string[] · optionalMaximum items: 50.
exclude_schools string[] · optionalMaximum items: 50.
exclude_seniority_levels string[] · optionalMaximum items: 20.
experience_levels string[] · optionalMaximum items: 10.
first_names string[] · optionalMaximum items: 50.
functions string[] · optionalMaximum items: 30.
industries string[] · optionalMaximum items: 50.
languages string[] · optionalMaximum items: 20.
last_names string[] · optionalMaximum items: 50.
limit integer · optionalMinimum: 1. Maximum: 1000. Default: 100.
locations string[] · optionalMaximum items: 70.
page integer · optionalMinimum: 1. Maximum: 100. Default: 1.
pages integer · optionalMinimum: 1. Maximum: 20. Default: 1.
past_companies string[] · optionalMaximum items: 50.
past_titles string[] · optionalMaximum items: 50.
query string | null · optionalMinimum length: 1. Maximum length: 300.
recently_changed_jobs boolean | null · optionalrecently_posted boolean | null · optionalschools string[] · optionalMaximum items: 50.
seniority_levels string[] · optionalMaximum items: 20.
years_at_company string[] · optionalMaximum items: 10.
Successful Response
count integer · requireditems object[] · requireditems[].about string | null · optionalitems[].certifications object[] · optionalitems[].certifications[].credential_id string | null · optionalitems[].certifications[].credential_url string | null · optionalitems[].certifications[].expires_at string | null · optionalitems[].certifications[].issued_at string | null · optionalitems[].certifications[].issuer string | null · optionalitems[].certifications[].name string | null · optionalitems[].connection_count integer | null · optionalitems[].courses object[] · optionalitems[].courses[].associated_with string | null · optionalitems[].courses[].name string | null · optionalitems[].courses[].number string | null · optionalitems[].current_positions object[] · optionalitems[].current_positions[].company string | null · optionalitems[].current_positions[].company_url string | null · optionalitems[].current_positions[].date_range object | null · optionalitems[].current_positions[].description string | null · optionalitems[].current_positions[].duration string | null · optionalitems[].current_positions[].employment_type string | null · optionalitems[].current_positions[].location string | null · optionalitems[].current_positions[].skills string[] · optionalitems[].current_positions[].title string | null · optionalitems[].current_positions[].workplace_type string | null · optionalitems[].education object[] · optionalitems[].education[].activities string | null · optionalitems[].education[].date_range object | null · optionalitems[].education[].degree string | null · optionalitems[].education[].description string | null · optionalitems[].education[].field_of_study string | null · optionalitems[].education[].school string | null · optionalitems[].education[].school_url string | null · optionalitems[].experience object[] · optionalitems[].experience[].company string | null · optionalitems[].experience[].company_url string | null · optionalitems[].experience[].date_range object | null · optionalitems[].experience[].description string | null · optionalitems[].experience[].duration string | null · optionalitems[].experience[].employment_type string | null · optionalitems[].experience[].location string | null · optionalitems[].experience[].skills string[] · optionalitems[].experience[].title string | null · optionalitems[].experience[].workplace_type string | null · optionalitems[].first_name string | null · optionalitems[].follower_count integer | null · optionalitems[].headline string | null · optionalitems[].honors object[] · optionalitems[].honors[].description string | null · optionalitems[].honors[].issued_at string | null · optionalitems[].honors[].issuer string | null · optionalitems[].honors[].title string | null · optionalitems[].image object | null · optionalitems[].languages object[] · optionalitems[].languages[].name string · requireditems[].languages[].proficiency string | null · optionalitems[].last_name string | null · optionalitems[].location string | null · optionalitems[].name string | null · optionalitems[].profile_url string | null · optionalitems[].projects object[] · optionalitems[].projects[].date_range object | null · optionalitems[].projects[].description string | null · optionalitems[].projects[].name string | null · optionalitems[].projects[].url string | null · optionalitems[].public_id string | null · optionalitems[].publications object[] · optionalitems[].publications[].description string | null · optionalitems[].publications[].published_at string | null · optionalitems[].publications[].publisher string | null · optionalitems[].publications[].title string | null · optionalitems[].publications[].url string | null · optionalitems[].recommendations object[] · optionalitems[].recommendations[].author object | null · optionalitems[].recommendations[].relationship string | null · optionalitems[].recommendations[].text string | null · optionalitems[].skills object[] · optionalitems[].skills[].endorsements integer | null · optionalitems[].skills[].name string · requireditems[].volunteering object[] · optionalitems[].volunteering[].cause string | null · optionalitems[].volunteering[].date_range object | null · optionalitems[].volunteering[].description string | null · optionalitems[].volunteering[].organization string | null · optionalitems[].volunteering[].role string | null · optionalnext_page integer | null · optionalpage integer | null · optionaltotal integer | null · optionalHTTP 400 · Invalid research requestHTTP 401 · Invalid Hive authenticationHTTP 404 · Public profile not foundHTTP 429 · Research rate limitedHTTP 503 · Research unavailableHTTP 504 · Research timed out/scrapers/linkedin/post/commentsPost Comments
Retrieve public LinkedIn data using the documented filters and pagination fields.
freshness hour | day | week | month | three_months | six_months | year | null · optionalinclude_replies boolean · optionalDefault: true.
limit integer · optionalMinimum: 1. Maximum: 1000. Default: 100.
page integer · optionalMinimum: 1. Maximum: 100. Default: 1.
pages integer · optionalMinimum: 1. Maximum: 20. Default: 1.
posts string[] · requiredMinimum items: 1. Maximum items: 20.
replies_limit integer · optionalMinimum: 0. Maximum: 100. Default: 5.
since string | null · optionalFormat: date-time.
Successful Response
count integer · requireditems object[] · requireditems[].author object | null · optionalitems[].comment_id string | null · optionalitems[].comment_url string | null · optionalitems[].created_at string | null · optionalitems[].metrics object | null · optionalitems[].parent_comment_id string | null · optionalitems[].post object | null · optionalitems[].replies object[] · optionalitems[].replies[].author object | null · optionalitems[].replies[].comment_id string | null · optionalitems[].replies[].comment_url string | null · optionalitems[].replies[].created_at string | null · optionalitems[].replies[].metrics object | null · optionalitems[].replies[].parent_comment_id string | null · optionalitems[].replies[].text string | null · optionalitems[].text string | null · optionalnext_page integer | null · optionalpage integer | null · optionaltotal integer | null · optionalHTTP 400 · Invalid research requestHTTP 401 · Invalid Hive authenticationHTTP 404 · Public profile not foundHTTP 429 · Research rate limitedHTTP 503 · Research unavailableHTTP 504 · Research timed out/scrapers/linkedin/post/searchPost Search
Retrieve public LinkedIn data using the documented filters and pagination fields.
author_companies string[] · optionalMaximum items: 10.
author_industries string[] · optionalMaximum items: 20.
author_keywords string | null · optionalMinimum length: 1. Maximum length: 300.
author_profiles string[] · optionalMaximum items: 10.
authors_employers string[] · optionalMaximum items: 20.
comments_freshness hour | day | week | month | three_months | six_months | year | null · optionalcomments_limit integer · optionalMinimum: 0. Maximum: 100. Default: 0.
content_type all | videos | images | jobs | live_videos | documents | collaborative_articles · optionalDefault: "all".
freshness hour | day | week | month | three_months | six_months | year | null · optionallimit integer · optionalMinimum: 1. Maximum: 1000. Default: 100.
mentioned_companies string[] · optionalMaximum items: 10.
mentioned_profiles string[] · optionalMaximum items: 10.
page integer · optionalMinimum: 1. Maximum: 100. Default: 1.
pages integer · optionalMinimum: 1. Maximum: 20. Default: 1.
queries string[] · requiredMinimum items: 1. Maximum items: 20.
reactions_limit integer · optionalMinimum: 0. Maximum: 100. Default: 0.
since string | null · optionalFormat: date-time.
sort relevance | date · optionalDefault: "relevance".
Successful Response
count integer · requireditems object[] · requireditems[].author object | null · optionalitems[].comments object[] · optionalitems[].comments[].author object | null · optionalitems[].comments[].comment_id string | null · optionalitems[].comments[].comment_url string | null · optionalitems[].comments[].created_at string | null · optionalitems[].comments[].metrics object | null · optionalitems[].comments[].parent_comment_id string | null · optionalitems[].comments[].post object | null · optionalitems[].comments[].replies object[] · optionalitems[].comments[].replies[].author object | null · optionalitems[].comments[].replies[].comment_id string | null · optionalitems[].comments[].replies[].comment_url string | null · optionalitems[].comments[].replies[].created_at string | null · optionalitems[].comments[].replies[].metrics object | null · optionalitems[].comments[].replies[].parent_comment_id string | null · optionalitems[].comments[].replies[].text string | null · optionalitems[].comments[].text string | null · optionalitems[].content_type string | null · optionalitems[].media object[] · optionalitems[].media[].description string | null · optionalitems[].media[].image object | null · optionalitems[].media[].kind string | null · optionalitems[].media[].title string | null · optionalitems[].media[].url string | null · optionalitems[].metrics object | null · optionalitems[].post_id string | null · optionalitems[].post_url string | null · optionalitems[].posted_at string | null · optionalitems[].reactions object[] · optionalitems[].reactions[].author object | null · optionalitems[].reactions[].created_at string | null · optionalitems[].reactions[].kind string | null · optionalitems[].reactions[].post object | null · optionalitems[].reactions[].reaction_id string | null · optionalitems[].text string | null · optionalnext_page integer | null · optionalpage integer | null · optionaltotal integer | null · optionalHTTP 400 · Invalid research requestHTTP 401 · Invalid Hive authenticationHTTP 404 · Public profile not foundHTTP 429 · Research rate limitedHTTP 503 · Research unavailableHTTP 504 · Research timed out/scrapers/linkedin/profile/commentsProfile Comments
Retrieve public LinkedIn data using the documented filters and pagination fields.
freshness hour | day | week | month | three_months | six_months | year | null · optionallimit integer · optionalMinimum: 1. Maximum: 1000. Default: 100.
page integer · optionalMinimum: 1. Maximum: 100. Default: 1.
pages integer · optionalMinimum: 1. Maximum: 20. Default: 1.
profiles string[] · requiredMinimum items: 1. Maximum items: 20.
since string | null · optionalFormat: date-time.
Successful Response
count integer · requireditems object[] · requireditems[].author object | null · optionalitems[].comment_id string | null · optionalitems[].comment_url string | null · optionalitems[].created_at string | null · optionalitems[].metrics object | null · optionalitems[].parent_comment_id string | null · optionalitems[].post object | null · optionalitems[].replies object[] · optionalitems[].replies[].author object | null · optionalitems[].replies[].comment_id string | null · optionalitems[].replies[].comment_url string | null · optionalitems[].replies[].created_at string | null · optionalitems[].replies[].metrics object | null · optionalitems[].replies[].parent_comment_id string | null · optionalitems[].replies[].text string | null · optionalitems[].text string | null · optionalnext_page integer | null · optionalpage integer | null · optionaltotal integer | null · optionalHTTP 400 · Invalid research requestHTTP 401 · Invalid Hive authenticationHTTP 404 · Public profile not foundHTTP 429 · Research rate limitedHTTP 503 · Research unavailableHTTP 504 · Research timed out/scrapers/linkedin/profile/detailsProfile Details
Retrieve public LinkedIn data using the documented filters and pagination fields.
detail_level basic | full · optionalDefault: "full".
profiles string[] · requiredMinimum items: 1. Maximum items: 50.
Successful Response
count integer · requireditems object[] · requireditems[].about string | null · optionalitems[].certifications object[] · optionalitems[].certifications[].credential_id string | null · optionalitems[].certifications[].credential_url string | null · optionalitems[].certifications[].expires_at string | null · optionalitems[].certifications[].issued_at string | null · optionalitems[].certifications[].issuer string | null · optionalitems[].certifications[].name string | null · optionalitems[].connection_count integer | null · optionalitems[].courses object[] · optionalitems[].courses[].associated_with string | null · optionalitems[].courses[].name string | null · optionalitems[].courses[].number string | null · optionalitems[].current_positions object[] · optionalitems[].current_positions[].company string | null · optionalitems[].current_positions[].company_url string | null · optionalitems[].current_positions[].date_range object | null · optionalitems[].current_positions[].description string | null · optionalitems[].current_positions[].duration string | null · optionalitems[].current_positions[].employment_type string | null · optionalitems[].current_positions[].location string | null · optionalitems[].current_positions[].skills string[] · optionalitems[].current_positions[].title string | null · optionalitems[].current_positions[].workplace_type string | null · optionalitems[].education object[] · optionalitems[].education[].activities string | null · optionalitems[].education[].date_range object | null · optionalitems[].education[].degree string | null · optionalitems[].education[].description string | null · optionalitems[].education[].field_of_study string | null · optionalitems[].education[].school string | null · optionalitems[].education[].school_url string | null · optionalitems[].experience object[] · optionalitems[].experience[].company string | null · optionalitems[].experience[].company_url string | null · optionalitems[].experience[].date_range object | null · optionalitems[].experience[].description string | null · optionalitems[].experience[].duration string | null · optionalitems[].experience[].employment_type string | null · optionalitems[].experience[].location string | null · optionalitems[].experience[].skills string[] · optionalitems[].experience[].title string | null · optionalitems[].experience[].workplace_type string | null · optionalitems[].first_name string | null · optionalitems[].follower_count integer | null · optionalitems[].headline string | null · optionalitems[].honors object[] · optionalitems[].honors[].description string | null · optionalitems[].honors[].issued_at string | null · optionalitems[].honors[].issuer string | null · optionalitems[].honors[].title string | null · optionalitems[].image object | null · optionalitems[].languages object[] · optionalitems[].languages[].name string · requireditems[].languages[].proficiency string | null · optionalitems[].last_name string | null · optionalitems[].location string | null · optionalitems[].name string | null · optionalitems[].profile_url string | null · optionalitems[].projects object[] · optionalitems[].projects[].date_range object | null · optionalitems[].projects[].description string | null · optionalitems[].projects[].name string | null · optionalitems[].projects[].url string | null · optionalitems[].public_id string | null · optionalitems[].publications object[] · optionalitems[].publications[].description string | null · optionalitems[].publications[].published_at string | null · optionalitems[].publications[].publisher string | null · optionalitems[].publications[].title string | null · optionalitems[].publications[].url string | null · optionalitems[].recommendations object[] · optionalitems[].recommendations[].author object | null · optionalitems[].recommendations[].relationship string | null · optionalitems[].recommendations[].text string | null · optionalitems[].skills object[] · optionalitems[].skills[].endorsements integer | null · optionalitems[].skills[].name string · requireditems[].volunteering object[] · optionalitems[].volunteering[].cause string | null · optionalitems[].volunteering[].date_range object | null · optionalitems[].volunteering[].description string | null · optionalitems[].volunteering[].organization string | null · optionalitems[].volunteering[].role string | null · optionalnext_page integer | null · optionalpage integer | null · optionaltotal integer | null · optionalHTTP 400 · Invalid research requestHTTP 401 · Invalid Hive authenticationHTTP 404 · Public profile not foundHTTP 429 · Research rate limitedHTTP 503 · Research unavailableHTTP 504 · Research timed out/scrapers/linkedin/profile/postsProfile Posts
Retrieve public LinkedIn data using the documented filters and pagination fields.
comments_limit integer · optionalMinimum: 0. Maximum: 100. Default: 0.
freshness hour | day | week | month | three_months | six_months | year | null · optionalinclude_quotes boolean · optionalDefault: true.
include_reposts boolean · optionalDefault: true.
limit integer · optionalMinimum: 1. Maximum: 1000. Default: 100.
page integer · optionalMinimum: 1. Maximum: 100. Default: 1.
pages integer · optionalMinimum: 1. Maximum: 20. Default: 1.
profiles string[] · requiredMinimum items: 1. Maximum items: 20.
reactions_limit integer · optionalMinimum: 0. Maximum: 100. Default: 0.
since string | null · optionalFormat: date-time.
Successful Response
count integer · requireditems object[] · requireditems[].author object | null · optionalitems[].comments object[] · optionalitems[].comments[].author object | null · optionalitems[].comments[].comment_id string | null · optionalitems[].comments[].comment_url string | null · optionalitems[].comments[].created_at string | null · optionalitems[].comments[].metrics object | null · optionalitems[].comments[].parent_comment_id string | null · optionalitems[].comments[].post object | null · optionalitems[].comments[].replies object[] · optionalitems[].comments[].replies[].author object | null · optionalitems[].comments[].replies[].comment_id string | null · optionalitems[].comments[].replies[].comment_url string | null · optionalitems[].comments[].replies[].created_at string | null · optionalitems[].comments[].replies[].metrics object | null · optionalitems[].comments[].replies[].parent_comment_id string | null · optionalitems[].comments[].replies[].text string | null · optionalitems[].comments[].text string | null · optionalitems[].content_type string | null · optionalitems[].media object[] · optionalitems[].media[].description string | null · optionalitems[].media[].image object | null · optionalitems[].media[].kind string | null · optionalitems[].media[].title string | null · optionalitems[].media[].url string | null · optionalitems[].metrics object | null · optionalitems[].post_id string | null · optionalitems[].post_url string | null · optionalitems[].posted_at string | null · optionalitems[].reactions object[] · optionalitems[].reactions[].author object | null · optionalitems[].reactions[].created_at string | null · optionalitems[].reactions[].kind string | null · optionalitems[].reactions[].post object | null · optionalitems[].reactions[].reaction_id string | null · optionalitems[].text string | null · optionalnext_page integer | null · optionalpage integer | null · optionaltotal integer | null · optionalHTTP 400 · Invalid research requestHTTP 401 · Invalid Hive authenticationHTTP 404 · Public profile not foundHTTP 429 · Research rate limitedHTTP 503 · Research unavailableHTTP 504 · Research timed out/scrapers/linkedin/profile/reactionsProfile Reactions
Retrieve public LinkedIn data using the documented filters and pagination fields.
freshness hour | day | week | month | three_months | six_months | year | null · optionallimit integer · optionalMinimum: 1. Maximum: 1000. Default: 100.
page integer · optionalMinimum: 1. Maximum: 100. Default: 1.
pages integer · optionalMinimum: 1. Maximum: 20. Default: 1.
profiles string[] · requiredMinimum items: 1. Maximum items: 20.
since string | null · optionalFormat: date-time.
Successful Response
count integer · requireditems object[] · requireditems[].author object | null · optionalitems[].created_at string | null · optionalitems[].kind string | null · optionalitems[].post object | null · optionalitems[].reaction_id string | null · optionalnext_page integer | null · optionalpage integer | null · optionaltotal integer | null · optionalHTTP 400 · Invalid research requestHTTP 401 · Invalid Hive authenticationHTTP 404 · Public profile not foundHTTP 429 · Research rate limitedHTTP 503 · Research unavailableHTTP 504 · Research timed out/scrapers/reddit/post/commentsComments
Expand accessible nested and collapsed replies while preserving observed parents, paths and deleted placeholders.
Idempotency-Key header · optionalRequired for initial collection; replay and cached pages start no new work.
prefer header · optionalcollection_size integer · optionalFinite total comment bound, including all accessible nested replies and deleted/removed placeholders. Minimum: 1. Maximum: 1000. Default: 100.
limit integer · optionalMinimum: 1. Maximum: 50. Default: 20.
page integer · optionalOne-based cached page. Initial collection requires page 1; later pages require result_id and cannot extend the collected window. Minimum: 1. Maximum: 500. Default: 1.
post_url string · requiredOne explicit public Reddit post permalink. Comment-target, share and redirect URLs are not accepted. Minimum length: 1. Maximum length: 512.
result_id string | null · optionalOwner- and operation-bound immutable collection. Keep the same business request, ordered inputs and limit. Cached pages require no Idempotency-Key and launch no additional work. Pattern: ^rresult_[a-f0-9]{32}$.
sort best | top | new | controversial | old | qa · optionalDefault: "best".
Successful Response
collapsed_replies_requested true · requiredcollected_count integer · requiredMinimum: 0. Maximum: 2000.
collection_complete null · requiredcollection_limit integer · requiredMinimum: 1. Maximum: 2000.
count integer · requiredMinimum: 0. Maximum: 50.
expires_at integer · requiredUnix seconds; the collection expires 24 hours after submission. Polling, replay and cached pages do not renew it.
items object[] · requiredMaximum items: 50.
items[].author object · requireditems[].author.image_url string | null · requireditems[].author.is_deleted boolean | null · requireditems[].author.profile_id string | null · requireditems[].author.profile_url string | null · requireditems[].author.username string | null · requireditems[].captured_sequence integer · requiredMinimum: 0.
items[].children_ids string[] · requiredActual direct children in this collection, using Reddit fullnames. Absence does not imply no further replies exist. Maximum items: 1000.
items[].comment_id string · requireditems[].content_state available | deleted | removed | deleted_or_removed | unknown · requireditems[].depth integer · requiredMinimum: 0. Maximum: 100.
items[].direct_reply_count integer | null · requiredMinimum: 0.
items[].edited_at string | null · requireditems[].full_id string · requireditems[].parent_id string · requireditems[].parent_present_in_collection boolean · requiredWhether this parent is the requested post or appears anywhere in the cached collection, including other pages.
items[].path string[] · requiredMinimum items: 1. Maximum items: 101.
items[].post_id string · requireditems[].post_url string · requireditems[].relation_evidence observed_parent_and_path · requireditems[].score integer | null · requireditems[].subreddit string · requireditems[].text string | null · requireditems[].timestamp string | null · requireditems[].url string · requiredlimit integer · requiredMinimum: 1. Maximum: 50.
max_depth 100 · requiredmissing_ancestor_ids string[] · requiredMaximum items: 100000.
nested_replies_requested true · requirednext_page integer | null · requiredMinimum: 2. Maximum: 500.
page integer · requiredMinimum: 1. Maximum: 500.
partial boolean · requiredCollection-wide flag repeated on every cached page: missing candidate core fields, unresolved post targets, or image retention failures/limits can set it, even when absent from this page.
partial_reasons unavailable_or_invalid_rows | missing_ancestors | empty_unverified | collection_limit | depth_limit | upstream_incomplete | source_unavailable | summary_unavailable[] · requiredpost_id string · requiredpost_url string · requiredrequested_collection_size integer · requiredMinimum: 1. Maximum: 1000.
result_id string · requiredPattern: ^rresult_[a-f0-9]{32}$.
sort best | top | new | controversial | old | qa · requiredthread_status observed | empty | private | not_found | unavailable | unknown · requiredtree_complete boolean | null · requiredAccessible upstream tree completeness, when proven by a source summary; null is unknown. Deleted text and private comments are never recovered.
truncated true | null · requiredTrue when collection omitted results; null means completeness is unknown.
Accepted
created_at integer · requirederror string | null · optionalexpires_at integer · requiredjob_id string · requiredoperation string · requiredpoll_url string · requiredRelative Hive URL. Poll with the same bearer; wait_seconds up to 25 waits for completion. GET returns this envelope (200), with the completed first page under result. Terminal jobs never launch another paid run on replay; eligible saved archive data has an explicit recover endpoint.
result object | null · optionalretry_after_s integer | null · optionalservice string · requiredstatus pending | running | completed | failed | outcome_unknown · requiredHTTP 400 · Invalid research requestHTTP 401 · Invalid Hive authenticationHTTP 404 · Public profile not foundHTTP 409 · Conflicting immutable request or unavailable recoveryHTTP 410 · Research job or result expiredHTTP 429 · Research rate limitedHTTP 503 · Research unavailableHTTP 504 · Research timed out/scrapers/reddit/searchSearch
One finite public keyword search over posts, comments or both, with actual source IDs.
Idempotency-Key header · optionalRequired for initial collection; replay and cached pages start no new work.
prefer header · optionalcollection_size integer · optionalMinimum: 1. Maximum: 200. Default: 50.
content_type posts | comments | both · optionalDefault: "posts".
include_nsfw boolean · optionalDefault: false.
limit integer · optionalMinimum: 1. Maximum: 50. Default: 20.
page integer · optionalOne-based cached page. Initial collection requires page 1; later pages require result_id and cannot extend the collected window. Minimum: 1. Maximum: 500. Default: 1.
query string · requiredOne Reddit query with optional native operators. Returned rows do not guarantee matching or exhaustive recall. Minimum length: 1. Maximum length: 700.
result_id string | null · optionalOwner- and operation-bound immutable collection. Keep the same business request, ordered inputs and limit. Cached pages require no Idempotency-Key and launch no additional work. Pattern: ^rresult_[a-f0-9]{32}$.
sort relevance | new | top | hot | comments · optionalDefault: "relevance".
subreddits string[] · optionalAt most five explicit public communities. Omit for all-Reddit search; related-community discovery is disabled. Maximum items: 5.
time_filter all | hour | day | week | month | year · optionalDefault: "all".
Successful Response
collected_count integer · requiredMinimum: 0. Maximum: 2000.
collection_complete null · requiredcollection_limit integer · requiredMinimum: 1. Maximum: 2000.
content_type posts | comments | both · requiredcount integer · requiredMinimum: 0. Maximum: 50.
expires_at integer · requiredUnix seconds; the collection expires 24 hours after submission. Polling, replay and cached pages do not renew it.
filters_enforced false · requireditems object | object[] · requiredMaximum items: 50.
items[].author object · requireditems[].author.image_url string | null · requireditems[].author.is_deleted boolean | null · requireditems[].author.profile_id string | null · requireditems[].author.profile_url string | null · requireditems[].author.username string | null · requireditems[].comments_count integer | null · requiredMinimum: 0.
items[].content_state available | deleted | removed | deleted_or_removed | unknown · requireditems[].full_id string · requireditems[].is_nsfw boolean | null · requireditems[].kind post · requireditems[].outbound_url string | null · requireditems[].post_id string · requireditems[].query string · requireditems[].relation_evidence search_result_permalink · requireditems[].score integer | null · requireditems[].subreddit string · requireditems[].text string | null · requireditems[].timestamp string | null · requireditems[].title string · requireditems[].url string · requireditems[].author object · requireditems[].author.image_url string | null · requireditems[].author.is_deleted boolean | null · requireditems[].author.profile_id string | null · requireditems[].author.profile_url string | null · requireditems[].author.username string | null · requireditems[].comment_id string · requireditems[].content_state available | deleted | removed | deleted_or_removed | unknown · requireditems[].full_id string · requireditems[].kind comment · requireditems[].parent_evidence post_context | parent_id | unknown · requireditems[].parent_id string | null · requireditems[].post_id string · requireditems[].post_title string | null · requireditems[].query string · requireditems[].relation_evidence search_result_permalink · requireditems[].score integer | null · requireditems[].subreddit string · requireditems[].text string | null · requireditems[].timestamp string | null · requireditems[].url string · requiredlimit integer · requiredMinimum: 1. Maximum: 50.
next_page integer | null · requiredMinimum: 2. Maximum: 500.
page integer · requiredMinimum: 1. Maximum: 500.
partial boolean · requiredCollection-wide flag repeated on every cached page: missing candidate core fields, unresolved post targets, or image retention failures/limits can set it, even when absent from this page.
partial_reasons unavailable_or_invalid_rows[] · requiredquery string · requiredquery_handling upstream_hint · requiredrequested_collection_size integer · requiredMinimum: 1. Maximum: 200.
result_id string · requiredPattern: ^rresult_[a-f0-9]{32}$.
sort relevance | new | top | hot | comments · requiredsubreddits string[] · requiredtime_filter all | hour | day | week | month | year · requiredtruncated true | null · requiredTrue when collection omitted results; null means completeness is unknown.
Accepted
created_at integer · requirederror string | null · optionalexpires_at integer · requiredjob_id string · requiredoperation string · requiredpoll_url string · requiredRelative Hive URL. Poll with the same bearer; wait_seconds up to 25 waits for completion. GET returns this envelope (200), with the completed first page under result. Terminal jobs never launch another paid run on replay; eligible saved archive data has an explicit recover endpoint.
result object | null · optionalretry_after_s integer | null · optionalservice string · requiredstatus pending | running | completed | failed | outcome_unknown · requiredHTTP 400 · Invalid research requestHTTP 401 · Invalid Hive authenticationHTTP 404 · Public profile not foundHTTP 409 · Conflicting immutable request or unavailable recoveryHTTP 410 · Research job or result expiredHTTP 429 · Research rate limitedHTTP 503 · Research unavailableHTTP 504 · Research timed out/scrapers/sherlock/searchSherlock Search
Discover public username candidates with Sherlock. Matching handles do not establish identity; completeness may be unknown.
Discover candidate accounts for one to five public usernames.
limit integer · optionalMaximum candidates per distinct username. Minimum: 1. Maximum: 100. Default: 20.
usernames string[] · requiredMinimum items: 1. Maximum items: 5.
Successful Response
count integer · requiredMinimum: 0. Maximum: 500.
items object[] · requiredMaximum items: 500.
items[].profile_url string · requireditems[].site string · requireditems[].status candidate · requireditems[].username string · requiredtruncated true | null · requiredTrue when a work or result limit omitted results; null means completeness is unknown. Candidate matches do not establish identity.
HTTP 400 · Invalid research requestHTTP 401 · Invalid Hive authenticationHTTP 404 · Public profile not foundHTTP 429 · Research rate limitedHTTP 503 · Research unavailableHTTP 504 · Research timed out/scrapers/telegram/group/detailsGroup Details
Read observed public discussion-group metadata; channels and bots do not become groups.
Idempotency-Key header · optionalRequired for initial collection; replay, polling and cached pages start no additional work.
prefer header · optionalcollection_size integer · optionalMinimum: 1. Maximum: 1. Default: 1.
group_url string · requiredOne public group handle, @username or https://t.me/username URL. Invite links, private chats and message links are rejected. Minimum length: 1. Maximum length: 256.
limit integer · optionalMinimum: 1. Maximum: 50. Default: 20.
page integer · optionalOne-based cached page. Initial collection requires page 1; later pages require result_id and cannot extend the collected window. Minimum: 1. Maximum: 500. Default: 1.
result_id string | null · optionalOwner- and operation-bound immutable collection. Keep the same business request, ordered inputs and limit. Cached pages require no Idempotency-Key and launch no additional work. Pattern: ^rresult_[a-f0-9]{32}$.
Successful Response
collected_count integer · requiredMinimum: 0. Maximum: 2000.
collection_complete null · requiredcollection_limit integer · requiredMinimum: 1. Maximum: 2000.
count integer · requiredMinimum: 0. Maximum: 50.
expires_at integer · requiredUnix seconds; the collection expires 24 hours after submission. Polling, replay and cached pages do not renew it.
group_url string · requireditems object[] · requiredMaximum items: 50.
items[].description string | null · requireditems[].group_url string · requireditems[].image_url string | null · requireditems[].is_verified boolean | null · requireditems[].members_count integer | null · requiredMinimum: 0.
items[].observed_at string | null · requireditems[].online_count integer | null · requiredMinimum: 0.
items[].title string · requireditems[].username string · requiredlimit integer · requiredMinimum: 1. Maximum: 50.
next_page integer | null · requiredMinimum: 2. Maximum: 500.
page integer · requiredMinimum: 1. Maximum: 500.
partial boolean · requiredCollection-wide flag repeated on every cached page: missing candidate core fields, unresolved post targets, or image retention failures/limits can set it, even when absent from this page.
partial_reasons unavailable_or_invalid_rows[] · requiredrequested_collection_size integer · requiredMinimum: 1. Maximum: 200.
result_id string · requiredPattern: ^rresult_[a-f0-9]{32}$.
truncated true | null · requiredTrue when collection omitted results; null means completeness is unknown.
Accepted
created_at integer · requirederror string | null · optionalexpires_at integer · requiredjob_id string · requiredoperation string · requiredpoll_url string · requiredRelative Hive URL. Poll with the same bearer; wait_seconds up to 25 waits for completion. GET returns this envelope (200), with the completed first page under result. Terminal jobs never launch another paid run on replay; eligible saved archive data has an explicit recover endpoint.
result object | null · optionalretry_after_s integer | null · optionalservice string · requiredstatus pending | running | completed | failed | outcome_unknown · requiredHTTP 400 · Invalid research requestHTTP 401 · Invalid Hive authenticationHTTP 404 · Public profile not foundHTTP 409 · Conflicting immutable request or unavailable recoveryHTTP 410 · Research job or result expiredHTTP 429 · Research rate limitedHTTP 503 · Research unavailableHTTP 504 · Research timed out/scrapers/telegram/group/messagesGroup Messages
Collect up to 200 accessible group messages with sender, timestamp, reply links and media references.
Idempotency-Key header · optionalRequired for initial collection; replay, polling and cached pages start no additional work.
prefer header · optionalcollection_size integer · optionalMinimum: 1. Maximum: 200. Default: 50.
group_url string · requiredOne public discussion group. Broadcast channels are not accepted as group message data. Minimum length: 1. Maximum length: 256.
keyword string | null · optionalOptional upstream keyword hint in the selected group. Whole-word matching, * endings and + clauses depend on the source. Minimum length: 1. Maximum length: 200.
limit integer · optionalMinimum: 1. Maximum: 50. Default: 20.
page integer · optionalOne-based cached page. Initial collection requires page 1; later pages require result_id and cannot extend the collected window. Minimum: 1. Maximum: 500. Default: 1.
result_id string | null · optionalOwner- and operation-bound immutable collection. Keep the same business request, ordered inputs and limit. Cached pages require no Idempotency-Key and launch no additional work. Pattern: ^rresult_[a-f0-9]{32}$.
since string | null · optionalInclusive timezone-aware timestamp hint. Results remain a bounded snapshot, not full history. Maximum length: 40.
until string | null · optionalExclusive timezone-aware timestamp hint, after since when both are present. Maximum length: 40.
Successful Response
collected_count integer · requiredMinimum: 0. Maximum: 2000.
collection_complete null · requiredcollection_limit integer · requiredMinimum: 1. Maximum: 2000.
count integer · requiredMinimum: 0. Maximum: 50.
expires_at integer · requiredUnix seconds; the collection expires 24 hours after submission. Polling, replay and cached pages do not renew it.
filters_enforced false · requiredgroup_url string · requiredhistory_complete null · requiredhistory_scope public_accessible_snapshot · requireditems object[] · requiredMaximum items: 50.
items[].edited boolean | null · requireditems[].group_url string · requireditems[].media object[] · requiredMaximum items: 100.
items[].media[].kind photo | video | document | sticker | voice | audio | animation | unknown · requireditems[].media[].url string | null · requiredPublic source reference, which may expire; no media bytes are retained by this operation.
items[].message_id string · requireditems[].relation_evidence observed_group_message · requireditems[].reply_to_message_id string | null · requireditems[].reply_to_url string | null · requireditems[].sender object · requireditems[].sender.name string | null · requireditems[].sender.profile_url string | null · requireditems[].sender.username string | null · requireditems[].text string | null · requireditems[].timestamp string · requireditems[].url string · requiredkeyword string | null · requiredlimit integer · requiredMinimum: 1. Maximum: 50.
next_page integer | null · requiredMinimum: 2. Maximum: 500.
page integer · requiredMinimum: 1. Maximum: 500.
partial boolean · requiredCollection-wide flag repeated on every cached page: missing candidate core fields, unresolved post targets, or image retention failures/limits can set it, even when absent from this page.
partial_reasons unavailable_or_invalid_rows[] · requiredrequested_collection_size integer · requiredMinimum: 1. Maximum: 200.
result_id string · requiredPattern: ^rresult_[a-f0-9]{32}$.
since string | null · requiredtruncated true | null · requiredTrue when collection omitted results; null means completeness is unknown.
until string | null · requiredAccepted
created_at integer · requirederror string | null · optionalexpires_at integer · requiredjob_id string · requiredoperation string · requiredpoll_url string · requiredRelative Hive URL. Poll with the same bearer; wait_seconds up to 25 waits for completion. GET returns this envelope (200), with the completed first page under result. Terminal jobs never launch another paid run on replay; eligible saved archive data has an explicit recover endpoint.
result object | null · optionalretry_after_s integer | null · optionalservice string · requiredstatus pending | running | completed | failed | outcome_unknown · requiredHTTP 400 · Invalid research requestHTTP 401 · Invalid Hive authenticationHTTP 404 · Public profile not foundHTTP 409 · Conflicting immutable request or unavailable recoveryHTTP 410 · Research job or result expiredHTTP 429 · Research rate limitedHTTP 503 · Research unavailableHTTP 504 · Research timed out/scrapers/telegram/groups/searchGroup Search
Discover public group candidates by topic or name; no member list or group content is collected.
Idempotency-Key header · optionalRequired for initial collection; replay, polling and cached pages start no additional work.
prefer header · optionalcollection_size integer · optionalMinimum: 1. Maximum: 200. Default: 50.
language string | null · optionalOptional two-letter language hint passed to the public index. Pattern: ^[a-z]{2}$.
limit integer · optionalMinimum: 1. Maximum: 50. Default: 20.
page integer · optionalOne-based cached page. Initial collection requires page 1; later pages require result_id and cannot extend the collected window. Minimum: 1. Maximum: 500. Default: 1.
query string · requiredOne topic or group-name query over a public Telegram index. Results are group candidates, not exhaustive discovery. Minimum length: 1. Maximum length: 200.
result_id string | null · optionalOwner- and operation-bound immutable collection. Keep the same business request, ordered inputs and limit. Cached pages require no Idempotency-Key and launch no additional work. Pattern: ^rresult_[a-f0-9]{32}$.
Successful Response
collected_count integer · requiredMinimum: 0. Maximum: 2000.
collection_complete null · requiredcollection_limit integer · requiredMinimum: 1. Maximum: 2000.
content_retrieved false · requiredcount integer · requiredMinimum: 0. Maximum: 50.
expires_at integer · requiredUnix seconds; the collection expires 24 hours after submission. Polling, replay and cached pages do not renew it.
filters_enforced false · requireditems object[] · requiredMaximum items: 50.
items[].description string | null · requireditems[].group_url string · requireditems[].language string | null · requireditems[].matched_all_words boolean | null · requireditems[].observed_at string | null · requireditems[].query string · requireditems[].rank integer · requiredMinimum: 1.
items[].relation_evidence public_group_index · requireditems[].title string · requireditems[].username string · requiredlanguage string | null · requiredlimit integer · requiredMinimum: 1. Maximum: 50.
next_page integer | null · requiredMinimum: 2. Maximum: 500.
page integer · requiredMinimum: 1. Maximum: 500.
partial boolean · requiredCollection-wide flag repeated on every cached page: missing candidate core fields, unresolved post targets, or image retention failures/limits can set it, even when absent from this page.
partial_reasons unavailable_or_invalid_rows[] · requiredquery string · requiredquery_handling upstream_hint · requiredrequested_collection_size integer · requiredMinimum: 1. Maximum: 200.
result_id string · requiredPattern: ^rresult_[a-f0-9]{32}$.
search_source public_web_index · requiredtruncated true | null · requiredTrue when collection omitted results; null means completeness is unknown.
Accepted
created_at integer · requirederror string | null · optionalexpires_at integer · requiredjob_id string · requiredoperation string · requiredpoll_url string · requiredRelative Hive URL. Poll with the same bearer; wait_seconds up to 25 waits for completion. GET returns this envelope (200), with the completed first page under result. Terminal jobs never launch another paid run on replay; eligible saved archive data has an explicit recover endpoint.
result object | null · optionalretry_after_s integer | null · optionalservice string · requiredstatus pending | running | completed | failed | outcome_unknown · requiredHTTP 400 · Invalid research requestHTTP 401 · Invalid Hive authenticationHTTP 404 · Public profile not foundHTTP 409 · Conflicting immutable request or unavailable recoveryHTTP 410 · Research job or result expiredHTTP 429 · Research rate limitedHTTP 503 · Research unavailableHTTP 504 · Research timed out/scrapers/tiktok/people/searchTiktok People Search
Collect at most 50 native user candidates with available profile fields. Location texts are appended in caller order as query hints, never enforced city filters. Prefer: respond-async returns promptly; default wait is at most 20 seconds. Cached pages/replays launch no new work.
Idempotency-Key header · optionalRequired for initial collection; cached result_id pages need no key.
prefer header · optionallimit integer · optionalMinimum: 1. Maximum: 50. Default: 20.
locations string[] · optionalUp to five location hints of 1–100 characters, appended in caller order to one native query. Ambiguous names remain text; no city resolution or AND/OR geographic filters are enforced. Maximum items: 5.
page integer · optionalOne-based cached page. Initial collection requires page 1; later pages require result_id and cannot extend the collected window. Minimum: 1. Maximum: 500. Default: 1.
query string · requiredFree-text name, optionally with employer/city. Echoed exactly; matching does not verify identity or enforce filters. Minimum length: 1. Maximum length: 200.
result_id string | null · optionalOwner- and operation-bound immutable collection. Keep the same business request, ordered inputs and limit. Cached pages require no Idempotency-Key and launch no additional work. Pattern: ^rresult_[a-f0-9]{32}$.
Successful Response
collected_count integer · requiredMinimum: 0. Maximum: 2000.
collection_limit integer · requiredMinimum: 1. Maximum: 2000.
count integer · requiredMinimum: 0. Maximum: 50.
effective_query string · requiredText sent to native account search, including location hints. Instagram commas become spaces to keep one query.
expires_at integer · requiredUnix seconds; the collection expires 24 hours after submission. Polling, replay and cached pages do not renew it.
filters_enforced false · requiredCity and employer restrictions are not enforced. Returned accounts are candidates, never verified identities.
items object[] · requiredMaximum items: 50.
items[].biography string | null · optionalitems[].created_at string | null · optionalitems[].display_name string | null · optionalitems[].followers_count integer | null · optionalMinimum: 0.
items[].following_count integer | null · optionalMinimum: 0.
items[].friends_count integer | null · optionalMinimum: 0.
items[].image_url string | null · optionalitems[].is_organization boolean | null · optionalitems[].is_private boolean | null · optionalitems[].is_seller boolean | null · optionalitems[].is_verified boolean | null · optionalitems[].language string | null · optionalitems[].likes_count integer | null · optionalMinimum: 0.
items[].missing_fields display_name | biography | image_url[] · requiredUnavailable core profile fields. No inferred or purchased enrichment. Maximum items: 3.
items[].posts_count integer | null · optionalMinimum: 0.
items[].profile_id string | null · optionalitems[].profile_url string · requireditems[].public_links object[] | null · optionalitems[].query string · requireditems[].rank integer · requiredAbsolute one-based position after canonical account deduplication, preserving native order. Minimum: 1. Maximum: 50.
items[].status candidate · requireditems[].username string · requireditems[].website_url string | null · optionallimit integer · requiredMinimum: 1. Maximum: 50.
location_handling not_requested | query_hint · requiredlocations string[] · requirednext_page integer | null · requiredMinimum: 2. Maximum: 500.
page integer · requiredMinimum: 1. Maximum: 500.
partial boolean · requiredCollection-wide flag repeated on every cached page: missing candidate core fields, unresolved post targets, or image retention failures/limits can set it, even when absent from this page.
query string · requiredresult_id string · requiredPattern: ^rresult_[a-f0-9]{32}$.
truncated true | null · requiredTrue when collection omitted results; null means completeness is unknown.
Durable native user search; poll the owner-scoped URL.
created_at integer · requirederror string | null · optionalexpires_at integer · requiredjob_id string · requiredoperation string · requiredpoll_url string · requiredRelative Hive URL. Poll with the same bearer; wait_seconds up to 25 waits for completion. GET returns this envelope (200), with the completed first page under result. Terminal jobs never launch another paid run on replay; eligible saved archive data has an explicit recover endpoint.
result object | null · optionalretry_after_s integer | null · optionalservice string · requiredstatus pending | running | completed | failed | outcome_unknown · requiredHTTP 400 · Invalid research requestHTTP 401 · Invalid Hive authenticationHTTP 404 · Public profile not foundHTTP 409 · Conflicting immutable request or unavailable recoveryHTTP 410 · Research job or result expiredHTTP 429 · Research rate limitedHTTP 503 · Research unavailableHTTP 504 · Research timed out/scrapers/tiktok/profile/detailsTiktok Profile Details
Retrieve public TikTok profile details for up to ten usernames or profile URLs.
One to ten TikTok usernames or canonical public @username URLs.
profiles string[] · requiredMinimum items: 1. Maximum items: 10.
Successful Response
count integer · requiredMinimum: 0. Maximum: 10.
items object[] · requiredMaximum items: 10.
items[].biography string | null · optionalitems[].created_at string | null · optionalitems[].display_name string | null · optionalitems[].followers_count integer | null · optionalMinimum: 0.
items[].following_count integer | null · optionalMinimum: 0.
items[].friends_count integer | null · optionalMinimum: 0.
items[].image_url string | null · optionalitems[].input_index integer · requiredMinimum: 0. Maximum: 9.
items[].is_organization boolean | null · optionalitems[].is_private boolean | null · optionalitems[].is_seller boolean | null · optionalitems[].is_verified boolean | null · optionalitems[].language string | null · optionalitems[].likes_count integer | null · optionalMinimum: 0.
items[].posts_count integer | null · optionalMinimum: 0.
items[].profile_id string | null · optionalitems[].profile_url string · requireditems[].public_links object[] | null · optionalitems[].target string · requireditems[].username string · requireditems[].website_url string | null · optionalunresolved object[] · requiredMaximum items: 10.
unresolved[].input_index integer · requiredMinimum: 0. Maximum: 9.
unresolved[].reason not_found | private | unavailable | malformed_data | ambiguous · requiredunresolved[].target string · requiredHTTP 400 · Invalid research requestHTTP 401 · Invalid Hive authenticationHTTP 404 · Public profile not foundHTTP 429 · Research rate limitedHTTP 503 · Research unavailableHTTP 504 · Research timed out/scrapers/tiktok/profile/postsTiktok Profile Posts
Return public videos and ordered slideshow images, with separate cover thumbnails and source authors. Prefer: respond-async submits promptly.
Idempotency-Key header · optionalRequired for initial collection; cached result_id pages need no key.
prefer header · optionalCollect recent videos or a dated window of public videos and slideshows.
archive boolean · optionalCollect one dated profile window. Follow next_archive_end_date with a new Idempotency-Key to continue backward. Default: false.
archive_end_date string | null · optionalInclusive UTC end date; required with archive=true. Pattern: ^\d{4}-\d{2}-\d{2}$.
archive_window_days integer · optionalInclusive days in the archive window. Narrow a window that reaches the collection cap. Minimum: 1. Maximum: 30. Default: 30.
limit integer · optionalMinimum: 1. Maximum: 50. Default: 20.
page integer · optionalOne-based cached page. Initial collection requires page 1; later pages require result_id and cannot extend the collected window. Minimum: 1. Maximum: 500. Default: 1.
per_target_limit integer · optionalMaximum videos per profile: 50 by default or up to 1,000 in one dated archive window. Archive mode defaults to 1,000 if omitted. Minimum: 1. Maximum: 1000. Default: 50.
profiles string[] · requiredMinimum items: 1. Maximum items: 10.
result_id string | null · optionalOwner- and operation-bound immutable collection. Keep the same business request, ordered inputs and limit. Cached pages require no Idempotency-Key and launch no additional work. Pattern: ^rresult_[a-f0-9]{32}$.
retain_media boolean · optionalPreserve photos/video thumbnails. Recent jobs allow 20 unique images and 32 MiB over 30 seconds; archive jobs allow 100 images and 96 MiB over 120 seconds. Each image is capped at 10 MiB and 40 million pixels. Shared bearer/global quotas still apply. No video download; assets expire after 24 hours. Cached pages/replay never download again. Default: false.
Successful Response
archive_end_date string | null · optionalPattern: ^\d{4}-\d{2}-\d{2}$.
archive_start_date string | null · optionalPattern: ^\d{4}-\d{2}-\d{2}$.
collected_count integer · requiredMinimum: 0. Maximum: 2000.
collection_limit integer · requiredMinimum: 1. Maximum: 2000.
count integer · requiredMinimum: 0. Maximum: 50.
expires_at integer · requiredUnix seconds; the collection expires 24 hours after submission. Polling, replay and cached pages do not renew it.
history_complete null · requiredFull platform history is unknown. Pages cover only the cached collection.
history_scope collected_window | recent_public_timeline | archive_date_window | archive_cursor_window · optionalDate windows continue through next_archive_end_date; cursor windows continue through next_archive_cursor. Page numbers only traverse the cached result. Default: "collected_window".
items object[] · requiredMaximum items: 50.
items[].author object · requireditems[].author.display_name string | null · optionalitems[].author.image_url string | null · optionalitems[].author.profile_id string | null · optionalitems[].author.profile_url string · requireditems[].author.username string | null · optionalitems[].comments_count integer | null · optionalMinimum: 0.
items[].context object[] · requiredMaximum items: 2.
items[].context[].author object · requireditems[].context[].author.display_name string | null · optionalitems[].context[].author.image_url string | null · optionalitems[].context[].author.profile_id string | null · optionalitems[].context[].author.profile_url string · requireditems[].context[].author.username string | null · optionalitems[].context[].comments_count integer | null · optionalMinimum: 0.
items[].context[].geotag object | null · requireditems[].context[].kind repost | quote · requireditems[].context[].likes_count integer | null · optionalMinimum: 0.
items[].context[].media object[] · requiredMaximum items: 500.
items[].context[].media[].asset object | null · optionalitems[].context[].media[].bitrate integer | null · optionalMinimum: 0.
items[].context[].media[].group_index integer · requiredZero-based position in the source carousel or album; variants share a group. Minimum: 0. Maximum: 499.
items[].context[].media[].mime_type string | null · optionalitems[].context[].media[].retention_reason not_requested | video_not_retained | count_limit | job_byte_limit | destination_rejected | source_unavailable | unsupported_format | invalid_image | too_large | quota_exceeded | timeout | download_failed | storage_unavailable | null · optionalDefault: "not_requested".
items[].context[].media[].retention_status retained | skipped | failed · optionalDefault: "skipped".
items[].context[].media[].role original | thumbnail · requireditems[].context[].media[].type image | video · requireditems[].context[].media[].url string · requiredOriginal public source reference; may expire. Separate from the authenticated retained asset URL.
items[].context[].media_complete boolean | null · optionalFalse when the provider reports media missing from this post; null when completeness cannot be established.
items[].context[].media_count_reported integer | null · optionalMedia count reported by the source provider, when available. Minimum: 0.
items[].context[].mentions object[] | null · requiredCaption/text mentions, separate from actual tags. Maximum items: 100.
items[].context[].post_id string · requireditems[].context[].quotes_count integer | null · optionalMinimum: 0.
items[].context[].reposts_count integer | null · optionalMinimum: 0.
items[].context[].tagged_users object[] | null · requiredActual source tags; null means unavailable. Maximum items: 100.
items[].context[].text string | null · requireditems[].context[].timestamp string | null · requiredUTC ISO 8601 time; null means unavailable, never inferred epoch zero.
items[].context[].url string · requireditems[].context[].views_count integer | null · optionalMinimum: 0.
items[].geotag object | null · requireditems[].input_index integer · requiredMinimum: 0. Maximum: 9.
items[].is_pinned boolean | null · optionalitems[].is_quote boolean | null · optionalitems[].is_repost boolean | null · optionalitems[].likes_count integer | null · optionalMinimum: 0.
items[].media object[] · requiredMaximum items: 500.
items[].media[].asset object | null · optionalitems[].media[].bitrate integer | null · optionalMinimum: 0.
items[].media[].group_index integer · requiredZero-based position in the source carousel or album; variants share a group. Minimum: 0. Maximum: 499.
items[].media[].mime_type string | null · optionalitems[].media[].retention_reason not_requested | video_not_retained | count_limit | job_byte_limit | destination_rejected | source_unavailable | unsupported_format | invalid_image | too_large | quota_exceeded | timeout | download_failed | storage_unavailable | null · optionalDefault: "not_requested".
items[].media[].retention_status retained | skipped | failed · optionalDefault: "skipped".
items[].media[].role original | thumbnail · requireditems[].media[].type image | video · requireditems[].media[].url string · requiredOriginal public source reference; may expire. Separate from the authenticated retained asset URL.
items[].media_complete boolean | null · optionalFalse when the provider reports media missing from this post; null when completeness cannot be established.
items[].media_count_reported integer | null · optionalMedia count reported by the source provider, when available. Minimum: 0.
items[].mentions object[] | null · requiredCaption/text mentions, separate from actual tags. Maximum items: 100.
items[].post_id string · requireditems[].quotes_count integer | null · optionalMinimum: 0.
items[].reposts_count integer | null · optionalMinimum: 0.
items[].tagged_users object[] | null · requiredActual source tags; null means unavailable. Maximum items: 100.
items[].target string · requireditems[].text string | null · requireditems[].timestamp string | null · requiredUTC ISO 8601 time; null means unavailable, never inferred epoch zero.
items[].url string · requireditems[].views_count integer | null · optionalMinimum: 0.
limit integer · requiredMinimum: 1. Maximum: 50.
next_archive_cursor string | null · optionalSubmit as archive_cursor in a new Instagram or Facebook personal archive job with the same profile and window settings after consuming cached pages. Null when the provider reached the visible end or could not safely continue. Maximum length: 262144.
next_archive_end_date string | null · optionalSubmit a new archive job ending on this date after consuming all cached pages. Null when the date range is exhausted or the current window hit its collection cap; narrow a capped window before continuing. Pattern: ^\d{4}-\d{2}-\d{2}$.
next_page integer | null · requiredMinimum: 2. Maximum: 500.
page integer · requiredMinimum: 1. Maximum: 500.
partial boolean · requiredCollection-wide flag repeated on every cached page: missing candidate core fields, unresolved post targets, or image retention failures/limits can set it, even when absent from this page.
per_target_limit integer · requiredMinimum: 1. Maximum: 1000.
result_id string · requiredPattern: ^rresult_[a-f0-9]{32}$.
targets object[] · requiredMaximum items: 10.
targets[].collected_count integer · requiredMinimum: 0. Maximum: 1000.
targets[].input_index integer · requiredMinimum: 0. Maximum: 9.
targets[].reason not_found | private | unavailable | malformed_data | ambiguous | null · requiredtargets[].status resolved | unresolved · requiredtargets[].target string · requiredtruncated true | null · requiredTrue when collection omitted results; null means completeness is unknown.
unresolved object[] · requiredMaximum items: 10.
unresolved[].input_index integer · requiredMinimum: 0. Maximum: 9.
unresolved[].reason not_found | private | unavailable | malformed_data | ambiguous · requiredunresolved[].target string · requiredDurable job; poll the returned owner-scoped URL.
created_at integer · requirederror string | null · optionalexpires_at integer · requiredjob_id string · requiredoperation string · requiredpoll_url string · requiredRelative Hive URL. Poll with the same bearer; wait_seconds up to 25 waits for completion. GET returns this envelope (200), with the completed first page under result. Terminal jobs never launch another paid run on replay; eligible saved archive data has an explicit recover endpoint.
result object | null · optionalretry_after_s integer | null · optionalservice string · requiredstatus pending | running | completed | failed | outcome_unknown · requiredHTTP 400 · Invalid research requestHTTP 401 · Invalid Hive authenticationHTTP 404 · Public profile not foundHTTP 409 · Conflicting immutable request or unavailable recoveryHTTP 410 · Research job or result expiredHTTP 429 · Research rate limitedHTTP 503 · Research unavailableHTTP 504 · Research timed out/scrapers/x/people/searchX People Search
Collect at most 50 native account candidates with available profile fields. Locations are query hints, not filters. Prefer: respond-async returns promptly; default wait is at most 20 seconds. Cached pages/replays launch no new work.
Idempotency-Key header · optionalRequired for initial collection; cached result_id pages need no key.
prefer header · optionallimit integer · optionalMinimum: 1. Maximum: 50. Default: 20.
locations string[] · optionalUp to five location hints of 1–100 characters, appended in caller order to one native query. Ambiguous names remain text; no city resolution or AND/OR geographic filters are enforced. Maximum items: 5.
page integer · optionalOne-based cached page. Initial collection requires page 1; later pages require result_id and cannot extend the collected window. Minimum: 1. Maximum: 500. Default: 1.
query string · requiredFree-text name, optionally with employer/city. Echoed exactly; matching does not verify identity or enforce filters. Minimum length: 1. Maximum length: 200.
result_id string | null · optionalOwner- and operation-bound immutable collection. Keep the same business request, ordered inputs and limit. Cached pages require no Idempotency-Key and launch no additional work. Pattern: ^rresult_[a-f0-9]{32}$.
Successful Response
collected_count integer · requiredMinimum: 0. Maximum: 2000.
collection_limit integer · requiredMinimum: 1. Maximum: 2000.
count integer · requiredMinimum: 0. Maximum: 50.
effective_query string · requiredText sent to native account search, including location hints. Instagram commas become spaces to keep one query.
expires_at integer · requiredUnix seconds; the collection expires 24 hours after submission. Polling, replay and cached pages do not renew it.
filters_enforced false · requiredCity and employer restrictions are not enforced. Returned accounts are candidates, never verified identities.
items object[] · requiredMaximum items: 50.
items[].biography string | null · optionalitems[].cover_image_url string | null · optionalitems[].created_at string | null · optionalAccount creation timestamp in ISO 8601 UTC.
items[].display_name string | null · optionalitems[].followers_count integer | null · optionalMinimum: 0.
items[].following_count integer | null · optionalMinimum: 0.
items[].image_url string | null · optionalitems[].is_blue_verified boolean | null · optionalitems[].is_private boolean | null · optionalitems[].is_verified boolean | null · optionalVerification observation; absent or null when the source supplies only an ambiguous untyped flag.
items[].likes_count integer | null · optionalMinimum: 0.
items[].listed_count integer | null · optionalMinimum: 0.
items[].location string | null · optionalitems[].media_count integer | null · optionalMinimum: 0.
items[].missing_fields display_name | biography | image_url[] · requiredUnavailable core profile fields. No inferred or purchased enrichment. Maximum items: 3.
items[].posts_count integer | null · optionalMinimum: 0.
items[].profile_id string | null · optionalitems[].profile_url string · requireditems[].public_links object[] | null · optionalitems[].query string · requireditems[].rank integer · requiredAbsolute one-based position after canonical account deduplication, preserving native order. Minimum: 1. Maximum: 50.
items[].status candidate · requireditems[].username string · requireditems[].verification_type string | null · optionalitems[].website_url string | null · optionallimit integer · requiredMinimum: 1. Maximum: 50.
location_handling not_requested | query_hint · requiredlocations string[] · requirednext_page integer | null · requiredMinimum: 2. Maximum: 500.
page integer · requiredMinimum: 1. Maximum: 500.
partial boolean · requiredCollection-wide flag repeated on every cached page: missing candidate core fields, unresolved post targets, or image retention failures/limits can set it, even when absent from this page.
query string · requiredresult_id string · requiredPattern: ^rresult_[a-f0-9]{32}$.
truncated true | null · requiredTrue when collection omitted results; null means completeness is unknown.
Durable native account search; poll the owner-scoped URL.
created_at integer · requirederror string | null · optionalexpires_at integer · requiredjob_id string · requiredoperation string · requiredpoll_url string · requiredRelative Hive URL. Poll with the same bearer; wait_seconds up to 25 waits for completion. GET returns this envelope (200), with the completed first page under result. Terminal jobs never launch another paid run on replay; eligible saved archive data has an explicit recover endpoint.
result object | null · optionalretry_after_s integer | null · optionalservice string · requiredstatus pending | running | completed | failed | outcome_unknown · requiredHTTP 400 · Invalid research requestHTTP 401 · Invalid Hive authenticationHTTP 404 · Public profile not foundHTTP 409 · Conflicting immutable request or unavailable recoveryHTTP 410 · Research job or result expiredHTTP 429 · Research rate limitedHTTP 503 · Research unavailableHTTP 504 · Research timed out/scrapers/x/post/quotesQuotes
Collect incoming quotes whose returned original-post ID matches the requested target. One bounded collection, with unknown full coverage.
Idempotency-Key header · optionalRequired for initial collection; result_id pages require no key.
prefer header · optionalcollection_size integer · optionalMinimum: 1. Maximum: 500. Default: 100.
limit integer · optionalMinimum: 1. Maximum: 50. Default: 20.
page integer · optionalOne-based cached page. Initial collection requires page 1; later pages require result_id and cannot extend the collected window. Minimum: 1. Maximum: 500. Default: 1.
post_id string · requiredPattern: ^[1-9][0-9]{0,24}$.
result_id string | null · optionalOwner- and operation-bound immutable collection. Keep the same business request, ordered inputs and limit. Cached pages require no Idempotency-Key and launch no additional work. Pattern: ^rresult_[a-f0-9]{32}$.
Successful Response
collected_count integer · requiredMinimum: 0. Maximum: 2000.
collection_limit integer · requiredMinimum: 1. Maximum: 2000.
count integer · requiredMinimum: 0. Maximum: 50.
expires_at integer · requiredUnix seconds; the collection expires 24 hours after submission. Polling, replay and cached pages do not renew it.
items object[] · requiredMaximum items: 50.
items[].author object · requireditems[].author.display_name string | null · optionalitems[].author.image_url string | null · optionalitems[].author.profile_id string | null · optionalitems[].author.profile_url string · requireditems[].author.username string | null · optionalitems[].comments_count integer | null · optionalMinimum: 0.
items[].conversation_id string | null · requireditems[].geotag object | null · requireditems[].in_reply_to_post_id string | null · requiredActual reply parent when returned; a quote-provider target is never reused as a reply parent.
items[].is_quote boolean | null · requireditems[].is_reply boolean | null · requireditems[].likes_count integer | null · optionalMinimum: 0.
items[].media object[] · requiredMaximum items: 500.
items[].media[].asset object | null · optionalitems[].media[].bitrate integer | null · optionalMinimum: 0.
items[].media[].group_index integer · requiredZero-based position in the source carousel or album; variants share a group. Minimum: 0. Maximum: 499.
items[].media[].mime_type string | null · optionalitems[].media[].retention_reason not_requested | video_not_retained | count_limit | job_byte_limit | destination_rejected | source_unavailable | unsupported_format | invalid_image | too_large | quota_exceeded | timeout | download_failed | storage_unavailable | null · optionalDefault: "not_requested".
items[].media[].retention_status retained | skipped | failed · optionalDefault: "skipped".
items[].media[].role original | thumbnail · requireditems[].media[].type image | video · requireditems[].media[].url string · requiredOriginal public source reference; may expire. Separate from the authenticated retained asset URL.
items[].media_complete boolean | null · optionalFalse when the provider reports media missing from this post; null when completeness cannot be established.
items[].media_count_reported integer | null · optionalMedia count reported by the source provider, when available. Minimum: 0.
items[].mentions object[] | null · requiredCaption/text mentions, separate from actual tags. Maximum items: 100.
items[].post_id string · requireditems[].quoted_post_id string · requiredActual original-post ID returned with this quote. It must match the requested target. Pattern: ^[1-9][0-9]{0,24}$.
items[].quotes_count integer | null · optionalMinimum: 0.
items[].relation_evidence provider_quote_target · requiredThe returned row explicitly names the original post in the reviewed quote-provider output; request echo and search membership alone cannot establish this relationship.
items[].relation_kind incoming_quote · requireditems[].relation_target_post_id string · requiredPattern: ^[1-9][0-9]{0,24}$.
items[].reposts_count integer | null · optionalMinimum: 0.
items[].tagged_users object[] | null · requiredActual source tags; null means unavailable. Maximum items: 100.
items[].text string | null · requireditems[].timestamp string | null · requiredUTC ISO 8601 time; null means unavailable, never inferred epoch zero.
items[].url string · requireditems[].views_count integer | null · optionalMinimum: 0.
limit integer · requiredMinimum: 1. Maximum: 50.
next_page integer | null · requiredMinimum: 2. Maximum: 500.
page integer · requiredMinimum: 1. Maximum: 500.
partial boolean · requiredCollection-wide flag repeated on every cached page: missing candidate core fields, unresolved post targets, or image retention failures/limits can set it, even when absent from this page.
partial_reasons rejected_rows[] · requiredquotes_complete null · requiredFull incoming quote coverage is unknown, including when cached next_page is null.
requested_collection_size integer · requiredMinimum: 1. Maximum: 500.
result_id string · requiredPattern: ^rresult_[a-f0-9]{32}$.
target_post_id string · requiredtruncated true | null · requiredTrue when collection omitted results; null means completeness is unknown.
upstream_continuation_available false · requiredAccepted
created_at integer · requirederror string | null · optionalexpires_at integer · requiredjob_id string · requiredoperation string · requiredpoll_url string · requiredRelative Hive URL. Poll with the same bearer; wait_seconds up to 25 waits for completion. GET returns this envelope (200), with the completed first page under result. Terminal jobs never launch another paid run on replay; eligible saved archive data has an explicit recover endpoint.
result object | null · optionalretry_after_s integer | null · optionalservice string · requiredstatus pending | running | completed | failed | outcome_unknown · requiredHTTP 400 · Invalid research requestHTTP 401 · Invalid Hive authenticationHTTP 404 · Public profile not foundHTTP 409 · Conflicting immutable request or unavailable recoveryHTTP 410 · Research job or result expiredHTTP 429 · Research rate limitedHTTP 503 · Research unavailableHTTP 504 · Research timed out/scrapers/x/post/repliesReplies
Search conversation candidates by post ID. Only returned parent IDs establish direct or nested replies; this is not a complete reply tree.
Idempotency-Key header · optionalRequired for initial collection; result_id pages require no key.
prefer header · optionalcollection_size integer · optionalMinimum: 1. Maximum: 800. Default: 100.
limit integer · optionalMinimum: 1. Maximum: 50. Default: 20.
page integer · optionalOne-based cached page. Initial collection requires page 1; later pages require result_id and cannot extend the collected window. Minimum: 1. Maximum: 500. Default: 1.
post_id string · requiredPattern: ^[1-9][0-9]{0,24}$.
result_id string | null · optionalOwner- and operation-bound immutable collection. Keep the same business request, ordered inputs and limit. Cached pages require no Idempotency-Key and launch no additional work. Pattern: ^rresult_[a-f0-9]{32}$.
Successful Response
collected_count integer · requiredMinimum: 0. Maximum: 2000.
collection_limit integer · requiredMinimum: 1. Maximum: 2000.
count integer · requiredMinimum: 0. Maximum: 50.
effective_query string · requiredexpires_at integer · requiredUnix seconds; the collection expires 24 hours after submission. Polling, replay and cached pages do not renew it.
filters_enforced false · requiredSearch operators are sent upstream; matching and recall are not independently guaranteed.
items object[] · requiredMaximum items: 50.
items[].author object · requireditems[].author.display_name string | null · optionalitems[].author.image_url string | null · optionalitems[].author.profile_id string | null · optionalitems[].author.profile_url string · requireditems[].author.username string | null · optionalitems[].comments_count integer | null · optionalMinimum: 0.
items[].conversation_id string | null · requireditems[].effective_query string · requireditems[].geotag object | null · requireditems[].in_reply_to_post_id string | null · requiredActual returned parent ID; null is unknown and never inferred from conversation membership.
items[].is_quote boolean | null · requireditems[].is_reply boolean | null · requireditems[].likes_count integer | null · optionalMinimum: 0.
items[].media object[] · requiredMaximum items: 500.
items[].media[].asset object | null · optionalitems[].media[].bitrate integer | null · optionalMinimum: 0.
items[].media[].group_index integer · requiredZero-based position in the source carousel or album; variants share a group. Minimum: 0. Maximum: 499.
items[].media[].mime_type string | null · optionalitems[].media[].retention_reason not_requested | video_not_retained | count_limit | job_byte_limit | destination_rejected | source_unavailable | unsupported_format | invalid_image | too_large | quota_exceeded | timeout | download_failed | storage_unavailable | null · optionalDefault: "not_requested".
items[].media[].retention_status retained | skipped | failed · optionalDefault: "skipped".
items[].media[].role original | thumbnail · requireditems[].media[].type image | video · requireditems[].media[].url string · requiredOriginal public source reference; may expire. Separate from the authenticated retained asset URL.
items[].media_complete boolean | null · optionalFalse when the provider reports media missing from this post; null when completeness cannot be established.
items[].media_count_reported integer | null · optionalMedia count reported by the source provider, when available. Minimum: 0.
items[].mentions object[] | null · requiredCaption/text mentions, separate from actual tags. Maximum items: 100.
items[].post_id string · requireditems[].quoted_post_id string | null · requiredActual returned outgoing quote target; this does not enumerate incoming quotes.
items[].quotes_count integer | null · optionalMinimum: 0.
items[].relation_evidence search_query | parent_id | conversation_and_parent_id · requireditems[].relation_kind search_match | conversation_candidate | direct_reply | nested_reply · requireditems[].relation_target_post_id string | null · requireditems[].reposts_count integer | null · optionalMinimum: 0.
items[].tagged_users object[] | null · requiredActual source tags; null means unavailable. Maximum items: 100.
items[].text string | null · requireditems[].timestamp string | null · requiredUTC ISO 8601 time; null means unavailable, never inferred epoch zero.
items[].url string · requireditems[].views_count integer | null · optionalMinimum: 0.
limit integer · requiredMinimum: 1. Maximum: 50.
next_page integer | null · requiredMinimum: 2. Maximum: 500.
page integer · requiredMinimum: 1. Maximum: 500.
partial boolean · requiredCollection-wide flag repeated on every cached page: missing candidate core fields, unresolved post targets, or image retention failures/limits can set it, even when absent from this page.
partial_reasons rejected_rows_or_unknown_parent[] · requiredquery_scope post_search | conversation_candidates · requiredrequested_collection_size integer · requiredMinimum: 1. Maximum: 800.
result_id string · requiredPattern: ^rresult_[a-f0-9]{32}$.
search_complete null · requiredtarget_post_id string | null · requiredtruncated true | null · requiredTrue when collection omitted results; null means completeness is unknown.
Accepted
created_at integer · requirederror string | null · optionalexpires_at integer · requiredjob_id string · requiredoperation string · requiredpoll_url string · requiredRelative Hive URL. Poll with the same bearer; wait_seconds up to 25 waits for completion. GET returns this envelope (200), with the completed first page under result. Terminal jobs never launch another paid run on replay; eligible saved archive data has an explicit recover endpoint.
result object | null · optionalretry_after_s integer | null · optionalservice string · requiredstatus pending | running | completed | failed | outcome_unknown · requiredHTTP 400 · Invalid research requestHTTP 401 · Invalid Hive authenticationHTTP 404 · Public profile not foundHTTP 409 · Conflicting immutable request or unavailable recoveryHTTP 410 · Research job or result expiredHTTP 429 · Research rate limitedHTTP 503 · Research unavailableHTTP 504 · Research timed out/scrapers/x/posts/searchPost Search
One bounded X web query with preserved source authors; operators and recall remain upstream-dependent.
Idempotency-Key header · optionalRequired for initial collection; result_id pages require no key.
prefer header · optionalcollection_size integer · optionalMinimum: 1. Maximum: 800. Default: 100.
from_username string | null · optionalMaximum length: 256.
limit integer · optionalMinimum: 1. Maximum: 50. Default: 20.
mention_username string | null · optionalMaximum length: 256.
page integer · optionalOne-based cached page. Initial collection requires page 1; later pages require result_id and cannot extend the collected window. Minimum: 1. Maximum: 500. Default: 1.
query string · optionalOne X web-search query. from:, to:, @mention, since: and until: may be supplied here or through the structured fields. Search recall is unknown. Maximum length: 512. Default: "".
result_id string | null · optionalOwner- and operation-bound immutable collection. Keep the same business request, ordered inputs and limit. Cached pages require no Idempotency-Key and launch no additional work. Pattern: ^rresult_[a-f0-9]{32}$.
since_date string | null · optionalPattern: ^\d{4}-\d{2}-\d{2}$.
to_username string | null · optionalMaximum length: 256.
until_date string | null · optionalExclusive upper UTC date in the effective search query. Pattern: ^\d{4}-\d{2}-\d{2}$.
Successful Response
collected_count integer · requiredMinimum: 0. Maximum: 2000.
collection_limit integer · requiredMinimum: 1. Maximum: 2000.
count integer · requiredMinimum: 0. Maximum: 50.
effective_query string · requiredexpires_at integer · requiredUnix seconds; the collection expires 24 hours after submission. Polling, replay and cached pages do not renew it.
filters_enforced false · requiredSearch operators are sent upstream; matching and recall are not independently guaranteed.
items object[] · requiredMaximum items: 50.
items[].author object · requireditems[].author.display_name string | null · optionalitems[].author.image_url string | null · optionalitems[].author.profile_id string | null · optionalitems[].author.profile_url string · requireditems[].author.username string | null · optionalitems[].comments_count integer | null · optionalMinimum: 0.
items[].conversation_id string | null · requireditems[].effective_query string · requireditems[].geotag object | null · requireditems[].in_reply_to_post_id string | null · requiredActual returned parent ID; null is unknown and never inferred from conversation membership.
items[].is_quote boolean | null · requireditems[].is_reply boolean | null · requireditems[].likes_count integer | null · optionalMinimum: 0.
items[].media object[] · requiredMaximum items: 500.
items[].media[].asset object | null · optionalitems[].media[].bitrate integer | null · optionalMinimum: 0.
items[].media[].group_index integer · requiredZero-based position in the source carousel or album; variants share a group. Minimum: 0. Maximum: 499.
items[].media[].mime_type string | null · optionalitems[].media[].retention_reason not_requested | video_not_retained | count_limit | job_byte_limit | destination_rejected | source_unavailable | unsupported_format | invalid_image | too_large | quota_exceeded | timeout | download_failed | storage_unavailable | null · optionalDefault: "not_requested".
items[].media[].retention_status retained | skipped | failed · optionalDefault: "skipped".
items[].media[].role original | thumbnail · requireditems[].media[].type image | video · requireditems[].media[].url string · requiredOriginal public source reference; may expire. Separate from the authenticated retained asset URL.
items[].media_complete boolean | null · optionalFalse when the provider reports media missing from this post; null when completeness cannot be established.
items[].media_count_reported integer | null · optionalMedia count reported by the source provider, when available. Minimum: 0.
items[].mentions object[] | null · requiredCaption/text mentions, separate from actual tags. Maximum items: 100.
items[].post_id string · requireditems[].quoted_post_id string | null · requiredActual returned outgoing quote target; this does not enumerate incoming quotes.
items[].quotes_count integer | null · optionalMinimum: 0.
items[].relation_evidence search_query | parent_id | conversation_and_parent_id · requireditems[].relation_kind search_match | conversation_candidate | direct_reply | nested_reply · requireditems[].relation_target_post_id string | null · requireditems[].reposts_count integer | null · optionalMinimum: 0.
items[].tagged_users object[] | null · requiredActual source tags; null means unavailable. Maximum items: 100.
items[].text string | null · requireditems[].timestamp string | null · requiredUTC ISO 8601 time; null means unavailable, never inferred epoch zero.
items[].url string · requireditems[].views_count integer | null · optionalMinimum: 0.
limit integer · requiredMinimum: 1. Maximum: 50.
next_page integer | null · requiredMinimum: 2. Maximum: 500.
page integer · requiredMinimum: 1. Maximum: 500.
partial boolean · requiredCollection-wide flag repeated on every cached page: missing candidate core fields, unresolved post targets, or image retention failures/limits can set it, even when absent from this page.
partial_reasons rejected_rows_or_unknown_parent[] · requiredquery_scope post_search | conversation_candidates · requiredrequested_collection_size integer · requiredMinimum: 1. Maximum: 800.
result_id string · requiredPattern: ^rresult_[a-f0-9]{32}$.
search_complete null · requiredtarget_post_id string | null · requiredtruncated true | null · requiredTrue when collection omitted results; null means completeness is unknown.
Accepted
created_at integer · requirederror string | null · optionalexpires_at integer · requiredjob_id string · requiredoperation string · requiredpoll_url string · requiredRelative Hive URL. Poll with the same bearer; wait_seconds up to 25 waits for completion. GET returns this envelope (200), with the completed first page under result. Terminal jobs never launch another paid run on replay; eligible saved archive data has an explicit recover endpoint.
result object | null · optionalretry_after_s integer | null · optionalservice string · requiredstatus pending | running | completed | failed | outcome_unknown · requiredHTTP 400 · Invalid research requestHTTP 401 · Invalid Hive authenticationHTTP 404 · Public profile not foundHTTP 409 · Conflicting immutable request or unavailable recoveryHTTP 410 · Research job or result expiredHTTP 429 · Research rate limitedHTTP 503 · Research unavailableHTTP 504 · Research timed out/scrapers/x/profile/detailsX Profile Details
Retrieve public X profile details for up to ten handles or profile URLs.
One to ten X handles or canonical x.com or twitter.com profile URLs.
profiles string[] · requiredMinimum items: 1. Maximum items: 10.
Successful Response
count integer · requiredMinimum: 0. Maximum: 10.
items object[] · requiredMaximum items: 10.
items[].biography string | null · optionalitems[].cover_image_url string | null · optionalitems[].created_at string | null · optionalAccount creation timestamp in ISO 8601 UTC.
items[].display_name string | null · optionalitems[].followers_count integer | null · optionalMinimum: 0.
items[].following_count integer | null · optionalMinimum: 0.
items[].image_url string | null · optionalitems[].input_index integer · requiredMinimum: 0. Maximum: 9.
items[].is_blue_verified boolean | null · optionalitems[].is_private boolean | null · optionalitems[].is_verified boolean | null · optionalVerification observation; absent or null when the source supplies only an ambiguous untyped flag.
items[].likes_count integer | null · optionalMinimum: 0.
items[].listed_count integer | null · optionalMinimum: 0.
items[].location string | null · optionalitems[].media_count integer | null · optionalMinimum: 0.
items[].posts_count integer | null · optionalMinimum: 0.
items[].profile_id string | null · optionalitems[].profile_url string · requireditems[].public_links object[] | null · optionalitems[].target string · requireditems[].username string · requireditems[].verification_type string | null · optionalitems[].website_url string | null · optionalunresolved object[] · requiredMaximum items: 10.
unresolved[].input_index integer · requiredMinimum: 0. Maximum: 9.
unresolved[].reason not_found | private | unavailable | malformed_data | ambiguous · requiredunresolved[].target string · requiredHTTP 400 · Invalid research requestHTTP 401 · Invalid Hive authenticationHTTP 404 · Public profile not foundHTTP 429 · Research rate limitedHTTP 503 · Research unavailableHTTP 504 · Research timed out/scrapers/x/profile/dumpsSubmit X Dump
Start a resumable signed-in browser collection. A finished timeline does not prove complete account history.
Idempotency-Key header · optionalCollect signed-in browser timelines for one public X profile.
profiles string[] · requiredMinimum items: 1. Maximum items: 1.
tabs tweets | legacy_tweets | with_replies | reposts | media | photos | legacy_media[] · optionalMinimum items: 1. Maximum items: 7.
Successful Response
created_at number · requirederror_code string | null · requiredhistory_coverage unverified | below_profile_count | matches_profile_count | above_profile_count · requiredA count comparison, never a guarantee of full history.
job_id string · requiredmax_runs integer · optionalDefault: 32.
media_count integer · requiredmedia_post_count integer · requirednext_run_at number | null · optionalpost_count integer · requiredprofile string · requiredprofile_reported_posts integer | null · requiredrevision integer · optionalDefault: 1.
run_count integer · optionalDefault: 0.
status pending | running | partial | timelines_exhausted · requiredtabs object[] · requiredtabs[].end_page integer | null · optionaltabs[].last_page integer · requiredtabs[].no_new_pages integer · requiredtabs[].status string · requiredtabs[].tab tweets | legacy_tweets | with_replies | reposts | media | photos | legacy_media · requiredunreconciled_post_count integer | null · requiredupdated_at number · requiredAccepted
created_at number · requirederror_code string | null · requiredhistory_coverage unverified | below_profile_count | matches_profile_count | above_profile_count · requiredA count comparison, never a guarantee of full history.
job_id string · requiredmax_runs integer · optionalDefault: 32.
media_count integer · requiredmedia_post_count integer · requirednext_run_at number | null · optionalpost_count integer · requiredprofile string · requiredprofile_reported_posts integer | null · requiredrevision integer · optionalDefault: 1.
run_count integer · optionalDefault: 0.
status pending | running | partial | timelines_exhausted · requiredtabs object[] · requiredtabs[].end_page integer | null · optionaltabs[].last_page integer · requiredtabs[].no_new_pages integer · requiredtabs[].status string · requiredtabs[].tab tweets | legacy_tweets | with_replies | reposts | media | photos | legacy_media · requiredunreconciled_post_count integer | null · requiredupdated_at number · requiredHTTP 400 · Invalid research requestHTTP 401 · Invalid Hive authenticationHTTP 404 · Public profile not foundHTTP 409 · Conflicting immutable request or unavailable recoveryHTTP 410 · Research job or result expiredHTTP 429 · Research rate limitedHTTP 503 · Research unavailableHTTP 504 · Research timed out/scrapers/x/profile/dumps/{job_id}Get X Dump
Read progress. wait_seconds waits for completion; after_revision waits for a progress change instead.
job_id path · requiredwait_seconds query · optionalafter_revision query · optionalSuccessful Response
created_at number · requirederror_code string | null · requiredhistory_coverage unverified | below_profile_count | matches_profile_count | above_profile_count · requiredA count comparison, never a guarantee of full history.
job_id string · requiredmax_runs integer · optionalDefault: 32.
media_count integer · requiredmedia_post_count integer · requirednext_run_at number | null · optionalpost_count integer · requiredprofile string · requiredprofile_reported_posts integer | null · requiredrevision integer · optionalDefault: 1.
run_count integer · optionalDefault: 0.
status pending | running | partial | timelines_exhausted · requiredtabs object[] · requiredtabs[].end_page integer | null · optionaltabs[].last_page integer · requiredtabs[].no_new_pages integer · requiredtabs[].status string · requiredtabs[].tab tweets | legacy_tweets | with_replies | reposts | media | photos | legacy_media · requiredunreconciled_post_count integer | null · requiredupdated_at number · requiredHTTP 400 · Invalid research requestHTTP 401 · Invalid Hive authenticationHTTP 404 · Public profile not foundHTTP 429 · Research rate limitedHTTP 503 · Research unavailableHTTP 504 · Research timed out/scrapers/x/profile/dumps/{job_id}/postsGet X Dump Posts
Page deduplicated posts and media source URLs; start at after=0 and follow next_after.
job_id path · requiredafter query · optionallimit query · optionalSuccessful Response
has_more boolean · requiredMore posts are cached now; poll the job while it is still running.
job_id string · requirednext_after integer · requiredposts object[] · requiredposts[].author string · requiredposts[].created_at string | null · requiredposts[].in_reply_to_post_id string | null · optionalposts[].in_reply_to_user_id string | null · optionalposts[].is_quote boolean · requiredposts[].is_reply boolean · requiredposts[].is_repost boolean · requiredposts[].media object[] · requiredposts[].media[].media_id string | null · optionalposts[].media[].type photo | video | animated_gif · requiredposts[].media[].url string · requiredposts[].media[].video_variants object[] | null · optionalposts[].post_id string · requiredposts[].text string | null · requiredposts[].url string · requiredstatus pending | running | partial | timelines_exhausted · requiredHTTP 400 · Invalid research requestHTTP 401 · Invalid Hive authenticationHTTP 404 · Public profile not foundHTTP 429 · Research rate limitedHTTP 503 · Research unavailableHTTP 504 · Research timed out/scrapers/x/profile/dumps/{job_id}/resumeResume X Dump
Continue selected paused tabs at saved cursors. Optional page bounds cannot skip or rewind upstream pages.
job_id path · requiredretry_stalled query · optionalend_page integer | null · optionalInclusive stop page; reaching this bound leaves the job partial. Minimum: 1. Maximum: 1000000.
start_page integer | null · optionalMust equal last_page + 1 for every selected tab; cursors cannot skip pages. Minimum: 1. Maximum: 1000000.
tabs tweets | legacy_tweets | with_replies | reposts | media | photos | legacy_media[] | null · optionalMinimum items: 1. Maximum items: 7.
See the lifecycle example for this operation.
Successful Response
created_at number · requirederror_code string | null · requiredhistory_coverage unverified | below_profile_count | matches_profile_count | above_profile_count · requiredA count comparison, never a guarantee of full history.
job_id string · requiredmax_runs integer · optionalDefault: 32.
media_count integer · requiredmedia_post_count integer · requirednext_run_at number | null · optionalpost_count integer · requiredprofile string · requiredprofile_reported_posts integer | null · requiredrevision integer · optionalDefault: 1.
run_count integer · optionalDefault: 0.
status pending | running | partial | timelines_exhausted · requiredtabs object[] · requiredtabs[].end_page integer | null · optionaltabs[].last_page integer · requiredtabs[].no_new_pages integer · requiredtabs[].status string · requiredtabs[].tab tweets | legacy_tweets | with_replies | reposts | media | photos | legacy_media · requiredunreconciled_post_count integer | null · requiredupdated_at number · requiredHTTP 400 · Invalid research requestHTTP 401 · Invalid Hive authenticationHTTP 404 · Public profile not foundHTTP 429 · Research rate limitedHTTP 503 · Research unavailableHTTP 504 · Research timed out/scrapers/x/profile/followersFollowers
Collect attributed public followers; nullable profile fields and unknown full graph. Pages read the cached collection.
Idempotency-Key header · optionalRequired for initial collection; result_id pages require no key.
prefer header · optionalcollection_size integer · optionalMaximum rows in one public graph collection; page limit only pages that immutable result. No upstream graph continuation is available. Minimum: 5. Maximum: 2000. Default: 100.
limit integer · optionalMinimum: 1. Maximum: 50. Default: 20.
page integer · optionalOne-based cached page. Initial collection requires page 1; later pages require result_id and cannot extend the collected window. Minimum: 1. Maximum: 500. Default: 1.
profile string · requiredMinimum length: 1. Maximum length: 256.
result_id string | null · optionalOwner- and operation-bound immutable collection. Keep the same business request, ordered inputs and limit. Cached pages require no Idempotency-Key and launch no additional work. Pattern: ^rresult_[a-f0-9]{32}$.
Successful Response
collected_count integer · requiredMinimum: 0. Maximum: 2000.
collection_limit integer · requiredMinimum: 1. Maximum: 2000.
count integer · requiredMinimum: 0. Maximum: 50.
expires_at integer · requiredUnix seconds; the collection expires 24 hours after submission. Polling, replay and cached pages do not renew it.
graph_complete null · requiredFull public graph completeness is unknown, including when next_page is null.
items object[] · requiredMaximum items: 50.
items[].biography string | null · optionalitems[].cover_image_url string | null · optionalitems[].created_at string | null · optionalitems[].display_name string | null · optionalitems[].followers_count integer | null · optionalMinimum: 0.
items[].following_count integer | null · optionalMinimum: 0.
items[].image_url string | null · optionalitems[].is_blue_verified boolean | null · optionalitems[].is_private boolean | null · optionalitems[].is_verified boolean | null · optionalitems[].likes_count integer | null · optionalMinimum: 0.
items[].listed_count integer | null · optionalMinimum: 0.
items[].location string | null · optionalitems[].media_count integer | null · optionalMinimum: 0.
items[].posts_count integer | null · optionalMinimum: 0.
items[].profile_id string | null · optionalitems[].profile_url string · requireditems[].public_links object[] | null · optionalitems[].relation followers | following · requireditems[].relation_evidence source_attribution | provider_expansion · requiredSource attribution is explicit in the row; provider expansion requires a privately reviewed single-source/direction contract and fixture. The source root is excluded.
items[].source_profile string · requireditems[].username string · requireditems[].verification_type string | null · optionalitems[].website_url string | null · optionallimit integer · requiredMinimum: 1. Maximum: 50.
next_page integer | null · requiredMinimum: 2. Maximum: 500.
page integer · requiredMinimum: 1. Maximum: 500.
partial boolean · requiredCollection-wide flag repeated on every cached page: missing candidate core fields, unresolved post targets, or image retention failures/limits can set it, even when absent from this page.
partial_reasons rejected_rows | missing_optional_fields[] · requiredrelation followers | following · requiredrequested_collection_size integer · requiredMinimum: 5. Maximum: 2000.
result_id string · requiredPattern: ^rresult_[a-f0-9]{32}$.
source_profile string · requiredtruncated true | null · requiredTrue when collection omitted results; null means completeness is unknown.
Accepted
created_at integer · requirederror string | null · optionalexpires_at integer · requiredjob_id string · requiredoperation string · requiredpoll_url string · requiredRelative Hive URL. Poll with the same bearer; wait_seconds up to 25 waits for completion. GET returns this envelope (200), with the completed first page under result. Terminal jobs never launch another paid run on replay; eligible saved archive data has an explicit recover endpoint.
result object | null · optionalretry_after_s integer | null · optionalservice string · requiredstatus pending | running | completed | failed | outcome_unknown · requiredHTTP 400 · Invalid research requestHTTP 401 · Invalid Hive authenticationHTTP 404 · Public profile not foundHTTP 409 · Conflicting immutable request or unavailable recoveryHTTP 410 · Research job or result expiredHTTP 429 · Research rate limitedHTTP 503 · Research unavailableHTTP 504 · Research timed out/scrapers/x/profile/followingFollowing
Conditional public following collection. Unqualified ambiguous output fails; the source root cannot become an edge.
Idempotency-Key header · optionalRequired for initial collection; result_id pages require no key.
prefer header · optionalcollection_size integer · optionalMaximum rows in one public graph collection; page limit only pages that immutable result. No upstream graph continuation is available. Minimum: 5. Maximum: 2000. Default: 100.
limit integer · optionalMinimum: 1. Maximum: 50. Default: 20.
page integer · optionalOne-based cached page. Initial collection requires page 1; later pages require result_id and cannot extend the collected window. Minimum: 1. Maximum: 500. Default: 1.
profile string · requiredMinimum length: 1. Maximum length: 256.
result_id string | null · optionalOwner- and operation-bound immutable collection. Keep the same business request, ordered inputs and limit. Cached pages require no Idempotency-Key and launch no additional work. Pattern: ^rresult_[a-f0-9]{32}$.
Successful Response
collected_count integer · requiredMinimum: 0. Maximum: 2000.
collection_limit integer · requiredMinimum: 1. Maximum: 2000.
count integer · requiredMinimum: 0. Maximum: 50.
expires_at integer · requiredUnix seconds; the collection expires 24 hours after submission. Polling, replay and cached pages do not renew it.
graph_complete null · requiredFull public graph completeness is unknown, including when next_page is null.
items object[] · requiredMaximum items: 50.
items[].biography string | null · optionalitems[].cover_image_url string | null · optionalitems[].created_at string | null · optionalitems[].display_name string | null · optionalitems[].followers_count integer | null · optionalMinimum: 0.
items[].following_count integer | null · optionalMinimum: 0.
items[].image_url string | null · optionalitems[].is_blue_verified boolean | null · optionalitems[].is_private boolean | null · optionalitems[].is_verified boolean | null · optionalitems[].likes_count integer | null · optionalMinimum: 0.
items[].listed_count integer | null · optionalMinimum: 0.
items[].location string | null · optionalitems[].media_count integer | null · optionalMinimum: 0.
items[].posts_count integer | null · optionalMinimum: 0.
items[].profile_id string | null · optionalitems[].profile_url string · requireditems[].public_links object[] | null · optionalitems[].relation followers | following · requireditems[].relation_evidence source_attribution | provider_expansion · requiredSource attribution is explicit in the row; provider expansion requires a privately reviewed single-source/direction contract and fixture. The source root is excluded.
items[].source_profile string · requireditems[].username string · requireditems[].verification_type string | null · optionalitems[].website_url string | null · optionallimit integer · requiredMinimum: 1. Maximum: 50.
next_page integer | null · requiredMinimum: 2. Maximum: 500.
page integer · requiredMinimum: 1. Maximum: 500.
partial boolean · requiredCollection-wide flag repeated on every cached page: missing candidate core fields, unresolved post targets, or image retention failures/limits can set it, even when absent from this page.
partial_reasons rejected_rows | missing_optional_fields[] · requiredrelation followers | following · requiredrequested_collection_size integer · requiredMinimum: 5. Maximum: 2000.
result_id string · requiredPattern: ^rresult_[a-f0-9]{32}$.
source_profile string · requiredtruncated true | null · requiredTrue when collection omitted results; null means completeness is unknown.
Accepted
created_at integer · requirederror string | null · optionalexpires_at integer · requiredjob_id string · requiredoperation string · requiredpoll_url string · requiredRelative Hive URL. Poll with the same bearer; wait_seconds up to 25 waits for completion. GET returns this envelope (200), with the completed first page under result. Terminal jobs never launch another paid run on replay; eligible saved archive data has an explicit recover endpoint.
result object | null · optionalretry_after_s integer | null · optionalservice string · requiredstatus pending | running | completed | failed | outcome_unknown · requiredHTTP 400 · Invalid research requestHTTP 401 · Invalid Hive authenticationHTTP 404 · Public profile not foundHTTP 409 · Conflicting immutable request or unavailable recoveryHTTP 410 · Research job or result expiredHTTP 429 · Research rate limitedHTTP 503 · Research unavailableHTTP 504 · Research timed out/scrapers/x/profile/postsX Profile Posts
Return recent posts or a dated X archive window. Cached pages read one immutable result; next_archive_end_date starts the next older job. Prefer: respond-async submits promptly.
Idempotency-Key header · optionalRequired for initial collection; cached result_id pages need no key.
prefer header · optionalCollect recent X posts or a dated archive window, then page the cached result.
archive boolean · optionalSearch one profile by date instead of collecting only its recent timeline. Use next_archive_end_date from the result to request the preceding window with a new Idempotency-Key. Default: false.
archive_end_date string | null · optionalInclusive UTC date at the end of this archive window. Required with archive=true. Pattern: ^\d{4}-\d{2}-\d{2}$.
archive_window_days integer · optionalNumber of inclusive days in one archive search. Use a smaller window if truncated is true; cached page numbers do not extend history. Minimum: 1. Maximum: 30. Default: 30.
limit integer · optionalMinimum: 1. Maximum: 50. Default: 20.
media_filter any | images | videos · optionalArchive search filter. Use images to find older photo posts without scrolling through text replies. Default: "any".
page integer · optionalOne-based cached page. Initial collection requires page 1; later pages require result_id and cannot extend the collected window. Minimum: 1. Maximum: 500. Default: 1.
per_target_limit integer · optionalMaximum posts per profile: 50 by default, up to 100 for recent mode and 1,000 for one dated archive window. Archive mode defaults to 1,000 if omitted. Minimum: 1. Maximum: 1000. Default: 50.
profiles string[] · requiredMinimum items: 1. Maximum items: 10.
result_id string | null · optionalOwner- and operation-bound immutable collection. Keep the same business request, ordered inputs and limit. Cached pages require no Idempotency-Key and launch no additional work. Pattern: ^rresult_[a-f0-9]{32}$.
retain_media boolean · optionalPreserve photos/video thumbnails. Recent jobs allow 20 unique images and 32 MiB over 30 seconds; archive jobs allow 100 images and 96 MiB over 120 seconds. Each image is capped at 10 MiB and 40 million pixels. Shared bearer/global quotas still apply. No video download; assets expire after 24 hours. Cached pages/replay never download again. Default: false.
Successful Response
archive_end_date string | null · optionalPattern: ^\d{4}-\d{2}-\d{2}$.
archive_start_date string | null · optionalPattern: ^\d{4}-\d{2}-\d{2}$.
collected_count integer · requiredMinimum: 0. Maximum: 2000.
collection_limit integer · requiredMinimum: 1. Maximum: 2000.
count integer · requiredMinimum: 0. Maximum: 50.
expires_at integer · requiredUnix seconds; the collection expires 24 hours after submission. Polling, replay and cached pages do not renew it.
history_complete null · requiredFull platform history is unknown. Pages cover only the cached collection.
history_scope collected_window | recent_public_timeline | archive_date_window | archive_cursor_window · optionalDate windows continue through next_archive_end_date; cursor windows continue through next_archive_cursor. Page numbers only traverse the cached result. Default: "collected_window".
items object[] · requiredMaximum items: 50.
items[].author object · requireditems[].author.display_name string | null · optionalitems[].author.image_url string | null · optionalitems[].author.profile_id string | null · optionalitems[].author.profile_url string · requireditems[].author.username string | null · optionalitems[].comments_count integer | null · optionalMinimum: 0.
items[].context object[] · requiredMaximum items: 2.
items[].context[].author object · requireditems[].context[].author.display_name string | null · optionalitems[].context[].author.image_url string | null · optionalitems[].context[].author.profile_id string | null · optionalitems[].context[].author.profile_url string · requireditems[].context[].author.username string | null · optionalitems[].context[].comments_count integer | null · optionalMinimum: 0.
items[].context[].geotag object | null · requireditems[].context[].kind repost | quote · requireditems[].context[].likes_count integer | null · optionalMinimum: 0.
items[].context[].media object[] · requiredMaximum items: 500.
items[].context[].media[].asset object | null · optionalitems[].context[].media[].bitrate integer | null · optionalMinimum: 0.
items[].context[].media[].group_index integer · requiredZero-based position in the source carousel or album; variants share a group. Minimum: 0. Maximum: 499.
items[].context[].media[].mime_type string | null · optionalitems[].context[].media[].retention_reason not_requested | video_not_retained | count_limit | job_byte_limit | destination_rejected | source_unavailable | unsupported_format | invalid_image | too_large | quota_exceeded | timeout | download_failed | storage_unavailable | null · optionalDefault: "not_requested".
items[].context[].media[].retention_status retained | skipped | failed · optionalDefault: "skipped".
items[].context[].media[].role original | thumbnail · requireditems[].context[].media[].type image | video · requireditems[].context[].media[].url string · requiredOriginal public source reference; may expire. Separate from the authenticated retained asset URL.
items[].context[].media_complete boolean | null · optionalFalse when the provider reports media missing from this post; null when completeness cannot be established.
items[].context[].media_count_reported integer | null · optionalMedia count reported by the source provider, when available. Minimum: 0.
items[].context[].mentions object[] | null · requiredCaption/text mentions, separate from actual tags. Maximum items: 100.
items[].context[].post_id string · requireditems[].context[].quotes_count integer | null · optionalMinimum: 0.
items[].context[].reposts_count integer | null · optionalMinimum: 0.
items[].context[].tagged_users object[] | null · requiredActual source tags; null means unavailable. Maximum items: 100.
items[].context[].text string | null · requireditems[].context[].timestamp string | null · requiredUTC ISO 8601 time; null means unavailable, never inferred epoch zero.
items[].context[].url string · requireditems[].context[].views_count integer | null · optionalMinimum: 0.
items[].geotag object | null · requireditems[].input_index integer · requiredMinimum: 0. Maximum: 9.
items[].is_pinned boolean | null · optionalitems[].is_quote boolean | null · optionalitems[].is_repost boolean | null · optionalitems[].likes_count integer | null · optionalMinimum: 0.
items[].media object[] · requiredMaximum items: 500.
items[].media[].asset object | null · optionalitems[].media[].bitrate integer | null · optionalMinimum: 0.
items[].media[].group_index integer · requiredZero-based position in the source carousel or album; variants share a group. Minimum: 0. Maximum: 499.
items[].media[].mime_type string | null · optionalitems[].media[].retention_reason not_requested | video_not_retained | count_limit | job_byte_limit | destination_rejected | source_unavailable | unsupported_format | invalid_image | too_large | quota_exceeded | timeout | download_failed | storage_unavailable | null · optionalDefault: "not_requested".
items[].media[].retention_status retained | skipped | failed · optionalDefault: "skipped".
items[].media[].role original | thumbnail · requireditems[].media[].type image | video · requireditems[].media[].url string · requiredOriginal public source reference; may expire. Separate from the authenticated retained asset URL.
items[].media_complete boolean | null · optionalFalse when the provider reports media missing from this post; null when completeness cannot be established.
items[].media_count_reported integer | null · optionalMedia count reported by the source provider, when available. Minimum: 0.
items[].mentions object[] | null · requiredCaption/text mentions, separate from actual tags. Maximum items: 100.
items[].post_id string · requireditems[].quotes_count integer | null · optionalMinimum: 0.
items[].reposts_count integer | null · optionalMinimum: 0.
items[].tagged_users object[] | null · requiredActual source tags; null means unavailable. Maximum items: 100.
items[].target string · requireditems[].text string | null · requireditems[].timestamp string | null · requiredUTC ISO 8601 time; null means unavailable, never inferred epoch zero.
items[].url string · requireditems[].views_count integer | null · optionalMinimum: 0.
limit integer · requiredMinimum: 1. Maximum: 50.
next_archive_cursor string | null · optionalSubmit as archive_cursor in a new Instagram or Facebook personal archive job with the same profile and window settings after consuming cached pages. Null when the provider reached the visible end or could not safely continue. Maximum length: 262144.
next_archive_end_date string | null · optionalSubmit a new archive job ending on this date after consuming all cached pages. Null when the date range is exhausted or the current window hit its collection cap; narrow a capped window before continuing. Pattern: ^\d{4}-\d{2}-\d{2}$.
next_page integer | null · requiredMinimum: 2. Maximum: 500.
page integer · requiredMinimum: 1. Maximum: 500.
partial boolean · requiredCollection-wide flag repeated on every cached page: missing candidate core fields, unresolved post targets, or image retention failures/limits can set it, even when absent from this page.
per_target_limit integer · requiredMinimum: 1. Maximum: 1000.
result_id string · requiredPattern: ^rresult_[a-f0-9]{32}$.
targets object[] · requiredMaximum items: 10.
targets[].collected_count integer · requiredMinimum: 0. Maximum: 1000.
targets[].input_index integer · requiredMinimum: 0. Maximum: 9.
targets[].reason not_found | private | unavailable | malformed_data | ambiguous | null · requiredtargets[].status resolved | unresolved · requiredtargets[].target string · requiredtruncated true | null · requiredTrue when collection omitted results; null means completeness is unknown.
unresolved object[] · requiredMaximum items: 10.
unresolved[].input_index integer · requiredMinimum: 0. Maximum: 9.
unresolved[].reason not_found | private | unavailable | malformed_data | ambiguous · requiredunresolved[].target string · requiredDurable job; poll the returned owner-scoped URL.
created_at integer · requirederror string | null · optionalexpires_at integer · requiredjob_id string · requiredoperation string · requiredpoll_url string · requiredRelative Hive URL. Poll with the same bearer; wait_seconds up to 25 waits for completion. GET returns this envelope (200), with the completed first page under result. Terminal jobs never launch another paid run on replay; eligible saved archive data has an explicit recover endpoint.
result object | null · optionalretry_after_s integer | null · optionalservice string · requiredstatus pending | running | completed | failed | outcome_unknown · requiredHTTP 400 · Invalid research requestHTTP 401 · Invalid Hive authenticationHTTP 404 · Public profile not foundHTTP 409 · Conflicting immutable request or unavailable recoveryHTTP 410 · Research job or result expiredHTTP 429 · Research rate limitedHTTP 503 · Research unavailableHTTP 504 · Research timed out/scrapers/x/profile/spacesDiscovery
Find actual Space links in posts by a handle; sharing alone does not establish hosting.
Idempotency-Key header · optionalRequired for initial collection; replay and cached pages start no new work.
prefer header · optionalcollection_size integer · optionalFinite authored-post search window. limit only pages the saved collection. Minimum: 1. Maximum: 100. Default: 20.
limit integer · optionalMinimum: 1. Maximum: 50. Default: 20.
page integer · optionalOne-based cached page. Initial collection requires page 1; later pages require result_id and cannot extend the collected window. Minimum: 1. Maximum: 500. Default: 1.
profile string · requiredMinimum length: 1. Maximum length: 512.
result_id string | null · optionalOwner- and operation-bound immutable collection. Keep the same business request, ordered inputs and limit. Cached pages require no Idempotency-Key and launch no additional work. Pattern: ^rresult_[a-f0-9]{32}$.
Successful Response
collected_count integer · requiredMinimum: 0. Maximum: 2000.
collection_complete null · requiredcollection_limit integer · requiredMinimum: 1. Maximum: 2000.
count integer · requiredMinimum: 0. Maximum: 50.
discovery_scope authored_space_links · requiredeffective_query string · requiredexpires_at integer · requiredUnix seconds; the collection expires 24 hours after submission. Polling, replay and cached pages do not renew it.
items object[] · requiredMaximum items: 50.
items[].host_relationship null · requireditems[].post_id string · requireditems[].post_url string · requireditems[].relation_evidence authored_post_space_link · requireditems[].shared_by string · requireditems[].space_urls string[] · requiredMinimum items: 1. Maximum items: 20.
items[].text string | null · requireditems[].timestamp string | null · requiredlimit integer · requiredMinimum: 1. Maximum: 50.
next_page integer | null · requiredMinimum: 2. Maximum: 500.
page integer · requiredMinimum: 1. Maximum: 500.
partial boolean · requiredCollection-wide flag repeated on every cached page: missing candidate core fields, unresolved post targets, or image retention failures/limits can set it, even when absent from this page.
partial_reasons string[] · requiredMaximum items: 10.
requested_collection_size integer · requiredMinimum: 1. Maximum: 100.
result_id string · requiredPattern: ^rresult_[a-f0-9]{32}$.
search_complete null · requiredsource_profile string · requiredtruncated true | null · requiredTrue when collection omitted results; null means completeness is unknown.
Accepted
created_at integer · requirederror string | null · optionalexpires_at integer · requiredjob_id string · requiredoperation string · requiredpoll_url string · requiredRelative Hive URL. Poll with the same bearer; wait_seconds up to 25 waits for completion. GET returns this envelope (200), with the completed first page under result. Terminal jobs never launch another paid run on replay; eligible saved archive data has an explicit recover endpoint.
result object | null · optionalretry_after_s integer | null · optionalservice string · requiredstatus pending | running | completed | failed | outcome_unknown · requiredHTTP 400 · Invalid research requestHTTP 401 · Invalid Hive authenticationHTTP 404 · Public profile not foundHTTP 409 · Conflicting immutable request or unavailable recoveryHTTP 410 · Research job or result expiredHTTP 429 · Research rate limitedHTTP 503 · Research unavailableHTTP 504 · Research timed out/scrapers/x/space/recordingRecording
Resolve one observed replay reference and check a bounded audio sample; bytes are not retained.
Idempotency-Key header · optionalRequired for initial collection; replay and cached pages start no new work.
prefer header · optionallimit integer · optionalMinimum: 1. Maximum: 50. Default: 20.
page integer · optionalOne-based cached page. Initial collection requires page 1; later pages require result_id and cannot extend the collected window. Minimum: 1. Maximum: 500. Default: 1.
result_id string | null · optionalOwner- and operation-bound immutable collection. Keep the same business request, ordered inputs and limit. Cached pages require no Idempotency-Key and launch no additional work. Pattern: ^rresult_[a-f0-9]{32}$.
space_id string · requiredOne explicit public Space ID or canonical x.com/i/spaces URL. Minimum length: 8. Maximum length: 512.
Successful Response
audio_retained false · requiredcollected_count integer · requiredMinimum: 0. Maximum: 2000.
collection_complete null · requiredcollection_limit integer · requiredMinimum: 1. Maximum: 2000.
count integer · requiredMinimum: 0. Maximum: 50.
expires_at integer · requiredUnix seconds; the collection expires 24 hours after submission. Polling, replay and cached pages do not renew it.
items object[] · requiredMaximum items: 50.
items[].access_evidence playlist_and_audio_sample | null · requireditems[].audio_retained false · requireditems[].creator object | null · requireditems[].ended_at string | null · requireditems[].hosts object[] · requiredMaximum items: 100.
items[].hosts[].display_name string | null · requireditems[].hosts[].image_url string | null · requireditems[].hosts[].profile_id string | null · requireditems[].hosts[].profile_url string · requireditems[].hosts[].username string · requireditems[].recording_status accessible | expired | inaccessible | missing_reference | unverified · requireditems[].recording_url string | null · requireditems[].relation_evidence observed_space_id · requireditems[].replay_reported boolean | null · requireditems[].space_id string · requireditems[].space_url string · requireditems[].speakers object[] · requiredMaximum items: 100.
items[].speakers[].display_name string | null · requireditems[].speakers[].image_url string | null · requireditems[].speakers[].profile_id string | null · requireditems[].speakers[].profile_url string · requireditems[].speakers[].username string · requireditems[].started_at string | null · requireditems[].state ended | live | scheduled | unknown · requireditems[].title string | null · requiredlimit integer · requiredMinimum: 1. Maximum: 50.
next_page integer | null · requiredMinimum: 2. Maximum: 500.
page integer · requiredMinimum: 1. Maximum: 500.
partial boolean · requiredCollection-wide flag repeated on every cached page: missing candidate core fields, unresolved post targets, or image retention failures/limits can set it, even when absent from this page.
partial_reasons string[] · requiredMaximum items: 10.
result_id string · requiredPattern: ^rresult_[a-f0-9]{32}$.
space_id string · requiredtruncated true | null · requiredTrue when collection omitted results; null means completeness is unknown.
Accepted
created_at integer · requirederror string | null · optionalexpires_at integer · requiredjob_id string · requiredoperation string · requiredpoll_url string · requiredRelative Hive URL. Poll with the same bearer; wait_seconds up to 25 waits for completion. GET returns this envelope (200), with the completed first page under result. Terminal jobs never launch another paid run on replay; eligible saved archive data has an explicit recover endpoint.
result object | null · optionalretry_after_s integer | null · optionalservice string · requiredstatus pending | running | completed | failed | outcome_unknown · requiredHTTP 400 · Invalid research requestHTTP 401 · Invalid Hive authenticationHTTP 404 · Public profile not foundHTTP 409 · Conflicting immutable request or unavailable recoveryHTTP 410 · Research job or result expiredHTTP 429 · Research rate limitedHTTP 503 · Research unavailableHTTP 504 · Research timed out/scrapers/x/space/transcriptTranscript
Transcribe a finite recorded Space prefix with real returned text and optional timed segments.
Idempotency-Key header · optionalRequired for initial collection; replay and cached pages start no new work.
prefer header · optionallimit integer · optionalMinimum: 1. Maximum: 50. Default: 20.
max_minutes integer · optionalFinite prefix transcription bound; longer recordings are clipped. No full-recording guarantee. Minimum: 1. Maximum: 30. Default: 5.
page integer · optionalOne-based cached page. Initial collection requires page 1; later pages require result_id and cannot extend the collected window. Minimum: 1. Maximum: 500. Default: 1.
result_id string | null · optionalOwner- and operation-bound immutable collection. Keep the same business request, ordered inputs and limit. Cached pages require no Idempotency-Key and launch no additional work. Pattern: ^rresult_[a-f0-9]{32}$.
space_id string · requiredOne explicit public Space ID or canonical x.com/i/spaces URL. Minimum length: 8. Maximum length: 512.
Successful Response
audio_retained false · requiredcollected_count integer · requiredMinimum: 0. Maximum: 2000.
collection_complete null · requiredcollection_limit integer · requiredMinimum: 1. Maximum: 2000.
count integer · requiredMinimum: 0. Maximum: 50.
expires_at integer · requiredUnix seconds; the collection expires 24 hours after submission. Polling, replay and cached pages do not renew it.
items object[] · requiredMaximum items: 50.
items[].audio_retained false · requireditems[].duration_seconds number | null · requiredMinimum: 0.
items[].language string | null · requireditems[].method speech_to_text | null · requireditems[].prefix_limited boolean · requireditems[].relation_evidence source_url | source_request · requireditems[].segments object[] | null · requiredMaximum items: 2000.
items[].space_id string · requireditems[].space_url string · requireditems[].text string | null · requiredMaximum length: 200000.
items[].title string | null · requireditems[].transcribed_seconds number | null · requireditems[].transcript_complete null · requireditems[].transcript_status available | unavailable | missing_transcript · requiredlimit integer · requiredMinimum: 1. Maximum: 50.
next_page integer | null · requiredMinimum: 2. Maximum: 500.
page integer · requiredMinimum: 1. Maximum: 500.
partial boolean · requiredCollection-wide flag repeated on every cached page: missing candidate core fields, unresolved post targets, or image retention failures/limits can set it, even when absent from this page.
partial_reasons string[] · requiredMaximum items: 10.
requested_max_minutes integer · requiredMinimum: 1. Maximum: 30.
result_id string · requiredPattern: ^rresult_[a-f0-9]{32}$.
space_id string · requiredtruncated true | null · requiredTrue when collection omitted results; null means completeness is unknown.
Accepted
created_at integer · requirederror string | null · optionalexpires_at integer · requiredjob_id string · requiredoperation string · requiredpoll_url string · requiredRelative Hive URL. Poll with the same bearer; wait_seconds up to 25 waits for completion. GET returns this envelope (200), with the completed first page under result. Terminal jobs never launch another paid run on replay; eligible saved archive data has an explicit recover endpoint.
result object | null · optionalretry_after_s integer | null · optionalservice string · requiredstatus pending | running | completed | failed | outcome_unknown · requiredHTTP 400 · Invalid research requestHTTP 401 · Invalid Hive authenticationHTTP 404 · Public profile not foundHTTP 409 · Conflicting immutable request or unavailable recoveryHTTP 410 · Research job or result expiredHTTP 429 · Research rate limitedHTTP 503 · Research unavailableHTTP 504 · Research timed out/statuszRead service availability
Success
HTTP 400 · Invalid requestHTTP 401 · Invalid Hive authenticationHTTP 409 · Conflicting state or idempotency keyHTTP 410 · Result expiredHTTP 503 · Requested service or constraints unavailable/web/waybackGet Wayback
Resolve one existing HTML capture within a year or date. Blocked or throttled archive access never means no capture exists.
date string | null · optionalYYYY-MM-DD; provide exactly one year or date. Pattern: ^\d{4}-\d{2}-\d{2}$.
url string · requiredExact public HTTP/HTTPS URL to look up; it is never fetched from its live host. Minimum length: 1. Maximum length: 2048.
year integer | null · optionalMinimum: 1996. Maximum: 2100.
Successful Response
archive_url string · requiredcache_expires_at number · requiredcache_hit boolean · requiredcapture_datetime string · requiredcapture_timestamp string · requiredcapture_validation cdx_and_replay_url | cdx_replay_and_memento_datetime · requiredcdx_digest string · requiredcontent_type string · requireddecoding_lossy boolean · requiredencoding string · requiredhistory_complete null · optionalUnknown; this lookup does not enumerate all historical captures.
html string · requiredDecoded identity replay HTML, with no local rewriting or script execution.
html_base64 string · requiredExact decoded HTTP entity bytes; decode base64 before comparing sha256.
replay_mode id_ · requiredrequested_period string · requiredselected_capture_timestamp string · requiredselection earliest_returned_capture | archive_redirect_to_indexed_capture · requiredsha256 string · requiredsize_bytes integer · requiredtext string · requiredText extracted from HTML without executing JavaScript or loading assets.
text_truncated boolean · requiredurl string · requiredHTTP 400 · Invalid research requestHTTP 401 · Invalid Hive authenticationHTTP 403 · Archive access blockedHTTP 404 · Public profile not foundHTTP 429 · Research rate limitedHTTP 503 · Research unavailableHTTP 504 · Research timed out