---
title: "Subscribe to Notification"
method: POST
path: "/core/v1/notifications"
tags: ["Webhook Notifications"]
---

# Subscribe to Notification

`POST /core/v1/notifications`

Creates a webhook subscription to receive real-time notifications about specific domain or account events (e.g. transfer completions, renewals). Pass the callback URL and event types. This allows external systems to stay in sync with name.com changes.
Supported webhook event names:
- `account.credit.balance_change` – account credit balance changes (increases or decreases).
- `domain.lock.status_change` – domain lock added or removed.
- `domain.transfer.status_change` – domain transfer IN to name.com; status updates while name.com is the gaining registrar.
- `domain.transfer_out.status_change` – domain transfer OUT from name.com to another registrar; fires when the domain is removed from the account.
- `domain.transfer.internal_in` - name.com domain transfers in to the subscribing account via internal transfer.
- `domain.transfer.internal_out` - name.com domain transfers out of the subscribing account via internal transfer.
- `contact.verification.status_change` - contact verification status changes (verified or unverified).
- `domain.registry.rejection` – domain **create** failed after asynchronous registry processing (uncommon; most creates succeed at request time).
- `domain.expiration` – domain has expired and entered the post-expiry grace period. This is informational only.

## Request body

- SubscribeToNotification — Request to subscribe to a specific webhook notification
  - `eventName` 'account.credit.balance_change' | 'domain.lock.status_change' | 'domain.transfer.status_change' | 'domain.transfer_out.status_change' | 'contact.verification.status_change' | 'domain.transfer.internal_in' | 'domain.transfer.internal_out' | 'domain.registry.rejection' | 'domain.expiration', required — The list of configured webhooks you can subscribe to
  - `url` string, required — The URL we will send the notification data to
  - `active` boolean, required — If the webhook should be active. This allows a webhook to be deactivated in our system. It may be useful to deactivate a webhook if the server that receives the POST request is undergoing scheduled maintenance, for example.

## Response `201`

A successful response.

- SubscribeToNotificationResponse
  - `subscription` SubscriptionRecord
    - `active` boolean, required
    - `createDate` string, required
    - `eventName` string, required
    - `id` integer, required
    - `updateDate` string, nullable, required
    - `url` string, required

## Other responses

- `400` — Bad request - Invalid input data.
- `401` — Unauthorized.
- `403` — Forbidden - you do not have permission to perform this action.
- `405` — Method not allowed.
- `409` — The API will return this response if you are attempting to subscribe to a webhook you have already subscribed to.
- `415` — All POST, PUT, PATCH requests for this API must include the `Content-Type: application/json` header in the requests.
- `429` — Rate limit has been exceeded.
- `500` — Internal server error.
- `502` — Bad Gateway
- `504` — Gateway Timeout

---

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