Introduction
Public API for isiQuest external clients (v1).
This documentation aims to provide all the information you need to work with our API.
<aside>As you scroll, you'll see code examples for working with the API in different programming languages in the dark area to the right (or as part of the content on mobile).
You can switch the language used with the tabs at the top right (or from the nav menu at the top left on mobile).</aside>
Authenticating requests
To authenticate requests, include an Authorization header with the value "Bearer {YOUR_AUTH_KEY}".
All authenticated endpoints are marked with a requires authentication badge in the documentation below.
Your API token is provided by isiQuest when your integration is set up.
Endpoints
Check API availability.
Returns a simple status payload confirming the external API is reachable. Reference example endpoint for the API documentation setup.
Example request:
curl --request GET \
--get "https://developpers.isiquest.com/api/v1/health" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"https://developpers.isiquest.com/api/v1/health"
);
const headers = {
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());Example response (200):
{
"status": "ok",
"version": "v1"
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Questionnaires
List questionnaires. Returns a paginated list of questionnaires available to the authenticated client.
requires authentication
Example request:
curl --request GET \
--get "https://developpers.isiquest.com/api/v1/questionnaires?page=1&per_page=20&status=active" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"https://developpers.isiquest.com/api/v1/questionnaires"
);
const params = {
"page": "1",
"per_page": "20",
"status": "active",
};
Object.keys(params)
.forEach(key => url.searchParams.append(key, params[key]));
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());Example response (200):
{
"data": [
{
"id": 101,
"title": "Employee engagement 2026",
"status": "active",
"responses_count": 243
},
{
"id": 102,
"title": "Customer satisfaction Q1",
"status": "closed",
"responses_count": 1890
}
],
"meta": {
"page": 1,
"per_page": 20,
"total": 2
}
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Retrieve a questionnaire. Returns the full detail of a single questionnaire, including its questions.
requires authentication
Example request:
curl --request GET \
--get "https://developpers.isiquest.com/api/v1/questionnaires/101" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"https://developpers.isiquest.com/api/v1/questionnaires/101"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());Example response (200):
{
"id": 101,
"title": "Employee engagement 2026",
"status": "active",
"language": "fr",
"questions": [
{
"id": 1,
"type": "single_choice",
"label": "How satisfied are you?"
},
{
"id": 2,
"type": "open",
"label": "What would you improve?"
}
]
}
Example response (404):
{
"message": "Questionnaire not found."
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Create a questionnaire. Creates a new questionnaire in draft status.
requires authentication
Example request:
curl --request POST \
"https://developpers.isiquest.com/api/v1/questionnaires" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"title\": \"New onboarding survey\",
\"language\": \"fr\",
\"max_voters\": 500
}"
const url = new URL(
"https://developpers.isiquest.com/api/v1/questionnaires"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
};
let body = {
"title": "New onboarding survey",
"language": "fr",
"max_voters": 500
};
fetch(url, {
method: "POST",
headers,
body: JSON.stringify(body),
}).then(response => response.json());Example response (201):
{
"id": 103,
"title": "New onboarding survey",
"status": "draft",
"language": "fr"
}
Example response (422):
{
"message": "The title field is required.",
"errors": {
"title": [
"The title field is required."
]
}
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Responses
List questionnaire responses. Returns the individual responses submitted for a given questionnaire.
requires authentication
Example request:
curl --request GET \
--get "https://developpers.isiquest.com/api/v1/questionnaires/101/responses?since=2026-01-01" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"https://developpers.isiquest.com/api/v1/questionnaires/101/responses"
);
const params = {
"since": "2026-01-01",
};
Object.keys(params)
.forEach(key => url.searchParams.append(key, params[key]));
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());Example response (200):
{
"data": [
{
"response_id": "r_8812",
"submitted_at": "2026-02-14T10:03:00Z",
"completed": true
},
{
"response_id": "r_8813",
"submitted_at": "2026-02-14T11:20:00Z",
"completed": false
}
],
"meta": {
"total": 2
}
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Submit a response. Submits a completed response to a questionnaire on behalf of a respondent.
requires authentication
Example request:
curl --request POST \
"https://developpers.isiquest.com/api/v1/questionnaires/101/responses" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"respondent_email\": \"jane@example.com\",
\"answers\": {
\"1\": \"Very satisfied\",
\"2\": \"Faster onboarding\"
}
}"
const url = new URL(
"https://developpers.isiquest.com/api/v1/questionnaires/101/responses"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
};
let body = {
"respondent_email": "jane@example.com",
"answers": {
"1": "Very satisfied",
"2": "Faster onboarding"
}
};
fetch(url, {
method: "POST",
headers,
body: JSON.stringify(body),
}).then(response => response.json());Example response (201):
{
"response_id": "r_8900",
"questionnaire_id": 101,
"status": "recorded"
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.