HappyOrNot Text Feedbacks API
Text feedback related endpoints and data definitions
Text feedback related endpoints and data definitions
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
find_apisBrowse and filter every API in the catalog.get_api_artifactsOne API's artifacts, grouped by type.get_openapiThe primary OpenAPI for this API.find_similar_apisAPIs that look like this one.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.curl "https://apis.io/api/v1/apis/happyornot-text-feedbacks-api"
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.
openapi: 3.2.0
info:
title: HappyOrNot Customer API v2 Text Feedbacks API
description: '### HappyOrNot Customer API v2 is designed for
* fetching feedbacks of all type (button, followups, text, demographics, contact details)
* fetching information about experience points, surveys and other
metadata related to fetching and displaying feedback
* fetching information about users of HappyOrNot Analytics
* fetching information about smileys, that is the physical devices or digital tokens for feedback gathering
### Useful links:
* HappyOrNot website
* HappyOrNot Analytics
### Base URL…'
termsOfService: https://www.happy-or-not.com/terms/
contact:
email: api@happy-or-not.com
license:
name: Apache 2.0
url: http://www.apache.org/licenses/LICENSE-2.0.html
version: '2.0'
servers:
- url: https://api.happy-or-not.com/v2
security:
- ApiTokenAuth: []
- ApiTokenViaQueryStringAuth: []
tags:
- name: text-feedbacks
description: Text feedback related endpoints and data definitions
paths:
/results/text-feedbacks.{format}:
get:
tags:
- text-feedbacks
summary: List text feedbacks
description: List text feedbacks that match the given parameters
operationId: listTextFeedbacks
parameters:
- $ref: '#/components/parameters/formatParam'
- $ref: '#/components/parameters/csvSeparatorParam'
- $ref: '#/components/parameters/surveyIdParam'
- $ref: '#/components/parameters/experiencePointIdParam'
- $ref: '#/components/parameters/periodParam'
- $ref: '#/components/parameters/startDateParam'
- $ref: '#/components/parameters/endDateParam'
- $ref: '#/components/parameters/includeMisuseParam'
- $ref: '#/components/parameters/includeSpamParam'
- $ref: '#/components/parameters/pagingOffsetParam'
- $ref: '#/components/parameters/pagingLimitParam'
- $ref: '#/components/parameters/orderParam'
responses:
'200':
description: successful text feedback listing
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/TextFeedback'
text/csv:
schema:
type: string
description: CSV file with columns matching TextFeedback object properties
'400':
$ref: '#/components/responses/BadRequestResponse'
'401':
$ref: '#/components/responses/UnauthorizedResponse'
'403':
$ref: '#/components/responses/ForbiddenResponse'
components:
parameters:
includeMisuseParam:
name: includeMisuse
in: query
required: false
schema:
type: boolean
default: false
description: If true, also feedback that has been deemed misuse will be included in the response.
periodParam:
name: period
in: query
required: false
schema:
type: string
pattern: ^(today|yesterday|this-week|last-week|this-month|last-month|this-year|last-year|\d{4}(-(0[1-9]|1[0-2]|q[1-4]))?)$
description: If both period parameter and startDate/endDate are given, latter takes precedence. Week start is always Monday.
example: today,last-year,2023-12,2023-q3
includeSpamParam:
name: includeSpam
in: query
required: false
schema:
type: boolean
default: true
description: If true, also feedback that has been deemed spam will be included in the response.
orderParam:
name: order
in: query
required: false
schema:
type: string
enum:
- desc
- asc
default: asc
description: Order parameter to sort feedbacks by time.
experiencePointIdParam:
name: experiencePointId
in: query
required: false
schema:
type: integer
format: int64
description: Experience point id that might have been acquired by using the /experience-points endpoint
surveyIdParam:
name: surveyId
in: query
required: false
schema:
type: integer
format: int64
description: Survey id that might have been acquired by using the /surveys endpoint
startDateParam:
name: startDate
in: query
required: false
schema:
type: string
format: date
description: Inclusive start date. Defaults to current date. NOTE! startDate->endDate max interval is 1 year.
example: 2023-09-26
pagingLimitParam:
name: limit
in: query
required: false
schema:
type: integer
minimum: 0
maximum: 10000
default: 1000
description: Paging parameter to determine the maximum size of the result set matching the search criteria.
csvSeparatorParam:
name: csvSeparator
in: query
required: false
schema:
type: string
minLength: 1
maxLength: 1
default: ','
description: Applied only for CSV responses
pagingOffsetParam:
name: offset
in: query
required: false
schema:
type: integer
minimum: 0
default: 0
description: Paging parameter to determine the index of the first item from the whole result set matching the search criteria.
endDateParam:
name: endDate
in: query
required: false
schema:
type: string
format: date
description: Exclusive end date. Defaults to tomorrow. NOTE! startDate->endDate max interval is 1 year.
example: 2023-09-27
formatParam:
name: format
in: path
required: true
schema:
type: string
enum:
- json
- csv
responses:
BadRequestResponse:
description: Bad request, possibly invalid or missing parameter values.
UnauthorizedResponse:
description: Not authenticated, missing or invalid API credentials.
ForbiddenResponse:
description: Not authorised to access the resources given in parameters with the given authentication.
schemas:
TextFeedback:
type: object
properties:
feedbackId:
type: string
format: uuid
smileyId:
type: integer
format: int64
localTime:
type: string
format: date-time
description: Time the feedback was given, in the time zone of the experience point in the survey
surveyId:
type: integer
format: int64
experiencePointId:
type: integer
format: int64
buttonIndex:
type: integer
minimum: 0
maximum: 10
description: buttonIndex that was given at button feedback phase. Available here for convenience. See details from Button Feedback docs.
misuse:
type: boolean
description: If true, the feedback was deemed to be misuse
position:
type: integer
minimum: 0
description: Position in the survey flow. 0 being the first phase.
ui:
type: string
enum:
- physical
- digital
- exit
- skip
- timeout
- touchless
- qr
- link
- email
smileyType:
type: string
enum:
- SMILEY_TERMINAL
- SMILEY_TOUCH
- SMILEY_DIGITAL
text:
type: string
maskedText:
type: string
rephrasedText:
type: string
textInEnglish:
type: string
spam:
type: boolean
description: If true, the text feedback contents was deemed to be spam
categories:
type: string
description: comma separated list of open feedback categories automatically applied by HappyOrNot AI
example: relevant,room for improvement
themes:
type: string
description: comma separated list of relevant open feedback themes automatically applied by HappyOrNot AI. Themes are specific for a survey type (customer experience and employee experience). The list is alphabetically ordered with `other` last when present. The list is empty when theme analysis is not available.
example: friendliness,quality,other
required:
- feedbackId
- smileyId
- localTime
- surveyId
- experiencePointId
- buttonIndex
- misuse
- position
- smileyType
- text
- textInEnglish
- spam
- categories
- themes
securitySchemes:
ApiTokenAuth:
type: apiKey
in: header
name: X-HON-API-Token
description: API Tokens are managed in Organization Settings page in Analytics
ApiTokenViaQueryStringAuth:
type: apiKey
in: query
name: auth
description: E.g. /some/path?auth=<tokenhere>
externalDocs:
description: More about HappyOrNot APIs
url: https://happyornot.github.io/docs/api/