curl --request PUT \
--url https://prod-api.raisedonors.com/api/Project/{projectId}/update \
--header 'Authorization: <api-key>' \
--header 'Content-Type: application/json' \
--data '
{
"code": "<string>",
"name": "<string>",
"isActive": true,
"isAvailableOnline": true,
"isPublic": true,
"description": "<string>",
"sortOrder": 123,
"emailAddresses": "<string>",
"image": "<string>",
"isPinned": true,
"externalIdentifier": "<string>",
"impactData": "<string>",
"metadataFields": [
{
"name": "<string>",
"value": "<string>"
}
]
}
'const options = {
method: 'PUT',
headers: {Authorization: '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
code: '<string>',
name: '<string>',
isActive: true,
isAvailableOnline: true,
isPublic: true,
description: '<string>',
sortOrder: 123,
emailAddresses: '<string>',
image: '<string>',
isPinned: true,
externalIdentifier: '<string>',
impactData: '<string>',
metadataFields: [{name: '<string>', value: '<string>'}]
})
};
fetch('https://prod-api.raisedonors.com/api/Project/{projectId}/update', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://prod-api.raisedonors.com/api/Project/{projectId}/update"
payload = {
"code": "<string>",
"name": "<string>",
"isActive": True,
"isAvailableOnline": True,
"isPublic": True,
"description": "<string>",
"sortOrder": 123,
"emailAddresses": "<string>",
"image": "<string>",
"isPinned": True,
"externalIdentifier": "<string>",
"impactData": "<string>",
"metadataFields": [
{
"name": "<string>",
"value": "<string>"
}
]
}
headers = {
"Authorization": "<api-key>",
"Content-Type": "application/json"
}
response = requests.put(url, json=payload, headers=headers)
print(response.text)using RestSharp;
var options = new RestClientOptions("https://prod-api.raisedonors.com/api/Project/{projectId}/update");
var client = new RestClient(options);
var request = new RestRequest("");
request.AddHeader("Authorization", "<api-key>");
request.AddJsonBody("{\n \"code\": \"<string>\",\n \"name\": \"<string>\",\n \"isActive\": true,\n \"isAvailableOnline\": true,\n \"isPublic\": true,\n \"description\": \"<string>\",\n \"sortOrder\": 123,\n \"emailAddresses\": \"<string>\",\n \"image\": \"<string>\",\n \"isPinned\": true,\n \"externalIdentifier\": \"<string>\",\n \"impactData\": \"<string>\",\n \"metadataFields\": [\n {\n \"name\": \"<string>\",\n \"value\": \"<string>\"\n }\n ]\n}", false);
var response = await client.PutAsync(request);
Console.WriteLine("{0}", response.Content);
<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://prod-api.raisedonors.com/api/Project/{projectId}/update",
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([
'code' => '<string>',
'name' => '<string>',
'isActive' => true,
'isAvailableOnline' => true,
'isPublic' => true,
'description' => '<string>',
'sortOrder' => 123,
'emailAddresses' => '<string>',
'image' => '<string>',
'isPinned' => true,
'externalIdentifier' => '<string>',
'impactData' => '<string>',
'metadataFields' => [
[
'name' => '<string>',
'value' => '<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.put("https://prod-api.raisedonors.com/api/Project/{projectId}/update")
.header("Authorization", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"code\": \"<string>\",\n \"name\": \"<string>\",\n \"isActive\": true,\n \"isAvailableOnline\": true,\n \"isPublic\": true,\n \"description\": \"<string>\",\n \"sortOrder\": 123,\n \"emailAddresses\": \"<string>\",\n \"image\": \"<string>\",\n \"isPinned\": true,\n \"externalIdentifier\": \"<string>\",\n \"impactData\": \"<string>\",\n \"metadataFields\": [\n {\n \"name\": \"<string>\",\n \"value\": \"<string>\"\n }\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://prod-api.raisedonors.com/api/Project/{projectId}/update")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Put.new(url)
request["Authorization"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"code\": \"<string>\",\n \"name\": \"<string>\",\n \"isActive\": true,\n \"isAvailableOnline\": true,\n \"isPublic\": true,\n \"description\": \"<string>\",\n \"sortOrder\": 123,\n \"emailAddresses\": \"<string>\",\n \"image\": \"<string>\",\n \"isPinned\": true,\n \"externalIdentifier\": \"<string>\",\n \"impactData\": \"<string>\",\n \"metadataFields\": [\n {\n \"name\": \"<string>\",\n \"value\": \"<string>\"\n }\n ]\n}"
response = http.request(request)
puts response.read_bodyconst url = 'https://prod-api.raisedonors.com/api/Project/{projectId}/update';
const options = {
method: 'PUT',
headers: {Authorization: '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
code: '<string>',
name: '<string>',
isActive: true,
isAvailableOnline: true,
isPublic: true,
description: '<string>',
sortOrder: 123,
emailAddresses: '<string>',
image: '<string>',
isPinned: true,
externalIdentifier: '<string>',
impactData: '<string>',
metadataFields: [{name: '<string>', value: '<string>'}]
})
};
fetch(url, options)
.then(res => res.json())
.then(json => console.log(json))
.catch(err => console.error(err));{
"id": 3010,
"code": "GEN-OPS",
"isActive": true,
"isAvailableOnline": true,
"isPublic": true,
"isDeleted": false,
"name": "General Operating Support",
"description": "Unrestricted support for Riverside Hope programs.",
"sortOrder": 1,
"emailAddresses": "finance@riversidehope.example.org",
"metadataFields": [],
"image": null,
"isPinned": true,
"donorAmount": 902,
"giftAmount": 2418,
"createdDateTime": "2023-01-01T10:00:00Z",
"modifiedDateTime": "2025-11-15T08:00:00Z",
"raisedAmount": "$412,880.00",
"averageGiftAmount": "$170.75",
"firstGiftDate": "2023-01-04",
"lastGiftDate": "2025-11-15",
"isSystem": false,
"percentageRecurringGift": 38.4,
"externalIdentifier": "3010",
"impactData": null
}{
"type": "https://tools.ietf.org/html/rfc7231#section-6.5.1",
"title": "One or more validation errors occurred.",
"status": 400,
"errors": {
"code": [
"A project with this code already exists."
]
},
"instance": "/api/Project/3010/update"
}{
"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/Project/{projectId}/update"
}Update a Project
Updates a project.
curl --request PUT \
--url https://prod-api.raisedonors.com/api/Project/{projectId}/update \
--header 'Authorization: <api-key>' \
--header 'Content-Type: application/json' \
--data '
{
"code": "<string>",
"name": "<string>",
"isActive": true,
"isAvailableOnline": true,
"isPublic": true,
"description": "<string>",
"sortOrder": 123,
"emailAddresses": "<string>",
"image": "<string>",
"isPinned": true,
"externalIdentifier": "<string>",
"impactData": "<string>",
"metadataFields": [
{
"name": "<string>",
"value": "<string>"
}
]
}
'const options = {
method: 'PUT',
headers: {Authorization: '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
code: '<string>',
name: '<string>',
isActive: true,
isAvailableOnline: true,
isPublic: true,
description: '<string>',
sortOrder: 123,
emailAddresses: '<string>',
image: '<string>',
isPinned: true,
externalIdentifier: '<string>',
impactData: '<string>',
metadataFields: [{name: '<string>', value: '<string>'}]
})
};
fetch('https://prod-api.raisedonors.com/api/Project/{projectId}/update', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://prod-api.raisedonors.com/api/Project/{projectId}/update"
payload = {
"code": "<string>",
"name": "<string>",
"isActive": True,
"isAvailableOnline": True,
"isPublic": True,
"description": "<string>",
"sortOrder": 123,
"emailAddresses": "<string>",
"image": "<string>",
"isPinned": True,
"externalIdentifier": "<string>",
"impactData": "<string>",
"metadataFields": [
{
"name": "<string>",
"value": "<string>"
}
]
}
headers = {
"Authorization": "<api-key>",
"Content-Type": "application/json"
}
response = requests.put(url, json=payload, headers=headers)
print(response.text)using RestSharp;
var options = new RestClientOptions("https://prod-api.raisedonors.com/api/Project/{projectId}/update");
var client = new RestClient(options);
var request = new RestRequest("");
request.AddHeader("Authorization", "<api-key>");
request.AddJsonBody("{\n \"code\": \"<string>\",\n \"name\": \"<string>\",\n \"isActive\": true,\n \"isAvailableOnline\": true,\n \"isPublic\": true,\n \"description\": \"<string>\",\n \"sortOrder\": 123,\n \"emailAddresses\": \"<string>\",\n \"image\": \"<string>\",\n \"isPinned\": true,\n \"externalIdentifier\": \"<string>\",\n \"impactData\": \"<string>\",\n \"metadataFields\": [\n {\n \"name\": \"<string>\",\n \"value\": \"<string>\"\n }\n ]\n}", false);
var response = await client.PutAsync(request);
Console.WriteLine("{0}", response.Content);
<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://prod-api.raisedonors.com/api/Project/{projectId}/update",
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([
'code' => '<string>',
'name' => '<string>',
'isActive' => true,
'isAvailableOnline' => true,
'isPublic' => true,
'description' => '<string>',
'sortOrder' => 123,
'emailAddresses' => '<string>',
'image' => '<string>',
'isPinned' => true,
'externalIdentifier' => '<string>',
'impactData' => '<string>',
'metadataFields' => [
[
'name' => '<string>',
'value' => '<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.put("https://prod-api.raisedonors.com/api/Project/{projectId}/update")
.header("Authorization", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"code\": \"<string>\",\n \"name\": \"<string>\",\n \"isActive\": true,\n \"isAvailableOnline\": true,\n \"isPublic\": true,\n \"description\": \"<string>\",\n \"sortOrder\": 123,\n \"emailAddresses\": \"<string>\",\n \"image\": \"<string>\",\n \"isPinned\": true,\n \"externalIdentifier\": \"<string>\",\n \"impactData\": \"<string>\",\n \"metadataFields\": [\n {\n \"name\": \"<string>\",\n \"value\": \"<string>\"\n }\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://prod-api.raisedonors.com/api/Project/{projectId}/update")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Put.new(url)
request["Authorization"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"code\": \"<string>\",\n \"name\": \"<string>\",\n \"isActive\": true,\n \"isAvailableOnline\": true,\n \"isPublic\": true,\n \"description\": \"<string>\",\n \"sortOrder\": 123,\n \"emailAddresses\": \"<string>\",\n \"image\": \"<string>\",\n \"isPinned\": true,\n \"externalIdentifier\": \"<string>\",\n \"impactData\": \"<string>\",\n \"metadataFields\": [\n {\n \"name\": \"<string>\",\n \"value\": \"<string>\"\n }\n ]\n}"
response = http.request(request)
puts response.read_bodyconst url = 'https://prod-api.raisedonors.com/api/Project/{projectId}/update';
const options = {
method: 'PUT',
headers: {Authorization: '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
code: '<string>',
name: '<string>',
isActive: true,
isAvailableOnline: true,
isPublic: true,
description: '<string>',
sortOrder: 123,
emailAddresses: '<string>',
image: '<string>',
isPinned: true,
externalIdentifier: '<string>',
impactData: '<string>',
metadataFields: [{name: '<string>', value: '<string>'}]
})
};
fetch(url, options)
.then(res => res.json())
.then(json => console.log(json))
.catch(err => console.error(err));{
"id": 3010,
"code": "GEN-OPS",
"isActive": true,
"isAvailableOnline": true,
"isPublic": true,
"isDeleted": false,
"name": "General Operating Support",
"description": "Unrestricted support for Riverside Hope programs.",
"sortOrder": 1,
"emailAddresses": "finance@riversidehope.example.org",
"metadataFields": [],
"image": null,
"isPinned": true,
"donorAmount": 902,
"giftAmount": 2418,
"createdDateTime": "2023-01-01T10:00:00Z",
"modifiedDateTime": "2025-11-15T08:00:00Z",
"raisedAmount": "$412,880.00",
"averageGiftAmount": "$170.75",
"firstGiftDate": "2023-01-04",
"lastGiftDate": "2025-11-15",
"isSystem": false,
"percentageRecurringGift": 38.4,
"externalIdentifier": "3010",
"impactData": null
}{
"type": "https://tools.ietf.org/html/rfc7231#section-6.5.1",
"title": "One or more validation errors occurred.",
"status": 400,
"errors": {
"code": [
"A project with this code already exists."
]
},
"instance": "/api/Project/3010/update"
}{
"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/Project/{projectId}/update"
}name, description, code, availability flags, sortOrder, or metadataFields. Returns the updated project.
Authorizations
JWT Authorization header using the Bearer scheme. Example: "Authorization: Bearer {token}"
Path Parameters
The ID of the project to update.
Body
The project request model.
Represents a project request.
The code that identifies the project.
1 - 100The name of the project.
1 - 150Whether the project is active.
Whether donors can give to the project online.
Whether the project is shown publicly.
The description of the project.
The position of the project in the order it is displayed in.
The email addresses to notify when a gift is designated to the project.
The URL of the image shown for the project.
Whether the project is pinned to the top of the list donors choose from.
An identifier of your own to store on the project, for reconciling it with an external system.
The text describing what a gift to the project accomplishes.
Additional name and value pairs to store on the project.
Show child attributes
Show child attributes
Response
OK
Represents a project model.
The unique identifier of the project.
The code of the project.
Whether the project is active.
Whether donors can give to the project online.
Whether the project is shown publicly.
Whether the project has been deleted.
The name of the project.
The description of the project.
The position of the project in the order it is displayed in.
The email addresses notified when a gift is designated to the project.
Additional name and value pairs stored on the project.
Show child attributes
Show child attributes
The URL of the image shown for the project.
Whether the project is pinned to the top of the list donors choose from.
The number of donors who have given to the project.
The number of gifts designated to the project.
The UTC date and time the project was created.
The UTC date and time the project was last modified.
The total amount raised by the project.
The average gift amount for the project.
The date of the first gift designated to the project.
The date of the most recent gift designated to the project.
Whether the project is a built-in project Raise maintains.
The share of the amount raised that came from recurring gifts.
An identifier of your own to store on the project, for reconciling it with an external system.
The text describing what a gift to the project accomplishes.
Was this page helpful?