Gallery & Testimonials
Manage the photo gallery and customer testimonials shown on your AI business card. Authentication required.
Gallery
GET
/api/v1/my-profile/gallery AuthList gallery images.
Response
{ "success": true, "gallery": [ { "id": 3, "image_url": "https://cdn…", "caption": "", "sort_order": 0 } ] }POST
/api/v1/my-profile/gallery AuthUpload an image (multipart field image, max 10MB; plan-limited). Optional caption.
Response
{ "success": true, "id": 4, "image_url": "https://cdn…" }DELETE
/api/v1/my-profile/gallery/{id} AuthDelete a gallery image.
Response
{ "success": true }PUT
/api/v1/my-profile/gallery/reorder AuthReorder images by passing an array of ids in the desired order.
Request body
{ "order": [4, 3, 7] }Response
{ "success": true }Testimonials
Verified testimonials (collected via review requests) can only have their visibility toggled — their text and rating are locked.
GET
/api/v1/my-profile/testimonials AuthList testimonials.
Response
{ "success": true, "testimonials": [ { "id": 2, "author_name": "Bob", "rating": 5, "text": "Great!", "is_visible": true, "is_verified": false } ] }POST
/api/v1/my-profile/testimonials AuthAdd a testimonial. author_name and text required; rating 1–5.
Request body
{ "author_name": "Bob", "text": "Great service!", "rating": 5, "is_visible": true }Response
{ "success": true, "testimonial": { … } }PUT
/api/v1/my-profile/testimonials/{id} AuthUpdate a testimonial (verified ones: visibility only).
Request body
{ "is_visible": false }Response
{ "success": true, "testimonial": { … } }DELETE
/api/v1/my-profile/testimonials/{id} AuthDelete a testimonial.
Response
{ "success": true }POST
/api/v1/my-profile/testimonials/{id}/request-edit AuthEmail the original reviewer a link to edit their verified review.
Response
{ "success": true }