---
title: "Register a new user"
method: POST
path: "/api/v1/auth/register"
tags: ["Auth"]
---

# Register a new user

`POST /api/v1/auth/register`

## Request

- Base URL: `https://api.flexiple.com` (the document declares no server; this is the origin it was published from)
- URL: `https://api.flexiple.com/api/v1/auth/register`
- Auth: none declared

Talent registration returns the user payload with a bearer token. CLIENT registration (role "client") is WorkOS-native and instead returns { authenticated, user_id, steer } while sealing the httpOnly workos_session cookie — no bearer token is minted for clients.

## Request body

- object
  - `email` string, required
  - `password` string, required
  - `first_name` string
  - `last_name` string
  - `role` 'client' | 'talent', required
  - `signup_intent` 'client' | 'talent'
  - `signup_source` 'old' | 'resume' | 'linkedin_url' | 'manual' | 'jd_old' | 'jd_resume' | 'jd_linkedin' | 'jd_manual'

## Response `201`

User registered

- object
  - `data` union, required
    - AccountUserWithDetail
      - `id` integer, required
      - `email` string, required
      - `role` 'client' | 'talent' | 'admin', required
      - `first_name` string, nullable, required
      - `last_name` string, nullable, required
      - `full_name` string, required
      - `deleted` boolean, required
      - `onboarding_step` 'registered' | 'intent_selected' | 'details_submitted' | 'completed', required
      - `dismissed_hints` string[], required
      - `confirmed` boolean, required
      - `unconfirmed_email` string, nullable, required
      - `password_set` boolean, required
      - `token` string
      - `client_account` ClientAccount
        - `id` integer, required
        - `created_at` string, date-time, required
        - `updated_at` string, date-time, required
        - `booked_call_for` string
        - `client_type` 'services' | 'product', required
        - `time_zone` string, required
        - `company_id` integer
        - `company_name` string
        - `company` NewCompanyWithDetail
          - `id` integer, required
          - `created_at` string, date-time, required
          - `updated_at` string, date-time, required
          - `name` string, required
          - `primary_domain` string, nullable, required
          - `description` string, nullable, required
          - `slug` string, required
          - `website` string, required
          - `logo_url` string
          - `location` Location
            - `id` integer, required
            - `osm_id` integer, nullable, required
            - `osm_type` string, nullable, required
            - `city` string, nullable, required
            - `state` string, nullable, required
            - `country` string, nullable, required
            - `country_code` string, nullable, required
            - `formatted` string, required
            - `location_type` 'country' | 'state' | 'city', required
          - `industries` string[], required
          - `company_types` string[], required
          - `business_models` string[], required
          - `about` string
          - `team_members` object[], required
            - `name` string, required
            - `designation` string, required
            - `linkedin_url` string, nullable
          - `one_liner` string
          - `other_info` string
          - `team_size` string
          - `client_account_id` integer
          - `investors` string[], required
          - `funding_rounds_list` object[], required
            - `date` string, nullable
            - `type` string, nullable
            - `amount` number, nullable
            - `currency` string, nullable
            - `investors` string[], required
      - `booked_call_for` string
      - `cal_booking_uid` string
      - `client_user_role` 'admin' | 'member', required
      - `approval_status` 'pending' | 'invited' | 'approved' | 'rejected', required
      - `new_user` boolean
      - `signup_source` string
      - `phone_number` object
        - `number` string, required
        - `country_code` string, required
      - `talent_profile` TalentProfile
        - `id` string, required
        - `first_name` string, nullable, required
        - `last_name` string, nullable, required
        - `profile_type` string, required
        - `deleted` boolean, required
        - `expected_ctc` object
          - `amount` number, required
          - `currency` string, required
          - `display_scale` number, required
          - `display_unit` string, required
          - `formatted_amount` number, required
          - `formatted` string, required
        - `gender` 'male' | 'female' | 'null', nullable, required
        - `unlocked` boolean, required
        - `linkedin_url` string
        - `months_of_experience` integer, nullable, required
        - `notice_period_days` string
        - `current_ctc` object
          - `amount` number, required
          - `currency` string, required
          - `display_scale` number, required
          - `display_unit` string, required
          - `formatted_amount` number, required
          - `formatted` string, required
        - `overridden_fields` string[], required
        - `original_values` object
          - `current_ctc` object, nullable
            - `amount` number, required
            - `currency` string, required
            - `display_scale` number, required
            - `display_unit` string, required
            - `formatted_amount` number, required
            - `formatted` string, required
          - `notice_period_exact` number, nullable
        - `location` Location, required
          - `id` integer, required
          - `osm_id` integer, nullable, required
          - `osm_type` string, nullable, required
          - `city` string, nullable, required
          - `state` string, nullable, required
          - `country` string, nullable, required
          - `country_code` string, nullable, required
          - `formatted` string, required
          - `location_type` 'country' | 'state' | 'city', required
        - `resume_parsing` boolean, required
        - `active` boolean
    - object
      - `authenticated` boolean, required
      - `user_id` integer, required
      - `steer` string, nullable
  - `meta` object, nullable

---

[API](https://skmtc.dev/flexiple/apis/flexiple-platform-api-v1.md) - [All operations](https://skmtc.dev/flexiple/apis/flexiple-platform-api-v1/llms.txt) - [OpenAPI document](https://skmtc.dev/flexiple/apis/flexiple-platform-api-v1/revisions/27e7987859f2?raw)
