Generate Protocol Buffer (.proto) schema definitions from JSON objects.
Free online JSON to Protobuf converter. Paste any JSON object and generate a complete .proto schema with auto-inferred field types (int32, int64, double, bool, string), nested message types for nested objects, repeated fields for arrays, and optional well-known type imports (Timestamp, Value). Supports both proto2 and proto3 syntax with configurable message name and package. Runs entirely in your browser — no data is ever sent to a server.
Keywords: json to protobuf, json to proto, json to protobuf schema, json to proto3, json to proto2, json to grpc, protobuf schema generator, proto schema generator, json to protocol buffer, generate proto from json, json to .proto file, protobuf converter online, grpc schema from json
Tags: json, protobuf, proto, schema, grpc, converter
Paste your JSON object or sample payload into the input panel on the left.
Select the Protobuf syntax version — proto2 or proto3 — from the options panel.
Optionally configure the top-level message name, package name, and Go package option.
Click "Generate" or press ⌘↵ to produce the .proto schema.
Copy the generated .proto definition with ⌘⇧C and add it to your protobuf project.
Supports both proto2 and proto3 syntax with correct field rules (optional/required vs implicit presence)
Automatically maps JSON types to Protobuf scalar types: int32, int64, double, bool, string, and bytes
Generates nested message definitions for nested JSON objects, preserving structure hierarchy
Maps JSON arrays to repeated fields with inferred element type
Handles null/missing values by using optional fields in proto3 or optional keyword in proto2
Configurable top-level message name — defaults to the JSON root key or "Root"
Package declaration and Go package option generation for multi-language projects
Sequential field number assignment starting from 1, following protobuf conventions
Runs entirely in your browser — your JSON payload is never sent to any server
Keyboard shortcut ⌘↵ to generate, ⌘⇧C to copy the .proto output