grokzilla.shop / try

{ try it }

"skills": 21, // pay-per-call, no account, no API key
"protocol": "x402 v2 · scheme exact",
"network": "eip155:8453", // Base mainnet
"this_page_pays": false // "Send unpaid request" only shows the 402 challenge. Paying stays with your own wallet or agent.
optional · prompt only The Base address your agent pays from. It is only written into the copyable agent prompt so your agent knows which wallet to use. It is never sent to the server and nothing is signed here.

← all 21 skills

"ai-detector": { AI Content Detector $0.01 Estimate whether text (or a web page's text) is AI-written using a trained classifier: about 78% accurate on a held-out benchmark (not a guarantee). Uncertain results suggest a rerun on a longer section (300+ words); tell phrases are only a secondary 'possible AI influence' signal.
"method": "POST", "content_type": "application/json",
"price_usd": 0.01, // 10000 atomic USDC (6 decimals)
"network": "eip155:8453", // Base mainnet
"asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913", // USDC
"payTo": "0xc22f9CAEBAc37fE72D5142f35f21f6696Ea9Ef69",
"you_provide": { // JSON body fields
optional string URL of the page to check. Send either url or text (at least one). Optional · string
optional string The text to check for likely AI generation. Send either text or url. Optional · string Example: "So I finally fixed the porch light on Saturday. It's worth noting that I'd tried twice before and gave up (the wiring is ancient). Honestly the whole thing was
},
"request_body": // live, from your inputs
{
  "text": "So I finally fixed the porch light on Saturday. It's worth noting that I'd tried twice before and gave up (the wiring is ancient). Honestly the whole thing was a testament to stubbornness. My brother Sam held the ladder and complained the entire time, which didn't help one bit. In conclusion, the bulb works, the switch clicks, and I only shocked myself once! Next up is the doorbell, if I can find the manual. I can't, probably. It's in a box somewhere in the garage behind 3 bikes and a broken lawnmower."
}
"you_get": { // HTTP 200 application/json after payment
"output_schema":
{
  "type": "object",
  "properties": {
    "skill": {
      "type": "string"
    },
    "verdict": {
      "type": "string"
    },
    "classifier": {
      "type": "object",
      "properties": {
        "verdict": {
          "type": "string"
        },
        "probability_ai": {
          "type": "number"
        },
        "threshold_ai": {
          "type": "number"
        },
        "threshold_human": {
          "type": "number"
        },
        "model_version": {
          "type": "string"
        },
        "model_kind": {
          "type": "string"
        }
      }
    },
    "content_type": {
      "type": "string"
    },
    "possible_ai_influence": {
      "type": "boolean"
    },
    "rubric_score": {
      "type": "number"
    },
    "sections": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "section": {
            "type": "string"
          },
          "section_weight": {
            "type": "number"
          },
          "result": {
            "type": "string"
          },
          "evidence": {
            "type": "array"
          }
        }
      }
    },
    "tell_phrases": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "phrase": {
            "type": "string"
          },
          "tell_weight": {
            "type": "number"
          },
          "count": {
            "type": "integer"
          }
        }
      }
    },
    "ai_likelihood": {
      "type": "number"
    },
    "band": {
      "type": "array",
      "items": {
        "type": "number"
      }
    },
    "signals": {
      "type": "object",
      "properties": {
        "sentence_length_mean": {
          "type": "number"
        },
        "sentence_length_variance": {
          "type": "number"
        },
        "burstiness": {
          "type": "number"
        },
        "type_token_ratio": {
          "type": "number"
        },
        "hapax_ratio": {
          "type": "number"
        },
        "punctuation_diversity": {
          "type": "integer"
        },
        "repeated_ngram_rate": {
          "type": "number"
        },
        "stock_phrase_per_100": {
          "type": "number"
        },
        "stock_phrase_hits": {
          "type": "integer"
        },
        "stock_phrases_found": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "contraction_rate": {
          "type": "number"
        },
        "average_word_length": {
          "type": "number"
        },
        "line_length_uniformity": {
          "type": "null"
        },
        "line_count": {
          "type": "integer"
        },
        "verse_like": {
          "type": "boolean"
        },
        "sentence_count": {
          "type": "integer"
        },
        "lexical_features_used": {
          "type": "boolean"
        }
      }
    },
    "method": {
      "type": "string"
    },
    "word_count": {
      "type": "integer"
    },
    "caveats": {
      "type": "array",
      "items": {
        "type": "string"
      }
    }
  },
  "required": [
    "skill"
  ]
}
"example":
{
  "skill": "ai_detector",
  "verdict": "possible_ai_influence",
  "classifier": {
    "verdict": "uncertain",
    "probability_ai": 0.362,
    "threshold_ai": 0.585,
    "threshold_human": 0.3233,
    "model_version": "2026-10-13",
    "model_kind": "logistic_regression"
  },
  "content_type": "opinion",
  "possible_ai_influence": true,
  "rubric_score": 0.4,
  "sections": [
    {
      "section": "rhythm",
      "section_weight": 0.1,
      "result": "no_signal",
      "evidence": [
        "8 sentences, sentence-length CV 0.35 (AI <= 0.34, human >= 0.55)",
        "rhythm is in the overlap range where human and prompted-AI text both sit"
      ]
    },
    {
      "section": "vocabulary",
      "section_weight": 0.4,
      "result": "ai_sign",
      "evidence": [
        "tell-phrase weight 2.4 (2.64 per 100 words, 138-entry list)",
        "tells: it's worth noting, a testament to, in conclusion",
        "lexical diversity MTLD 105 (informational, not scored)",
        "surprisal mean 3.21, variance 2.15, spike 0.40; rare-word share 0.033; MATTR 0.834; Zipf slope deviation 0.63",
        "tell phrases are dense; possible AI influence (secondary signal)"
      ]
    },
    {
      "section": "voice_structure",
      "section_weight": 0.3,
      "result": "no_signal",
      "evidence": [
        "ai cues: hedging (2 hedges)",
        "human cues: none",
        "first person, names, dialogue and sensory detail are not counted either way"
      ]
    },
    {
      "section": "resolution",
      "section_weight": 0.2,
      "result": "no_signal",
      "evidence": [
        "rhythm vs vocabulary: no_overlap (no_signal / ai_sign)",
        "vocabulary vs voice_structure: no_overlap (ai_sign / no_signal)",
        "voice_structure vs rhythm: no_overlap (no_signal / no_signal)",
        "tell phrases present but not confirmed by two sections; secondary signal only"
      ]
    }
  ],
  "tell_phrases": [
    {
      "phrase": "it's worth noting",
      "tell_weight": 0.9,
      "count": 1
    },
    {
      "phrase": "a testament to",
      "tell_weight": 0.9,
      "count": 1
    },
    {
      "phrase": "in conclusion",
      "tell_weight": 0.6,
      "count": 1
    }
  ],
  "ai_likelihood": 0.7822,
  "band": [
    0.5334,
    1.0
  ],
  "signals": {
    "sentence_length_mean": 11.375,
    "sentence_length_variance": 16.2344,
    "burstiness": 0.3542,
    "type_token_ratio": 0.7582,
    "hapax_ratio": 0.8841,
    "punctuation_diversity": 4,
    "repeated_ngram_rate": 0.0,
    "stock_phrase_per_100": 3.2967,
    "stock_phrase_hits": 3,
    "stock_phrases_found": [
      "it's worth noting",
      "a testament to",
      "in conclusion"
    ],
    "contraction_rate": 3.2967,
    "average_word_length": 4.3846,
    "line_length_uniformity": null,
    "line_count": 1,
    "verse_like": false,
    "sentence_count": 8,
    "lexical_features_used": true
  },
  "method": "stylometry",
  "word_count": 91,
  "caveats": [
    "Detection is probabilistic and should not be used as the only evidence that a text was or was not written by a person.",
    "ai_likelihood is a stylometric score from 0 to 1, not a calibrated probability. The band widens when there is less text and is not a statistical confidence interval.",
    "A low score means these surface patterns are weak. It does not prove a person wrote the text.",
    "Weights were chosen on a small set of public-domain prose, poems, and synthetic assistant-style paragraphs. Fixture accuracy is not a field accuracy."
  ]
}
},
"flow": [
  1. POST https://grokzilla.shop/api/skills/ai-detector with the JSON body, no payment header
  2. ← 402 Payment Required + PAYMENT-REQUIRED header: base64 JSON {x402Version: 2, accepts: [{scheme: "exact", network: "eip155:8453", asset: USDC, amount: "10000", payTo}]} (same JSON in the body)
  3. your x402 client checks amount ≤ $0.01 and signs a USDC transfer authorization to payTo with your wallet
  4. retry the same POST with PAYMENT-SIGNATURE: <base64> (x402 v2) or X-PAYMENT (v1 clients)
  5. ← 200 OK with the result JSON + PAYMENT-RESPONSE header (base64 settlement receipt, tx hash on Base)
],
"copy": { // fills in from your inputs as you type
"agent_prompt"

        
"curl" // unpaid: shows the 402

        
"agentcash" // pays from your AgentCash wallet

        
},
"try": // POSTs unpaid to /api/skills/ai-detector on this host and decodes the 402. Never pays.
}