Organizer Registry API (1.0.0)

Download OpenAPI specification:

Namų Bendrija Saulė IT: it@saulesbendrija.lt

Private member registry API for "Namų Bendrija Saulė" (Lithuanian HOA). This API is implemented and hosted by the organizer (legal entity). Serverpod accesses this API to read/write private member data (phone, email, name, role, status).

Privacy & GDPR:

  • Private data never touches the blockchain.
  • Serverpod acts as a proxy with caching.
  • Organizer is the data controller.

members

Member management (private data)

Get list of members (with pagination)

Authorizations:
ApiKeyAuth
query Parameters
limit
integer <= 500
Default: 100
offset
integer
Default: 0
role
string
Enum: "member" "operator" "observer"
status
string
Enum: "pending_invitation" "active" "blocked"

Responses

Response samples

Content type
application/json
{
  • "data": [
    ],
  • "pagination": {
    }
}

Create a single member (used by Serverpod when CSV is imported)

Authorizations:
ApiKeyAuth
Request Body schema: application/json
required
full_name
required
string
phone
required
string
email
string
role
string
Default: "member"
Enum: "member" "operator" "observer"

Responses

Request samples

Content type
application/json
{
  • "full_name": "string",
  • "phone": "string",
  • "email": "string",
  • "role": "member"
}

Response samples

Content type
application/json
{
  • "member_id": "mbr_123456",
  • "wallet_address": "cryptounit1a9b4c7d3e5f2g6h8i0j",
  • "full_name": "Rasa Petrauskienė",
  • "phone": "+37061234567",
  • "email": "rasa@saulesbendrija.lt",
  • "role": "member",
  • "status": "pending_invitation",
  • "joined_at": "2019-08-24T14:15:22Z",
  • "updated_at": "2019-08-24T14:15:22Z"
}

Get a single member by ID

Authorizations:
ApiKeyAuth
path Parameters
member_id
required
string

Responses

Response samples

Content type
application/json
{
  • "member_id": "mbr_123456",
  • "wallet_address": "cryptounit1a9b4c7d3e5f2g6h8i0j",
  • "full_name": "Rasa Petrauskienė",
  • "phone": "+37061234567",
  • "email": "rasa@saulesbendrija.lt",
  • "role": "member",
  • "status": "pending_invitation",
  • "joined_at": "2019-08-24T14:15:22Z",
  • "updated_at": "2019-08-24T14:15:22Z"
}

Update member role or status

Authorizations:
ApiKeyAuth
path Parameters
member_id
required
string
Request Body schema: application/json
required
role
string
Enum: "member" "operator" "observer"
status
string
Enum: "active" "blocked"

Responses

Request samples

Content type
application/json
{
  • "role": "member",
  • "status": "active"
}

Response samples

Content type
application/json
{
  • "member_id": "mbr_123456",
  • "wallet_address": "cryptounit1a9b4c7d3e5f2g6h8i0j",
  • "full_name": "Rasa Petrauskienė",
  • "phone": "+37061234567",
  • "email": "rasa@saulesbendrija.lt",
  • "role": "member",
  • "status": "pending_invitation",
  • "joined_at": "2019-08-24T14:15:22Z",
  • "updated_at": "2019-08-24T14:15:22Z"
}

Delete a member (GDPR right to be forgotten)

Deletes private data from registry. Blockchain votes remain anonymised.

Authorizations:
ApiKeyAuth
path Parameters
member_id
required
string

Responses

Look up member by wallet address (used during voting)

Authorizations:
ApiKeyAuth
path Parameters
wallet_address
required
string
Example: cryptounit1a9b4c7d3e5f2g6h8i0j

Responses

Response samples

Content type
application/json
{
  • "member_id": "mbr_123456",
  • "wallet_address": "cryptounit1a9b4c7d3e5f2g6h8i0j",
  • "full_name": "Rasa Petrauskienė",
  • "phone": "+37061234567",
  • "email": "rasa@saulesbendrija.lt",
  • "role": "member",
  • "status": "pending_invitation",
  • "joined_at": "2019-08-24T14:15:22Z",
  • "updated_at": "2019-08-24T14:15:22Z"
}

import

Batch import / CSV operations

Bulk import members (CSV via JSON array)

Authorizations:
ApiKeyAuth
Request Body schema: application/json
required
required
Array of objects (ImportMember)

Responses

Request samples

Content type
application/json
{
  • "members": [
    ]
}

Response samples

Content type
application/json
{
  • "created": 0,
  • "failed": [
    ]
}

health

Health check for Serverpod

Health check for Serverpod monitoring

Authorizations:
ApiKeyAuth

Responses

Response samples

Content type
application/json
{
  • "status": "ok"
}