Skip to content
GET /v1/messages

A topic's recent decoded messages

Try it live

10 free calls per day — no sign-up, no API key. Goes through the oanor gateway.

Custom headers (optional)
api.oanor.com/hederatopic-api

It works. Grab an API key and use it in your project.

Get an API key

Code snippets

curl "https://api.oanor.com/hederatopic-api/v1/messages" \
  -H "x-oanor-key: oanor_test_..."
await fetch("https://api.oanor.com/hederatopic-api/v1/messages", {
  headers: { "x-oanor-key": "oanor_test_..." }
});
$ch = curl_init("https://api.oanor.com/hederatopic-api/v1/messages");
curl_setopt($ch, CURLOPT_HTTPHEADER, ["x-oanor-key: oanor_test_..."]);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$out = curl_exec($ch);
import requests
requests.get(
    "https://api.oanor.com/hederatopic-api/v1/messages",
    headers={"x-oanor-key": "oanor_test_..."}
)

Example response

A real response from this endpoint, captured by the latest health check.

{
    "data": {
        "note": "Most recent HCS messages on the topic (newest first), decoded from base64 to text where printable. Each has its consensus sequence number, timestamp and the account that paid to submit it.",
        "count": 10,
        "source": "Hedera mirror node",
        "messages": [
            {
                "message": "1781424220160 UkyatXFBPDSPqOXVgMZUzlRpgBpyfwfrxExgqRlcqHEGDTZMIxHDhzUWpiqTJvGnnnsVYqzNHrRkugjlSiYGqVUTdCQxtQgadumWVPwNyPUJbEVbUYfMmlfIvJJoEUFqTFGLuRdYTEWomhBLBNxlXlGZQEubRXzUuxDieZlkMAAHDQtmirLvRZirBKQXurcxjVgfPTBIUXEEenVSwyAZvmfEwdAJyViLSJNpYeZWFOUeEDKttI",
                "encoding": "utf8",
                "chunk_info": null,
                "size_bytes": 256,
                "hex_preview": null,
                "sequence_number": 22614984,
                "payer_account_id": "0.0.256009",
                "consensus_timestamp": "1781424220.839574000"
            },
            {
                "message": "1781424217624 UfDmswGqAxosZumgmiANUygUArmHtNiclHPeFCCZSrIoZDkiRpHiGCQYBcLdAtjojKyHzSjbngPIRyWVzZegEMxtZCeLgabFktxDcLAtqqCXOcBmpnZuIZZaBtGIafpFfGbCKZAENEdihJQwReixHsJUMSItzKnmZuajnYJMkDYZdmZLNdkieqFHdeBvPzIOWzZRmnyEMmOcDmiOeCduQoKDZMnPcHnbemqojsxWpdjEGyxnDc",
                "encoding": "utf8",
                "chunk_info": null,
                "size_bytes": 256,
                "hex_preview": null,
                "sequence_number": 22614983,
                "payer_account_id": "0.0.256009",
                "consensus_timestamp": "1781424218.645812000"
            },
            {
                "message": "1781424210160 QUVHsGUzBYihQsuUheuRdgAolKACkAXzqOWjeZIxTlpGDCJZPAjUHCoSxmhCDwFJuiQEJHEIopsbrvvIwIAvTBGHEEbNUJtliXqPdaJCVGxqberFCyfXZpnBZQliUzKFLVQjqhUTvZWOwDctGpDUdQcWFglvsWBfmUftxRuzKqGzXxyHzbjpScEWVnLYASkIQULgakArvFchlHFsJRJypbqhbhqmLXwPUnlzVyeTRFUZvhGQYh",
                "encoding": "utf8",
                "chunk_info": null,
                "size_bytes": 256,
                "hex_preview": null,
                "sequence_number": 22614982,
                "payer_account_id": "0.0.256009",
                "consensus_timestamp": "1781424211.121186387"
            },
            {
                "message": "1781424207624 NQwJcwJXCFBvseEsAQVxbiltKgZTrwLIUoSkiWLFhhdmMGULXtTUdJkbOKZuOQCdtXigTrMvwZyvrnfUznXjklcCSwyChCUceqOukYAKqjCqwWCNOInYVRcfplQnqVldWlsFlKBjXPrhjsBVjNHdOqXcWwsaOBHVgygRHjmCcheIdaScNNuVUKTmvDLgJYHNZmQRcmCIhptmUdSFrtBeAMmSPCtioWXFbiCEVQBnFsAVVKzmQr",
                "encoding": "utf8",
                "chunk_info": null,
                "size_bytes": 256,
                "hex_preview": null,
                "sequence_number": 22614981,
                "payer_account_id": "0.0.256009",
                "consensus_timestamp": "1781424208.164767831"
            },
            {
                "message": "1781424200160 GPXUmrwwdNYTeMXtvOBJJTfOnoROZxZKftRQolkLsWlaGqWkmIgRSlTSjSvDzziqwrOTZZaXMSlJSWblyoOsyDCGadYWVshRIMPHvMaobQGnliSUafzpgjqzgAQrjvblqWjyjPKKZiMcWfvueEyoIcTVDCriBUSdErzZeCjXr
…