Skip to main content
POST
Request to join a public trip

Path Parameters

clientSlugOrId
string
required

Organization identifier from the public trip URL. Numeric values are treated as client ids; non-numeric values are matched to organization slugs.

tripSlug
string
required

Active trip slug within the resolved client. The controller rejects inactive, completed, missing, or request-disabled trips.

Body

application/json

Public join-request donor and participant details. Validator rule always requires email; additional required keys are dynamic based on the trip donor form's public standardized fields and required custom fields.

email
string<email>
required

Participant donor email. Validator rule: required|email|max:255. Existing donors are reused by client/email; otherwise the service creates a donor.

Maximum string length: 255
Example:

"participant@example.org"

type
enum<string>
default:INDIVIDUAL

Donor identity type; defaults to INDIVIDUAL when neither type nor donor_type is supplied.

Available options:
INDIVIDUAL,
ORGANIZATION
Example:

"INDIVIDUAL"

organization_name
string

Required when the normalized donor type is ORGANIZATION.

Maximum string length: 255
Example:

"Acme Foundation"

policy_revision
string

Optional revision from join_request_form. If standardized fields are enabled, an outdated supplied revision returns 409 with the current contract.

Example:

"current-form-revision"

first_name
string | null

Optional standardized donor first name stored on the donor and in donor json_fields when provided.

Example:

"Sam"

last_name
string | null

Optional standardized donor last name stored on the donor and in donor json_fields when provided.

Example:

"Taylor"

phone
string | null

Optional standardized phone value stored on the donor when provided.

Example:

"+15551234567"

country_code
string | null

Optional ISO alpha-2 country code. When standardized fields are enabled and supplied, validator rule: nullable|string|size:2|ValidCountryCode.

Required string length: 2
Example:

"US"

subdivision_code
string | null

Optional ISO subdivision code. When standardized fields are enabled and supplied, validator rule: nullable|string|max:10|ValidSubdivisionForCountry.

Maximum string length: 10
Example:

"US-CA"

individual_goal
number<float> | null

Optional participant fundraising goal. If absent the service uses the trip default individual goal.

Example:

2500

is_public
boolean | null

Optional participant visibility flag. Defaults to true when omitted.

Example:

true

is_anonymous
boolean | null

Optional anonymity flag stored on the participant.

Example:

false

bio
string | null

Optional public participant bio.

Example:

"I am raising funds for this service trip."

video_url
string | null

Optional public intro video URL.

Example:

"https://www.youtube.com/watch?v=abc123"

Optional public social links stored directly on the participant.

is_minor
boolean | null

Optional minor flag. Guardian fields are stored when supplied but are not exposed by public endpoints.

Example:

false

guardian_name
string | null

Optional guardian name for minor participants.

Example:

"Jordan Taylor"

guardian_email
string<email> | null

Optional guardian email for minor participants.

Example:

"guardian@example.org"

guardian_phone
string | null

Optional guardian phone for minor participants.

Example:

"+15557654321"

guardian_relationship
string | null

Optional guardian relationship for minor participants.

Example:

"Parent"

Response

Join request received.

message
string
Example:

"Your request to join has been received."

data
object