Skip to main content
GET
/
feedback
/
analytics
/
metrics
Feedback analytics metrics
curl --request GET \
  --url https://api.partoo.co/v2/feedback/analytics/metrics \
  --header 'x-APIKey: <api-key>'
{
  "page": 1,
  "count": 1,
  "max_page": 1,
  "data": [
    {
      "result.csat.score": 87.5,
      "result.csat.avg_score": 4.38
    }
  ],
  "metadata": {
    "feedback_form": null,
    "feedback_form_field": null,
    "result": null,
    "business": null,
    "group": null,
    "group_section": null,
    "user": null
  }
}

Authorizations

x-APIKey
string
header
required

The authentication system on Partoo API is using API Key that should be put in the header of the request (the name of the header is x-APIKey). An api_key is linked to a user. This user's role will give you different access level to the API features.

Query Parameters

metrics
string
required

Comma-separated list of analytics metrics to return. At least one value is required.

Survey metrics

  • survey.response_rate: Response rate (submissions / sends)
  • survey.nb__sent: Number of surveys sent
  • survey.nb__with_comments: Number of responses with a comment
  • survey.nb__without_comments: Number of responses without a comment
  • survey.total_surveys: Total number of survey submissions
  • survey.clicks: Number of survey link clicks
  • survey.respondents: Number of unique respondents
  • survey.verbatims: Number of verbatim comments
  • survey_details: Full per-result survey details

CSAT metrics

  • result.csat.score: CSAT score (percentage of ratings 4-5)
  • result.csat.avg_score: Average CSAT rating
  • result.csat.pct__rating_5: Percentage of 5-star ratings
  • result.csat.pct__rating_4: Percentage of 4-star ratings
  • result.csat.pct__rating_3: Percentage of 3-star ratings
  • result.csat.pct__rating_2: Percentage of 2-star ratings
  • result.csat.pct__rating_1: Percentage of 1-star ratings
  • result.csat.pct__rating_1_2: Percentage of 1-2 star ratings combined
  • result.csat.rating_5: Count of 5-star ratings
  • result.csat.rating_1_2: Count of 1-2 star ratings combined
  • result.csat.total_responses: Total number of CSAT responses

NPS metrics

  • result.nps.score: NPS score (promoters % − detractors %)
  • result.nps.promoters: Number of promoters (score 9-10)
  • result.nps.passives: Number of passives (score 7-8)
  • result.nps.detractors: Number of detractors (score 0-6)
  • result.nps.avg__score: Average NPS raw score
  • result.nps.pct__promoters: Percentage of promoters
  • result.nps.pct__detractors: Percentage of detractors
  • result.nps.pct__passives: Percentage of passives
  • result.nps.pct__with_comments: Percentage of responses with comments
  • result.nps.pct__without_comment: Percentage of responses without comments
  • result.nps.total_responses: Total number of NPS responses

Response metrics

  • response.created.replied_under_2days: Replies sent within 2 days
  • response.created.replied_over_2days: Replies sent after 2 days
  • response.created.not_replied: Feedback not yet replied to
  • response.method.nb__manual: Number of manual replies
  • response.method.nb__ai: Number of AI-assisted replies
  • response.not_replied: Total feedback not replied to
  • response.under_2days: Total replies under 2 days
  • response.over_2days: Total replies over 2 days
  • response.avg_response_time: Average response time (seconds)
  • response.total_surveys: Total surveys included in response stats
  • response.total_responses: Total replies sent
  • response.method_ai: Replies using AI (alias)
  • response.method_manual: Replies sent manually (alias)

Result field metrics (use with feedback_form_field dimension)

  • result_field.rating: Rating value for a form field
  • result_field.content: Text content of a form field response
  • result_field.choices: Selected choices for a form field
  • result_field.field_position: Position of the field within the form
  • result_field.result_count: Number of results for a field
Example:

"result.csat.score,result.csat.avg_score"

dimensions
enum<string>

Comma-separated list of dimensions to group the returned data by. If omitted, the response contains aggregated totals across all data.

Entity dimensions

  • business: Group results by business
  • user: Group results by user
  • feedback_form: Group results by survey form
  • group: Group results by business group
  • group_section: Group results by group section
  • feedback_form_field: Group results by form field (use with result_field.* metrics)
  • result: Return individual feedback results (one row per result)

Date dimensions

  • day: Group by calendar day
  • month: Group by calendar month
  • year: Group by calendar year
Available options:
business,
user,
feedback_form,
group,
group_section,
feedback_form_field,
result,
day,
month,
year
Example:

"business,month"

order_by
string

Comma-separated list of fields to sort by. Prefix a field name with - to sort in descending order; no prefix sorts ascending. Each field must be one of the metrics or dimensions values included in the request.

Examples: order_by=result.csat.score, order_by=-result.nps.score,business

Example:

"-result.csat.score"

business__in
string

Filter results to only the specified business IDs (comma-separated).

Example:

"59b2645db12ff60643ef832c,60b2645fb12ff60643ef8344"

business__notin
string

Exclude the specified business IDs from results (comma-separated).

Example:

"59b2645db12ff60643ef832c"

user__in
string

Filter results to the specified user IDs (comma-separated integers). For non-admin users this is automatically restricted to their accessible users when the user dimension is requested.

Example:

"6797bc826dfe97f2f60c427c,614d9d1978a067d412028333,672b8d1126ef12c5a00bfbb3"

included
string

Business IDs to force-include in the result set (comma-separated), regardless of groups or business__in filters. Applied as a union on top of the group/business filter resolution.

Example:

"59b2645db12ff60643ef832c"

excluded
string

Business IDs to force-exclude from the result set (comma-separated), regardless of other filters. Applied as a subtraction after all group/business filter resolution.

Example:

"59b2645db12ff60643ef832c"

groups
string

Filter results to businesses belonging to the specified group IDs (comma-separated integers).

Example:

"1244,1245"

group_section_id
integer

Filter results to businesses belonging to the specified group section ID.

Example:

42

city
string

Filter results to businesses located in the specified city.

Example:

"Paris"

query
string

Fuzzy search businesses by name, city, or zipcode.

filter_date__gte
string<datetime>

Return only feedback results whose date is greater than or equal to this value.

Example:

"2024-01-01T00:00:00"

filter_date__lte
string<datetime>

Return only feedback results whose date is less than or equal to this value.

Example:

"2024-03-31T23:59:59"

survey__in
string

Filter results to the specified survey (feedback form) IDs (comma-separated).

Example:

"674d791c13c9d976e20001b1,674d791c13c9d976e20001b2"

survey_field__in
string

Filter results to the specified form field IDs (comma-separated).

survey_field_type__in
string

Filter results to the specified form field types (comma-separated, e.g. CSAT,NPS).

Example:

"CSAT,NPS"

result_nps_score__in
string

Filter results to the specified NPS scores (comma-separated integers, 0–10).

Example:

"9,10"

result_id__in
string

Filter to specific feedback result IDs (comma-separated).

verbatim_query
string

Full-text search within feedback comments and verbatim responses.

issues__in
enum<string>

Filter to results that have one of the specified data quality issues (comma-separated).

  • deleted_business: The associated business has been deleted
  • missing_store_code: The business is missing a store code
Available options:
deleted_business,
missing_store_code
issues__notin
enum<string>

Exclude results that have one of the specified data quality issues (comma-separated).

  • deleted_business: The associated business has been deleted
  • missing_store_code: The business is missing a store code
Available options:
deleted_business,
missing_store_code
metadata
boolean
default:false

When true, the response includes a metadata object containing full entity details (businesses, forms, users, groups, etc.) referenced by IDs in the data array. Useful for resolving IDs to display names without additional API calls.

download
boolean
default:false

When true, the response is an Excel file (.xlsx) instead of JSON. The Content-Disposition header contains the generated filename.

table_name
string

Custom label used as part of the generated Excel filename when download=true. Special characters are sanitised automatically.

Example:

"Q1-2024-CSAT"

page
integer
default:1

Page number to retrieve (1-based).

Required range: x >= 1
per_page
integer
default:100

Number of results per page.

Required range: 1 <= x <= 1000

Response

OK.

When download=true, the response is an Excel file (.xlsx) with a Content-Disposition: attachment header containing the generated filename, instead of the JSON body described below.

data
object[]

Array of analytics rows. Each row contains metric values and dimension identifiers.

metadata
object

Entity details referenced by IDs in the data array. Only present when metadata=true is passed in the request. Each key is a dimension name; its value is an array of the corresponding entities.

page
integer

Current page number.

Example:

1

count
integer

Total number of results matching the query.

Example:

42

max_page
integer | null

Total number of pages available.

Example:

5