Skip to main content
POST
/
participant-status-events
/
search
Get a paginated list of participant status-change events.
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

Authorization
string
header
required

Bearer authentication header of the form Bearer <token>, where <token> is your auth token.

Body

application/json
from
string<date-time>
required

Inclusive start of the time window (ISO 8601). Filters on when the status change occurred.

Example:

"2025-01-01T00:00:00Z"

to
string<date-time>
required

Inclusive end of the time window (ISO 8601). Filters on when the status change occurred.

Example:

"2025-01-02T00:00:00Z"

filter
object

Optional filters to narrow the participant status events

pageInfo
object

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

Example:
{ "size": 10 }

Response

The participant status-change events

results
object[]
required
total
number
required

The total number of items in your workspaces based on your search parameters

pageInfo
object
required

Information about the current page