API Reference
organizations
24 endpoints
/api/v1/organizationsList Organizations
List organizations the current user is a member of or owns.
For org-scoped tokens, returns only the scoped organization.
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* | OrganizationResponse[] | List of items on the current page | ||||||||||||||||||||||||||||||||||||
array items · OrganizationResponse
| ||||||||||||||||||||||||||||||||||||||
| 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" \
-H "Authorization: Bearer <token>"/api/v1/organizationsCreate Organization
Create a new organization.
Query parameters
| default_backend | string | default: "primary" |
Request body*application/json
| Field | Type | Description |
|---|---|---|
| name* | string | min length 1 · max length 100 |
| description | string | null | max length 500 |
| owner_uuid* | string | string (uuid) | UUID of the organization owner |
Responses
| Field | Type | Description |
|---|---|---|
| uuid* | string | |
| name* | string | |
| slug* | string | The organization's address in `/api/v1/organizations/{slug}`. Derived from the name when the organization is created and fixed from then on, so renaming does not move it. Organizations created before slugs were derived carry a random one. |
| description | string | null | |
| website | string | null | |
| logo_image_file_uuid | string | null | |
| logo_image_file_url | string | null | |
| owner_uuid | string | null | User UUID of the organization owner (the OWNER-role member) |
| role | enum | null | Current user's role in this organization (populated in user-context listings) |
| 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/organizations" \
-H "Authorization: Bearer <token>" \
-H "Content-Type: application/json" \
-d '{ /* request body */ }'/api/v1/organizations/{organization_slug}Get Organization
Get an organization by slug (or uuid, until v1 is frozen).
Path parameters
| organization_slug* | string |
Query parameters
| default_backend | string | default: "primary" |
Responses
| Field | Type | Description |
|---|---|---|
| uuid* | string | |
| name* | string | |
| slug* | string | The organization's address in `/api/v1/organizations/{slug}`. Derived from the name when the organization is created and fixed from then on, so renaming does not move it. Organizations created before slugs were derived carry a random one. |
| description | string | null | |
| website | string | null | |
| logo_image_file_uuid | string | null | |
| logo_image_file_url | string | null | |
| owner_uuid | string | null | User UUID of the organization owner (the OWNER-role member) |
| role | enum | null | Current user's role in this organization (populated in user-context listings) |
| 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/organizations/{organization_slug}" \
-H "Authorization: Bearer <token>"/api/v1/organizations/{organization_slug}Update Organization
Update 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 | null | min length 1 · max length 100 |
| description | string | null | max length 500 |
| website | string | null | max length 200 |
| logo_image_file_uuid | string | string (uuid) | null |
Responses
| Field | Type | Description |
|---|---|---|
| uuid* | string | |
| name* | string | |
| slug* | string | The organization's address in `/api/v1/organizations/{slug}`. Derived from the name when the organization is created and fixed from then on, so renaming does not move it. Organizations created before slugs were derived carry a random one. |
| description | string | null | |
| website | string | null | |
| logo_image_file_uuid | string | null | |
| logo_image_file_url | string | null | |
| owner_uuid | string | null | User UUID of the organization owner (the OWNER-role member) |
| role | enum | null | Current user's role in this organization (populated in user-context listings) |
| 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 PATCH "https://api.davi.social/api/v1/organizations/{organization_slug}" \
-H "Authorization: Bearer <token>" \
-H "Content-Type: application/json" \
-d '{ /* request body */ }'/api/v1/organizations/{organization_slug}Delete Organization
Delete an organization.
Requires an org-scoped token for the target organization.
Path parameters
| organization_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/organizations/{organization_slug}" \
-H "Authorization: Bearer <token>"/api/v1/organizations/{organization_slug}/statsGet Organization Stats
Counts behind an organization dashboard.
Team members, membership tiers, active subscribers, activities, reward templates and issued cards.
Path parameters
| organization_slug* | string |
Query parameters
| default_backend | string | default: "primary" |
Responses
| Field | Type | Description |
|---|---|---|
| org_members_count* | integer | Number of organization team members |
| membership_tiers_count* | integer | Number of membership tiers |
| membership_members_count* | integer | Number of active membership subscribers |
| activities_count* | integer | Number of activities |
| rewards_count* | integer | Number of reward templates |
| cards_count* | integer | Number of issued cards |
| 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/organizations/{organization_slug}/stats" \
-H "Authorization: Bearer <token>"/api/v1/organizations/{organization_slug}/membership-tiersList Membership Tiers
List membership tiers 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* | MembershipTierResponse[] | List of items on the current page | |||||||||||||||||||||||||||||||||
array items · MembershipTierResponse
| |||||||||||||||||||||||||||||||||||
| 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}/membership-tiers" \
-H "Authorization: Bearer <token>"/api/v1/organizations/{organization_slug}/membership-tiersCreate Membership Tier
Create a new membership tier.
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 | min length 1 · max length 100 |
| description | string | null | max length 500 |
| price_cents* | integer | ≥ 0 |
| payment_interval* | enum | Payment interval: 'daily', 'weekly', 'monthly', 'yearly', or 'one_time' |
| entitlements | object | null | Capability keys this tier grants, mapped to their value (null for a boolean capability). The reserved 'member' key is implicit and stripped if supplied. |
Responses
| Field | Type | Description |
|---|---|---|
| uuid* | string | |
| slug* | string | |
| organization_uuid* | string | |
| name* | string | |
| description | string | null | |
| price_cents* | integer | |
| payment_interval* | enum | |
| entitlements | object | Capability keys this tier grants, mapped to their value (null for a boolean capability). Excludes the implicit 'member' key every active member holds. |
| 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/organizations/{organization_slug}/membership-tiers" \
-H "Authorization: Bearer <token>" \
-H "Content-Type: application/json" \
-d '{ /* request body */ }'/api/v1/organizations/{organization_slug}/membership-tiers/{tier_uuid}Get Membership Tier
Get a specific membership tier.
Path parameters
| tier_uuid* | string | |
| organization_slug* | string |
Query parameters
| default_backend | string | default: "primary" |
Responses
| Field | Type | Description |
|---|---|---|
| uuid* | string | |
| slug* | string | |
| organization_uuid* | string | |
| name* | string | |
| description | string | null | |
| price_cents* | integer | |
| payment_interval* | enum | |
| entitlements | object | Capability keys this tier grants, mapped to their value (null for a boolean capability). Excludes the implicit 'member' key every active member holds. |
| 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/organizations/{organization_slug}/membership-tiers/{tier_uuid}" \
-H "Authorization: Bearer <token>"/api/v1/organizations/{organization_slug}/membership-tiers/{tier_uuid}Update Membership Tier
Update a membership tier.
Requires an org-scoped token for the target organization.
Path parameters
| tier_uuid* | string | |
| organization_slug* | string |
Query parameters
| default_backend | string | default: "primary" |
Request body*application/json
| Field | Type | Description |
|---|---|---|
| name | string | null | min length 1 · max length 100 |
| description | string | null | max length 500 |
| price_cents | integer | null | ≥ 0 |
| payment_interval | enum | null | Payment interval: 'daily', 'weekly', 'monthly', 'yearly', or 'one_time' |
| entitlements | object | null | Full replacement of the capability keys this tier grants (null leaves them unchanged; {} clears all). The reserved 'member' key is implicit and stripped if supplied. |
Responses
| Field | Type | Description |
|---|---|---|
| uuid* | string | |
| slug* | string | |
| organization_uuid* | string | |
| name* | string | |
| description | string | null | |
| price_cents* | integer | |
| payment_interval* | enum | |
| entitlements | object | Capability keys this tier grants, mapped to their value (null for a boolean capability). Excludes the implicit 'member' key every active member holds. |
| 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 PATCH "https://api.davi.social/api/v1/organizations/{organization_slug}/membership-tiers/{tier_uuid}" \
-H "Authorization: Bearer <token>" \
-H "Content-Type: application/json" \
-d '{ /* request body */ }'/api/v1/organizations/{organization_slug}/membership-tiers/{tier_uuid}Delete Membership Tier
Delete a membership tier.
Requires an org-scoped token for the target organization.
Path parameters
| tier_uuid* | string | |
| organization_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/organizations/{organization_slug}/membership-tiers/{tier_uuid}" \
-H "Authorization: Bearer <token>"/api/v1/organizations/{organization_slug}/membershipGet My Organization Membership
The caller's own role in this organization.
Without this an integration has to infer its authority from whether the organization appears in a listing, which is a different question and a fragile answer.
Path parameters
| organization_slug* | string |
Query parameters
| default_backend | string | default: "primary" |
Responses
| Field | Type | Description |
|---|---|---|
| organization_uuid* | string | |
| organization_slug* | string | Path identifier |
| role | string | null | The caller's role in this organization. `admin` when the caller holds the platform ownership bypass rather than a membership. |
| 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/organizations/{organization_slug}/membership" \
-H "Authorization: Bearer <token>"/api/v1/organizations/{organization_slug}/staffList Organization Staff
List all staff members of 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* | OrganizationMemberEnrichedResponse[] | List of items on the current page | |||||||||||||||||||||||||||||||||||||||||||||
array items · OrganizationMemberEnrichedResponse
| |||||||||||||||||||||||||||||||||||||||||||||||
| 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}/staff" \
-H "Authorization: Bearer <token>"/api/v1/organizations/{organization_slug}/staffAdd Organization Staff
Add a staff member to 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 |
|---|---|---|
| user_uuid* | string | UUID of the user joining the organization |
| role* | string | Role of the user in the organization, e.g., 'manager', 'member' |
Responses
| Field | Type | Description |
|---|---|---|
| uuid* | string | |
| user_uuid* | string | |
| organization_uuid* | string | |
| role* | enum | |
| joined_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/organizations/{organization_slug}/staff" \
-H "Authorization: Bearer <token>" \
-H "Content-Type: application/json" \
-d '{ /* request body */ }'/api/v1/organizations/{organization_slug}/staff/meLeave Organization
Leave an organization you are a member of.
Self-service: removes the caller's own membership, which is why it is
addressed as me rather than by uuid — the caller cannot name someone
else here. The owner cannot leave without first transferring ownership,
and a sole manager must hand off the manager role first.
Path parameters
| organization_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/organizations/{organization_slug}/staff/me" \
-H "Authorization: Bearer <token>"/api/v1/organizations/{organization_slug}/transfer-ownershipTransfer Organization Ownership
Transfer organization ownership to an existing member.
Owner-only. The caller is checked against the organization's OWNER member row in the database (not a token claim), so a demoted/removed caller cannot invoke this even with a still-valid org-scoped token. The previous owner is kept on the roster as a manager.
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 |
|---|---|---|
| new_owner_user_uuid* | string | string (uuid) | UUID of the member who will become the new organization owner |
Responses
| Field | Type | Description |
|---|---|---|
| uuid* | string | |
| name* | string | |
| slug* | string | The organization's address in `/api/v1/organizations/{slug}`. Derived from the name when the organization is created and fixed from then on, so renaming does not move it. Organizations created before slugs were derived carry a random one. |
| description | string | null | |
| website | string | null | |
| logo_image_file_uuid | string | null | |
| logo_image_file_url | string | null | |
| owner_uuid | string | null | User UUID of the organization owner (the OWNER-role member) |
| role | enum | null | Current user's role in this organization (populated in user-context listings) |
| 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/organizations/{organization_slug}/transfer-ownership" \
-H "Authorization: Bearer <token>" \
-H "Content-Type: application/json" \
-d '{ /* request body */ }'/api/v1/organizations/{organization_slug}/staff/{user_uuid}Get Organization Staff Member
Get a specific staff member's details.
Path parameters
| user_uuid* | string | |
| organization_slug* | string |
Query parameters
| default_backend | string | default: "primary" |
Responses
| Field | Type | Description |
|---|---|---|
| uuid* | string | |
| user_uuid* | string | |
| organization_uuid* | string | |
| role* | enum | |
| joined_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/organizations/{organization_slug}/staff/{user_uuid}" \
-H "Authorization: Bearer <token>"/api/v1/organizations/{organization_slug}/staff/{user_uuid}Update Organization Staff Role
Update a staff member's role.
Requires an org-scoped token for the target organization.
Path parameters
| user_uuid* | string | |
| organization_slug* | string |
Query parameters
| default_backend | string | default: "primary" |
Request body*application/json
| Field | Type | Description |
|---|---|---|
| role* | string | Role in the organization, e.g. 'manager', 'member' |
Responses
| Field | Type | Description |
|---|---|---|
| uuid* | string | |
| user_uuid* | string | |
| organization_uuid* | string | |
| role* | enum | |
| joined_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 PATCH "https://api.davi.social/api/v1/organizations/{organization_slug}/staff/{user_uuid}" \
-H "Authorization: Bearer <token>" \
-H "Content-Type: application/json" \
-d '{ /* request body */ }'/api/v1/organizations/{organization_slug}/staff/{user_uuid}Remove Organization Staff
Remove a staff member from an organization.
Requires an org-scoped token for the target organization.
Path parameters
| user_uuid* | string | |
| organization_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/organizations/{organization_slug}/staff/{user_uuid}" \
-H "Authorization: Bearer <token>"/api/v1/organizations/{organization_slug}/staff-invitesList Staff Invites
List staff invitations for the organization.
Path parameters
| organization_slug* | string |
Query parameters
| status | string | null | Filter by status: pending, accepted, declined, expired, revoked |
| default_backend | string | default: "primary" |
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* | InviteWithOrgResponse[] | List of items on the current page | |||||||||||||||||||||||||||||||||||||||
array items · InviteWithOrgResponse
| |||||||||||||||||||||||||||||||||||||||||
| 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}/staff-invites" \
-H "Authorization: Bearer <token>"/api/v1/organizations/{organization_slug}/staff-invitesCreate Staff Invite
Create a staff invitation to join the organization.
Returns the invite with token. Use POST /staff-invites/{invite_uuid}/resend to send the invite email with a custom URL.
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 |
|---|---|---|
| email* | string (email) | Email address to invite |
| role | enum | Role to assign: 'manager' or 'member' default: "member" |
Responses
| Field | Type | Description |
|---|---|---|
| uuid* | string | |
| organization_uuid* | string | |
| invited_email* | string | |
| invited_by_user_uuid* | string | |
| role* | enum | |
| status* | enum | |
| expires_at* | string (date-time) | |
| created_at* | string (date-time) | |
| accepted_at | string (date-time) | null | |
| accepted_by_user_uuid | string | null | |
| token* | string | Invite token to build the invite URL |
| 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}/staff-invites" \
-H "Authorization: Bearer <token>" \
-H "Content-Type: application/json" \
-d '{ /* request body */ }'/api/v1/organizations/{organization_slug}/staff-invites/{invite_uuid}Revoke Staff Invite
Revoke a pending staff invitation.
Requires an org-scoped token for the target organization.
Path parameters
| invite_uuid* | string | |
| organization_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/organizations/{organization_slug}/staff-invites/{invite_uuid}" \
-H "Authorization: Bearer <token>"/api/v1/organizations/{organization_slug}/staff-invites/{invite_uuid}/resendResend Staff Invite Email
Resend the staff invitation email with a custom URL.
Requires an org-scoped token for the target organization.
Path parameters
| invite_uuid* | string | |
| organization_slug* | string |
Query parameters
| default_backend | string | default: "primary" |
Request body*application/json
| Field | Type | Description |
|---|---|---|
| invite_url* | string | Full invite URL for the email (e.g., https://app.example.com/invites/abc123) |
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 |
| 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}/staff-invites/{invite_uuid}/resend" \
-H "Authorization: Bearer <token>" \
-H "Content-Type: application/json" \
-d '{ /* request body */ }'/api/v1/organizations/{organization_slug}/staff-invites/{invite_uuid}/refreshRefresh Staff Invite
Refresh a staff invitation token and expiration.
Returns the invite with new token. Use POST /staff-invites/{invite_uuid}/resend to send the invite email with a custom URL.
Requires an org-scoped token for the target organization.
Path parameters
| invite_uuid* | string | |
| organization_slug* | string |
Query parameters
| default_backend | string | default: "primary" |
Responses
| Field | Type | Description |
|---|---|---|
| uuid* | string | |
| organization_uuid* | string | |
| invited_email* | string | |
| invited_by_user_uuid* | string | |
| role* | enum | |
| status* | enum | |
| expires_at* | string (date-time) | |
| created_at* | string (date-time) | |
| accepted_at | string (date-time) | null | |
| accepted_by_user_uuid | string | null | |
| token* | string | Invite token to build the invite URL |
| 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}/staff-invites/{invite_uuid}/refresh" \
-H "Authorization: Bearer <token>"