{
  "slug": "avro-to-json",
  "name": "gizza-ai/avro-to-json",
  "version": "0.1.0",
  "title": "Avro to JSON — Decode Apache Avro (.avro / OCF) to JSON — gizza.ai",
  "description": "Decode Apache Avro Object Container Files (.avro / OCF) to JSON, NDJSON, or the embedded schema — no .avsc needed, free and private in your browser.",
  "tags": [
    "avro",
    "avro to json",
    "apache avro",
    "avro decoder",
    "ocf",
    "avro container file",
    "deserialize avro",
    "avro viewer"
  ],
  "category": "data",
  "urls": {
    "page": "https://gizza.ai/tools/avro-to-json/",
    "markdown": "https://gizza.ai/tools/avro-to-json/index.md",
    "descriptor": "https://gizza.ai/tools/avro-to-json/tool.json",
    "deep_link_example": "https://gizza.ai/tools/avro-to-json/?input=T2JqAQQ...&encoding=auto&format=records"
  },
  "cli": "gizza tool avro-to-json \"T2JqAQQ...\"",
  "tool": {
    "description": "Decode an Apache Avro Object Container File (.avro / OCF) into readable JSON records. The OCF embeds its own writer schema, so NO external .avsc is needed. Give the file bytes as base64 or hex in 'input' (set encoding='auto' (default), 'base64', or 'hex'). Use format='records' (default) for a pretty JSON array, 'ndjson' for one JSON record per line, or 'full' for { schema, count, records } including the embedded writer schema. Logical types are decoded (dates/timestamps as integers, uuid as a string, decimals/bytes/fixed as base64). Runs locally — the data never leaves the device. Note: this reads OCF container files, not bare/single-object-encoded Avro (which carry no schema).",
    "parameters": {
      "additionalProperties": false,
      "properties": {
        "encoding": {
          "default": "auto",
          "description": "How the input bytes are encoded. 'auto' (default) detects hex (only hex digits, even length) else base64. base64 accepts standard or URL-safe, padding optional; hex ignores spaces, ':' and '-'.",
          "enum": [
            "auto",
            "base64",
            "hex"
          ],
          "type": "string"
        },
        "format": {
          "default": "records",
          "description": "Output shape. 'records' (default) is a pretty JSON array of the records; 'ndjson' is one compact JSON record per line; 'full' is { schema, count, records } including the embedded writer schema.",
          "enum": [
            "records",
            "ndjson",
            "full"
          ],
          "type": "string"
        },
        "input": {
          "description": "The Avro Object Container File (.avro) bytes, as a base64 or hex string.",
          "type": "string"
        }
      },
      "required": [
        "input"
      ],
      "type": "object"
    }
  }
}