Heads up! Need help getting started? Read our API introduction.

REMEMBER! You should never provide any links with support agent's access token to end users. You will provide to the user all the same access as your support agents have! In this case all your content can be downloaded or even deleted by the user. Instead of it you can use anonymous access token in combination with user's SSO token or provide a proxy link (without access token) to your side and make request from your server-side to hidden the access token from users.


Resource Description Authentication
GET usersList of all users in the project.read
GET users/currentDisplays current user profile details.read
GET users/[user_id]Displays user profile details.read
PUT users/[user_id] Update user profile details.all
DELETE users/[user_id] Delete user profile.all
GET users/sso/[sso_guid]Displays user profile details by SSO guid.read
GET users/[user_id]/logoutClear all sessions for selected user.all
POST users/get_or_create Get user by email or create a new user.all
GET users/[user_id]/subscriptionsDisplays user's subscriptions.read
PUT users/[user_id]/subscriptions Update user's subscription to an object updates.all
POST users/[user_id]/group Add user to user's group.all
DELETE users/[user_id]/group Delete user from user's group.all

Users groups

Resource Description Authentication
GET users/groupsList of users groups.all
POST users/groups Create a new user group.all
PUT users/groups Update user group.all
DELETE users/groups Delete user group.all


Resource Description Authentication
GET forumsList of all forums in the project.read
POST forums Creates a new forum.all
PUT forums Update a forum.all
DELETE forums Delete forum.all

Types, Categories, Tags ...

Resource Description Authentication
GET forums/[forum_id]/typesList of topic types supported by selected forum.read
GET forums/[forum_id]/types/[type_id]/statusesList of topic statuses supported by selected type.read
GET forums/[forum_id]/categoriesList of selected forum categories.read
GET forums/[forum_id]/tagsList of selected forum tags.read
GET forums/[forum_id]/access_listList of emails with access to the forum. For private forums only.read, all
POST forums/[forum_id]/categories Create new category.write, all
POST forums/[forum_id]/tags Create new tag.write, all
POST forums/[forum_id]/access_list Add emails to the forum access list.write, all
DELETE forums/[forum_id]/access_list Delete emails from the forum access list.write, all
PUT forums/[forum_id]/categories Update a category.write, all
PUT forums/[forum_id]/tags Update a tag.write, all
DELETE forums/[forum_id]/categories Delete a category.write, all
DELETE forums/[forum_id]/tags Delete a tag.write, all


Resource Description Authentication
GET forums/[forum_id]/topicsList of topics belongs to the selected forum. Additional parameters.read
POST forums/[forum_id]/topics Creates a new topic.write
PUT forums/[forum_id]/topics Update topic.write
GET forums/[forum_id]/users/[user_id]/topicsList of topics belongs to the selected forum & user. Additional parameters.read
GET forums/[forum_id]/topics/searchSearch topics in selected forum.read
GET users/[user_id]/topicsList of topics belongs to the selected user.read - self,
manage - all
GET categories/[category_id]/topicsList of topics belongs to the selected category.read
GET tags/[tag_id]/topicsList of topics belongs to the selected tag.read
GET topics/[topic_id]Selected topic details.read
DELETE topics/[topic_id] Delete selected topic.write


Resource Description Authentication
GET topics/[topic_id]/votersVoters for selected topic.read
GET topics/[topic_id]/comments/[comment_id]/votersVoters for selected comment.read


Resource Description Authentication
GET topics/[topic_id]/commentsList of comments related to the selected topic.read
POST topics/[topic_id]/comments Creates a new comment.write
GET users/[user_id]/commentsList of comments belongs to the selected user.read - self
all - all


Resource Description Authentication
POST forums/[forum_id]/upload/[file|image] Uploads a file to the forum to use in topics.all
Note:Files uploaded to a private ticket are not available to download without authentication (access check required). If you need to download such file via API you can use the file URL with user's SSO token or your project access token in GET parameters.
1. https://support.userecho.com/uploaded/file/1/1/1/12345678901234567890123456789012.pdf?sso_token=users_sso_token
2. https://support.userecho.com/uploaded/file/1/1/1/12345678901234567890123456789012.pdf?access_token=your_access_token


Resource Description Authentication
GET hooksList of all hooks in the project.all
POST hooks Creates a new webhook.all
DELETE hooks/[hook_id]Deletes a webhook.all
GET hooks/eventsList of all available events.all

Additional filter parameters

Most of "read" methods that return "List" allow to filter objects by common fields. Example: id, status, created, etc. If you want to apply additional filter to request create filter parameter name:
  1. Start with "filter__" for a regular field or "filter__custom_fields__" for a custom field
  2. Add "[field_name]"
  3. (optional) Add filter condition like "__[condition]"
Allowed conditions:
  • in - in list of values (pass comma separated string)
  • gt - greater than
  • gte - greater than or equal
  • lt - lower than
  • lte - lower than or equal
  • contains - contains a string (case sensitive)
  • icontains - contains a string (case insensitive)
  • exact - equal to value (case sensitive)
  • iexact - equal to value (case insensitive)
Negotiate conditions (NOT):

You can negotiate the filter value if you add "not" before condition above.
Example: filter__status__not__in=1,3,5 - Will select values where "status" field not equal to 1, 3 or 5.

Additional filter examples:
  • filter__status=1
  • filter__status__in=1,3,5
  • filter__id__gte=10
  • filter__id__not__in=11
  • filter__created__gte=2014-03-17T03:34:29.320Z
  • filter__updated__lt=2014-03-17
  • filter__needs_review=0
  • filter__header__icontains=test
Additional filter examples (for custom fields):
Note: Custom fields are saved as string. So, you should compare it as string.
  • filter__custom_fields__cf_1=1
  • filter__custom_fields__cf_1__icontains=test

How to make an API request on behalf of another user? (any project's user)

If your key has a "all" access rights you are able to do API requests on behalf of any user of your project. You have a few ways to do it:
  1. Best way! Pass "sso_token" parameter. Add GET parameter "sso_token" for a user to your request. Or add parameter to your requests parameter for POST and PUT requests. If user does not exists API will create a new user and do action on behalf of this user. More information about SSO read in your project administrative section.
  2. Pass "user_sso_guid" parameter. Add GET parameter "user_sso_guid" to your request. Or add parameter to your requests parameter for POST and PUT requests. If user does not exists the action will be completed on behalf of API token user.
  3. Pass "user_id" parameter. Add GET parameter "user_id" to your request. Or add parameter to your requests parameter for POST and PUT requests. If user does not exists the action will be completed on behalf of API token user. For an Anonymous user set user_id to 0 (zero).

Our API is constantly developed and improved, we welcome your suggestions on our forum.

© 2023 Stamul, LLC. All rights reserved.