grokzilla.shop / try

{ try it }

"skills": 33, // 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 33 skills

"phone-normalize": { Phone Normalize & Validate $0.0021 Parse and validate one phone number with full libphonenumber metadata: valid/possible, number type, region, E.164, national and international formats. Offline. No owner or carrier lookup. Unparseable numbers refused before payment.
"method": "POST", "content_type": "application/json",
"price_usd": 0.0021, // 2100 atomic USDC (6 decimals)
"network": "eip155:8453", // Base mainnet
"asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913", // USDC
"payTo": "0xc22f9CAEBAc37fE72D5142f35f21f6696Ea9Ef69",
"you_provide": { // JSON body fields
required string A phone number, e.g. +1 415 555 2671. Without a leading + send region too. Required · string min length 3 · max length 64 Example: "+1 415 555 2671"
optional string Two-letter default region (ISO 3166-1), e.g. US or GB. Optional · string
optional string Value for `request_id`. Optional · string min length 1 · max length 64
},
"request_body": // live, from your inputs
{
  "number": "+1 415 555 2671"
}
"you_get": { // HTTP 200 application/json after payment
"output_schema":
{
  "type": "object",
  "properties": {
    "ok": {
      "type": "boolean"
    },
    "skill": {
      "type": "string"
    },
    "service": {
      "type": "string"
    },
    "version": {
      "type": "string"
    },
    "summary": {
      "type": "string"
    },
    "data": {
      "type": "object",
      "properties": {
        "input": {
          "type": "string"
        },
        "valid": {
          "type": "boolean"
        },
        "possible": {
          "type": "boolean"
        },
        "type": {
          "type": "string"
        },
        "region": {
          "type": "string"
        },
        "country_code": {
          "type": "integer"
        },
        "national_number": {
          "type": "string"
        },
        "extension": {
          "type": "null"
        },
        "e164": {
          "type": "string"
        },
        "international": {
          "type": "string"
        },
        "national": {
          "type": "string"
        },
        "rfc3966": {
          "type": "string"
        },
        "metadata": {
          "type": "string"
        }
      }
    },
    "confidence": {
      "type": "number"
    },
    "sources": {
      "type": "array"
    },
    "generated_at": {
      "type": "string"
    },
    "data_as_of": {
      "type": "string"
    },
    "charged": {
      "type": "boolean"
    },
    "warnings": {
      "type": "array"
    },
    "next": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "note": {
      "type": "string"
    }
  },
  "required": [
    "ok",
    "skill"
  ]
}
"example":
{
  "ok": true,
  "skill": "phone_normalize",
  "service": "phone_normalize",
  "version": "1.0.0",
  "summary": "valid fixed_line_or_mobile number in US: +14155552671",
  "data": {
    "input": "+1 415 555 2671",
    "valid": true,
    "possible": true,
    "type": "fixed_line_or_mobile",
    "region": "US",
    "country_code": 1,
    "national_number": "4155552671",
    "extension": null,
    "e164": "+14155552671",
    "international": "+1 415-555-2671",
    "national": "(415) 555-2671",
    "rfc3966": "tel:+1-415-555-2671",
    "metadata": "libphonenumber 9.0.41"
  },
  "confidence": 1.0,
  "sources": [],
  "generated_at": "2026-10-17T11:12:57Z",
  "data_as_of": "2026-10-17T11:12:57Z",
  "charged": true,
  "warnings": [],
  "next": [
    "email_check"
  ],
  "note": "Format and validity only. No owner, carrier or location lookup."
}
},
"flow": [
  1. POST https://grokzilla.shop/api/skills/phone-normalize 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: "2100", payTo}]} (same JSON in the body)
  3. your x402 client checks amount ≤ $0.0021 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/phone-normalize on this host and decodes the 402. Never pays.
}