---
title: "Creates a new notification."
method: POST
path: "/api/v1/notifications"
tags: ["Notifications"]
---

# Creates a new notification.

`POST /api/v1/notifications`

## Request body

- NotificationCreateRequest — Request structure for creating a new notification
  - `id` string
  - `signing_key` string — Optional signing key for securing webhook notifications
  - `type` 'webhook' — Notification type enum used by both config file and API
  - `url` string, required

## Response `201`

Notification created successfully

- ApiResponseNotificationResponse
  - `data` object — Response structure for notification API endpoints
    - `has_signing_key` boolean, required — Signing key is hidden in responses for security
    - `id` string, required
    - `type` 'webhook', required — Notification type enum used by both config file and API
    - `url` string, required
  - `error` string
  - `metadata` PluginMetadata
    - `logs` LogEntry[], nullable
      - `level` 'log' | 'info' | 'error' | 'warn' | 'debug' | 'result', required
      - `message` string, required
    - `traces` unknown[], nullable
      - unknown
  - `pagination` PaginationMeta
    - `current_page` integer, required
    - `per_page` integer, required
    - `total_items` integer, required
  - `success` boolean, required

## Other responses

- `400` — Bad Request
- `401` — Unauthorized
- `409` — Notification with this ID already exists
- `500` — Internal Server Error

---

[API](https://skmtc.dev/openzeppelin/apis/openzeppelin-relayer-api.md) · [All operations](https://skmtc.dev/openzeppelin/apis/openzeppelin-relayer-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/openzeppelin/openzeppelin-relayer-api/revisions/e6e7514284f5/schema)
