---
# System prepended metadata

title: Sallyer Specs

---



# Sallyer Specs

## User Endpoints
- `/me [POST]`: Add user data
- `/me [GET]`: Retrieve user data
- `/me [PATCH]`: Update user data
- `/me [DELETE]`: Delete user data

### Response Structure
```json
{
  "id": "User unique ID",
  "firebase": "Firebase Response",
  "lang": "User Language (zh-tw, en)",
  "onboarding": "Boolean for onboarding survey display",
  "profile": {
    "name": "Public name",
    "avatar": "Profile picture URL (User upload > Google Firebase > Undefined)",
    "intro": "Personal note (max 150 characters)",
    "social_media": "Social media URLs (Facebook, YouTube, Instagram, LinkedIn)",
    "certificates": "Future certification badges",
    "phone": "Phone number (Sensitive data, not displayed to sharers, SMS verification in future)",
    "firstname": "First name (Sensitive data, not displayed to sharers)",
    "lastname": "Last name (Sensitive data, not displayed to sharers)",
    "birthday": "Birthdate (YYYY-MM-DD, editable only once)"
  },
  "role": "User role (default: user, admin, editor, partner)",
  "profile_published": "Boolean for profile visibility",
  "profile_approved": "Boolean for profile approval (Editable only via React admin)",
  "created_at": "Timestamp of user creation",
  "updated_at": "Timestamp of last user update"
}
```



## System Endpoints
- `/system/auth_email/:email` [GET]
  - Admins use this to get a User custom token for login.

### Google Token Retrieval
- `/system/gtoken` [POST]
  - Used by React admin to obtain a Google token for login.

### Internationalization Testing
- `/system/testI18n` [GET]
  - Used to test internationalization (i18n).

## Sharers Endpoints

### Create Site
- `/sharers/create-site` [POST]
  - Used to add a new site.
- `/sharers/create-site?type=talent` [POST]
  - Used to add talent-related content.
- `/sharers/create-site?type=event` [POST]
  - Used to add event-related content.
- `/sharers/create-site?type=experience` [POST]
  - Used to add experience-related content.
- `/sharers/create-site?type=general` [POST]
  - Used to add general pages.
- **Request Body**:
  - `html_body: String` - HTML content of the site.

### Update Site
- `/sharers/update-site` [PATCH]
  - Used to update a site.
- `/sharers/update-site?type=talent` [PATCH]
  - Used to update talent-related content.
- `/sharers/update-site?type=event` [PATCH]
  - Used to update event-related content.
- `/sharers/update-site?type=experience` [PATCH]
  - Used to update experience-related content.
- `/sharers/update-site?type=general` [PATCH]
  - Used to update general pages.
- **Request Body**:
  - `html_body: String` - HTML content of the site.

### Check Site Existence
- `/sharers/check-sites` [GET]
- **Query Parameters**:
  - `url: String` - URL of the site to be checked.
