⚠️ This feature is available only for organisations subscribed to Feedback Management. ⚠️
Retrieve aggregated feedback analytics data for your organisation.
A request is composed of:
metrics — the data you want to compute (required)dimensions — how the data is grouped
order_by — how the rows are sortedbusiness__in, business__notin)groups, group_section_id)filter_date__gte, filter_date__lte)survey__in, survey_field__in, survey_field_type__in)result_nps_score__in)verbatim_query)issues__in, issues__notin)city, query)Metrics are grouped into five categories:
| Category | Prefix | Examples |
|---|---|---|
| Survey | survey. | survey.response_rate, survey.nb__sent |
| CSAT | result.csat. | result.csat.score, result.csat.avg_score |
| NPS | result.nps. | result.nps.score, result.nps.promoters |
| Response | response. | response.avg_response_time, response.method.nb__ai |
| Result field | result_field. | result_field.rating, result_field.choices |
Dimensions control how rows are grouped:
business, user, feedback_form, group, group_section, feedback_form_field, resultday, month, yearExcel download: add download=true to receive the data as an .xlsx file instead of JSON.
Use table_name to customise the filename.
Metadata: add metadata=true to include full entity objects (businesses, forms, users…)
alongside the data array. Useful for resolving IDs to display names without extra API calls.
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.
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 sentsurvey.nb__with_comments: Number of responses with a commentsurvey.nb__without_comments: Number of responses without a commentsurvey.total_surveys: Total number of survey submissionssurvey.clicks: Number of survey link clickssurvey.respondents: Number of unique respondentssurvey.verbatims: Number of verbatim commentssurvey_details: Full per-result survey detailsCSAT metrics
result.csat.score: CSAT score (percentage of ratings 4-5)result.csat.avg_score: Average CSAT ratingresult.csat.pct__rating_5: Percentage of 5-star ratingsresult.csat.pct__rating_4: Percentage of 4-star ratingsresult.csat.pct__rating_3: Percentage of 3-star ratingsresult.csat.pct__rating_2: Percentage of 2-star ratingsresult.csat.pct__rating_1: Percentage of 1-star ratingsresult.csat.pct__rating_1_2: Percentage of 1-2 star ratings combinedresult.csat.rating_5: Count of 5-star ratingsresult.csat.rating_1_2: Count of 1-2 star ratings combinedresult.csat.total_responses: Total number of CSAT responsesNPS 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 scoreresult.nps.pct__promoters: Percentage of promotersresult.nps.pct__detractors: Percentage of detractorsresult.nps.pct__passives: Percentage of passivesresult.nps.pct__with_comments: Percentage of responses with commentsresult.nps.pct__without_comment: Percentage of responses without commentsresult.nps.total_responses: Total number of NPS responsesResponse metrics
response.created.replied_under_2days: Replies sent within 2 daysresponse.created.replied_over_2days: Replies sent after 2 daysresponse.created.not_replied: Feedback not yet replied toresponse.method.nb__manual: Number of manual repliesresponse.method.nb__ai: Number of AI-assisted repliesresponse.not_replied: Total feedback not replied toresponse.under_2days: Total replies under 2 daysresponse.over_2days: Total replies over 2 daysresponse.avg_response_time: Average response time (seconds)response.total_surveys: Total surveys included in response statsresponse.total_responses: Total replies sentresponse.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 fieldresult_field.content: Text content of a form field responseresult_field.choices: Selected choices for a form fieldresult_field.field_position: Position of the field within the formresult_field.result_count: Number of results for a field"result.csat.score,result.csat.avg_score"
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 businessuser: Group results by userfeedback_form: Group results by survey formgroup: Group results by business groupgroup_section: Group results by group sectionfeedback_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 daymonth: Group by calendar monthyear: Group by calendar yearbusiness, user, feedback_form, group, group_section, feedback_form_field, result, day, month, year "business,month"
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
"-result.csat.score"
Filter results to only the specified business IDs (comma-separated).
"59b2645db12ff60643ef832c,60b2645fb12ff60643ef8344"
Exclude the specified business IDs from results (comma-separated).
"59b2645db12ff60643ef832c"
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.
"6797bc826dfe97f2f60c427c,614d9d1978a067d412028333,672b8d1126ef12c5a00bfbb3"
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.
"59b2645db12ff60643ef832c"
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.
"59b2645db12ff60643ef832c"
Filter results to businesses belonging to the specified group IDs (comma-separated integers).
"1244,1245"
Filter results to businesses belonging to the specified group section ID.
42
Filter results to businesses located in the specified city.
"Paris"
Fuzzy search businesses by name, city, or zipcode.
Return only feedback results whose date is greater than or equal to this value.
"2024-01-01T00:00:00"
Return only feedback results whose date is less than or equal to this value.
"2024-03-31T23:59:59"
Filter results to the specified survey (feedback form) IDs (comma-separated).
"674d791c13c9d976e20001b1,674d791c13c9d976e20001b2"
Filter results to the specified form field IDs (comma-separated).
Filter results to the specified form field types (comma-separated, e.g. CSAT,NPS).
"CSAT,NPS"
Filter results to the specified NPS scores (comma-separated integers, 0–10).
"9,10"
Filter to specific feedback result IDs (comma-separated).
Full-text search within feedback comments and verbatim responses.
Filter to results that have one of the specified data quality issues (comma-separated).
deleted_business: The associated business has been deletedmissing_store_code: The business is missing a store codedeleted_business, missing_store_code Exclude results that have one of the specified data quality issues (comma-separated).
deleted_business: The associated business has been deletedmissing_store_code: The business is missing a store codedeleted_business, missing_store_code 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.
When true, the response is an Excel file (.xlsx) instead of JSON.
The Content-Disposition header contains the generated filename.
Custom label used as part of the generated Excel filename when download=true.
Special characters are sanitised automatically.
"Q1-2024-CSAT"
Page number to retrieve (1-based).
x >= 1Number of results per page.
1 <= x <= 1000OK.
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.
Array of analytics rows. Each row contains metric values and dimension identifiers.
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.
Current page number.
1
Total number of results matching the query.
42
Total number of pages available.
5