# ClayHR Expense Reports API

> ClayHR Expense Reports API on Apizie: 143 endpoints (Get Access Token for Authentication, Create Announcement, Retrieve Announcement, Update Announcement, …) returned as clean JSON through one API key. Send your own provider key in the x-upstream-key header. Call it over REST at https://www.apizie.tech/v1/business:clayhr/{endpoint} or from Claude, ChatGPT and Cursor through the Apizie MCP server. Free plan: 1,000 requests a month.

- Project key: `business:clayhr`
- Category: Business
- Status: byok
- Source: https://clayhr.com
- Page: https://www.apizie.tech/api/business/clayhr
- OpenAPI: https://www.apizie.tech/api/business/clayhr/openapi.json

API Documentation

## Endpoints

### Get Access Token for Authentication
`GET https://www.apizie.tech/v1/business:clayhr/authentication-get-access-token` (byok)

### Create Announcement
`POST https://www.apizie.tech/v1/business:clayhr/announcement-create-new-announcement` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| title | string | yes | Title of the announcement. |
| description | string | yes | Description of the announcement. |
| url | string | no | Any link associated/brief of the announcement. |
| status | string | no | Status of Announcement. Choose between ["A", "D", "I"]. Defaults to "A". A - Active, D - In Draft, I - Archive |

### Retrieve Announcement
`GET https://www.apizie.tech/v1/business:clayhr/announcement-get-by-id` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| annId | integer | yes | The ID of the announcement. |

### Update Announcement
`POST https://www.apizie.tech/v1/business:clayhr/announcement-update-announcement` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| annId | integer | yes | The ID of the announcement. |
| title | string | yes | Title of the announcement. |
| desciption | string | yes | Description of the announcement. |
| url | string | no | Link associated with the announcement. |
| status | string | yes | Status of Announcement. Choose between ["A", "D", "I"]. Defaults to "A". A - Active, D - In Draft, I - Archive |

### Retrieve Announcement Attachments
`GET https://www.apizie.tech/v1/business:clayhr/announcement-get-attachments-by-id` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| annId | integer | yes | The ID of the announcement. |

### Retrieve candidates
`GET https://www.apizie.tech/v1/business:clayhr/candidates-get` (byok)

### Create new candidate
`POST https://www.apizie.tech/v1/business:clayhr/candidates-submit-new-candidate` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| name | string | no | Name of the candidate. |
| email | string | no | Email ID of the candidate. |
| isNewCand | string | no | Is this new candidate? |
| phone | integer | no | Phone number of the candidate. |
| source | string | no | The source from which the candidate is being created. |

### Retrieve the candidate detail by recruitid
`GET https://www.apizie.tech/v1/business:clayhr/candidates-get-candidate-detail-by-recruitid` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| recruitid | integer | yes | The ID of the recruiter. |

### Retrieve candidates with basic details
`GET https://www.apizie.tech/v1/business:clayhr/candidates-get-basic-details` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| page | integer | no | Page number. |
| pageSize | integer | no | Number of candidates per page. |
| search | string | no |  |

### Retrieve Custom Field by ID
`GET https://www.apizie.tech/v1/business:clayhr/custom-fields-get-by-id` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| customFieldId | integer | yes | The ID of the custom field. |

### Retrieve Custom Fields
`GET https://www.apizie.tech/v1/business:clayhr/custom-fields-get-custom-fields` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| objectType | string | no | The object type of custom field. |

### Retrieve Custom Field Value
`GET https://www.apizie.tech/v1/business:clayhr/custom-fields-get-value` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| customFieldCode | string | no | customFieldCode |
| customFieldId | integer | yes | customFieldId |
| userEmail | string | no | userEmail |
| empId | string | no | empId |

### Update Custom Field Value
`POST https://www.apizie.tech/v1/business:clayhr/custom-fields-update-value` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| customFieldId | integer | yes |  |
| customFieldCode | string | no |  |
| userEmail | string | no |  |
| empId | string | no |  |
| value | string | yes |  |

### Retrieve Custom Lists
`GET https://www.apizie.tech/v1/business:clayhr/custom-fields-get-custom-lists` (byok)

### Delete dependent by contactId
`POST https://www.apizie.tech/v1/business:clayhr/dependents-delete-by-contact-id` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| contactId | integer | yes | Contact ID of Dependent |

### Retrieve document as byte array
`GET https://www.apizie.tech/v1/business:clayhr/document-library-get-document-as-byte-array` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| fileName | string | yes | File ID from the server |

### Retrieve attachments within document library
`GET https://www.apizie.tech/v1/business:clayhr/document-library-get-attachments` (byok)

### Retrieve currencies
`GET https://www.apizie.tech/v1/business:clayhr/expense-reports-get-currencies` (byok)

### Retrieve the details of expense report
`GET https://www.apizie.tech/v1/business:clayhr/expense-reports-get-report-details` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| expenseReportId | integer | no | The ID of the expense report. |
| guid | string | no | The unique system generated ID of the user. |

### Create expense report
`POST https://www.apizie.tech/v1/business:clayhr/expense-reports-create-new` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| name | string | yes | Name of the expense report. |
| amount | number | yes | Amount to be added in expense report. |
| description | string | no | Description of the expense report. |

### Retrieve expense types
`GET https://www.apizie.tech/v1/business:clayhr/expense-reports-get-expense-types` (byok)

### Retrieve expense reports by User ID
`GET https://www.apizie.tech/v1/business:clayhr/expense-reports-get-by-user-id` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| guid | string | no | The unique system generated ID of the user. |
| email | string | no | Email of the user. |

### Submit expense report
`POST https://www.apizie.tech/v1/business:clayhr/expense-reports-submit-expense-report` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| expenseReportId | integer | yes | The ID of the expense report. |
| status | string | yes | Status of the expense report. |

### Delete expense report
`POST https://www.apizie.tech/v1/business:clayhr/expense-reports-delete-expense-report` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| expenseReportId | integer | yes | The ID of the expense report. |

### Create expense item
`POST https://www.apizie.tech/v1/business:clayhr/expense-reports-create-new-expense-item` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| amount | number | yes | Amount of the expense item. |
| billable | string | yes | Y for "Yes" and N for "No". |
| cid | integer | yes | The unique ID of the customer. |
| currencyCode | string | yes | Code of the currency. |
| date | string | yes | Date of creating expense item. |
| expenseItemId | integer | yes | The ID of the expense item. |
| expenseType | string | yes | The type of expense. |
| expenseTypeId | integer | yes | The ID of the expense type. |
| projectId | integer | yes | The ID of the project. |
| reimbursible | string | yes | Y for "Yes" and N for "No". |
| remarks | string | yes |  |

### Retrieve forms
`GET https://www.apizie.tech/v1/business:clayhr/forms-get-dyna-form` (byok)

### Retrieve completed forms assigned to me
`GET https://www.apizie.tech/v1/business:clayhr/forms-get-assigned-forms` (byok)

### Retrieve form response
`GET https://www.apizie.tech/v1/business:clayhr/forms-get-form-response` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| assignUserId | integer | no | The ID of User. |
| assignmentId | integer | no | The Assignment ID of the User. |
| dynamicFormId | integer | yes | The ID of Form. |

### Retrieve form responses
`GET https://www.apizie.tech/v1/business:clayhr/forms-get-form-responses` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| dynamicFormId | integer | yes | The ID of Form. |

### Save form repsonse
`POST https://www.apizie.tech/v1/business:clayhr/forms-save-form-response` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| assignmentId | integer | yes | The Assignment ID of the User. |

### Save item response
`POST https://www.apizie.tech/v1/business:clayhr/forms-submit-item-response` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| assignmentId | integer | yes | The Assignment ID of the User. |
| itemId | integer | yes | The ID of the form Item. |
| responseValue | string | yes | Response Value to save in Form. |

### Retrieve form details
`GET https://www.apizie.tech/v1/business:clayhr/forms-get-details` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| dynamicFormId | integer | yes | The ID of Form. |

### Retrieve goals of user
`GET https://www.apizie.tech/v1/business:clayhr/goals-get-user-goals` (byok)

### Retrieve job profiles
`GET https://www.apizie.tech/v1/business:clayhr/job-profiles-get-job-profiles` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| status | string | yes | Status of the job profile A- Active, OPEN- Open, ARCHV- Archive |

### Retrieve remaining hours credit for leave policy
`GET https://www.apizie.tech/v1/business:clayhr/leaves-get-remaining-hours-credit` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| leaveDate | string | yes | The date of the leave. |
| leaveId | integer | yes | The Id of the leave. |
| leaveUserId | integer | yes | The userId for that leave. |
| ptoPolicyId | integer | yes | The Id of the ptoPolicy |

### Create a new leave.
`POST https://www.apizie.tech/v1/business:clayhr/leaves-create-new-leave` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| body | object | yes | JSON request body |

### Retrieve leave requests within a date range
`GET https://www.apizie.tech/v1/business:clayhr/leaves-get-leave-requests-within-date-range` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| endDate | string | yes | End date of the leave. |
| leaveUserid | integer | no | The userId for that leave. |
| startDate | string | yes | Start date of the leave. |
| status | string | no | The status of leave. AP: Leave approved WA: Leave is waiting for approval RJ: Leave has been rejected PAP: Leave is in a muti layer… |

### Retrieve leaves for approval/rejection by filtering on basis of Role
`GET https://www.apizie.tech/v1/business:clayhr/leaves-get-leaves-based-on-role` (byok)

### Process the leave of a user by leave Id
`GET https://www.apizie.tech/v1/business:clayhr/leaves-process-leave-by-id` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| leaveId | integer | yes | The Id for the leave. |
| status | string | yes | The status of leave. AP: Leave approved WA: Leave is waiting for approval RJ: Leave has been rejected PAP: Leave is in a muti layer… |

### Add PTO balance.
`POST https://www.apizie.tech/v1/business:clayhr/leaves-add-pto-balance` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| body | object | yes | JSON request body |

### Retrieve all the OrgRelations for the given user.
`GET https://www.apizie.tech/v1/business:clayhr/org-relation-get-org-relations-by-user` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| employeeUserId | integer | no | User Id for which org relation will be fetched. |
| empId | string | no | Employee Id for which org relation will be fetched. |
| email | string | yes | Email for which org relation will be fetched. |

### Retrieve all active OrgRelations
`GET https://www.apizie.tech/v1/business:clayhr/org-relation-get-all-active` (byok)

### Saves the OrgRelation for the User
`GET https://www.apizie.tech/v1/business:clayhr/org-relation-save-user` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| orgRelationId | integer | yes | ID of OrgRelation for which data will be saved. |
| managerUserId | integer | yes | User Id of the manager. |
| managerEmail | string | yes | Email of manager. |
| userEmail | string | no | User's email. |
| otherUserId | integer | no | User Id of the reporter. |
| relationType | string | no | Type of relation w.r.t manager. |
| startDate | string | no | Date of start in that org unit. |
| enddate | string | no | Ending date in that org unit. |
| cid | integer | no | Company ID. |
| status | string | no | User is active or not active. |

### Retrieve org units
`GET https://www.apizie.tech/v1/business:clayhr/org-units-get-org-units` (byok)

### Create new org unit
`POST https://www.apizie.tech/v1/business:clayhr/org-units-create-new-org-unit` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| name | string | yes | Name of the org unit. |
| description | string | yes | Description of the org unit. |
| deptHead | integer | no | The ID of the department head. |
| deptHeadName | string | no | Name of the department head. |
| departmentCode | string | no | The code of the department. |
| departmentId | integer | no | The ID of the department. |
| departmentLabel | string | no | Label for the department. |
| noOfEmployees | integer | no | Number of employees. |
| parentDepartmentId | integer | no | The ID of the parent department. |
| parentDepartmentName | string | no | Name of the parent department. |

### Retrieve my pay stubs
`GET https://www.apizie.tech/v1/business:clayhr/pay-stubs-get-details` (byok)

### Create or Update user
`POST https://www.apizie.tech/v1/business:clayhr/people-and-permissions-create-or-update-user-details` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| body | object | no | JSON request body |

### Create user
`POST https://www.apizie.tech/v1/business:clayhr/people-and-permissions-create-user` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| firstName | string | yes | First name of user. |
| email | string | yes | Mail ID of user. |

### Update user
`POST https://www.apizie.tech/v1/business:clayhr/people-and-permissions-update-user` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| guid | string | no | The unique system generated ID of the user. |
| email | string | no | Email address of the user. |
| empId | string | no | Employee ID of the user. To update the employee ID, you need admin access. |
| firstName | string | no | First name of the user. |
| middleName | string | no | Last name of the user. |
| lastName | string | no | Last name of the user. |
| secondLastName | string | no | Second last name of the user. |
| displayFullName | string | no | Display name of the user. |
| cellPhone | string | no | Cell phone of the user. |
| phone | string | no | Phone number of the user. |
| familySuffix | string | no | Family suffix of the user. |
| userDateOfBirth | string | no | Date of birth of the user. |
| jobGrade | string | no | Job grade of the user. |
| userStartDate | string | no | Starting date of the user. |
| userEndDate | string | no | End date of the user. |
| gender | string | no | Gender of the user. |
| position | string | no | Position of the user. |
| profileId | string | no | Profile ID of the user. |
| shortName | string | no | Short name of the user. |
| status | string | no | Status of the user. |
| locationName | string | no | Location of the user. |
| locationId | string | no | Location ID of user location. |
| notes | string | no |  |

### Retrieve user basic information
`GET https://www.apizie.tech/v1/business:clayhr/people-and-permissions-get-user-basic-information` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| email | string | no | Email of user |

### Create compensation for user
`POST https://www.apizie.tech/v1/business:clayhr/people-and-permissions-create-user-compensation` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| value | string | yes | Value of compensation |
| compensationType | string | yes | Type of compensation. sal - Salary, pay - , INCTV - Incentive, SVCR - Severance |
| currencyCode | string | yes |  |
| period | string | yes | Time period for compensation. HRLY - Hourly, DLY - Daily, WKLY - Weekly, BWKLY - Bi-Weekly, MTHLY - Monthly, BMTH - Bi-Monthly, QTRLY -… |
| effectivedate | string | yes |  |
| enddate | string | no |  |
| status | string | yes | Status of compensation. ACTV - Active, ARCHV - Archive, PVNL - Provisional |
| notes | string | no |  |

### Update financial record of User
`POST https://www.apizie.tech/v1/business:clayhr/people-and-permissions-update-financial-record` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| guid | string | yes |  |
| value | string | yes |  |
| compensationType | string | yes | Type of compensation. sal - Salary, pay - , INCTV - Incentive, SVCR - Severance |
| currencyCode | string | yes |  |
| period | string | yes | Time period for compensation. HRLY - Hourly, DLY - Daily, WKLY - Weekly, BWKLY - Bi-Weekly, MTHLY - Monthly, BMTH - Bi-Monthly, QTRLY -… |
| effectivedate | string | no |  |
| enddate | string | no |  |
| status | string | yes | Status of compensation. ACTV - Active, ARCHV - Archive, PVNL - Provisional |
| notes | string | no |  |

### Retrieve a user or list of users
`GET https://www.apizie.tech/v1/business:clayhr/people-and-permissions-get-user-list` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| name | string | no |  |

### Retrieve user permissions and menu configurations
`GET https://www.apizie.tech/v1/business:clayhr/people-and-permissions-get-user-permissions-and-menu-configu` (byok)

### Retrieve user financial status
`GET https://www.apizie.tech/v1/business:clayhr/people-and-permissions-get-financial-status` (byok)

### Upload user profile
`POST https://www.apizie.tech/v1/business:clayhr/people-and-permissions-upload-user-profile-picture` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| body | object | no | Form fields as a JSON object |

### Retrieve all users details
`GET https://www.apizie.tech/v1/business:clayhr/people-and-permissions-get-all-users-details` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| name | string | no | Name of the user. |
| page | integer | no | Page number. |
| pageSize | integer | no | Number of users per page. |
| search | string | no |  |
| startDateBefore | string | no | The date before the assigned Start Date. |
| startDateAfter | string | no | The date after the assigned Start Date. |
| endDateBefore | string | no | The date before the assigned End Date. |
| endDateAfter | string | no | The date after the assigned End Date. |
| status | string | no | Status of the user. A- Active User I- Inactive User F- Future Joiner |

### Retrieve basic user details
`GET https://www.apizie.tech/v1/business:clayhr/people-and-permissions-get-basic-user-details` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| name | string | no | Name of the user. |
| page | integer | no | Page number. |
| pageSize | integer | no | Number of users per page. |
| search | string | no |  |
| startDateBefore | string | no | The date before the assigned Start Date. |
| startDateAfter | string | no | The date after the assigned Start Date. |
| endDateBefore | string | no | The date before the assigned End Date. |
| endDateAfter | string | no | The date after the assigned End Date. |
| status | string | no | Status of the user. A- Active User I- Inactive User F- Future Joiner |

### Save User Address
`POST https://www.apizie.tech/v1/business:clayhr/people-and-permissions-save-user-address` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| empId | string | no | The unique identity of the employee. |
| email | string | no | Email address of the user. |
| body | object | no | JSON request body |

### Save User Education
`POST https://www.apizie.tech/v1/business:clayhr/people-and-permissions-save-user-education` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| empId | string | no | The unique identity of the employee. |
| email | string | no | Email address of the user. |
| body | object | no | JSON request body |

### Save User Employment
`POST https://www.apizie.tech/v1/business:clayhr/people-and-permissions-save-user-employment` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| empId | string | no | The unique identity of the employee. |
| email | string | no | Email address of the user. |
| body | object | no | JSON request body |

### Add reports to
`POST https://www.apizie.tech/v1/business:clayhr/people-and-permissions-add-reports-to` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| empId | string | no | The unique identity of the employee. |
| email | string | no | Email address of the user. |
| body | object | no | JSON request body |

### Save Custom Field values
`POST https://www.apizie.tech/v1/business:clayhr/people-and-permissions-save-custom-field-values` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| empId | string | no | The unique identity of the employee. |
| guid | string | no | The unique system generated ID of the user. |
| email | string | no | Email address of the user. |
| body | object | no | JSON request body |

### Delete User Address
`POST https://www.apizie.tech/v1/business:clayhr/people-and-permissions-delete-user-address` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| addressId | string | yes | The unique ID of the address. |

### Deletes User Employment
`POST https://www.apizie.tech/v1/business:clayhr/people-and-permissions-delete-user-employment` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| empid | integer | yes | The unique identity of the employee. |

### Delete User Education
`POST https://www.apizie.tech/v1/business:clayhr/people-and-permissions-delete-user-education` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| educationId | string | yes | Education ID the user |

### Retrieve Performance Reviews
`GET https://www.apizie.tech/v1/business:clayhr/performance-review-get-performance-reviews` (byok)

### Retrieve Performance Review Templates
`GET https://www.apizie.tech/v1/business:clayhr/performance-review-get-templates` (byok)

### Create Performance Review
`POST https://www.apizie.tech/v1/business:clayhr/performance-review-create-performance-review` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| templateId | integer | yes | The ID of the performance review template. |
| StartDate | string | no | Start Date of the performance review. |
| EndDate | string | no | End Date of the performance review. |
| AppraisalType | string | no | Review Period |

### Retrieve Completed Performance Reviews
`GET https://www.apizie.tech/v1/business:clayhr/performance-review-get-completed-reviews-based-on-user-id` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| targetUserId | integer | yes | The ID of the user. |

### Launch Performance Reviews In Bulk
`POST https://www.apizie.tech/v1/business:clayhr/performance-review-launch-performance-reviews-in-bulk` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| templateId | string | no |  |
| reviewType | string | no |  |
| startDate | string | no |  |
| endDate | string | no |  |
| importGoals | string | no |  |
| importJobProfileSkills | string | no |  |
| importSkills | string | no |  |
| userIdList | string | no |  |

### Retrieve Performance Review Assignments
`GET https://www.apizie.tech/v1/business:clayhr/performance-review-assignment-get-assignments` (byok)

### Save Position
`POST https://www.apizie.tech/v1/business:clayhr/positions-create-position` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| name | string | yes | Name of Position |
| description | string | no | Description of Position |
| count | integer | yes | Number of openings |
| status | string | yes | Status of Position |
| accessLevel | string | yes | Access level of Position 'pvt' - Private, 'ijp' - Publish Internally, 'pub' - Public |
| requirements | string | no | Requirements of Position |
| responsibilities | string | no | Responsibilities of Position |
| dateOpen | string | yes | Date of Opening |
| dateClose | string | yes | Date of Closing |
| positionUID | string | yes | Unique Identity of Position |
| projectid | integer | no | Project ID of Position |
| funnelId | integer | yes | Candidate Funnel ID of Position |
| approvalFlowId | integer | no | Position Approval Flow ID of Position |
| locationid | integer | no | Location ID of Position |
| departmentId | string | no | Department ID of Position |
| profileid | integer | no | Profile ID of Position |
| recruiterId | integer | no | ID of Recruiter |

### Retrieve position
`GET https://www.apizie.tech/v1/business:clayhr/positions-get-position` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| positionid | integer | yes |  |

### Retrieve positions
`GET https://www.apizie.tech/v1/business:clayhr/positions-get-positions-list` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| search | string | no |  |
| page | integer | no | Page number |
| pageSize | integer | no | Number of users per page |

### List Allocations
`GET https://www.apizie.tech/v1/business:clayhr/project-list-allocations` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| projectId | integer | yes | The ID of the project. |

### Assign Project Allocation
`POST https://www.apizie.tech/v1/business:clayhr/project-assign-user-allocation` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| body | object | no | JSON request body |

### Retrieve Project
`GET https://www.apizie.tech/v1/business:clayhr/project-details-by-id` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| projectId | string | yes | The ID of the project. |

### List Projects
`GET https://www.apizie.tech/v1/business:clayhr/project-list-projects` (byok)

### Create Project
`POST https://www.apizie.tech/v1/business:clayhr/project-create-new` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| body | object | no | JSON request body |

### Get report
`GET https://www.apizie.tech/v1/business:clayhr/reports-get-report-details` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| analyticId | string | yes | analyticId |

### Get content for report by analytic Id
`GET https://www.apizie.tech/v1/business:clayhr/reports-get-content-by-analytic-id` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| analyticId | string | yes | analyticId |

### Retrieve report content
`GET https://www.apizie.tech/v1/business:clayhr/reports-get-content-for-report` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| analyticId | integer | yes | The ID of the report. |

### Create a new skill
`POST https://www.apizie.tech/v1/business:clayhr/skills-create-new-skill` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| body | object | no | JSON request body |

### Retrieve skills
`GET https://www.apizie.tech/v1/business:clayhr/skills-get-skills` (byok)

### Retrieve skills assigned to a user
`GET https://www.apizie.tech/v1/business:clayhr/skills-get-user-assigned-skills` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| assignedUserID | integer | yes | The ID of the user whose skills should be retrieved. |

### Retrieve all the Responses of the Survey
`GET https://www.apizie.tech/v1/business:clayhr/survey-get-all-survey-responses` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| SurveyId | integer | no | The ID of the survey. |

### Create the item's response for a survey
`POST https://www.apizie.tech/v1/business:clayhr/survey-create-item-response` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| assignmentId | integer | yes | assignmentId |
| itemId | integer | yes | itemId |
| responseValue | string | yes | responseValue |

### Get a list of surveys
`GET https://www.apizie.tech/v1/business:clayhr/survey-get-list` (byok)

### Create a survey response by assignment id
`POST https://www.apizie.tech/v1/business:clayhr/survey-create-response-by-assignment-id` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| assignmentId | integer | yes | assignmentId |

### Get the details of a survey form by form id
`GET https://www.apizie.tech/v1/business:clayhr/survey-details-by-form-id` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| dynamicFormId | integer | no | dynamicFormId |

### Retrieve timecard details by User ID.
`GET https://www.apizie.tech/v1/business:clayhr/timecards-get-by-user-id` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| email | string | no | email of the user. |
| guid | string | no | Graphical user ID. |

### Retrieve timecard basic details by User ID.
`GET https://www.apizie.tech/v1/business:clayhr/timecards-get-by-user-id-2` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| email | string | no | email of the user. |
| guid | string | no | Graphical user ID. |

### Clock Out
`GET https://www.apizie.tech/v1/business:clayhr/timecards-clock-out` (byok)

### Device verification with DeviceUUID.
`GET https://www.apizie.tech/v1/business:clayhr/timecards-verify-device-with-device-uuid` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| deviceUUID | string | yes | deviceUUID |

### TVC code for clockin with QR Code using cid.
`GET https://www.apizie.tech/v1/business:clayhr/timecards-get-tvcfor-clockin-with-qrcode-using-cid` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| cid | integer | yes | cid |

### User verification with userid.
`GET https://www.apizie.tech/v1/business:clayhr/timecards-verify-user-with-userid` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| adpAssociateOID | string | no |  |
| allocation | number | no |  |
| appleUserIdentifier | string | no |  |
| assignments | string | no |  |
| authToken | string | no |  |
| calWeekPref | string | no |  |
| calendarId | integer | no |  |
| candidateId | integer | no |  |
| careerPathwayId | integer | no |  |
| cellPhone | string | no |  |
| cid | integer | no |  |
| countryId | integer | no |  |
| createts.date | integer | no |  |
| createts.day | integer | no |  |
| createts.hours | integer | no |  |
| createts.minutes | integer | no |  |
| createts.month | integer | no |  |
| createts.nanos | integer | no |  |
| createts.seconds | integer | no |  |
| createts.time | integer | no |  |
| createts.timezoneOffset | integer | no |  |
| createts.year | integer | no |  |
| createuserid | integer | no |  |
| thumbnail | string | no |  |
| timecardPeriodPref | string | no |  |
| timezone | string | no |  |
| tosVersion | string | no |  |
| userCountry | string | no |  |
| userDateFormat | string | no |  |
| userDateOfBirth | string | no |  |
| userDisplayName | string | no |  |
| userEndDate | string | no |  |
| userName | string | no |  |
| userNameFormat | string | no |  |
| userType | string | no |  |
| view | boolean | no |  |
| workerType | string | no |  |
| workingDays | string | no |  |

### Register device for ClockIn with AssetModel.
`POST https://www.apizie.tech/v1/business:clayhr/timecards-register-device-for-clock-in-with-asset-model` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| accessories | string | no |  |
| acknowledge | integer | no |  |
| assetID | integer | no |  |
| assetno | string | no |  |
| assetstatus | string | no |  |
| assettype | string | no |  |
| purchaseDate | string | no |  |
| selfAssign | integer | no |  |
| serialno | string | no |  |
| service | string | no |  |
| source | string | no |  |
| specs | string | no |  |
| supplier | string | no |  |
| useStatusCode | string | no |  |
| userDomain | string | no |  |
| userMail | string | no |  |
| userPassword | string | no |  |
| uuid | string | no |  |

### Retrieve timecard details based on timecard ID.
`GET https://www.apizie.tech/v1/business:clayhr/timecards-get-details-by-timecard-id` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| timecardId | integer | yes | Timecard ID of the timecard. |
| flatcustomfields | boolean | no |  |

### Retrieve timecards by Timesheet ID.
`GET https://www.apizie.tech/v1/business:clayhr/timesheets-get-timecards-by-timesheet-id` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| startDate | string | yes | Start date of the timesheet. |
| endDate | string | yes | End date of the timesheet. |

### Retrieve list of activity types based on cid.
`GET https://www.apizie.tech/v1/business:clayhr/timesheets-list-activity-types-by-cid` (byok)

### Retrieve my active allocations.
`GET https://www.apizie.tech/v1/business:clayhr/timesheets-get-active-allocations` (byok)

### Clock in.
`POST https://www.apizie.tech/v1/business:clayhr/timesheets-clock-in` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| proceedOutsideGeoFence | integer | no | To clockin outside geofence |
| description | string | no | Description of timecard. |
| projectId | integer | no | Project ID of project. |
| projectManager | string | no | Project Manager corresponding user. |
| categoryCode | string | no | Category of timecard. Choose between ["Regular", "Overtime"]. |
| notes | string | no | Notes. |
| billable | string | no | Billable or non- billable timecard. Select 'Y' for billable and 'N' for non-billable |
| activity | string | no | Activity type of timecard. |
| approvalRejectionReason | string | no | Reason for approval rejection. |
| clockInLongitude | number | no | Longitude value while clocking in. |
| clockInLatitude | number | no | Latitude value while clocking in. |
| clockOutLongitude | number | no | Longitude value while clocking out. |
| clockOutLatitude | number | no | Latitude value while clocking out. |
| projectAreaId | integer | no | Project area ID of project area. |

### Clock out.
`POST https://www.apizie.tech/v1/business:clayhr/timesheets-clock-out` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| proceedOutsideGeoFence | integer | no | clock out outside geofence |
| description | string | no | Description of timecard. |
| projectId | integer | no | Project ID of project. |
| projectManager | string | no | Project Manager corresponding user. |
| categoryCode | string | no | Category of timecard. Choose between ["Regular", "Overtime"]. |
| notes | string | no | Notes. |
| billable | string | no | Billable or non- billable timecard. Select 'Y' for billable and 'N' for non-billable |
| activity | string | no | Activity type of timecard. |
| approvalRejectionReason | string | no | Reason for approval rejection. |
| clockInLongitude | number | no | Longitude value while clocking in. |
| clockInLatitude | number | no | Latitude value while clocking in. |
| clockOutLongitude | number | no | Longitude value while clocking out. |
| clockOutLatitude | number | no | Latitude value while clocking out. |
| projectAreaId | integer | no | Project area ID of project area. |

### Delete a timesheet.
`POST https://www.apizie.tech/v1/business:clayhr/timesheets-delete-by-timesheet-id` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| timesheetId | integer | yes | Timesheet ID of timesheet. |

### Retrieve my timesheet preferences.
`GET https://www.apizie.tech/v1/business:clayhr/timesheets-get-preferences-by-cid` (byok)

### Create/Update a timesheet.
`POST https://www.apizie.tech/v1/business:clayhr/timesheets-create-or-update-timesheet` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| date | string | yes | Timesheet date. |
| projectId | integer | yes | Project ID of project. |
| elapsedTime | string | yes | Elapsed Time of timecard. |
| cardId | integer | no | Timecard Id of timecard. |
| description | string | no | Description of timecard. |
| clockedOutsideGeofence | integer | no | Clocked in or clocked out outside geofence. |
| projectManager | string | no | Project Manager corresponding user. |
| categoryCode | string | no | Category of timecard. Choose between ["Regular", "Overtime"]. |
| notes | string | no | Notes. |
| billable | string | no | Billable or non- billable timecard. Select 'Y' for billable and 'N' for non-billable |
| activity | string | no | Activity type of timecard. |
| approvalRejectionReason | string | no | Reason for approval rejection. |
| clockInLongitude | number | no | Longitude value while clocking in. |
| clockInLatitude | number | no | Latitude value while clocking in. |
| clockOutLongitude | number | no | Longitude value while clocking out. |
| clockOutLatitude | number | no | Latitude value while clocking out. |
| projectAreaId | integer | no | Project area ID of project area. |

### Update timesheet status by Timesheet ID.
`POST https://www.apizie.tech/v1/business:clayhr/timesheets-update-status-by-timesheet-id` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| timesheetId | integer | yes | Timesheet ID of the timesheet. |
| status | string | yes | Status of timecard. Choose between ["PD-Pending for Approval", "PAP-Partially Approved", "AP-Fully Approved","NEW-New… |
| comments | string | no | Comments |

### Retrieve timesheets by User ID.
`GET https://www.apizie.tech/v1/business:clayhr/timesheets-get-by-user-id` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| startDate | string | no | Start date of the timesheet. |
| endDate | string | no | End date of the timesheet. |

### Retrieve timesheet approvals.
`GET https://www.apizie.tech/v1/business:clayhr/timesheets-get-approval-list` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| startDate | string | yes | Start date of the timesheet. |
| endDate | string | yes | End date of the timesheet. |

### Retrieve a timesheet by timesheet ID.
`GET https://www.apizie.tech/v1/business:clayhr/timesheets-get-by-timesheet-id` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| timesheetId | integer | yes | Tmesheet ID of timesheet. |

### Retrieve timesheet details by Timesheet ID.
`GET https://www.apizie.tech/v1/business:clayhr/timesheets-get-details-by-timesheet-id` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| timeSheetId | integer | yes | Timesheet ID of timesheet. |
| flatcustomfields | boolean | no |  |

### Retrieve training content by training ID
`GET https://www.apizie.tech/v1/business:clayhr/trainings-get-training-content-by-training-id` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| trainingId | integer | yes | trainingId |

### Update training status for user
`POST https://www.apizie.tech/v1/business:clayhr/trainings-update-user-status` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| status | string | yes | Status of the user training. |
| userTrainingId | integer | yes | The ID of the user training. |

### Sync with talent LMS
`GET https://www.apizie.tech/v1/business:clayhr/trainings-synchronize-with-talent-lms` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| redirectUrl | string | yes | redirectUrl |

### Retrieve trainings by user ID
`GET https://www.apizie.tech/v1/business:clayhr/trainings-get-by-user-id` (byok)

### Retrieve list of PTO policies
`GET https://www.apizie.tech/v1/business:clayhr/user-pto-policies-list-pto-policies` (byok)

### Retrieve your PTO Policies
`GET https://www.apizie.tech/v1/business:clayhr/user-pto-policies-get-policies` (byok)

### Assign Workflow to User
`POST https://www.apizie.tech/v1/business:clayhr/user-workflow-assign-workflow-to-user` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| workflowId | integer | yes | The ID of the workflow. |
| assigneeUserId | integer | yes | The ID of Workflow Assignee. |
| coordinatorUserId | integer | yes | The ID of Workflow Coordinator. |
| comment | string | no | Comment of the workflow. |

### Get workflows by user id.
`GET https://www.apizie.tech/v1/business:clayhr/workflows-get-user-workflows` (byok)

…and 23 more. See the OpenAPI spec.

## Example
```
curl "https://www.apizie.tech/v1/business:clayhr/authentication-get-access-token" \
  -H "x-api-key: $APIZIE_KEY" \
  -H "x-upstream-key: $PROVIDER_KEY"
```

## FAQ

### How do I call the ClayHR Expense Reports API?
Create a free Apizie key, then send GET https://www.apizie.tech/v1/business:clayhr/authentication-get-access-token with the header x-api-key. Every endpoint returns { project, data, timestamp }.

### Is the ClayHR Expense Reports API free on Apizie?
Yes. The Free plan includes 1,000 requests a month at 100 requests a minute, no credit card. ClayHR Expense Reports itself also needs your own key from acmecompany.bizmerlin.net.

### Can AI agents use the ClayHR Expense Reports API?
Yes. Add the Apizie MCP server (https://www.apizie.tech/mcp) to Claude, ChatGPT, Cursor or VS Code, then ask in plain language. The agent calls run_scraper with project key business:clayhr.

### What is the status of the ClayHR Expense Reports API?
Needs your own provider key (bring your own key)
