Team Features
Invite multiple past participants
Batch invite past participants to a new project. Send invitations to multiple participants in a single request for efficient re-engagement.
PUT
/
v1
/
team-respondents
/
batch-invite
Invite multiple past participants
curl --request PUT \
--url https://api-staging.respondent.io/v1/team-respondents/batch-invite \
--header 'Content-Type: application/json' \
--data '
{
"projectId": "<string>",
"participants": [
{
"profileId": "<string>",
"skipScreenerQuestions": true
}
],
"message": "<string>"
}
'import requests
url = "https://api-staging.respondent.io/v1/team-respondents/batch-invite"
payload = {
"projectId": "<string>",
"participants": [
{
"profileId": "<string>",
"skipScreenerQuestions": True
}
],
"message": "<string>"
}
headers = {"Content-Type": "application/json"}
response = requests.put(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PUT',
headers: {'Content-Type': 'application/json'},
body: JSON.stringify({
projectId: '<string>',
participants: [{profileId: '<string>', skipScreenerQuestions: true}],
message: '<string>'
})
};
fetch('https://api-staging.respondent.io/v1/team-respondents/batch-invite', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api-staging.respondent.io/v1/team-respondents/batch-invite",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PUT",
CURLOPT_POSTFIELDS => json_encode([
'projectId' => '<string>',
'participants' => [
[
'profileId' => '<string>',
'skipScreenerQuestions' => true
]
],
'message' => '<string>'
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api-staging.respondent.io/v1/team-respondents/batch-invite"
payload := strings.NewReader("{\n \"projectId\": \"<string>\",\n \"participants\": [\n {\n \"profileId\": \"<string>\",\n \"skipScreenerQuestions\": true\n }\n ],\n \"message\": \"<string>\"\n}")
req, _ := http.NewRequest("PUT", url, payload)
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.put("https://api-staging.respondent.io/v1/team-respondents/batch-invite")
.header("Content-Type", "application/json")
.body("{\n \"projectId\": \"<string>\",\n \"participants\": [\n {\n \"profileId\": \"<string>\",\n \"skipScreenerQuestions\": true\n }\n ],\n \"message\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api-staging.respondent.io/v1/team-respondents/batch-invite")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Put.new(url)
request["Content-Type"] = 'application/json'
request.body = "{\n \"projectId\": \"<string>\",\n \"participants\": [\n {\n \"profileId\": \"<string>\",\n \"skipScreenerQuestions\": true\n }\n ],\n \"message\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"invitations": [
{
"id": "<string>",
"createdAt": "2023-11-07T05:31:56Z",
"profileId": "<string>",
"userId": "<string>",
"organizationId": "<string>",
"teamId": "<string>",
"projectId": "<string>",
"senderId": "<string>",
"message": "<string>",
"skipScreenerQuestions": true,
"profile": {
"id": "<string>",
"firstName": "<string>",
"lastName": "<string>"
},
"project": {
"id": "<string>",
"name": "<string>",
"inviteCode": "<string>",
"incentive": 123
},
"eventUid": "<string>",
"remoteCommunicationDetails": "<string>",
"updatedAt": "2023-11-07T05:31:56Z"
}
],
"skipped": [
{
"profileId": "<string>",
"skipScreenerQuestions": true
}
]
}Body
application/json
Response
200 - application/json
Hide child attributes
Hide child attributes
Last modified on March 18, 2026
Was this page helpful?
Previous
View credit and incentive balanceView your organization's current credit and incentive balance. Use this to check available funds before creating or publishing projects.
Next
⌘I
Invite multiple past participants
curl --request PUT \
--url https://api-staging.respondent.io/v1/team-respondents/batch-invite \
--header 'Content-Type: application/json' \
--data '
{
"projectId": "<string>",
"participants": [
{
"profileId": "<string>",
"skipScreenerQuestions": true
}
],
"message": "<string>"
}
'import requests
url = "https://api-staging.respondent.io/v1/team-respondents/batch-invite"
payload = {
"projectId": "<string>",
"participants": [
{
"profileId": "<string>",
"skipScreenerQuestions": True
}
],
"message": "<string>"
}
headers = {"Content-Type": "application/json"}
response = requests.put(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PUT',
headers: {'Content-Type': 'application/json'},
body: JSON.stringify({
projectId: '<string>',
participants: [{profileId: '<string>', skipScreenerQuestions: true}],
message: '<string>'
})
};
fetch('https://api-staging.respondent.io/v1/team-respondents/batch-invite', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api-staging.respondent.io/v1/team-respondents/batch-invite",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PUT",
CURLOPT_POSTFIELDS => json_encode([
'projectId' => '<string>',
'participants' => [
[
'profileId' => '<string>',
'skipScreenerQuestions' => true
]
],
'message' => '<string>'
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api-staging.respondent.io/v1/team-respondents/batch-invite"
payload := strings.NewReader("{\n \"projectId\": \"<string>\",\n \"participants\": [\n {\n \"profileId\": \"<string>\",\n \"skipScreenerQuestions\": true\n }\n ],\n \"message\": \"<string>\"\n}")
req, _ := http.NewRequest("PUT", url, payload)
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.put("https://api-staging.respondent.io/v1/team-respondents/batch-invite")
.header("Content-Type", "application/json")
.body("{\n \"projectId\": \"<string>\",\n \"participants\": [\n {\n \"profileId\": \"<string>\",\n \"skipScreenerQuestions\": true\n }\n ],\n \"message\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api-staging.respondent.io/v1/team-respondents/batch-invite")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Put.new(url)
request["Content-Type"] = 'application/json'
request.body = "{\n \"projectId\": \"<string>\",\n \"participants\": [\n {\n \"profileId\": \"<string>\",\n \"skipScreenerQuestions\": true\n }\n ],\n \"message\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"invitations": [
{
"id": "<string>",
"createdAt": "2023-11-07T05:31:56Z",
"profileId": "<string>",
"userId": "<string>",
"organizationId": "<string>",
"teamId": "<string>",
"projectId": "<string>",
"senderId": "<string>",
"message": "<string>",
"skipScreenerQuestions": true,
"profile": {
"id": "<string>",
"firstName": "<string>",
"lastName": "<string>"
},
"project": {
"id": "<string>",
"name": "<string>",
"inviteCode": "<string>",
"incentive": 123
},
"eventUid": "<string>",
"remoteCommunicationDetails": "<string>",
"updatedAt": "2023-11-07T05:31:56Z"
}
],
"skipped": [
{
"profileId": "<string>",
"skipScreenerQuestions": true
}
]
}