The FeedbackAPI REST API is organized around REST. Our API has predictable, resource-oriented URLs, and uses HTTP response codes to indicate API errors. We use built-in HTTP features, like HTTP authentication and HTTP verbs, which are understood by off-the-shelf HTTP clients.
We support cross-origin resource sharing, allowing you to interact securely with our API from a client-side web application (though you should never expose your secret API key in any public website's client-side code). JSON is returned by all API responses, including errors.
All endpoint URLs begin with https://api.feedbackapi.com/v1.3/. Additionally, the REST API requires the use of a client which supports SNI.
Parameters must be serialized in JSON and passed in the request body (not in the query string or form parameters). This API is modeled after earlier versions of the JSON API specification.
It is recommended that you use the media type designation of application/vnd.api+json, although we will accept a media type designation of application/json.
https://api.feedbackapi.com/v1.3/
You can authenticate your requests by including your API Token in the request. You can generate and manage your API tokens on the Integrations tab in Settings when you sign into your account. Your API tokens allow access to your account data so be sure to keep them secret! Do not share your API tokens in publicly accessible areas such GitHub, client-side code, and so forth.
Authentication to the API is performed via HTTP Basic Auth. Provide your API key as the basic auth username value. You do not need to provide a password.
$ curl https://api.feedbackapi.com/v1.3/subscriber/ \
-u example_api_token_12334:
curl uses the -u flag to pass basic auth credentials (adding a colon after your API key prevents cURL from asking for a password).
All top-level API resources have support for bulk fetches via "list" API methods. For instance you can list subsribers, list reviews, and list accounts. These list API methods share a common structure, taking at least these three parameters: limit,sort_by and page.
Limit on the number of objects to be returned, between 1 and 100.
The starting page to return results from beginning at 0. The maximum page will be calculated by the total number of results divided by the limit.
The field to sort objects by. Indicate direction by appending either '-asc' or '-desc'. e.g. to sort by the oldest objects first, you would use 'created-asc'.
$ curl https://api.feedbackapi.com/v1.3/subscribers?limit=20&created_after=1732142196 \
-u example_api_token_12334: \
-G
{"page":1,"total_count":3,"total_returned":3,"data":[{"id":"gd7TdO","created":1732060800,"email":"subscriber@feedbackapi.com","mobile_number":"+1813555555","fname":"Jane","sname":"Doe","last_sms":1732142196,"last_email":null,"country_code":"US","invalid":false,"opt_out":false,"locations":["xd3S6","iF56sC"]},{"id":"gse4Ry","created":1732060800,"email":"subscriber2@feedbackapi.com","mobile_number":null,"fname":"Bobby","sname":"Axelrod","last_sms":null,"last_email":null,"country_code":"US","invalid":false,"opt_out":true,"locations":["iF56sC"]},{"id":"dfar5V","created":1732060800,"email":"subscriber3@feedbackapi.com","mobile_number":"+447810123456","fname":"Ciro","sname":"Marzio","last_sms":1732142196,"last_email":1732060800,"country_code":"GB","invalid":false,"opt_out":false,"locations":["xd3S6","iF56sC"]}]}
We use conventional HTTP response codes to indicate the success or failure of a request.
In general, codes in the 2xx range indicate success, codes in the 4xx range indicate an error that failed given the information provided (e.g., a required parameter was omitted, a subscriber could not be added etc), and codes in the 5xx range indicate an error with our servers.
The type of error returned. Can be: api_connection_error
, api_error
, authentication_error
, invalid_request_error
, or rate_limit_error
.
A human-readable message providing more details about the error.
The parameter the error relates to if the error is parameter-specific. You can use this to display a message near the correct form field, for example.
200 - OK | Everything worked well as expected. |
---|---|
400 - Bad Request | The request was unacceptable, often due to missing a required parameter. |
401 - Unauthorized | No valid API key provided. |
402 - Request Failed | The parameters were valid but the request failed. |
404 - Not Found | The requested resource doesn't exist. |
429 - Too Many Requests | Too many requests hit the API too quickly. We recommend an exponential backoff of your requests. |
500, 502, 503, 504 - Server Errors | Something went wrong on our end. |
api_connection_error | Failure to connect to the API. |
---|---|
api_error | API errors cover any other type of problem (e.g, a temporary problem with our servers and are extremely uncommon. |
authentication_error | Failure to properly authenticate yourself in the request. Check your API token is being sent as an authentication header. |
invalid_request_error | Invalid request errors arise when your request has invalid parameters. |
rate_limit_error | Too many requests hit the API too quickly. |
Customer objects represent the customers in an account that may be the recipient of feedback campaigns. The API allows you to create, delete and update your customers. You can retrieve individual customers as well as a list of all your customers.
https://api.feedbackapi.com/v1.3/customers
Unique identifier for the customer.
Time at which the object was created. Represented as an ISO 8601 formatted timestamp.
The customer’s email address.
The customer’s mobile number in E.164 format (including the country code e.g. +1 for the US).
The customer’s first name.
The customer’s last / family name.
The time the last SMS message was sent to this customer. Represented as an ISO 8601 formatted timestamp.
The time the last email message was sent to this customer. Represented as an ISO 8601 formatted timestamp.
The customer’s resident country in 2 letter ISO format.
If an SMS message fails delivery or an email bounces, the customer is marked as invalid.
If a customer clicks the unsubscribe or complaint link in an email, the customer is marked as opted out.
An array of location IDs that the customer belongs to.
{"id":"gd7TdO","created":1732060800,"email":"subscriber@feedbackapi.com","mobile_number":"+1813555555","fname":"Jane","sname":"Doe","last_sms":1732142196,"last_email":null,"country_code":"US","invalid":false,"opt_out":false,"locations":["xd3S6","iF56sC"]}
To create a new customer you create a customer object. Customers are uniquely identified by their email address or mobile number.
If you attempt to create a customer where another exists with the same email address or mobile number, the creation will be treated as an update to the existing record. This means campaigns will not be re-triggered if they have already been completed for that customer.
A string representing the customer’s email address. * If mobile_number is not present, this field becomes required
A string representing the customer’s mobile number in E.164 format (including the country code). * If email is not present, this field becomes required
The customer’s first name.
The customer’s last / family name.
A string representing an initial location ID that the customer should be attached to. You can attach the customer to more locations by calling the Update Customer API
$ curl https://api.feedbackapi.com/v1.3/customers \
-u example_api_token_12334: \
-d mobile_number="+1813555555" \
-d email="customer@feedbackapi.com" \
-d country_code="US" \
-d location="xS4rtY"
{"id":"gd7TdO","created":1732060800,"email":"subscriber@feedbackapi.com","mobile_number":"+1813555555","fname":null,"sname":null,"last_sms":null,"last_email":null,"country_code":"US","invalid":false,"opt_out":false,"locations":["xS4rtY"]}
https://api.feedbackapi.com/v1.3/customers/gd7TdO \
-u example_api_token_12334:
{"id":"gd7TdO","created":1732060800,"email":"subscriber@feedbackapi.com","mobile_number":"+1813555555","fname":null,"sname":null,"last_sms":null,"last_email":null,"country_code":"US","invalid":false,"opt_out":false,"locations":["xS4rtY"]}
Updates the specified customer by setting the values of the parameters passed. Any parameters not provided will be left unchanged. For example, if you pass the fname parameter, that becomes the customer's first name which can be used in campaigns in the future. (Remember, any messages or campaigns scheduled before the change will not be affected).
This request accepts mostly the same arguments as the create customer call.
A string representing the customer's email address.
A string representing the customer's mobile number in E.164 format (including the country code).
The customer's first name.
The customer's last / family name.
The customer's resident country in in 2 letter ISO format.
Opt the customer in or out from further email or SMS communication
An array of location IDs that the customer should be attached to. If the customer already belongs to that location, it will be ignored.
An array of location IDs that the customer should be removed from. If the customer does not already belong to that location, it will be ignored.
POST https://api.feedbackapi.com/v1.3/customers/{id}
$ curl https://api.feedbackapi.com/v1.3/customers/gd7TdO \
-u example_api_token_12334: \
-d opt_out=true \
-d fname="Ciro"
{"id":"gd7TdO","created":1732060800,"email":"subscriber@feedbackapi.com","mobile_number":"+1813555555","fname":"Ciro","sname":null,"last_sms":null,"last_email":null,"country_code":"US","invalid":false,"opt_out":true,"locations":["xS4rtY"]}
Makes a customer inactive across an account and all locations. Remember, the customer will effectively be set to inactive rather than removed from our database completely. This is to prevent the same campaign being sent to that customer in the event they are added again to the same location at a later date.
DELETE https://api.feedbackapi.com/v1.3/customers/{id}
$ curl https://api.feedbackapi.com/v1.3/customers/gd7TdO \
-u example_api_token_12334: \
-X DELETE
{"id":"gd7TdO","deleted":true}
Returns a list of your customers. The customers are returned sorted by created date, with the most recent customers appearing first.
A filter on the list based on the created field with this being the upper limit. The value is a string with an ISO 8601 timestamp
A filter on the list based on the created field with this being the lower limit. The value is a string with an ISO 8601 timestamp
A filter on the customer's email address. The value is a string
A filter on the customer's mobile number in E.164 format (including the country code e.g. +1 for the US). The value is a string
A filter on the customer's first name. The value is a string
A filter on the customer's last / family name. The value is a string
A filter on the customer's resident country in 2 letter ISO format. The value is a string
A filter to only return customers that have been flagged as valid / invalid . The value is a boolean representing valid by TRUE and invalid by FALSE
A filter to return customers based on their opt-out status. The value is a boolean representing opted out by TRUE and not opted out by FALSE
GET https://api.feedbackapi.com/v1.3/customers
$ curl https://api.feedbackapi.com/v1.3/customers?limit=20&created_after=1483228800 \
-u example_api_token_12334: \
-G
{"page":1,"total_count":3,"total_returned":3,"data":[{"id":"gd7TdO","created":1732060800,"email":"subscriber@feedbackapi.com","mobile_number":"+1813555555","fname":"Jane","sname":"Doe","last_sms":1732142196,"last_email":null,"country_code":"US","invalid":false,"opt_out":false,"locations":["xd3S6","iF56sC"]},{"id":"gse4Ry","created":1732060800,"email":"subscriber2@feedbackapi.com","mobile_number":null,"fname":"Bobby","sname":"Axelrod","last_sms":null,"last_email":null,"country_code":"US","invalid":false,"opt_out":true,"locations":["iF56sC"]},{"id":"dfar5V","created":1732060800,"email":"subscriber3@feedbackapi.com","mobile_number":"+447810123456","fname":"Ciro","sname":"Marzio","last_sms":1732142196,"last_email":1732060800,"country_code":"GB","invalid":false,"opt_out":false,"locations":["xd3S6","iF56sC"]}]}
Location objects represent the locations in an account. These locations can be physical outlets or offices in addition to different departments or people within an organization. Think of locations as entities that you may need to collect reviews on. The API allows you to create, delete and update your locations. You can retrieve individual location information as well as a list of all your locations.
https://api.feedbackapi.com/v1.3/locations
Unique identifier for the location.
Time at which the object was created. Represented as an ISO 8601 formatted timestamp.
The location’s name.
The location's first address line.
The location's second address line.
The location's state or third address line.
The location's zip code or postcode.
The location's country in 2 letter ISO format.
{"id":"gd7TdO","created":1732060800,"name":"Apple Park","address_line_1":"The Spaceship, 1 Apple Park Way","address_line_2":"Cupertino","address_line_3":"CA","postal_code":"90210","country_code":"US"}
To create a new location you create a location object.
The location’s name.
The location's first address line.
The location's second address line.
The location's state or third address line.
The location's zip code or postcode.
The location's country in 2 letter ISO format.
An array of review profile urls to check for this location.
POST https://api.feedbackapi.com/v1.3/locations
$ curl https://api.feedbackapi.com/v1.3/locations/ \
-u example_api_token_12334: \
-d name="Apple Park" \
-d address_line_1="The Spaceship, 1 Apple Park Way" \
-d address_line_2="Cupertino" \
-d address_line_3="CA" \
-d postal_code="90210" \
-d country_code="US" \
-d review_profile[]="https://www.google.com/search?q=apple+park+visitor+center+cupertino+ca+95014" \
-d review_profile[]="https://www.tripadvisor.co.uk/Attraction_Review-g32273-d13331376-Reviews-Apple_Park_Visitor_Center-Cupertino_California.html"
{"id":"gd7TdO","created":1732060800,"name":"Apple Park","address_line_1":"The Spaceship, 1 Apple Park Way","address_line_2":"Cupertino","address_line_3":"CA","postal_code":"90210","country_code":"US"}
https://api.feedbackapi.com/v1.3/locations/gd7TdO \
-u example_api_token_12334:
{"id":"gd7TdO","created":1732060800,"name":"Apple Park","address_line_1":"The Spaceship, 1 Apple Park Way","address_line_2":"Cupertino","address_line_3":"CA","postal_code":"90210","country_code":"US"}
Updates the specified location by setting the values of the parameters passed. Any parameters not provided will be left unchanged. For example, if you pass the address_line_1 parameter, that becomes the locations’s first address line which can be used in templating on future campaigns. (Remember, any messages or campaigns scheduled before the change will not be affected).
This request accepts mostly the same arguments as the create location call.
The location’s name.
The location's first address line.
The location's second address line.
The location's state or third address line.
The location's zip code or postcode.
The location's country in 2 letter ISO format.
A list of review profile urls to add for this location.
POST https://api.feedbackapi.com/v1.3/locations/{id}
$ curl https://api.feedbackapi.com/v1.3/locations/gd7TdO \
-u example_api_token_12334: \
-d name="The HyperRing"
{"id":"gd7TdO","created":1732060800,"name":"The HyperRing","address_line_1":"The Spaceship, 1 Apple Park Way","address_line_2":"Cupertino","address_line_3":"CA","postal_code":"90210","country_code":"US"}
DELETE https://api.feedbackapi.com/v1.3/locations/{id}
$ curl https://api.feedbackapi.com/v1.3/locations/gd7TdO \
-u example_api_token_12334: \
-X DELETE
{"id":"gd7TdO","deleted":true}
Returns a list of locations. The locations are returned sorted by the location name by default.
A filter on the list based on the created field with this being the upper limit. The value is a string with an ISO 8601 timestamp
A filter on the list based on the created field with this being the lower limit. The value is a string with an ISO 8601 timestamp
A filter on the locations's name. The value is a string
A filter on the location's postal or zip code. The value is a string
A filter on the location’s country in 2 letter ISO format. The value is a string
GET https://api.feedbackapi.com/v1.3/locations
$ curl https://api.feedbackapi.com/v1.3/locations?limit=20&created_after=1483228800 \
-u example_api_token_12334: \
-G
{"page":1,"total_count":3,"total_returned":3,"data":[{"id":"gse4Ry","created":1732060800,"name":"Acme Inc","address_line_1":"27 Loony Toon West","address_line_2":null,"address_line_3":"NY","postal_code":"11201","country_code":"US"},{"id":"gd7TdO","created":1732060800,"name":"Apple Park","address_line_1":"The Spaceship, 1 Apple Park Way","address_line_2":"Cupertino","address_line_3":"CA","postal_code":"90210","country_code":"US"},{"id":"dfar5V","created":1732060800,"name":"B613 UK Branch","address_line_1":"85 Albert Embankment","address_line_2":"Lambeth","address_line_3":"London","postal_code":"SE1 7TP","country_code":"GB"}]}
Review objects represent the reviews that are left externally for an account's locations. A review object can include both a review (e.g. 'This place is awesome'), a rating (e.g. 5/5) or both.
https://api.feedbackapi.com/v1.3/reviews
Unique identifier for the review.
Time at which the object was created. Represented as an ISO 8601 formatted timestamp.
The review title if one exists.
The main body of the review.
The location ID that the review belongs to
The platform ID that the review belongs to.
The name of the platform that the review belongs to.
The normalized rating attached to the review, out of 5.
The review's url if one exists.
The username or name of the individual who left the review.
The url of the reviewer's profile image on the platform where the review was left.
The url of the reviewer's profile on the platform where the review was left.
{"id":"gd7TdO","created":1732060800,"title":"Possibly the best law firm ever!","description":"What more can I say, these guys are incredible!! Highly recommended","location":"gse4Ry","platform":"dfar5V","platform_name":"The Review Site","rating":5,"url":"https:\/\/thereview.site\/reviews\/12345","reviewer_name":"John Doe","reviewer_image":null,"reviewer_url":null}
https://api.feedbackapi.com/v1.3/reviews/gd7TdO \
-u example_api_token_12334:
{"id":"gd7TdO","created":1732060800,"title":"Possibly the best law firm ever!","description":"What more can I say, these guys are incredible!! Highly recommended","location":"gse4Ry","platform":"dfar5V","platform_name":"The Review Site","rating":5,"url":"https:\/\/thereview.site\/reviews\/12345","reviewer_name":"John Doe","reviewer_image":null,"reviewer_url":null}
Returns a list of reviews. The reviews are returned sorted by the review date by default with the newest reviews appearing first.
A filter on the list based on the created field with this being the upper limit. The value is a string with an ISO 8601 timestamp
A filter on the list based on the created field with this being the lower limit. The value is a string with an ISO 8601 timestamp
A filter on the review's locations. The value is a string representing the location ID.
A filter on the review's platform. The value is a string representing the platform ID
A filter on the review’s rating where it is lesser than or equal to the supplied value. The value is a decimal represented by a string
A filter on the review’s rating where it is greater than or equal to the supplied value. The value is a decimal represented by a string
GET https://api.feedbackapi.com/v1.3/reviews
$ curl https://api.feedbackapi.com/v1.3/reviews?limit=20&created_after=1483228800 \
-u example_api_token_12334: \
-G
{"page":1,"total_count":3,"total_returned":3,"data":[{"id":"gse4Ry","created":1732060800,"title":"Excellent Staff and Great Customer Service","description":"Acme Law firm have been my go to law firm for several years and never disappoint.","location":"gse4Ry","platform":"dfar5V","platform_name":"The Review Site","rating":5,"url":"https:\/\/thereview.site\/reviews\/12367","reviewer_name":null,"reviewer_image":null,"reviewer_url":null},{"id":"gd7TdO","created":1732060800,"title":"Possibly the best law firm ever!","description":"What more can I say, these guys are incredible!! Highly recommended","location":"gse4Ry","platform":"dfar5V","platform_name":"The Review Site","rating":5,"url":"https:\/\/thereview.site\/reviews\/12345","reviewer_name":"John Doe","reviewer_image":null,"reviewer_url":null},{"id":"dfar5V","created":1732060800,"title":null,"description":"Another excellent experience with Acme Law Firm - thanks to the team","location":"gse4Ry","platform":"gse4Ry","platform_name":"Solicitor Reviews","rating":4.5,"url":"https:\/\/solicitor-reviews.net\/reviews\/12345","reviewer_name":"Jane Doe","reviewer_image":null,"reviewer_url":null}]}
Feedback objects represent the feedback that is left internally by subscribers for an account's locations.
https://api.feedbackapi.com/v1.3/feedback
Unique identifier for the review.
Time at which the object was created. Represented as an ISO 8601 formatted timestamp.
Currently one of three types - star-rating
, nps
or csat
The nps score (0 - 10) left if the type of feedback was nps
.
The star rating (1 - 5) left if the type of feedback was star-rating
.
Whether the respondent was happy / unhappy if the type of feedback was happy
.
Comments left by the subscriber if negative feedback has been left.
The platform link that was clicked, if available.
The ID of the subscriber who left feedback if available.
The name of the subscriber who left feedback if available.
The email address of the subscriber who left feedback if available.
The location ID that the feedback belongs to
The campaign ID that generated the feedback request if available.
The campaign step ID that generated the feedback request if available.
{"id":"gd7TdO","created":1732060800,"type":"nps","nps-score":8,"star-rating":null,"happy":null,"comments":null,"platform_name":"The Review Site","subscriber":"pl6R4s","subscriber_name":"John Doe","subscriber_email":"johndoe@email.com","location":"pr64Ct","campaign":"gse4Ry","campaign_step":"dfar5V"}
https://api.feedbackapi.com/v1.3/feedback/gd7TdO \
-u example_api_token_12334:
{"id":"gd7TdO","created":1732060800,"type":"nps","nps-score":8,"star-rating":null,"happy":null,"comments":null,"platform_name":"The Review Site","subscriber":"pl6R4s","subscriber_name":"John Doe","subscriber_email":"johndoe@email.com","location":"pr64Ct","campaign":"gse4Ry","campaign_step":"dfar5V"}
Returns a list of feedback. Feedback is returned sorted by the creation date by default with the newest feedback appearing first.
A filter on the list based on the created field with this being the upper limit. The value is a string with an ISO 8601 timestamp
A filter on the list based on the created field with this being the lower limit. The value is a string with an ISO 8601 timestamp
A filter on the feedback types to return. Either star-rating
, nps
or happy
A filter on nps scores lesser than or equal to the supplied value, where the type of feedback is nps
. This value is an integer between 0 and 10.
A filter on nps scores greater than or equal to the supplied value, where the type of feedback is nps
. This value is an integer between 0 and 10.
A filter on star ratings lesser than or equal to the supplied value, where the type of feedback is star-rating
. This value is an integer between 1 and 5.
A filter on star ratings greater than or equal to the supplied value, where the type of feedback is star-rating
. This value is an integer between 1 and 5.
A filter on whether the respondent was happy / unhappy if the type of feedback was happy
. The value is a boolean representing happy by TRUE and unhappy by FALSE.
A filter on the ID of the subscriber who left feedback if available.
A filter on the location ID that the feedback belongs to.
A filter on the campaign ID that generated the feedback request.
A filter on the campaign step ID that generated the feedback request.
GET https://api.feedbackapi.com/v1.3/feedback
$ curl https://api.feedbackapi.com/v1.3/feedback?limit=20&created_after=1483228800 \
-u example_api_token_12334: \
-G
{"page":1,"total_count":3,"total_returned":3,"data":[{"id":"gse4Ry","created":1732060800,"type":"happy","nps-score":null,"star-rating":null,"happy":false,"comments":"I guess I was expecting more. A disappointing experience","platform_name":null,"subscriber":"ax34eW","subscriber_name":"Jane Doe","subscriber_email":"janedoe@email.com","location":"pr64Ct","campaign":"gse4Ry","campaign_step":"dfar5V"},{"id":"gd7TdO","created":1732060800,"type":"nps","nps-score":8,"star-rating":null,"happy":null,"comments":null,"platform_name":"The Review Site","subscriber":"pl6R4s","subscriber_name":"John Doe","subscriber_email":"johndoe@email.com","location":"pr64Ct","campaign":"gse4Ry","campaign_step":"dfar5V"},{"id":"dfar5V","created":1732060800,"type":"star-rating","nps-score":null,"star-rating":4,"happy":null,"comments":null,"platform_name":"Acme Reviews","subscriber":"vnsRE4","subscriber_name":"Ciro Marzio","subscriber_email":"ciro@email.com","location":"pr64Ct","campaign":"gse4Ry","campaign_step":"o4eWWf"}]}
Feedback request objects represent a stand-alone feedback request sent to a customer in your account. This is usually a text message or an email sent to request feedback and / or a review.
https://api.feedbackapi.com/v1.3/feedback-request
Unique identifier for the feedback request.
Time at which the object was created (i.e. when the request was made). Represented as an ISO 8601 formatted timestamp.
Scheduled time at which the feedback request is to be sent if not immediately. Represented as an ISO 8601 formatted timestamp.
Time at which the object was updated (i.e. when the request was responded to, a message opened or when feedback was left). Represented as an ISO 8601 formatted timestamp.
The ID of the subscriber who left feedback if available.
The ID of the message template used. Message template IDs can be found by signing into the app and heading to Campaigns > Message Templates.
The ID of the location to send feedback from.
The type of template that was sent, typically sms
or email
. If suppress_message was enabled then the type will be suppressed
.
Whether or not the message has been opened. Please note that open tracking is not available for SMS text messages.
Whether or not the link to the feedback page has been clicked.
Whether or not the message bounced (email only).
If a message bounced, what was the reason (email only).
Whether or not the recipient reported the message as spam (email only).
The unbranded feedback request landing page URL.
The branded feedback request landing page URL.
Any feedback left by the customer, represented as a Feedback
object.
{"id":"gd7TdO","created":1731974400,"due":1731974400,"updated":1732060800,"subscriber":"gse4Ry","template":"dfar5V","location":"re4SWf","type":"email","message_opened":true,"message_clicked":true,"message_bounced":false,"bounce_reason":null,"spam_complaint":false,"full_url":"https:\/\/feedback-url.com\/brA123\/","branded_url":"https:\/\/your-domain.com\/fb\/brA123\/","feedback":{"id":"gse4Ry","created":1732060800,"type":"happy","nps-score":null,"star-rating":null,"happy":false,"comments":"I guess I was expecting more. A disappointing experience","platform_name":null,"subscriber":"ax34eW","subscriber_name":"Jane Doe","subscriber_email":"janedoe@email.com","location":"pr64Ct","campaign":null,"campaign_step":null}}
To create a new stand-alone feedback request you create a feedback request object.
The ID of the subscriber to send the feedback request to.
The ID of the message template to be used. Message template IDs can be found by signing into the app and heading to Campaigns > Message Templates.
The ID of the location to send feedback from.
Scheduled time at which the feedback request is to be sent if not immediately. Represented as an ISO 8601 formatted timestamp.
A boolean value representing whether or not the feedback request messages should actually be sent. When set to true, the feedback request url will be generated but no messages will be sent to the user.
$ curl https://api.feedbackapi.com/v1.3/feedback-request/ \
-u example_api_token_12334: \
-d subscriber="gse4Ry" \
-d template="dfar5V"
{"id":"gd7TdO","created":1732060800,"due":1732060800,"updated":1732060800,"subscriber":"gse4Ry","template":"dfar5V","location":"re4SWf","type":"email","message_opened":false,"message_clicked":false,"message_bounced":false,"bounce_reason":null,"spam_complaint":false,"full_url":"https:\/\/feedback-url.com\/brA123\/","branded_url":"https:\/\/your-domain.com\/fb\/brA123\/","feedback":null}
https://api.feedbackapi.com/v1.3/feedback-request/gd7TdO \
-u example_api_token_12334:
{"id":"gd7TdO","created":1731974400,"due":1731974400,"updated":1732060800,"subscriber":"gse4Ry","template":"dfar5V","location":"re4SWf","type":"email","message_opened":true,"message_clicked":true,"message_bounced":false,"bounce_reason":null,"spam_complaint":false,"full_url":"https:\/\/feedback-url.com\/brA123\/","branded_url":"https:\/\/your-domain.com\/fb\/brA123\/","feedback":{"id":"gse4Ry","created":1732060800,"type":"happy","nps-score":null,"star-rating":null,"happy":false,"comments":"I guess I was expecting more. A disappointing experience","platform_name":null,"subscriber":"ax34eW","subscriber_name":"Jane Doe","subscriber_email":"janedoe@email.com","location":"pr64Ct","campaign":null,"campaign_step":null}}
Returns a list of stand-alone feedback requests. Feedback requests are returned sorted by the request creation date by default with the newest requests appearing first.
A filter on the list based on the created field with this being the upper limit. The value is a string with an ISO 8601 timestamp
A filter on the list based on the created field with this being the lower limit. The value is a string with an ISO 8601 timestamp
A filter on the list based on the due field with this being the upper limit. The value is a string with an ISO 8601 timestamp
A filter on the list based on the due field with this being the lower limit. The value is a string with an ISO 8601 timestamp
A filter on the list based on the updated field with this being the upper limit. The value is a string with an ISO 8601 timestamp
A filter on the list based on the updated field with this being the lower limit. The value is a string with an ISO 8601 timestamp
A filter on the ID of the subscriber the request was sent to.
A filter on the message template ID to return. Message template IDs can be found by signing into the app and heading to Campaigns > Message Templates.
A filter on the ID of the location feedback was sent from.
A boolean value representing whether the message sent was clicked.
A boolean value representing whether the link in the message was clicked.
Whether or not the message bounced (email only).
Whether or not the recipient reported the message as spam (email only).
GET https://api.feedbackapi.com/v1.3/feedback-request
$ curl https://api.feedbackapi.com/v1.3/feedback-request?limit=20&created_after=1546300800 \
-u example_api_token_12334: \
-G
{"page":1,"total_count":3,"total_returned":3,"data":[{"id":"gd7TdO","created":1731974400,"due":1731974400,"updated":1732060800,"subscriber":"gse4Ry","template":"dfar5V","location":"re4SWf","type":"email","message_opened":true,"message_clicked":true,"message_bounced":false,"bounce_reason":null,"spam_complaint":false,"full_url":"https:\/\/feedback-url.com\/brA123\/","branded_url":"https:\/\/your-domain.com\/fb\/brA123\/","feedback":{"id":"gse4Ry","created":1732060800,"type":"happy","nps-score":null,"star-rating":null,"happy":false,"comments":"I guess I was expecting more. A disappointing experience","platform_name":null,"subscriber":"ax34eW","subscriber_name":"Jane Doe","subscriber_email":"janedoe@email.com","location":"pr64Ct","campaign":null,"campaign_step":null}},{"id":"gd7TdO","created":1732060800,"due":1732060800,"updated":1732060800,"subscriber":"gse4Ry","template":"dfar5V","location":"re4SWf","type":"email","message_opened":false,"message_clicked":false,"message_bounced":false,"bounce_reason":null,"spam_complaint":false,"full_url":"https:\/\/feedback-url.com\/brA123\/","branded_url":"https:\/\/your-domain.com\/fb\/brA123\/","feedback":null},{"id":"gse4Ry","created":1731628800,"due":1731801600,"updated":1731801600,"subscriber":"pr64Ct","template":"iF56sC","location":"re4SWf","type":"sms","message_opened":true,"message_clicked":true,"message_bounced":false,"bounce_reason":null,"spam_complaint":false,"full_url":"https:\/\/feedback-url.com\/brA123\/","branded_url":"https:\/\/your-domain.com\/fb\/brA123\/","feedback":{"id":"dfar5V","created":1732060800,"type":"star-rating","nps-score":null,"star-rating":4,"happy":null,"comments":null,"platform_name":"Acme Reviews","subscriber":"vnsRE4","subscriber_name":"Ciro Marzio","subscriber_email":"ciro@email.com","location":"pr64Ct"}}]}
Account objects represent the companies or client accounts that you create and manage. The API allows you to create and update your client accounts in addition to making them inactive. You can retrieve individual account details as well as a list of all your accounts.
https://api.feedbackapi.com/v1.3/accounts
Unique identifier for the account.
Time at which the object was created. Represented as an ISO 8601 formatted timestamp.
The company or account name.
Whether the account is active or inactive.
The account's location limit. No value (null) represents unlimited locations.
The account's user limit. No value (null) represents unlimited users.
The account's campaign limit. No value (null) represents unlimited campaigns.
The account's monthly SMS limit. No value (null) represents unlimited SMS messages.
Total active locations attached to this account.
Total active client users.
{"id":"gd7TdO","created":1732060800,"name":"Savastano and Son","active":true,"max_locations":10,"max_users":3,"max_campaigns":1,"sms_allowance":100,"active_locations":5,"active_users":1}
To create a new client account you create an account object.
The company or account name.
A boolean value representing whether the account is active or inactive. Inactive accounts do not affect billing until they are made active.
What action consumers typically take with this company. Possible values are use
or visit
. This will affect how standard templates are written, for example "Thank you for visiting X"
or "Thank you for using X"
.
The id of an account template to use in creating this account.
The account's location limit. No value (null) represents unlimited locations.
The account's user limit. No value (null) represents unlimited users.
The account's campaign limit. No value (null) represents unlimited campaigns.
The account's monthly SMS limit. No value (null) represents unlimited SMS messages.
$ curl https://api.feedbackapi.com/v1.3/accounts/ \
-u example_api_token_12334: \
-d name="Savastano and Son" \
-d active=true \
-d verb="use"
{"id":"gd7TdO","created":1732060800,"name":"Savastano and Son","active":true,"max_locations":null,"max_users":null,"max_campaigns":null,"sms_allowance":null,"active_locations":0,"active_users":0}
https://api.feedbackapi.com/v1.3/accounts/gd7TdO \
-u example_api_token_12334:
{"id":"gd7TdO","created":1732060800,"name":"Savastano and Son","active":true,"max_locations":10,"max_users":3,"max_campaigns":1,"sms_allowance":100,"active_locations":5,"active_users":1}
Updates the specified cilent account by setting the values of the parameters passed. Any parameters not provided will be left unchanged. For example, if you pass the active parameter, you can toggle the account active or inactive.
This request accepts mostly the same arguments as the create account call.
The company or account name.
A boolean value representing whether the account is active or inactive. Inactive accounts do not affect billing until they are made active.
The account's location limit. No value (null) represents unlimited locations.
The account's user limit. No value (null) represents unlimited users.
The account's campaign limit. No value (null) represents unlimited campaigns.
The account's monthly SMS limit. No value (null) represents unlimited SMS messages.
POST https://api.feedbackapi.com/v1.3/accounts/{id}
$ curl https://api.feedbackapi.com/v1.3/accounts/gd7TdO \
-u example_api_token_12334: \
-d max_locations=100 \
-d sms_allowance="2000"
{"id":"gd7TdO","created":1732060800,"name":"Savastano and Son","active":true,"max_locations":100,"max_users":null,"max_campaigns":null,"sms_allowance":"2000","active_locations":0,"active_users":0}
Removes a client account. This will cancel all campaigns and messages for this account in addition to preventing landing pages and kiosk pages from working. If you wish to make an account inactive instead, please use the Update API call.
DELETE https://api.feedbackapi.com/v1.3/accounts/{id}
$ curl https://api.feedbackapi.com/v1.3/accounts/gd7TdO \
-u example_api_token_12334: \
-X DELETE
{"id":"gd7TdO","deleted":true}
Returns a list of your client accounts. The accounts are returned sorted by created date, with the most recently created accounts appearing first.
A filter on the list based on the created field with this being the upper limit. The value is a string with an ISO 8601 timestamp
A filter on the list based on the created field with this being the lower limit. The value is a string with an ISO 8601 timestamp
The company or account name.
A boolean value representing whether the account is active or inactive. Inactive accounts do not affect billing until they are made active.
GET https://api.feedbackapi.com/v1.3/accounts
$ curl https://api.feedbackapi.com/v1.3/accounts?limit=20&created_after=1483228800 \
-u example_api_token_12334: \
-G
{"page":1,"total_count":3,"total_returned":3,"data":[{"id":"gse4Ry","created":1732060800,"name":"Drogas la Rebaja","active":true,"max_locations":5,"max_users":10,"max_campaigns":3,"sms_allowance":2000,"active_locations":2,"active_users":4},{"id":"gd7TdO","created":1732060800,"name":"Savastano and Son","active":true,"max_locations":10,"max_users":3,"max_campaigns":1,"sms_allowance":100,"active_locations":5,"active_users":1},{"id":"dfar5V","created":1732060800,"name":"B613","active":true,"max_locations":1,"max_users":1,"max_campaigns":1,"sms_allowance":5000,"active_locations":1,"active_users":1}]}
User objects represent the users that belong to client accounts. The API allows you to create and retrieve user accounts in addition to making them inactive. You can retrieve individual user details as well as a list of all users on a client account.
https://api.feedbackapi.com/v1.3/users
Unique identifier for the user.
Time at which the object was created. Represented as an ISO 8601 formatted timestamp.
The user's name.
The user's email.
The user's account type. Possible values are standard
or restricted
.
The user's status. Possible values are active
or pending
if a user has not yet accepted their invite.
The time the user last signed into their account. Represented as an ISO 8601 formatted timestamp.
{"id":"gd7TdO","created":1731801600,"name":"Carol Baskin","email":"carol@wildcat.com","type":"standard","status":"active","last_access":1732060800}
To create a new user account you create a pending
user and generate an invite, but the invite must be accepted first before an active
user object will be created. The user will be prompted for their name and contact number on their first sign in.
$ curl https://api.feedbackapi.com/v1.3/users/ \
-u example_api_token_12334: \
-d email="rishi@uk.gov.uk" \
-d send_invite=true
{"email":"rishi@uk.gov.uk","type":"standard","status":"pending","invite_url":"https:\/\/reviews.yoururl.com\/invite?code=12345"}
https://api.feedbackapi.com/v1.3/users/gd7TdO \
-u example_api_token_12334:
{"id":"gd7TdO","created":1731801600,"name":"Carol Baskin","email":"carol@wildcat.com","type":"standard","status":"active","last_access":1732060800}
DELETE https://api.feedbackapi.com/v1.3/users/{id}
$ curl https://api.feedbackapi.com/v1.3/users/gd7TdO \
-u example_api_token_12334: \
-X DELETE
{"id":"gd7TdO","deleted":true}
Returns a list of your active user accounts. The accounts are returned sorted by created date, with the most recently created accounts appearing first. Pending accounts will not be included in the results returned.
A filter on the list based on the created field with this being the upper limit. The value is a string with an ISO 8601 timestamp.
A filter on the list based on the created field with this being the lower limit. The value is a string with an ISO 8601 timestamp.
The user's account type. Possible values are standard
and restricted
.
GET https://api.feedbackapi.com/v1.3/users
$ curl https://api.feedbackapi.com/v1.3/users?limit=20&created_after=1483228800 \
-u example_api_token_12334: \
-G
{"page":1,"total_count":3,"total_returned":3,"data":[{"id":"gse4Ry","created":1731801600,"name":"Captain Homelander","email":"info@theseven.com","type":"restricted","status":"active","last_access":1732060800},{"id":"gd7TdO","created":1731801600,"name":"Carol Baskin","email":"carol@wildcat.com","type":"standard","status":"active","last_access":1732060800},{"id":"dfar5V","created":1731801600,"name":"Bobby Axelrod","email":"robert@axcap.com","type":"standard","status":"active","last_access":false}]}