curl --request POST \
--url https://api.rallyuxr.com/api/public/v1/participant-status-events/search \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"from": "2025-01-01T00:00:00Z",
"to": "2025-01-02T00:00:00Z",
"filter": {
"studyIds": [
"<string>"
],
"teamIds": [
"<string>"
],
"studyTypes": [],
"studyStatuses": []
},
"pageInfo": {
"size": 10
}
}
'import requests
url = "https://api.rallyuxr.com/api/public/v1/participant-status-events/search"
payload = {
"from": "2025-01-01T00:00:00Z",
"to": "2025-01-02T00:00:00Z",
"filter": {
"studyIds": ["<string>"],
"teamIds": ["<string>"],
"studyTypes": [],
"studyStatuses": []
},
"pageInfo": { "size": 10 }
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
from: '2025-01-01T00:00:00Z',
to: '2025-01-02T00:00:00Z',
filter: {
studyIds: ['<string>'],
teamIds: ['<string>'],
studyTypes: [],
studyStatuses: []
},
pageInfo: {size: 10}
})
};
fetch('https://api.rallyuxr.com/api/public/v1/participant-status-events/search', 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.rallyuxr.com/api/public/v1/participant-status-events/search",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'from' => '2025-01-01T00:00:00Z',
'to' => '2025-01-02T00:00:00Z',
'filter' => [
'studyIds' => [
'<string>'
],
'teamIds' => [
'<string>'
],
'studyTypes' => [
],
'studyStatuses' => [
]
],
'pageInfo' => [
'size' => 10
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"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.rallyuxr.com/api/public/v1/participant-status-events/search"
payload := strings.NewReader("{\n \"from\": \"2025-01-01T00:00:00Z\",\n \"to\": \"2025-01-02T00:00:00Z\",\n \"filter\": {\n \"studyIds\": [\n \"<string>\"\n ],\n \"teamIds\": [\n \"<string>\"\n ],\n \"studyTypes\": [],\n \"studyStatuses\": []\n },\n \"pageInfo\": {\n \"size\": 10\n }\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
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.post("https://api.rallyuxr.com/api/public/v1/participant-status-events/search")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"from\": \"2025-01-01T00:00:00Z\",\n \"to\": \"2025-01-02T00:00:00Z\",\n \"filter\": {\n \"studyIds\": [\n \"<string>\"\n ],\n \"teamIds\": [\n \"<string>\"\n ],\n \"studyTypes\": [],\n \"studyStatuses\": []\n },\n \"pageInfo\": {\n \"size\": 10\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.rallyuxr.com/api/public/v1/participant-status-events/search")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"from\": \"2025-01-01T00:00:00Z\",\n \"to\": \"2025-01-02T00:00:00Z\",\n \"filter\": {\n \"studyIds\": [\n \"<string>\"\n ],\n \"teamIds\": [\n \"<string>\"\n ],\n \"studyTypes\": [],\n \"studyStatuses\": []\n },\n \"pageInfo\": {\n \"size\": 10\n }\n}"
response = http.request(request)
puts response.read_body{
"results": [
{
"id": "<string>",
"participantId": "<string>",
"personId": "<string>",
"studyId": "<string>",
"changedBy": "<string>",
"changedAt": "2023-11-07T05:31:56Z"
}
],
"total": 123,
"pageInfo": {
"hasNextPage": true,
"hasPreviousPage": true,
"startCursor": "<string>",
"endCursor": "<string>"
}
}{
"errors": [
{
"message": "<string>",
"path": [
"<string>"
]
}
]
}"Unauthorized""Forbidden""Too Many Requests""Internal Server Error"Get a paginated list of participant status-change events.
Get a time-windowed, cursor-paginated list of participant status-change events across your workspace. Poll this endpoint with a moving time window to keep an external system in sync with participant status transitions.
curl --request POST \
--url https://api.rallyuxr.com/api/public/v1/participant-status-events/search \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"from": "2025-01-01T00:00:00Z",
"to": "2025-01-02T00:00:00Z",
"filter": {
"studyIds": [
"<string>"
],
"teamIds": [
"<string>"
],
"studyTypes": [],
"studyStatuses": []
},
"pageInfo": {
"size": 10
}
}
'import requests
url = "https://api.rallyuxr.com/api/public/v1/participant-status-events/search"
payload = {
"from": "2025-01-01T00:00:00Z",
"to": "2025-01-02T00:00:00Z",
"filter": {
"studyIds": ["<string>"],
"teamIds": ["<string>"],
"studyTypes": [],
"studyStatuses": []
},
"pageInfo": { "size": 10 }
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
from: '2025-01-01T00:00:00Z',
to: '2025-01-02T00:00:00Z',
filter: {
studyIds: ['<string>'],
teamIds: ['<string>'],
studyTypes: [],
studyStatuses: []
},
pageInfo: {size: 10}
})
};
fetch('https://api.rallyuxr.com/api/public/v1/participant-status-events/search', 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.rallyuxr.com/api/public/v1/participant-status-events/search",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'from' => '2025-01-01T00:00:00Z',
'to' => '2025-01-02T00:00:00Z',
'filter' => [
'studyIds' => [
'<string>'
],
'teamIds' => [
'<string>'
],
'studyTypes' => [
],
'studyStatuses' => [
]
],
'pageInfo' => [
'size' => 10
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"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.rallyuxr.com/api/public/v1/participant-status-events/search"
payload := strings.NewReader("{\n \"from\": \"2025-01-01T00:00:00Z\",\n \"to\": \"2025-01-02T00:00:00Z\",\n \"filter\": {\n \"studyIds\": [\n \"<string>\"\n ],\n \"teamIds\": [\n \"<string>\"\n ],\n \"studyTypes\": [],\n \"studyStatuses\": []\n },\n \"pageInfo\": {\n \"size\": 10\n }\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
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.post("https://api.rallyuxr.com/api/public/v1/participant-status-events/search")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"from\": \"2025-01-01T00:00:00Z\",\n \"to\": \"2025-01-02T00:00:00Z\",\n \"filter\": {\n \"studyIds\": [\n \"<string>\"\n ],\n \"teamIds\": [\n \"<string>\"\n ],\n \"studyTypes\": [],\n \"studyStatuses\": []\n },\n \"pageInfo\": {\n \"size\": 10\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.rallyuxr.com/api/public/v1/participant-status-events/search")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"from\": \"2025-01-01T00:00:00Z\",\n \"to\": \"2025-01-02T00:00:00Z\",\n \"filter\": {\n \"studyIds\": [\n \"<string>\"\n ],\n \"teamIds\": [\n \"<string>\"\n ],\n \"studyTypes\": [],\n \"studyStatuses\": []\n },\n \"pageInfo\": {\n \"size\": 10\n }\n}"
response = http.request(request)
puts response.read_body{
"results": [
{
"id": "<string>",
"participantId": "<string>",
"personId": "<string>",
"studyId": "<string>",
"changedBy": "<string>",
"changedAt": "2023-11-07T05:31:56Z"
}
],
"total": 123,
"pageInfo": {
"hasNextPage": true,
"hasPreviousPage": true,
"startCursor": "<string>",
"endCursor": "<string>"
}
}{
"errors": [
{
"message": "<string>",
"path": [
"<string>"
]
}
]
}"Unauthorized""Forbidden""Too Many Requests""Internal Server Error"Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Body
Inclusive start of the time window (ISO 8601). Filters on when the status change occurred.
"2025-01-01T00:00:00Z"
Inclusive end of the time window (ISO 8601). Filters on when the status change occurred.
"2025-01-02T00:00:00Z"
Optional filters to narrow the participant status events
Show child attributes
Show child attributes
Pagination arguments. Use startCursor from the result of the endCursor of the response to get the next page. Pagination in reverse is not currently supported
Show child attributes
Show child attributes
{ "size": 10 }