Pulse Software User Details API v2 API

API for managing user details in Pulse including additional attributes

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/pulse-software-user-details-api-v2-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

pulse-software-user-details-api-v2-api-openapi.yml Raw ↑
swagger: '2.0'
info:
  title: Pulse Public Authentication User Details API v2 API
  version: 1.0.1
  description: "The Pulse API is targeted towards developers looking to automate tasks in Pulse. \n\n# Authentication\nAll endpoints in Pulse require authentication.  Legacy endpoints require only a Private API Key, while all new endpoints incorporate JSON Web Tokens.  \n\n**API Key**\nTo consume a Pulse endpoint using API Key authentication, :\n  * Contact Pulse support at support@pulsesoftware.com to enable the Pulse Public API and issue your API key.\n  * Pass the API key in the **'x-Api-Key'** header with each request.\n\nNote: It is recommended to use a User Private API key where possible, rather than the Application Private Key. When using a User API key, functionality will be restricted based on the role of the User for which the API key was generated.  See API endpoint documentation for authorised roles. \n\n**JSON Web Token (JWT)**\nTo consume a Pulse endpoint using JWT authentication:\n  * Contact Pulse support at support@pulsesoftware.com to enable the Pulse Public API and issue your API key.\n  * Request a bearer token from /pulse/jwt, passing the API key in the **'x-Api-Key'** header with the request.\n  * Pass the token issued in the **'Authorization'** header of all requests as **'bearer [token]'**\n\n**Note** Tokens will expire 60 minutes after being issued, at which point your application will need to request a new token.\n\n# Requests\nThe Pulse API follows REST principles.  Data resources are accessed via standard HTTPS requests in UTF-8 format to an API endpoint. Where possible, Web API uses appropriate HTTP verbs for each action.\nHTTP Verbs:\n  * **GET** Retrieves resources\n  * **POST** Creates resources\n  * **PUT** Changes and/or replaces resources or collections\n  * **DELETE** Deletes resources\n\nThe Pulse API accepts the following ISO-8601 formats for date strings:\n  * Date, Time, Timezone: e.g. \"2021-06-02T21:39:18+00:00\"\n  * Date, Time: e.g. \"2021-06-02T21:39:18Z\"\n  * Date: e.g. \"2021-06-02\"\n\n# Responses\nPulse API returns all response data as a JSON object.  \n\n# Response Status Codes\nPulse API uses the following status codes:\n  * **200** OK - Request succeeded.  Result provided in response body.\n  * **400** Bad Request - Malformed syntax.  See message body for information.\n  * **401** Unauthorised - Missing authentication (API Key or JWT).\n  * **403** Forbidden - API user is not authorised to access requested resource.\n  * **404** Not Found - Request resource does not exist.\n\n# Support\nContact support@pulsesoftware.com for any queries or issues related to this API\n"
  termsOfService: http://www.apache.org/licenses/LICENSE-2.0.html
  contact:
    email: support@pulsesoftware.com
  license:
    name: Apache 2.0
    url: http://www.apache.org/licenses/LICENSE-2.0.html
host: '*.pulsesoftware.com'
basePath: /webservices/api
schemes:
- https
- http
tags:
- name: User Details API v2
  description: API for managing user details in Pulse including additional attributes
paths:
  /security/UserDetails:
    get:
      security:
      - BearerJWT: []
      tags:
      - User Details API v2
      summary: Get user detail(s) in Pulse
      description: 'Get user detail(s) in Pulse including their user additional attributes.

        - If no query parameters are provided, returns all users.

        - If `email`, `username`, or `userId` is provided, returns the matching user.

        **Authorised Roles:** *PulseSecurityUser*

        '
      consumes:
      - application/json
      produces:
      - application/json
      parameters:
      - in: header
        name: x-api-key
        description: API key
        required: true
        type: string
      - in: query
        name: email
        description: Email address
        required: false
        type: string
      - in: query
        name: username
        description: Username
        required: false
        type: string
      - in: query
        name: userId
        description: User Id
        required: false
        type: string
      responses:
        200:
          description: 'OK. Request completed successfully.

            - If no query parameters are provided, returns all users as an array.

            - If a query parameter is provided, returns an array with a single user or empty array if not found.

            '
          schema:
            $ref: '#/definitions/UserInfos'
        401:
          description: Missing JWT Bearer token in the Authorization header or the given JWT token is invalid.
        403:
          description: The user corresponding to the given JWT token does not have access to this module.
        404:
          description: User not found by specified identifier
    post:
      security:
      - BearerJWT: []
      tags:
      - User Details API v2
      summary: Update user in Pulse
      description: 'Update user in Pulse based on userId provided in request body


        **Authorised Roles:** *PulseSecurityUser*

        '
      consumes:
      - application/json
      produces:
      - application/json
      parameters:
      - in: header
        name: x-api-key
        description: API key
        required: true
        type: string
      - in: body
        name: body
        description: User detail
        required: true
        schema:
          $ref: '#/definitions/AddUserInfo'
      responses:
        200:
          description: OK. Request completed successfully.
          schema:
            $ref: '#/definitions/UserDetailsV2Response'
        400:
          description: Invalid request body
          schema:
            $ref: '#/definitions/UserDetailsV2Response'
        401:
          description: Missing JWT Bearer token in the Authorization header or the given JWT token is invalid.
        403:
          description: The user corresponding to the given JWT token does not have access to this module.
    put:
      security:
      - BearerJWT: []
      tags:
      - User Details API v2
      summary: Update user in Pulse
      description: 'Update user in Pulse based on userId provided in request body


        **Authorised Roles:** *PulseSecurityUser*

        '
      consumes:
      - application/json
      produces:
      - application/json
      parameters:
      - in: header
        name: x-api-key
        description: API key
        required: true
        type: string
      - in: body
        name: body
        description: User detail
        required: true
        schema:
          $ref: '#/definitions/UserInfo'
      responses:
        200:
          description: OK. Request completed successfully.
          schema:
            $ref: '#/definitions/UserDetailsV2Response'
        400:
          description: Invalid request body
          schema:
            $ref: '#/definitions/UserDetailsV2Response'
        401:
          description: Missing JWT Bearer token in the Authorization header or the given JWT token is invalid.
        403:
          description: The user corresponding to the given JWT token does not have access to this module.
        404:
          description: User not found by specified user id
    patch:
      security:
      - BearerJWT: []
      tags:
      - User Details API v2
      summary: Update user in Pulse
      description: 'Update user in Pulse based on userId provided in request body


        **Authorised Roles:** *PulseSecurityUser*

        '
      consumes:
      - application/json
      produces:
      - application/json
      parameters:
      - in: header
        name: x-api-key
        description: API key
        required: true
        type: string
      - in: body
        name: body
        description: User detail
        required: true
        schema:
          $ref: '#/definitions/UserInfo'
      responses:
        200:
          description: OK. Request completed successfully.
          schema:
            $ref: '#/definitions/UserDetailsV2Response'
        400:
          description: Invalid request body
          schema:
            $ref: '#/definitions/UserDetailsV2Response'
        401:
          description: Missing JWT Bearer token in the Authorization header or the given JWT token is invalid.
        403:
          description: The user corresponding to the given JWT token does not have access to this module.
        404:
          description: User not found by specified user id
definitions:
  AddUserInfo:
    allOf:
    - $ref: '#/definitions/UserInfo'
    - type: object
      properties:
        password:
          type: string
        confirmPassword:
          type: string
        sendWelcomeEmail:
          type: boolean
  UserDetailsV2ApiError:
    type: object
    properties:
      field:
        type: string
      message:
        type: string
  UserOnboardingDetailsDTO:
    type: object
    properties:
      portalID:
        type: integer
        format: int32
      portalName:
        type: string
      activeDate:
        type: string
      dueDate:
        type: string
  AdditionalAttributesDTO:
    type: object
    properties:
      tabId:
        type: integer
        format: int32
      tabName:
        type: string
      attributeId:
        type: integer
        format: int32
      attributeName:
        type: string
      attributeValue:
        type: string
      attributeDataType:
        type: string
  UserInfos:
    type: array
    items:
      $ref: '#/definitions/UserInfo'
  UserInfo:
    type: object
    properties:
      active:
        type: boolean
      userId:
        type: string
        format: uuid
      title:
        type: string
      firstName:
        type: string
      middleName:
        type: string
      lastName:
        type: string
      preferredName:
        type: string
      dateOfBirth:
        type: string
      gender:
        type: string
      mobilePhone:
        type: string
      workPhone:
        type: string
      telephone:
        type: string
      primaryEmail:
        type: string
      additionalEmail:
        type: string
      home_AddressLine1:
        type: string
      home_AddressLine2:
        type: string
      home_City:
        type: string
      home_Country:
        type: string
      home_PostCode:
        type: string
      home_State:
        type: string
      postal_AddressLine1:
        type: string
      postal_AddressLine2:
        type: string
      postal_City:
        type: string
      postal_Country:
        type: string
      postal_PostCode:
        type: string
      postal_State:
        type: string
      postalIsHome:
        type: boolean
      username:
        type: string
      payrollNumber:
        type: string
      divisionCode:
        type: string
      divisionName:
        type: string
      unitCode:
        type: string
      unitName:
        type: string
      sectionCode:
        type: string
      sectionName:
        type: string
      supervisorEmail:
        type: string
      teamName:
        type: string
      pulseRepresentativeEmail:
        type: string
      employmentStartDate:
        type: string
      employmentEndDate:
        type: string
      reasonOfTermination:
        type: string
      emergencyContact1_Name:
        type: string
      emergencyContact1_Relationship:
        type: string
      emergencyContact1_AddressLine1:
        type: string
      emergencyContact1_AddressLine2:
        type: string
      emergencyContact1_City:
        type: string
      emergencyContact1_State:
        type: string
      emergencyContact1_Country:
        type: string
      emergencyContact1_Postcode:
        type: string
      emergencyContact1_Mobile:
        type: string
      emergencyContact1_WorkPhone:
        type: string
      emergencyContact1_Telephone:
        type: string
      emergencyContact1_Email:
        type: string
      emergencyContact2_Name:
        type: string
      emergencyContact2_Relationship:
        type: string
      emergencyContact2_AddressLine1:
        type: string
      emergencyContact2_AddressLine2:
        type: string
      emergencyContact2_City:
        type: string
      emergencyContact2_State:
        type: string
      emergencyContact2_Country:
        type: string
      emergencyContact2_Postcode:
        type: string
      emergencyContact2_Mobile:
        type: string
      emergencyContact2_WorkPhone:
        type: string
      emergencyContact2_Telephone:
        type: string
      emergencyContact2_Email:
        type: string
      primaryPositionNumber:
        type: string
      primaryPositionName:
        type: string
      primaryPositionStartDate:
        type: string
      primaryPositionEndDate:
        type: string
      primaryPositionNotes:
        type: string
      employmentType:
        type: string
      onboarding:
        type: array
        items:
          $ref: '#/definitions/UserOnboardingDetailsDTO'
      additionalPositions:
        type: array
        items:
          $ref: '#/definitions/UserAdditionalPositionDTO'
      roles:
        type: array
        items:
          type: string
      userAdditionalAttributes:
        type: array
        items:
          $ref: '#/definitions/AdditionalAttributesDTO'
  UserDetailsV2Response:
    type: object
    properties:
      status:
        type: string
      errors:
        type: array
        items:
          $ref: '#/definitions/UserDetailsV2ApiError'
      data:
        $ref: '#/definitions/UserInfo'
  UserAdditionalPositionDTO:
    type: object
    properties:
      positionNo:
        type: string
      positionName:
        type: string
      startDate:
        type: string
      endDate:
        type: string
      notes:
        type: string
      supervisorEmail:
        type: string
securityDefinitions:
  ApiKey:
    type: apiKey
    name: x-Api-Key
    in: header
  BearerJWT:
    type: apiKey
    name: Authorisation
    in: header
externalDocs:
  description: Find out more about Swagger
  url: http://swagger.io