openapi: 3.0.2 info: title: Fyno Rest API version: v1 servers: - url: https://api.fyno.io/v1 security: - BearerAuth: [] paths: /{WSID}/{version}/event: post: tags: - Fire an Event summary: Notify a single user description: This API enables you to fire a notification event, which sends out notifications to your users.

Before firing your first notification event, you must perform the following actions in your Fyno account:
- Create a Template
- Create a Notification Event
- Create an API Key
- And obtain your workspace ID from the API Keys page. parameters: - name: WSID in: path description: Enter your workspace ID. You can obtain this value from the API Keys page within your Fyno account. required: true style: simple explode: false schema: type: string example: FYXXXXXXXX - name: version in: path description: Enter the version for which you wish to fire the notification. required: true style: simple explode: false schema: type: string default: live enum: - live - test requestBody: description: Your event payload must specify at least *`distinct_id`* or *`to`* while firing a notification event.

If the payload contains:

- Option 1: ONLY *`to`* (and no *`distinct_id`*) - the notification event uses all destination values from the *`to`* object (as it is).

- Option 2: ONLY *`distinct_id`* (and no *`to`*) - the notificaton event uses all destination values (such as SMS, WhatsApp, Email, Push, Voice and so on) from the user's profile and sends the notification.

- Option 3: BOTH *`distinct_id`* and *`to`* - the `to` and `distinct_id` channel data merges (`to` object take precedences) and sends the notification. The sent notification is tagged to the ID specified, which can be then used to search the logs by using `distinct_id`. content: application/json: schema: $ref: "#/components/schemas/version_event_body" required: true responses: "202": $ref: "#/components/responses/EventRequestAccepted" "400": $ref: "#/components/responses/EventNameDoesNotExist" "401": $ref: "#/components/responses/APIKeyInvalid" /{WSID}/{version}/event/bulk: post: tags: - Fire an Event summary: Notify multiple users description: This API enables you to notify multiple users with one event trigger.

Before firing your first notification event, you must perform the following actions in your Fyno account:
- Create a Template
- Create an Event
- Create an API Key
- And obtain your workspace ID from the API Keys page. parameters: - name: WSID in: path description: Enter your workspace ID. You can obtain this value from the API Keys page within your Fyno account. required: true style: simple explode: false schema: type: string example: FYXXXXXXXX - name: version in: path description: Enter the version for which you wish to fire the notification. required: true style: simple explode: false schema: type: string default: live enum: - live - test requestBody: content: application/json: schema: $ref: "#/components/schemas/event_bulk_body" required: true responses: "202": $ref: "#/components/responses/BulkEventRequestAccepted" "400": $ref: "#/components/responses/EventNameDoesNotExist" "401": $ref: "#/components/responses/APIKeyInvalid" /{WSID}/{version}/profiles: post: tags: - Manage User Profiles summary: Create user profile description: This API enables you to create a user profile within Fyno, which you can then use to send out notifications.

Before creating your first user profile, you should obtain the following values needed for authentication:
- API Key
- Workspace ID parameters: - name: WSID in: path description: Enter your workspace ID. You can obtain this value from the API Keys page within your Fyno account. required: true style: simple explode: false schema: type: string example: FYXXXXXXXX - name: version in: path description: Specify the version for which you would like to manage the user profile. required: true style: simple explode: false schema: type: string default: live enum: - live - test requestBody: content: application/json: schema: $ref: "#/components/schemas/version_profiles_body" required: true responses: "201": $ref: "#/components/responses/ProfileCreatedSuccessfully" "400": $ref: "#/components/responses/DistinctIDAlreadyExists" "401": $ref: "#/components/responses/APIKeyInvalid" /{WSID}/{version}/profiles/{distinct_id}: get: tags: - Manage User Profiles summary: Get user profile description: This API enables you to get an existing user profile. parameters: - name: WSID in: path description: Enter your workspace ID. You can obtain this value from the API Keys page within your Fyno account. required: true style: simple explode: false schema: type: string example: FYXXXXXXXX - name: version in: path description: Specify the version for which you would like to manage the user profile. required: true style: simple explode: false schema: type: string default: live enum: - live - test - name: distinct_id in: path description: Enter the distinct ID that you currently use to identify the user. required: true style: simple explode: false schema: type: string example: XXXXXXXX responses: "200": $ref: "#/components/responses/ProfileFetched" "400": $ref: "#/components/responses/DistinctIDDoesNotExist" "401": $ref: "#/components/responses/APIKeyInvalid" put: tags: - Manage User Profiles summary: Update user profile description: This API enables you to update an existing user profile. It updates the entire user profile including `distinct_id` (if specified).

**Note:** If there were existing values in the profile, they will be completely replaced (if those keys are passed) or ignored (if those keys are not passed). parameters: - name: WSID in: path description: Enter your workspace ID. You can obtain this value from the API Keys page within your Fyno account. required: true style: simple explode: false schema: type: string example: FYXXXXXXXX - name: version in: path description: Specify the version for which you would like to manage the user profile. required: true style: simple explode: false schema: type: string default: live enum: - live - test - name: distinct_id in: path description: Enter the distinct ID that you currently use to identify the user. required: true style: simple explode: false schema: type: string example: XXXXXXXX requestBody: content: application/json: schema: $ref: "#/components/schemas/profiles_distinct_id_body" required: true responses: "200": $ref: "#/components/responses/ProfileUpdated" "400": $ref: "#/components/responses/DistinctIDDoesNotExist3" "401": $ref: "#/components/responses/APIKeyInvalid" /{WSID}/{version}/profiles/{source_distinct_id}/merge/{target_distinct_id}: patch: tags: - Manage User Profiles summary: Merge user profiles description: This API enables you to merge the attributes of a user profile to another user profile. The profile with source distinct ID is merged with the target profile, after which the source profile is automatically deleted. If the target distinct ID does not exist, the source distinct ID is updated to target distinct ID. parameters: - name: WSID in: path description: Enter your workspace ID. You can obtain this value from the API Keys page within your Fyno account. required: true style: simple explode: false schema: type: string example: FYXXXXXXXX - name: version in: path description: Specify the version for which you would like to manage the user profile. required: true style: simple explode: false schema: type: string default: live enum: - live - test - name: source_distinct_id in: path description: Enter the source distinct ID that you wish to merge from. required: true style: simple explode: false schema: type: string example: XXXXXXXX - name: target_distinct_id in: path description: Enter the target distinct ID to which the profile should merge into. required: true style: simple explode: false schema: type: string example: XXXXXXXX responses: "200": $ref: "#/components/responses/ProfileMergedSuccessfully" "400": $ref: "#/components/responses/SourceDistinctIDDoesNotExist" "401": $ref: "#/components/responses/APIKeyInvalid" /{WSID}/{version}/profiles/delete: post: tags: - Manage User Profiles summary: Delete user profile description: This API enables you to delete existing user profiles by using `distinct_id`. parameters: - name: WSID in: path description: Enter your workspace ID. You can obtain this value from the API Keys page within your Fyno account. required: true style: simple explode: false schema: type: string example: FYXXXXXXXX - name: version in: path description: Specify the version for which you would like to manage the user profile. required: true style: simple explode: false schema: type: string default: live enum: - live - test requestBody: content: application/json: schema: $ref: "#/components/schemas/profiles_delete_body" required: true responses: "200": $ref: "#/components/responses/ProfileDeletedSuccessfully" "400": $ref: "#/components/responses/DistinctIDDoesNotExist2" "401": $ref: "#/components/responses/APIKeyInvalid" /{WSID}/{version}/profiles/{distinct_id}/channel: patch: tags: - Manage User Profiles summary: Add/Update channel data description: This API enables you to update existing data for `sms`, `whatsapp`, `email`, `slack`, `discord`, and `teams` channels, and add new tokens for `push` and `inapp` channels. It works like an update for channels that can hold a single destination only and like an insert for channels that can hold multiple destinations/tokens. parameters: - name: WSID in: path description: Enter your workspace ID. You can obtain this value from the API Keys page within your Fyno account. required: true style: simple explode: false schema: type: string example: FYXXXXXXXX - name: version in: path description: Specify the version for which you would like to manage the user profile. required: true style: simple explode: false schema: type: string default: live enum: - live - test - name: distinct_id in: path description: Enter the distinct ID that you currently use to identify the user. required: true style: simple explode: false schema: type: string example: XXXXXXXX requestBody: content: application/json: schema: $ref: "#/components/schemas/distinct_id_channel_body" required: true responses: "200": $ref: "#/components/responses/ProfileChannelUpdated" "400": $ref: "#/components/responses/DistinctIDDoesNotExist" "401": $ref: "#/components/responses/APIKeyInvalid" /{WSID}/{version}/profiles/{distinct_id}/channel/delete: post: tags: - Manage User Profiles summary: Delete channel data description: This API enables you to delete existing data for all channels. You can use either of the following approaches:

- **Option 1:** Use the `channel` key in the payload to delete all tokens in the specified channel.
- **Option 2:** Use the `push` and `inapp` keys in the payload to delete specific tokens in these channels.

**Note:** You can use either option 1 or option 2. It is not allowed to use both approaches in one request. parameters: - name: WSID in: path description: Enter your workspace ID. You can obtain this value from the API Keys page within your Fyno account. required: true style: simple explode: false schema: type: string example: FYXXXXXXXX - name: version in: path description: Specify the version for which you would like to manage the user profile. required: true style: simple explode: false schema: type: string default: live enum: - live - test - name: distinct_id in: path description: Enter the distinct ID that you currently use to identify the user. required: true style: simple explode: false schema: type: string example: XXXXXXXX requestBody: content: application/json: schema: $ref: "#/components/schemas/channel_delete_body" required: true responses: "200": $ref: "#/components/responses/ProfileChannelUpdated" "400": $ref: "#/components/responses/DistinctIDOrChannelDataDoesNotExist" "401": $ref: "#/components/responses/APIKeyInvalid" /{WSID}/{version}/subscriptions/preference: get: tags: - Manage User Subscriptions & Preferences summary: Get user preference description: This API enables you to get all the subscriptions topics (with sections) defined in your workspace along with the opted-in/opted-out preference of a particular user. parameters: - name: WSID in: path description: Enter your workspace ID. You can obtain this value from the API Keys page within your Fyno account. required: true style: simple explode: false schema: type: string example: FYXXXXXXXX - name: version in: path description: Specify the version for which you would like to manage the user profile. required: true style: simple explode: false schema: type: string default: live enum: - live - test - name: distinct_id in: query description: Enter the distinct ID that you currently use to identify the user. required: true style: form explode: true schema: type: string example: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx - name: event_list in: query description: Set this value to 'true' to receive list of notification events attached to each subscription topic. required: false style: form explode: false schema: type: boolean default: false enum: - true - false example: false responses: "200": $ref: "#/components/responses/PrefProfileFetched" "400": $ref: "#/components/responses/DistinctIDMissing" "401": $ref: "#/components/responses/APIKeyInvalid" put: tags: - Manage User Subscriptions & Preferences summary: Update user preference description: This API enables you to update the channel preference of a user for multiple subscription topics. In the JSON payload, enter the subscription ID as keys to update the channel preference. To update the user preference for all subscription topics at once (global preference), use 'all' instead of the subscription id.

**Note:** If the channel configuration for a subscription topic is set to 'required', then the user preference for the channel cannot be updated. parameters: - name: WSID in: path description: Enter your workspace ID. You can obtain this value from the API Keys page within your Fyno account. required: true style: simple explode: false schema: type: string example: FYXXXXXXXX - name: version in: path description: Specify the version for which you would like to manage the user profile. required: true style: simple explode: false schema: type: string default: live enum: - live - test - name: distinct_id in: query description: Enter the distinct ID that you currently use to identify the user. required: true style: form explode: true schema: type: string example: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx requestBody: content: application/json: schema: $ref: "#/components/schemas/update_subscription_multiple" required: true responses: "200": $ref: "#/components/responses/SubscriptionUpdated" "400": $ref: "#/components/responses/DistinctIDChannelStatusMissing" "401": $ref: "#/components/responses/APIKeyInvalid" /{WSID}/{version}/subscriptions/list/{subscription_id}/user: post: tags: - Manage User Subscriptions & Preferences summary: Update user preference (single) description: This API enables you to update the channel preference of a user for a particular subscription topic.

**Note:** If the channel configuration for a subscription topic is set to 'required', then the user preference for the channel cannot be updated. parameters: - name: WSID in: path description: Enter your workspace ID. You can obtain this value from the API Keys page within your Fyno account. required: true style: simple explode: false schema: type: string example: FYXXXXXXXX - name: version in: path description: Specify the version for which you would like to manage the user profile. required: true style: simple explode: false schema: type: string default: live enum: - live - test - name: subscription_id in: path description: Enter the subscription ID to update the channel preference for the subscription topic. To update the user preference for all subscription topics at once (global preference), use 'all' instead of the subscription id. required: true style: simple explode: true schema: type: string example: SXXXXXXXXX requestBody: content: application/json: schema: $ref: "#/components/schemas/update_subscription_single" required: true responses: "200": $ref: "#/components/responses/SubscriptionUpdated" "400": $ref: "#/components/responses/DistinctIDChannelStatusMissing" "401": $ref: "#/components/responses/APIKeyInvalid" /{WSID}/{version}/verify/validate: post: tags: - Fyno Verify summary: Verify OTP description: This API enables you to validate the OTP entered by the user using either `request_id` (received in response of the Fire an Event API) or `destination` (such as phone number, email). parameters: - name: WSID in: path description: Enter your workspace ID. You can obtain this value from the API Keys page within your Fyno account. required: true style: simple explode: false schema: type: string example: FYXXXXXXXX - name: version in: path description: Specify the version for which you would like to manage the user profile. required: true style: simple explode: false schema: type: string default: live enum: - live - test - name: request_id in: query description: Specify the request id of the triggered notification event that sent the OTP to the user.
You must use this query parameter if **you've disabled "Use destination as id"** in the Fyno Verify setting. required: false style: form explode: true schema: type: string example: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx - name: destination in: query description: Enter the destination where the OTP is sent. It can be either mobile no or email id.
You must use this query parameter if **you've enabled "Use destination as id"** in the Fyno Verify setting. required: false style: form explode: true schema: type: string example: xxxxxxxxxx - name: otp in: query description: Enter the OTP which you want to validate. required: true style: form explode: true schema: type: string example: 1234 responses: "200": $ref: "#/components/responses/OTPSuccess" "400": $ref: "#/components/responses/OTPInvalid" "401": $ref: "#/components/responses/APIKeyInvalid" /{WSID}/{version}/profiles/properties/set: post: tags: - User Properties summary: "Update User Property" description: "This API enables you to update user properties of your users listed in your [User Profiles](../user-profiles-overview). If the user with distinct ID doesn't exist, it creates a new user with the provided distinct ID and updates values for all the provided properties.

**Note:** If a [property was not created earlier](../adding-new-user-property#how-to-add-a-new-user-property-from-user-profile-page), it will create a new property and the data type of the property will be determined based on the data type of the value. For example, if you `$set` a new property called `premium_user=true`, it will create the `premium_user` property with `Boolean` type and value `true`.

The property values can take the following data types:If you try to set a value with a data type that does not match the predefined property type, the API will accept the request but ignore the invalid value. For example, if a predefined property `cost` expects a numeric value and you try to set it to `ABC`, the API will not store the value.

These user properties can be used to filter your users for creating [user cohorts](../creating-cohorts) and [campaigns](../campaign_creation#creating-a-campaign-using-cohort)." parameters: - name: WSID in: path description: Enter your workspace ID. You can obtain this value from the API Keys page within your Fyno account. required: true style: simple explode: false schema: type: string example: FYXXXXXXXX - name: version in: path description: Specify the version for which you would like to update the user property. required: true style: simple explode: false schema: type: string default: live enum: - live - test requestBody: content: application/json: schema: $ref: "#/components/schemas/set_user_property" required: true responses: "202": $ref: "#/components/responses/PropertyUpdateRequestAccepted" "400": $ref: "#/components/responses/EmptySetObject" "401": $ref: "#/components/responses/APIKeyInvalid" /{WSID}/{version}/profiles/properties/set-once: post: tags: - User Properties summary: "Set an Unset Property" description: "This API enables you to set user properties of your users listed in your [User Profiles](../user-profiles-overview) **only if it is currently unset.** If the given payload contains a mix of properties that are currently set and unset, then it will only add values to the properties that are currently unset and ignore the other properties. If the user with distinct ID doesn't exist, it creates a new user with the provided distinct ID and sets values for all the provided properties.

**Note:** If a [property was not created earlier](../adding-new-user-property#how-to-add-a-new-user-property-from-user-profile-page), it will create a new property and the data type of the property will be determined based on the data type of the value. For example, if you `$once` a new property called `premium_user=true`, it will create the `premium_user` property with `Boolean` type and value `true`.

The property values can take the following data types:If you try to set a value with a data type that does not match the predefined property type, the API will accept the request but ignore the invalid value. For example, if a predefined property `cost` expects a numeric value and you try to set it to `ABC`, the API will not store the value.

These user properties can be used to filter your users for creating [user cohorts](../creating-cohorts) and [campaigns](../campaign_creation#creating-a-campaign-using-cohort)." parameters: - name: WSID in: path description: Enter your workspace ID. You can obtain this value from the API Keys page within your Fyno account. required: true style: simple explode: false schema: type: string example: FYXXXXXXXX - name: version in: path description: Specify the version for which you would like to update the user property. required: true style: simple explode: false schema: type: string default: live enum: - live - test requestBody: content: application/json: schema: $ref: "#/components/schemas/set_user_property_once" required: true responses: "202": $ref: "#/components/responses/PropertyUpdateRequestAccepted" "400": $ref: "#/components/responses/EmptySetOnceObject" "401": $ref: "#/components/responses/APIKeyInvalid" /{WSID}/{version}/profiles/properties/numerical-add: post: tags: - User Properties summary: "Increment/Decrement Numeric Property" description: "This API enables you to increment/decrement values of numeric properties of your users listed in your [User Profiles](../user-profiles-overview). If the user with distinct ID doesn't exist, it creates a new user with the provided distinct ID and updates values for all the provided properties. To decrement property values, you can pass a negative value.

**Note:** If a [property was not created earlier](../adding-new-user-property#how-to-add-a-new-user-property-from-user-profile-page), it will create a new property and the data type of the property will set to `Number`. For example, if you `$add` a new property called `ltv=1200`, it will create the `ltv` property with `Number` type and value `1200`. Do not enclose the value in double quotes as they must be of numeric type.

These user properties can be used to filter your users for creating [user cohorts](../creating-cohorts) and [campaigns](../campaign_creation#creating-a-campaign-using-cohort)." parameters: - name: WSID in: path description: Enter your workspace ID. You can obtain this value from the API Keys page within your Fyno account. required: true style: simple explode: false schema: type: string example: FYXXXXXXXX - name: version in: path description: Specify the version for which you would like to update the user property. required: true style: simple explode: false schema: type: string default: live enum: - live - test requestBody: content: application/json: schema: $ref: "#/components/schemas/increment_user_property" required: true responses: "202": $ref: "#/components/responses/PropertyUpdateRequestAccepted" "400": $ref: "#/components/responses/EmptyAddObject" "401": $ref: "#/components/responses/APIKeyInvalid" /{WSID}/{version}/profiles/properties/list-append: post: tags: - User Properties summary: "Append Values to List" description: "This API enables you to append values to list type properties of your users listed in your [User Profiles](../user-profiles-overview). If the user with distinct ID doesn't exist, it creates a new user with the provided distinct ID and updates values for all the provided properties.

**Note:** If a [property was not created earlier](../adding-new-user-property#how-to-add-a-new-user-property-from-user-profile-page), it will create a new property and the data type of the property will set to `List`. For example, if you `$append` a new property called `order_ids=245`, it will create the `order_ids` property with `List` type and value `[245]`. A list may contain only unique values, so if a value already exists, and you try to add the same value, it will be ignored.

You can append values with the following data types:You can append only one value to a property at a time. Although not recommended, a list property can contain a mix of different data types.

These user properties can be used to filter your users for creating [user cohorts](../creating-cohorts) and [campaigns](../campaign_creation#creating-a-campaign-using-cohort)." parameters: - name: WSID in: path description: Enter your workspace ID. You can obtain this value from the API Keys page within your Fyno account. required: true style: simple explode: false schema: type: string example: FYXXXXXXXX - name: version in: path description: Specify the version for which you would like to update the user property. required: true style: simple explode: false schema: type: string default: live enum: - live - test requestBody: content: application/json: schema: $ref: "#/components/schemas/append_to_user_property" required: true responses: "202": $ref: "#/components/responses/PropertyUpdateRequestAccepted" "400": $ref: "#/components/responses/EmptyAppendObject" "401": $ref: "#/components/responses/APIKeyInvalid" /{WSID}/{version}/profiles/properties/list-remove: post: tags: - User Properties summary: "Remove Value From List" description: "This API enables you to remove existing values from the list type properties of your users listed in your [User Profiles](../user-profiles-overview). If the specified distinct ID or list property doesn't exist, it simply accepts the remove request and ignores it.

**Note:** This API can only be used to remove values from list and can remove only one value from a property at a time. To unset (nullify) other property types, please use [Unset User Property API.](./unset-user-property)" parameters: - name: WSID in: path description: Enter your workspace ID. You can obtain this value from the API Keys page within your Fyno account. required: true style: simple explode: false schema: type: string example: FYXXXXXXXX - name: version in: path description: Specify the version for which you would like to update the user property. required: true style: simple explode: false schema: type: string default: live enum: - live - test requestBody: content: application/json: schema: $ref: "#/components/schemas/remove_from_user_property_list" required: true responses: "202": $ref: "#/components/responses/PropertyUpdateRequestAccepted" "400": $ref: "#/components/responses/EmptyRemoveObject" "401": $ref: "#/components/responses/APIKeyInvalid" /{WSID}/{version}/profiles/properties/unset: post: tags: - User Properties summary: "Unset User Property" description: "This API enables you to unset (nullify) user properties of your users listed in your [User Profiles](../user-profiles-overview). If the specified distinct ID or property doesn't exist, it simply accepts the unset request and ignores it. This API can be used to unset all property data types: String, Number, Boolean, Date, List." parameters: - name: WSID in: path description: Enter your workspace ID. You can obtain this value from the API Keys page within your Fyno account. required: true style: simple explode: false schema: type: string example: FYXXXXXXXX - name: version in: path description: Specify the version for which you would like to update the user property. required: true style: simple explode: false schema: type: string default: live enum: - live - test requestBody: content: application/json: schema: $ref: "#/components/schemas/unset_user_property" required: true responses: "202": $ref: "#/components/responses/PropertyUpdateRequestAccepted" "400": $ref: "#/components/responses/EmptyUnsetObject" "401": $ref: "#/components/responses/APIKeyInvalid" /{WSID}/{version}/profiles/properties/batch: post: tags: - User Properties summary: "Batch Update User Properties" description: "This API enables you to modify user properties of your users listed in your [User Profiles](../user-profiles-overview) in bulk:
Please refer to function specific API documentation for [$set](./update-user-property), [$once](./set-an-unset-property), [$add](./increment-decrement-numeric-property), [$append](./append-values-to-list), [$remove](./remove-value-from-list), [$unset](./unset-user-property) before using this API.


**Note:** The user properties in User Profiles can be used to filter your users for creating [user cohorts](../creating-cohorts) and [campaigns](../campaign_creation#creating-a-campaign-using-cohort)." parameters: - name: WSID in: path description: Enter your workspace ID. You can obtain this value from the API Keys page within your Fyno account. required: true style: simple explode: false schema: type: string example: FYXXXXXXXX - name: version in: path description: Specify the version for which you would like to update the user property. required: true style: simple explode: false schema: type: string default: live enum: - live - test requestBody: content: application/json: schema: $ref: "#/components/schemas/user_property_bulk" responses: "202": $ref: "#/components/responses/PropertyUpdateRequestAcceptedBulk" "400": $ref: "#/components/responses/EmptyActionBulkProperty" "401": $ref: "#/components/responses/APIKeyInvalid" /{WSID}/suppressions: get: tags: - Suppression List summary: "Get Suppression List" description: "The Suppression List API enables you to manage users who should be excluded from receiving communications on specific channels.

This API enables you to retrieve the list of all suppressed users across various channels." parameters: - name: WSID in: path description: Enter your workspace ID. You can obtain this value from the API Keys page within your Fyno account. required: true style: simple explode: false schema: type: string example: FYXXXXXXXX responses: "200": $ref: "#/components/responses/SuppressionListSuccess" "401": $ref: "#/components/responses/APIKeyInvalid" post: tags: - Suppression List summary: "Add User to Suppression List" description: "Add a user to the suppression list for a given channel.

Note: If both `distinct_id` and `destination` are provided, `distinct_id` takes precedence, and `destination` is ignored." parameters: - name: WSID in: path description: Enter your workspace ID. You can obtain this value from the API Keys page within your Fyno account. required: true style: simple explode: false schema: type: string example: FYXXXXXXXX requestBody: content: application/json: schema: $ref: "#/components/schemas/add_suppression_list" responses: "200": $ref: "#/components/responses/SuppressionListUpdated" "400": $ref: "#/components/responses/SuppressionListError" "401": $ref: "#/components/responses/APIKeyInvalid" delete: tags: - Suppression List summary: "Delete User from Suppression List" description: "Delete a suppression entry using its `_id`, `distinct_id`, `destination`.

Note: If all three values (`distinct_id`, `destination`, `_id`) are provided, `_id` takes precedence followed by `distinct_id`." parameters: - name: WSID in: path description: Enter your workspace ID. You can obtain this value from the API Keys page within your Fyno account. required: true style: simple explode: false schema: type: string example: FYXXXXXXXX - name: _id in: query description: Unique identifier of the suppression record to delete. required: false schema: type: string example: 68763be4b8cee01156d9fa8a - name: distinct_id in: query description: Unique identifier (used as an alternative to destination) required: false schema: type: string example: XXXX-XXX-XXXX - name: destination in: query description: Phone number or email of the suppressed user required: false schema: type: string example: 919XXXXXXXX responses: "200": $ref: "#/components/responses/SuppressionListDeleted" "400": $ref: "#/components/responses/SuppressionDeleteError" "401": $ref: "#/components/responses/APIKeyInvalid" components: securitySchemes: BearerAuth: type: http description: Enter your API Key. If you don't have it already, you can create one from the API Keys page within your Fyno account scheme: bearer x-fern-bearer: name: apiKey env: FYNO_API_KEY responses: EventRequestAccepted: description: Request accepted successfully and it will be processed asynchronously. content: application/json: schema: properties: event: example: event_name type: string received_time: example: "2025-02-17T07:49:13.352Z" type: string format: date request_id: example: XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX type: string response: "$ref": "#/components/schemas/inline_response_202_response" type: object required: - event - received_time - request_id - response BulkEventRequestAccepted: description: Request accepted successfully and it will be processed asynchronously. content: application/json: schema: properties: event: example: event_name type: string received_time: example: 1672991866453 type: number request_id: example: XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX type: string response: items: "$ref": "#/components/schemas/inline_response_202_1_response" type: array type: object PropertyUpdateRequestAccepted: description: Request has been accepted and will be processed asynchronously. content: application/json: schema: properties: request_id: example: XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX type: string type: object required: - request_id PropertyUpdateRequestAcceptedBulk: description: Request has been accepted and will be processed asynchronously. content: application/json: schema: properties: request_id: example: XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX type: string batch: type: array items: properties: $set: type: string example: ok $once: type: string example: ok $add: type: string example: ok $append: type: string example: ok $remove: type: string example: ok $unset: type: string example: ok type: object type: object required: - request_id - batch ProfileCreatedSuccessfully: description: Profile created successfully content: application/json: schema: properties: _message: example: Profile created successfully type: string status: example: ok type: string type: object required: - _message - status ProfileFetched: description: Profile fetched successfully content: application/json: schema: properties: channel: "$ref": "#/components/schemas/inline_response_200_channel" country_code: description: The country code of the user. This value is automatically determined based on the number provided in the SMS channel of the profile. For a list of possible values, please click here. example: IN type: string created_at: description: The timestamp when the profile was created in ISO Date Time Format. example: "2023-04-21T06:34:01.386Z" type: string distinct_id: description: The distinct ID used to identify the user. example: XXXXXXXX type: string id_list: description: Other profile IDs previously linked to this profile. items: example: 6442XXXXXXXXXXXXXXXXc684 type: array name: description: The full name of the user. example: John Doe type: string profile_id: description: Unique profile ID within Fyno. example: 6442XXXXXXXXXXXXXXXXc685 type: string status: description: The status of the user. If `1`, the user is active and should receive notifications. If `0`, the user in inactive and should not receive notifications. enum: - 1 - 0 example: 1 type: integer timezone: description: The timezone of the user. For a list of possible values, please click here. example: Asia/Kolkata type: string timezone_offset: description: The timezone offset of the user. The value is automatically determined based on the timezone provided for the user in the profile. example: "+05:30" type: string updated_at: description: The timestamp when the profile was last updated in ISO Date Time Format. example: "2023-04-21T08:42:30.235Z" type: string version: description: The version where the user profile is available. enum: - live - test example: test type: string type: object required: - distinct_id - country_code - timezone - timezone_offset - created_at - updated_at - channel - properties - status - id_list - profile_id - version - channel_raw PrefProfileFetched: description: Preference fetched successfully content: application/json: schema: required: - meta - result properties: meta: required: - all properties: all: required: - preference - updated_at properties: preference: "$ref": "#/components/schemas/preference_channels_opted_out" updated_at: "$ref": "#/components/schemas/updated_at" type: object type: object result: required: - Section1 properties: Section1: items: required: - channel_config - description - is_global_opted_out - name - notification_events - preference - subscription_id - updated_at properties: channel_config: properties: discord: default: "on" enum: - "on" - "off" - required type: string email: default: "on" enum: - "on" - "off" - required type: string inapp: default: "on" enum: - "on" - "off" - required type: string push: default: "on" enum: - "on" - "off" - required type: string slack: default: "on" enum: - "on" - "off" - required type: string sms: default: "on" enum: - "on" - "off" - required type: string teams: default: "on" enum: - "on" - "off" - required type: string voice: default: "on" enum: - "on" - "off" - required type: string webpush: default: "on" enum: - "on" - "off" - required type: string whatsapp: default: "on" enum: - "on" - "off" - required type: string type: object description: type: string is_global_opted_out: properties: discord: enum: - true type: boolean email: enum: - true type: boolean inapp: enum: - true type: boolean push: enum: - true type: boolean slack: enum: - true type: boolean sms: enum: - true type: boolean teams: enum: - true type: boolean voice: enum: - true type: boolean webpush: enum: - true type: boolean whatsapp: enum: - true type: boolean type: object name: type: string notification_events: items: properties: event_id: type: string event_name: type: string type: object type: array preference: "$ref": "#/components/schemas/preference_channels" subscription_id: type: string updated_at: "$ref": "#/components/schemas/updated_at" type: object type: array type: object type: object ProfileUpdated: description: Profile updated successfully content: application/json: schema: properties: _message: example: 1 Record(s) updated successfully type: string status: example: ok type: string type: object required: - _message - status ProfileChannelUpdated: description: Profile updated successfully content: application/json: schema: properties: _message: example: Channel has been modified successfully type: string status: example: ok type: string type: object required: - _message - status ProfileMergedSuccessfully: description: Profiles merged successfully and the source profile is deleted content: application/json: schema: properties: _message: example: 1 Record(s) updated and 1 Records(s) deleted type: string status: example: ok type: string type: object required: - _message - status ProfileDeletedSuccessfully: description: Profile deleted successfully content: application/json: schema: properties: _message: example: 1 User(s) deleted successfully type: string status: example: ok type: string type: object required: - _message - status SubscriptionUpdated: description: Subscription updated successfully content: application/json: schema: required: - SXXXXXXXXX properties: SXXXXXXXXX: "$ref": "#/components/schemas/preference_channels" type: object OTPSuccess: description: OTP successfully validated content: application/json: schema: properties: _message: example: OTP successfully validated. type: string status: example: ok type: string type: object required: - _message - status SourceDistinctIDDoesNotExist: description: Source distinct ID does not exist content: application/json: schema: properties: _message: example: merge from id does not exist type: string status: example: error type: string type: object required: - _message - status DistinctIDDoesNotExist: description: Distinct ID does not exist content: application/json: schema: properties: _message: example: incorrect/non existing distinct_id provided type: string status: example: error type: string type: object required: - _message - status DistinctIDDoesNotExist2: description: Distinct ID does not exist content: application/json: schema: properties: _message: example: Cannot delete non existing user type: string status: example: error type: string type: object required: - _message - status DistinctIDDoesNotExist3: description: Distinct ID does not exist content: application/json: schema: properties: _message: example: Unable to update the record since the record does not exist type: string status: example: error type: string type: object required: - _message - status DistinctIDOrChannelDataDoesNotExist: description: Distinct ID or channel data does not exist content: application/json: schema: properties: _message: example: Unable to delete channel since the channel does not exist type: string status: example: error type: string type: object required: - _message - status DistinctIDAlreadyExists: description: Distinct ID already exists content: application/json: schema: properties: _message: example: Distinct ID 'distinct_id' already exists in the 'version' version of your workspace type: string status: example: error type: string type: object required: - _message - status DistinctIDMissing: description: Distinct ID is not provided content: application/json: schema: properties: _message: example: distinct_id is required to list preference! type: string status: example: error type: string type: object required: - _message - status DistinctIDChannelStatusMissing: description: Distinct ID, channel, or status is not provided content: application/json: schema: properties: _message: example: distinct_id is required! type: string status: example: error type: string type: object required: - _message - status EventNameDoesNotExist: description: Event name does not exist content: application/json: schema: properties: _message: example: The notification event name 'event_name' is invalid or does not exists on prod type: string status: example: error type: string type: object required: - _message - status OTPInvalid: description: Invalid OTP entered by user content: application/json: schema: properties: _message: example: user entered the wrong OTP type: string status: example: error type: string type: object required: - _message - status EmptySetObject: description: $set object is empty content: application/json: schema: properties: _message: example: "$set has object/keys that is not allowed" type: string status: example: error type: string type: object required: - _message - status EmptySetOnceObject: description: $once object is empty content: application/json: schema: properties: _message: example: "$once has object/keys that is not allowed" type: string status: example: error type: string type: object required: - _message - status EmptyAddObject: description: $add object is empty content: application/json: schema: properties: _message: example: "$add has object/keys that is not allowed" type: string status: example: error type: string type: object required: - _message - status EmptyAppendObject: description: $append object is empty content: application/json: schema: properties: _message: example: "$append has object/keys that is not allowed" type: string status: example: error type: string type: object required: - _message - status EmptyRemoveObject: description: $remove object is empty content: application/json: schema: properties: _message: example: "$remove has object/keys that is not allowed" type: string status: example: error type: string type: object required: - _message - status EmptyUnsetObject: description: $unset object is empty content: application/json: schema: properties: _message: example: "$unset channel should have atleast one item in array" type: string status: example: error type: string type: object required: - _message - status EmptyActionBulkProperty: description: $unset object is empty content: application/json: schema: properties: _message: example: "$set has object/keys that is not allowed" type: string status: example: error type: string type: object required: - _message - status SuppressionListSuccess: description: Suppression list fetched. content: application/json: schema: items: "$ref": "#/components/schemas/fetch_suppression_list" type: array SuppressionListUpdated: description: Suppression list updated. content: application/json: schema: properties: status: example: ok type: string _message: type: string example: User has been added to the suppression! type: object SuppressionListDeleted: description: Suppression list updated. content: application/json: schema: properties: status: example: ok type: string _message: type: string example: 1 record(s) has been deleted! type: object SuppressionListError: description: Destination is invalid content: application/json: schema: properties: status: example: error type: string _message: type: string example: Invalid destination for channel sms type: object SuppressionDeleteError: description: The provided `_id` does not exist. content: application/json: schema: properties: status: example: error type: string _message: type: string example: Unable to delete non existing data! type: object APIKeyInvalid: description: API Key or Workspace ID is invalid. User is unauthorised. content: application/json: schema: properties: _message: example: Invalid API details type: string status: example: error type: string type: object required: - _message - status schemas: WSIDversionprofiles_channel: properties: discord: description: Enter the discord ID of the user. example: 101XXXXXXXXXX7XXXXX type: string email: description: Enter the email address of the user. example: abcde@fghi.com type: string inapp: items: "$ref": "#/components/schemas/WSIDversionprofiles_channel_inapp" type: array push: items: "$ref": "#/components/schemas/WSIDversionprofiles_channel_push" type: array slack: description: Enter the channel ID, user ID, or email address of the user. example: CXXXXXXXXXX type: string sms: description: Enter the mobile number of the user. The number must start with the country code (preferably in E.164 format). For example: +919879XXXXXX. example: +919879XXXXXX type: string teams: description: Enter the channel name. For teams, we currently support sending to one channel only. To send to multiple channels, do get in touch and we can share a workaround. example: General type: string voice: description: Enter the mobile number of the user. The number must start with the country code (preferably in E.164 format). For example: +919879XXXXXX. example: +919879XXXXXX type: string whatsapp: description: Enter the WhatsApp mobile number of the user. The number must start with the country code (preferably in E.164 format). For example: +919879XXXXXX example: +919879XXXXXX type: string type: object WSIDversionprofiles_channel_inapp: properties: integration_id: description: "(Optional) Enter the integration ID that was used to generate the above token. This is helpful in identifying which integration to use when an account has multiple InApp integrations. If this value is null, then the above token is used for all InApp integrations.

The integration ID can be obtained from Fyno's integrations page." example: IXXXXXXX type: string status: description: "(Optional) Enter 1 to specify that this token must be active and should receive notifications. Enter 0 to specify that this token must be inactive and should not receive any notifications. If null, the default value is 1." enum: - 1 - 0 type: integer token: description: Enter the distinct ID or the generated token of the user. example: XXXXXXXX type: string required: - token type: object WSIDversionprofiles_channel_push: properties: integration_id: description: "(Optional) Enter the integration ID that was used to generate the above token. This is helpful in identifying which integration to use when an account has multiple push integrations. If this value is null, then the above token is used for all push integrations.

The integration ID can be obtained from Fyno's integrations page." example: IXXXXXXX type: string status: description: "(Optional) Enter 1 to specify that this token must be active and should receive notifications. Enter 0 to specify that this token must be inactive and should not receive any notifications. If null, the default value is 1." enum: - 1 - 0 type: integer token: description: Enter the push token of the user. If you use OneSignal, you must add the following prefix to the token:

- For OneSignal playerId: `onesignal_player_id:`
- For OneSignal externalId: `onesignal_external_id:`
example: ExponentPushToken[XXXXX] type: string required: - token type: object WSIDversionprofilesdistinct_id_channel: description: "(Optional) If you do not wish to change any channel values, remove this key from the payload. **Note:** If you change any value in the `channel` key, the entire channel data is replaced." properties: discord: description: Enter the new discord ID of the user. example: 101XXXXXXXXXX7XXXXX type: string email: description: Enter the new email address of the user. example: abcde@fghi.com type: string inapp: items: "$ref": "#/components/schemas/WSIDversionprofilesdistinct_id_channel_inapp" type: array push: items: "$ref": "#/components/schemas/WSIDversionprofilesdistinct_id_channel_push" type: array slack: description: Enter the new channel ID, user ID, or email address of the user. example: CXXXXXXXXXX type: string sms: description: Enter the new mobile number of the user. The number must start with the country code (preferably in E.164 format). For example: +919879XXXXXX. example: +919879XXXXXX type: string teams: description: Enter the new channel name. For teams, we currently support sending to one channel only. To send to multiple channels, do get in touch and we can share a workaround. example: General type: string voice: description: Enter the new mobile number of the user. The number must start with the country code (preferably in E.164 format). For example: +919879XXXXXX. example: +919879XXXXXX type: string whatsapp: description: Enter the new WhatsApp mobile number of the user. The number must start with the country code (preferably in E.164 format). For example: +919879XXXXXX example: +919879XXXXXX type: string type: object WSIDversionprofilesdistinct_id_channel_inapp: properties: integration_id: description: "(Optional) Enter the integration ID that was used to generate the above token. This is helpful in identifying which integration to use when an account has multiple InApp integrations. If this value is null, then the above token is used for all InApp integrations.

The integration ID can be obtained from Fyno's integrations page." example: IXXXXXXX type: string status: description: "(Optional) Enter 1 to specify that this token must be active and should receive notifications. Enter 0 to specify that this token must be inactive and should not receive any notifications. If null, the default value is 1." enum: - 1 - 0 type: integer token: description: Enter the new distinct ID or the generated token of the user. example: XXXXXXXX type: string required: - token type: object WSIDversionprofilesdistinct_id_channel_push: properties: integration_id: description: "(Optional) Enter the integration ID that was used to generate the above token. This is helpful in identifying which integration to use when an account has multiple push integrations. If this value is null, then the above token is used for all push integrations.

The integration ID can be obtained from Fyno's integrations page." example: IXXXXXXX type: string status: description: "(Optional) Enter 1 to specify that this token must be active and should receive notifications. Enter 0 to specify that this token must be inactive and should not receive any notifications. If null, the default value is 1." enum: - 1 - 0 type: integer token: description: Enter the new push token of the user. If you use OneSignal, you must add the following prefix to the token:

- For OneSignal playerId: `onesignal_player_id:`
- For OneSignal externalId: `onesignal_external_id:`
example: ExponentPushToken[XXXXX] type: string required: - token type: object WSIDversionprofilesdistinct_idchannel_channel: properties: discord: description: Enter the new discord ID of the user. If you do not wish to change this value, remove this key from the payload. example: 101XXXXXXXXXX7XXXXX type: string email: description: Enter the new email address of the user. If you do not wish to change this value, remove this key from the payload. example: abcde@fghi.com type: string inapp: items: "$ref": "#/components/schemas/WSIDversionprofilesdistinct_idchannel_channel_inapp" type: array push: items: "$ref": "#/components/schemas/WSIDversionprofilesdistinct_idchannel_channel_push" type: array slack: description: Enter the new channel ID, user ID, or email address of the user. If you do not wish to change this value, remove this key from the payload. example: CXXXXXXXXXX type: string sms: description: Enter the new mobile number of the user. The number must start with the country code (preferably in E.164 format). For example: +919879XXXXXX. If you do not wish to change this value, remove this key from the payload. example: +919879XXXXXX type: string teams: description: Enter the new channel name. For teams, we currently support sending to one channel only. If you wish to send to multiple channels, do get in touch and we can share a workaround. If you do not wish to change this value, remove this key from the payload. example: General type: string voice: description: Enter the new mobile number of the user. The number must start with the country code (preferably in E.164 format). For example: +919879XXXXXX. If you do not wish to change this value, remove this key from the payload. example: +919879XXXXXX type: string whatsapp: description: Enter the new WhatsApp mobile number of the user. The number must start with the country code (preferably in E.164 format). For example: +919879XXXXXX. If you do not wish to change this value, remove this key from the payload. example: +919879XXXXXX type: string type: object WSIDversionprofilesdistinct_idchannel_channel_inapp: properties: integration_id: description: "(Optional) Enter the integration ID that was used to generate the above token. This is helpful in identifying which integration to use when an account has multiple InApp integrations. If this value is null, then the above token is used for all InApp integrations.

The integration ID can be obtained from Fyno's integrations page." example: IXXXXXXX type: string status: description: "(Optional) Enter 1 to specify that this token must be active and should receive notifications. Enter 0 to specify that this token must be inactive and should not receive any notifications. If null, the default value is 1." enum: - 1 - 0 type: integer token: description: Enter the new distinct ID or the generated token to add for the user.

**Note:** This value would get added (and not updated) to the channel data. example: XXXXXXXX type: string required: - token type: object WSIDversionprofilesdistinct_idchannel_channel_push: properties: integration_id: description: "(Optional) Enter the integration ID that was used to generate the above token. This is helpful in identifying which integration to use when an account has multiple push integrations. If this value is null, then the above token is used for all push integrations.

The integration ID can be obtained from Fyno's integrations page." example: IXXXXXXX type: string status: description: "(Optional) Enter 1 to specify that this token must be active and should receive notifications. Enter 0 to specify that this token must be inactive and should not receive any notifications. If null, the default value is 1." enum: - 1 - 0 type: integer token: description: Enter the new push token that to add for the user. If you use OneSignal, you must add the following prefix to the token:

- For OneSignal playerId: `onesignal_player_id:`
- For OneSignal externalId: `onesignal_external_id:`

**Note:** This value would get added (and not updated) to the channel data. example: ExponentPushToken[XXXXX] type: string required: - token type: object callback: description: (Optional) You can enable callback for an event by specifying the `callback` attribute in the payload of the event. By enabling callback, you will be able to receive delivery status of the events onto your webhook URL specified in the "Allowlist URL" section of the application. See [Configuring Allowlist URL/SQS to receive Delivery Report](../../configuring-allowlist-url-sqs-to-receive-delivery-report) for more details. properties: custom_id: description: Use this parameter to send an ID that you would want to receive as a response (for reconciliation) in your delivery callback. example: ID001 type: string custom1: description: "(Optional) Use this parameter to send another ID that you want to receive as a response (for reconciliation) in your delivery callback." example: EV001 type: string custom2: description: "(Optional) Use this parameter to send yet another ID that you want to receive as a response (for reconciliation) in your delivery callback." example: P001 type: string custom3: description: "(Optional) Use this parameter to send yet another ID that you want to receive as a response (for reconciliation) in your delivery callback." example: C001 type: string enable: description: "(Optional) Set `true` to enable delivery callback or `false` to disable delivery callback. The default value is `true` if `custom_id` is specified." enum: - true - false example: true type: boolean allowlist_url: description: "(Optional) Allowlist URL name where you want to receive delivery reports. Can be array of Allowlist URL names too if you want the delivery reports in multiple URLs. If `allowlist_url` is not specified, but callback object has `enable=true` and `custom_id` is specified, then the delivery reports will be sent to the default endpoint set to receive delivery reports in the [Configuring Allowlist URL](../../configuring-allowlist-url-sqs-to-receive-delivery-report) settings." example: ["WebhookURL1", "WebhookURL2"] oneOf: - type: string - type: array items: type: string required: - custom_id type: object channel_delete_body: oneOf: - properties: channel: description: Enter all channels for which you wish to delete the data. For example: `sms`, `whatsapp`, `email`, `slack`, `discord`, `teams`, `voice``push`, `inapp`. example: - sms - whatsapp - email - slack - discord - teams - voice - push - inapp items: example: '["sms","whatsapp","email","slack","discord","teams","voice","push","inapp"]' type: string type: array required: - channel type: object - properties: inapp: description: Enter the tokens to delete from within the InApp channel. example: - token1 - token2 items: example: '["token1","token2"]' type: string type: array push: description: Enter the tokens to delete from within the Push channel. example: - token1 - token2 items: example: '["token1","token2"]' type: string type: array required: - inapp - push type: object data: description: "(Optional) Enter the keys and values of your replaceabale placeholders. These values are replaced in the respective keys of the template when the notification is sent." example: placeholder_key_1: placeholder_value_1 placeholder_key_2: placeholder_value_2 type: object distinct_id: description: Enter the distinct ID that you use to identify the recipient. example: XXXXXXXX type: string distinct_id_channel_body: properties: channel: "$ref": "#/components/schemas/WSIDversionprofilesdistinct_idchannel_channel" required: - channel type: object event: description: Enter the name of the event you wish to fire. example: event_name type: string event_bulk_body: properties: batch: description: Your batch payload must specify at least *`distinct_id`* or *`to`* while firing a notification event.

If the payload contains:

- Option 1: ONLY *`to`* (and no *`distinct_id`*) - the event uses all destination values from the *`to`* object (as it is).

- Option 2: ONLY *`distinct_id`* (and no *`to`*) - the event uses all destination values (such as SMS, WhatsApp, Email, Push, Voice and so on) from the user's profile and sends the notification.

- Option 3: BOTH *`distinct_id`* and *`to`* - the `to` and `distinct_id` channel data merges (`to` object take precedences) and sends the notification. The sent notification is tagged to the ID specified, which can be then used to search the logs by using `distinct_id`. items: oneOf: - properties: callback: "$ref": "#/components/schemas/callback" data: "$ref": "#/components/schemas/data" to: "$ref": "#/components/schemas/to" required: - event - to type: object - properties: callback: "$ref": "#/components/schemas/callback" data: "$ref": "#/components/schemas/data" distinct_id: "$ref": "#/components/schemas/distinct_id" required: - distinct_id - event type: object - properties: callback: "$ref": "#/components/schemas/callback" data: "$ref": "#/components/schemas/data" distinct_id: "$ref": "#/components/schemas/distinct_id" to: "$ref": "#/components/schemas/to" required: - distinct_id - event - to type: object type: array event: "$ref": "#/components/schemas/event" required: - batch - event type: object inline_response_200_channel: properties: discord: description: The discord ID of the user. example: 101XXXXXXXXXX7XXXXX type: string email: description: The email address of the user. example: abcde@fghi.com type: string inapp: items: "$ref": "#/components/schemas/inline_response_200_channel_inapp" type: array push: items: "$ref": "#/components/schemas/inline_response_200_channel_push" type: array slack: description: The channel ID, user ID, or email address of the user. example: CXXXXXXXXXX type: string sms: description: The mobile number of the user. example: "+91 9879X XXXXX" type: string teams: description: The channel name. example: General type: string voice: description: The mobile number of the user. example: "+91 9879X XXXXX" type: string whatsapp: description: The WhatsApp mobile number of the user. example: "+91 9879X XXXXX" type: string type: object inline_response_200_channel_inapp: properties: integration_id: description: The integration ID that was used to generate the above token. If this value is null, then the above token is used for all InApp integrations.

The integration ID can be verified from Fyno's integrations page. example: IXXXXXXX type: string status: description: The status of the token. If `1`, the token is active and should receive notifications. If `0`, the token in inactive and should not receive notifications. enum: - 1 - 0 example: 1 type: integer token: description: Enter the distinct ID or the generated token of the user. example: XXXXXXXX type: string type: object required: - token inline_response_200_channel_push: properties: integration_id: description: The integration ID that was used to generate the above token. If this value is null, then the above token is used for all push integrations.

The integration ID can be verified from Fyno's integrations page. example: IXXXXXXX type: string status: description: The status of the token. If `1`, the token is active and should receive notifications. If `0`, the token in inactive and should not receive notifications. enum: - 1 - 0 example: 1 type: integer token: description: The push token of the user. example: ExponentPushToken[XXXXX] type: string type: object inline_response_202_1_response: properties: discord: "$ref": "#/components/schemas/inline_response_202_response_discord" email: "$ref": "#/components/schemas/inline_response_202_response_email" inapp: "$ref": "#/components/schemas/inline_response_202_response_inapp" push: "$ref": "#/components/schemas/inline_response_202_response_push" seq: example: 1 type: integer slack: "$ref": "#/components/schemas/inline_response_202_response_slack" sms: "$ref": "#/components/schemas/inline_response_202_response_sms" teams: "$ref": "#/components/schemas/inline_response_202_response_teams" voice: "$ref": "#/components/schemas/inline_response_202_response_sms" whatsapp: "$ref": "#/components/schemas/inline_response_202_response_sms" type: object inline_response_202_response: properties: discord: "$ref": "#/components/schemas/inline_response_202_response_discord" email: "$ref": "#/components/schemas/inline_response_202_response_email" inapp: "$ref": "#/components/schemas/inline_response_202_response_inapp" push: "$ref": "#/components/schemas/inline_response_202_response_push" slack: "$ref": "#/components/schemas/inline_response_202_response_slack" sms: "$ref": "#/components/schemas/inline_response_202_response_sms" teams: "$ref": "#/components/schemas/inline_response_202_response_teams" voice: "$ref": "#/components/schemas/inline_response_202_response_sms" whatsapp: "$ref": "#/components/schemas/inline_response_202_response_sms" type: object inline_response_202_response_discord: properties: destination: example: 101XXXXXXXXXX7XXXXX type: string msg_id: example: XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX:XXXX type: string status: example: ok type: string type: object required: - destination - msg_id - status inline_response_202_response_email: properties: destination: example: abcde@fghi.com type: string msg_id: example: XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX:XXXX type: string status: example: ok type: string type: object required: - destination - msg_id - status inline_response_202_response_inapp: properties: destination: example: "12345" type: string msg_id: example: XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX:XXXX type: string status: example: ok type: string type: object required: - destination - msg_id - status inline_response_202_response_push: properties: destination: example: ExponentPushToken[XXXXX] type: string msg_id: example: XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX:XXXX type: string status: example: ok type: string type: object required: - destination - msg_id - status inline_response_202_response_slack: properties: destination: example: CXXXXXXXXXX type: string msg_id: example: XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX:XXXX type: string status: example: ok type: string type: object required: - destination - msg_id - status inline_response_202_response_sms: properties: destination: example: +919879XXXXXX type: string msg_id: example: XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX:XXXX type: string status: example: ok type: string type: object required: - destination - msg_id - status inline_response_202_response_teams: properties: destination: example: General type: string msg_id: example: XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX:XXXX type: string status: example: ok type: string type: object required: - destination - msg_id - status preference_channels: properties: discord: default: opted-in enum: - opted-out - opted-in type: string email: default: opted-in enum: - opted-out - opted-in type: string inapp: default: opted-in enum: - opted-out - opted-in type: string push: default: opted-in enum: - opted-out - opted-in type: string slack: default: opted-in enum: - opted-out - opted-in type: string sms: default: opted-in enum: - opted-out - opted-in type: string teams: default: opted-in enum: - opted-out - opted-in type: string voice: default: opted-in enum: - opted-out - opted-in type: string webpush: default: opted-in enum: - opted-out - opted-in type: string whatsapp: default: opted-in enum: - opted-out - opted-in type: string type: object preference_channels_opted_out: properties: discord: enum: - opted-out type: string email: enum: - opted-out type: string inapp: enum: - opted-out type: string push: enum: - opted-out type: string slack: enum: - opted-out type: string sms: enum: - opted-out type: string teams: enum: - opted-out type: string voice: enum: - opted-out type: string whatsapp: enum: - opted-out type: string type: object profiles_delete_body: properties: distinct_id: description: Enter the `distinct_id` of all user profiles that you wish to delete. example: - U00001 - U00002 items: example: '["U00001","U00002"]' type: string type: array required: - distinct_id type: object profiles_distinct_id_body: properties: channel: "$ref": "#/components/schemas/WSIDversionprofilesdistinct_id_channel" distinct_id: description: "(Optional) Enter the new distinct ID that you wish to use to identify the user. If you do not wish to change this value, remove this key from the payload." example: new_distinct_id type: string name: description: "(Optional) Enter the new full name of the user. If you do not wish to change this value, remove this key from the payload." example: John Doe type: string status: description: "(Optional) Enter 1 to change the user's status to active so that the user can receive notifications. Enter 0 to change the user's status to inactive so that the user does not receive any notification. If you do not wish to change this value, remove this key from the payload. If null, the default value is 1." enum: - 1 - 0 type: integer timezone: description: (Optional) Enter the new timezone of the user. For a list of possible values, please click here. enum: - Africa/Abidjan - Africa/Accra - Africa/Addis_Ababa - Africa/Algiers - Africa/Asmara - Africa/Asmera - Africa/Bamako - Africa/Bangui - Africa/Banjul - Africa/Bissau - Africa/Blantyre - Africa/Brazzaville - Africa/Bujumbura - Africa/Cairo - Africa/Casablanca - Africa/Ceuta - Africa/Conakry - Africa/Dakar - Africa/Dar_es_Salaam - Africa/Djibouti - Africa/Douala - Africa/El_Aaiun - Africa/Freetown - Africa/Gaborone - Africa/Harare - Africa/Johannesburg - Africa/Juba - Africa/Kampala - Africa/Khartoum - Africa/Kigali - Africa/Kinshasa - Africa/Lagos - Africa/Libreville - Africa/Lome - Africa/Luanda - Africa/Lubumbashi - Africa/Lusaka - Africa/Malabo - Africa/Maputo - Africa/Maseru - Africa/Mbabane - Africa/Mogadishu - Africa/Monrovia - Africa/Nairobi - Africa/Ndjamena - Africa/Niamey - Africa/Nouakchott - Africa/Ouagadougou - Africa/Porto-Novo - Africa/Sao_Tome - Africa/Timbuktu - Africa/Tripoli - Africa/Tunis - Africa/Windhoek - America/Adak - America/Anchorage - America/Anguilla - America/Antigua - America/Araguaina - America/Argentina/Buenos_Aires - America/Argentina/Catamarca - America/Argentina/ComodRivadavia - America/Argentina/Cordoba - America/Argentina/Jujuy - America/Argentina/La_Rioja - America/Argentina/Mendoza - America/Argentina/Rio_Gallegos - America/Argentina/Salta - America/Argentina/San_Juan - America/Argentina/San_Luis - America/Argentina/Tucuman - America/Argentina/Ushuaia - America/Aruba - America/Asuncion - America/Atikokan - America/Atka - America/Bahia - America/Bahia_Banderas - America/Barbados - America/Belem - America/Belize - America/Blanc-Sablon - America/Boa_Vista - America/Bogota - America/Boise - America/Buenos_Aires - America/Cambridge_Bay - America/Campo_Grande - America/Cancun - America/Caracas - America/Catamarca - America/Cayenne - America/Cayman - America/Chicago - America/Chihuahua - America/Coral_Harbour - America/Cordoba - America/Costa_Rica - America/Creston - America/Cuiaba - America/Curacao - America/Danmarkshavn - America/Dawson - America/Dawson_Creek - America/Denver - America/Detroit - America/Dominica - America/Edmonton - America/Eirunepe - America/El_Salvador - America/Ensenada - America/Fort_Nelson - America/Fort_Wayne - America/Fortaleza - America/Glace_Bay - America/Godthab - America/Goose_Bay - America/Grand_Turk - America/Grenada - America/Guadeloupe - America/Guatemala - America/Guayaquil - America/Guyana - America/Halifax - America/Havana - America/Hermosillo - America/Indiana/Indianapolis - America/Indiana/Knox - America/Indiana/Marengo - America/Indiana/Petersburg - America/Indiana/Tell_City - America/Indiana/Vevay - America/Indiana/Vincennes - America/Indiana/Winamac - America/Indianapolis - America/Inuvik - America/Iqaluit - America/Jamaica - America/Jujuy - America/Juneau - America/Kentucky/Louisville - America/Kentucky/Monticello - America/Knox_IN - America/Kralendijk - America/La_Paz - America/Lima - America/Los_Angeles - America/Louisville - America/Lower_Princes - America/Maceio - America/Managua - America/Manaus - America/Marigot - America/Martinique - America/Matamoros - America/Mazatlan - America/Mendoza - America/Menominee - America/Merida - America/Metlakatla - America/Mexico_City - America/Miquelon - America/Moncton - America/Monterrey - America/Montevideo - America/Montreal - America/Montserrat - America/Nassau - America/New_York - America/Nipigon - America/Nome - America/Noronha - America/North_Dakota/Beulah - America/North_Dakota/Center - America/North_Dakota/New_Salem - America/Nuuk - America/Ojinaga - America/Panama - America/Pangnirtung - America/Paramaribo - America/Phoenix - America/Port-au-Prince - America/Port_of_Spain - America/Porto_Acre - America/Porto_Velho - America/Puerto_Rico - America/Punta_Arenas - America/Rainy_River - America/Rankin_Inlet - America/Recife - America/Regina - America/Resolute - America/Rio_Branco - America/Rosario - America/Santa_Isabel - America/Santarem - America/Santiago - America/Santo_Domingo - America/Sao_Paulo - America/Scoresbysund - America/Shiprock - America/Sitka - America/St_Barthelemy - America/St_Johns - America/St_Kitts - America/St_Lucia - America/St_Thomas - America/St_Vincent - America/Swift_Current - America/Tegucigalpa - America/Thule - America/Thunder_Bay - America/Tijuana - America/Toronto - America/Tortola - America/Vancouver - America/Virgin - America/Whitehorse - America/Winnipeg - America/Yakutat - America/Yellowknife - Antarctica/Casey - Antarctica/Davis - Antarctica/DumontDUrville - Antarctica/Macquarie - Antarctica/Mawson - Antarctica/McMurdo - Antarctica/Palmer - Antarctica/Rothera - Antarctica/South_Pole - Antarctica/Syowa - Antarctica/Troll - Antarctica/Vostok - Arctic/Longyearbyen - Asia/Aden - Asia/Almaty - Asia/Amman - Asia/Anadyr - Asia/Aqtau - Asia/Aqtobe - Asia/Ashgabat - Asia/Ashkhabad - Asia/Atyrau - Asia/Baghdad - Asia/Bahrain - Asia/Baku - Asia/Bangkok - Asia/Barnaul - Asia/Beirut - Asia/Bishkek - Asia/Brunei - Asia/Calcutta - Asia/Chita - Asia/Choibalsan - Asia/Chongqing - Asia/Chungking - Asia/Colombo - Asia/Dacca - Asia/Damascus - Asia/Dhaka - Asia/Dili - Asia/Dubai - Asia/Dushanbe - Asia/Famagusta - Asia/Gaza - Asia/Harbin - Asia/Hebron - Asia/Ho_Chi_Minh - Asia/Hong_Kong - Asia/Hovd - Asia/Irkutsk - Asia/Istanbul - Asia/Jakarta - Asia/Jayapura - Asia/Jerusalem - Asia/Kabul - Asia/Kamchatka - Asia/Karachi - Asia/Kashgar - Asia/Kathmandu - Asia/Katmandu - Asia/Khandyga - Asia/Kolkata - Asia/Krasnoyarsk - Asia/Kuala_Lumpur - Asia/Kuching - Asia/Kuwait - Asia/Macao - Asia/Macau - Asia/Magadan - Asia/Makassar - Asia/Manila - Asia/Muscat - Asia/Nicosia - Asia/Novokuznetsk - Asia/Novosibirsk - Asia/Omsk - Asia/Oral - Asia/Phnom_Penh - Asia/Pontianak - Asia/Pyongyang - Asia/Qatar - Asia/Qostanay - Asia/Qyzylorda - Asia/Rangoon - Asia/Riyadh - Asia/Saigon - Asia/Sakhalin - Asia/Samarkand - Asia/Seoul - Asia/Shanghai - Asia/Singapore - Asia/Srednekolymsk - Asia/Taipei - Asia/Tashkent - Asia/Tbilisi - Asia/Tehran - Asia/Tel_Aviv - Asia/Thimbu - Asia/Thimphu - Asia/Tokyo - Asia/Tomsk - Asia/Ujung_Pandang - Asia/Ulaanbaatar - Asia/Ulan_Bator - Asia/Urumqi - Asia/Ust-Nera - Asia/Vientiane - Asia/Vladivostok - Asia/Yakutsk - Asia/Yangon - Asia/Yekaterinburg - Asia/Yerevan - Atlantic/Azores - Atlantic/Bermuda - Atlantic/Canary - Atlantic/Cape_Verde - Atlantic/Faeroe - Atlantic/Faroe - Atlantic/Jan_Mayen - Atlantic/Madeira - Atlantic/Reykjavik - Atlantic/South_Georgia - Atlantic/St_Helena - Atlantic/Stanley - Australia/ACT - Australia/Adelaide - Australia/Brisbane - Australia/Broken_Hill - Australia/Canberra - Australia/Currie - Australia/Darwin - Australia/Eucla - Australia/Hobart - Australia/LHI - Australia/Lindeman - Australia/Lord_Howe - Australia/Melbourne - Australia/North - Australia/NSW - Australia/Perth - Australia/Queensland - Australia/South - Australia/Sydney - Australia/Tasmania - Australia/Victoria - Australia/West - Australia/Yancowinna - Brazil/Acre - Brazil/DeNoronha - Brazil/East - Brazil/West - Canada/Atlantic - Canada/Central - Canada/Eastern - Canada/Mountain - Canada/Newfoundland - Canada/Pacific - Canada/Saskatchewan - Canada/Yukon - CET - Chile/Continental - Chile/EasterIsland - CST6CDT - Cuba - EET - Egypt - Eire - EST - EST5EDT - Etc/GMT+0 - Etc/GMT+1 - Etc/GMT+10 - Etc/GMT+11 - Etc/GMT+12 - Etc/GMT+2 - Etc/GMT+3 - Etc/GMT+4 - Etc/GMT+5 - Etc/GMT+6 - Etc/GMT+7 - Etc/GMT+8 - Etc/GMT+9 - Etc/GMT - Etc/GMT-0 - Etc/GMT-1 - Etc/GMT-10 - Etc/GMT-11 - Etc/GMT-12 - Etc/GMT-13 - Etc/GMT-14 - Etc/GMT-2 - Etc/GMT-3 - Etc/GMT-4 - Etc/GMT-5 - Etc/GMT-6 - Etc/GMT-7 - Etc/GMT-8 - Etc/GMT-9 - Etc/GMT0 - Etc/Greenwich - Etc/UCT - Etc/Universal - Etc/UTC - Etc/Zulu - Europe/Amsterdam - Europe/Andorra - Europe/Astrakhan - Europe/Athens - Europe/Belfast - Europe/Belgrade - Europe/Berlin - Europe/Bratislava - Europe/Brussels - Europe/Bucharest - Europe/Budapest - Europe/Busingen - Europe/Chisinau - Europe/Copenhagen - Europe/Dublin - Europe/Gibraltar - Europe/Guernsey - Europe/Helsinki - Europe/Isle_of_Man - Europe/Istanbul - Europe/Jersey - Europe/Kaliningrad - Europe/Kiev - Europe/Kirov - Europe/Lisbon - Europe/Ljubljana - Europe/London - Europe/Luxembourg - Europe/Madrid - Europe/Malta - Europe/Mariehamn - Europe/Minsk - Europe/Monaco - Europe/Moscow - Europe/Nicosia - Europe/Oslo - Europe/Paris - Europe/Podgorica - Europe/Prague - Europe/Riga - Europe/Rome - Europe/Samara - Europe/San_Marino - Europe/Sarajevo - Europe/Saratov - Europe/Simferopol - Europe/Skopje - Europe/Sofia - Europe/Stockholm - Europe/Tallinn - Europe/Tirane - Europe/Tiraspol - Europe/Ulyanovsk - Europe/Uzhgorod - Europe/Vaduz - Europe/Vatican - Europe/Vienna - Europe/Vilnius - Europe/Volgograd - Europe/Warsaw - Europe/Zagreb - Europe/Zaporozhye - Europe/Zurich - GB - GB-Eire - GMT+0 - GMT - GMT-0 - GMT0 - Greenwich - Hongkong - HST - Iceland - Indian/Antananarivo - Indian/Chagos - Indian/Christmas - Indian/Cocos - Indian/Comoro - Indian/Kerguelen - Indian/Mahe - Indian/Maldives - Indian/Mauritius - Indian/Mayotte - Indian/Reunion - Iran - Israel - Jamaica - Japan - Kwajalein - Libya - MET - Mexico/BajaNorte - Mexico/BajaSur - Mexico/General - MST - MST7MDT - Navajo - NZ - NZ-CHAT - Pacific/Apia - Pacific/Auckland - Pacific/Bougainville - Pacific/Chatham - Pacific/Chuuk - Pacific/Easter - Pacific/Efate - Pacific/Enderbury - Pacific/Fakaofo - Pacific/Fiji - Pacific/Funafuti - Pacific/Galapagos - Pacific/Gambier - Pacific/Guadalcanal - Pacific/Guam - Pacific/Honolulu - Pacific/Johnston - Pacific/Kanton - Pacific/Kiritimati - Pacific/Kosrae - Pacific/Kwajalein - Pacific/Majuro - Pacific/Marquesas - Pacific/Midway - Pacific/Nauru - Pacific/Niue - Pacific/Norfolk - Pacific/Noumea - Pacific/Pago_Pago - Pacific/Palau - Pacific/Pitcairn - Pacific/Pohnpei - Pacific/Ponape - Pacific/Port_Moresby - Pacific/Rarotonga - Pacific/Saipan - Pacific/Samoa - Pacific/Tahiti - Pacific/Tarawa - Pacific/Tongatapu - Pacific/Truk - Pacific/Wake - Pacific/Wallis - Pacific/Yap - Poland - Portugal - PRC - PST8PDT - ROC - ROK - Singapore - Turkey - UCT - Universal - US/Alaska - US/Aleutian - US/Arizona - US/Central - US/East-Indiana - US/Eastern - US/Hawaii - US/Indiana-Starke - US/Michigan - US/Mountain - US/Pacific - US/Samoa - UTC - W-SU - WET - Zulu example: Asia/Kolkata type: string type: object set_user_property: properties: "$set": "$ref": "#/components/schemas/set_user_property_fields" distinct_id: "$ref": "#/components/schemas/distinct_id" required: - distinct_id - $set type: object set_user_property_fields: description: "Enter the property name as JSON key and the value to set as JSON value" additionalProperties: oneOf: - type: string - type: number - type: boolean - type: string format: date - type: array example: property_1: "some text" property_2: 123 property_3: 45.67 property_4: true property_5: false property_6: "2020-10-01T18:30:00.000Z" property_7: "2021-12-01" property_8: ["iPhone 16 Pro", "iPad 32 GB"] property_9: [23000, 20.34] property_n: ["2020-10-01T18:30:00Z", "2021-11-01T13:35:00+02:00", "2023-12-05"] type: object set_user_property_once: properties: "$once": "$ref": "#/components/schemas/set_user_property_once_fields" distinct_id: "$ref": "#/components/schemas/distinct_id" required: - distinct_id - $once type: object set_user_property_once_fields: description: Enter the property name as JSON key and the value to set as JSON value additionalProperties: oneOf: - type: string - type: number - type: boolean - type: string format: date - type: array example: property_1: "some text" property_2: 123 property_3: 45.67 property_4: true property_5: false property_6: "2020-10-01T18:30:00.000Z" property_7: "2021-12-01" property_8: ["iPhone 16 Pro", "iPad 32 GB"] property_9: [23000, 20.34] property_n: ["2020-10-01T18:30:00Z", "2021-11-01T13:35:00+02:00", "2023-12-05"] type: object increment_user_property: properties: "$add": "$ref": "#/components/schemas/increment_user_property_fields" distinct_id: "$ref": "#/components/schemas/distinct_id" required: - distinct_id - $add type: object increment_user_property_fields: description: Enter the property name as JSON key and the numeric value to increment/decrement as JSON value example: property_1: 23.4 property_2: 20301 property_n: -39.45 additionalProperties: type: number type: object append_to_user_property: properties: "$append": "$ref": "#/components/schemas/append_to_user_property_fields" distinct_id: "$ref": "#/components/schemas/distinct_id" required: - distinct_id - $append type: object append_to_user_property_fields: description: Enter the property name as JSON key and the numeric or string value to append as JSON value additionalProperties: oneOf: - type: number - type: string - type: string format: date example: property_1: "some text" property_2: 123 property_3: 45.67 property_4: "2020-10-01T18:30:00.000Z" property_5: "2021-12-01" property_n: "2021-11-01T13:35:00+02:00" type: object remove_from_user_property_list: properties: "$remove": "$ref": "#/components/schemas/remove_from_user_property_list_fields" distinct_id: "$ref": "#/components/schemas/distinct_id" required: - distinct_id - $remove type: object remove_from_user_property_list_fields: description: Enter the property name as JSON key and the value to remove as JSON value additionalProperties: oneOf: - type: number - type: string - type: string format: date example: property_1: "some text" property_2: 123 property_3: 45.67 property_4: "2020-10-01T18:30:00.000Z" property_5: "2021-12-01" property_n: "2021-11-01T13:35:00+02:00" type: object unset_user_property: properties: "$unset": "$ref": "#/components/schemas/unset_user_property_fields" distinct_id: "$ref": "#/components/schemas/distinct_id" required: - distinct_id - $unset type: object unset_user_property_fields: description: Enter the property names to unset in an array example: ["property_1", "property_2", "property_n"] items: type: string type: array user_property_bulk: properties: batch: description: "Enter an array of objects with `distinct_id` and `action` to perform on the user properties" items: type: object properties: distinct_id: "$ref": "#/components/schemas/distinct_id" action: type: object properties: "$set": "$ref": "#/components/schemas/set_user_property_fields" "$once": "$ref": "#/components/schemas/set_user_property_once_fields" "$add": "$ref": "#/components/schemas/increment_user_property_fields" "$append": "$ref": "#/components/schemas/append_to_user_property_fields" "$remove": "$ref": "#/components/schemas/remove_from_user_property_list_fields" "$unset": "$ref": "#/components/schemas/unset_user_property_fields" example: distinct_id: "XXXXX" action: $set: property_1: "some text" property_2: 123 property_3: 45.67 $once: property_4: true property_5: ["iPhone 16 Pro", "iPad 32 GB"] property_6: "2020-10-01T18:30:00.000Z" $add: property_7: 10.23 property_8: -11.9 property_9: 223 $append: property_10: "#12345" property_11: 2030 property_12: "2022-11-11T10:30:00+02:00" $remove: property_13: "2023-11-10" property_14: "ABC1234" property_15: 4010 $unset: ["property_0", "old_property1"] required: - distinct_id - action type: array required: - batch to: properties: discord: description: Enter the discord ID of the user. example: 101XXXXXXXXXX7XXXXX type: string email: description: Enter the email address of the user. example: abcde@fghi.com type: string inapp: description: Enter the distinct ID or the generated token of the user. example: "12345" type: string push: description: If you use multiple Push providers, add the following prefix for the respective provider tokens:

- For Expo: `expo_token:`
- For FCM: `fcm_token:`
- For OneSignal playerId: `onesignal_player_id:`
- For OneSignal externalId: `onesignal_external_id:`
- For Mi Push: `mi_token:`

If you use just one provider, then the prefix is not required. However, if you wish to use OneSignal with playerId token, then the prefix is required. example: ExponentPushToken[XXXXX] type: string slack: description: Enter the channel ID, user ID, or email address of the user. example: CXXXXXXXXXX type: string sms: description: Enter the mobile number of the user. The number must start with the country code (preferably in E.164 format). For example: +919879XXXXXX. example: +919879XXXXXX type: string teams: description: Enter the channel name. For teams, we currently support sending to one channel only. To send to multiple channels, do get in touch and we can share a workaround. example: General type: string voice: description: Enter the mobile number of the user. The number must start with the country code (preferably in E.164 format). For example: +919879XXXXXX. example: +919879XXXXXX type: string whatsapp: description: Enter the WhatsApp mobile number of the user. The number must start with the country code (preferably in E.164 format). For example: +919879XXXXXX example: +919879XXXXXX type: string type: object update_subscription_multiple: properties: user_preference: properties: SXXXXXXXXX: "$ref": "#/components/schemas/preference_channels" type: object type: object required: - user_preference update_subscription_single: properties: channel: enum: - sms - whatsapp - email - discord - slack - teams - push - voice - inapp - webpush type: string distinct_id: type: string status: enum: - opted-in - opted-out type: string type: object required: - channel - distinct_id - status updated_at: properties: discord: type: string email: type: string inapp: type: string push: type: string slack: type: string sms: type: string teams: type: string voice: type: string webpush: type: string whatsapp: type: string type: object version_event_body: oneOf: - properties: callback: "$ref": "#/components/schemas/callback" data: "$ref": "#/components/schemas/data" event: "$ref": "#/components/schemas/event" to: "$ref": "#/components/schemas/to" required: - event - to type: object - properties: callback: "$ref": "#/components/schemas/callback" data: "$ref": "#/components/schemas/data" distinct_id: "$ref": "#/components/schemas/distinct_id" event: "$ref": "#/components/schemas/event" required: - distinct_id - event type: object - properties: callback: "$ref": "#/components/schemas/callback" data: "$ref": "#/components/schemas/data" distinct_id: "$ref": "#/components/schemas/distinct_id" event: "$ref": "#/components/schemas/event" to: "$ref": "#/components/schemas/to" required: - distinct_id - event - to type: object version_profiles_body: properties: channel: "$ref": "#/components/schemas/WSIDversionprofiles_channel" distinct_id: description: Enter the distinct ID that you use to identify the user. example: XXXXXXXX type: string name: description: "(Optional) Enter the full name of the user." example: John Doe type: string status: description: "(Optional) Enter 1 to specify that the user is active and should receive notifications. Enter 0 to specify that the user in inactive and should not receive any notifications. If null, the default value is 1." enum: - 1 - 0 type: integer timezone: description: (Optional) Enter the timezone of the user. For a list of possible values, please click here. enum: - Africa/Abidjan - Africa/Accra - Africa/Addis_Ababa - Africa/Algiers - Africa/Asmara - Africa/Asmera - Africa/Bamako - Africa/Bangui - Africa/Banjul - Africa/Bissau - Africa/Blantyre - Africa/Brazzaville - Africa/Bujumbura - Africa/Cairo - Africa/Casablanca - Africa/Ceuta - Africa/Conakry - Africa/Dakar - Africa/Dar_es_Salaam - Africa/Djibouti - Africa/Douala - Africa/El_Aaiun - Africa/Freetown - Africa/Gaborone - Africa/Harare - Africa/Johannesburg - Africa/Juba - Africa/Kampala - Africa/Khartoum - Africa/Kigali - Africa/Kinshasa - Africa/Lagos - Africa/Libreville - Africa/Lome - Africa/Luanda - Africa/Lubumbashi - Africa/Lusaka - Africa/Malabo - Africa/Maputo - Africa/Maseru - Africa/Mbabane - Africa/Mogadishu - Africa/Monrovia - Africa/Nairobi - Africa/Ndjamena - Africa/Niamey - Africa/Nouakchott - Africa/Ouagadougou - Africa/Porto-Novo - Africa/Sao_Tome - Africa/Timbuktu - Africa/Tripoli - Africa/Tunis - Africa/Windhoek - America/Adak - America/Anchorage - America/Anguilla - America/Antigua - America/Araguaina - America/Argentina/Buenos_Aires - America/Argentina/Catamarca - America/Argentina/ComodRivadavia - America/Argentina/Cordoba - America/Argentina/Jujuy - America/Argentina/La_Rioja - America/Argentina/Mendoza - America/Argentina/Rio_Gallegos - America/Argentina/Salta - America/Argentina/San_Juan - America/Argentina/San_Luis - America/Argentina/Tucuman - America/Argentina/Ushuaia - America/Aruba - America/Asuncion - America/Atikokan - America/Atka - America/Bahia - America/Bahia_Banderas - America/Barbados - America/Belem - America/Belize - America/Blanc-Sablon - America/Boa_Vista - America/Bogota - America/Boise - America/Buenos_Aires - America/Cambridge_Bay - America/Campo_Grande - America/Cancun - America/Caracas - America/Catamarca - America/Cayenne - America/Cayman - America/Chicago - America/Chihuahua - America/Coral_Harbour - America/Cordoba - America/Costa_Rica - America/Creston - America/Cuiaba - America/Curacao - America/Danmarkshavn - America/Dawson - America/Dawson_Creek - America/Denver - America/Detroit - America/Dominica - America/Edmonton - America/Eirunepe - America/El_Salvador - America/Ensenada - America/Fort_Nelson - America/Fort_Wayne - America/Fortaleza - America/Glace_Bay - America/Godthab - America/Goose_Bay - America/Grand_Turk - America/Grenada - America/Guadeloupe - America/Guatemala - America/Guayaquil - America/Guyana - America/Halifax - America/Havana - America/Hermosillo - America/Indiana/Indianapolis - America/Indiana/Knox - America/Indiana/Marengo - America/Indiana/Petersburg - America/Indiana/Tell_City - America/Indiana/Vevay - America/Indiana/Vincennes - America/Indiana/Winamac - America/Indianapolis - America/Inuvik - America/Iqaluit - America/Jamaica - America/Jujuy - America/Juneau - America/Kentucky/Louisville - America/Kentucky/Monticello - America/Knox_IN - America/Kralendijk - America/La_Paz - America/Lima - America/Los_Angeles - America/Louisville - America/Lower_Princes - America/Maceio - America/Managua - America/Manaus - America/Marigot - America/Martinique - America/Matamoros - America/Mazatlan - America/Mendoza - America/Menominee - America/Merida - America/Metlakatla - America/Mexico_City - America/Miquelon - America/Moncton - America/Monterrey - America/Montevideo - America/Montreal - America/Montserrat - America/Nassau - America/New_York - America/Nipigon - America/Nome - America/Noronha - America/North_Dakota/Beulah - America/North_Dakota/Center - America/North_Dakota/New_Salem - America/Nuuk - America/Ojinaga - America/Panama - America/Pangnirtung - America/Paramaribo - America/Phoenix - America/Port-au-Prince - America/Port_of_Spain - America/Porto_Acre - America/Porto_Velho - America/Puerto_Rico - America/Punta_Arenas - America/Rainy_River - America/Rankin_Inlet - America/Recife - America/Regina - America/Resolute - America/Rio_Branco - America/Rosario - America/Santa_Isabel - America/Santarem - America/Santiago - America/Santo_Domingo - America/Sao_Paulo - America/Scoresbysund - America/Shiprock - America/Sitka - America/St_Barthelemy - America/St_Johns - America/St_Kitts - America/St_Lucia - America/St_Thomas - America/St_Vincent - America/Swift_Current - America/Tegucigalpa - America/Thule - America/Thunder_Bay - America/Tijuana - America/Toronto - America/Tortola - America/Vancouver - America/Virgin - America/Whitehorse - America/Winnipeg - America/Yakutat - America/Yellowknife - Antarctica/Casey - Antarctica/Davis - Antarctica/DumontDUrville - Antarctica/Macquarie - Antarctica/Mawson - Antarctica/McMurdo - Antarctica/Palmer - Antarctica/Rothera - Antarctica/South_Pole - Antarctica/Syowa - Antarctica/Troll - Antarctica/Vostok - Arctic/Longyearbyen - Asia/Aden - Asia/Almaty - Asia/Amman - Asia/Anadyr - Asia/Aqtau - Asia/Aqtobe - Asia/Ashgabat - Asia/Ashkhabad - Asia/Atyrau - Asia/Baghdad - Asia/Bahrain - Asia/Baku - Asia/Bangkok - Asia/Barnaul - Asia/Beirut - Asia/Bishkek - Asia/Brunei - Asia/Calcutta - Asia/Chita - Asia/Choibalsan - Asia/Chongqing - Asia/Chungking - Asia/Colombo - Asia/Dacca - Asia/Damascus - Asia/Dhaka - Asia/Dili - Asia/Dubai - Asia/Dushanbe - Asia/Famagusta - Asia/Gaza - Asia/Harbin - Asia/Hebron - Asia/Ho_Chi_Minh - Asia/Hong_Kong - Asia/Hovd - Asia/Irkutsk - Asia/Istanbul - Asia/Jakarta - Asia/Jayapura - Asia/Jerusalem - Asia/Kabul - Asia/Kamchatka - Asia/Karachi - Asia/Kashgar - Asia/Kathmandu - Asia/Katmandu - Asia/Khandyga - Asia/Kolkata - Asia/Krasnoyarsk - Asia/Kuala_Lumpur - Asia/Kuching - Asia/Kuwait - Asia/Macao - Asia/Macau - Asia/Magadan - Asia/Makassar - Asia/Manila - Asia/Muscat - Asia/Nicosia - Asia/Novokuznetsk - Asia/Novosibirsk - Asia/Omsk - Asia/Oral - Asia/Phnom_Penh - Asia/Pontianak - Asia/Pyongyang - Asia/Qatar - Asia/Qostanay - Asia/Qyzylorda - Asia/Rangoon - Asia/Riyadh - Asia/Saigon - Asia/Sakhalin - Asia/Samarkand - Asia/Seoul - Asia/Shanghai - Asia/Singapore - Asia/Srednekolymsk - Asia/Taipei - Asia/Tashkent - Asia/Tbilisi - Asia/Tehran - Asia/Tel_Aviv - Asia/Thimbu - Asia/Thimphu - Asia/Tokyo - Asia/Tomsk - Asia/Ujung_Pandang - Asia/Ulaanbaatar - Asia/Ulan_Bator - Asia/Urumqi - Asia/Ust-Nera - Asia/Vientiane - Asia/Vladivostok - Asia/Yakutsk - Asia/Yangon - Asia/Yekaterinburg - Asia/Yerevan - Atlantic/Azores - Atlantic/Bermuda - Atlantic/Canary - Atlantic/Cape_Verde - Atlantic/Faeroe - Atlantic/Faroe - Atlantic/Jan_Mayen - Atlantic/Madeira - Atlantic/Reykjavik - Atlantic/South_Georgia - Atlantic/St_Helena - Atlantic/Stanley - Australia/ACT - Australia/Adelaide - Australia/Brisbane - Australia/Broken_Hill - Australia/Canberra - Australia/Currie - Australia/Darwin - Australia/Eucla - Australia/Hobart - Australia/LHI - Australia/Lindeman - Australia/Lord_Howe - Australia/Melbourne - Australia/North - Australia/NSW - Australia/Perth - Australia/Queensland - Australia/South - Australia/Sydney - Australia/Tasmania - Australia/Victoria - Australia/West - Australia/Yancowinna - Brazil/Acre - Brazil/DeNoronha - Brazil/East - Brazil/West - Canada/Atlantic - Canada/Central - Canada/Eastern - Canada/Mountain - Canada/Newfoundland - Canada/Pacific - Canada/Saskatchewan - Canada/Yukon - CET - Chile/Continental - Chile/EasterIsland - CST6CDT - Cuba - EET - Egypt - Eire - EST - EST5EDT - Etc/GMT+0 - Etc/GMT+1 - Etc/GMT+10 - Etc/GMT+11 - Etc/GMT+12 - Etc/GMT+2 - Etc/GMT+3 - Etc/GMT+4 - Etc/GMT+5 - Etc/GMT+6 - Etc/GMT+7 - Etc/GMT+8 - Etc/GMT+9 - Etc/GMT - Etc/GMT-0 - Etc/GMT-1 - Etc/GMT-10 - Etc/GMT-11 - Etc/GMT-12 - Etc/GMT-13 - Etc/GMT-14 - Etc/GMT-2 - Etc/GMT-3 - Etc/GMT-4 - Etc/GMT-5 - Etc/GMT-6 - Etc/GMT-7 - Etc/GMT-8 - Etc/GMT-9 - Etc/GMT0 - Etc/Greenwich - Etc/UCT - Etc/Universal - Etc/UTC - Etc/Zulu - Europe/Amsterdam - Europe/Andorra - Europe/Astrakhan - Europe/Athens - Europe/Belfast - Europe/Belgrade - Europe/Berlin - Europe/Bratislava - Europe/Brussels - Europe/Bucharest - Europe/Budapest - Europe/Busingen - Europe/Chisinau - Europe/Copenhagen - Europe/Dublin - Europe/Gibraltar - Europe/Guernsey - Europe/Helsinki - Europe/Isle_of_Man - Europe/Istanbul - Europe/Jersey - Europe/Kaliningrad - Europe/Kiev - Europe/Kirov - Europe/Lisbon - Europe/Ljubljana - Europe/London - Europe/Luxembourg - Europe/Madrid - Europe/Malta - Europe/Mariehamn - Europe/Minsk - Europe/Monaco - Europe/Moscow - Europe/Nicosia - Europe/Oslo - Europe/Paris - Europe/Podgorica - Europe/Prague - Europe/Riga - Europe/Rome - Europe/Samara - Europe/San_Marino - Europe/Sarajevo - Europe/Saratov - Europe/Simferopol - Europe/Skopje - Europe/Sofia - Europe/Stockholm - Europe/Tallinn - Europe/Tirane - Europe/Tiraspol - Europe/Ulyanovsk - Europe/Uzhgorod - Europe/Vaduz - Europe/Vatican - Europe/Vienna - Europe/Vilnius - Europe/Volgograd - Europe/Warsaw - Europe/Zagreb - Europe/Zaporozhye - Europe/Zurich - GB - GB-Eire - GMT+0 - GMT - GMT-0 - GMT0 - Greenwich - Hongkong - HST - Iceland - Indian/Antananarivo - Indian/Chagos - Indian/Christmas - Indian/Cocos - Indian/Comoro - Indian/Kerguelen - Indian/Mahe - Indian/Maldives - Indian/Mauritius - Indian/Mayotte - Indian/Reunion - Iran - Israel - Jamaica - Japan - Kwajalein - Libya - MET - Mexico/BajaNorte - Mexico/BajaSur - Mexico/General - MST - MST7MDT - Navajo - NZ - NZ-CHAT - Pacific/Apia - Pacific/Auckland - Pacific/Bougainville - Pacific/Chatham - Pacific/Chuuk - Pacific/Easter - Pacific/Efate - Pacific/Enderbury - Pacific/Fakaofo - Pacific/Fiji - Pacific/Funafuti - Pacific/Galapagos - Pacific/Gambier - Pacific/Guadalcanal - Pacific/Guam - Pacific/Honolulu - Pacific/Johnston - Pacific/Kanton - Pacific/Kiritimati - Pacific/Kosrae - Pacific/Kwajalein - Pacific/Majuro - Pacific/Marquesas - Pacific/Midway - Pacific/Nauru - Pacific/Niue - Pacific/Norfolk - Pacific/Noumea - Pacific/Pago_Pago - Pacific/Palau - Pacific/Pitcairn - Pacific/Pohnpei - Pacific/Ponape - Pacific/Port_Moresby - Pacific/Rarotonga - Pacific/Saipan - Pacific/Samoa - Pacific/Tahiti - Pacific/Tarawa - Pacific/Tongatapu - Pacific/Truk - Pacific/Wake - Pacific/Wallis - Pacific/Yap - Poland - Portugal - PRC - PST8PDT - ROC - ROK - Singapore - Turkey - UCT - Universal - US/Alaska - US/Aleutian - US/Arizona - US/Central - US/East-Indiana - US/Eastern - US/Hawaii - US/Indiana-Starke - US/Michigan - US/Mountain - US/Pacific - US/Samoa - UTC - W-SU - WET - Zulu example: Asia/Kolkata type: string required: - distinct_id type: object fetch_suppression_list: properties: _id: type: string example: 68763be4b8cee01156d9fa8a description: Unique identifier of the suppression record destination: type: string example: 919XXXXXXXX description: Phone number or email of the suppressed user distinct_id: type: string example: XXXX-XXX-XXXX description: Unique identifier (used as an alternative to destination) channel: type: string example: sms description: Communication channel (e.g., sms, whatsapp, email) description: type: string example: DND description: Reason or tag for suppression (e.g., "DND", "Testing"). created_at: type: string example: "2025-07-15T16:20:16.302+05:30" description: Timestamp when the suppression was created expiry_ts: type: string example: "2025-07-15T16:25:16.302+05:30" description: Optional timestamp for expiration of suppression type: object add_suppression_list: oneOf: - properties: distinct_id: type: string example: XXXX-XXX-XXXX description: Unique identifier (used as an alternative to destination) channel: type: string example: sms description: Communication channel (e.g., sms, whatsapp, email) description: type: string example: DND description: Reason or tag for suppression (e.g., "DND", "Testing"). type: object required: - distinct_id - channel - properties: destination: type: string example: 919XXXXXXXX description: Phone number or email of the suppressed user channel: type: string example: sms description: Communication channel (e.g., sms, whatsapp, email) description: type: string example: DND description: Reason or tag for suppression (e.g., "DND", "Testing"). type: object required: - destination - channel