API Reference

activities

10 endpoints

GET/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_backendstring

default: "primary"

Responses

200Successful Response
FieldTypeDescription
uuid*string
slug*string
name*string
descriptionstring | null
organization_uuid*string
image_file_uuidstring | null
image_file_urlstring | null
website_urlstring | null
additional_dataobject | null
created_at*string (date-time)
updated_atstring (date-time) | null
max_attendeesinteger | null
start_timestring (date-time) | null
end_timestring (date-time) | null
is_session_checkin_openboolean

default: true

ticket_template_uuidstring | null
requires_ticketboolean

default: false

required_entitlementstring | null
401Authentication failed
FieldTypeDescription
errors*object

Map of field names to error messages. Use '_root' for form-level errors.

message*string

Human-readable error summary

codestring | null

Machine-readable error code

403Insufficient permissions
FieldTypeDescription
errors*object

Map of field names to error messages. Use '_root' for form-level errors.

message*string

Human-readable error summary

codestring | null

Machine-readable error code

404Resource not found
FieldTypeDescription
errors*object

Map of field names to error messages. Use '_root' for form-level errors.

message*string

Human-readable error summary

codestring | null

Machine-readable error code

422Validation error
FieldTypeDescription
errors*object

Map of field names to error messages. Use '_root' for form-level errors.

message*string

Human-readable error summary

codestring | null

Machine-readable error code

Example request

curl -X GET "https://api.davi.social/api/v1/activities/{activity_slug}" \
  -H "Authorization: Bearer <token>"
PATCH/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_backendstring

default: "primary"

Request body*application/json

FieldTypeDescription
namestring | null

Name of the activity

descriptionstring | null

Description of the activity

image_file_uuidstring | string (uuid) | null

UUID of the image file associated with the activity

website_urlstring | null

Website URL for the activity

additional_dataobject | null

Additional JSON data for the activity

max_attendeesinteger | null

Maximum number of attendees (None = unlimited)

≥ 1

start_timestring (date-time) | null

Activity start time (for check-in validation)

end_timestring (date-time) | null

Activity end time (for check-in validation)

is_session_checkin_openboolean | null

Master switch for session check-in (False = all session check-ins closed)

ticket_template_uuidstring | string (uuid) | null

Default ticket reward template for the event

requires_ticketboolean | null

Whether sessions require a ticket by default

required_entitlementstring | null

Entitlement gate to attend (send null to clear)

Responses

200Successful Response
FieldTypeDescription
uuid*string
slug*string
name*string
descriptionstring | null
organization_uuid*string
image_file_uuidstring | null
image_file_urlstring | null
website_urlstring | null
additional_dataobject | null
created_at*string (date-time)
updated_atstring (date-time) | null
max_attendeesinteger | null
start_timestring (date-time) | null
end_timestring (date-time) | null
is_session_checkin_openboolean

default: true

ticket_template_uuidstring | null
requires_ticketboolean

default: false

required_entitlementstring | null
400Invalid request
FieldTypeDescription
errors*object

Map of field names to error messages. Use '_root' for form-level errors.

message*string

Human-readable error summary

codestring | null

Machine-readable error code

401Authentication failed
FieldTypeDescription
errors*object

Map of field names to error messages. Use '_root' for form-level errors.

message*string

Human-readable error summary

codestring | null

Machine-readable error code

403Insufficient permissions
FieldTypeDescription
errors*object

Map of field names to error messages. Use '_root' for form-level errors.

message*string

Human-readable error summary

codestring | null

Machine-readable error code

404Resource not found
FieldTypeDescription
errors*object

Map of field names to error messages. Use '_root' for form-level errors.

message*string

Human-readable error summary

codestring | null

Machine-readable error code

422Validation error
FieldTypeDescription
errors*object

Map of field names to error messages. Use '_root' for form-level errors.

message*string

Human-readable error summary

codestring | 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 */ }'
DELETE/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_backendstring

default: "primary"

Responses

200Successful Response
FieldTypeDescription
message*string

Success or status message

401Authentication failed
FieldTypeDescription
errors*object

Map of field names to error messages. Use '_root' for form-level errors.

message*string

Human-readable error summary

codestring | null

Machine-readable error code

403Insufficient permissions
FieldTypeDescription
errors*object

Map of field names to error messages. Use '_root' for form-level errors.

message*string

Human-readable error summary

codestring | null

Machine-readable error code

404Resource not found
FieldTypeDescription
errors*object

Map of field names to error messages. Use '_root' for form-level errors.

message*string

Human-readable error summary

codestring | null

Machine-readable error code

422Validation error
FieldTypeDescription
errors*object

Map of field names to error messages. Use '_root' for form-level errors.

message*string

Human-readable error summary

codestring | null

Machine-readable error code

Example request

curl -X DELETE "https://api.davi.social/api/v1/activities/{activity_slug}" \
  -H "Authorization: Bearer <token>"
GET/api/v1/activities/{activity_slug}/attendees

List Activity Attendees

List all attendees across all sessions of an activity.

Path parameters

activity_slug*string

Query parameters

include_proofboolean

Include proof transaction info in response

default: false

default_backendstring

default: "primary"

pageinteger

default: 1 · ≥ 1

page_sizeinteger

default: 20 · ≥ 1 · ≤ 100

sort_bystring | null
sort_orderstring

default: "asc"

Responses

200Successful Response
FieldTypeDescription
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

FieldTypeDescription
uuid*string
activity_uuid*string
session_uuidstring | null
wallet_address*string
user_uuidstring | null
status*enum
registered_at*string (date-time)
attended_atstring (date-time) | null
additional_dataobject | null
created_at*string (date-time)
updated_atstring (date-time) | null
usernamestring | null
display_namestring | null
avatar_urlstring | null
proof_tx_idstring | null
proof_verifiedboolean | null
proof_tx_hashstring | null
proof_amountnumber | null
401Authentication failed
FieldTypeDescription
errors*object

Map of field names to error messages. Use '_root' for form-level errors.

message*string

Human-readable error summary

codestring | null

Machine-readable error code

403Insufficient permissions
FieldTypeDescription
errors*object

Map of field names to error messages. Use '_root' for form-level errors.

message*string

Human-readable error summary

codestring | null

Machine-readable error code

422Validation error
FieldTypeDescription
errors*object

Map of field names to error messages. Use '_root' for form-level errors.

message*string

Human-readable error summary

codestring | null

Machine-readable error code

Example request

curl -X GET "https://api.davi.social/api/v1/activities/{activity_slug}/attendees" \
  -H "Authorization: Bearer <token>"
GET/api/v1/activities/{activity_slug}/sessions

List Sessions

List all sessions for an activity.

Path parameters

activity_slug*string

Query parameters

default_backendstring

default: "primary"

pageinteger

default: 1 · ≥ 1

page_sizeinteger

default: 20 · ≥ 1 · ≤ 100

sort_bystring | null
sort_orderstring

default: "asc"

Responses

200Successful Response
FieldTypeDescription
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

FieldTypeDescription
uuid*string
slug*string
activity_uuid*string
name*string
descriptionstring | null
start_time*string (date-time)
end_time*string (date-time)
max_attendeesinteger | null
is_checkin_openboolean

default: true

requires_ticketboolean | null
required_entitlementstring | null
ticket_template_uuidstring | null
sequence_number*integer
created_at*string (date-time)
updated_atstring (date-time) | null
401Authentication failed
FieldTypeDescription
errors*object

Map of field names to error messages. Use '_root' for form-level errors.

message*string

Human-readable error summary

codestring | null

Machine-readable error code

403Insufficient permissions
FieldTypeDescription
errors*object

Map of field names to error messages. Use '_root' for form-level errors.

message*string

Human-readable error summary

codestring | null

Machine-readable error code

422Validation error
FieldTypeDescription
errors*object

Map of field names to error messages. Use '_root' for form-level errors.

message*string

Human-readable error summary

codestring | null

Machine-readable error code

Example request

curl -X GET "https://api.davi.social/api/v1/activities/{activity_slug}/sessions" \
  -H "Authorization: Bearer <token>"
POST/api/v1/activities/{activity_slug}/sessions

Create 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_backendstring

default: "primary"

Request body*application/json

FieldTypeDescription
name*string

Name of the session (e.g., 'Day 1 - Morning')

descriptionstring | null

Session description

start_time*string (date-time)

Session start time

end_time*string (date-time)

Session end time

max_attendeesinteger | null

Optional capacity override (None = inherit from activity)

≥ 1

is_checkin_openboolean

Manual toggle for check-in

default: true

requires_ticketboolean | null

Require a ticket for this session (None = inherit event default)

required_entitlementstring | null

Entitlement gate for this session (None = inherit event's)

ticket_template_uuidstring | string (uuid) | null

Per-session ticket override (None = inherit event default)

Responses

200Successful Response
FieldTypeDescription
uuid*string
slug*string
activity_uuid*string
name*string
descriptionstring | null
start_time*string (date-time)
end_time*string (date-time)
max_attendeesinteger | null
is_checkin_openboolean

default: true

requires_ticketboolean | null
required_entitlementstring | null
ticket_template_uuidstring | null
sequence_number*integer
created_at*string (date-time)
updated_atstring (date-time) | null
400Invalid request
FieldTypeDescription
errors*object

Map of field names to error messages. Use '_root' for form-level errors.

message*string

Human-readable error summary

codestring | null

Machine-readable error code

401Authentication failed
FieldTypeDescription
errors*object

Map of field names to error messages. Use '_root' for form-level errors.

message*string

Human-readable error summary

codestring | null

Machine-readable error code

403Insufficient permissions
FieldTypeDescription
errors*object

Map of field names to error messages. Use '_root' for form-level errors.

message*string

Human-readable error summary

codestring | null

Machine-readable error code

409Resource already exists
FieldTypeDescription
errors*object

Map of field names to error messages. Use '_root' for form-level errors.

message*string

Human-readable error summary

codestring | null

Machine-readable error code

422Validation error
FieldTypeDescription
errors*object

Map of field names to error messages. Use '_root' for form-level errors.

message*string

Human-readable error summary

codestring | 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 */ }'
GET/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_backendstring

default: "primary"

Responses

200Successful Response
FieldTypeDescription
uuid*string
slug*string
activity_uuid*string
name*string
descriptionstring | null
start_time*string (date-time)
end_time*string (date-time)
max_attendeesinteger | null
is_checkin_openboolean

default: true

requires_ticketboolean | null
required_entitlementstring | null
ticket_template_uuidstring | null
sequence_number*integer
created_at*string (date-time)
updated_atstring (date-time) | null
401Authentication failed
FieldTypeDescription
errors*object

Map of field names to error messages. Use '_root' for form-level errors.

message*string

Human-readable error summary

codestring | null

Machine-readable error code

403Insufficient permissions
FieldTypeDescription
errors*object

Map of field names to error messages. Use '_root' for form-level errors.

message*string

Human-readable error summary

codestring | null

Machine-readable error code

404Resource not found
FieldTypeDescription
errors*object

Map of field names to error messages. Use '_root' for form-level errors.

message*string

Human-readable error summary

codestring | null

Machine-readable error code

422Validation error
FieldTypeDescription
errors*object

Map of field names to error messages. Use '_root' for form-level errors.

message*string

Human-readable error summary

codestring | 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>"
DELETE/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_backendstring

default: "primary"

Responses

200Successful Response
FieldTypeDescription
message*string

Success or status message

401Authentication failed
FieldTypeDescription
errors*object

Map of field names to error messages. Use '_root' for form-level errors.

message*string

Human-readable error summary

codestring | null

Machine-readable error code

403Insufficient permissions
FieldTypeDescription
errors*object

Map of field names to error messages. Use '_root' for form-level errors.

message*string

Human-readable error summary

codestring | null

Machine-readable error code

404Resource not found
FieldTypeDescription
errors*object

Map of field names to error messages. Use '_root' for form-level errors.

message*string

Human-readable error summary

codestring | null

Machine-readable error code

422Validation error
FieldTypeDescription
errors*object

Map of field names to error messages. Use '_root' for form-level errors.

message*string

Human-readable error summary

codestring | 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>"
GET/api/v1/organizations/{organization_slug}/activities

List Organization Activities

List all activities for an organization.

Path parameters

organization_slug*string

Query parameters

default_backendstring

default: "primary"

pageinteger

default: 1 · ≥ 1

page_sizeinteger

default: 20 · ≥ 1 · ≤ 100

sort_bystring | null
sort_orderstring

default: "asc"

Responses

200Successful Response
FieldTypeDescription
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

FieldTypeDescription
uuid*string
slug*string
name*string
descriptionstring | null
organization_uuid*string
image_file_uuidstring | null
image_file_urlstring | null
website_urlstring | null
additional_dataobject | null
created_at*string (date-time)
updated_atstring (date-time) | null
max_attendeesinteger | null
start_timestring (date-time) | null
end_timestring (date-time) | null
is_session_checkin_openboolean

default: true

ticket_template_uuidstring | null
requires_ticketboolean

default: false

required_entitlementstring | null
401Authentication failed
FieldTypeDescription
errors*object

Map of field names to error messages. Use '_root' for form-level errors.

message*string

Human-readable error summary

codestring | null

Machine-readable error code

403Insufficient permissions
FieldTypeDescription
errors*object

Map of field names to error messages. Use '_root' for form-level errors.

message*string

Human-readable error summary

codestring | null

Machine-readable error code

422Validation error
FieldTypeDescription
errors*object

Map of field names to error messages. Use '_root' for form-level errors.

message*string

Human-readable error summary

codestring | null

Machine-readable error code

Example request

curl -X GET "https://api.davi.social/api/v1/organizations/{organization_slug}/activities" \
  -H "Authorization: Bearer <token>"
POST/api/v1/organizations/{organization_slug}/activities

Create 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_backendstring

default: "primary"

Request body*application/json

FieldTypeDescription
name*string

Name of the activity

description*string

Description of the activity

image_file_uuidstring | string (uuid) | null

UUID of the image file associated with the activity

website_urlstring | null

Website URL for the activity

additional_dataobject | null

Additional JSON data for the activity

max_attendeesinteger | null

Maximum number of attendees (None = unlimited)

≥ 1

start_timestring (date-time) | null

Activity start time (for check-in validation)

end_timestring (date-time) | null

Activity end time (for check-in validation)

is_session_checkin_openboolean

Master switch for session check-in (False = all session check-ins closed)

default: true

ticket_template_uuidstring | string (uuid) | null

Default ticket reward template for the event

requires_ticketboolean

Whether sessions require a ticket by default

default: false

required_entitlementstring | null

Entitlement gate to attend (None = open; 'member' = any active member; a tier key = that capability). Sessions may override.

Responses

200Successful Response
FieldTypeDescription
uuid*string
slug*string
name*string
descriptionstring | null
organization_uuid*string
image_file_uuidstring | null
image_file_urlstring | null
website_urlstring | null
additional_dataobject | null
created_at*string (date-time)
updated_atstring (date-time) | null
max_attendeesinteger | null
start_timestring (date-time) | null
end_timestring (date-time) | null
is_session_checkin_openboolean

default: true

ticket_template_uuidstring | null
requires_ticketboolean

default: false

required_entitlementstring | null
400Invalid request
FieldTypeDescription
errors*object

Map of field names to error messages. Use '_root' for form-level errors.

message*string

Human-readable error summary

codestring | null

Machine-readable error code

401Authentication failed
FieldTypeDescription
errors*object

Map of field names to error messages. Use '_root' for form-level errors.

message*string

Human-readable error summary

codestring | null

Machine-readable error code

403Insufficient permissions
FieldTypeDescription
errors*object

Map of field names to error messages. Use '_root' for form-level errors.

message*string

Human-readable error summary

codestring | null

Machine-readable error code

409Resource already exists
FieldTypeDescription
errors*object

Map of field names to error messages. Use '_root' for form-level errors.

message*string

Human-readable error summary

codestring | null

Machine-readable error code

422Validation error
FieldTypeDescription
errors*object

Map of field names to error messages. Use '_root' for form-level errors.

message*string

Human-readable error summary

codestring | 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 */ }'