Skip to main content

Helpshift APIs

  • /console/qrcode: This is the main API that is used to generate the support link and the QR code. When the API is called, the response will be a shortlink URL that launches to web chat directly as well as a PNG or SVG that can be used for the QR code (more information in the API information below). It is used as follows by passing the necessary parameters.

POST /v1/<domain>/console/qrcode

<domain> needs to be replaced by your helpshift domain name.

app_idYesThe App Publish ID for the app with web chat enabled. 
formatNoOutput format for the QR code. Supported formats are (case sensitive) - 
  • png - a PNG image, encoded as a base64 encoded Data URL
  • svg - SVG encoded vector image
If nothing is passed; the default will be png
expiryNoA JSON encoded map -
{"time": <time based expiry value>,
"viewcount": integer}

Time based expiry value can be either -

  • A Unix timestamp specifying exact time (in the future) when the link expires. e.g. 1640422800000 - "2021-12-25T09:00:00.000 +0000"

  • A string containing a number followed by a suffix, one of

    • m - minutes
    • h - hours
    • d - days This is an easier way to specify expiry relative to current time. (e.g. 2m = 2 minutes, 6h = 6 hours).

    If not provided, the default expiry is 24 hours. View count based expiry value is a simple integer (max 32767). The shortlink will expire after it has been clicked/viewed this many times. If not provided, the shortlink will not expire based on number of views (basically, unlimited views).


    {"time": 1640422800000} ;; time based expiry only
    {"viewcount": 10} ;; viewcount based expiry
    {"time": "2h",
    "viewcount": 10} ;; both time and viewcount based expiry
uidAt least one of these fields is required to identify an end user. If nothing is provided then the webchat session will be considered anonymous.User ID
emailUser's Email
phone_numberUser's Phone Number (must be a valid phone number in E.164 format e.g. +919876543210)
If Identity Verification is enabled and the token is not provided or invalid, the QR code will be generated and returned, but the webchat will not start.
nameNoUser's Full Name
languageNoIssue language Provide a value to override the language used on user's browser.
first_user_messageNoThe message to be used/auto-send on user's behalf when creating the webchat issue. Maximum 500 characters.
custom_fieldsNoJSON encoded map of custom issue fields. e.g.
{ "age": 23, "paiduser": false }

The values should match the type of the CIF. To set a CIF of type date, the value must be a valid date in ISO 8601 format. CIFs will be validated when creating the shortlink, and any invalid CIFs will be dropped.

tagsNoJSON encoded string of tags to be added to the issue automatically. Invalid/archived tags will be dropped silently.
help_sectionNoOptional Section publish ID to indicate what Section ID to display from help center. If provided, the help center will show the help section indicated.
help_faqNoOptional FAQ publish ID to indicate if a help article should be displayed. If provided, the help center will show the help article indicated. Note: If both help_section and help_faq are provided, help_faq will take precedence.
help_search_termNoOptional parameter to provide a search text when starting the help center. This will allow developers to pass in specific search keys (such as an error code) without knowing before-hand what specific help_article to display. When used the Help center will perform a search and show results from the search.
help_faq_filterNoA JSON Object having the following format -
{"tags": ["tag1", "tag2"], "operator": "or"}
  • tags - A JSON array of strings, and at least one tag must be specified.

  • operator - This value should be any of the following: and, or, not.

This specifies the functionality for segmenting FAQs based on tags.

Example value for help_faq_filter:
{"tags": ["tier1", "tier2"], "operator": "and"}

In this example, the page will only display FAQs associated with both tier1 and tier2. If no FAQs meet the specified criteria, none will be shown on the page.

The help_faq_filter can be provided with help_section, help_faq, help_search_term. In this case, the respective page will open with FAQs matching the specified criteria of help_faq_filter.
intentNoOptional parameter to start a conversation with a specific intent (based on text) from a smart intent tree. This allows developers to create flows that automatically start common experiences
Currently not implemented.
webchat_widgetNoWhether to automatically open the webchat widget when the helpcenter page loads. Valid values -
  • open - Webchat widget will be opened automatically
  • minimize - Webchat widget will be visible, but not opened automatically.
  • hide - Webchat widget will be hidden (even if enabled on the help center page).

What extra information should be included in the response. A JSON array of strings. Valid values -

  • unread_messages - if the user has any active conversations, the API response will
    contain the issue ID and number of unread messages.
initiate_chatNoWhether to start a new chat when the previous issue is resolved. Valid values -
  • true: A new chat will be started automatically when the previous issue is resolved and without needing any user action like clicking the New Conversation button or going through the post resolution flow like feedback bot for the previously resolved issue.
  • false: A new chat will not be automatically started.

The API will return a status code of 201 for successful response, 400 for invalid requests. The response will have the following:

Field Name

Sample Value



<patented support experience link>

The shortlink contained in the QR code.

QR Code in one of the formats described above.
active_issueWhen there is an open issue for the end user -
{ "issue_id": 78, "unread_messages": 2 }

When there are no open issues for the end user -

Only if requested by specifying - includes: ["unread_messages"] in the request parameters.

Get unread messages

  • /console/messages/unread: This is an optional supporting API that is used to determine if there are any unread messages. This is used so that the application or game can display a notice if there are waiting unread messages support messages.

GET /v1/<domain>/console/messages/unread

app_idYesThe App Publish ID for the app with web chat enabled.
uidAt least one of these fields is required to identify an end user.User ID
emailUser's Email
phone_numberUser's Phone Number

The API will return a status code of 200 for successful response, 400 for invalid requests.

Field NameSample Value
active_issueWhen there is an open issue for the end user -
{ "issue_id": 78, "unread_messages": 2 }

When there are no open issues for the end user -