API

The openckey.org API.

Plain JSON over HTTPS. Errors are JSON objects of the form {"error": "…"}, and dynamic responses are never cached.

Docs: Overview · Payloads · SDKs · Telemetry · API

POST /api/entries

Creates hosted text or a short query. Requires Content-Type: application/json and a Cloudflare Turnstile token issued for the action create_entry on openckey.org, so it is meant for the form on the home page. Creation is rate-limited.

{"kind":"text","body":"Hello","style":{"theme":"cream","font":"serif","size":"medium","width":"comfortable","align":"left"},"expiry":"7d","turnstileToken":"…"}

    {"kind":"sq","destination":"https://example.org/page","expiry":"7d","expiryBehavior":"root","turnstileToken":"…"}

Returns 201 with {"kind","id","status","url","expiresAt"}. Text is active at once; a short query is pending until its safety scan clears.

GET /api/status/{kind}/{id}

Returns {"status","expiresAt","preserveUntil"}, where status is pending, active, blocked, expired, or retired.

GET /text/{id} and /sq/{id}

POST /api/reports

Reports a hosted text or short query for review. Use the report form, which supplies the Turnstile token (action report_entry).

{"kind":"sq","id":"Ab3_Xy7","reason":"phishing","details":"optional context","turnstileToken":"…"}

reason is one of phishing, malware, spam, illegal, or other. No IP address is stored with a report.

Telemetry

See Telemetry for what a batch may contain.

GET /api/config

Returns the public Turnstile site key used by the site’s forms.

Administration

Revocation and preservation extension are admin-only endpoints that require a bearer token. Revocation never deletes or reassigns an identifier.