elmo-software / user-api-sdk
# Overview The ELMO API is a RESTful based API that facilitates user information management within the ELMO ecosystem. Our API is designed to empower businesses, including our valued customers and partners, in creating scalable integration solutions aligned with their evolving business needs. By
Requires
- php: ^8.4.27
- ext-curl: *
- ext-json: *
- ext-mbstring: *
- guzzlehttp/guzzle: ^7.3
- guzzlehttp/psr7: ^1.7 || ^2.0
Requires (Dev)
- friendsofphp/php-cs-fixer: ^3.5
- phpunit/phpunit: ^8.0 || ^9.0
Suggests
None
Provides
None
Conflicts
None
Replaces
None
This package is not auto-updated.
Last update: 2026-11-08 17:02:20 UTC
README
PHP client for the ELMO User API (API version v1-rc3).
Prerequisites
- ELMO API credentials: a client ID and a client secret. A Company Admin creates and manages API credentials in ELMO.
- PHP 8.4.27 or later, with the
curl,jsonandmbstringextensions. - Composer.
Install
composer require elmo-software/user-api-sdk
Configure
ElmoClient needs your client ID and client secret only. It gets the OAuth2 access token
(client-credentials grant, POST /oauth/token) on the first request, and gets a new token
60 seconds before the current token expires. You do not send a token yourself.
<?php require __DIR__ . '/vendor/autoload.php'; use Elmo\UserApi\ApiException; use Elmo\UserApi\ElmoClient; $elmo = new ElmoClient(getenv('ELMO_CLIENT_ID'), getenv('ELMO_CLIENT_SECRET')); try { $users = $elmo->users->getUserCollection(items_per_page: 10); foreach ($users as $user) { echo $user->getId(), ' ', $user->getFirstName(), ' ', $user->getLastName(), PHP_EOL; } } catch (ApiException $e) { echo 'HTTP ', $e->getCode(), ': ', $e->getResponseBody(), PHP_EOL; }
Keep the client secret out of source control. Read it from the environment or a secret store.
Optional constructor arguments:
| Argument | Default | Use |
|---|---|---|
$host |
https://api.elmotalent.com.au |
The ELMO API host for your environment. |
$http |
new GuzzleHttp\Client() |
Your own GuzzleHttp\ClientInterface, for example with timeouts or middleware. |
$elmo = new ElmoClient($clientId, $clientSecret, 'https://your-elmo-api-host');
Next Steps
- Each API is a property of
ElmoClient, for example$elmo->users,$elmo->departmentsand$elmo->leaveRequests. The table below lists every method. - The API has rate limits and a daily quota. Space out your requests.
- Endpoints marked BETA can change. Do not use them in production without testing.
API Endpoints
All URIs are relative to https://api.elmotalent.com.au
| Class | Method | HTTP request | Description |
|---|---|---|---|
| CandidatesApi | getCandidates | GET /recruitment/v1/candidates | Get a list of candidates |
| DepartmentsApi | getDepartmentCollection | GET /core/v1/departments | Gets all the departments |
| DepartmentsApi | getDepartmentItem | GET /core/v1/departments/{id} | Gets a single department |
| DepartmentsApi | getDepartmentTemplateCollection | GET /core/v1/department-creation-template | Get department template schema |
| DepartmentsApi | postDepartmentCollection | POST /core/v1/departments | Create a new department |
| DepartmentsApi | putDepartmentItem | PUT /core/v1/departments/{id} | Update an existing department |
| EmployeesApi | getEmploymentDetailsCollection | GET /core/v1/employees | Get employment details of all employees |
| EmployeesApi | getEmploymentDetailsItem | GET /core/v1/employees/{id} | Get a single employment details by Id |
| LeaveRequestsApi | getLeaveRequestCollection | GET /core/v1/leave-requests | Gets all the leave request |
| LeaveRequestsApi | getLeaveRequestItem | GET /core/v1/leave-requests/{id} | Gets a single leave request |
| LeaveTypesApi | getLeaveTypeCollection | GET /core/v1/leave-types | Gets all leave types |
| LeaveTypesApi | getLeaveTypeItem | GET /core/v1/leave-types/{id} | Gets a single leave type |
| LegalEntitiesApi | getLegalEntitityCollection | GET /core/v1/legal-entities | Gets all the legal entities |
| LegalEntitiesApi | getLegalEntitiyItem | GET /core/v1/legal-entities/{id} | Gets a single legal entity |
| LocationsApi | getLocationCollection | GET /core/v1/locations | Gets all the locations |
| LocationsApi | getLocationItem | GET /core/v1/locations/{id} | Gets a single location |
| LocationsApi | getLocationTemplateCollection | GET /core/v1/location-creation-template | Gets location template |
| LocationsApi | postLocationCollection | POST /core/v1/locations | Create a new location |
| LocationsApi | putLocationItem | PUT /core/v1/locations/{id} | Update an existing location |
| MetadataApi | getPersonalContactDetailsMetadataCollection | GET /core/v1/metadata/personal-contact-details | Get metadata of configurable personal contact detail fields |
| MetadataApi | getPositionCustomFieldsMetadataCollection | GET /core/v1/metadata/position | Get metadata of configurable Position fields |
| MetadataApi | getUserMetadataCollection | GET /core/v1/metadata/user | Gets metadata of configurable User fields |
| OAuth20Api | getOauthAccessToken | POST /oauth/token | Retrieve an access token |
| OnboardingUserEventsApi | getOnboardingUserCreationEventItem | GET /core/v1/onboarding-user-creation-events/{id} | Retrieves specific onboarding user creation event |
| OnboardingUserEventsApi | getOnboardingUserUpdateEventItem | GET /core/v1/onboarding-user-update-events/{id} | Retrieves specific onboarding user update event |
| OnboardingUserEventsApi | getOnboardingusercreationtemplateOnboardingUserCreationTemplateCollection | GET /core/v1/onboarding-user-creation-template | Get all the profile data of an onboarding user |
| OnboardingUserEventsApi | postOnboardingUserCreationEventCollection | POST /core/v1/onboarding-user-creation-events | Triggers an event to create a new onboarding user |
| OnboardingUserEventsApi | updateOnboardingUserCreationEventCollection | POST /core/v1/onboarding-user-update-events | Triggers an event to update an existing onboarding user. |
| OnboardingUsersApi | getOnboardingUserCollection | GET /core/v1/onboarding-users | Gets all the onboarding users |
| OnboardingUsersApi | getOnboardingUserItem | GET /core/v1/onboarding-users/{id} | Gets a single onboarding user |
| OnboardingUsersApi | postOnboardingUserConvert | POST /core/v1/onboarding-users/{id}/convert | Converts a single onboarding user to a general user |
| PayrollCyclesApi | getPayrollCycleCollection | GET /core/v1/payroll-cycles | Gets all the payroll cycles |
| PayrollCyclesApi | getPayrollCycleItem | GET /core/v1/payroll-cycles/{id} | Gets a single payroll cycle |
| PositionsApi | getPositionCollection | GET /core/v1/positions | Gets all the positions |
| PositionsApi | getPositionItem | GET /core/v1/positions/{id} | Gets a single position |
| PositionsApi | getPositionTemplateCollection | GET /core/v1/position-creation-template | Get position template schema |
| PositionsApi | postPositionCollection | POST /core/v1/positions | Create a new position |
| PositionsApi | putPositionItem | PUT /core/v1/positions/{id} | Update an existing position |
| UserEventsApi | getUserCreationEventItem | GET /core/v1/user-creation-events/{id} | Retrieves specific user creation event |
| UserEventsApi | getUserUpdateEventItem | GET /core/v1/user-update-events/{id} | Retrieves specific user update event |
| UserEventsApi | getUsercreationtemplateUserCreationTemplateCollection | GET /core/v1/user-creation-template | Get all the profile data of a user |
| UserEventsApi | postUserCreationEventCollection | POST /core/v1/user-creation-events | Triggers an event to create a new user |
| UserEventsApi | updateUserCreationEventCollection | POST /core/v1/user-update-events | Triggers an event to update an existing user. |
| UsersApi | getPersonalContactDetails | GET /core/v1/users/{id}/personal-contact-details | Gets personal contact details of a user |
| UsersApi | getUserCollection | GET /core/v1/users | Gets all the users |
| UsersApi | getUserItem | GET /core/v1/users/{id} | Gets a single user |
| UsersApi | postActivate | POST /core/v1/users/{id}/activate | Activate a user |
| UsersApi | postDeactivate | POST /core/v1/users/{id}/deactivate | Deactivate a user |
| UsersApi | putPersonalContactDetails | PUT /core/v1/users/{id}/personal-contact-details | Update personal contact details of a user |
Models
- BankAccountAu
- CandidateListResponse
- CandidateQuery
- CommonMutationResponse
- Department
- DepartmentMutate
- DepartmentTemplateEmployeeLed
- DepartmentTemplateEmployeeLedProperties
- EducationQuery
- EmergencyContact
- Employee
- EmployeeBankAccounts
- EmployeeRetirementFundAccounts
- EmployeeTerminationDetails
- EmployeeWithholdingDetails
- Error
- ErrorGetResponse
- ErrorMessage
- ErrorServerInternal
- ErrorsGetResponse
- ExperienceQuery
- Field
- Forbidden
- GetEmploymentDetailsCollection200Response
- GetEmploymentDetailsCollection200ResponseMetadata
- LanguageQuery
- LeaveRequest
- LeaveType
- LegalEntity
- LegalEntityAddress
- Location
- LocationMutate
- LocationTemplateEmployeeLed
- LocationTemplateEmployeeLedProperties
- Metadata
- MetadataAnyOf
- MetadataAnyOf1
- MetadataAnyOf2
- MetadataAnyOf3
- MetadataAnyOf4
- MetadataAnyOf5
- MetadataAnyOf6
- MetadataAnyOf7
- MetadataListQuery
- MutationResponse
- OauthToken
- OauthTokenErrorMessage
- OnboardingUser
- OnboardingUserCreationTemplate
- OnboardingUserCreationTemplateProperties
- OnboardingUserEvents
- OnboardingUserV2
- Pagination
- PayrollCycle
- PersonalContactDetails
- PersonalContactDetailsMutate
- Position
- PositionMutate
- PositionTemplateEmployeeLed
- PositionTemplateEmployeeLedProperties
- PostDepartmentCollectionRequest
- PostLocationCollectionRequest
- PostPositionCollectionRequest
- PropertyMetadata
- PutDepartmentItemRequest
- PutLocationItemRequest
- PutPersonalContactDetailsRequest
- PutPositionItemRequest
- RetirementFundAccountAu
- SkillQuery
- SuperannuationDetails
- TaxDetailsAu
- UnprocessableEntity
- UnprocessableEntityExtended
- User
- UserCreationTemplate
- UserCreationTemplateProperties
- UserEvents
- UserV2
- UserV2Value
- WithholdingDetailsAu
About this package
This package is generated by OpenAPI Generator. Do not edit it by hand.
- API version:
v1-rc3 - Package version:
0.1.1 - Generator version:
7.16.0