HappyOrNot question-localizations API

Endpoints and data definitions related to localizations for question used in surveys

OpenAPI Specification

happyornot-question-localizations-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: HappyOrNot Customer API v2 alert-comments question-localizations API
  description: "### HappyOrNot Customer API v2 is designed for\n* fetching feedbacks of all type (button, followups, text, demographics, contact details)\n* fetching information about experience points, surveys and other\n  metadata related to fetching and displaying feedback\n* fetching information about users of HappyOrNot Analytics\n* fetching information about smileys, that is the physical devices or digital tokens for feedback gathering\n\n### Useful links:\n* [HappyOrNot website](https://www.happy-or-not.com)\n* [HappyOrNot Analytics](https://reporting.happy-or-not.com)\n\n### Base URL for API calls:\nhttps://api.happy-or-not.com/v2/<br>\nExample:<br>\nhttps://api.happy-or-not.com/v2/experience-points.json\n\n### Entities explained\n**Experience point** = Represents a point of interaction for feedback gathering.<br>\nCan represent a physical location, e.g. \"London Store 1\" or a digital location, e.g. \"Webshop checkout\".<br>\n**Group** = Represents a grouping of experience points. Grouping can be e.g. geographical or organizational.<br>\nExamples are countries, cities or organization functions.<br>\nGroups and Experience points form a hierarchical tree structure, see example below.<br>\n**Survey** = Time-bounded surveys that contain a question and are associated with one or more experience points.<br>\n**Question** = Localizable questions are associated to surveys, e.g. \"How was the service?\"<br>\n**Smiley** = Physical or digital \"device\" that collect feedback. Smiley is associated with an experience point.<br>\nTypes of smileys are Smiley Terminal, Smiley Touch and Smiley Digital.<br>\n**User** = User account of HappyOrNot Analytics, identified by email address and name. Has an associated role and data access.<br>\n<br>\n**Example for group / experience point hierarchy:**<br>\n<pre>\n* Company X <- this is root group and parent of Finland and Sweden\n  * Finland  <- this group is parent for Helsinki and Tampere store experience points\n    * Helsinki store <- this is an experience point\n    * Tampere store <- this is an experience point\n  * Sweden <- this group is parent for Stockholm and Malmö store experience points\n    * Stockholm store <- this is an experience point\n    * Malmö store <- this is an experience point\n</pre>\n### Feedback types explained\n**Button Feedback** = The feedback type that is always present in surveys.<br>\nVisually represented as 4 or 5 smiley faces or NPS scale (0..10).<br>\n**Followup Feedback** = Predefined set of selectable textual values (max 6) to explain the button feedback given.<br>\n**Text Feedback** = Freeform text feedback. Available in Smileys that support keyboard input.<br>\n**Demographics** = AI based estimate on feedback giver's age and gender. Supported by Smiley Touch only.<br>\n**Contact Details** = If a feedback giver wants to get contacted, name and email or phone number can be given.<br>\n**Metadata** = Arbitrary set of key-value pairs related to this particular feedback.\n\n### Entity Relationships Diagrams\n<img alt=\"Entity Relationships Diagram\" src=\"er-diagram.svg\"/>\n<img alt=\"Entity Relationships Diagram for feedbacks\" src=\"er-diagram-feedbacks.svg\"/>\n\n### Authentication/Authorisation\nAuthentication and authorisation is based on a *token*.\nYou can generate API v2 tokens in your *Organization Settings* page at HappyOrNot Analytics (you need to have Admin privileges to access that page).\nYou should provide a token with a request in one of the two ways:<br>\n* Request Header *X-HON-API-Token*. E.g. X-HON-API-Token: your-token-here (Suggested way)\n* Query string parameter *auth*. E.g. /v2/experience-points.json?auth=your-token-here (Ok for testing)<br>\n\n#### Token introspection\nFor a valid authenticated token it is possible to requests metadata, including token id, name and scopes.\n\n### Paging:\nPaging of responses is controlled using *offset* and *limit* parameters.<br>\nHTTP response header *X-More-Available* (value \"true\" or \"false\") can be used to determine if more data is available.<br>\nExample:<br>\nhttps://api.happy-or-not.com/v2/alerts.json?offset=0&limit=500<br>\n<br>\nHTTP response header *Link* is provided (if above described X-More-Available: true) and it includes the link to next page of results.<br>\nExample:<br>\nLink: <https://api.happy-or-not.com/v2/alerts.json?offset=500&limit=500>; rel=\"next\"<br>\n\n### Terms mapping between API v1 and API v2\n<pre>\nAPI v1\t\t\tAPI v2\n-----------------------------------------------------------------------\nN/A\t\t\tToken Introspection\nResults/Rawresults\tButton Feedbacks\nResults/Rawresults\tFollow-up Feedbacks\nResults/Rawresults\tText Feedbacks\nN/A\t\t\tDemographics\nN/A\t\t\tContact Details\nN/A                     Metadata\nFolders/Children\tGroups and Experience Points\nSurveys\t\t\tNo direct mapping available, but v1 surveys are mappings of v2 Experience Points to v2 Surveys\nQuestions\t\tSurveys\nN/A \t\t\tQuestion\nN/A\t\t\tFollow-up questions\nN/A\t\t\tFollow-up options\nAlerts\t\t\tAlerts\nN/A\t\t\tAlert Specifications\nN/A\t\t\tAlert Comments\nN/A\t\t\tUsers\nN/A\t\t\tSmileys\nN/A\t\t\tCustom Data Fields\nN/A\t\t\tAll localizations\n</pre>\n<br>\n\n### Need help?\nPlease email support@happy-or-not.com to get more assistance.\n"
  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: question-localizations
  description: Endpoints and data definitions related to localizations for question used in surveys
paths:
  /question-localizations.{format}:
    get:
      tags:
      - question-localizations
      summary: List question localizations
      description: List of all question localizations
      operationId: listQuestionLocalizations
      parameters:
      - $ref: '#/components/parameters/formatParam'
      - $ref: '#/components/parameters/csvSeparatorParam'
      - name: questionId
        in: query
        description: list question localizations only for given question
        required: false
        schema:
          type: integer
          format: int64
      responses:
        '200':
          description: successful question localization listing
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/QuestionLocalization'
            text/csv:
              schema:
                type: string
                description: CSV file with columns matching QuestionLocalization object properties
        '400':
          $ref: '#/components/responses/BadRequestResponse'
        '401':
          $ref: '#/components/responses/UnauthorizedResponse'
        '403':
          $ref: '#/components/responses/ForbiddenResponse'
components:
  schemas:
    QuestionLocalization:
      type: object
      properties:
        questionId:
          type: integer
          format: int64
        locale:
          type: string
          pattern: ^[a-z]{2}(_[A-Z]{2})?$
          example: en_US
        text:
          type: string
          example: How was the service?
      required:
      - questionId
      - locale
      - text
  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.
  parameters:
    formatParam:
      name: format
      in: path
      required: true
      schema:
        type: string
        enum:
        - json
        - csv
    csvSeparatorParam:
      name: csvSeparator
      in: query
      required: false
      schema:
        type: string
        minLength: 1
        maxLength: 1
        default: ','
      description: Applied only for CSV responses
  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/