Worked examples
Tutorials
These examples assume you already have a bearer token. Replace ids, tokens, and names with values from the camp you are authorised against.
1. Create a young person
Scope: children.write. Send JSON to POST https://developer.scoutcamp.co.uk/api/v1/children.
Comma-separate
dietary, allergies, and disabilities (alias of health_other). Do not send one tag per field. medical_info is free-text medication notes, not a tag list. Do not send camp_consent — after submit we email the primary contact (emergency_email) the permission slip, then a second email with a signature box.POST https://developer.scoutcamp.co.uk/api/v1/children
Authorization: Bearer sc_tok_…
Content-Type: application/json
{
"first_name": "Alex",
"last_name": "Taylor",
"dob": "2014-06-12",
"section_id": 3,
"scout_group_id": 2,
"emergency_name": "Sam Taylor",
"emergency_phone": "07123 456789",
"emergency_email": "sam@example.com",
"photography_consent": "YES",
"dietary": "Vegetarian, Gluten free",
"allergies": "Peanuts, EpiPen required",
"disabilities": "ADHD, Autism",
"has_asthma": 1,
"medical_info": "Uses a reliever inhaler before sport."
}The response is privacy-safe. Submitted medical and contact details are stored but not returned:
{
"ok": true,
"consent_pending": true,
"consent_emails_sent": true,
"child": {
"id": 184,
"first_name": "Alex",
"last_initial": "T",
"profile_url": "https://…/qr/child/…",
"scout_group_id": 2,
"section_id": 3,
"camp_status": ""
}
}2. Submit a registration form
Scopes: registration.urls then registration.submit.
- Call
GET /registration-urlsand copy thetokenfor achildorleaderlink. - POST to
/registrationswith that token, a matchingtype, and the person fields. Group and section come from the token — do not override them. Do not sendcamp_consent. - Use the same comma-separated tag rules as creating a child. A JSON array of tags is also accepted and stored as a comma-separated list.
POST https://developer.scoutcamp.co.uk/api/v1/registrations
Authorization: Bearer sc_tok_…
Content-Type: application/json
{
"token": "reg_abc123",
"type": "child",
"first_name": "Alex",
"last_name": "Taylor",
"dob": "2014-06-12",
"emergency_name": "Sam Taylor",
"emergency_phone": "07123 456789",
"emergency_email": "sam@example.com",
"dietary": [
"Vegetarian",
"Gluten free"
],
"allergies": "Peanuts, EpiPen required",
"health_other": "ADHD, Autism, Mobility needs",
"has_asthma": true,
"can_swim_50m": 1
}3. Create a leader
Scope: leaders.write. Same tag rules for dietary and allergies.
POST https://developer.scoutcamp.co.uk/api/v1/leaders
Authorization: Bearer sc_tok_…
Content-Type: application/json
{
"first_name": "Jordan",
"last_name": "Reed",
"email": "jordan.reed@example.com",
"dob": "1994-03-02",
"section_id": 3,
"scout_group_id": 2,
"role": "Leader",
"dietary": "Vegan",
"allergies": "Tree nuts",
"phone": "07900 111222"
}4. List people without personal details
Scopes: children.read or leaders.read. You only receive first name, last initial, id, profile URL, group, section, and status.
curl -H "Authorization: Bearer sc_tok_…" https://developer.scoutcamp.co.uk/api/v1/children