Namely Profiles API

The Profiles API from Namely — 3 operation(s) for profiles.

Operations 5

GET /profiles Get all Profiles #
POST /profiles Create a Profile #
GET /profiles/{id} Get a Profile #
PUT /profiles/{id} Update a Profile #
GET /profiles/me Get Current User's Profile #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/namely-profiles-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no email required.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

namely-profiles-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  version: ''
  title: Namely Profiles API
  description: Move your app forward with the Namely API Move your app forward with the Namely API
tags:
- name: Profiles
paths:
  /profiles:
    get:
      operationId: GET_profiles
      summary: Get all Profiles
      tags:
      - Profiles
      description: 'Returns all active and inactive employee profiles in the same format as the #endpoint:wn3pJ3WtCYWuuBL6r endpoint.


        Every client-created custom field (the token bearer has permission to see) will appear as key at the bottom of the profile object.


        As a note, the following fields will always be returned in the API response, regardless of user permissions:


        1. id

        2. email

        3. first_name

        4. last_name

        5. user_status

        6. updated_at

        7. created_at

        8. preferred_name

        9. full_name

        10. job_title



        These will NOT be exposed to the user in the UI if their permissions are set correctly.


        ### Important Note About the Endpoint


        Please ensure you''re paginating the response of the GET `/profiles` endpoint to ensure optimal performance avoid possible time-outs.


        **Examples:**

        1. `https://clientname.namely.com/api/v1/profiles.json?page=1&per_page=20&filter[user_status]=active`

        2. `https://clientname.namely.com/api/v1/profiles.json?page=2&per_page=20&filter[user_status]=active`

        3. `https://clientname.namely.com/api/v1/profiles.json?page=3&per_page=20&filter[user_status]=active`


        **Notes:**

        1. If you do not specify the `per_page` value, this will default to 30. The max possible is 50.

        2. If the response returns with less than the number of profiles requested (or none), the `count` in the `meta` object will be 0, and the `profiles` key will return an empty array.'
      parameters:
      - name: page
        in: query
        description: the page of information you'd like to receive.
        required: false
        schema:
          type: integer
      - name: per_page
        in: query
        description: the number of employees to retrieve when using pagination; default is 30 and the limit is 50.
        required: false
        schema:
          type: integer
      - name: profile_format
        in: query
        description: format of the profile object; only <code>short</code> is supported - returns a truncated version of the profile object
        required: false
        schema:
          type: string
      - name: sort
        in: query
        description: sort order of profiles; valid values - <code>first_name</code>, <code>last_name</code>, <code>created_at</code>, <code>updated_at</code>; prepend with a - (minus) sign to reverse the order
        required: false
        schema:
          type: string
      - name: filter[first_name]
        in: query
        description: returns only profiles with the defined first name
        required: false
        schema:
          type: string
      - name: filter[last_name]
        in: query
        description: returns only profiles with the defined last name
        required: false
        schema:
          type: string
      - name: filter[email]
        in: query
        description: returns only profiles with the defined (company) email
        required: false
        schema:
          type: string
      - name: filter[personal_email]
        in: query
        description: returns only profiles with the defined personal email
        required: false
        schema:
          type: string
      - name: filter[job_title]
        in: query
        description: returns only profiles with the defined job title; must be the job_title's <code>title</code>
        required: false
        schema:
          type: string
      - name: filter[reports_to]
        in: query
        description: <code>id</code> of the profile for whose direct reports you to view; returns only those profiles
        required: false
        schema:
          type: string
      - name: filter[user_status]
        in: query
        description: returns only profiles with the defined <code>user_status</code>; <code>active</code>, <code>pending</code>, and <code>inactive</code> are supported
        required: false
        schema:
          type: string
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                type: object
                properties:
                  profiles:
                    type: array
                    items:
                      $ref: '#/components/schemas/Profile'
                  meta:
                    $ref: '#/components/schemas/Profile_Meta'
                  links:
                    $ref: '#/components/schemas/Profile_Links'
                  linked:
                    type: object
                    properties:
                      job_titles:
                        type: array
                        items:
                          $ref: '#/components/schemas/Job_Title'
                      files:
                        type: array
                        items:
                          $ref: '#/components/schemas/File'
                      groups:
                        type: array
                        items:
                          $ref: '#/components/schemas/Group'
                      teams:
                        type: array
                        items:
                          $ref: '#/components/schemas/Team'
      security:
      - Authorization: []
    post:
      operationId: POST_profiles
      summary: Create a Profile
      tags:
      - Profiles
      description: "**Create a profile as a draft Onboarding session**\n\n1. Ensure that the Onboarding feature has been enabled for your company.\n2. In the body of the POST /profiles request, use \"pending\" as the value of the user_status field along with the other required fields found in the Request Body section below.\n\n*Sample Request:*\n```json\n{\n    \"profiles\": [\n        {\n            \"first_name\": \"John\",\n            \"last_name\": \"Smith\",\n            \"user_status\": \"pending\",\n            \"start_date\": \"2019-01-01\",\n            \"personal_email\": \"personal@email.com\",\n            \"email\": \"work@email.com\"\n        }\n    ]\n}\n```\n\n**Create a profile with a job title set**\n\n1. Retrieve the title or id of a  by making a GET request to the /job_titles or /job_titles/{id} endpoint (see the  section).\n2. In the body of the POST /profiles request, include the job_title field in addition to the other required fields found in the Request Body section below.\n3. The value of the job_title field should be set to an object containing the title (string) or id (guid) of an existing job title. Passing both values is also valid.\n\n*Sample Request:*\n```json\n{\n    \"profiles\": [\n        {\n            \"first_name\": \"John\",\n            \"last_name\": \"Smith\",\n            \"user_status\": \"active\",\n            \"start_date\": \"2019-01-01\",\n            \"personal_email\": \"personal@email.com\",\n            \"email\": \"work@email.com\",\n            \"job_title\": {\n            \t\"id\": \"a4d5783d-a447-4269-8724-b710d0267aa4\"\n            }\n        }\n    ]\n}\n```\n\n**Create a profile with an address set**\n\n1. Retrieve the country_id of an  by making a GET request to the /countries endpoint (see the  section).\n2. The state_id is the 2-letter abbreviation for a state in the United States.\n3. In the body of the POST /profiles request, include the home field and set its value equal to an object containing a valid street address as well as the country_id and state_id.\n4. Note that every field in the home object (address1, address2, city, state_id, country_id, or zip) is validated against an actual address. If any field in the address object is invalid, a 422 Unprocessable Entity error will be returned.\n\n*Sample Request:*\n```json\n{\n    \"profiles\": [\n        {\n            \"first_name\": \"John\",\n            \"last_name\": \"Smith\",\n            \"user_status\": \"active\",\n            \"start_date\": \"2019-01-01\",\n            \"personal_email\": \"personal@email.com\",\n            \"email\": \"work@email.com\",\n            \"home\": {\n                \"address1\": \"195 Broadway\",\n                \"address2\": \"\",\n                \"city\": \"New York\",\n                \"state_id\": \"NY\",\n                \"country_id\": \"US\",\n                \"zip\": \"10007\"\n            }\n        }\n    ]\n}\n```\n\n**Create a profile with a salary set**\n\n1. In the body of the POST /profiles request, include the salary field and set its value equal to an object containing a currency_type, a date representing the start date of the salary, and a yearly_amount.\n2. \"USD\" is currently the only valid value for currency_type.\n\n*Sample Request:*\n```json\n{\n    \"profiles\": [\n        {\n            \"first_name\": \"John\",\n            \"last_name\": \"Smith\",\n            \"user_status\": \"active\",\n            \"start_date\": \"2019-01-01\",\n            \"personal_email\": \"personal@email.com\",\n            \"email\": \"work@email.com\",\n            \"salary\": {\n                \"currency_type\": \"USD\",\n                \"date\": \"2019-01-10\",\n                \"yearly_amount\": 100000\n            }\n        }\n    ]\n}\n```"
      responses:
        '201':
          description: Created Response
          content:
            application/json:
              schema:
                type: object
                properties:
                  profiles:
                    type: array
                    items:
                      $ref: '#/components/schemas/Profile'
                  meta:
                    $ref: '#/components/schemas/Profile_Meta'
                  links:
                    $ref: '#/components/schemas/Profile_Links'
                  linked:
                    type: object
                    properties:
                      job_titles:
                        type: array
                        items:
                          $ref: '#/components/schemas/Job_Title'
                      files:
                        type: array
                        items:
                          $ref: '#/components/schemas/File'
                      groups:
                        type: array
                        items:
                          $ref: '#/components/schemas/Group'
                      teams:
                        type: array
                        items:
                          $ref: '#/components/schemas/Team'
      security:
      - Authorization: []
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Create_Profile'
  /profiles/{id}:
    parameters:
    - name: id
      in: path
      description: id of the profile you want to view
      required: true
      schema:
        type: string
    get:
      operationId: GET_profiles-id
      summary: Get a Profile
      tags:
      - Profiles
      description: 'Returns same information about the profile as in the #endpoint:E2y2tKYabriCCzTiJ endpoint but isolated.


        Every client-created custom field (the token bearer has permission to see) will appear as key at the bottom of the profile object.


        As a note, the following fields will always be returned in the API response, regardless of user permissions:


        1. id

        2. email

        3. first_name

        4. last_name

        5. user_status

        6. updated_at

        7. created_at

        8. preferred_name

        9. full_name

        10. job_title



        These will NOT be exposed to the user in the UI if their permissions are set correctly.'
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                type: object
                properties:
                  profiles:
                    type: array
                    items:
                      $ref: '#/components/schemas/Profile'
                  meta:
                    $ref: '#/components/schemas/Profile_Meta'
                  links:
                    $ref: '#/components/schemas/Profile_Links'
                  linked:
                    type: object
                    properties:
                      job_titles:
                        type: array
                        items:
                          $ref: '#/components/schemas/Job_Title'
                      files:
                        type: array
                        items:
                          $ref: '#/components/schemas/File'
                      groups:
                        type: array
                        items:
                          $ref: '#/components/schemas/Group'
                      teams:
                        type: array
                        items:
                          $ref: '#/components/schemas/Team'
      security:
      - Authorization: []
    put:
      operationId: PUT_profiles-id
      summary: Update a Profile
      tags:
      - Profiles
      description: "Note: the only fields that need to be included in a PUT /profiles/{id} request are the ones that should be updated.\n\n**Update a profile with a new job title**\n\n1. Retrieve the `title` or `id` of a  #model:JcAXAf5CGXH22bS6Z by making a GET request to the /job_titles or /job_titles/{id} endpoint (see the #docTextSection:FwRLDxsBbevBbo8uz section).\n2. In the body of the PUT /profiles/{id} request, include the `job_title` field.\n3. The value of the `job_title` field should be set to an object containing the `title` (string) or `id` (guid) of an existing job title. Passing both values is also valid.\n\n_Sample Request:_\n```json\n{\n    \"profiles\": [\n        {\n            \"job_title\": {\n            \t\"id\": \"a4d5783d-a447-4269-8724-b710d0267aa4\"\n            }\n        }\n    ]\n}\n```\n\n**Update a profile with a new address**\n\n1. Retrieve the `country_id` of an #model:yq9tkBR24wuBhzizY by making a GET request to the /countries endpoint (see the #endpoint:ECuAqAqRDoaFMn9ZH section).\n2. The `state_id` is the 2-letter abbreviation for a state in the United States.\n3. In the body of the PUT /profiles/{id} request, include the `home` field and set its value equal to an object containing a valid street address as well as the `country_id` and `state_id`.\n4. Note that every field in the `home` object (`address1`, `address2`, `city`, `state_id`, `country_id`, or `zip`) is validated against an actual address. If any field in the address object is invalid, a 422 Unprocessable Entity error will be returned.\n\n_Sample Request:_\n```json\n{\n    \"profiles\": [\n        {\n            \"home\": {\n                \"address1\": \"195 Broadway\",\n                \"address2\": \"\",\n                \"city\": \"New York\",\n                \"state_id\": \"NY\",\n                \"country_id\": \"US\",\n                \"zip\": \"10007\"\n            }\n        }\n    ]\n}\n```\n\n**Update a profile with a new salary**\n\n1. In the body of the PUT /profiles/{id} request, include the `salary` field and set its value equal to an object containing a `currency_type`, a `date` representing the start date of the salary, and a `yearly_amount`.\n2. \"USD\" is currently the only valid value for `currency_type`.\n3. Note that the `date` is the start date of the new salary. When updating an employee's salary, the `date` value that's passed in must be at least 2 days after the `date` value of the preceding salary. This is because with each new salary, the previous salary is automatically end-dated with a date that must be at least 1 day after the start date of the previous salary. If a passed-in date is invalid, a 422 Unprocessable Entity error will be returned.\n\n_Sample Request:_\n```json\n{\n    \"profiles\": [\n        {\n            \"salary\": {\n                \"currency_type\": \"USD\",\n                \"date\": \"2019-01-10\",\n                \"yearly_amount\": 100000\n            }\n        }\n    ]\n}\n```"
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                type: object
                properties:
                  profiles:
                    type: array
                    items:
                      $ref: '#/components/schemas/Profile'
                  meta:
                    type: object
                    properties:
                      count:
                        type: integer
                      status:
                        type: integer
                  links:
                    type: object
                    items:
                      $ref: '#/components/schemas/Profile_Links'
                  linked:
                    type: object
                    properties:
                      job_titles:
                        type: array
                        items:
                          $ref: '#/components/schemas/Job_Title'
                      files:
                        type: array
                        items:
                          $ref: '#/components/schemas/File'
                      groups:
                        type: array
                        items:
                          $ref: '#/components/schemas/Group'
                      teams:
                        type: array
                        items:
                          $ref: '#/components/schemas/Team'
      security:
      - Authorization: []
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Update_Profile'
  /profiles/me:
    get:
      operationId: GET_profiles-me
      summary: Get Current User's Profile
      tags:
      - Profiles
      description: 'Returns same information about the profile as in the #endpoint:E2y2tKYabriCCzTiJ endpoint but isolated, and about the current user only (the profile that owns the access token used to access the API).


        Every client-created custom field (the token bearer has permission to see) will appear as key at the bottom of the profile object.'
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                type: object
                properties:
                  profiles:
                    type: array
                    items:
                      $ref: '#/components/schemas/Profile'
                  meta:
                    $ref: '#/components/schemas/Profile_Meta'
                  links:
                    $ref: '#/components/schemas/Profile_Links'
                  linked:
                    type: object
                    properties:
                      job_titles:
                        type: array
                        items:
                          $ref: '#/components/schemas/Job_Title'
                      files:
                        type: array
                        items:
                          $ref: '#/components/schemas/File'
                      groups:
                        type: array
                        items:
                          $ref: '#/components/schemas/Group'
                      teams:
                        type: array
                        items:
                          $ref: '#/components/schemas/Team'
      security:
      - Authorization: []
components:
  schemas:
    Salary:
      title: Salary
      type: object
      properties:
        currency_type:
          description: currency of the profile's <strong>current</strong> salary; <code>null</code> if never provided or no <strong>current</strong> salary; cannot be <code>null</code> if any other salary keys provided
          type: string
        date:
          description: start date of the profile's <strong>current</strong> salary; <code>null</code> if never provided or no <strong>current</strong> salary; cannot be <code>null</code> if any other salary keys provided
          type: string
        guid:
          description: unique identifier of the profile's <strong>current</strong> salary; <code>null</code> if never provided or no <strong>current</strong> salary; cannot be <code>null</code> if any other salary keys provided
          type: string
        pay_group_id:
          description: unique identifier of the pay group associated with the profile's <strong>current</strong> salary; <code>null</code> if never provided or no <strong>current</strong> salary
          type: integer
        payroll_job_id:
          description: unique identifier of the payroll job associated with the profile's <strong>current</strong> salary; <code>null</code> if never provided or no <strong>current</strong> salary
          type: string
        rate:
          description: rate of the profile's <strong>current</strong> salary; valid values include <code>annually</code>, <code>weekly</code>, <code>biweekly</code>, <code>bimonthly</code>, <code>semimonthly</code>, <code>monthly</code>, <code>quarterly</code>, <code>semiannually</code>, and <code>thirteen_monthly</code>; <code>null</code> if never provided; blank if provided then deleted; cannot be <code>null</code> if any other salary keys provided
          type: string
        yearly_amount:
          description: 'annualized amount ("amount_raw" * # of pay periods based on the "rate") of the profile''s <strong>current</strong> salary; all salaries are annualized; <code>null</code> if never provided; blank if provided then deleted; cannot be <code>null</code> if any other salary keys provided'
          type: integer
        hourly:
          description: true if the salary is hourly, and false if yearly; cannot be <code>null</code> if any other salary keys provided. Known as is_hourly elsewhere in the app.
          type: boolean
        amount_raw:
          description: returns the amount as it was inputted on the UI; if yearly, will be the amount per pay period; if hourly, will be the hourly rate; cannot be <code>null</code> if any other salary keys provided
          type: string
        payroll_company:
          type: string
          description: The Payroll Company associated with this salary. Required if multiple Payroll Companies. "Company name" defaults to first Payroll Company.
        payroll_job:
          type: string
          description: Name of the Payroll Job for this Salary. Required if multiple Payroll Companies. Value of "Job name" will take first Payroll Job from specified Payroll Company.
    Healthcare:
      title: Healthcare
      type: object
      properties:
        beneficiary:
          description: relationship of the profile's healthcare plan's beneficiary to the profile; valid values include <code>Employee Only</code>, <code>Employee/Child</code>, <code>Employee/Spouse</code>, <code>Family</code>, <code>Not Applicable</code>, and <code>Waive</code>; blank if never provided or provided then deleted; cannot be <code>null</code> if any other <code>healthcare</code> keys provided
          type: string
        amount:
          description: amount of the profile's healthcare plan; numbers only; cannot be <code>null</code> if any other <code>healthcare</code> keys provided
          type: string
        currency_type:
          description: currency type of the profile's healthcare plan amount; default <code>USD</code>
          type: string
    Create_Profile:
      title: Create Profile
      required:
      - profiles
      type: object
      properties:
        profiles:
          type: array
          items:
            $ref: '#/components/schemas/Create_Profile_Payload'
    Image:
      title: Image
      type: object
      properties:
        id:
          type: string
          description: unique identifier of the image
        filename:
          type: string
          description: image's file name
        mime_type:
          type: string
          description: image type
        original:
          type: string
          description: link of image with original resolution
        thumbs:
          $ref: '#/components/schemas/Thumb'
    Update_Profile:
      title: Update Profile
      required:
      - profiles
      type: object
      properties:
        profiles:
          type: array
          items:
            $ref: '#/components/schemas/Update_Profile_Payload'
    Profile_Meta:
      title: Profile Meta
      type: object
      properties:
        count:
          type: integer
          description: number of profiles on the current page
        total_count:
          type: integer
          description: number of total profiles for the company
        status:
          type: integer
          description: HTTP response
    Group:
      title: Group
      type: object
      properties:
        id:
          type: string
          description: unique identifier of the group
        title:
          type: string
          description: name/label of the group
        type:
          type: string
          description: name of the group type to which the group belongs
        is_team:
          type: boolean
          description: true if the group is a team
        address:
          type: object
          $ref: '#/components/schemas/Address'
        count:
          type: integer
          description: number of profiles associated with this group
        links:
          type: object
          properties:
            group_type:
              type: string
              description: group type to which the group belongs
    File:
      title: File
      type: object
      properties:
        id:
          type: string
        filename:
          type: string
        mime_type:
          type: string
        original:
          type: string
        thumbs:
          type: array
          items:
            $ref: '#/components/schemas/Thumb'
    Dental:
      title: Dental
      type: object
      properties:
        beneficiary:
          description: relationship of the profile's dental plan's beneficiary to the profile; valid values include <code>Employee Only</code>, <code>Employee/Child</code>, <code>Employee/Spouse</code>, <code>Family</code>, <code>Not Applicable</code>, and <code>Waive</code>; blank if never provided or provided then deleted; cannot be <code>null</code> if any other <code>dental</code> keys provided
          type: string
        amount:
          description: amount of the profile's dental plan; numbers only; cannot be <code>null</code> if any other <code>dental</code> keys provided
          type: string
        currency_type:
          description: currency type of the profile's dental plan amount; default <code>USD</code>
          type: string
    Update_Profile_Payload:
      title: Update Profile Payload
      type: object
      description: ''
      properties:
        email:
          type: string
          description: company email of the profile
        first_name:
          type: string
        last_name:
          type: string
        user_status:
          type: string
          description: valid values are <code>active</code> or <code>pending</code>
        start_date:
          type: string
          description: valid format is YYYY-MM-DD
        personal_email:
          type: string
          description: REQUIRED if <code>user_status</code> = <code>pending</code>
        reports_to:
          type: string
          description: <code>id</code>of the profile you'd like to assign as the manager of the profile you're creating
        job_title:
          type: string
          description: in addition to passing the <code>id</code> of the <code>job title</code>, you can also pass the <code>title</code>, however, it is case-sensitive
    Address:
      title: Address
      type: object
      properties:
        address1:
          type: string
        address2:
          type: string
        city:
          type: string
        state_id:
          type: string
        zip:
          type: string
        state:
          type: string
        country:
          type: string
        country_id:
          type: string
        phone:
          type: string
    Thumb:
      title: Thumb
      type: object
      description: different resolutions of the image
      properties:
        75x75:
          type: string
        75x75c:
          type: string
        150x150:
          type: string
        150x150c:
          type: string
        300x300:
          type: string
        300x300c:
          type: string
        450x450:
          type: string
        550x450c:
          type: string
        800x800:
          type: string
        800x800c:
          type: string
    Group_Link:
      title: Group Link
      type: object
      properties:
        id:
          type: string
          description: unique identifier of the group
        name:
          type: string
          description: name/label of the group
    Home:
      title: Home
      type: object
      description: fields represent the entire home address
      properties:
        address1:
          type: string
          description: address line 1 of the home address
        address2:
          type: string
          description: address line 2 of the home address
        city:
          type: string
          description: city of the home address
        state_id:
          type: string
          description: 'state of the home address; for US, must be the 2-digit code; for other countries, refer to the #docTextSection:7izuT4kPbi3FngZbD endpoints'
        country_id:
          type: string
          description: '"US" for the US; must be the ISO Alpha-2 code; for other countries, refer to the #docTextSection:7izuT4kPbi3FngZbD endpoints or just use the ISO Alpha-2 code'
        zip:
          type: string
          description: zip or postal code of the home address
    Team_Link:
      title: Team Link
      type: object
      properties:
        id:
          type: string
          description: unique identifier of the team
        name:
          type: string
          description: name/label of the team
    Office:
      title: Office
      type: object
      description: these fields represent the entire office address and are inherited from the "Office Location" group assigned to the profile
      properties:
        address1:
          type: string
          description: address line 1 of the office address
        address2:
          type: string
          description: address line 2 of the office address
        city:
          type: string
          description: city of the office address
        state_id:
          type: string
          description: 'state of the office address; for US, must be the 2-digit code; for other countries, refer to the #docTextSection:7izuT4kPbi3FngZbD endpoints'
        country_id:
          type: string
          description: '"US" for the US; must be the ISO Alpha-2 code; for other countries, refer to the #docTextSection:7izuT4kPbi3FngZbD endpoints or just use the ISO Alpha-2 code'
        zip:
          type: string
          description: zip or postal code of the office address
        phone:
          type: string
          description: phone number associated with the office location
    Profile_Links:
      title: Profile Links
      type: object
      properties:
        profiles.job_title:
          $ref: '#/components/schemas/Link'
        profiles.image:
          $ref: '#/components/schemas/Link'
        profiles.groups:
          $ref: '#/components/schemas/Link'
        profiles.teams:
          $ref: '#/components/schemas/Link'
    Profile:
      title: Profile
      type: object
      properties:
        id:
          description: unique identifier of the profile
          type: string
        email:
          description: company email of the profile
          type: string
        first_name:
          description: first name of the profile
          type: string
        last_name:
          description: last name of the profile
          type: string
        user_status:
          description: user status of the profile; valid values in the API are <code>active</code>, <code>pending</code>, and <code>inactive</code>
          type: string
        updated_at:
          description: epoch time that the profile was updated; equal to <code>create_at</code> if never updated
          type: integer
        created_at

# --- truncated at 32 KB (42 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/namely/refs/heads/main/openapi/namely-profiles-api-openapi.yml