API
Everything the website does, curl can do. Base URL https://isitslop-api.julien-fca.workers.dev/v1. JSON in, JSON out. No API keys for reading. Rate limited per IP. Source on GitHub.
Try the rules on any URL (nothing stored)
curl "https://isitslop-api.julien-fca.workers.dev/v1/preview?url=example.com"
Search the index
curl "https://isitslop-api.julien-fca.workers.dev/v1/entries?q=example"
Add a URL
curl -X POST https://isitslop-api.julien-fca.workers.dev/v1/entries -H 'content-type: application/json' \
-d '{"url":"https://example.com"}'Verify ownership
# start: method is dns | file | email for sites, repo_file for GitHub repos
curl -X POST https://isitslop-api.julien-fca.workers.dev/v1/entries/ENTRY_ID/verify/start -H 'content-type: application/json' \
-d '{"method":"dns"}'
# follow the instructions in the response, then:
curl -X POST https://isitslop-api.julien-fca.workers.dev/v1/entries/ENTRY_ID/verify/check -H 'content-type: application/json' \
-d '{"verificationId":"...","code":"123456 (email only)"}'
# -> { verified: true, ownerKey: "isk_..." } shown onceRequest a grade (owner only)
curl -X POST https://isitslop-api.julien-fca.workers.dev/v1/entries/ENTRY_ID/grade \
-H 'authorization: Bearer isk_...' -H 'content-type: application/json' \
-d '{"acceptTerms":true,"people":{"visitors":1200,"activated":90,"returned":40}}'Sending acceptTerms: true is agreement to the terms at /terms. The people object is optional.
Appeal (owner only)
curl -X POST https://isitslop-api.julien-fca.workers.dev/v1/entries/ENTRY_ID/appeals \
-H 'authorization: Bearer isk_...' -H 'content-type: application/json' \
-d '{"text":"The who rule missed: the page says built for clinics in the hero."}'Methodology
curl https://isitslop-api.julien-fca.workers.dev/v1/methodology