---
title: "Get User Profile"
method: GET
path: "/v1/user/profile"
tags: ["user"]
---

# Get User Profile

`GET /v1/user/profile`

## Response `200`

Successful Response

- UserProfileWithSubscription
  - `user` UserProfileResponse, required
    - `id` integer, required
    - `email` string, required
    - `first_name` string, nullable
    - `last_name` string, nullable
    - `email_verified` boolean
    - `is_active` boolean
    - `role` string
    - `is_ambassador` boolean
    - `is_instructor` boolean
    - `account_type` string
    - `experience_choice` string, nullable
    - `marketing_consent` boolean
    - `profile_picture_url` string, nullable
    - `created_at` string, date-time, nullable
    - `last_login` string, date-time, nullable
    - `password_changed_at` string, date-time, nullable
    - `login_activities` LoginActivityResponse[]
      - `id` integer, required
      - `ip_address` string, nullable
      - `user_agent` string, nullable
      - `login_at` string, date-time, required
      - `success` boolean
    - `affiliate_id` integer, nullable
    - `ambassador_first_month_bonus_used` boolean
    - `is_banned` boolean
    - `banned_at` string, date-time, nullable
    - `banned_reason` string, nullable
  - `subscription` UserSubscriptionInfo
    - `plan_name` string, required
    - `is_active` boolean, required
    - `status` string, required
    - `billing_start` string, date-time, required
    - `billing_end` string, date-time, required
    - `renewal_date` string, date-time, required
    - `expires_at` string, date-time, required
  - `team` TeamInfo
    - `team_id` integer, required
    - `team_name` string, required
    - `team_size` integer, required — Legacy alias for the current number of team members
    - `is_owner` boolean, required
    - `active_seats` integer, required — Legacy number of purchased/billed seats
    - `member_count` integer, required — Current number of team members
    - `seat_capacity` integer, required — Configured team seat capacity
    - `billing_seats` integer, nullable — Number of seats in the active billing record
    - `billing_cycle` string, nullable
  - `daily_claim` DailyClaimInfo
    - `can_claim` boolean, required
    - `message` string, required
    - `total_claimed_days` integer, required
    - `max_claim_days` integer, required
    - `daily_claim_amount` number, required
    - `total_claimed_credits` number, required
    - `remaining_claims` integer, required
    - `total_claimable_credits` number, required
    - `last_claim_date` string, nullable
    - `next_claim_available_at` string, nullable

---

[API](https://skmtc.dev/kodik/apis/kodik-api.md) · [All operations](https://skmtc.dev/kodik/apis/kodik-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/kodik/kodik-api/revisions/55c71b347360/schema)
