# Subscriber schema Model API Reference (Subscribers) (/api-reference/subscribers/subscriber-schema)

Reference the Novu subscriber schema used in API requests and responses. Review fields, data types, and object structure for this resource.

### Subscriber

Subscriber is the end user that receives notifications. Subscriber has subscriber attributes like firstName, lastName, email, phone, etc, `data` field to store any custom attributes in key value pairs and channel credentials for push and chat channel provider's integrations. Read more about subscribers on [subscribers concept page](/platform/concepts/subscribers).

<TypeTable
  name="Subscriber"
  type={{
"id": {
  "description": "The internal ID generated by Novu for your subscriber. This ID does not match the `subscriberId` used in your queries. Refer to `subscriberId` for that identifier.",
  "type": "string"
},
"firstName": {
  "description": "The first name of the subscriber.",
  "type": "string | null"
},
"lastName": {
  "description": "The last name of the subscriber.",
  "type": "string | null"
},
"email": {
  "description": "The email address of the subscriber.",
  "type": "string | null"
},
"phone": {
  "description": "The phone number of the subscriber.",
  "type": "string | null"
},
"avatar": {
  "description": "The URL of the subscriber's avatar image.",
  "type": "string | null"
},
"locale": {
  "description": "The locale setting of the subscriber, indicating their preferred language or region.",
  "type": "string | null"
},
"channels": {
  "description": "An array of channel settings associated with the subscriber.",
  "type": "ChannelSettingsDto[]"
},
"topics": {
  "description": "An array of topics that the subscriber is subscribed to.",
  "type": "string[]"
},
"isOnline": {
  "description": "Indicates whether the subscriber is currently online.",
  "type": "boolean | null"
},
"lastOnlineAt": {
  "description": "The timestamp indicating when the subscriber was last online, in ISO 8601 format.",
  "type": "string | null"
},
"v": {
  "description": "The version of the subscriber document.",
  "type": "number"
},
"data": {
  "description": "Additional custom data for the subscriber",
  "type": "{ [k: string]: any; } | null"
},
"timezone": {
  "description": "Timezone of the subscriber",
  "type": "string | null"
},
"subscriberId": {
  "description": "The identifier used to create this subscriber, which typically corresponds to the user ID in your system.",
  "type": "string"
},
"organizationId": {
  "description": "The unique identifier of the organization to which the subscriber belongs.",
  "type": "string"
},
"environmentId": {
  "description": "The unique identifier of the environment associated with this subscriber.",
  "type": "string"
},
"deleted": {
  "description": "Indicates whether the subscriber has been deleted.",
  "type": "boolean"
},
"createdAt": {
  "description": "The timestamp indicating when the subscriber was created, in ISO 8601 format.",
  "type": "string"
},
"updatedAt": {
  "description": "The timestamp indicating when the subscriber was last updated, in ISO 8601 format.",
  "type": "string"
}
}}
/>

### ChannelSettingsDto

ChannelSettings are credentials for push and chat channel provider's integrations. One subscriber can have credentials for multiple integrations of same provider of one channel type

<TypeTable
  name="ChannelSettings"
  type={{
"providerId": {
  "description": "The provider identifier for the credentials",
  "type": "ChatOrPushProviderEnum"
},
"integrationIdentifier": {
  "description": "The integration identifier",
  "type": "string"
},
"credentials": {
  "description": "Credentials payload for the specified provider",
  "type": "ChannelCredentials"
},
"integrationId": {
  "description": "The unique identifier of the integration associated with this channel.",
  "type": "string"
}
}}
/>

### Credentials

Credentials like deviceTokens, webhookUrl, etc for a specific integration. `providerId` could be chat channel providerId or push channel providerId.

<TypeTable
  name="Credentials"
  type={{
"apiKey": {
  "description": "",
  "type": "string"
},
"user": {
  "description": "",
  "type": "string"
},
"secretKey": {
  "description": "",
  "type": "string"
},
"domain": {
  "description": "",
  "type": "string"
},
"password": {
  "description": "",
  "type": "string"
},
"host": {
  "description": "",
  "type": "string"
},
"port": {
  "description": "",
  "type": "string"
},
"secure": {
  "description": "",
  "type": "boolean"
},
"region": {
  "description": "",
  "type": "string"
},
"accountSid": {
  "description": "",
  "type": "string"
},
"messageProfileId": {
  "description": "",
  "type": "string"
},
"token": {
  "description": "",
  "type": "string"
},
"from": {
  "description": "",
  "type": "string"
},
"senderName": {
  "description": "",
  "type": "string"
},
"projectName": {
  "description": "",
  "type": "string"
},
"applicationId": {
  "description": "",
  "type": "string"
},
"clientId": {
  "description": "",
  "type": "string"
},
"requireTls": {
  "description": "",
  "type": "boolean"
},
"ignoreTls": {
  "description": "",
  "type": "boolean"
},
"tlsOptions": {
  "description": "",
  "type": "TlsOptions"
},
"baseUrl": {
  "description": "",
  "type": "string"
},
"webhookUrl": {
  "description": "",
  "type": "string"
},
"redirectUrl": {
  "description": "",
  "type": "string"
},
"hmac": {
  "description": "",
  "type": "boolean"
},
"serviceAccount": {
  "description": "",
  "type": "string"
},
"ipPoolName": {
  "description": "",
  "type": "string"
},
"apiKeyRequestHeader": {
  "description": "",
  "type": "string"
},
"secretKeyRequestHeader": {
  "description": "",
  "type": "string"
},
"idPath": {
  "description": "",
  "type": "string"
},
"datePath": {
  "description": "",
  "type": "string"
},
"apiToken": {
  "description": "",
  "type": "string"
},
"authenticateByToken": {
  "description": "",
  "type": "boolean"
},
"authenticationTokenKey": {
  "description": "",
  "type": "string"
},
"instanceId": {
  "description": "",
  "type": "string"
},
"alertUid": {
  "description": "",
  "type": "string"
},
"title": {
  "description": "",
  "type": "string"
},
"imageUrl": {
  "description": "",
  "type": "string"
},
"state": {
  "description": "",
  "type": "string"
},
"externalLink": {
  "description": "",
  "type": "string"
},
"channelId": {
  "description": "",
  "type": "string"
},
"phoneNumberIdentification": {
  "description": "",
  "type": "string"
},
"accessKey": {
  "description": "",
  "type": "string"
},
"appSid": {
  "description": "",
  "type": "string"
},
"senderId": {
  "description": "",
  "type": "string"
},
"tenantId": {
  "description": "",
  "type": "string"
},
"appIOBaseUrl": {
  "description": "",
  "type": "string"
}
}}
/>
