Docs

Start here

Report a Code preview

POST/v1/previews/reportson https://api.auray.ai/v1

Report a Code preview — a page served at its own address on auray.app while somebody's Code project runs — by that address.

Report a Code preview — a page served at its own address on auray.app while somebody's Code project runs — by that address. No key is read: whoever met the page reports it anonymously, paced per address and network, and pays a proof-of-work challenge from POST /v1/community/reports/challenge (send its challenge and your nonce; one challenge is one report of either kind). The same report again, for the same reason while it is open, is merged into it. A preview already taken down is refused taken_down, and an address no preview of ours has not_found. Nobody is told how a report sent here ends; to hear back, write to the abuse address the help page names. A report names no account.

#Authentication

No key needed, and none is read: a report about a Code preview is anonymous, paced per address and network, and pays a proof-of-work challenge from POST /v1/community/reports/challenge — send its challenge and your nonce in the body.

#Request

#Body

application/json, required.

FieldTypeRequiredDefaultDescription
addressstringyes—The preview's address as it was opened — https://<label>.auray.app, with any path after it, or without its scheme. 0 to 2048 characters.
categorystringyes—One of "csam", "nonconsensual_likeness", "violent_extremism", "voice_cloning", "harassment", "copyright", "disinformation", "phishing", "malware", "other".
detailsstringyes—What the page did, as you saw it. 10 to 5000 characters.
challengestringyes—A challenge from POST /v1/community/reports/challenge, unchanged.
noncestringyes—A nonce such that sha256("<salt>.<nonce>") begins with the challenge's bits zero bits. 0 to 64 characters.

#Example request

curl -X POST https://api.auray.ai/v1/previews/reports \
  -H "content-type: application/json" \
  -d '{
  "address": "https://abcdefghijklmnopqrstuvwxyz.auray.app/login",
  "category": "phishing",
  "details": "The page asks for a bank password and a card number."
}'

#Responses

#201 Created

Received.

FieldTypeRequiredDefaultDescription
objectstringyes—One of "report".
targetstringyes—One of "preview".
categorystringyes—One of "csam", "nonconsensual_likeness", "violent_extremism", "voice_cloning", "harassment", "copyright", "disinformation", "phishing", "malware", "other".
receivedbooleanyes—
mergedbooleanyes—Merged into the open report about the same preview for the same reason.
request_idstringno—Mirrored in the X-Request-Id header.

Headers:

HeaderDescription
RateLimit-LimitBurst capacity.
RateLimit-Remaining
RateLimit-ResetSeconds until refill.
X-RateLimit-Limit
X-RateLimit-Remaining
X-RateLimit-ResetUnix seconds. The X- spelling is what client libraries read.
X-Request-Id

#400 Bad Request

#404 Not Found

#409 Conflict

#410 Gone

#413 Payload Too Large

#429 Too Many Requests

#503 Service Unavailable

#Status codes

StatusMeaning
201Received.
400Bad Request
404Not Found
409Conflict
410Gone
413Payload Too Large
429Too Many Requests
503Service Unavailable

Every refusal names its code, and every code is explained at Errors.

Start typing to search every page of the documentation.

Up arrow Down arrow to moveEnter to openEscape to close