Update Personal Page
curl --request PUT \
--url https://api.crowdchange.dev/v2/private/user/fundraiser/{id}/personal-page/{pageId} \
--header 'Authorization: <api-key>' \
--header 'Content-Type: application/json' \
--data '
{
"token": "<string>",
"name": "<string>",
"amount_goal": 123,
"description": "<string>",
"image": "<string>"
}
'import requests
url = "https://api.crowdchange.dev/v2/private/user/fundraiser/{id}/personal-page/{pageId}"
payload = {
"token": "<string>",
"name": "<string>",
"amount_goal": 123,
"description": "<string>",
"image": "<string>"
}
headers = {
"Authorization": "<api-key>",
"Content-Type": "application/json"
}
response = requests.put(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PUT',
headers: {Authorization: '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
token: '<string>',
name: '<string>',
amount_goal: 123,
description: '<string>',
image: '<string>'
})
};
fetch('https://api.crowdchange.dev/v2/private/user/fundraiser/{id}/personal-page/{pageId}', 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.crowdchange.dev/v2/private/user/fundraiser/{id}/personal-page/{pageId}",
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([
'token' => '<string>',
'name' => '<string>',
'amount_goal' => 123,
'description' => '<string>',
'image' => '<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;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.crowdchange.dev/v2/private/user/fundraiser/{id}/personal-page/{pageId}"
payload := strings.NewReader("{\n \"token\": \"<string>\",\n \"name\": \"<string>\",\n \"amount_goal\": 123,\n \"description\": \"<string>\",\n \"image\": \"<string>\"\n}")
req, _ := http.NewRequest("PUT", url, payload)
req.Header.Add("Authorization", "<api-key>")
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.crowdchange.dev/v2/private/user/fundraiser/{id}/personal-page/{pageId}")
.header("Authorization", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"token\": \"<string>\",\n \"name\": \"<string>\",\n \"amount_goal\": 123,\n \"description\": \"<string>\",\n \"image\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.crowdchange.dev/v2/private/user/fundraiser/{id}/personal-page/{pageId}")
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 \"token\": \"<string>\",\n \"name\": \"<string>\",\n \"amount_goal\": 123,\n \"description\": \"<string>\",\n \"image\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"id": 1,
"name": "John Snow",
"description": "Personal page description",
"image": "1eaf5ab2-5d55-11ee-82ef-001c42584fa2",
"amount_goal": 1000,
"amount_raised": 550,
"amount_raised_formatted": "$550",
"url": "https://demo.crowdchange.dev/2/page/1",
"language": "en",
"custom_data": [
{
"field_id": 1001,
"source_id": 11,
"name": "Phone Number",
"content": "555-123-4567",
"field_custom_id": "ABC-123",
"response_custom_id": null
}
],
"is_default_image": false,
"is_default_description": false,
"team": {
"id": 1,
"name": "Gala Night",
"amount_goal": 10000,
"amount_raised": 8000,
"amount_raised_formatted": "$8,000",
"url": "https://demo.crowdchange.dev/1/team/2",
"language": "en"
},
"fundraiser": {
"id": 1,
"name": "Gala Night",
"amount_goal": 10000,
"amount_raised": 8000,
"amount_raised_formatted": "$8,000",
"url": "https://demo.crowdchange.dev/1",
"language": "en",
"organization": {
"id": 1,
"name": "Crowdchange",
"custom_id": "CrowdchangeID"
}
},
"user": {
"name": "John Snow",
"first_name": "John",
"last_name": "Snow",
"title": "Mr."
}
}
User-Specific APIs
Update Personal Page
Update the authenticated user’s personal fundraising page within a CrowdChange campaign, including title, story, goal, and cover image.
PUT
/
v2
/
private
/
user
/
fundraiser
/
{id}
/
personal-page
/
{pageId}
Update Personal Page
curl --request PUT \
--url https://api.crowdchange.dev/v2/private/user/fundraiser/{id}/personal-page/{pageId} \
--header 'Authorization: <api-key>' \
--header 'Content-Type: application/json' \
--data '
{
"token": "<string>",
"name": "<string>",
"amount_goal": 123,
"description": "<string>",
"image": "<string>"
}
'import requests
url = "https://api.crowdchange.dev/v2/private/user/fundraiser/{id}/personal-page/{pageId}"
payload = {
"token": "<string>",
"name": "<string>",
"amount_goal": 123,
"description": "<string>",
"image": "<string>"
}
headers = {
"Authorization": "<api-key>",
"Content-Type": "application/json"
}
response = requests.put(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PUT',
headers: {Authorization: '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
token: '<string>',
name: '<string>',
amount_goal: 123,
description: '<string>',
image: '<string>'
})
};
fetch('https://api.crowdchange.dev/v2/private/user/fundraiser/{id}/personal-page/{pageId}', 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.crowdchange.dev/v2/private/user/fundraiser/{id}/personal-page/{pageId}",
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([
'token' => '<string>',
'name' => '<string>',
'amount_goal' => 123,
'description' => '<string>',
'image' => '<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;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.crowdchange.dev/v2/private/user/fundraiser/{id}/personal-page/{pageId}"
payload := strings.NewReader("{\n \"token\": \"<string>\",\n \"name\": \"<string>\",\n \"amount_goal\": 123,\n \"description\": \"<string>\",\n \"image\": \"<string>\"\n}")
req, _ := http.NewRequest("PUT", url, payload)
req.Header.Add("Authorization", "<api-key>")
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.crowdchange.dev/v2/private/user/fundraiser/{id}/personal-page/{pageId}")
.header("Authorization", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"token\": \"<string>\",\n \"name\": \"<string>\",\n \"amount_goal\": 123,\n \"description\": \"<string>\",\n \"image\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.crowdchange.dev/v2/private/user/fundraiser/{id}/personal-page/{pageId}")
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 \"token\": \"<string>\",\n \"name\": \"<string>\",\n \"amount_goal\": 123,\n \"description\": \"<string>\",\n \"image\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"id": 1,
"name": "John Snow",
"description": "Personal page description",
"image": "1eaf5ab2-5d55-11ee-82ef-001c42584fa2",
"amount_goal": 1000,
"amount_raised": 550,
"amount_raised_formatted": "$550",
"url": "https://demo.crowdchange.dev/2/page/1",
"language": "en",
"custom_data": [
{
"field_id": 1001,
"source_id": 11,
"name": "Phone Number",
"content": "555-123-4567",
"field_custom_id": "ABC-123",
"response_custom_id": null
}
],
"is_default_image": false,
"is_default_description": false,
"team": {
"id": 1,
"name": "Gala Night",
"amount_goal": 10000,
"amount_raised": 8000,
"amount_raised_formatted": "$8,000",
"url": "https://demo.crowdchange.dev/1/team/2",
"language": "en"
},
"fundraiser": {
"id": 1,
"name": "Gala Night",
"amount_goal": 10000,
"amount_raised": 8000,
"amount_raised_formatted": "$8,000",
"url": "https://demo.crowdchange.dev/1",
"language": "en",
"organization": {
"id": 1,
"name": "Crowdchange",
"custom_id": "CrowdchangeID"
}
},
"user": {
"name": "John Snow",
"first_name": "John",
"last_name": "Snow",
"title": "Mr."
}
}
Path parameters
integer
required
Campaign ID.
integer
required
Personal Page ID.
Body
string
required
User’s access token.
string
Personal Page’s name
number
Personal Page’s goal amount
string
Personal Page’s description
string
Personal page’s image ID
Response
integer
Personal page ID.
string
Personal page name.
string
Personal page type.
string | null
URL to the personal page.
number
Goal amount.
string
Formatted goal amount, including the currency symbol.
number
Amount raised by the personal page.
string
Formatted amount raised by the personal page, including the currency symbol.
number
Pending offline donation amount for the personal page.
number
Personal page matched donation amount.
integer
Number of personal page donors.
string | null
Personal page image ID.
string | null
Personal page description.
boolean
Whether the personal page image is inherited from the campaign.
boolean
Whether the personal page description is inherited from the campaign.
object | null
string | null
Personal page archive date and time.
string | null
Personal page close date and time.
string | null
Personal page creation date and time.
string
Personal page language. Allowed values:
en, fr.object[]
Custom questions and responses configured for the resource.
object
object
Campaign summary.
Show properties
Show properties
object | null
| Status | Description |
|---|---|
400 | Bad Request |
403 | Forbidden |
{
"id": 1,
"name": "John Snow",
"description": "Personal page description",
"image": "1eaf5ab2-5d55-11ee-82ef-001c42584fa2",
"amount_goal": 1000,
"amount_raised": 550,
"amount_raised_formatted": "$550",
"url": "https://demo.crowdchange.dev/2/page/1",
"language": "en",
"custom_data": [
{
"field_id": 1001,
"source_id": 11,
"name": "Phone Number",
"content": "555-123-4567",
"field_custom_id": "ABC-123",
"response_custom_id": null
}
],
"is_default_image": false,
"is_default_description": false,
"team": {
"id": 1,
"name": "Gala Night",
"amount_goal": 10000,
"amount_raised": 8000,
"amount_raised_formatted": "$8,000",
"url": "https://demo.crowdchange.dev/1/team/2",
"language": "en"
},
"fundraiser": {
"id": 1,
"name": "Gala Night",
"amount_goal": 10000,
"amount_raised": 8000,
"amount_raised_formatted": "$8,000",
"url": "https://demo.crowdchange.dev/1",
"language": "en",
"organization": {
"id": 1,
"name": "Crowdchange",
"custom_id": "CrowdchangeID"
}
},
"user": {
"name": "John Snow",
"first_name": "John",
"last_name": "Snow",
"title": "Mr."
}
}
Last modified on August 17, 2026
Was this page helpful?