Contents
On this page

Export Testimonials as CSV - Plugixa Testimonial

GET /plugixatestimonial/v1/import-export/export/csv

Download testimonials as a CSV file, one row per testimonial, with a column per custom field.

Administrators only: the user needs WordPress’s manage_options capability. No plugin capability opens this route.

Note. The lang column is always empty in 1.1.1: the language is not exported. translation_group carries the group id.

Request

GET https://your-site.example/wp-json/plugixatestimonial/v1/import-export/export/csv?status=approved

Query parameters

Name Type Default Description
ids[] integer[] Export exactly these testimonials. When sent, every filter is ignored.
search string Text found in the name, the testimonial or the company. Same as filter[search].
status string pending, approved, rejected or draft. Same as filter[status]; send filter[status][] several times for more than one.
filter[categories][] integer[] Testimonials in any of these categories.
filter[rating_min] integer At least this many stars.
filter[rating_max] integer At most this many stars.
filter[is_featured] integer 1 for featured only, 0 for the rest.
filter[date_from] string Created on or after this day, YYYY-MM-DD.
filter[date_to] string Created on or before this day, YYYY-MM-DD.

With no parameter, every testimonial in every status and language is exported, newest first. There is no paging. See Import and export.

Responses

200 OK. The body is the CSV file.

id,lang,translation_group,client_name,client_role,client_company,testimonial_text,rating,video_url,website_url,status,is_featured,source,categories,created_at,project_type
42,,,"Sarah Johnson","Marketing Director","Northwind Studio","<p>Setup took ten minutes and our reviews finally look professional.</p>",5,,https://northwind.example,approved,1,manual,Agencies,"2026-11-12 09:30:00","Website redesign"

The response is the file itself, not the JSON envelope, sent as an attachment named testimonials-export-YYYY-MM-DD.csv (UTC date) with caching turned off. The header row is followed by one column per custom field key defined on the site. Categories are joined by , . Fields are quoted the RFC 4180 way, so the file re-imports cleanly through Upload Import File.

Errors

Status Code When
404 rest_error “No testimonials to export”: nothing matched.

Plus the errors every endpoint can return.

Examples

curl -sg "https://your-site.example/wp-json/plugixatestimonial/v1/import-export/export/csv?status=approved" \
  -u "admin:$WP_APP_PASSWORD" \
  -o testimonials.csv
<?php
$ch = curl_init('https://your-site.example/wp-json/plugixatestimonial/v1/import-export/export/csv?status=approved');
curl_setopt_array($ch, [
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_USERPWD        => 'admin:' . getenv('WP_APP_PASSWORD'),
]);
file_put_contents('testimonials.csv', curl_exec($ch));
curl_close($ch);
const response = await fetch('https://your-site.example/wp-json/plugixatestimonial/v1/import-export/export/csv?status=approved', {
  headers: {
    'Authorization': 'Basic ' + btoa(`admin:${process.env.WP_APP_PASSWORD}`),
  },
});
const file = await response.blob();

Quick Links

Share