Postman Integration Guide

Postman is a popular tool for testing and exploring APIs.
You can quickly get started with the Questback Public API by importing our predefined Postman collection.


πŸ“₯ Import the Postman CollectionCopied!

To get started:

  1. Open Postman.
  2. Click Import.
  3. Copy the Postman Collection Configuration below
  4. Then Paste the Postman Collection Configuration into the textbox in postman (alternative; Save the Postman Collection Configuration to file and drop the file into postman)

Postman Collection Configuration:

{
	"info": {
		"_postman_id": "8752db1b-f9e2-46ca-9661-fb0dd585eb65",
		"name": "Questback External API",
		"description": "Overview of endpoints for Questback External Api.\n\nUsing OAuth 2.0 as authentication.\n\n\\- ClientId and ClientSecret required.  \n\\* Under the 'Authorization' tab, fill in client information in the corresponding fields.  \n\\* Then Click button 'Get New Access Token' to create a new token.  \n\\* In the Token dropdown select 'Questback API'  \n\\- You are ready to try out the endpoints. Tip! Start with 'Quests-List'\n\nExternal Documentation [https://apidocs.questback.com/](https://apidocs.questback.com/)",
		"schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json",
		"_exporter_id": "12336968",
		"_collection_link": "https://questback-dev.postman.co/workspace/Questback-R%2526D~62abf94d-7bff-4a63-8294-c150f2af7b08/collection/12336968-8752db1b-f9e2-46ca-9661-fb0dd585eb65?action=share&source=collection_link&creator=12336968"
	},
	"item": [
		{
			"name": "Quests-List",
			"request": {
				"method": "GET",
				"header": [],
				"url": {
					"raw": "https://api.questback.com/v1/quests?skip=0&take=100",
					"protocol": "https",
					"host": [
						"api",
						"questback",
						"com"
					],
					"path": [
						"v1",
						"quests"
					],
					"query": [
						{
							"key": "skip",
							"value": "0"
						},
						{
							"key": "take",
							"value": "100"
						}
					]
				}
			},
			"response": []
		},
		{
			"name": "Quests-Information",
			"request": {
				"method": "GET",
				"header": [],
				"url": {
					"raw": "https://api.questback.com/v1/quests/{{quest_id}}",
					"protocol": "https",
					"host": [
						"api",
						"questback",
						"com"
					],
					"path": [
						"v1",
						"quests",
						"{{quest_id}}"
					]
				}
			},
			"response": []
		},
		{
			"name": "Quests-QuestionsList",
			"request": {
				"method": "GET",
				"header": [],
				"url": {
					"raw": "https://api.questback.com/v1/quests/{{quest_id}}/questions/?skip=0&take|=1000",
					"protocol": "https",
					"host": [
						"api",
						"questback",
						"com"
					],
					"path": [
						"v1",
						"quests",
						"{{quest_id}}",
						"questions",
						""
					],
					"query": [
						{
							"key": "skip",
							"value": "0"
						},
						{
							"key": "take|",
							"value": "1000"
						}
					]
				}
			},
			"response": []
		},
		{
			"name": "RespondentDataFields-List",
			"request": {
				"method": "GET",
				"header": [],
				"url": {
					"raw": "https://api.questback.com/v1/quests/{{quest_id}}/respondentdatafields/?skip=0&take=1000",
					"protocol": "https",
					"host": [
						"api",
						"questback",
						"com"
					],
					"path": [
						"v1",
						"quests",
						"{{quest_id}}",
						"respondentdatafields",
						""
					],
					"query": [
						{
							"key": "skip",
							"value": "0"
						},
						{
							"key": "take",
							"value": "1000"
						}
					]
				}
			},
			"response": []
		},
		{
			"name": "RespondentDataFields-DiscreteValuesList",
			"request": {
				"method": "GET",
				"header": [],
				"url": {
					"raw": "https://api.questback.com/v1/quests/{{quest_id}}/respondentdatafields/{{field_id}}/values?skip=0&take=1000",
					"protocol": "https",
					"host": [
						"api",
						"questback",
						"com"
					],
					"path": [
						"v1",
						"quests",
						"{{quest_id}}",
						"respondentdatafields",
						"{{field_id}}",
						"values"
					],
					"query": [
						{
							"key": "skip",
							"value": "0"
						},
						{
							"key": "take",
							"value": "1000"
						}
					]
				}
			},
			"response": []
		},
		{
			"name": "Invitations-Information",
			"request": {
				"method": "GET",
				"header": [],
				"url": {
					"raw": "https://api.questback.com/v1/quests/{{quest_id}}/invitations/{{invitation_id}}",
					"protocol": "https",
					"host": [
						"api",
						"questback",
						"com"
					],
					"path": [
						"v1",
						"quests",
						"{{quest_id}}",
						"invitations",
						"{{invitation_id}}"
					]
				}
			},
			"response": []
		},
		{
			"name": "Invitations-List",
			"request": {
				"method": "GET",
				"header": [],
				"url": {
					"raw": "https://api.questback.com/v1/quests/{{quest_id}}/invitations?skip=0&take=1000",
					"protocol": "https",
					"host": [
						"api",
						"questback",
						"com"
					],
					"path": [
						"v1",
						"quests",
						"{{quest_id}}",
						"invitations"
					],
					"query": [
						{
							"key": "skip",
							"value": "0"
						},
						{
							"key": "take",
							"value": "1000"
						}
					]
				}
			},
			"response": []
		},
		{
			"name": "Invitations-ImportAndSend",
			"request": {
				"method": "POST",
				"header": [],
				"body": {
					"mode": "raw",
					"raw": "{\r\n  \"languageCode\": \"en-GB\",\r\n  \"allowDuplicates\": true,\r\n  \"invitations\": [\r\n    {\r\n      \"respondent\": {\r\n        \"EMAIL\": \"test1@example.com\"\r\n      }\r\n    },\r\n    {\r\n      \"respondent\": {\r\n        \"EMAIL\": \"test2@example.com\"\r\n      }\r\n    }\r\n  ]\r\n}\r\n",
					"options": {
						"raw": {
							"language": "json"
						}
					}
				},
				"url": {
					"raw": "https://api.questback.com/v1/quests/{{quest_id}}/invitations",
					"protocol": "https",
					"host": [
						"api",
						"questback",
						"com"
					],
					"path": [
						"v1",
						"quests",
						"{{quest_id}}",
						"invitations"
					]
				}
			},
			"response": [
				{
					"name": "WithRespondentData",
					"originalRequest": {
						"method": "POST",
						"header": [],
						"body": {
							"mode": "raw",
							"raw": "{\r\n  \"languageCode\": \"en-GB\",\r\n  \"allowDuplicates\": true,\r\n  \"invitations\": [\r\n    {\r\n      \"respondent\": {\r\n        \"email\": \"test@example.com\"\r\n      }\r\n    },\r\n    {\r\n      \"respondent\": {\r\n        \"email\": \"test@example.com\"\r\n      },\r\n      \"respondentData\": {       \r\n        \"name\": \"Joe Doe\"\r\n      }\r\n    }\r\n  ]\r\n}\r\n",
							"options": {
								"raw": {
									"language": "json"
								}
							}
						},
						"url": {
							"raw": "{{api_base_url}}/{{api_version}}/quests/{{quest_id}}/invitations",
							"host": [
								"{{api_base_url}}"
							],
							"path": [
								"{{api_version}}",
								"quests",
								"{{quest_id}}",
								"invitations"
							]
						}
					},
					"_postman_previewlanguage": "json",
					"header": [
						{
							"key": "Content-Type",
							"value": "application/json",
							"description": "",
							"type": "text"
						}
					],
					"cookie": [],
					"body": "{\r\n  \"languageCode\": \"en-GB\",\r\n  \"allowDuplicates\": true,\r\n  \"invitations\": [\r\n    {\r\n      \"respondent\": {\r\n        \"EMAIL\": \"test@example.com\"\r\n      },\r\n      \"respondentData\": {       \r\n        \"<RESPONDENTDATA_FIELDID1>\": \"<VALUE1>\",\r\n        \"<RESPONDENTDATA_FIELDID2>\": \"<VALUE2>\"\r\n      }\r\n    }\r\n  ]\r\n}\r\n"
				}
			]
		},
		{
			"name": "Invitations-ImportButDoNotSend",
			"request": {
				"method": "POST",
				"header": [],
				"body": {
					"mode": "raw",
					"raw": "{\r\n  \"languageCode\": \"en-GB\",\r\n  \"allowDuplicates\": true,\r\n  \"invitations\": [\r\n    {\r\n      \"respondent\": {\r\n        \"email\": \"test@example.com\"\r\n      }\r\n    },\r\n    {\r\n      \"respondent\": {\r\n        \"email\": \"test@example.com\"\r\n      }\r\n    }\r\n  ]\r\n}",
					"options": {
						"raw": {
							"language": "json"
						}
					}
				},
				"url": {
					"raw": "https://api.questback.com/v1/quests/{{quest_id}}/invitations/nodistribution",
					"protocol": "https",
					"host": [
						"api",
						"questback",
						"com"
					],
					"path": [
						"v1",
						"quests",
						"{{quest_id}}",
						"invitations",
						"nodistribution"
					]
				}
			},
			"response": []
		},
		{
			"name": "Invitations-ImportStatusForInvitationBatch",
			"request": {
				"method": "GET",
				"header": [],
				"url": {
					"raw": "https://api.questback.com/v1/quests/{{quest_id}}/invitations/status/{{batch_id}}",
					"protocol": "https",
					"host": [
						"api",
						"questback",
						"com"
					],
					"path": [
						"v1",
						"quests",
						"{{quest_id}}",
						"invitations",
						"status",
						"{{batch_id}}"
					]
				}
			},
			"response": []
		},
		{
			"name": "Invitations-RespondentDataList",
			"request": {
				"method": "GET",
				"header": [],
				"url": {
					"raw": "https://api.questback.com/v1/quests/{{quest_id}}/invitations/respondentData?skip=0&take=1000",
					"protocol": "https",
					"host": [
						"api",
						"questback",
						"com"
					],
					"path": [
						"v1",
						"quests",
						"{{quest_id}}",
						"invitations",
						"respondentData"
					],
					"query": [
						{
							"key": "skip",
							"value": "0"
						},
						{
							"key": "take",
							"value": "1000"
						}
					]
				}
			},
			"response": []
		},
		{
			"name": "Responses-List",
			"request": {
				"method": "GET",
				"header": [],
				"url": {
					"raw": "https://api.questback.com/v1/quests/{{quest_id}}/responses?skip=0&take=1000",
					"protocol": "https",
					"host": [
						"api",
						"questback",
						"com"
					],
					"path": [
						"v1",
						"quests",
						"{{quest_id}}",
						"responses"
					],
					"query": [
						{
							"key": "skip",
							"value": "0"
						},
						{
							"key": "take",
							"value": "1000"
						}
					]
				}
			},
			"response": []
		},
		{
			"name": "Responses-WithAnswersAndRespondentDataList",
			"request": {
				"method": "GET",
				"header": [],
				"url": {
					"raw": "https://api.questback.com/v1/quests/{{quest_id}}/responses/answers?skip=0&take=1000",
					"protocol": "https",
					"host": [
						"api",
						"questback",
						"com"
					],
					"path": [
						"v1",
						"quests",
						"{{quest_id}}",
						"responses",
						"answers"
					],
					"query": [
						{
							"key": "skip",
							"value": "0"
						},
						{
							"key": "take",
							"value": "1000"
						}
					]
				}
			},
			"response": []
		},
		{
			"name": "Responses-SingleQuestionAnswersList",
			"request": {
				"method": "GET",
				"header": [],
				"url": {
					"raw": "https://api.questback.com/v1/quests/{{quest_id}}/responses/questions/{{question_id}}/answers?skip=0&take=1000",
					"protocol": "https",
					"host": [
						"api",
						"questback",
						"com"
					],
					"path": [
						"v1",
						"quests",
						"{{quest_id}}",
						"responses",
						"questions",
						"{{question_id}}",
						"answers"
					],
					"query": [
						{
							"key": "skip",
							"value": "0"
						},
						{
							"key": "take",
							"value": "1000"
						},
						{
							"key": "since",
							"value": "2025-01-01T15:30:45.123Z",
							"disabled": true
						},
						{
							"key": "until",
							"value": "2025-05-01T15:30:45.123Z",
							"disabled": true
						}
					]
				}
			},
			"response": []
		},
		{
			"name": "Exports-InitiateDataExport",
			"request": {
				"method": "POST",
				"header": [],
				"body": {
					"mode": "raw",
					"raw": " {\r\n  \"settings\": {\r\n    \"exportType\": \"CSV\",\r\n    \"valueType\": \"ORDER_NUMBER\",\r\n    \"fieldSeparator\": \"PIPE\",\r\n    \"expandMultipleChoiceToColumns\": true,\r\n    \"includeRespondent\": false,\r\n    \"showOtherAsText\": false\r\n  },\r\n  \"filter\": {\r\n    \"since\": \"2000-01-01T00:00:00.000Z\",\r\n    \"until\": \"2045-12-31T23:59:59.999Z\"\r\n  }\r\n }\r\n",
					"options": {
						"raw": {
							"language": "json"
						}
					}
				},
				"url": {
					"raw": "https://api.questback.com/v1/quests/{{quest_id}}/exports",
					"protocol": "https",
					"host": [
						"api",
						"questback",
						"com"
					],
					"path": [
						"v1",
						"quests",
						"{{quest_id}}",
						"exports"
					]
				}
			},
			"response": []
		},
		{
			"name": "Exports-CheckDataExportStatus",
			"request": {
				"method": "GET",
				"header": [],
				"url": {
					"raw": "https://api.questback.com/v1/quests/{{quest_id}}/exports/{{export_id}}/status",
					"protocol": "https",
					"host": [
						"api",
						"questback",
						"com"
					],
					"path": [
						"v1",
						"quests",
						"{{quest_id}}",
						"exports",
						"{{export_id}}",
						"status"
					]
				}
			},
			"response": []
		},
		{
			"name": "Exports-DownloadDataExport",
			"request": {
				"method": "GET",
				"header": [],
				"url": {
					"raw": "https://api.questback.com/v1/quests/{{quest_id}}/exports/{{export_id}}/download",
					"protocol": "https",
					"host": [
						"api",
						"questback",
						"com"
					],
					"path": [
						"v1",
						"quests",
						"{{quest_id}}",
						"exports",
						"{{export_id}}",
						"download"
					]
				}
			},
			"response": []
		},
		{
			"name": "AccountOptouts-List",
			"request": {
				"method": "GET",
				"header": [],
				"url": {
					"raw": "https://api.questback.com/v1/account/optouts?skip=0&take=1000",
					"protocol": "https",
					"host": [
						"api",
						"questback",
						"com"
					],
					"path": [
						"v1",
						"account",
						"optouts"
					],
					"query": [
						{
							"key": "skip",
							"value": "0"
						},
						{
							"key": "take",
							"value": "1000"
						}
					]
				}
			},
			"response": []
		},
		{
			"name": "AccountOptouts-EmailOptoutStatus",
			"request": {
				"method": "GET",
				"header": [],
				"url": {
					"raw": "https://api.questback.com/v1/account/optouts/{{param_email}}",
					"protocol": "https",
					"host": [
						"api",
						"questback",
						"com"
					],
					"path": [
						"v1",
						"account",
						"optouts",
						"{{param_email}}"
					]
				}
			},
			"response": []
		},
		{
			"name": "AccountOptouts-AddOptedOutEmails",
			"request": {
				"method": "POST",
				"header": [],
				"body": {
					"mode": "raw",
					"raw": "{\r\n  \"emails\": [\r\n    \"test1@testback.com\",\r\n    \"test3@testback.com\"\r\n  ]\r\n}",
					"options": {
						"raw": {
							"language": "json"
						}
					}
				},
				"url": {
					"raw": "https://api.questback.com/v1/account/optouts/",
					"protocol": "https",
					"host": [
						"api",
						"questback",
						"com"
					],
					"path": [
						"v1",
						"account",
						"optouts",
						""
					]
				}
			},
			"response": []
		}
	],
	"auth": {
		"type": "oauth2",
		"oauth2": [
			{
				"key": "clientSecret",
				"value": "",
				"type": "string"
			},
			{
				"key": "clientId",
				"value": "",
				"type": "string"
			},
			{
				"key": "headerPrefix",
				"value": "Bearer",
				"type": "string"
			},
			{
				"key": "accessTokenUrl",
				"value": "https://auth.questback.com/oauth/v2/token",
				"type": "string"
			},
			{
				"key": "scope",
				"value": "urn:zitadel:iam:org:project:id:314876184947078893:aud",
				"type": "string"
			},
			{
				"key": "tokenName",
				"value": "QuestbackAPI",
				"type": "string"
			},
			{
				"key": "refreshRequestParams",
				"value": [],
				"type": "any"
			},
			{
				"key": "tokenRequestParams",
				"value": [],
				"type": "any"
			},
			{
				"key": "authRequestParams",
				"value": [],
				"type": "any"
			},
			{
				"key": "challengeAlgorithm",
				"value": "S256",
				"type": "string"
			},
			{
				"key": "grant_type",
				"value": "client_credentials",
				"type": "string"
			},
			{
				"key": "addTokenTo",
				"value": "header",
				"type": "string"
			},
			{
				"key": "client_authentication",
				"value": "header",
				"type": "string"
			}
		]
	},
	"event": [
		{
			"listen": "prerequest",
			"script": {
				"type": "text/javascript",
				"packages": {},
				"exec": [
					""
				]
			}
		},
		{
			"listen": "test",
			"script": {
				"type": "text/javascript",
				"packages": {},
				"exec": [
					""
				]
			}
		}
	],
	"variable": [
		{
			"key": "quest_id",
			"value": "",
			"type": "string"
		},
		{
			"key": "question_id",
			"value": "",
			"type": "string"
		},
		{
			"key": "field_id",
			"value": "",
			"type": "string"
		},
		{
			"key": "invitation_id",
			"value": "",
			"type": "string"
		},
		{
			"key": "export_id",
			"value": "",
			"type": "string"
		}
	]
}

This collection provides a set of ready-to-use requests for the Questback API.


πŸ” Configure CredentialsCopied!

After importing the collection:

  1. Click on the collection "Questback External API".

  2. Go to the "Authorization" tab.

  3. Set the following variables under "Configure New Token":

    • Client ID: Your API Client ID
    • Client Secret: Your API Client Secret

Contact your account owner or Questback support if you don’t have these credentials.


πŸš€ Get an Access Token AutomaticallyCopied!

To fetch a token and start making authenticated requests:

  1. Click the button "Get New Access Token":
  2. You should get a window with 'Authentication Complete' (Click button 'Proceed' for quick progress)
  3. In the "MANAGE ACCESS TOKENS" window click the button "Use Token"
    • Towards the top of the page the Token drop down will be set to the newly created token QuestbackAPI
  4. You are now ready to try out the endpoints.
    Tip! start with endpoint Quests-List

βš™οΈ Manual OAuth Setup (Optional)Copied!

You can also manually configure OAuth 2.0 for the collection:

Setting Value
Auth Type OAuth 2.0
Grant Type Client Credentials
Access Token URL https://auth.questback.com/oauth/v2/token
Scope urn:zitadel:iam:org:project:id:314876184947078893:aud
Client ID <YOUR_CLIENT_ID>
Client Secret <YOUR_CLIENT_SECRET>
Client Authentication Send as Basic Auth header

When this setup is used, you can skip using the Prerequisite: Update OAuth Access Token request.


βœ… Start TestingCopied!

Once you’ve setup the token generation under the Authorization tab, you can start exploring the Questback API using the provided requests.
πŸ’‘ Start with request Quests-List

For full endpoint documentation, visit the Questback API Reference.

Happy testing! πŸŽ‰