webhooks.xyz

Binary Payloads: MessagePack and Protobuf

Devices, transit feeds and internal services often send binary bodies. A bin decodes them to JSON when they arrive. The decoded JSON is what you see, search, filter, route and (if you choose) forward. The bytes as received stay stored and you can download them.

MessagePack

Send Content-Type: application/msgpack (or application/x-msgpack, application/vnd.msgpack). No set-up. Binary values show as {"$bytes": "<base64>"}, extension types as {"$ext": code, "$bytes": …}.

Protobuf

  1. Open a bin, then Binary bodies → schemas in the Destinations panel (or /b/<bin-id>/schemas).
  2. Upload all .proto files of one schema together. Imports between the files and the Google well-known types work.
  3. Write the path map: which message type decodes which path.
/telemetry acme.telemetry.Reading
/vehicles  transit_realtime.FeedMessage
*          acme.Envelope

What uses the decoded JSON

Limits

FreeDevTeamBusiness
Protobuf schemas per bin131025
Message size1 MB1 MB1 MB1 MB

A schema is at most 20 files of 256 KB each.

API and MCP

GET    /api/v1/bins/{id}/schemas
POST   /api/v1/bins/{id}/schemas          {"name", "files": {"acme/reading.proto": "syntax = \"proto3\"; …"}}
PUT    /api/v1/bins/{id}/schemas/map      {"map": "/telemetry acme.Reading\n* acme.Envelope"}
DELETE /api/v1/bins/{id}/schemas/{schema_id}

MCP tools: list_schemas, add_schema, set_schema_map, delete_schema.