---
title: "Update provider credentials"
method: PUT
path: "/v1/subscribers/{subscriberId}/credentials"
tags: ["Subscribers"]
---

# Update provider credentials

`PUT /v1/subscribers/{subscriberId}/credentials`

## Request

- Base URL: `https://api.notifly.io`
- URL: `https://api.notifly.io/v1/subscribers/{subscriberId}/credentials`
- Auth: API key in header `Authorization`

Update credentials for a provider such as **slack** and **FCM**. 
      **providerId** is required field. This API creates the **deviceTokens** or replaces the existing ones.

## Path parameters

- `subscriberId` string, required

## Request body

- UpdateSubscriberChannelRequestDto
  - `providerId` 'slack' | 'discord' | 'msteams' | 'webex-messaging' | 'mattermost' | 'ryver' | 'zulip' | 'grafana-on-call' | 'getstream' | 'rocket-chat' | 'whatsapp-business' | 'line' | 'chat-webhook' | 'novu-slack' | 'telegram' | 'sendblue' | 'novu-web-chat' | 'fcm' | 'apns' | 'expo' | 'one-signal' | 'pushpad' | 'push-webhook' | 'pusher-beams' | 'appio' | 'web-push', required: The provider identifier for the credentials
  - `integrationIdentifier` string: The integration identifier
  - `credentials` ChannelCredentials, required
    - `webhookUrl` string: Webhook URL used by chat app integrations. The webhook should be obtained from the chat app provider.
    - `channel` string: Channel specification for Mattermost chat notifications.
    - `deviceTokens` string[]: Contains an array of the subscriber device tokens for a given provider. Used on Push integrations.
    - `alertUid` string: Alert UID for Grafana on-call webhook payload.
    - `title` string: Title to be used with Grafana on-call webhook.
    - `imageUrl` string: Image URL property for Grafana on-call webhook.
    - `state` string: State property for Grafana on-call webhook.
    - `externalUrl` string: Link to upstream details property for Grafana on-call webhook.

## Response `200`

OK

- object
  - `data` SubscriberResponseDto
    - `_id` string: The internal ID generated by Notifly for your subscriber. This ID does not match the `subscriberId` used in your queries. Refer to `subscriberId` for that identifier.
    - `firstName` string, nullable: The first name of the subscriber.
    - `lastName` string, nullable: The last name of the subscriber.
    - `email` string, nullable: The email address of the subscriber.
    - `phone` string, nullable: The phone number of the subscriber.
    - `avatar` string, nullable: The URL of the subscriber's avatar image.
    - `locale` string, nullable: The locale setting of the subscriber, indicating their preferred language or region.
    - `channels` ChannelSettingsDto[]: An array of channel settings associated with the subscriber.
      - `providerId` 'slack' | 'discord' | 'msteams' | 'webex-messaging' | 'mattermost' | 'ryver' | 'zulip' | 'grafana-on-call' | 'getstream' | 'rocket-chat' | 'whatsapp-business' | 'line' | 'chat-webhook' | 'novu-slack' | 'telegram' | 'sendblue' | 'novu-web-chat' | 'fcm' | 'apns' | 'expo' | 'one-signal' | 'pushpad' | 'push-webhook' | 'pusher-beams' | 'appio' | 'web-push', required: The provider identifier for the credentials
      - `integrationIdentifier` string: The integration identifier
      - `credentials` ChannelCredentials, required
        - `webhookUrl` string: Webhook URL used by chat app integrations. The webhook should be obtained from the chat app provider.
        - `channel` string: Channel specification for Mattermost chat notifications.
        - `deviceTokens` string[]: Contains an array of the subscriber device tokens for a given provider. Used on Push integrations.
        - `alertUid` string: Alert UID for Grafana on-call webhook payload.
        - `title` string: Title to be used with Grafana on-call webhook.
        - `imageUrl` string: Image URL property for Grafana on-call webhook.
        - `state` string: State property for Grafana on-call webhook.
        - `externalUrl` string: Link to upstream details property for Grafana on-call webhook.
      - `_integrationId` string, required: The unique identifier of the integration associated with this channel.
    - `topics` string[]: An array of topics that the subscriber is subscribed to.
    - `isOnline` boolean, nullable: Indicates whether the subscriber is currently online.
    - `lastOnlineAt` string, nullable: The timestamp indicating when the subscriber was last online, in ISO 8601 format.
    - `__v` number: The version of the subscriber document.
    - `data` object, nullable: Additional custom data for the subscriber
    - `timezone` string, nullable: Timezone of the subscriber
    - `subscriberId` string, required: The identifier used to create this subscriber, which typically corresponds to the user ID in your system.
    - `_organizationId` string, required: The unique identifier of the organization to which the subscriber belongs.
    - `_environmentId` string, required: The unique identifier of the environment associated with this subscriber.
    - `deleted` boolean, required: Indicates whether the subscriber has been deleted.
    - `createdAt` string, required: The timestamp indicating when the subscriber was created, in ISO 8601 format.
    - `updatedAt` string, required: The timestamp indicating when the subscriber was last updated, in ISO 8601 format.

## Other responses

- `400`: Bad Request
- `401`: Unauthorized
- `403`: Forbidden
- `404`: Not Found
- `405`: Method Not Allowed
- `409`: Conflict
- `413`: Payload Too Large
- `414`: URI Too Long
- `415`: Unsupported Media Type
- `422`: Unprocessable Entity
- `429`: The client has sent too many requests in a given amount of time.
- `500`: Internal Server Error
- `503`: The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay.

---

[API](https://skmtc.dev/notifly/apis/notifly-api.md) · [All operations](https://skmtc.dev/notifly/apis/notifly-api/llms.txt) · [OpenAPI document](https://skmtc.dev/notifly/apis/notifly-api/revisions/af909b9e1e57?raw)
