# Product Scam Risk Checker (`trovevault/product-scam-risk-checker`) Actor

Checks store URLs for verdict, riskScore, storeMaturityScore, paymentSafetyStatus, and redFlagDensity. Export data, run via API, schedule and monitor runs, or integrate with other tools.

- **URL**: https://apify.com/trovevault/product-scam-risk-checker.md
- **Developed by:** [Trove Vault](https://apify.com/trovevault) (community)
- **Categories:** AI, E-commerce, Other
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 1 bookmarks
- **User rating**: No ratings yet

## Pricing

from $1.70 / 1,000 urls

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

Learn more: https://docs.apify.com/platform/actors/running/actors-in-store#pay-per-event

## What's an Apify Actor?

Actors are a software tools running on the Apify platform, for all kinds of web data extraction and automation use cases.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.
Actors are written with capital "A".

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.
The best way to integrate Actors is as follows.

In JavaScript/TypeScript projects, use official [JavaScript/TypeScript client](https://docs.apify.com/api/client/js.md):

```bash
npm install apify-client
```

In Python projects, use official [Python client library](https://docs.apify.com/api/client/python.md):

```bash
pip install apify-client
```

In shell scripts, use [Apify CLI](https://docs.apify.com/cli/docs.md):

````bash
# MacOS / Linux
curl -fsSL https://apify.com/install-cli.sh | bash
# Windows
irm https://apify.com/install-cli.ps1 | iex
```bash

In AI frameworks, you might use the [Apify MCP server](https://docs.apify.com/platform/integrations/mcp.md).

If your project is in a different language, use the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).


# README

## Product Scam Risk Checker

Product Scam Risk Checker helps buyers inspect shopping pages before they purchase. Paste one or more store homepages, product pages, deal pages, category pages, or ad landing pages and the Actor checks each page plus a few same-domain trust pages for visible scam-risk and seller-trust signals.

It does not guarantee that a purchase is safe or fraudulent. It gives a practical buyer-facing verdict from observable evidence: payment wording, page language, visible price, HTTPS, contact evidence, return/refund policies, privacy/terms pages, page quality, and recognizable commerce-platform hints.

### What it checks

- Page type, page title, and visible price when available
- HTTPS and unusual domain patterns
- Suspicious product wording such as replica, fake, 1:1, or mirror quality
- High-risk payment wording such as wire transfer, crypto-only, Western Union, or friends-and-family payment
- Recognized payment wording such as Visa, Mastercard, PayPal, Shop Pay, Apple Pay, or Google Pay
- Contact or customer-support evidence
- Return, refund, privacy, terms, shipping, and support pages linked from the checked page
- Business identity evidence such as about pages, email, phone, social links, and commerce-platform hints
- Store maturity, business identity completeness, catalog depth, policy quality, and store-specific content
- Payment safety, social proof, external trust/account surfaces, and red-flag density
- Technical trust evidence such as HTTPS and structured product data
- Thin or incomplete pages that expose little buyer-protection evidence

### Input

| Field | Description |
|---|---|
| `urls` | Shopping, store, product, deal, category, or landing page URLs to check. Each URL produces one output row. |

That is the only required input. The Actor automatically checks a small number of same-domain trust pages such as Contact, Returns, Shipping, Privacy, Terms, FAQ, and Support when those links are visible.

### Output

Each submitted URL produces one dataset row with the buyer-facing assessment.

| Field | Meaning |
|---|---|
| `verdict` | `safe_to_consider`, `caution`, `avoid`, or `unknown`. |
| `riskScore` | 0 to 100 visible scam-risk score. |
| `trustScore` | 0 to 100 visible trust score. |
| `trustLevel` | Strong, moderate, weak, or very weak visible trust profile. |
| `storeMaturityScore` | 0 to 100 score for how established the store appears. |
| `businessIdentityCompleteness` | Complete, partial, weak, or missing business identity evidence. |
| `catalogDepthStatus` | Very small, small, normal, or unknown catalog evidence. Product pages are marked unknown unless they expose links to other products. |
| `policyQualityStatus` | Store-specific, standard, generic/boilerplate, thin, or missing policies. |
| `contactQualityStatus` | Complete, usable, basic, or missing contact evidence. |
| `paymentSafetyStatus` | Protected visible, unclear, missing, or high-risk payment evidence. |
| `socialProofStatus` | Social links found or missing; social links are not verified. |
| `storeSpecificityScore` | 0 to 100 score for store-specific content versus generic boilerplate. |
| `externalTrustSurface` | External trust/account redirects found while checking the store. |
| `redFlagDensity` | Serious risk or missing-trust signals per checked same-domain page. |
| `confidence` | Confidence based on page access and evidence coverage. |
| `checkedUrl` | Submitted URL being assessed. |
| `pageType` | Homepage, product, category/collection, checkout/cart, trust page, or generic page. |
| `pageTitle` | Best available page title. |
| `httpsStatus` | Whether the checked page uses HTTPS. |
| `contactStatus` | Whether contact or support evidence was found. |
| `returnPolicyStatus` | Whether return or refund policy wording was found. |
| `privacyPolicyStatus` | Whether privacy policy wording was found. |
| `termsStatus` | Whether terms wording was found. |
| `paymentProtectionStatus` | Trusted, risky, or missing payment evidence. |
| `businessIdentityStatus` | Clear, partial, or weak visible store identity. |
| `technicalTrustStatus` | Technical trust status from HTTPS, platform, and structured data signals. |
| `pageQualityStatus` | Structured, standard, thin, or not loaded. |
| `summary` | Short explanation of the assessment. |
| `recommendedAction` | Suggested next step before buying. |
| `riskSignals` | Signals that increased the risk score. |
| `trustSignals` | Signals that reduced risk or improved confidence. |
| `missingTrustSignals` | Important trust evidence that was not found. |
| `pageFacts` | Extracted facts from the submitted page and trust pages. |
| `checkedPages` | Submitted and same-domain trust pages inspected. |

### Example output

```json
{
  "checkedUrl": "https://webscraper.io/test-sites/e-commerce/static/product/31",
  "domain": "webscraper.io",
  "pageType": "product",
  "verdict": "caution",
  "riskScore": 19,
  "trustScore": 50,
  "trustLevel": "moderate",
  "storeMaturityScore": 39,
  "businessIdentityCompleteness": "partial",
  "catalogDepthStatus": "unknown",
  "policyQualityStatus": "generic_or_boilerplate",
  "contactQualityStatus": "usable",
  "paymentSafetyStatus": "missing",
  "socialProofStatus": "multi_channel_unverified",
  "storeSpecificityScore": 65,
  "redFlagDensity": 0.2,
  "confidence": "high",
  "contactStatus": "found",
  "returnPolicyStatus": "missing",
  "privacyPolicyStatus": "found",
  "paymentProtectionStatus": "not_found",
  "businessIdentityStatus": "clear",
  "pageTitle": "Packard 255 G2",
  "price": 416.99,
  "currency": "USD",
  "summary": "\"Packard 255 G2\" scored 19/100 and needs manual caution before buying. No protected payment wording such as PayPal, card, Shop Pay, Apple Pay, or Google Pay was found in the fetched pages.",
  "recommendedAction": "Do not rush. Check independent reviews, seller identity, refund policy, and payment protection before purchasing."
}
````

### API example

```bash
curl "https://api.apify.com/v2/acts/trovevault~product-scam-risk-checker/runs?waitForFinish=1" \
  -H "Authorization: Bearer $APIFY_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "urls": [
      { "url": "https://webscraper.io/test-sites/e-commerce/static" },
      { "url": "https://webscraper.io/test-sites/e-commerce/static/product/31" },
      { "url": "https://webscraper.io/test-sites/e-commerce/static/computers/laptops" }
    ]
  }'
```

### Use cases

- Check a store homepage, product page, category page, or deal landing page before buying
- Spot obvious warning signs before entering payment details
- Generate a compact record of why a page looks safe, risky, or unclear

### Limitations

- The Actor checks visible page evidence only. It cannot verify inventory, order fulfillment, chargeback outcomes, or whether reviews are real.
- Some stores render important details with JavaScript or block direct HTTP requests. Those pages may need proxy settings or future browser-backed checks.
- Absence of a warning sign is not a safety guarantee. Use protected payment methods and independent reviews before buying.

# Actor input Schema

## `urls` (type: `array`):

Shopping, store, product, landing, or deal URLs to check for visible scam-risk and seller-trust signals. Each URL produces one output row.

## Actor input object example

```json
{
  "urls": [
    {
      "url": "https://webscraper.io/test-sites/e-commerce/static",
      "label": "demo store homepage"
    },
    {
      "url": "https://webscraper.io/test-sites/e-commerce/static/product/31",
      "label": "demo product page"
    }
  ]
}
```

# Actor output Schema

## `dataset` (type: `string`):

No description

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "urls": [
        {
            "url": "https://webscraper.io/test-sites/e-commerce/static",
            "label": "demo store homepage"
        },
        {
            "url": "https://webscraper.io/test-sites/e-commerce/static/product/31",
            "label": "demo product page"
        }
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("trovevault/product-scam-risk-checker").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = { "urls": [
        {
            "url": "https://webscraper.io/test-sites/e-commerce/static",
            "label": "demo store homepage",
        },
        {
            "url": "https://webscraper.io/test-sites/e-commerce/static/product/31",
            "label": "demo product page",
        },
    ] }

# Run the Actor and wait for it to finish
run = client.actor("trovevault/product-scam-risk-checker").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print("💾 Check your data here: https://console.apify.com/storage/datasets/" + run["defaultDatasetId"])
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "urls": [
    {
      "url": "https://webscraper.io/test-sites/e-commerce/static",
      "label": "demo store homepage"
    },
    {
      "url": "https://webscraper.io/test-sites/e-commerce/static/product/31",
      "label": "demo product page"
    }
  ]
}' |
apify call trovevault/product-scam-risk-checker --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=trovevault/product-scam-risk-checker",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Product Scam Risk Checker",
        "description": "Checks store URLs for verdict, riskScore, storeMaturityScore, paymentSafetyStatus, and redFlagDensity. Export data, run via API, schedule and monitor runs, or integrate with other tools.",
        "version": "0.1",
        "x-build-id": "wsj2lNc87Kk49T4PQ"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/trovevault~product-scam-risk-checker/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-trovevault-product-scam-risk-checker",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/acts/trovevault~product-scam-risk-checker/runs": {
            "post": {
                "operationId": "runs-sync-trovevault-product-scam-risk-checker",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor and returns information about the initiated run in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/runsResponseSchema"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/acts/trovevault~product-scam-risk-checker/run-sync": {
            "post": {
                "operationId": "run-sync-trovevault-product-scam-risk-checker",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        }
    },
    "components": {
        "schemas": {
            "inputSchema": {
                "type": "object",
                "required": [
                    "urls"
                ],
                "properties": {
                    "urls": {
                        "title": "URLs to Check",
                        "type": "array",
                        "description": "Shopping, store, product, landing, or deal URLs to check for visible scam-risk and seller-trust signals. Each URL produces one output row.",
                        "items": {
                            "type": "object",
                            "required": [
                                "url"
                            ],
                            "properties": {
                                "url": {
                                    "type": "string",
                                    "title": "URL of a web page",
                                    "format": "uri"
                                }
                            }
                        }
                    }
                }
            },
            "runsResponseSchema": {
                "type": "object",
                "properties": {
                    "data": {
                        "type": "object",
                        "properties": {
                            "id": {
                                "type": "string"
                            },
                            "actId": {
                                "type": "string"
                            },
                            "userId": {
                                "type": "string"
                            },
                            "startedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "finishedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "status": {
                                "type": "string",
                                "example": "READY"
                            },
                            "meta": {
                                "type": "object",
                                "properties": {
                                    "origin": {
                                        "type": "string",
                                        "example": "API"
                                    },
                                    "userAgent": {
                                        "type": "string"
                                    }
                                }
                            },
                            "stats": {
                                "type": "object",
                                "properties": {
                                    "inputBodyLen": {
                                        "type": "integer",
                                        "example": 2000
                                    },
                                    "rebootCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "restartCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "resurrectCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "computeUnits": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "options": {
                                "type": "object",
                                "properties": {
                                    "build": {
                                        "type": "string",
                                        "example": "latest"
                                    },
                                    "timeoutSecs": {
                                        "type": "integer",
                                        "example": 300
                                    },
                                    "memoryMbytes": {
                                        "type": "integer",
                                        "example": 1024
                                    },
                                    "diskMbytes": {
                                        "type": "integer",
                                        "example": 2048
                                    }
                                }
                            },
                            "buildId": {
                                "type": "string"
                            },
                            "defaultKeyValueStoreId": {
                                "type": "string"
                            },
                            "defaultDatasetId": {
                                "type": "string"
                            },
                            "defaultRequestQueueId": {
                                "type": "string"
                            },
                            "buildNumber": {
                                "type": "string",
                                "example": "1.0.0"
                            },
                            "containerUrl": {
                                "type": "string"
                            },
                            "usage": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "integer",
                                        "example": 1
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "usageTotalUsd": {
                                "type": "number",
                                "example": 0.00005
                            },
                            "usageUsd": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "number",
                                        "example": 0.00005
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
