Skip to main content

Documentation Index

Fetch the complete documentation index at: https://www.rhetoricaudit.com/docs/llms.txt

Use this file to discover all available pages before exploring further.

Every analysis produced by POST /api/analyze is assigned a shortcode — a short alphanumeric identifier that lets you retrieve or share that specific scan. This endpoint returns the full analysis result for any public scan without requiring authentication, making it useful for embedding results or building share flows.

What is a shortcode?

A shortcode is a short alphanumeric string, such as "abc123", returned in the shortcode field of every POST /api/analyze response. It is generated atomically on insert and is globally unique. You can:
  • Retrieve the scan via GET /api/scans/{shortcode}
  • Share the scan at https://www.rhetoricaudit.com/s/{shortcode}

Retrieve a scan

GET https://www.rhetoricaudit.com/api/scans/{shortcode}

Path parameter

ParameterTypeDescription
shortcodestringThe shortcode returned by POST /api/analyze

Authentication

No authentication is required to retrieve a public scan. If the scan owner has set it to private (isPublic: false), this endpoint returns 404.

Response

The response shape is identical to a POST /api/analyze response. All analysis fields are present, including shortcode, cached, isPublic, isOwner, and all FME scoring fields. See POST /api/analyze for the complete field reference.

Example

curl https://www.rhetoricaudit.com/api/scans/abc123

Error responses

StatusBodyWhen it occurs
404{ "error": "not found" }Shortcode does not exist or scan is set to private

Toggle scan privacy

Scan owners can control whether their scan is accessible via its shortcode URL.
POST https://www.rhetoricaudit.com/api/scans/{shortcode}/privacy
Content-Type: application/json
Request body
FieldTypeRequiredDescription
device_idstringYesThe deviceId used when the scan was originally created
is_publicbooleanYestrue to make the scan publicly accessible, false to restrict it
Response
{ "ok": true, "is_public": false }
Error responses
StatusBodyWhen it occurs
400{ "error": "device_id required" }Missing or too-short device_id
403{ "error": "not owner" }The device_id does not match the scan’s owner
404{ "error": "not found" }Shortcode does not exist
Privacy is enforced by device_id rather than account authentication. If you lose the deviceId that was used when the scan was originally created, you will not be able to toggle the privacy of that scan.

Health check

GET /api/analyze returns a status object confirming the API is reachable and showing the current version. This is the same endpoint used for the POST analysis — a GET request to it never triggers analysis.
curl https://www.rhetoricaudit.com/api/analyze
{
  "status": "ok",
  "version": "3.0.0",
  "fme_prompt_version": "V18.6",
  "primary_model": "openai/gpt-4o-mini",
  "fallback_model": "openai/gpt-4.1-nano",
  "cache": "enabled",
  "service": "Rhetoric Audit FME Analysis API",
  "timestamp": "2026-05-09T12:00:00.000Z"
}