Members API
Creates new members and updates existing members from CSV input for the target product. A row whose Email matches an existing member in the org is an update; every other row is a create. Returns 200 with a MemberCsvImportResult, or a detailed validation result on 400. A file containing any invalid row is rejected as a whole.
An import never removes anyone: members who already have access to the product but are absent from the file keep it, and are listed in absentMembers on the response. To remove them as part of the same bulk-upload process, follow this call with DELETE /members/bulk-remove, passing those emails.
Target product to import members into.
PERFORMPossible values: CSV file containing member records. Must be less than 10MB in size. A header row is required, and each following row corresponds to one member. The header must include the required columns below, as well as any optional columns containing values. Column matching is case-insensitive and order-independent; a header outside this set rejects the file.
Header row with every available column:
Employee ID,First Name,Last Name,Email,New Email,Job Title,Level,Office City,Office State (US Only),Office Country (Non-US Only),Department,Practice Area,Law School,Graduation Year,Effective Class Year,Start Date,Role,SSO ID,Use MFA,Bio Link,Work Arrangement,FLSA Status,Manager Email,Mentor Emails
Employee ID— string, optional. Must be unique across rows.First Name— string, required. Must not contain\,<,>,|,"or`.Last Name— string, required. Same disallowed characters as First Name.Email— string, required. Must be unique and a well-formed email address.New Email— string, optional. Must be a well-formed email address. On a row whoseEmailmatches an existing member, moves that member to this address; a blank or unchanged value is a no-op, and a row matching no existing member is rejected. No two rows may target the same address, and the address must not already belong to another user or employee in the org. Only takes effect when the bulk email-update feature is enabled for the organization.Job Title— string, optional.Level— string, optional. Only persisted when product is PERFORM.Office City— string, optional.Office State (US Only)— string, optional.Office Country (Non-US Only)— string, optional.Department— string, optional.Practice Area— string, optional.Law School— string, optional.Graduation Year— string, optional. 4 digits within 200 years of the current year. Only persisted when product is PERFORM.Effective Class Year— string, optional. 4 digits within 200 years of the current year. Only persisted when product is PERFORM.Start Date— date, optional. Accepted formats: yyyy-MM-dd, yyyy/MM/dd, M/d/yyyy, e.g. 2025-06-03.Role— enum, optional.ADMINorMEMBER. Defaults toMEMBER.SSO ID— string, optional. Required only if the organization uses SSO and does not use email as the SSO ID.Use MFA— boolean string, optional. One oftrue,t,false,f,1,0,yes,no,y,n(case-insensitive).Bio Link— URL, optional.Work Arrangement— enum, optional.REMOTE,HYBRIDorIN_PERSON.FLSA Status— enum, optional. One ofExempt,Non-Exempt,Not Applicable,EXEMPT,NON_EXEMPTorNOT_APPLICABLE. Only persisted when product is PERFORM.Manager Email— string, optional. Only persisted when product is PERFORM. Must be a well-formed email address matching a member already in the org or another row in this file; row order does not matter. A member cannot be their own manager. A blank value clears the member's manager; omitting the column leaves it unchanged.Mentor Emails— string, optional. Only persisted when product is PERFORM. One or more email addresses separated by semicolons, e.g.kim@firm.com;raj@firm.com. Each must be well-formed and match a member already in the org or another row in this file; row order does not matter. A member cannot be their own mentor, and a repeated address counts once. At most 50 mentors per member. The value replaces the member's mentors outright, so a blank value clears them; omitting the column leaves them unchanged.
Members imported successfully.
Number of new members created by this import.
5Number of existing members updated by this import.
3Invalid member data — file-level and/or row/column-level validation errors.
Unauthorized — authentication failed or session missing.
Forbidden — the session is not permitted to import members into this product.
POST /api/v2/members/import-csv?product=PERFORM HTTP/1.1
Host: florecruit.com
Content-Type: multipart/form-data
Accept: */*
Content-Length: 17
{
"file": "binary"
}{
"createdCount": 5,
"updatedCount": 3,
"absentMembers": [
{
"email": "sam.lee@firm.com",
"firstName": "Sam",
"lastName": "Lee"
}
]
}Last updated

