Prism Adverse Screen API
Scrape Prism Adverse Screen data with one API call. Reads the recent public posts of a person's own profiles (one per platform: `linkedin`, `twitter`, `facebook`, `instagram`, `threads`, `tiktok`, each a handle or a profile URL) and asks, post by post, whether the author engages in, admits, threatens or promotes each category you screen for: `fraud_or_financial_crime`, `violence_or_threats`, `hate_or_harassment`, `drugs`, `sanctions_or_terror_links`, `sexual_misconduct`, `reputational_other` (default: all). A separate check keeps posts that report, quote, warn about or condemn what someone else did (news, a scam warning) from counting as the author's conduct, and a severity level (1 minor, 2 serious, 3 severe) is given for every flagged post. Every entry of `flags` cites its post (`platform`, `post_id`, `url`, `published_at`, an `excerpt`) with the probability for each requested category; `category_counts` counts flagged and uncertain posts per category; `requires_review` is true when any post is flagged. With `name` (and optionally `employer`, `city`), each profile is first checked against the named person: only profiles judged to be the person's own are screened, the rest are listed in `profiles` with the identity verdict and are not screened (`screen_unconfirmed=true` screens possible matches too, never a profile judged to be someone else). These are automated labels for a human reviewer, not a decision: there is no summary, verdict or score about the person, and political opinion, religion, health, sexuality and other personal characteristics are never screened. Public posts only; private accounts return nothing. `screen_complete` is false when a profile or a post could not be screened, and `_warnings` says why.
Last updated September 2026Maintained by the SocialCrawl team
Returns the posts on a person's own public profiles that need review, each citing its post with a probability per category and a severity level, plus counts per category.
Use it in background or KYC screening to find adverse posts across a candidate's profiles without reading every post by hand. Your reviewer makes the call.
Searching 65 platforms in parallel
What can you do with the Adverse Screen API?
The Adverse Screen endpoint gives you structured Prism data with computed fields in a single request. No scraping infrastructure to build or maintain.
Example Request
curl -H "x-api-key: YOUR_API_KEY" \
"https://www.socialcrawl.dev/v1/prism/adverse-screen?twitter=elonmusk&name=Elon+Musk&categories=fraud_or_financial_crime%2Cviolence_or_threats"import requests
response = requests.get(
"https://www.socialcrawl.dev/v1/prism/adverse-screen",
params={
'twitter': 'elonmusk',
'name': 'Elon Musk',
'categories': 'fraud_or_financial_crime,violence_or_threats',
},
headers={"x-api-key": "YOUR_API_KEY"},
)
data = response.json()const response = await fetch(
"https://www.socialcrawl.dev/v1/prism/adverse-screen?twitter=elonmusk&name=Elon+Musk&categories=fraud_or_financial_crime%2Cviolence_or_threats",
{
headers: { "x-api-key": "YOUR_API_KEY" },
},
);
const data = await response.json();Parameters
| Parameter | Required | Description |
|---|---|---|
| No | LinkedIn profile URL (linkedin.com/in/...) or the profile slug. | |
| No | X (Twitter) handle or profile URL. | |
| No | Facebook profile or page URL, or its username. | |
| No | Instagram handle or profile URL. | |
| threads | No | Threads handle or profile URL. |
| tiktok | No | TikTok handle or profile URL. |
| name | No | The person's full name. When set, each profile is checked against it before screening. |
| employer | No | Optional current employer, used only for the identity check. |
| city | No | Optional city or country, used only for the identity check. |
| categories | No | Comma-separated subset of fraud_or_financial_crime, violence_or_threats, hate_or_harassment, drugs, sanctions_or_terror_links, sexual_misconduct, reputational_other. Default: all. An unknown member is a 400. |
| since | No | Only screen posts published on or after this date (YYYY-MM-DD). |
| limit | No | Most recent posts screened per profile, 1 to 100 (default 50). One timeline page is read per profile. |
| screen_unconfirmed | No | Set true to also screen profiles whose identity is possible or could not be judged. Profiles judged to be someone else are never screened. |
What does the Prism Adverse Screen API return?
Every response follows one unified schema. Here is a real, unmodified response body, so you can see the exact fields you get back before spending a credit.
Example response
{
"success": true,
"platform": "instagram",
"endpoint": "/v1/instagram/engagement",
"data": {
"engagement_rate_percentages": 38.33,
"recent_posts": 12,
"followers": 87608035,
"comments": 528912,
"likes": 33049046,
"recent_posts_explanation": "Statistics based on the last 12 posts",
"id_user": "2278169415",
"username": "mrbeast",
"is_private": false,
"posts_details": [
{
"likes": 5636982,
"comments": 69484,
"taken_at": 1781457954,
"datetime": "2026-06-14 20:25:54",
"hours_since_post": 461,
"time_ago": "19 days ago",
"likes_per_hour": 12228,
"comments_per_hour": 151
},
{
"likes": 20000768,
"comments": 223510,
"taken_at": 1732824650,
"datetime": "2024-11-28 23:10:50",
"hours_since_post": 13971,
"time_ago": "2 years ago",
"likes_per_hour": 1432,
"comments_per_hour": 16
},
{
"likes": 929226,
"comments": 30633,
"taken_at": 1782232475,
"datetime": "2026-06-23 19:34:35",
"hours_since_post": 246,
"time_ago": "10 days ago",
"likes_per_hour": 3777,
"comments_per_hour": 125
},
{
"likes": 487761,
"comments": 22482,
"taken_at": 1781799425,
"datetime": "2026-06-18 19:17:05",
"hours_since_post": 366,
"time_ago": "15 days ago",
"likes_per_hour": 1333,
"comments_per_hour": 61
},
{
"likes": 712265,
"comments": 15716,
"taken_at": 1781366405,
"datetime": "2026-06-13 19:00:05",
"hours_since_post": 487,
"time_ago": "20 days ago",
"likes_per_hour": 1463,
"comments_per_hour": 32
},
{
"likes": 1475116,
"comments": 35386,
"taken_at": 1781277094,
"datetime": "2026-06-12 18:11:34",
"hours_since_post": 512,
"time_ago": "21 days ago",
"likes_per_hour": 2881,
"comments_per_hour": 69
},
{
"likes": 1108220,
"comments": 26632,
"taken_at": 1780160249,
"datetime": "2026-05-30 19:57:29",
"hours_since_post": 822,
"time_ago": "1 months ago",
"likes_per_hour": 1348,
"comments_per_hour": 32
},
{
"likes": 542948,
"comments": 28476,
"taken_at": 1779375582,
"datetime": "2026-05-21 17:59:42",
"hours_since_post": 1040,
"time_ago": "1 months ago",
"likes_per_hour": 522,
"comments_per_hour": 27
},
{
"likes": 698514,
"comments": 24401,
"taken_at": 1779120014,
"datetime": "2026-05-18 19:00:14",
"hours_since_post": 1111,
"time_ago": "2 months ago",
"likes_per_hour": 629,
"comments_per_hour": 22
},
{
"likes": 468000,
"comments": 13548,
"taken_at": 1778947209,
"datetime": "2026-05-16 19:00:09",
"hours_since_post": 1159,
"time_ago": "2 months ago",
"likes_per_hour": 404,
"comments_per_hour": 12
},
{
"likes": 526594,
"comments": 24411,
"taken_at": 1777737719,
"datetime": "2026-05-02 19:01:59",
"hours_since_post": 1495,
"time_ago": "2 months ago",
"likes_per_hour": 352,
"comments_per_hour": 16
},
{
"likes": 462652,
"comments": 14233,
"taken_at": 1777580305,
"datetime": "2026-04-30 23:18:25",
"hours_since_post": 1538,
"time_ago": "2 months ago",
"likes_per_hour": 301,
"comments_per_hour": 9
}
]
},
"credits_used": 5,
"credits_remaining": 9999,
"request_id": "req-8Kq2ZmR4vT9xLb3P",
"cached": false
}Example captured from the Instagram API. Every SocialCrawl endpoint returns this same unified schema, so your Prism Adverse Screen response has the same fields.
How does the Prism Adverse Screen API work?
Send a GET request with your API key and get back clean, structured JSON in our unified schema. Supported computed fields are populated when the source provides the required inputs.
Method
GET
Response
JSON
How do you scrape social media data in seconds?
The fastest social media scraping API for developers. Scrape profiles, posts, comments, and analytics from 65 platforms covering 10B+ monthly active users.
One schema, every platform
Query 65 platforms with identical response structures. Write your integration once.
Computed fields, not just scraped
When an endpoint supports these metrics and the source provides the required inputs, the normalized record includes engagement_rate, estimated_reach, content_category, and language. Ready to use.
See your data before you code
Visual Data Explorer. Paste any URL, get rich result cards, sortable tables, CSV export.
import requests
response = requests.get(
'https://www.socialcrawl.dev/v1/tiktok/profile',
params={'handle': 'charlidamelio'},
headers={'x-api-key': 'sc_YOUR_API_KEY'}
)
data = response.json(){
"success": true,
"platform": "tiktok",
"data": {
"author": {
"username": "charlidamelio",
"followers": 152400000
},
"engagement": {
"likes": 12400000000,
"engagement_rate": 0.087
},
"metadata": {
"language": "en",
"content_category": "lifestyle"
}
}
}Ready to scrape Prism Adverse Screen data?
Get your API key and start pulling Prism data in under 60 seconds.
