The slop API.
One URL in. JSON out. No key needed.
Make a request
GET https://isthisaslop.site/api?url=https%3A%2F%2Fexample.com%2F
curl --get 'https://isthisaslop.site/api' \
--data-urlencode 'url=https://example.com/about'
Use a full https:// or http:// URL. URL-encode the value, especially links with their own query strings.
POST works too, with JSON or a form-encoded url field:
curl 'https://isthisaslop.site/api' \
-H 'Content-Type: application/json' \
-d '{"url":"https://example.com/about"}'
The response
Illustrative excerpt; real responses also include category scores, matched evidence, coverage and timestamps.
{
"version": "1.3.1",
"status": "scored",
"score": 48,
"label": "Some familiar AI-site patterns",
"host": "example.com",
"cached": false,
"crawl": {
"max_pages": 20,
"pages_attempted": 2,
"pages_scanned": 2,
"scored_pages": 2,
"pages_skipped": 0,
"scoring": "strongest_scored_page",
"scoring_page": "/about",
"pages": [
{"path": "/about", "score": 48, "status": "scored"},
{"path": "/services", "score": 36, "status": "scored"}
]
}
}
score is 0–100. status: "insufficient" comes with score: null when there is too little content. Match evidence includes the page path where it was found.
Limits
- 12 requests per 10 minutes per client IP, shared with the website form. Cached and invalid requests count. IPv6 addresses share a /64 quota.
- 20 fresh scans per target hostname per 10 minutes. Four scans can run at once, with a service-wide budget of 100 fresh scans per 10 minutes.
- Responses include
X-RateLimit-Limit,X-RateLimit-RemainingandX-RateLimit-Reset(Unix time). A429includesRetry-Afterin seconds. - Results are cached for 15 minutes. Allow up to 50 seconds for a fresh request.
What gets scanned
Up to 20 page attempts, including failures, within 42 seconds. Only direct links on the same hostname and scheme are sampled; no recursive discovery. Queries, downloads, login and action links are skipped. Each sampled page has its own score.
The overall score and category bars use the strongest scored page. crawl.scoring_page · crawl.pages
Only public HTML over standard HTTP(S) ports. No credentials, form submissions or private-network access. Scanned PHP is read as a remote response, never included or executed by our PHP application.
Errors
| HTTP | Meaning |
|---|---|
| 400 / 413 | Malformed JSON / request too large |
| 405 | Use GET or POST |
| 422 | Invalid URL, blocked destination or unreadable page |
| 429 | Rate limit reached; wait for Retry-After |
| 503 | All scan slots busy; retry shortly |
| 500 | Temporary scanner error |
{"error":"Too many scans. Please wait and try again.","retry_after":120}
GET URLs may appear in infrastructure logs. Use POST for links with sensitive query strings. This endpoint is intended for server-to-server use; browser cross-origin access is not enabled.
Scanning isthisaslop.site returns status: "self_detected", score: null and an Easter egg instead of a measured score.