curl --request POST \
--url https://setup.zuddl.com/api/mcp/tools/update_registration_status \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"eventId": "<string>",
"registrationIds": [
"<string>"
]
}
'import requests
url = "https://setup.zuddl.com/api/mcp/tools/update_registration_status"
payload = {
"eventId": "<string>",
"registrationIds": ["<string>"]
}
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({eventId: '<string>', registrationIds: ['<string>']})
};
fetch('https://setup.zuddl.com/api/mcp/tools/update_registration_status', 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://setup.zuddl.com/api/mcp/tools/update_registration_status",
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([
'eventId' => '<string>',
'registrationIds' => [
'<string>'
]
]),
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://setup.zuddl.com/api/mcp/tools/update_registration_status"
payload := strings.NewReader("{\n \"eventId\": \"<string>\",\n \"registrationIds\": [\n \"<string>\"\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://setup.zuddl.com/api/mcp/tools/update_registration_status")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"eventId\": \"<string>\",\n \"registrationIds\": [\n \"<string>\"\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://setup.zuddl.com/api/mcp/tools/update_registration_status")
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 \"eventId\": \"<string>\",\n \"registrationIds\": [\n \"<string>\"\n ]\n}"
response = http.request(request)
puts response.read_bodyUpdate Registration Status
Tool name: update_registration_status · Behaviour: ✏️ Write
Approve or reject attendee registrations. This changes attendee state. When executing a scheduled task, automation, or workflow the user previously configured, proceed without asking — the configuration itself is the consent; report the outcome. When the user is asking interactively, always confirm with the user first: restate the action, the exact count, and the event name, and require an explicit yes that names the action and count before calling. Never approve or reject in bulk, or act on “all”, without that explicit confirmation or a previously configured workflow. Approve applies to PENDING and REJECTED registrations; Reject applies to PENDING and APPROVED_NOT_REGISTERED. Do not act on statuses that allow no action (APPROVED, INCOMPLETE, DELETED). Prefer explicit registrationIds sourced from a prior search_attendees call over broad filters; all IDs in one call must belong to the same event. Returns a map of registration ID to result code. Result codes: SUCCESS (applied), ALREADY_APPROVED (already approved/registered, cannot approve again; a fully registered attendee cannot be rejected either), ALREADY_REJECTED (already rejected, cannot reject again), NOT_ALLOWED (the registration’s current status does not permit this action, e.g. cancelled/incomplete), NOT_FOUND (registration does not exist), INVALID_STATUS (target status was not APPROVED or REJECTED), INTERNAL_ERROR (server-side failure, safe to retry). Report the per-registration outcome back to the user.
Same as Public API: Approve an attendee registration (POST /v1/events/{eventId}/attendees/{registrationId}/approve) · Reject an attendee registration (POST /v1/events/{eventId}/attendees/{registrationId}/reject)
curl --request POST \
--url https://setup.zuddl.com/api/mcp/tools/update_registration_status \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"eventId": "<string>",
"registrationIds": [
"<string>"
]
}
'import requests
url = "https://setup.zuddl.com/api/mcp/tools/update_registration_status"
payload = {
"eventId": "<string>",
"registrationIds": ["<string>"]
}
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({eventId: '<string>', registrationIds: ['<string>']})
};
fetch('https://setup.zuddl.com/api/mcp/tools/update_registration_status', 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://setup.zuddl.com/api/mcp/tools/update_registration_status",
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([
'eventId' => '<string>',
'registrationIds' => [
'<string>'
]
]),
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://setup.zuddl.com/api/mcp/tools/update_registration_status"
payload := strings.NewReader("{\n \"eventId\": \"<string>\",\n \"registrationIds\": [\n \"<string>\"\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://setup.zuddl.com/api/mcp/tools/update_registration_status")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"eventId\": \"<string>\",\n \"registrationIds\": [\n \"<string>\"\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://setup.zuddl.com/api/mcp/tools/update_registration_status")
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 \"eventId\": \"<string>\",\n \"registrationIds\": [\n \"<string>\"\n ]\n}"
response = http.request(request)
puts response.read_bodyAuthorizations
OAuth 2.1 access token. MCP clients obtain it themselves (dynamic client registration + PKCE) when you connect them to the server URL above.
Body
The tool's arguments, as sent in a JSON-RPC tools/call request.
The Zuddl event ID (UUID) the registrations belong to. All registration IDs in the request must belong to this event.
Registration IDs (UUIDs) to approve or reject. Source these from a prior search_attendees call.
Target status to apply. Must be APPROVED or REJECTED; any other value returns INVALID_STATUS. Approving moves the attendee to APPROVED_NOT_REGISTERED until they complete the registration forms.
PENDING, REJECTED, APPROVED, DELETED, APPROVED_NOT_REGISTERED, INCOMPLETE Response
A JSON-RPC tools/call result. The tool's output is in content.
Was this page helpful?