API Reference
activities
10 endpoints
/api/v1/activities/{activity_slug}Get Activity
Get an activity by slug (or uuid, until v1 is frozen).
Readable by any caller holding activity:read: an activity carries no
draft or withdrawn state, so there is nothing about it to withhold, and
shareable activity links depend on it.
Path parameters
| activity_slug* | string |
Query parameters
| default_backend | string | default: "primary" |
Responses
| Field | Type | Description |
|---|---|---|
| uuid* | string | |
| slug* | string | |
| name* | string | |
| description | string | null | |
| organization_uuid* | string | |
| image_file_uuid | string | null | |
| image_file_url | string | null | |
| website_url | string | null | |
| additional_data | object | null | |
| created_at* | string (date-time) | |
| updated_at | string (date-time) | null | |
| max_attendees | integer | null | |
| start_time | string (date-time) | null | |
| end_time | string (date-time) | null | |
| is_session_checkin_open | boolean | default: true |
| ticket_template_uuid | string | null | |
| requires_ticket | boolean | default: false |
| required_entitlement | string | null |
| Field | Type | Description |
|---|---|---|
| errors* | object | Map of field names to error messages. Use '_root' for form-level errors. |
| message* | string | Human-readable error summary |
| code | string | null | Machine-readable error code |
| Field | Type | Description |
|---|---|---|
| errors* | object | Map of field names to error messages. Use '_root' for form-level errors. |
| message* | string | Human-readable error summary |
| code | string | null | Machine-readable error code |
| Field | Type | Description |
|---|---|---|
| errors* | object | Map of field names to error messages. Use '_root' for form-level errors. |
| message* | string | Human-readable error summary |
| code | string | null | Machine-readable error code |
| Field | Type | Description |
|---|---|---|
| errors* | object | Map of field names to error messages. Use '_root' for form-level errors. |
| message* | string | Human-readable error summary |
| code | string | null | Machine-readable error code |
Example request
curl -X GET "https://api.davi.social/api/v1/activities/{activity_slug}" \
-H "Authorization: Bearer <token>"/api/v1/activities/{activity_slug}Update Activity
Update an activity by UUID.
Requires an org-scoped token for the activity's organization.
Path parameters
| activity_slug* | string |
Query parameters
| default_backend | string | default: "primary" |
Request body*application/json
| Field | Type | Description |
|---|---|---|
| name | string | null | Name of the activity |
| description | string | null | Description of the activity |
| image_file_uuid | string | string (uuid) | null | UUID of the image file associated with the activity |
| website_url | string | null | Website URL for the activity |
| additional_data | object | null | Additional JSON data for the activity |
| max_attendees | integer | null | Maximum number of attendees (None = unlimited) ≥ 1 |
| start_time | string (date-time) | null | Activity start time (for check-in validation) |
| end_time | string (date-time) | null | Activity end time (for check-in validation) |
| is_session_checkin_open | boolean | null | Master switch for session check-in (False = all session check-ins closed) |
| ticket_template_uuid | string | string (uuid) | null | Default ticket reward template for the event |
| requires_ticket | boolean | null | Whether sessions require a ticket by default |
| required_entitlement | string | null | Entitlement gate to attend (send null to clear) |
Responses
| Field | Type | Description |
|---|---|---|
| uuid* | string | |
| slug* | string | |
| name* | string | |
| description | string | null | |
| organization_uuid* | string | |
| image_file_uuid | string | null | |
| image_file_url | string | null | |
| website_url | string | null | |
| additional_data | object | null | |
| created_at* | string (date-time) | |
| updated_at | string (date-time) | null | |
| max_attendees | integer | null | |
| start_time | string (date-time) | null | |
| end_time | string (date-time) | null | |
| is_session_checkin_open | boolean | default: true |
| ticket_template_uuid | string | null | |
| requires_ticket | boolean | default: false |
| required_entitlement | string | null |
| Field | Type | Description |
|---|---|---|
| errors* | object | Map of field names to error messages. Use '_root' for form-level errors. |
| message* | string | Human-readable error summary |
| code | string | null | Machine-readable error code |
| Field | Type | Description |
|---|---|---|
| errors* | object | Map of field names to error messages. Use '_root' for form-level errors. |
| message* | string | Human-readable error summary |
| code | string | null | Machine-readable error code |
| Field | Type | Description |
|---|---|---|
| errors* | object | Map of field names to error messages. Use '_root' for form-level errors. |
| message* | string | Human-readable error summary |
| code | string | null | Machine-readable error code |
| Field | Type | Description |
|---|---|---|
| errors* | object | Map of field names to error messages. Use '_root' for form-level errors. |
| message* | string | Human-readable error summary |
| code | string | null | Machine-readable error code |
| Field | Type | Description |
|---|---|---|
| errors* | object | Map of field names to error messages. Use '_root' for form-level errors. |
| message* | string | Human-readable error summary |
| code | string | null | Machine-readable error code |
Example request
curl -X PATCH "https://api.davi.social/api/v1/activities/{activity_slug}" \
-H "Authorization: Bearer <token>" \
-H "Content-Type: application/json" \
-d '{ /* request body */ }'/api/v1/activities/{activity_slug}Delete Activity
Delete an activity by UUID.
Requires an org-scoped token for the activity's organization.
Path parameters
| activity_slug* | string |
Query parameters
| default_backend | string | default: "primary" |
Responses
| Field | Type | Description |
|---|---|---|
| message* | string | Success or status message |
| Field | Type | Description |
|---|---|---|
| errors* | object | Map of field names to error messages. Use '_root' for form-level errors. |
| message* | string | Human-readable error summary |
| code | string | null | Machine-readable error code |
| Field | Type | Description |
|---|---|---|
| errors* | object | Map of field names to error messages. Use '_root' for form-level errors. |
| message* | string | Human-readable error summary |
| code | string | null | Machine-readable error code |
| Field | Type | Description |
|---|---|---|
| errors* | object | Map of field names to error messages. Use '_root' for form-level errors. |
| message* | string | Human-readable error summary |
| code | string | null | Machine-readable error code |
| Field | Type | Description |
|---|---|---|
| errors* | object | Map of field names to error messages. Use '_root' for form-level errors. |
| message* | string | Human-readable error summary |
| code | string | null | Machine-readable error code |
Example request
curl -X DELETE "https://api.davi.social/api/v1/activities/{activity_slug}" \
-H "Authorization: Bearer <token>"/api/v1/activities/{activity_slug}/attendeesList Activity Attendees
List all attendees across all sessions of an activity.
Path parameters
| activity_slug* | string |
Query parameters
| include_proof | boolean | Include proof transaction info in response default: false |
| default_backend | string | default: "primary" |
| page | integer | default: 1 · ≥ 1 |
| page_size | integer | default: 20 · ≥ 1 · ≤ 100 |
| sort_by | string | null | |
| sort_order | string | default: "asc" |
Responses
| Field | Type | Description | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| total_items* | integer | Total number of items available | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| total_pages* | integer | Total number of pages available | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| current_page* | integer | Current page number | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| items* | ActivityAttendeeResponse[] | List of items on the current page | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||
array items · ActivityAttendeeResponse
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Field | Type | Description |
|---|---|---|
| errors* | object | Map of field names to error messages. Use '_root' for form-level errors. |
| message* | string | Human-readable error summary |
| code | string | null | Machine-readable error code |
| Field | Type | Description |
|---|---|---|
| errors* | object | Map of field names to error messages. Use '_root' for form-level errors. |
| message* | string | Human-readable error summary |
| code | string | null | Machine-readable error code |
| Field | Type | Description |
|---|---|---|
| errors* | object | Map of field names to error messages. Use '_root' for form-level errors. |
| message* | string | Human-readable error summary |
| code | string | null | Machine-readable error code |
Example request
curl -X GET "https://api.davi.social/api/v1/activities/{activity_slug}/attendees" \
-H "Authorization: Bearer <token>"/api/v1/activities/{activity_slug}/sessionsList Sessions
List all sessions for an activity.
Path parameters
| activity_slug* | string |
Query parameters
| default_backend | string | default: "primary" |
| page | integer | default: 1 · ≥ 1 |
| page_size | integer | default: 20 · ≥ 1 · ≤ 100 |
| sort_by | string | null | |
| sort_order | string | default: "asc" |
Responses
| Field | Type | Description | ||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| total_items* | integer | Total number of items available | ||||||||||||||||||||||||||||||||||||||||||||||||
| total_pages* | integer | Total number of pages available | ||||||||||||||||||||||||||||||||||||||||||||||||
| current_page* | integer | Current page number | ||||||||||||||||||||||||||||||||||||||||||||||||
| items* | SessionResponse[] | List of items on the current page | ||||||||||||||||||||||||||||||||||||||||||||||||
array items · SessionResponse
| ||||||||||||||||||||||||||||||||||||||||||||||||||
| Field | Type | Description |
|---|---|---|
| errors* | object | Map of field names to error messages. Use '_root' for form-level errors. |
| message* | string | Human-readable error summary |
| code | string | null | Machine-readable error code |
| Field | Type | Description |
|---|---|---|
| errors* | object | Map of field names to error messages. Use '_root' for form-level errors. |
| message* | string | Human-readable error summary |
| code | string | null | Machine-readable error code |
| Field | Type | Description |
|---|---|---|
| errors* | object | Map of field names to error messages. Use '_root' for form-level errors. |
| message* | string | Human-readable error summary |
| code | string | null | Machine-readable error code |
Example request
curl -X GET "https://api.davi.social/api/v1/activities/{activity_slug}/sessions" \
-H "Authorization: Bearer <token>"/api/v1/activities/{activity_slug}/sessionsCreate Session
Create a new session for an activity.
Requires an org-scoped token for the activity's organization.
Path parameters
| activity_slug* | string |
Query parameters
| default_backend | string | default: "primary" |
Request body*application/json
| Field | Type | Description |
|---|---|---|
| name* | string | Name of the session (e.g., 'Day 1 - Morning') |
| description | string | null | Session description |
| start_time* | string (date-time) | Session start time |
| end_time* | string (date-time) | Session end time |
| max_attendees | integer | null | Optional capacity override (None = inherit from activity) ≥ 1 |
| is_checkin_open | boolean | Manual toggle for check-in default: true |
| requires_ticket | boolean | null | Require a ticket for this session (None = inherit event default) |
| required_entitlement | string | null | Entitlement gate for this session (None = inherit event's) |
| ticket_template_uuid | string | string (uuid) | null | Per-session ticket override (None = inherit event default) |
Responses
| Field | Type | Description |
|---|---|---|
| uuid* | string | |
| slug* | string | |
| activity_uuid* | string | |
| name* | string | |
| description | string | null | |
| start_time* | string (date-time) | |
| end_time* | string (date-time) | |
| max_attendees | integer | null | |
| is_checkin_open | boolean | default: true |
| requires_ticket | boolean | null | |
| required_entitlement | string | null | |
| ticket_template_uuid | string | null | |
| sequence_number* | integer | |
| created_at* | string (date-time) | |
| updated_at | string (date-time) | null |
| Field | Type | Description |
|---|---|---|
| errors* | object | Map of field names to error messages. Use '_root' for form-level errors. |
| message* | string | Human-readable error summary |
| code | string | null | Machine-readable error code |
| Field | Type | Description |
|---|---|---|
| errors* | object | Map of field names to error messages. Use '_root' for form-level errors. |
| message* | string | Human-readable error summary |
| code | string | null | Machine-readable error code |
| Field | Type | Description |
|---|---|---|
| errors* | object | Map of field names to error messages. Use '_root' for form-level errors. |
| message* | string | Human-readable error summary |
| code | string | null | Machine-readable error code |
| Field | Type | Description |
|---|---|---|
| errors* | object | Map of field names to error messages. Use '_root' for form-level errors. |
| message* | string | Human-readable error summary |
| code | string | null | Machine-readable error code |
| Field | Type | Description |
|---|---|---|
| errors* | object | Map of field names to error messages. Use '_root' for form-level errors. |
| message* | string | Human-readable error summary |
| code | string | null | Machine-readable error code |
Example request
curl -X POST "https://api.davi.social/api/v1/activities/{activity_slug}/sessions" \
-H "Authorization: Bearer <token>" \
-H "Content-Type: application/json" \
-d '{ /* request body */ }'/api/v1/activities/{activity_slug}/sessions/{session_slug}Get Session
Get a specific session.
Path parameters
| activity_slug* | string | |
| session_slug* | string |
Query parameters
| default_backend | string | default: "primary" |
Responses
| Field | Type | Description |
|---|---|---|
| uuid* | string | |
| slug* | string | |
| activity_uuid* | string | |
| name* | string | |
| description | string | null | |
| start_time* | string (date-time) | |
| end_time* | string (date-time) | |
| max_attendees | integer | null | |
| is_checkin_open | boolean | default: true |
| requires_ticket | boolean | null | |
| required_entitlement | string | null | |
| ticket_template_uuid | string | null | |
| sequence_number* | integer | |
| created_at* | string (date-time) | |
| updated_at | string (date-time) | null |
| Field | Type | Description |
|---|---|---|
| errors* | object | Map of field names to error messages. Use '_root' for form-level errors. |
| message* | string | Human-readable error summary |
| code | string | null | Machine-readable error code |
| Field | Type | Description |
|---|---|---|
| errors* | object | Map of field names to error messages. Use '_root' for form-level errors. |
| message* | string | Human-readable error summary |
| code | string | null | Machine-readable error code |
| Field | Type | Description |
|---|---|---|
| errors* | object | Map of field names to error messages. Use '_root' for form-level errors. |
| message* | string | Human-readable error summary |
| code | string | null | Machine-readable error code |
| Field | Type | Description |
|---|---|---|
| errors* | object | Map of field names to error messages. Use '_root' for form-level errors. |
| message* | string | Human-readable error summary |
| code | string | null | Machine-readable error code |
Example request
curl -X GET "https://api.davi.social/api/v1/activities/{activity_slug}/sessions/{session_slug}" \
-H "Authorization: Bearer <token>"/api/v1/activities/{activity_slug}/sessions/{session_slug}Delete Session
Delete a session.
Requires an org-scoped token for the activity's organization.
Path parameters
| activity_slug* | string | |
| session_slug* | string |
Query parameters
| default_backend | string | default: "primary" |
Responses
| Field | Type | Description |
|---|---|---|
| message* | string | Success or status message |
| Field | Type | Description |
|---|---|---|
| errors* | object | Map of field names to error messages. Use '_root' for form-level errors. |
| message* | string | Human-readable error summary |
| code | string | null | Machine-readable error code |
| Field | Type | Description |
|---|---|---|
| errors* | object | Map of field names to error messages. Use '_root' for form-level errors. |
| message* | string | Human-readable error summary |
| code | string | null | Machine-readable error code |
| Field | Type | Description |
|---|---|---|
| errors* | object | Map of field names to error messages. Use '_root' for form-level errors. |
| message* | string | Human-readable error summary |
| code | string | null | Machine-readable error code |
| Field | Type | Description |
|---|---|---|
| errors* | object | Map of field names to error messages. Use '_root' for form-level errors. |
| message* | string | Human-readable error summary |
| code | string | null | Machine-readable error code |
Example request
curl -X DELETE "https://api.davi.social/api/v1/activities/{activity_slug}/sessions/{session_slug}" \
-H "Authorization: Bearer <token>"/api/v1/organizations/{organization_slug}/activitiesList Organization Activities
List all activities for an organization.
Path parameters
| organization_slug* | string |
Query parameters
| default_backend | string | default: "primary" |
| page | integer | default: 1 · ≥ 1 |
| page_size | integer | default: 20 · ≥ 1 · ≤ 100 |
| sort_by | string | null | |
| sort_order | string | default: "asc" |
Responses
| Field | Type | Description | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| total_items* | integer | Total number of items available | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| total_pages* | integer | Total number of pages available | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| current_page* | integer | Current page number | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| items* | ActivityResponse[] | List of items on the current page | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||
array items · ActivityResponse
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Field | Type | Description |
|---|---|---|
| errors* | object | Map of field names to error messages. Use '_root' for form-level errors. |
| message* | string | Human-readable error summary |
| code | string | null | Machine-readable error code |
| Field | Type | Description |
|---|---|---|
| errors* | object | Map of field names to error messages. Use '_root' for form-level errors. |
| message* | string | Human-readable error summary |
| code | string | null | Machine-readable error code |
| Field | Type | Description |
|---|---|---|
| errors* | object | Map of field names to error messages. Use '_root' for form-level errors. |
| message* | string | Human-readable error summary |
| code | string | null | Machine-readable error code |
Example request
curl -X GET "https://api.davi.social/api/v1/organizations/{organization_slug}/activities" \
-H "Authorization: Bearer <token>"/api/v1/organizations/{organization_slug}/activitiesCreate Activity
Create a new activity for an organization.
Requires an org-scoped token for the target organization.
Path parameters
| organization_slug* | string |
Query parameters
| default_backend | string | default: "primary" |
Request body*application/json
| Field | Type | Description |
|---|---|---|
| name* | string | Name of the activity |
| description* | string | Description of the activity |
| image_file_uuid | string | string (uuid) | null | UUID of the image file associated with the activity |
| website_url | string | null | Website URL for the activity |
| additional_data | object | null | Additional JSON data for the activity |
| max_attendees | integer | null | Maximum number of attendees (None = unlimited) ≥ 1 |
| start_time | string (date-time) | null | Activity start time (for check-in validation) |
| end_time | string (date-time) | null | Activity end time (for check-in validation) |
| is_session_checkin_open | boolean | Master switch for session check-in (False = all session check-ins closed) default: true |
| ticket_template_uuid | string | string (uuid) | null | Default ticket reward template for the event |
| requires_ticket | boolean | Whether sessions require a ticket by default default: false |
| required_entitlement | string | null | Entitlement gate to attend (None = open; 'member' = any active member; a tier key = that capability). Sessions may override. |
Responses
| Field | Type | Description |
|---|---|---|
| uuid* | string | |
| slug* | string | |
| name* | string | |
| description | string | null | |
| organization_uuid* | string | |
| image_file_uuid | string | null | |
| image_file_url | string | null | |
| website_url | string | null | |
| additional_data | object | null | |
| created_at* | string (date-time) | |
| updated_at | string (date-time) | null | |
| max_attendees | integer | null | |
| start_time | string (date-time) | null | |
| end_time | string (date-time) | null | |
| is_session_checkin_open | boolean | default: true |
| ticket_template_uuid | string | null | |
| requires_ticket | boolean | default: false |
| required_entitlement | string | null |
| Field | Type | Description |
|---|---|---|
| errors* | object | Map of field names to error messages. Use '_root' for form-level errors. |
| message* | string | Human-readable error summary |
| code | string | null | Machine-readable error code |
| Field | Type | Description |
|---|---|---|
| errors* | object | Map of field names to error messages. Use '_root' for form-level errors. |
| message* | string | Human-readable error summary |
| code | string | null | Machine-readable error code |
| Field | Type | Description |
|---|---|---|
| errors* | object | Map of field names to error messages. Use '_root' for form-level errors. |
| message* | string | Human-readable error summary |
| code | string | null | Machine-readable error code |
| Field | Type | Description |
|---|---|---|
| errors* | object | Map of field names to error messages. Use '_root' for form-level errors. |
| message* | string | Human-readable error summary |
| code | string | null | Machine-readable error code |
| Field | Type | Description |
|---|---|---|
| errors* | object | Map of field names to error messages. Use '_root' for form-level errors. |
| message* | string | Human-readable error summary |
| code | string | null | Machine-readable error code |
Example request
curl -X POST "https://api.davi.social/api/v1/organizations/{organization_slug}/activities" \
-H "Authorization: Bearer <token>" \
-H "Content-Type: application/json" \
-d '{ /* request body */ }'