HappyOrNot Button Feedbacks API
Button feedback related endpoints and data definitions
Button 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-button-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 Button 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: button-feedbacks
description: Button feedback related endpoints and data definitions
paths:
/results/button-feedbacks.{format}:
get:
tags:
- button-feedbacks
summary: List button feedbacks
description: List button feedbacks that match the given parameters
operationId: listButtonFeedbacks
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/pagingOffsetParam'
- $ref: '#/components/parameters/pagingLimitParam'
- $ref: '#/components/parameters/orderParam'
responses:
'200':
description: successful button feedback listing
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/ButtonFeedback'
text/csv:
schema:
type: string
description: CSV file with columns matching ButtonFeedback 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
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
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
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
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:
ButtonFeedback:
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: Smaller value means more negative response. Possible values for four scale 0-3, five scale 0-4, NPS 0-10.
misuse:
type: boolean
description: If true, the feedback was deemed to be misuse
position:
type: integer
minimum: 0
description: Position in the survey flow. Always 0 for button feedback, because this is always first.
ui:
type: string
enum:
- physical
- digital
- touchless
- qr
- link
- email
smileyType:
type: string
enum:
- SMILEY_TERMINAL
- SMILEY_TOUCH
- SMILEY_DIGITAL
required:
- feedbackId
- smileyId
- localTime
- surveyId
- experiencePointId
- buttonIndex
- misuse
- position
- smileyType
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/