Introduction
The ScamsTester API provides programmatic access to our website trust database, allowing developers to retrieve trust scores, detailed reports, and safety assessments for any domain. The API follows REST conventions, returns JSON responses, and supports both free and premium access tiers.
All API requests are served over HTTPS from the base URL:
Authentication
All API requests require an API key passed in the request header. You can generate an API key by registering for a free developer account at developers.scamstester.com.
Include your API key in every request using the Authorization header:
API keys are scoped to your account and rate-limited according to your plan tier. Never expose your API key in client-side code or public repositories. If a key is compromised, you can regenerate it instantly from your developer dashboard.
Endpoints
GET /v1/check/{domain}
Returns a comprehensive trust report for the specified domain, including the composite trust score, safety classification, category breakdown, and key findings.
GET /v1/score/{domain}
Returns a lightweight response with only the trust score and classification. Ideal for high-volume lookups where you don't need the full report.
GET /v1/search
Search the ScamsTester database by keyword or partial domain match. Returns paginated results sorted by relevance.
Query Parameters for /v1/search
q |
Search query string (required). Minimum 2 characters. |
page |
Page number for pagination (default: 1). |
limit |
Results per page, 1–50 (default: 10). |
classification |
Filter by score range: safe, caution, or danger. |
sort |
Sort order: relevance, score_asc, score_desc, updated. |
Response Format
All responses are returned as JSON with UTF-8 encoding. Successful responses include an HTTP 200 status code. The response body structure varies by endpoint but always includes the domain field for identification.
Timestamps follow ISO 8601 format (YYYY-MM-DDTHH:mm:ssZ) in UTC. Boolean values are returned as JSON true/false. Numeric scores are integers in the range 0–100.
Rate Limits
API requests are rate-limited based on your subscription tier. Rate limit headers are included in every response to help you manage usage:
Free
100 requests / dayAll endpoints, JSON responses, community support.
Pro — $49/mo
5,000 requests / dayBulk lookups, webhook alerts, priority support, historical data.
Enterprise — Custom
Unlimited requests / dayDedicated infrastructure, SLA guarantee, custom endpoints, account manager.
Error Codes
The API uses standard HTTP status codes. Error responses include a JSON body with error and message fields:
200 |
Success — request processed and data returned. |
400 |
Bad Request — invalid domain format or missing required parameters. |
401 |
Unauthorized — missing or invalid API key. |
403 |
Forbidden — API key does not have access to this endpoint or tier. |
404 |
Not Found — domain not in our database. Submit a review request via the website. |
429 |
Rate Limited — daily request quota exceeded. Check X-RateLimit-Reset header. |
500 |
Internal Server Error — temporary issue on our end. Retry with exponential backoff. |
503 |
Service Unavailable — API is undergoing maintenance. Check our status page. |
SDKs & Libraries
We provide official SDK libraries to simplify integration in popular languages. All SDKs are open source and available on GitHub.
JavaScript / Node.js
Python
cURL
Additional SDKs are available for PHP, Ruby, Go, and Java. Visit our GitHub organization for the full list of repositories, documentation, and code examples.
Webhooks (Pro & Enterprise)
Pro and Enterprise tier users can configure webhooks to receive real-time notifications when a monitored domain's trust score changes significantly. Webhook payloads are sent as HTTP POST requests with JSON bodies:
Best Practices
- Cache responses — Trust scores don't change every minute. Cache results for at least 1 hour (free tier) or 15 minutes (Pro/Enterprise) to minimize unnecessary API calls.
- Use the score endpoint for bulk lookups — If you only need the trust score and classification, use
/v1/score/{domain}instead of the full check endpoint for faster responses and lower bandwidth. - Handle rate limits gracefully — Monitor the
X-RateLimit-Remainingheader and implement exponential backoff when approaching your limit. - Validate domain input — Strip protocols (
https://) and trailing paths before passing domains to the API. The API accepts bare domain names only (e.g.,example.com). - Secure your API key — Store keys in environment variables or secure vaults. Never commit API keys to version control or embed them in client-side JavaScript.
Enterprise & Custom Solutions
Enterprise plans include dedicated infrastructure, guaranteed uptime SLAs, custom endpoint development, batch processing APIs, and a dedicated account manager. Enterprise pricing is based on volume and requirements.
For enterprise inquiries, partnership proposals, or custom integration support, please contact our team with details about your use case and expected volume. We typically respond within one business day.