Pulse Software Sync API API

API for handling synchronisation data from and/or to Pulse including for managing sync history records

Operations 3

POST /security/PatchUserSync Update user in Pulse
POST /security/IntegrationSyncData Store integration sync data in Pulse for history purpose
POST /security/IntegrationSyncToPayrollLog Add sync history in Pulse

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-sync-api-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 form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

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

OpenAPI Specification

pulse-software-sync-api-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Pulse Public Authentication Sync 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
servers:
- url: https://*.pulsesoftware.com/webservices/api
- url: http://*.pulsesoftware.com/webservices/api
tags:
- name: Sync API
  description: API for handling synchronisation data from and/or to Pulse including for managing sync history records
paths:
  /security/PatchUserSync:
    post:
      security:
      - BearerJWT: []
      tags:
      - Sync API
      summary: Update user in Pulse
      description: 'Update user in Pulse based on userId provided in request body

        '
      parameters:
      - in: header
        name: x-api-key
        description: API key
        required: true
        schema:
          type: string
      responses:
        200:
          description: OK. Request completed successfully.
        401:
          description: Missing JWT Bearer token in the Authorization header or the given JWT token is invalid.
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UserSyncDTOs'
        description: User detail
        required: true
  /security/IntegrationSyncData:
    post:
      security:
      - BearerJWT: []
      tags:
      - Sync API
      summary: Store integration sync data in Pulse for history purpose
      description: 'Store integration sync data in Pulse for history purpose

        '
      parameters:
      - in: header
        name: x-api-key
        description: API key
        required: true
        schema:
          type: string
      responses:
        200:
          description: OK. Request completed successfully. Returns the fileId of the logged sync data.
          content:
            application/json:
              schema:
                type: string
        401:
          description: Missing JWT Bearer token in the Authorization header or the given JWT token is invalid.
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/StoreSyncData'
        description: Integration sync data
        required: true
  /security/IntegrationSyncToPayrollLog:
    post:
      security:
      - BearerJWT: []
      tags:
      - Sync API
      summary: Add sync history in Pulse
      description: 'Add sync history in Pulse

        '
      parameters:
      - in: header
        name: x-api-key
        description: API key
        required: true
        schema:
          type: string
      responses:
        200:
          description: OK. Request completed successfully. Returns the id of the sync history.
          content:
            application/json:
              schema:
                type: number
        401:
          description: Missing JWT Bearer token in the Authorization header or the given JWT token is invalid.
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AddIntegrationSyncToPayrollHistory'
        description: Sync history data
        required: true
components:
  schemas:
    UserSyncDTO:
      type: object
      properties:
        title:
          type: string
        firstName:
          type: string
        middleName:
          type: string
        surname:
          type: string
        lastName:
          type: string
        preferredName:
          type: string
        email:
          type: string
        additionalEmail:
          type: string
        dob:
          type: string
        gender:
          type: string
        mobilePhone:
          type: string
        workPhone:
          type: string
        telephone:
          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
        employmentStartDate:
          type: string
        employmentEndDate:
          type: string
        reasonOfTermination:
          type: string
        councilNetworkLogin:
          type: string
        payrollNo:
          type: string
        positionNo:
          type: string
        positionName:
          type: string
        positionStartDate:
          type: string
        positionEndDate:
          type: string
        positionDivision:
          type: string
        positionUnit:
          type: string
        positionSection:
          type: string
        positionTeam:
          type: string
        positionSupervisor:
          type: string
        positionIncumbentsAssigned:
          type: string
        supervisor:
          type: string
        supervisorPayrollNo:
          type: string
        divisionCode:
          type: string
        divisionName:
          type: string
        unitCode:
          type: string
        unitName:
          type: string
        sectionCode:
          type: string
        sectionName:
          type: string
        empType:
          type: string
        team:
          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_PostCode:
          type: string
        emergencyContact1_Country:
          type: string
        emergencyContact1_Mobile:
          type: string
        emergencyContact1_WorkPhone:
          type: string
        emergencyContact1_Email:
          type: string
        emergencyContact1_Telephone:
          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_PostCode:
          type: string
        emergencyContact2_Country:
          type: string
        emergencyContact2_Mobile:
          type: string
        emergencyContact2_WorkPhone:
          type: string
        emergencyContact2_Email:
          type: string
        emergencyContact2_Telephone:
          type: string
        isActive:
          type: string
        externalUserId:
          type: string
        integrationName:
          type: string
        siteName:
          type: string
        employmentType:
          type: string
        permissions:
          type: array
          items:
            type: string
        additionalAttributes:
          type: array
          items:
            $ref: '#/components/schemas/AdditionalAttributesDTO'
        additionalPositions:
          type: string
        additionalUserPositions:
          type: array
          items:
            $ref: '#/components/schemas/AdditionalPositionsDTO'
        roles:
          type: string
    ExternalUserSyncStatusDTO:
      type: object
      properties:
        userId:
          type: string
        status:
          type: string
        syncCategory:
          type: string
        message:
          type: string
        integrationUserId:
          type: string
        integrationName:
          type: string
        objectHash:
          type: string
        details:
          type: array
          items:
            $ref: '#/components/schemas/ExternalUserSyncStatusDetailDTO'
    ExternalUserSyncStatusDetailDTO:
      type: object
      properties:
        status:
          type: string
        syncCategory:
          type: string
        key:
          type: string
        objectHash:
          type: string
    UserSyncDTOs:
      type: array
      items:
        $ref: '#/components/schemas/UserSyncDTO'
    StoreSyncData:
      type: object
      properties:
        jsonStringData:
          type: string
        folder:
          type: string
    AddIntegrationSyncToPayrollHistory:
      type: object
      properties:
        integrationName:
          type: string
        jsonFile:
          type: string
        userId:
          type: string
          format: uuid
        source:
          type: string
        externalUserSyncStatuses:
          type: array
          items:
            $ref: '#/components/schemas/ExternalUserSyncStatusDTO'
    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
    AdditionalPositionsDTO:
      type: object
      properties:
        positionNo:
          type: string
        positionName:
          type: string
        positionStartDate:
          type: string
        positionEndDate:
          type: string
        positionDivision:
          type: string
        positionUnit:
          type: string
        positionSection:
          type: string
        positionSupervisor:
          type: string
        positionTeam:
          type: string
        positionIncumbentsAssigned:
          type: string
  securitySchemes:
    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