---
title: "Import (create or update) members (employees) through a csv file"
method: POST
path: "/v1/public/members/import-file"
tags: ["Public", "Members"]
---

# Import (create or update) members (employees) through a csv file

`POST /v1/public/members/import-file`

## Request

- Base URL: `https://api.evolia.com`
- URL: `https://api.evolia.com/v1/public/members/import-file`
- Auth: HTTP basic
- TypeScript: <https://skmtc.dev/evolia/apis/public-evolia/docs/v1/public/members/import-file/post.ts> (a function with typed inputs; its response is checked against the schema)

## Query parameters

- `stopOnErrors` boolean
- `idField` 'code' | 'email'
- `file` unknown, required

## Request body `multipart/form-data`

- ImportMemberRequest
  - `fName` string, required: Member First Name
  - `lName` string, required: Member Last Name
  - `email` string, nullable: Member email must be a valid email
  - `phone` string, nullable: Member phone
  - `code` string, nullable: Member code act as employee number. It is also used to uniquely identify a member during third parties system integration and during importation
  - `hiringDate` string, nullable: Date in SQL format yyyy-mm-dd
  - `hourlyWage` number, nullable: Default hourly wage used in all positions
  - `maxHoursPerWeek` number, nullable: Maximum hours of work per week. Must be between 0 and 168 hours.
  - `maxHoursPerPayPeriod` number, nullable: Maximum hours of work per pay period. Must be greater than 0
  - `emailNotification` boolean: Accept email notifications
  - `pushNotification` boolean: Accept push notifications
  - `locale` string: Evolia uses this locale when sending emails or sms to the member. Possible values are fr, en, es (french, english, spanish)
  - `skillCodes` string: Semicolon separated skill code
  - `skillNames` string: Semicolon skill name (skillCodes will take precedence over skillNames if set)
  - `skillWages` string: Hourly wage by skill. Use this format skillCode:amount. Elements must be separate by a semicolon
  - `initialExperienceHoursBySkill` string: Use this format skillCode:hourCount separate all entries with a semicolon
  - `teamCodes` string: Semicolon separated team code
  - `teamNames` string: Semicolon separated team name (teamCodes will take precedence over teamNames if set)
  - `locationCodes` string: Semicolon separated location code
  - `locationNames` string: Semicolon separated location name (locationCodes will take precedence over locationNames if set)
  - `typeCode` string: Employment status code
  - `pin` string: Pin is used to clock in punch console. The value is a number represented as string
  - `gender` 'M' | 'F' | 'X' | 'P': Member gender. P mean "Prefer not to say"
  - `birthdate` string: Date in SQL format yyyy-mm-dd
  - `addressline1` string: Home address (line 1)
  - `addressline2` string: Home address (line 2)
  - `city` string: City of residence
  - `state` string: State of residence
  - `postalCode` string: Postal code / zip code of residence
  - `country` string: Country of residence
  - `primaryEmergencyContactName` string: Name of the person to contact in case of an emergency
  - `primaryEmergencyContactPhone` string: Phone number of the person to contact in case of an emergency
  - `primaryEmergencyContactNote` string: Note about the emergency contact
  - `secondaryEmergencyContactName` string: Name of the second person to contact in case of an emergency
  - `secondaryEmergencyContactPhone` string: Phone number of the second person to contact in case of an emergency
  - `secondaryEmergencyContactNote` string: Note about the second emergency contact
  - `status` 'active' | 'inactive': Member status, active or inactive

## Response `200`

- MemberImportFileResponse
  - `totalQueuedMembers` number, required: Total count of members put in the queue.
  - `updateMembersCount` number, required: Total count of member that will be updated.
  - `createMembersCount` number, required: Total count of member that will be created.
  - `errorsCount` number, required: Total error count contained in the file.
  - `errors` object, required: A list of error messages indicating the row number containing the error. Return null if no error.
  - `queueId` string, required: Queue Id

## Other responses

- `422`: The file contains semantic errors like an unknown position code

---

[API](https://skmtc.dev/evolia/apis/public-evolia.md) - [All operations](https://skmtc.dev/evolia/apis/public-evolia/llms.txt) - [OpenAPI document](https://skmtc.dev/evolia/apis/public-evolia/revisions/e42abb18d4b6?raw)
