Skip to main content

Documentation Index

Fetch the complete documentation index at: https://mintlify.com/egeuysall/ryva-archive/llms.txt

Use this file to discover all available pages before exploring further.

Overview

The Auth endpoints allow users to manage their profiles, preferences, and onboarding status. All endpoints require JWT authentication.
All auth endpoints require a valid JWT token in the Authorization header.

Get Current User

GET
endpoint
/v1/auth/me
Retrieve the current authenticated user’s profile with their organization memberships.

Response

id
string
required
User’s unique identifier (UUID)
email
string
required
User’s email address
full_name
string
User’s full name
avatar_url
string
URL to user’s avatar image
onboarding_completed
boolean
required
Whether user has completed onboarding
preferences
object
required
User preferences stored as key-value pairs
created_at
string
required
Timestamp when user was created (ISO 8601)
updated_at
string
required
Timestamp when user was last updated (ISO 8601)
organizations
array
required
List of organizations the user belongs to

Example

curl https://api.ryva.com/v1/auth/me \
  -H "Authorization: Bearer YOUR_JWT_TOKEN"
{
  "id": "123e4567-e89b-12d3-a456-426614174000",
  "email": "user@example.com",
  "full_name": "John Doe",
  "avatar_url": "https://example.com/avatar.jpg",
  "onboarding_completed": true,
  "preferences": {
    "theme": "dark",
    "notifications": true
  },
  "created_at": "2026-01-15T10:30:00Z",
  "updated_at": "2026-03-03T14:20:00Z",
  "organizations": [
    {
      "organization_id": "org-123e4567",
      "organization_name": "Acme Corp",
      "organization_slug": "acme-corp",
      "organization_plan": "team",
      "role": "owner",
      "joined_at": "2026-01-15T10:30:00Z"
    }
  ]
}

Update Profile

PATCH
endpoint
/v1/auth/profile
Update the current user’s profile information.

Request Body

full_name
string
User’s full name (optional)
avatar_url
string
URL to user’s avatar image (optional)

Response

id
string
required
User’s unique identifier
email
string
required
User’s email address
full_name
string
Updated full name
avatar_url
string
Updated avatar URL
updated_at
string
required
Timestamp when profile was updated

Example

curl -X PATCH https://api.ryva.com/v1/auth/profile \
  -H "Authorization: Bearer YOUR_JWT_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "full_name": "Jane Doe",
    "avatar_url": "https://example.com/new-avatar.jpg"
  }'

Complete Onboarding

POST
endpoint
/v1/auth/onboarding/complete
Mark the user’s onboarding as completed. This is typically called after the user finishes the initial setup flow.

Response

id
string
required
User’s unique identifier
email
string
required
User’s email address
onboarding_completed
boolean
required
Set to true after successful completion
updated_at
string
required
Timestamp when onboarding was completed

Example

curl -X POST https://api.ryva.com/v1/auth/onboarding/complete \
  -H "Authorization: Bearer YOUR_JWT_TOKEN"

Get Preferences

GET
endpoint
/v1/auth/preferences
Retrieve the user’s preferences.

Response

preferences
object
required
User preferences stored as key-value pairs. Can contain any custom fields.

Example

curl https://api.ryva.com/v1/auth/preferences \
  -H "Authorization: Bearer YOUR_JWT_TOKEN"

Update Preferences

PUT
endpoint
/v1/auth/preferences
Update the user’s preferences. This replaces all existing preferences.

Request Body

preferences
object
required
Complete preferences object to replace existing preferences

Response

id
string
required
User’s unique identifier
preferences
object
required
Updated preferences object
updated_at
string
required
Timestamp when preferences were updated

Example

curl -X PUT https://api.ryva.com/v1/auth/preferences \
  -H "Authorization: Bearer YOUR_JWT_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "preferences": {
      "theme": "light",
      "notifications": false,
      "language": "en"
    }
  }'

Error Responses

Unauthorized (401)

{
  "error": {
    "message": "Invalid or expired token",
    "code": "UNAUTHORIZED",
    "status": 401
  }
}

Validation Error (400)

{
  "error": {
    "message": "Invalid request body",
    "code": "VALIDATION_ERROR",
    "status": 400
  }
}

Build docs developers (and LLMs) love