API ReferenceAuthentication APIGET /me

GET /auth/me

Returns the currently authenticated user. Requires a valid JWT in the Authorization header (obtained from login, OTP verify, or register).

⚠️

Authentication required. You must send a valid JWT: Authorization: Bearer <token>

Endpoint

GET /v1/public/projects/:projectSlug/auth/me

Request Parameters

Path Parameters

ParameterTypeRequiredDescription
projectSlugstringYour project’s unique slug

Headers

HeaderRequiredDescription
AuthorizationBearer <jwt-token> — token from login, register, or OTP verify

Response

Success (200 OK)

{
  "id": "user-uuid-here",
  "email": "[email protected]",
  "name": "Jane Doe",
  "email_verified_at": "2026-02-10T10:00:00Z",
  "profile_extras": {
    "company": "Example Inc",
    "phone": "+1-555-1234"
  }
}
FieldTypeDescription
idstringUser UUID
emailstringUser’s email (phone-only users have a placeholder email)
namestringDisplay name
email_verified_atstring | nullISO date when email was verified, or null
profile_extrasobjectCustom signup fields stored for this user

Error Responses

Status CodeError CodeDescription
401UNAUTHORIZEDMissing or invalid token
429RATE_LIMIT_EXCEEDEDToo many requests
500INTERNAL_SERVER_ERRORServer error

Hooks

This endpoint is read-only. You can optionally attach a project event such as auth.me.read to track profile reads. Configure in Project → Hooks.

Try It Now

Paste a JWT from a previous login or register call to test.

GEThttps://api.aerostack.dev/v1/public/projects/your-project/auth/me

SDK Example

const token = localStorage.getItem('authToken');
const response = await fetch(
  'https://api.aerostack.dev/v1/public/projects/your-project/auth/me',
  {
    headers: {
      'Authorization': `Bearer ${token}`
    }
  }
);
 
if (!response.ok) {
  if (response.status === 401) {
    // Token expired or invalid — redirect to login
    window.location.href = '/login';
  }
  throw new Error((await response.json()).message);
}
 
const user = await response.json();
console.log('Current user:', user);

PATCH /auth/me

Update the current user’s profile.

Request

PATCH /v1/public/projects/:projectSlug/auth/me

Body (JSON)

FieldTypeDescription
namestringUpdate display name
avatar_image_idstringImportant: The ID from POST /storage/upload to set as avatar
profile_extrasobjectUpdate custom profile fields (merges with existing)
first_namestringUpdate first name (synced to customer record)
last_namestringUpdate last name (synced to customer record)
phonestringUpdate phone number

To remove a field, set it to null.

Example: Setting Avatar

After uploading a file and getting an ID (e.g., 725365d7...), link it to the user:

{
  "avatar_image_id": "725365d7-21fc-45eb-b6ec-8390f0a438d1"
}

Response

{
  "success": true
}

DELETE /auth/me/avatar

Remove the current user’s avatar image.

Request

DELETE /v1/public/projects/:projectSlug/auth/me/avatar

Response

{
  "success": true,
  "message": "Avatar removed"
}