---
updatedAt: 2026-04-22T22:43:29.000Z
agentTools:
  projectIndex: https://developers.akahu.nz/llms.txt
---

# Get public key

Retrieve a public key for the purpose of validating webhook events.

# OpenAPI definition

````json
{
  "openapi": "3.0.0",
  "info": {
    "title": "Genie transaction enrichment API",
    "version": "1.0.0",
    "description": "Applications that use Akahu for bank account connectivity can use our transactions API to get high quality enriched transactions that include merchant and category information. We've built the Genie API to expose Akahu's transaction enrichment engine for applications that instead source raw transaction data themselves.\n\nGenie is entirely separate from the core Akahu API and does not require an Akahu App ID Token or App Secret to access. If you're keen to get your hands on an API key to try it out, get in touch with us at hello@akahu.nz.\n"
  },
  "x-samples-languages": [
    "shell",
    "csharp",
    "java",
    "node",
    "python",
    "go",
    "php",
    "ruby"
  ],
  "servers": [
    {
      "url": "https://api.genie.akahu.io/v1"
    }
  ],
  "components": {
    "securitySchemes": {
      "bearerAuth": {
        "type": "http",
        "scheme": "bearer",
        "description": "Token based API authentication"
      }
    },
    "schemas": {
      "GenieErrorResponse": {
        "type": "object",
        "properties": {
          "success": {
            "type": "boolean",
            "enum": [
              false
            ]
          },
          "message": {
            "type": "string",
            "description": "A description of the error that has occurred"
          }
        },
        "required": [
          "success",
          "message"
        ]
      }
    }
  },
  "paths": {
    "/keys/{id}": {
      "get": {
        "summary": "Get public key",
        "description": "Retrieve a public key for the purpose of validating webhook events.",
        "operationId": "GenieGetPublicKey",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "description": "The public key identifier, as found in the `X-Genie-Signing-Key` header of the webhook request.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "tags": [
          "Webhook keys"
        ],
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean",
                      "enum": [
                        true
                      ]
                    },
                    "item": {
                      "type": "string",
                      "description": "The RSA public key in PEM format.\nFor example:\n\n```\n-----BEGIN PUBLIC KEY-----\nMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAr0i3NmhhRvHeTjmfniu6\n7e2flbT90DSC1SNKj6/VaLC860A/ziW2gDdsGcqARqzzuA37J0Naqm+2F09RWmK7\nOCw+3Xus3dCwATeA6jh+Z/qtb1ZNfg4pebD+haVjSk9H1bj+ZLIdF1nEMnxwGTra\n2K7PDxLsaek6lEPjlU6M5LJ5DOOkzzVbnJx+B0+MK6hGCUmFbsZDbAPSdVbWBz8t\n562oQaTKzmw/vsfEFIFgsPEJX9TAchnKuf0RS0wow/rBECZd9qSGRK5o6erph1yR\no14WufnWHVIA1sRn4isJ6xjf2fCccFvOcLp6el+Y7ZN0D67MZ6PR8KaswagL6BcC\ngwIDAQAB\n-----END PUBLIC KEY-----\n```"
                    }
                  },
                  "required": [
                    "success",
                    "item"
                  ]
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GenieErrorResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GenieErrorResponse"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GenieErrorResponse"
                }
              }
            }
          },
          "429": {
            "description": "Rate Limiting",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GenieErrorResponse"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GenieErrorResponse"
                }
              }
            }
          }
        }
      }
    }
  }
}
````