Pulse Software User Details API v2 API
API for managing user details in Pulse including additional attributes
API for managing user details in Pulse including additional attributes
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
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.curl "https://apis.io/api/v1/apis/pulse-software-user-details-api-v2-api"
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
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