Skip to content

Users endpoints

6 endpoints at https://api.vaif.studio, generated from the API's OpenAPI document. The REST API page covers authentication, and All endpoints lists every group.

GET /users/me

Response 200 (application/json)
{
  ok: boolean;
  user: {
    id: string;
    email: string;
    name: null | string;
    avatarUrl: null | string;
    phone: null | string;
    timezone: string;
    createdAt: string (date-time);
    updatedAt: string (date-time);
  };
}

PATCH /users/me

Request body (application/json)
{
  name?: string;
  avatarUrl?: string;
  phone?: string;
  timezone?: string;
}
Response 200 (application/json)
{
  ok: boolean;
  user: {
    id: string;
    email: string;
    name: null | string;
    avatarUrl: null | string;
    phone: null | string;
    timezone: string;
    createdAt: string (date-time);
    updatedAt: string (date-time);
  };
}

POST /users/me/change-password

Request body (application/json)
{
  currentPassword: string;
  newPassword: string;
}
Response 200 (application/json)
{
  ok: boolean;
}

POST /users/me/request-account-delete

Response 200 (application/json)
{
  ok: boolean;
  message: string;
}

GET /users/me/preferences

Response 200 (application/json)
{
  ok: boolean;
  preferences: {
    autoRunCeilingCredits: number;
    sidebarPins: string[];
    trainingDataConsent: false | true | null;
    trainingDataConsentAt: null | string (date-time);
    emailNotifications: boolean;
    marketingEmails: boolean;
    theme: string;
    sidebarCollapsed: boolean;
    copilotAutoSuggestions: boolean;
    customPreferences: any;
    updatedAt: string (date-time);
    lastUpdated: string (date-time);
  };
}

PATCH /users/me/preferences

Request body (application/json)
{
  trainingDataConsent?: boolean;
  emailNotifications?: boolean;
  marketingEmails?: boolean;
  theme?: "dark" | "light" | "system";
  sidebarCollapsed?: boolean;
  copilotAutoSuggestions?: boolean;
  customPreferences?: { [key: string]: any };
  autoRunCeilingCredits?: number;
  sidebarPins?: string[];
}
Response 200 (application/json)
{
  ok: boolean;
  preferences: any;
}