Pulse Software Sync API API

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

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 email required.

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

OpenAPI Specification

pulse-software-sync-api-api-openapi.yml Raw ↑
swagger: '2.0'
info:
  title: Pulse Public Authentication Sync API 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: 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

        '
      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/UserSyncDTOs'
      responses:
        200:
          description: OK. Request completed successfully.
        401:
          description: Missing JWT Bearer token in the Authorization header or the given JWT token is invalid.
  /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

        '
      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: Integration sync data
        required: true
        schema:
          $ref: '#/definitions/StoreSyncData'
      responses:
        200:
          description: OK. Request completed successfully. Returns the fileId of the logged sync data.
          schema:
            type: string
        401:
          description: Missing JWT Bearer token in the Authorization header or the given JWT token is invalid.
  /security/IntegrationSyncToPayrollLog:
    post:
      security:
      - BearerJWT: []
      tags:
      - Sync API
      summary: Add sync history in Pulse
      description: 'Add sync history in Pulse

        '
      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: Sync history data
        required: true
        schema:
          $ref: '#/definitions/AddIntegrationSyncToPayrollHistory'
      responses:
        200:
          description: OK. Request completed successfully. Returns the id of the sync history.
          schema:
            type: number
        401:
          description: Missing JWT Bearer token in the Authorization header or the given JWT token is invalid.
definitions:
  UserSyncDTOs:
    type: array
    items:
      $ref: '#/definitions/UserSyncDTO'
  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
  StoreSyncData:
    type: object
    properties:
      jsonStringData:
        type: string
      folder:
        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
  ExternalUserSyncStatusDetailDTO:
    type: object
    properties:
      status:
        type: string
      syncCategory:
        type: string
      key:
        type: string
      objectHash:
        type: string
  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: '#/definitions/AdditionalAttributesDTO'
      additionalPositions:
        type: string
      additionalUserPositions:
        type: array
        items:
          $ref: '#/definitions/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: '#/definitions/ExternalUserSyncStatusDetailDTO'
  AddIntegrationSyncToPayrollHistory:
    type: object
    properties:
      integrationName:
        type: string
      jsonFile:
        type: string
      userId:
        type: string
        format: uuid
      source:
        type: string
      externalUserSyncStatuses:
        type: array
        items:
          $ref: '#/definitions/ExternalUserSyncStatusDTO'
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