Overview
The Contendar API lets you read and write your Testimonials, NPS, Customers, and Blogs data from your own code. Use it to sync reviews into a CRM, build a custom dashboard, push survey scores into a data warehouse, keep your customer list in step with your own systems, or pull finished blog posts into your website.
The API is a REST API. It uses JSON for every request body and every response. Every request needs an API key and a project ID.
Base URL
All endpoints start with this URL:
https://app.contendar.com/api/v1Quick start
- Create an API key. See Authentication .
- Find the ID of the project you want to work with. Open the project in Contendar and copy the UUID from the page URL.
- Make a request. Send the key in the
Authorizationheader and the project ID asprojectId.curl " https://app.contendar.com/api/v1/testimonials/submissions?projectId=YOUR_PROJECT_ID&page=1&pageSize=25 "
-H "Authorization: Bearer ck_your_key_here"
How the API is organised
| Area | What it covers |
| Authentication | API keys, the bearer token, and project scoping. |
| Errors and rate limits | Status codes, the error body shape, and the request limit. |
| Pagination and filtering | The data and pagination envelope, and list query parameters. |
| Testimonials | Read, create, update, and archive testimonial submissions. |
| NPS | Read, create, update, and archive NPS submissions, and read score analytics. |
| Customers | Read, create, update, archive, and unsubscribe customers. |
| Blogs | Read finished blog posts as Markdown, HTML, or plain text. |
Testimonials endpoints
| Method | Path | Page |
| GET | /testimonials/submissions | List submissions |
| GET | /testimonials/submissions/{testimonialSubmissionId} | Get a submission |
| GET | /testimonials/submissions/{testimonialSubmissionId}/video-url | Get a video URL |
| POST | /testimonials/submissions | Create a submission |
| PATCH | /testimonials/submissions/{testimonialSubmissionId} | Update a submission |
| DELETE | /testimonials/submissions/{testimonialSubmissionId} | Archive a submission |
| GET | /testimonials/analytics | Analytics summary |
| GET | /testimonials/tags | List tags |
NPS endpoints
| Method | Path | Page |
| GET | /nps/submissions | List submissions |
| GET | /nps/submissions/{npsSubmissionId} | Get a submission |
| POST | /nps/submissions | Create a submission |
| PATCH | /nps/submissions/{npsSubmissionId} | Update a submission |
| DELETE | /nps/submissions/{npsSubmissionId} | Archive a submission |
| GET | /nps/analytics | Analytics summary |
| GET | /nps/scores-by-form | Scores by form |
Customers endpoints
| Method | Path | Page |
| GET | /customers | List customers |
| GET | /customers/{customerId} | Get a customer |
| POST | /customers | Create a customer |
| PATCH | /customers/{customerId} | Update a customer |
| DELETE | /customers/{customerId} | Archive a customer |
| POST | /customers/{customerId}/unsubscribe | Unsubscribe a customer |
Blogs endpoints
| Method | Path | Page |
| GET | /blogs | List blog posts |
| GET | /blogs/{blogId} | Get a blog post |
OpenAPI spec
The full machine readable spec is served here:
https://app.contendar.com/api/v1/openapi.jsonImport that URL into Postman, Insomnia, or any OpenAPI client to get a ready made request collection.
Related pages
Was this helpful?