Reference · v1

The snizzly API

Programmatic access to the AI humanizer and AI detector. JSON over HTTPS, authenticated with a bearer key. Create keys in your account.

Authentication

Every request needs an Authorization header with a key from /account/api-keys. The key is shown once at creation — store it somewhere safe.

Authorization: Bearer snz_your_api_key

Base URL

https://snizzly.com

POST /v1/humanize

Rewrites AI-generated text so it reads as human, and returns a fresh AI-detection score on the result. Bills the key owner’s credits — 1 credit per 2,000 words, charged only on success.

Body

curl -X POST https://snizzly.com/v1/humanize \
  -H "Authorization: Bearer snz_your_api_key" \
  -H "Content-Type: application/json" \
  -d '{"text":"In conclusion, the data clearly demonstrates...","preset":"academic","strength":3}'

Response

{
  "output": "...the humanized text...",
  "detection": {
    "score": 14,
    "classification": { "aiGenerated": 6, "aiRefined": 8, "humanWritten": 86 }
  },
  "creditsCharged": 1
}

POST /v1/detect

Classifies how text was most likely produced. Free — no credit cost.

curl -X POST https://snizzly.com/v1/detect \
  -H "Authorization: Bearer snz_your_api_key" \
  -H "Content-Type: application/json" \
  -d '{"text":"The text you want to check..."}'

Response

{
  "score": 88,
  "classification": { "aiGenerated": 71, "aiRefined": 17, "humanWritten": 12 },
  "confidence": "high",
  "overallVerdict": "likely-ai"
}

Rate limits

Limits are per account: /v1/humanize 20 requests/minute, /v1/detect 60 requests/minute. Over the limit returns 429 with a Retry-After header.

Errors

Errors are JSON with an error field. Common statuses: 401 invalid/missing key, 402 insufficient credits (with need / have), 413 text too long, 429 rate limited, 500 server error.

{ "error": "insufficient credits", "need": 2, "have": 0 }

Content API

The Content API exposes snizzly’s curated catalog — glossary terms, journal articles, learning paths, and programmatic lessons — as JSON, so other tools can integrate snizzly as a content primitive. It’s public: no API key, IP-rate-limited at 600 requests/IP/hour. CORS is open to * so browser-side widgets can call it directly. Every catalog only changes on a snizzly deploy — cache responses aggressively, both in your CDN and your client.

Endpoints

Example — fetch a glossary term

curl https://snizzly.com/v1/content/glossary/burstiness
{
  "slug": "burstiness",
  "term": "Burstiness",
  "definition": "The variation in sentence length and complexity across a passage...",
  "relatedArticles": ["how-ai-detectors-work", "why-ai-writing-gets-flagged"]
}

Example — list articles

curl https://snizzly.com/v1/content/articles
{
  "count": 9,
  "items": [
    {
      "slug": "what-is-ai-detection",
      "title": "What is AI detection?",
      "dek": "AI detectors are everywhere now...",
      "category": "Explainer",
      "publishedAt": "2026-05-22",
      "readingMinutes": 6,
      "pathSlug": "detection-primer",
      "body": [
        { "type": "p", "text": "An AI detector is a tool..." },
        { "type": "h2", "text": "The three-way split", "id": "the-three-way-split" }
      ]
    }
  ]
}

Example — fetch a learning path

curl https://snizzly.com/v1/content/paths/detection-primer
{
  "slug": "detection-primer",
  "title": "The Detection Primer",
  "description": "Start here. Three short lessons...",
  "audience": "Everyone",
  "lessons": [
    "what-is-ai-detection",
    "how-ai-detectors-work",
    "why-ai-writing-gets-flagged"
  ],
  "outcome": "Read a detector score the way an editor would..."
}

Example — fetch a programmatic lesson

curl https://snizzly.com/v1/content/lessons/<slug>
{
  "slug": "...",
  "title": "Burstiness in a personal statement",
  "conceptSlug": "burstiness",
  "useCaseSlug": "personal_statement",
  "lede": "Why model-drafted personal statements feel flat — and the rhythm fix.",
  "body": [
    { "type": "p", "text": "..." },
    { "type": "example", "before": "...", "after": "...", "note": "..." }
  ],
  "related": ["voice", "what-makes-writing-sound-human"]
}

Example — search

curl 'https://snizzly.com/v1/content/search?q=burstiness&limit=5'
{
  "q": "burstiness",
  "count": 3,
  "items": [
    {
      "type": "concept",
      "slug": "burstiness",
      "title": "Burstiness",
      "snippet": "The variation in sentence length and complexity across a passage...",
      "score": 4
    },
    {
      "type": "article",
      "slug": "how-ai-detectors-work",
      "title": "How AI detectors work",
      "snippet": "...detectors weight burstiness alongside perplexity...",
      "score": 2
    }
  ]
}

q is required (2–80 chars). limit defaults to 20 and is capped at 50. Tool URLs are filtered out — this endpoint returns content, not product surfaces.

Example — list cornerstones

curl https://snizzly.com/v1/content/cornerstones
{ "count": 0, "items": [] }

The cornerstone-essays catalog is empty today. The endpoint is live so integrators can code against it; entries appear automatically as Content publishes them.

Rate-limit response

Over the limit returns 429 with a Retry-After header and a retryAfterSec field in the JSON body. A missing slug returns 404 with { "error": "Not found" }.