Goodays core API
The core API from Goodays — 22 operation(s) for core.
The core API from Goodays — 22 operation(s) for core.
openapi: 3.0.0
info:
title: Goodays core API
description: 'Goodays (formerly Critizr) REST API for managing your customer experience environment: places, levels, surveys, users, customer reviews (responses), solicitations (email/SMS outreach), events, and statistics. Reconstructed by API Evangelist from the per-endpoint OpenAPI fragments published on the Goodays ReadMe docs.'
version: v2
servers:
- url: https://api.goodays.co/v2
security:
- tokenAuth: []
tags:
- name: core
paths:
/configuration:
get:
operationId: configuration_list
responses:
'200':
description: OK
content:
'*/*':
schema:
type: array
items:
$ref: '#/components/schemas/Configuration_read'
tags:
- core
/levels:
get:
operationId: levels_list
responses:
'200':
description: OK
content:
'*/*':
schema:
type: array
items:
$ref: '#/components/schemas/Level_read'
parameters:
- name: cursor
required: false
in: query
description: The pagination cursor value.
schema:
type: string
- name: page_size
required: false
in: query
description: Number of results to return per page.
schema:
type: integer
- name: sort
required: false
in: query
description: Which field to use when ordering the results.
schema:
type: string
- name: category_id
required: false
in: query
description: ''
schema:
type: number
tags:
- core
/levels/{id}:
get:
operationId: levels_read
responses:
'200':
description: OK
content:
'*/*':
schema:
$ref: '#/components/schemas/LevelDetail_read'
parameters:
- name: id
required: true
in: path
description: A unique value identifying this brand level.
schema:
type: string
tags:
- core
/levels/{level_pk}/places:
get:
operationId: levels_places_list
responses:
'200':
description: OK
content:
'*/*':
schema:
type: array
items:
$ref: '#/components/schemas/Place_read'
parameters:
- name: level_pk
required: true
in: path
description: A unique value identifying the parent level.
schema:
type: string
- name: cursor
required: false
in: query
description: The pagination cursor value.
schema:
type: string
- name: page_size
required: false
in: query
description: Number of results to return per page.
schema:
type: integer
- name: sort
required: false
in: query
description: Which field to use when ordering the results.
schema:
type: string
- name: partner_id
required: false
in: query
description: ''
schema:
type: string
tags:
- core
/levels/{level_pk}/responses:
get:
operationId: levels_responses_list
responses:
'200':
description: OK
content:
'*/*':
schema:
type: array
items:
$ref: '#/components/schemas/Response_read'
parameters:
- name: level_pk
required: true
in: path
description: ''
schema:
type: string
- name: cursor
required: false
in: query
description: The pagination cursor value.
schema:
type: string
- name: page_size
required: false
in: query
description: Number of results to return per page.
schema:
type: integer
- name: sort
required: false
in: query
description: Which field to use when ordering the results.
schema:
type: string
- name: start_date
required: false
in: query
description: ''
schema:
type: string
- name: end_date
required: false
in: query
description: ''
schema:
type: string
- name: date_field
required: false
in: query
description: ''
schema:
type: string
- name: first_name
required: false
in: query
description: ''
schema:
type: string
- name: last_name
required: false
in: query
description: ''
schema:
type: string
- name: email
required: false
in: query
description: ''
schema:
type: string
- name: phone
required: false
in: query
description: ''
schema:
type: string
- name: crm_id
required: false
in: query
description: ''
schema:
type: string
- name: place
required: false
in: query
description: ''
schema:
type: string
- name: source
required: false
in: query
description: ''
schema:
type: string
- name: survey
required: false
in: query
description: ''
schema:
type: string
- name: has_answers
required: false
in: query
description: ''
schema:
type: string
- name: has_message
required: false
in: query
description: ''
schema:
type: string
- name: has_reply
required: false
in: query
description: ''
schema:
type: string
tags:
- core
/levels/{level_pk}/responses/bulk:
get:
operationId: levels_responses_bulk
responses:
'200':
description: OK
content:
'*/*':
schema:
$ref: '#/components/schemas/ResponseDetail_read'
parameters:
- name: level_pk
required: true
in: path
description: ''
schema:
type: string
tags:
- core
/places:
get:
operationId: places_list
responses:
'200':
description: OK
content:
'*/*':
schema:
type: array
items:
$ref: '#/components/schemas/Place_read'
parameters:
- name: cursor
required: false
in: query
description: The pagination cursor value.
schema:
type: string
- name: page_size
required: false
in: query
description: Number of results to return per page.
schema:
type: integer
- name: sort
required: false
in: query
description: Which field to use when ordering the results.
schema:
type: string
- name: partner_id
required: false
in: query
description: ''
schema:
type: string
tags:
- core
/places/{id}:
get:
operationId: places_read
responses:
'200':
description: OK
content:
'*/*':
schema:
$ref: '#/components/schemas/PlaceDetail_read'
parameters:
- name: id
required: true
in: path
description: A unique value identifying this place.
schema:
type: string
tags:
- core
/places/{place_pk}/levels:
get:
operationId: places_levels_list
responses:
'200':
description: OK
content:
'*/*':
schema:
type: array
items:
$ref: '#/components/schemas/Level_read'
parameters:
- name: place_pk
required: true
in: path
description: A unique value identifying the parent place.
schema:
type: string
- name: cursor
required: false
in: query
description: The pagination cursor value.
schema:
type: string
- name: page_size
required: false
in: query
description: Number of results to return per page.
schema:
type: integer
- name: sort
required: false
in: query
description: Which field to use when ordering the results.
schema:
type: string
- name: category_id
required: false
in: query
description: ''
schema:
type: number
tags:
- core
/places/{place_pk}/responses:
get:
operationId: places_responses_list
responses:
'200':
description: OK
content:
'*/*':
schema:
type: array
items:
$ref: '#/components/schemas/Response_read'
parameters:
- name: place_pk
required: true
in: path
description: ''
schema:
type: string
- name: cursor
required: false
in: query
description: The pagination cursor value.
schema:
type: string
- name: page_size
required: false
in: query
description: Number of results to return per page.
schema:
type: integer
- name: sort
required: false
in: query
description: Which field to use when ordering the results.
schema:
type: string
- name: start_date
required: false
in: query
description: ''
schema:
type: string
- name: end_date
required: false
in: query
description: ''
schema:
type: string
- name: date_field
required: false
in: query
description: ''
schema:
type: string
- name: first_name
required: false
in: query
description: ''
schema:
type: string
- name: last_name
required: false
in: query
description: ''
schema:
type: string
- name: email
required: false
in: query
description: ''
schema:
type: string
- name: phone
required: false
in: query
description: ''
schema:
type: string
- name: crm_id
required: false
in: query
description: ''
schema:
type: string
- name: place
required: false
in: query
description: ''
schema:
type: string
- name: source
required: false
in: query
description: ''
schema:
type: string
- name: survey
required: false
in: query
description: ''
schema:
type: string
- name: has_answers
required: false
in: query
description: ''
schema:
type: string
- name: has_message
required: false
in: query
description: ''
schema:
type: string
- name: has_reply
required: false
in: query
description: ''
schema:
type: string
tags:
- core
/places/{place_pk}/responses/bulk:
get:
operationId: places_responses_bulk
responses:
'200':
description: OK
content:
'*/*':
schema:
$ref: '#/components/schemas/ResponseDetail_read'
parameters:
- name: place_pk
required: true
in: path
description: ''
schema:
type: string
tags:
- core
/places/{place_pk}/surveys:
get:
operationId: places_surveys_list
responses:
'200':
description: OK
content:
'*/*':
schema:
type: array
items:
$ref: '#/components/schemas/Survey_read'
parameters:
- name: place_pk
required: true
in: path
description: A unique value identifying the parent place.
schema:
type: string
- name: cursor
required: false
in: query
description: The pagination cursor value.
schema:
type: string
- name: page_size
required: false
in: query
description: Number of results to return per page.
schema:
type: integer
- name: sort
required: false
in: query
description: Which field to use when ordering the results.
schema:
type: string
- name: slug
required: false
in: query
description: ''
schema:
type: string
tags:
- core
/places/{place_pk}/users:
get:
operationId: places_users_list
responses:
'200':
description: OK
content:
'*/*':
schema:
type: array
items:
$ref: '#/components/schemas/UserProfile_read'
parameters:
- name: place_pk
required: true
in: path
description: A unique value identifying the parent place.
schema:
type: string
- name: cursor
required: false
in: query
description: The pagination cursor value.
schema:
type: string
- name: page_size
required: false
in: query
description: Number of results to return per page.
schema:
type: integer
- name: sort
required: false
in: query
description: Which field to use when ordering the results.
schema:
type: string
- name: email
required: false
in: query
description: ''
schema:
type: string
- name: first_name
required: false
in: query
description: ''
schema:
type: string
- name: last_name
required: false
in: query
description: ''
schema:
type: string
- name: phone
required: false
in: query
description: ''
schema:
type: string
tags:
- core
/surveys:
get:
operationId: surveys_list
responses:
'200':
description: OK
content:
'*/*':
schema:
type: array
items:
$ref: '#/components/schemas/Survey_read'
parameters:
- name: cursor
required: false
in: query
description: The pagination cursor value.
schema:
type: string
- name: page_size
required: false
in: query
description: Number of results to return per page.
schema:
type: integer
- name: sort
required: false
in: query
description: Which field to use when ordering the results.
schema:
type: string
- name: slug
required: false
in: query
description: ''
schema:
type: string
tags:
- core
/surveys/{id}:
get:
operationId: surveys_read
responses:
'200':
description: OK
content:
'*/*':
schema:
$ref: '#/components/schemas/SurveyDetail_read'
parameters:
- name: id
required: true
in: path
description: A unique value identifying this rating question tag.
schema:
type: string
tags:
- core
/surveys/{survey_pk}/places:
get:
operationId: surveys_places_list
responses:
'200':
description: OK
content:
'*/*':
schema:
type: array
items:
$ref: '#/components/schemas/Place_read'
parameters:
- name: survey_pk
required: true
in: path
description: A unique value identifying the parent survey.
schema:
type: string
- name: cursor
required: false
in: query
description: The pagination cursor value.
schema:
type: string
- name: page_size
required: false
in: query
description: Number of results to return per page.
schema:
type: integer
- name: sort
required: false
in: query
description: Which field to use when ordering the results.
schema:
type: string
- name: partner_id
required: false
in: query
description: ''
schema:
type: string
tags:
- core
/surveys/{survey_pk}/responses:
get:
operationId: surveys_responses_list
responses:
'200':
description: OK
content:
'*/*':
schema:
type: array
items:
$ref: '#/components/schemas/Response_read'
parameters:
- name: survey_pk
required: true
in: path
description: ''
schema:
type: string
- name: cursor
required: false
in: query
description: The pagination cursor value.
schema:
type: string
- name: page_size
required: false
in: query
description: Number of results to return per page.
schema:
type: integer
- name: sort
required: false
in: query
description: Which field to use when ordering the results.
schema:
type: string
- name: start_date
required: false
in: query
description: ''
schema:
type: string
- name: end_date
required: false
in: query
description: ''
schema:
type: string
- name: date_field
required: false
in: query
description: ''
schema:
type: string
- name: first_name
required: false
in: query
description: ''
schema:
type: string
- name: last_name
required: false
in: query
description: ''
schema:
type: string
- name: email
required: false
in: query
description: ''
schema:
type: string
- name: phone
required: false
in: query
description: ''
schema:
type: string
- name: crm_id
required: false
in: query
description: ''
schema:
type: string
- name: place
required: false
in: query
description: ''
schema:
type: string
- name: source
required: false
in: query
description: ''
schema:
type: string
- name: survey
required: false
in: query
description: ''
schema:
type: string
- name: has_answers
required: false
in: query
description: ''
schema:
type: string
- name: has_message
required: false
in: query
description: ''
schema:
type: string
- name: has_reply
required: false
in: query
description: ''
schema:
type: string
tags:
- core
/surveys/{survey_pk}/responses/bulk:
get:
operationId: surveys_responses_bulk
responses:
'200':
description: OK
content:
'*/*':
schema:
$ref: '#/components/schemas/ResponseDetail_read'
parameters:
- name: survey_pk
required: true
in: path
description: ''
schema:
type: string
tags:
- core
/universes:
get:
operationId: universes_list
responses:
'200':
description: OK
content:
'*/*':
schema:
type: array
items:
$ref: '#/components/schemas/Universe_read'
parameters:
- name: cursor
required: false
in: query
description: The pagination cursor value.
schema:
type: string
- name: page_size
required: false
in: query
description: Number of results to return per page.
schema:
type: integer
- name: sort
required: false
in: query
description: Which field to use when ordering the results.
schema:
type: string
tags:
- core
/users:
get:
operationId: users_list
responses:
'200':
description: OK
content:
'*/*':
schema:
type: array
items:
$ref: '#/components/schemas/UserProfile_read'
parameters:
- name: cursor
required: false
in: query
description: The pagination cursor value.
schema:
type: string
- name: page_size
required: false
in: query
description: Number of results to return per page.
schema:
type: integer
- name: sort
required: false
in: query
description: Which field to use when ordering the results.
schema:
type: string
- name: email
required: false
in: query
description: ''
schema:
type: string
- name: first_name
required: false
in: query
description: ''
schema:
type: string
- name: last_name
required: false
in: query
description: ''
schema:
type: string
- name: phone
required: false
in: query
description: ''
schema:
type: string
tags:
- core
/users/{id}:
get:
operationId: users_read
responses:
'200':
description: OK
content:
'*/*':
schema:
$ref: '#/components/schemas/UserProfile_read'
parameters:
- name: id
required: true
in: path
description: A unique value identifying this user profile.
schema:
type: string
tags:
- core
/users/{user_pk}/places:
get:
operationId: users_places_list
responses:
'200':
description: OK
content:
'*/*':
schema:
type: array
items:
$ref: '#/components/schemas/Place_read'
parameters:
- name: user_pk
required: true
in: path
description: A unique value identifying the parent user.
schema:
type: string
- name: cursor
required: false
in: query
description: The pagination cursor value.
schema:
type: string
- name: page_size
required: false
in: query
description: Number of results to return per page.
schema:
type: integer
- name: sort
required: false
in: query
description: Which field to use when ordering the results.
schema:
type: string
- name: partner_id
required: false
in: query
description: ''
schema:
type: string
tags:
- core
components:
schemas:
Level_read:
type: object
properties:
id:
type: string
partner_id:
type: string
category_id:
type: integer
name:
type: string
detail_url:
type: string
additionalProperties:
type: string
PlaceDetail_read:
type: object
properties:
id:
type: string
partner_id:
type: string
universe:
type: string
name:
type: string
street:
type: string
postal_code:
type: string
city:
type: string
phone:
type: string
latitude:
type: number
longitude:
type: number
lang:
type: string
is_active:
type: boolean
created_date:
type: string
format: date-time
logo:
type: string
levels:
type: string
surveys:
type: string
users:
type: string
responses:
type: string
additionalProperties:
type: string
SurveyDetail_read:
type: object
properties:
id:
type: string
slug:
type: string
label:
type: string
enabled:
type: boolean
questions:
type: string
places:
type: string
responses:
type: string
additionalProperties:
type: string
Place_read:
type: object
properties:
id:
type: string
partner_id:
type: string
name:
type: string
enabled:
type: boolean
detail_url:
type: string
additionalProperties:
type: string
Response_read:
type: object
properties:
id:
type: string
created_date:
type: string
format: date-time
updated_date:
type: string
format: date-time
has_answers:
type: boolean
has_message:
type: boolean
has_reply:
type: boolean
alert_triggered:
type: boolean
detail_url:
type: string
additionalProperties:
type: string
LevelDetail_read:
type: object
properties:
id:
type: string
partner_id:
type: string
category_id:
type: integer
category:
type: string
name:
type: string
created_date:
type: string
format: date-time
is_active:
type: string
lang:
type: string
places:
type: string
responses:
type: string
additionalProperties:
type: string
ResponseDetail_read:
type: object
properties:
id:
type: string
token:
type: string
created_date:
type: string
format: date-time
updated_date:
type: string
format: date-time
source:
type: string
enum:
- email
- sms_trans
- sms_conv
- sms_text
- plv
- receipt
- google
- google_messaging
- critizr
- tripadvisor
- pagesjaunes
- sdk
- facebook
- facebook_reviews
- facebook_messenger
- widget
- terminal
- outbound_call
- wifi
- sms
- api
- undefined
- merci
- google_play_store
- apple_app_store
- uber_eats
- whatsapp
survey:
type: object
properties:
id:
type: string
slug:
type: string
label:
type: string
enabled:
type: boolean
detail_url:
type: string
additionalProperties:
type: string
answers:
type: array
items:
type: object
properties:
id:
type: string
value:
type: string
question:
type: object
properties:
id:
type: string
title:
type: string
type:
type: string
enum:
- none
- stars
- yesno
- choices
- nps
- emoji
- text
- multiple_answers
- csat
enabled:
type: boolean
additionalProperties:
type: string
additionalProperties:
type: string
message:
type: object
properties:
id:
type: string
created_date:
type: string
format: date-time
type:
type: string
enum:
- Question
- Idea
- Problem
- Praise
- Message
- NoType
content:
type: string
attachment:
type: string
sender:
type: object
properties:
email:
type: string
first_name:
type: string
last_name:
type: string
additionalProperties:
type: string
additionalProperties:
type: string
reply:
type: object
properties:
id:
type: string
created_date:
type: string
format: date-time
type:
type: string
enum:
- call
- text
content:
type: string
attachment:
type: string
sender:
type: object
properties:
email:
type: string
first_name:
type: string
last_name:
type: string
additionalProperties:
type: string
additionalProperties:
type: string
user:
type: object
properties:
email:
type: string
first_name:
type: string
last_name:
type: string
opt_in:
type: object
properties:
newsletter:
type: boolean
email:
type: boolean
sms:
type: boolean
additionalProperties:
type: string
additionalProperties:
type: string
context:
type: string
place:
type: object
properties:
id:
type: string
partner_id:
type: string
name:
type: string
enabled:
type: boolean
detail_url:
type: string
additionalProperties:
type: string
delegated_to:
type: object
properties:
id:
type: string
partner_id:
type: string
name:
type: string
enabled:
type: boolean
detail_url:
type: string
additionalProperties:
type: string
attached_messages:
type: array
items:
type: object
properties:
id:
type: string
created_date:
type: string
format: date-time
type:
type: string
enum:
- Question
- Idea
- Problem
- Praise
# --- truncated at 32 KB (34 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/goodays/refs/heads/main/openapi/goodays-core-api-openapi.yml