List compatible program setup modules
Returns current-organization settings, donor/recipient forms and email/SMS sets with compatibility, recommendation and preview details. Blocked settings are omitted. Unsupported/blank type becomes null and receives generic recommendations; it does not return422. Form summaries include standardized donor fields when enabled. Recommended IDs are suggestions and do not attach modules. Requires permission: one of programs_view, manage_programs, program-all.
curl --request GET \
--url https://api.gratona.com/v1/admin/program/setup-options \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.gratona.com/v1/admin/program/setup-options"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.gratona.com/v1/admin/program/setup-options', 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.gratona.com/v1/admin/program/setup-options",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.gratona.com/v1/admin/program/setup-options"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.gratona.com/v1/admin/program/setup-options")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.gratona.com/v1/admin/program/setup-options")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"type": "number",
"type_label": "Number of Sponsors",
"recommended": {
"settings_id": 42,
"donor_hysform_id": 42,
"hysform_id": 42,
"emailset_id": 42,
"smsset_id": 42
},
"settings": [
{
"id": 42,
"name": "Education",
"is_recommended": false,
"recommendation_reason": "Compatible program configuration.",
"details": [
{
"label": "Fields",
"value": "12 total"
}
],
"program_type": "number",
"program_type_label": "Number of Sponsors",
"is_compatible": true,
"email_enabled": true,
"linked_programs_count": 1
}
],
"forms": {
"donor": [
{
"id": 42,
"name": "Education",
"is_recommended": false,
"recommendation_reason": "Compatible program configuration.",
"details": [
{
"label": "Fields",
"value": "12 total"
}
],
"type": "donor",
"fields_count": 12,
"required_fields_count": 3,
"public_fields_count": 8,
"standard_fields_count": 0,
"is_attachable": true,
"field_preview": [
"First name"
]
}
],
"entity": [
{
"id": 42,
"name": "Education",
"is_recommended": false,
"recommendation_reason": "Compatible program configuration.",
"details": [
{
"label": "Fields",
"value": "12 total"
}
],
"type": "donor",
"fields_count": 12,
"required_fields_count": 3,
"public_fields_count": 8,
"standard_fields_count": 0,
"is_attachable": true,
"field_preview": [
"First name"
]
}
]
},
"emailsets": [
{
"id": 42,
"name": "Education",
"is_recommended": false,
"recommendation_reason": "Compatible program configuration.",
"details": [
{
"label": "Fields",
"value": "12 total"
}
],
"template_count": 4,
"enabled_template_count": 4,
"total_template_count": 5,
"has_enabled_templates": true,
"trigger_preview": [
"pay_receipt"
]
}
],
"smssets": [
{
"id": 42,
"name": "Education",
"is_recommended": false,
"recommendation_reason": "Compatible program configuration.",
"details": [
{
"label": "Fields",
"value": "12 total"
}
],
"template_count": 4,
"trigger_preview": [
"pay_remind"
]
}
]
}{
"message": "Unauthorized",
"status": "error"
}{
"errors": {},
"status": "error",
"message": "The given data was invalid."
}Authorizations
Passport bearer token authentication for legacy admin sessions.
Query Parameters
Optional intended program behavior.
number, contribution, campaign, peer_to_peer, trips Response
Operation result.
HTTP contracts traced from the deployed controller and delegated validation/serialization.
number, contribution, campaign, peer_to_peer, trips, null "number"
"Number of Sponsors"
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
curl --request GET \
--url https://api.gratona.com/v1/admin/program/setup-options \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.gratona.com/v1/admin/program/setup-options"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.gratona.com/v1/admin/program/setup-options', 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.gratona.com/v1/admin/program/setup-options",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.gratona.com/v1/admin/program/setup-options"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.gratona.com/v1/admin/program/setup-options")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.gratona.com/v1/admin/program/setup-options")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"type": "number",
"type_label": "Number of Sponsors",
"recommended": {
"settings_id": 42,
"donor_hysform_id": 42,
"hysform_id": 42,
"emailset_id": 42,
"smsset_id": 42
},
"settings": [
{
"id": 42,
"name": "Education",
"is_recommended": false,
"recommendation_reason": "Compatible program configuration.",
"details": [
{
"label": "Fields",
"value": "12 total"
}
],
"program_type": "number",
"program_type_label": "Number of Sponsors",
"is_compatible": true,
"email_enabled": true,
"linked_programs_count": 1
}
],
"forms": {
"donor": [
{
"id": 42,
"name": "Education",
"is_recommended": false,
"recommendation_reason": "Compatible program configuration.",
"details": [
{
"label": "Fields",
"value": "12 total"
}
],
"type": "donor",
"fields_count": 12,
"required_fields_count": 3,
"public_fields_count": 8,
"standard_fields_count": 0,
"is_attachable": true,
"field_preview": [
"First name"
]
}
],
"entity": [
{
"id": 42,
"name": "Education",
"is_recommended": false,
"recommendation_reason": "Compatible program configuration.",
"details": [
{
"label": "Fields",
"value": "12 total"
}
],
"type": "donor",
"fields_count": 12,
"required_fields_count": 3,
"public_fields_count": 8,
"standard_fields_count": 0,
"is_attachable": true,
"field_preview": [
"First name"
]
}
]
},
"emailsets": [
{
"id": 42,
"name": "Education",
"is_recommended": false,
"recommendation_reason": "Compatible program configuration.",
"details": [
{
"label": "Fields",
"value": "12 total"
}
],
"template_count": 4,
"enabled_template_count": 4,
"total_template_count": 5,
"has_enabled_templates": true,
"trigger_preview": [
"pay_receipt"
]
}
],
"smssets": [
{
"id": 42,
"name": "Education",
"is_recommended": false,
"recommendation_reason": "Compatible program configuration.",
"details": [
{
"label": "Fields",
"value": "12 total"
}
],
"template_count": 4,
"trigger_preview": [
"pay_remind"
]
}
]
}{
"message": "Unauthorized",
"status": "error"
}{
"errors": {},
"status": "error",
"message": "The given data was invalid."
}