Create a Saved Query
curl --request POST \
--url https://prod-api.raisedonors.com/api/Query \
--header 'Authorization: <api-key>' \
--header 'Content-Type: application/json' \
--data '
{
"queryId": 123,
"name": "<string>",
"groups": [
{
"conditions": [
{
"parameter": "<string>",
"value": "<string>",
"secondaryValue": "<string>",
"values": [
"<string>"
]
}
]
}
],
"selectedColumns": [
"<string>"
]
}
'const options = {
method: 'POST',
headers: {Authorization: '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
queryId: 123,
name: '<string>',
groups: [
{
conditions: [
{
parameter: '<string>',
value: '<string>',
secondaryValue: '<string>',
values: ['<string>']
}
]
}
],
selectedColumns: ['<string>']
})
};
fetch('https://prod-api.raisedonors.com/api/Query', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://prod-api.raisedonors.com/api/Query"
payload = {
"queryId": 123,
"name": "<string>",
"groups": [{ "conditions": [
{
"parameter": "<string>",
"value": "<string>",
"secondaryValue": "<string>",
"values": ["<string>"]
}
] }],
"selectedColumns": ["<string>"]
}
headers = {
"Authorization": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)using RestSharp;
var options = new RestClientOptions("https://prod-api.raisedonors.com/api/Query");
var client = new RestClient(options);
var request = new RestRequest("");
request.AddHeader("Authorization", "<api-key>");
request.AddJsonBody("{\n \"queryId\": 123,\n \"name\": \"<string>\",\n \"groups\": [\n {\n \"conditions\": [\n {\n \"parameter\": \"<string>\",\n \"value\": \"<string>\",\n \"secondaryValue\": \"<string>\",\n \"values\": [\n \"<string>\"\n ]\n }\n ]\n }\n ],\n \"selectedColumns\": [\n \"<string>\"\n ]\n}", false);
var response = await client.PostAsync(request);
Console.WriteLine("{0}", response.Content);
<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://prod-api.raisedonors.com/api/Query",
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([
'queryId' => 123,
'name' => '<string>',
'groups' => [
[
'conditions' => [
[
'parameter' => '<string>',
'value' => '<string>',
'secondaryValue' => '<string>',
'values' => [
'<string>'
]
]
]
]
],
'selectedColumns' => [
'<string>'
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: <api-key>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}HttpResponse<String> response = Unirest.post("https://prod-api.raisedonors.com/api/Query")
.header("Authorization", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"queryId\": 123,\n \"name\": \"<string>\",\n \"groups\": [\n {\n \"conditions\": [\n {\n \"parameter\": \"<string>\",\n \"value\": \"<string>\",\n \"secondaryValue\": \"<string>\",\n \"values\": [\n \"<string>\"\n ]\n }\n ]\n }\n ],\n \"selectedColumns\": [\n \"<string>\"\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://prod-api.raisedonors.com/api/Query")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"queryId\": 123,\n \"name\": \"<string>\",\n \"groups\": [\n {\n \"conditions\": [\n {\n \"parameter\": \"<string>\",\n \"value\": \"<string>\",\n \"secondaryValue\": \"<string>\",\n \"values\": [\n \"<string>\"\n ]\n }\n ]\n }\n ],\n \"selectedColumns\": [\n \"<string>\"\n ]\n}"
response = http.request(request)
puts response.read_bodyconst url = 'https://prod-api.raisedonors.com/api/Query';
const options = {
method: 'POST',
headers: {Authorization: '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
queryId: 123,
name: '<string>',
groups: [
{
conditions: [
{
parameter: '<string>',
value: '<string>',
secondaryValue: '<string>',
values: ['<string>']
}
]
}
],
selectedColumns: ['<string>']
})
};
fetch(url, options)
.then(res => res.json())
.then(json => console.log(json))
.catch(err => console.error(err));{
"type": "https://tools.ietf.org/html/rfc7235#section-3.1",
"title": "Unauthorized",
"status": 401,
"detail": "The Authorization header is missing, malformed, or carries a token that is expired or revoked.",
"instance": "/api/Query"
}Query
Create a Saved Query
Saves a query so it can be reused.
POST
https://prod-api.raisedonors.com
/
api
/
Query
Create a Saved Query
curl --request POST \
--url https://prod-api.raisedonors.com/api/Query \
--header 'Authorization: <api-key>' \
--header 'Content-Type: application/json' \
--data '
{
"queryId": 123,
"name": "<string>",
"groups": [
{
"conditions": [
{
"parameter": "<string>",
"value": "<string>",
"secondaryValue": "<string>",
"values": [
"<string>"
]
}
]
}
],
"selectedColumns": [
"<string>"
]
}
'const options = {
method: 'POST',
headers: {Authorization: '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
queryId: 123,
name: '<string>',
groups: [
{
conditions: [
{
parameter: '<string>',
value: '<string>',
secondaryValue: '<string>',
values: ['<string>']
}
]
}
],
selectedColumns: ['<string>']
})
};
fetch('https://prod-api.raisedonors.com/api/Query', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://prod-api.raisedonors.com/api/Query"
payload = {
"queryId": 123,
"name": "<string>",
"groups": [{ "conditions": [
{
"parameter": "<string>",
"value": "<string>",
"secondaryValue": "<string>",
"values": ["<string>"]
}
] }],
"selectedColumns": ["<string>"]
}
headers = {
"Authorization": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)using RestSharp;
var options = new RestClientOptions("https://prod-api.raisedonors.com/api/Query");
var client = new RestClient(options);
var request = new RestRequest("");
request.AddHeader("Authorization", "<api-key>");
request.AddJsonBody("{\n \"queryId\": 123,\n \"name\": \"<string>\",\n \"groups\": [\n {\n \"conditions\": [\n {\n \"parameter\": \"<string>\",\n \"value\": \"<string>\",\n \"secondaryValue\": \"<string>\",\n \"values\": [\n \"<string>\"\n ]\n }\n ]\n }\n ],\n \"selectedColumns\": [\n \"<string>\"\n ]\n}", false);
var response = await client.PostAsync(request);
Console.WriteLine("{0}", response.Content);
<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://prod-api.raisedonors.com/api/Query",
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([
'queryId' => 123,
'name' => '<string>',
'groups' => [
[
'conditions' => [
[
'parameter' => '<string>',
'value' => '<string>',
'secondaryValue' => '<string>',
'values' => [
'<string>'
]
]
]
]
],
'selectedColumns' => [
'<string>'
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: <api-key>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}HttpResponse<String> response = Unirest.post("https://prod-api.raisedonors.com/api/Query")
.header("Authorization", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"queryId\": 123,\n \"name\": \"<string>\",\n \"groups\": [\n {\n \"conditions\": [\n {\n \"parameter\": \"<string>\",\n \"value\": \"<string>\",\n \"secondaryValue\": \"<string>\",\n \"values\": [\n \"<string>\"\n ]\n }\n ]\n }\n ],\n \"selectedColumns\": [\n \"<string>\"\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://prod-api.raisedonors.com/api/Query")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"queryId\": 123,\n \"name\": \"<string>\",\n \"groups\": [\n {\n \"conditions\": [\n {\n \"parameter\": \"<string>\",\n \"value\": \"<string>\",\n \"secondaryValue\": \"<string>\",\n \"values\": [\n \"<string>\"\n ]\n }\n ]\n }\n ],\n \"selectedColumns\": [\n \"<string>\"\n ]\n}"
response = http.request(request)
puts response.read_bodyconst url = 'https://prod-api.raisedonors.com/api/Query';
const options = {
method: 'POST',
headers: {Authorization: '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
queryId: 123,
name: '<string>',
groups: [
{
conditions: [
{
parameter: '<string>',
value: '<string>',
secondaryValue: '<string>',
values: ['<string>']
}
]
}
],
selectedColumns: ['<string>']
})
};
fetch(url, options)
.then(res => res.json())
.then(json => console.log(json))
.catch(err => console.error(err));{
"type": "https://tools.ietf.org/html/rfc7235#section-3.1",
"title": "Unauthorized",
"status": 401,
"detail": "The Authorization header is missing, malformed, or carries a token that is expired or revoked.",
"instance": "/api/Query"
}Send a
name, the queryType it runs against, the groups of conditions, and the selectedColumns to return.
Call Get Query Options first to see which parameters and operators the query type supports.
The spec does not document error responses for this endpoint beyond
401, so the causes aren’t listed with the responses here. Errors still arrive in the ProblemDetails envelope the rest of the Raise API uses — handle a rejected request (400), and a path ID that doesn’t resolve (404), as you would on any other endpoint.Authorizations
JWT Authorization header using the Bearer scheme. Example: "Authorization: Bearer {token}"
Body
application/jsontext/jsonapplication/*+json
The query details to create.
The unique identifier of the saved query.
The name of the saved query.
The type of record the query returns, such as Donor or Gift.
Available options:
0, 1, 2, 3, 4, 5, 6, 7, 8, 9 The groups of conditions that make up the query. Groups are combined by each group's conjunct.
Show child attributes
Show child attributes
The result columns the query returns.
Response
OK
Last modified on July 28, 2026
Was this page helpful?
⌘I