---
title: "Register user"
method: POST
path: "/v3/users"
tags: ["Users"]
---

# Register user

`POST /v3/users`

## Request

- Base URL: `https://www.polaraccesslink.com`
- URL: `https://www.polaraccesslink.com/v3/users`
- Auth: OAuth 2
  - Authorization code: `https://flow.polar.com/oauth2/authorization`
  - Token URL: `https://polarremote.com/v2/oauth2/token` scopes: `accesslink.read_all`
- TypeScript: <https://skmtc.dev/polar-com/apis/polar-accesslink-api/docs/v3/users/post.ts> (a function with typed inputs; its response is checked against the schema)

Once partner has been authorized by user, partner must register the user before being able to access its data. API user-id and Polar User Id (polar-user-id) are interchangeable terms.

## Request body

- Register: Model for registering user to partner.
  - `member-id` string, required: Partner's custom identifier for user.

## Response `200`

User's base information.

- User: User's basic information
  - `polar-user-id` integer: User's id in Polar database
  - `member-id` string: User's identifier in partner's database
  - `registration-date` string, date-time: Timestamp marked when ACCEPTED
  - `first-name` string: User's first name
  - `last-name` string: User's surname
  - `birthdate` string: User's birthdate as YYYY-MM-DD
  - `gender` 'MALE' | 'FEMALE': User's sex
  - `weight` number, float: User's weight in kg
  - `height` number, float: Users height in centimeters
  - `extra-info` UserExtraInfo[]: List containing answers given by the user to a number of partner-specific questions. Extra-info is null if there are no required fields defined by the partner.
    - `value` string: Value provided by the customer
    - `index` integer: Item index
    - `name` string: Name of the extra info asked from customer

## Other responses

- `204`: No content when user with given userId is not found.
- `403`: User has not accepted all mandatory consents.
- `409`: User already registered to partner or duplicated member-id.

## Changes

- **2025-06-04** `5ef2cea678a2`: 2 warning, 3 info
  - removed the optional property `field` from the response with the `200` status (media type: application/json)
  - removed the optional property `field` from the response with the `200` status (media type: application/xml)
  - added the non-success response with the status `403`
  - added the optional property `extra-info` to the response with the `200` status (media type: application/json)
  - …1 more
- **2021-02-25** `425d64c3dd59`: 1 info
  - added the non-success response with the status `409`

[Operation history](https://skmtc.dev/polar-com/apis/polar-accesslink-api/changes/v3/users/post.md)

---

[API](https://skmtc.dev/polar-com/apis/polar-accesslink-api.md) - [All operations](https://skmtc.dev/polar-com/apis/polar-accesslink-api/llms.txt) - [OpenAPI document](https://skmtc.dev/polar-com/apis/polar-accesslink-api/revisions/18ce96365320?raw)
