openapi: 3.0.0 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': description: Request accepted successfully content: application/json: schema: $ref: '#/components/schemas/inline_response_202' '400': description: Event name does not exist content: application/json: schema: $ref: '#/components/schemas/inline_response_400' '401': description: API Key is invalid content: application/json: schema: $ref: '#/components/schemas/inline_response_401' /{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': description: Request accepted successfully content: application/json: schema: $ref: '#/components/schemas/inline_response_202_1' '400': description: Event name does not exist content: application/json: schema: $ref: '#/components/schemas/inline_response_400' '401': description: API Key is invalid content: application/json: schema: $ref: '#/components/schemas/inline_response_401' /{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': description: Profile created successfully content: application/json: schema: $ref: '#/components/schemas/inline_response_201' '400': description: Distinct ID already exists content: application/json: schema: $ref: '#/components/schemas/inline_response_400_1' '401': description: API Key is invalid content: application/json: schema: $ref: '#/components/schemas/inline_response_401' /{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': description: Profile fetched successfully content: application/json: schema: $ref: '#/components/schemas/inline_response_200' '400': description: Distinct ID does not exist content: application/json: schema: $ref: '#/components/schemas/inline_response_400_2' '401': description: API Key is invalid content: application/json: schema: $ref: '#/components/schemas/inline_response_401' 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': description: Profile updated successfully content: application/json: schema: $ref: '#/components/schemas/inline_response_200_1' '400': description: Distinct ID does not exist content: application/json: schema: $ref: '#/components/schemas/inline_response_400_3' '401': description: API Key is invalid content: application/json: schema: $ref: '#/components/schemas/inline_response_401' /{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': description: Profiles merged successfully and the source profile is deleted content: application/json: schema: $ref: '#/components/schemas/inline_response_200_2' '400': description: Source distinct ID does not exist content: application/json: schema: $ref: '#/components/schemas/inline_response_400_4' '401': description: API Key is invalid content: application/json: schema: $ref: '#/components/schemas/inline_response_401' /{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': description: Profile deleted successfully content: application/json: schema: $ref: '#/components/schemas/inline_response_200_3' '400': description: Distinct ID does not exist content: application/json: schema: $ref: '#/components/schemas/inline_response_400_5' '401': description: API Key is invalid content: application/json: schema: $ref: '#/components/schemas/inline_response_401' /{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': description: Profile updated successfully content: application/json: schema: $ref: '#/components/schemas/inline_response_200_4' '400': description: Distinct ID does not exist content: application/json: schema: $ref: '#/components/schemas/inline_response_400_2' '401': description: API Key is invalid content: application/json: schema: $ref: '#/components/schemas/inline_response_401' /{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': description: Profile updated successfully content: application/json: schema: $ref: '#/components/schemas/inline_response_200_4' '400': description: Distinct ID or channel data does not exist content: application/json: schema: $ref: '#/components/schemas/inline_response_400_6' '401': description: API Key is invalid content: application/json: schema: $ref: '#/components/schemas/inline_response_401' /{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': description: Preference fetched successfully content: application/json: schema: $ref: '#/components/schemas/inline_pref_response_200' '400': description: Distinct ID is not provided content: application/json: schema: $ref: '#/components/schemas/inline_response_400_8' '401': description: API Key is invalid content: application/json: schema: $ref: '#/components/schemas/inline_response_401' 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': description: Subscription updated successfully content: application/json: schema: $ref: '#/components/schemas/subscription_updated_single' '400': description: Distinct ID, channel, or status is not provided content: application/json: schema: $ref: '#/components/schemas/subscription_updated_single_400' '401': description: API Key is invalid content: application/json: schema: $ref: '#/components/schemas/inline_response_401' /{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': description: Subscription updated successfully content: application/json: schema: $ref: '#/components/schemas/subscription_updated_single' '400': description: Distinct ID is not provided content: application/json: schema: $ref: '#/components/schemas/subscription_updated_single_400' '401': description: API Key is invalid content: application/json: schema: $ref: '#/components/schemas/inline_response_401' /{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': description: OTP successfully validated content: application/json: schema: $ref: '#/components/schemas/inline_response_200_5' '400': description: Invalid OTP entered by user content: application/json: schema: $ref: '#/components/schemas/inline_response_400_7' '401': description: API Key or Workspace Id is invalid content: application/json: schema: $ref: '#/components/schemas/inline_response_401' components: schemas: event: type: string description: Enter the name of the event you wish to fire. example: event_name distinct_id: type: string description: Enter the distinct ID that you use to identify the recipient. example: XXXXXXXX to: type: object properties: sms: type: string description: Enter the mobile number of the user. The number must start with the country code (without +). For example: 919879XXXXXX. example: 919879XXXXXX whatsapp: type: string description: Enter the WhatsApp mobile number of the user. The number must start with the country code (without +). For example: 919879XXXXXX example: 919879XXXXXX email: type: string description: Enter the email address of the user. example: abcde@fghi.com slack: type: string description: Enter the channel ID, user ID, or email address of the user. example: CXXXXXXXXXX discord: type: string description: Enter the discord ID of the user. example: 101XXXXXXXXXX7XXXXX teams: type: string description: Enter the 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. example: General push: type: string 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] inapp: type: string description: Enter the distinct ID or the generated token of the user. example: '12345' voice: type: string description: Enter the mobile number of the user. The number must start with the country code (without +). For example: 919879XXXXXX. example: 919879XXXXXX data: type: object 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 callback: required: - custom_id type: object properties: custom_id: type: string 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 custom1: type: string 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 custom2: type: string 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 enable: type: boolean description: (Optional) Set `true` to enable delivery callback or `false` to disable delivery callback. The default value is `true`. example: true enum: - true - false 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 Creating Delivery Webhooks for more details.

The following parameters are prefined within callback and can be passed dynamically when you invoke an event:

**Note:** Additional parameters can be added from the DLR configuration in the Allowlist URL page. version_event_body: oneOf: - required: - event - to type: object properties: event: $ref: '#/components/schemas/event' to: $ref: '#/components/schemas/to' data: $ref: '#/components/schemas/data' callback: $ref: '#/components/schemas/callback' - required: - distinct_id - event type: object properties: event: $ref: '#/components/schemas/event' distinct_id: $ref: '#/components/schemas/distinct_id' data: $ref: '#/components/schemas/data' callback: $ref: '#/components/schemas/callback' - required: - distinct_id - event - to type: object properties: event: $ref: '#/components/schemas/event' distinct_id: $ref: '#/components/schemas/distinct_id' to: $ref: '#/components/schemas/to' data: $ref: '#/components/schemas/data' callback: $ref: '#/components/schemas/callback' inline_response_202: type: object properties: request_id: type: string example: XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX received_time: type: number example: 1672991866453 event: type: string example: event_name response: $ref: '#/components/schemas/inline_response_202_response' inline_response_400: type: object properties: status: type: string example: error _message: type: string example: The notification event name 'event_name' is invalid or does not exists on prod inline_response_401: type: object properties: status: type: string example: error _message: type: string example: Invalid API details event_bulk_body: required: - batch - event type: object properties: event: $ref: '#/components/schemas/event' batch: type: array 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: - required: - event - to type: object properties: to: $ref: '#/components/schemas/to' data: $ref: '#/components/schemas/data' callback: $ref: '#/components/schemas/callback' - required: - distinct_id - event type: object properties: distinct_id: $ref: '#/components/schemas/distinct_id' data: $ref: '#/components/schemas/data' callback: $ref: '#/components/schemas/callback' - required: - distinct_id - event - to type: object properties: distinct_id: $ref: '#/components/schemas/distinct_id' to: $ref: '#/components/schemas/to' data: $ref: '#/components/schemas/data' callback: $ref: '#/components/schemas/callback' inline_response_202_1: type: object properties: request_id: type: string example: XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX received_time: type: number example: 1672991866453 event: type: string example: event_name response: type: array items: $ref: '#/components/schemas/inline_response_202_1_response' WSIDversionprofiles_channel_push: required: - token type: object properties: token: type: string 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] integration_id: type: string 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 status: type: integer 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 WSIDversionprofiles_channel_inapp: required: - token type: object properties: token: type: string description: Enter the distinct ID or the generated token of the user. example: XXXXXXXX integration_id: type: string 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 status: type: integer 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 WSIDversionprofiles_channel: type: object properties: sms: type: string description: Enter the mobile number of the user. The number must start with the country code (without +). For example: 919879XXXXXX. example: 919879XXXXXX whatsapp: type: string description: Enter the WhatsApp mobile number of the user. The number must start with the country code (without +). For example: 919879XXXXXX example: 919879XXXXXX email: type: string description: Enter the email address of the user. example: abcde@fghi.com slack: type: string description: Enter the channel ID, user ID, or email address of the user. example: CXXXXXXXXXX discord: type: string description: Enter the discord ID of the user. example: 101XXXXXXXXXX7XXXXX teams: type: string description: Enter the 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. example: General voice: type: string description: Enter the mobile number of the user. The number must start with the country code (without +). For example: 919879XXXXXX. example: 919879XXXXXX push: type: array items: $ref: '#/components/schemas/WSIDversionprofiles_channel_push' inapp: type: array items: $ref: '#/components/schemas/WSIDversionprofiles_channel_inapp' version_profiles_body: required: - distinct_id type: object properties: distinct_id: type: string description: Enter the distinct ID that you use to identify the user. example: XXXXXXXX name: type: string description: (Optional) Enter the full name of the user. example: John Doe status: type: integer 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 timezone: type: string description: (Optional) Enter the timezone of the user. For a list of possible values, please click here. example: Asia/Kolkata 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 channel: $ref: '#/components/schemas/WSIDversionprofiles_channel' inline_response_201: type: object properties: status: type: string example: ok _message: type: string example: Profile created successfully inline_response_400_1: type: object properties: status: type: string example: error _message: type: string example: Distinct ID 'distinct_id' already exists in the 'version' version of your workspace inline_response_200: type: object properties: distinct_id: type: string description: The distinct ID used to identify the user. example: XXXXXXXX name: type: string description: The full name of the user. example: John Doe country_code: type: string 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 timezone: type: string description: The timezone of the user. For a list of possible values, please click here. example: Asia/Kolkata timezone_offset: type: string 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' created_at: type: string description: The timestamp when the profile was created in ISO Date Time Format. example: '2023-04-21T06:34:01.386Z' updated_at: type: string description: The timestamp when the profile was last updated in ISO Date Time Format. example: '2023-04-21T08:42:30.235Z' channel: $ref: '#/components/schemas/inline_response_200_channel' status: type: integer 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. example: 1 enum: - 1 - 0 id_list: type: array description: Other profile IDs previously linked to this profile. items: example: 6442XXXXXXXXXXXXXXXXc684 profile_id: type: string description: Unique profile ID within Fyno. example: 6442XXXXXXXXXXXXXXXXc685 version: type: string description: The version where the user profile is available. example: test enum: - live - test inline_response_400_2: type: object properties: status: type: string example: error _message: type: string example: incorrect/non existing distinct_id provided WSIDversionprofilesdistinct_id_channel_push: required: - token type: object properties: token: type: string 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] integration_id: type: string 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 status: type: integer 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 WSIDversionprofilesdistinct_id_channel_inapp: required: - token type: object properties: token: type: string description: Enter the new distinct ID or the generated token of the user. example: XXXXXXXX integration_id: type: string 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 status: type: integer 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 WSIDversionprofilesdistinct_id_channel: type: object properties: sms: type: string description: Enter the new mobile number of the user. The number must start with the country code (without +). For example: 919879XXXXXX. example: 919879XXXXXX whatsapp: type: string description: Enter the new WhatsApp mobile number of the user. The number must start with the country code (without +). For example: 919879XXXXXX example: 919879XXXXXX email: type: string description: Enter the new email address of the user. example: abcde@fghi.com slack: type: string description: Enter the new channel ID, user ID, or email address of the user. example: CXXXXXXXXXX discord: type: string description: Enter the new discord ID of the user. example: 101XXXXXXXXXX7XXXXX teams: type: string 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. example: General voice: type: string description: Enter the new mobile number of the user. The number must start with the country code (without +). For example: 919879XXXXXX. example: 919879XXXXXX push: type: array items: $ref: '#/components/schemas/WSIDversionprofilesdistinct_id_channel_push' inapp: type: array items: $ref: '#/components/schemas/WSIDversionprofilesdistinct_id_channel_inapp' 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. profiles_distinct_id_body: type: object properties: distinct_id: type: string 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 name: type: string 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 timezone: type: string description: (Optional) Enter the new timezone of the user. For a list of possible values, please click here. example: Asia/Kolkata 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 status: type: integer 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 channel: $ref: '#/components/schemas/WSIDversionprofilesdistinct_id_channel' inline_response_200_1: type: object properties: status: type: string example: ok _message: type: string example: 1 Record(s) updated successfully inline_response_400_3: type: object properties: status: type: string example: error _message: type: string example: Unable to update the record since the record does not exist inline_response_200_2: type: object properties: status: type: string example: ok _message: type: string example: 1 Record(s) updated and 1 Records(s) deleted inline_response_400_4: type: object properties: status: type: string example: error _message: type: string example: merge from id does not exist profiles_delete_body: required: - distinct_id type: object properties: distinct_id: type: array description: Enter the `distinct_id` of all user profiles that you wish to delete. example: - U00001 - U00002 items: type: string example: '["U00001","U00002"]' inline_response_200_3: type: object properties: status: type: string example: ok _message: type: string example: 1 User(s) deleted successfully inline_response_400_5: type: object properties: status: type: string example: error _message: type: string example: Cannot delete non existing user WSIDversionprofilesdistinct_idchannel_channel_push: required: - token type: object properties: token: type: string description: Enter the new push token that you wish 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] integration_id: type: string 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 status: type: integer 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 WSIDversionprofilesdistinct_idchannel_channel_inapp: required: - token type: object properties: token: type: string description: Enter the new distinct ID or the generated token that you wish to add for the user.

**Note:** This value would get added (and not updated) to the channel data. example: XXXXXXXX integration_id: type: string 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 status: type: integer 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 WSIDversionprofilesdistinct_idchannel_channel: type: object properties: sms: type: string description: Enter the new mobile number of the user. The number must start with the country code (without +). For example: 919879XXXXXX. If you do not wish to change this value, remove this key from the payload. example: 919879XXXXXX whatsapp: type: string description: Enter the new WhatsApp mobile number of the user. The number must start with the country code (without +). For example: 919879XXXXXX. If you do not wish to change this value, remove this key from the payload. example: 919879XXXXXX email: type: string 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 slack: type: string 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 discord: type: string 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 teams: type: string 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 voice: type: string description: Enter the new mobile number of the user. The number must start with the country code (without +). For example: 919879XXXXXX. If you do not wish to change this value, remove this key from the payload. example: 919879XXXXXX push: type: array items: $ref: '#/components/schemas/WSIDversionprofilesdistinct_idchannel_channel_push' inapp: type: array items: $ref: '#/components/schemas/WSIDversionprofilesdistinct_idchannel_channel_inapp' distinct_id_channel_body: required: - channel type: object properties: channel: $ref: '#/components/schemas/WSIDversionprofilesdistinct_idchannel_channel' inline_response_200_4: type: object properties: status: type: string example: ok _message: type: string example: Channel has been modified successfully channel_delete_body: oneOf: - required: - channel type: object properties: channel: type: array 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: type: string example: '["sms","whatsapp","email","slack","discord","teams","voice","push","inapp"]' - required: - inapp - push type: object properties: push: type: array description: Enter the tokens to delete from within the Push channel. example: - token1 - token2 items: type: string example: '["token1","token2"]' inapp: type: array description: Enter the tokens to delete from within the InApp channel. example: - token1 - token2 items: type: string example: '["token1","token2"]' inline_response_400_6: type: object properties: status: type: string example: error _message: type: string example: Unable to delete channel since the channel does not exist inline_response_200_5: type: object properties: status: type: string example: ok _message: type: string example: OTP successfully validated. inline_response_400_7: type: object properties: status: type: string example: error _message: type: string example: user entered the wrong OTP inline_response_202_response_sms: type: object properties: status: type: string example: ok destination: type: string example: 919879XXXXXX msg_id: type: string example: XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX:XXXX inline_response_202_response_email: type: object properties: status: type: string example: ok destination: type: string example: abcde@fghi.com msg_id: type: string example: XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX:XXXX inline_response_202_response_slack: type: object properties: status: type: string example: ok destination: type: string example: CXXXXXXXXXX msg_id: type: string example: XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX:XXXX inline_response_202_response_discord: type: object properties: status: type: string example: ok destination: type: string example: 101XXXXXXXXXX7XXXXX msg_id: type: string example: XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX:XXXX inline_response_202_response_teams: type: object properties: status: type: string example: ok destination: type: string example: General msg_id: type: string example: XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX:XXXX inline_response_202_response_push: type: object properties: status: type: string example: ok destination: type: string example: ExponentPushToken[XXXXX] msg_id: type: string example: XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX:XXXX inline_response_202_response_inapp: type: object properties: status: type: string example: ok destination: type: string example: '12345' msg_id: type: string example: XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX:XXXX inline_response_202_response: type: object properties: sms: $ref: '#/components/schemas/inline_response_202_response_sms' whatsapp: $ref: '#/components/schemas/inline_response_202_response_sms' email: $ref: '#/components/schemas/inline_response_202_response_email' slack: $ref: '#/components/schemas/inline_response_202_response_slack' discord: $ref: '#/components/schemas/inline_response_202_response_discord' teams: $ref: '#/components/schemas/inline_response_202_response_teams' push: $ref: '#/components/schemas/inline_response_202_response_push' inapp: $ref: '#/components/schemas/inline_response_202_response_inapp' voice: $ref: '#/components/schemas/inline_response_202_response_sms' inline_response_202_1_response: type: object properties: seq: type: integer example: 1 sms: $ref: '#/components/schemas/inline_response_202_response_sms' whatsapp: $ref: '#/components/schemas/inline_response_202_response_sms' email: $ref: '#/components/schemas/inline_response_202_response_email' slack: $ref: '#/components/schemas/inline_response_202_response_slack' discord: $ref: '#/components/schemas/inline_response_202_response_discord' teams: $ref: '#/components/schemas/inline_response_202_response_teams' push: $ref: '#/components/schemas/inline_response_202_response_push' inapp: $ref: '#/components/schemas/inline_response_202_response_inapp' voice: $ref: '#/components/schemas/inline_response_202_response_sms' inline_response_200_channel_push: type: object properties: token: type: string description: The push token of the user. example: ExponentPushToken[XXXXX] integration_id: type: string 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 status: type: integer 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. example: 1 enum: - 1 - 0 inline_response_200_channel_inapp: type: object properties: token: type: string description: Enter the distinct ID or the generated token of the user. example: XXXXXXXX integration_id: type: string 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 status: type: integer 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. example: 1 enum: - 1 - 0 inline_response_200_channel: type: object properties: sms: type: string description: The mobile number of the user. example: +91 9879X XXXXX whatsapp: type: string description: The WhatsApp mobile number of the user. example: +91 9879X XXXXX email: type: string description: The email address of the user. example: abcde@fghi.com slack: type: string description: The channel ID, user ID, or email address of the user. example: CXXXXXXXXXX discord: type: string description: The discord ID of the user. example: 101XXXXXXXXXX7XXXXX teams: type: string description: The channel name. example: General voice: type: string description: The mobile number of the user. example: +91 9879X XXXXX push: type: array items: $ref: '#/components/schemas/inline_response_200_channel_push' inapp: type: array items: $ref: '#/components/schemas/inline_response_200_channel_inapp' inline_pref_response_200: type: object properties: result: type: object properties: Section1: type: array items: type: object properties: subscription_id: type: string name: type: string description: type: string channel_config: type: object properties: sms: type: string default: 'on' enum: - 'on' - 'off' - required whatsapp: type: string default: 'on' enum: - 'on' - 'off' - required email: type: string default: 'on' enum: - 'on' - 'off' - required discord: type: string default: 'on' enum: - 'on' - 'off' - required slack: type: string default: 'on' enum: - 'on' - 'off' - required teams: type: string default: 'on' enum: - 'on' - 'off' - required push: type: string default: 'on' enum: - 'on' - 'off' - required voice: type: string default: 'on' enum: - 'on' - 'off' - required inapp: type: string default: 'on' enum: - 'on' - 'off' - required webpush: type: string default: 'on' enum: - 'on' - 'off' - required notification_events: type: array items: type: object properties: event_id: type: string event_name: type: string preference: $ref: '#/components/schemas/preference_channels' is_global_opted_out: type: object properties: sms: type: boolean enum: - true whatsapp: type: boolean enum: - true email: type: boolean enum: - true discord: type: boolean enum: - true slack: type: boolean enum: - true teams: type: boolean enum: - true push: type: boolean enum: - true voice: type: boolean enum: - true inapp: type: boolean enum: - true webpush: type: boolean enum: - true updated_at: $ref: '#/components/schemas/updated_at' meta: type: object properties: all: type: object properties: preference: $ref: '#/components/schemas/preference_channels_opted_out' updated_at: $ref: '#/components/schemas/updated_at' preference_channels: type: object properties: sms: type: string default: opted-in enum: - opted-out - opted-in whatsapp: type: string default: opted-in enum: - opted-out - opted-in email: type: string default: opted-in enum: - opted-out - opted-in discord: type: string default: opted-in enum: - opted-out - opted-in slack: type: string default: opted-in enum: - opted-out - opted-in teams: type: string default: opted-in enum: - opted-out - opted-in push: type: string default: opted-in enum: - opted-out - opted-in voice: type: string default: opted-in enum: - opted-out - opted-in inapp: type: string default: opted-in enum: - opted-out - opted-in webpush: type: string default: opted-in enum: - opted-out - opted-in preference_channels_opted_out: type: object properties: sms: type: string enum: - opted-out whatsapp: type: string enum: - opted-out email: type: string enum: - opted-out discord: type: string enum: - opted-out slack: type: string enum: - opted-out teams: type: string enum: - opted-out push: type: string enum: - opted-out voice: type: string enum: - opted-out inapp: type: string enum: - opted-out updated_at: type: object properties: sms: type: string whatsapp: type: string email: type: string discord: type: string slack: type: string teams: type: string push: type: string voice: type: string inapp: type: string webpush: type: string inline_response_400_8: type: object properties: status: type: string example: error _message: type: string example: distinct_id is required to list preference! update_subscription_single: type: object properties: distinct_id: type: string channel: type: string enum: - sms - whatsapp - email - discord - slack - teams - push - voice - inapp - webpush status: type: string enum: - opted-in - opted-out update_subscription_multiple: type: object properties: user_preference: type: object properties: SXXXXXXXXX: $ref: '#/components/schemas/preference_channels' subscription_updated_single: type: object properties: SXXXXXXXXX: $ref: '#/components/schemas/preference_channels' subscription_updated_single_400: type: object properties: status: type: string example: error _message: type: string example: distinct_id is required! 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 BasicAuth: type: http description: Enter the WSID for username and the API Key for password. If you don't have these values, you can obtain it from the API Keys page within your Fyno account. scheme: basic x-fern-basic: username: name: workspaceId env: FYNO_WSID password: name: apiKey env: FYNO_API_KEY