API Reference

memberships

10 endpoints

GET/api/v1/organizations/{organization_slug}/memberships

List Memberships

List the organization's members and the tier each holds.

Path parameters

organization_slug*string

Query parameters

searchstring | null

Search by name, username, or email

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*UserMembershipWithUserResponse[]

List of items on the current page

array items · UserMembershipWithUserResponse

FieldTypeDescription
uuid*string
user_uuid*string
organization_uuid*string
tier_uuid*string
custom_tier_price_centsinteger | null
custom_tier_payment_intervalenum | null
valid_untilstring (date-time) | null
created_at*string (date-time)
updated_atstring (date-time) | null
user*MemberUserSummary

object · MemberUserSummary

FieldTypeDescription
uuid*string
first_namestring | null
last_namestring | null
usernamestring | null
emailstring | null
avatar_urlstring | 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}/memberships" \
  -H "Authorization: Bearer <token>"
POST/api/v1/organizations/{organization_slug}/memberships

Join Membership

Enrol a user in one of the organization's membership tiers.

Path parameters

organization_slug*string

Query parameters

default_backendstring

default: "primary"

Request body*application/json

FieldTypeDescription
user_uuid*string

UUID of the user joining the membership

membership_tier_slug*string

Slug of the membership tier to join

custom_tier_price_centsinteger | null

Custom price in cents, if applicable

custom_tier_payment_intervalenum | null

Custom payment interval, if applicable

Responses

200Successful Response
FieldTypeDescription
uuid*string
user_uuid*string
organization_uuid*string
tier_uuid*string
custom_tier_price_centsinteger | null
custom_tier_payment_intervalenum | null
valid_untilstring (date-time) | null
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/organizations/{organization_slug}/memberships" \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{ /* request body */ }'
GET/api/v1/organizations/{organization_slug}/memberships/{user_uuid}

Get User Membership

Get one member's active membership.

Path parameters

user_uuid*string
organization_slug*string

Query parameters

default_backendstring

default: "primary"

Responses

200Successful Response
FieldTypeDescription
uuid*string
user_uuid*string
organization_uuid*string
tier_uuid*string
custom_tier_price_centsinteger | null
custom_tier_payment_intervalenum | null
valid_untilstring (date-time) | null
created_at*string (date-time)
updated_atstring (date-time) | null
user*MemberUserSummary

object · MemberUserSummary

FieldTypeDescription
uuid*string
first_namestring | null
last_namestring | null
usernamestring | null
emailstring | null
avatar_urlstring | 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/organizations/{organization_slug}/memberships/{user_uuid}" \
  -H "Authorization: Bearer <token>"
PATCH/api/v1/organizations/{organization_slug}/memberships/{user_uuid}

Update User Membership

Move a member's active membership to a different tier.

Preserves the join date and history instead of requiring a leave + rejoin, and leaves the existing term (valid_until) alone — use renew to extend that. The tier is the only part of a membership a caller sets directly.

Path parameters

user_uuid*string
organization_slug*string

Query parameters

default_backendstring

default: "primary"

Request body*application/json

FieldTypeDescription
membership_tier_slug*string

Slug of the membership tier to move the member to

custom_tier_price_centsinteger | null

Custom price in cents for the new tier, if applicable

custom_tier_payment_intervalenum | null

Custom payment interval for the new tier, if applicable

Responses

200Successful Response
FieldTypeDescription
uuid*string
user_uuid*string
organization_uuid*string
tier_uuid*string
custom_tier_price_centsinteger | null
custom_tier_payment_intervalenum | null
valid_untilstring (date-time) | null
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

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/organizations/{organization_slug}/memberships/{user_uuid}" \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{ /* request body */ }'
DELETE/api/v1/organizations/{organization_slug}/memberships/{user_uuid}

Leave Membership

Cancel a member's active membership.

Path parameters

user_uuid*string
organization_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/organizations/{organization_slug}/memberships/{user_uuid}" \
  -H "Authorization: Bearer <token>"
POST/api/v1/organizations/{organization_slug}/memberships/{user_uuid}/renew

Renew Membership

Extend a membership by another term.

The new term is derived from the tier rather than supplied, which is why this is an action and not a field on the membership.

Path parameters

user_uuid*string
organization_slug*string

Query parameters

default_backendstring

default: "primary"

Responses

200Successful Response
FieldTypeDescription
uuid*string
user_uuid*string
organization_uuid*string
tier_uuid*string
custom_tier_price_centsinteger | null
custom_tier_payment_intervalenum | null
valid_untilstring (date-time) | null
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/organizations/{organization_slug}/memberships/{user_uuid}/renew" \
  -H "Authorization: Bearer <token>"
GET/api/v1/organizations/{organization_slug}/memberships/{user_uuid}/wallet

Get Membership Wallet

The wallet holding this membership's balance, with its connection info.

Path parameters

user_uuid*string
organization_slug*string

Query parameters

default_backendstring

default: "primary"

Responses

200Successful Response
FieldTypeDescription
wallet_uuid*string
wallet_address*string
user_uuid*string
user_membership_uuidstring | null
created_at*string (date-time)
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/organizations/{organization_slug}/memberships/{user_uuid}/wallet" \
  -H "Authorization: Bearer <token>"
GET/api/v1/organizations/{organization_slug}/memberships/{user_uuid}/history

Get Membership History

Every membership record this user has held here, cancelled ones included.

Path parameters

user_uuid*string
organization_slug*string

Query parameters

default_backendstring

default: "primary"

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*UserMembershipHistoryResponse[]

List of items on the current page

array items · UserMembershipHistoryResponse

FieldTypeDescription
uuid*string
user_uuid*string
organization_uuid*string
tier_uuid*string
custom_tier_price_centsinteger | null
custom_tier_payment_intervalenum | null
valid_untilstring (date-time) | null
joined_at*string (date-time)
deleted_atstring (date-time) | null
status*enum
created_at*string (date-time)
updated_atstring (date-time) | null
tier_name*string
tier_slug*string
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}/memberships/{user_uuid}/history" \
  -H "Authorization: Bearer <token>"
GET/api/v1/organizations/{organization_slug}/memberships/{user_uuid}/cards

Get Membership Cards

Cards linked to this membership's wallet.

Freezing one goes through the organization's card endpoints, which address the same cards by uuid.

Path parameters

user_uuid*string
organization_slug*string

Query parameters

default_backendstring

default: "primary"

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*MembershipCardResponse[]

List of items on the current page

array items · MembershipCardResponse

FieldTypeDescription
card_uuid*string
identifier*string
card_type*enum
is_frozen*boolean
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/organizations/{organization_slug}/memberships/{user_uuid}/cards" \
  -H "Authorization: Bearer <token>"
GET/api/v1/memberships

List Memberships

Get all active memberships for the current user across all organizations.

Returns membership details including organization name and tier information.

For org-scoped tokens, filters to only memberships in the scoped organization.

Query parameters

default_backendstring

default: "primary"

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*UserMembershipWithOrgResponse[]

List of items on the current page

array items · UserMembershipWithOrgResponse

FieldTypeDescription
uuid*string
user_uuid*string
organization_uuid*string
tier_uuid*string
custom_tier_price_centsinteger | null
custom_tier_payment_intervalenum | null
valid_untilstring (date-time) | null
joined_at*string (date-time)
created_at*string (date-time)
updated_atstring (date-time) | null
organization_name*string
organization_slug*string
tier_name*string
tier_slug*string
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/memberships" \
  -H "Authorization: Bearer <token>"