{"openapi":"3.1.0","info":{"title":"MessagePack API","version":"1.0.0","description":"Encode and decode MessagePack — the compact binary serialization format (\"it's like JSON, but fast and small\") used by Redis, Fluentd, many RPC systems and IoT protocols. The encode endpoint turns a JSON value into MessagePack bytes, automatically choosing the smallest representation for each integer, string, array and map; the decode endpoint parses MessagePack back into a JSON value. It implements the full spec — nil, booleans, every fixed and variable integer width, float32 and float64, str and bin, arrays and maps, and the ext family — and rejects trailing or truncated data rather than silently mangling it. Binary (bin) values and any non-UTF-8 string come back losslessly as a {\"_bytes_hex\":\"…\"} object, and ext values as {\"_ext\":{\"type\":N,\"hex\":\"…\"}}, so encode and decode round-trip exactly. Bytes are exchanged as both hex and base64 so they survive any transport. Everything is computed locally and deterministically, so it is instant and private. Ideal for debugging MessagePack payloads, bridging JSON and msgpack systems, RPC and cache tooling, IoT pipelines, and teaching the format. Pure local computation — no key, no third-party service, instant. Live, nothing stored. 3 endpoints. This is MessagePack specifically; for JSON, YAML, TOML or XML use those format APIs, for BitTorrent's Bencode use the Bencode API, and for base64, hex, URL or HTML encoding use a general encoding API.","contact":{"name":"PremiumApi","url":"https://www.oanor.com/by/premiumapi"}},"servers":[{"url":"https://api.oanor.com/msgpack-api","description":"oanor gateway"}],"tags":[{"name":"MessagePack"},{"name":"Meta"}],"components":{"securitySchemes":{"oanorKey":{"type":"apiKey","in":"header","name":"x-oanor-key","description":"Get your key at https://www.oanor.com/developer/keys"}}},"security":[{"oanorKey":[]}],"paths":{"/v1/decode":{"get":{"operationId":"get_v1_decode","tags":["MessagePack"],"summary":"Decode MessagePack to a JSON value","description":"","parameters":[{"name":"hex","in":"query","required":false,"description":"The MessagePack bytes as hex","schema":{"type":"string"},"example":"82a7636f6d70616374c3a6736368656d6100"},{"name":"base64","in":"query","required":false,"description":"Or the bytes as base64","schema":{"type":"string"}}],"security":[{"oanorKey":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"data":{"bytes":18,"value":{"schema":0,"compact":true}},"meta":{"timestamp":"2026-06-03T17:42:17.513Z","request_id":"0c266bf9-56a7-4a74-9834-c5bfc0f1b071"},"status":"ok","message":"Decode from MessagePack","success":true}}}},"401":{"description":"Missing or invalid x-oanor-key header"},"402":{"description":"Active subscription required"},"429":{"description":"Rate-limit or monthly quota reached"},"502":{"description":"Upstream did not respond"}}}},"/v1/encode":{"get":{"operationId":"get_v1_encode","tags":["MessagePack"],"summary":"Encode a JSON value to MessagePack","description":"","parameters":[{"name":"json","in":"query","required":true,"description":"A JSON value to encode","schema":{"type":"string"},"example":"{\"compact\":true,\"schema\":0}"}],"security":[{"oanorKey":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"data":{"hex":"82a7636f6d70616374c3a6736368656d6100","bytes":18,"base64":"gqdjb21wYWN0w6ZzY2hlbWEA"},"meta":{"timestamp":"2026-06-03T17:42:17.629Z","request_id":"b87b4a87-7400-4ea9-beaf-8984e6454691"},"status":"ok","message":"Encode to MessagePack","success":true}}}},"401":{"description":"Missing or invalid x-oanor-key header"},"402":{"description":"Active subscription required"},"429":{"description":"Rate-limit or monthly quota reached"},"502":{"description":"Upstream did not respond"}}}},"/v1/meta":{"get":{"operationId":"get_v1_meta","tags":["Meta"],"summary":"Spec","description":"","parameters":[],"security":[{"oanorKey":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"data":{"name":"MessagePack API","notes":"Integers use the smallest fitting width; 64-bit integers beyond 2^53 decode to a decimal string to avoid precision loss. Map keys are kept in order. bin -> {_bytes_hex}, ext -> {_ext:{type,hex}} round-trip exactly. Nothing is stored.","version":"v1","endpoints":[{"path":"/v1/encode","params":{"json":"a JSON value to encode (string)"},"returns":"the MessagePack bytes as hex and base64, with byte length"},{"path":"/v1/decode","params":{"hex":"the MessagePack bytes as hex","base64":"or as base64"},"returns":"the decoded JSON value"},{"path":"/v1/meta","params":[],"returns":"this document"}],"description":"Encode and decode MessagePack — the compact binary serialization format (\"it's like JSON, but fast and small\") used by Redis, Fluentd, many RPC systems and IoT protocols. The encode endpoint turns a JSON value into MessagePack bytes, automatically choosing the smallest representation for each integer, string, array and map; the decode endpoint parses MessagePack back into a JSON value. It implements the full spec — nil, booleans, every fixed and variable integer width, float32/64, str/bin, arrays and maps, and the ext family — and rejects trailing or truncated data. Binary (bin) values and non-UTF-8 strings come back losslessly as a {\"_bytes_hex\":\"…\"} object, and ext values as {\"_ext\":{\"type\":N,\"hex\":\"…\"}}, so encode/decode round-trip exactly. Bytes are exchanged as hex and base64. Everything is computed locally and deterministically, so it is instant and private. Ideal for debugging MessagePack payloads, bridging JSON and msgpack systems, RPC and cache tooling, and teaching the format. Pure local computation — no key, no third-party service, instant. Live, nothing stored. 3 endpoints. This is MessagePack specifically; for JSON/YAML/TOML/XML use those format APIs, for BitTorrent's Bencode use the Bencode API, and for base64/hex/URL encoding use a general encoding API."},"meta":{"timestamp":"2026-06-03T17:42:17.727Z","request_id":"095590f2-db5a-4f63-9c6b-188fd1509d20"},"status":"ok","message":"Meta","success":true}}}},"401":{"description":"Missing or invalid x-oanor-key header"},"402":{"description":"Active subscription required"},"429":{"description":"Rate-limit or monthly quota reached"},"502":{"description":"Upstream did not respond"}}}}},"x-oanor-pricing":[{"slug":"free","name":"Free","price_cents_month":0,"monthly_call_quota":5435,"rps_limit":2,"hard_limit":true},{"slug":"starter","name":"Starter","price_cents_month":695,"monthly_call_quota":14950,"rps_limit":8,"hard_limit":true},{"slug":"pro","name":"Pro","price_cents_month":2685,"monthly_call_quota":200500,"rps_limit":20,"hard_limit":true},{"slug":"mega","name":"Mega","price_cents_month":6485,"monthly_call_quota":1045000,"rps_limit":50,"hard_limit":true}],"x-oanor-marketplace-url":"https://www.oanor.com/api/msgpack-api"}