Avro to JSON Converter

Paste an Apache Avro Object Container File (.avro) as base64 or hex and read it as JSON. The schema is embedded in the file, so nothing else is needed. Choose a JSON array, NDJSON, or a full view with the writer schema. Runs entirely in your browser — no server, no sign-up.

JSON

Read Apache Avro files as JSON

Apache Avro is a compact, schema-driven binary format used widely in data pipelines (Kafka, Hadoop, Spark). An Object Container File (.avro, often called an OCF) bundles the records together with the writer schema that describes them — so the file is fully self-describing. This tool reads that container and turns the records back into plain JSON, right in your browser.

Paste the file's bytes as base64 or hex and pick how you want the output. No .avsc schema file is required, because the schema travels inside the container.

Output formats

How values are decoded

Common uses

This tool reads container files that embed their schema — not bare, single-object-encoded Avro values, which carry no schema on their own. Everything runs locally in your browser via WebAssembly — your data never leaves your machine.

FAQ

Do I need to supply the .avsc schema file?

No. An Avro Object Container File embeds its writer schema in the file header, so the tool reads it from the bytes you paste. That's also why bare, single-object-encoded Avro values are rejected — they carry no schema. If you see the error "not an Avro Object Container File", the bytes are missing the Obj\x01 magic that every OCF starts with.

How should I encode the file bytes — base64 or hex?

Either works. With encoding set to auto (the default), input made only of hex digits with an even length is treated as hex; anything else is decoded as base64. Base64 may use the standard or URL-safe alphabet and padding is optional; hex may contain spaces, : or - separators, which are ignored. On a shell, base64 < file.avro produces ready-to-paste input.

Why do dates, timestamps, and decimals come out as numbers or base64 strings?

Logical types are unwrapped to their underlying representation: date, time, and timestamp values appear as their raw integers, a uuid becomes its usual string form, and decimal, bytes, and fixed values are base64-encoded so no raw bytes are lost. Unions are flattened to the actual branch value.

How can I see which schema the file was written with?

Pick the Full output format. It returns an object with the embedded writer schema, the record count, and the decoded records — useful for confirming what a producer actually wrote to a Kafka topic or data lake.

Developer & Automation Access

Run it from the terminal

Same engine as this page, headless — via the gizza CLI:

gizza tool avro-to-json "T2JqAQQ..."

New to the CLI? Get gizza →

Open it by URL

Pre-fill and auto-run this tool with query parameters — the names match the API/CLI:

https://gizza.ai/tools/avro-to-json/?input=T2JqAQQ...&encoding=auto&format=records

Machine-readable descriptor: tool.json — title + parameters JSON Schema for agents.