Create organization member
Creates a new organization member (external contact) for an organization. This automatically creates a user account that can be used for guest access to Leadtime.
What happens:
- A new organization member record is created
- A user account is automatically created and linked to the member
- If
canLoginistrue:- User status is set to Active
- In ready workspaces, an invitation email is sent with a magic link
- During initial workspace setup, invitation email delivery is deferred until setup is finished
- The user can log in as a guest user
- If
canLoginisfalseor omitted:- User status is set to Inactive
- No invitation is sent
- The member exists as a contact only
Required fields:
organizationId- The organization this member belongs tofirstName- Member’s first namelastName- Member’s last nameemail- Email address (used for user account)roleId- User role ID (e.g.,workspace-id_guest_for guest access)
Avatar management:
avatarIdis an avatar configuration ID. During the transition, an image file ID fromPOST /workspace/uploadis also accepted and converted to an uploaded avatar configuration.
Personality classifications:
- Influence level: Low, Medium, High, Dominant
- Attitude level: Enthusiastic, WellMeaning, Neutral, Opposing
- Personality type: Dominant, Conscientious, Steady, Initiative
Returns: The created organization member with all details including the generated user ID.
POST
/organizations/membersAuthorization
AuthorizationOAuth2 access token · headerrequiredScopes:
api:writeor
AuthorizationBearer token (JWT) · headerrequiredQuery parameters
fieldsToReturnstringComma-separated list of top-level response fields to return. Overrides the endpoint compact default unless responseShape=full is used.
responseShapestringAdvanced override. Omit for the endpoint compact default. Use full only when you need the complete endpoint response, including nested fields that are not selectable with fieldsToReturn.
Allowed:
compactfullHeader parameters
LT-Response-ShapestringAdvanced override. Set to full only when you need the complete endpoint response, including nested fields that are not selectable with fieldsToReturn.
Allowed:
fullRequest body
requiredapplication/jsonaddressCitystringCity
addressCountrystringCountry
addressHouseNumberstringHouse number
addressStreetstringStreet address
addressZipstringZIP/postal code
attitudeLevelstringAttitude level classification
Allowed:
EnthusiasticWellMeaningNeutralOpposingavatarConfigobjectGenerated avatar configuration. If provided, it takes precedence over avatarId.
avatarIdstringAvatar configuration ID. During the transition, an image file ID from POST /workspace/upload is also accepted and converted to an uploaded avatar configuration. Omit to create the default generated avatar.
birthDatestring<date-time>Birth date (ISO 8601 date format: YYYY-MM-DD)
canLoginbooleanWhether the member can log in to Leadtime as a guest user. If `true`, a user account is created with Active status. In ready workspaces, an invitation email is sent immediately. During initial workspace setup, invitation emails are suppressed until setup is finished. If `false` or omitted, the member exists as a contact only with an Inactive user account. Defaults to `false`.
degreestringAcademic degree
emailstringrequiredEmail address of the member. This email will be used for the associated user account and for sending invitation emails if login access is enabled. Must be a valid email format.
firstNamestringrequiredFirst name
genderstringGender
Allowed:
MaleFemaleinfluenceLevelstringInfluence level classification
Allowed:
LowMediumHighDominantisActivebooleanrequiredWhether the member is active in the system. Inactive members are hidden from normal views but remain in the database. Defaults to `true`.
default: true
lastNamestringrequiredLast name
organizationIdstringrequiredUUID of the organization this member belongs to. The organization must exist in your workspace.
personalityTypestringPersonality type classification
Allowed:
DominantConscientiousSteadyInitiativephonestringPhone number
positionstringJob title or position within the organization (e.g., "Managing Director", "Project Manager", "Head of Sales").
roleIdstringrequiredUser role ID that determines the member's access permissions in Leadtime. Common roles include guest roles (e.g., `workspace-id_guest_`) for external users. This role is applied to the automatically created user account.
socialNetworkLinkstringSocial network profile link
titlestringTitle/salutation (e.g., Dr., Prof.)
Responses
200
addressCityobject | nullrequiredCity
addressCountryobject | nullrequiredCountry
addressHouseNumberobject | nullrequiredHouse number
addressStreetobject | nullrequiredStreet address
addressZipobject | nullrequiredZIP/postal code
attitudeLevelstring | nullrequiredAttitude level classification
Allowed:
EnthusiasticWellMeaningNeutralOpposingavatarIdobject | nullrequiredAvatar configuration ID. Use /api/avatars/public/{avatarId}.svg to render it.
avatarUrlobject | nullrequiredPublic URL to the member's generated avatar. Returns `null` if no avatar is configured. The URL can be used directly in image tags or for display purposes.
birthDateobject | nullrequiredDate of birth in ISO 8601 date format (YYYY-MM-DD). Returns `null` if not set.
canLoginbooleanrequiredWhether member can login to the system
createdAtstringrequiredISO 8601 timestamp indicating when the organization member was created.
degreeobject | nullrequiredAcademic degree
emailstringrequiredEmail address
firstNamestringrequiredFirst name
genderstring | nullrequiredGender
Allowed:
MaleFemaleidstringrequiredOrganization member ID
influenceLevelstring | nullrequiredInfluence level classification
Allowed:
LowMediumHighDominantisActivebooleanrequiredWhether member is active
lastNamestringrequiredLast name
organizationIdstringrequiredOrganization ID
personalityTypestring | nullrequiredPersonality type classification
Allowed:
DominantConscientiousSteadyInitiativephoneobject | nullrequiredPhone number
positionobject | nullrequiredPosition/role in organization
roleIdobject | nullrequiredUser role ID that determines the member's access permissions in Leadtime. Can be `null` if the member does not have login access.
socialNetworkLinkobject | nullrequiredSocial network profile link
titleobject | nullrequiredTitle/salutation
updatedAtstringrequiredISO 8601 timestamp indicating when the organization member was last updated.
userIdstringrequiredAssociated user ID
400Validation errors
errorsobjectmessagestringstatusCodenumber401Unauthorized - Invalid or missing authentication token
403Forbidden - Insufficient API scopes or permissions
Request
curl -X POST "https://leadtime.app/api/public/organizations/members" \
-H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"addressCity": "New York",
"addressCountry": "USA",
"addressHouseNumber": "123A",
"addressStreet": "Main Street",
"addressZip": "12345",
"attitudeLevel": "Enthusiastic",
"avatarConfig": {
"options": {
"seed": "Jane Doe"
},
"style": "initials"
},
"avatarId": "123e4567-e89b-12d3-a456-426614174000",
"birthDate": "1990-01-15",
"canLogin": true,
"degree": "Ph.D.",
"email": "john.doe@example.com",
"firstName": "John",
"gender": "Male",
"influenceLevel": "Low",
"isActive": true,
"lastName": "Doe",
"organizationId": "123e4567-e89b-12d3-a456-426614174000",
"personalityType": "Dominant",
"phone": "+1234567890",
"position": "Manager",
"roleId": "workspace-id_guest_",
"socialNetworkLink": "https://linkedin.com/in/johndoe",
"title": "Dr."
}'const response = await fetch("https://leadtime.app/api/public/organizations/members", {
method: "POST",
headers: {
"Authorization": "Bearer YOUR_ACCESS_TOKEN",
"Content-Type": "application/json"
},
body: JSON.stringify({
"addressCity": "New York",
"addressCountry": "USA",
"addressHouseNumber": "123A",
"addressStreet": "Main Street",
"addressZip": "12345",
"attitudeLevel": "Enthusiastic",
"avatarConfig": {
"options": {
"seed": "Jane Doe"
},
"style": "initials"
},
"avatarId": "123e4567-e89b-12d3-a456-426614174000",
"birthDate": "1990-01-15",
"canLogin": true,
"degree": "Ph.D.",
"email": "john.doe@example.com",
"firstName": "John",
"gender": "Male",
"influenceLevel": "Low",
"isActive": true,
"lastName": "Doe",
"organizationId": "123e4567-e89b-12d3-a456-426614174000",
"personalityType": "Dominant",
"phone": "+1234567890",
"position": "Manager",
"roleId": "workspace-id_guest_",
"socialNetworkLink": "https://linkedin.com/in/johndoe",
"title": "Dr."
})
});import requests
response = requests.post(
"https://leadtime.app/api/public/organizations/members",
headers={
"Authorization": "Bearer YOUR_ACCESS_TOKEN",
"Content-Type": "application/json"
},
json={
"addressCity": "New York",
"addressCountry": "USA",
"addressHouseNumber": "123A",
"addressStreet": "Main Street",
"addressZip": "12345",
"attitudeLevel": "Enthusiastic",
"avatarConfig": {
"options": {
"seed": "Jane Doe"
},
"style": "initials"
},
"avatarId": "123e4567-e89b-12d3-a456-426614174000",
"birthDate": "1990-01-15",
"canLogin": True,
"degree": "Ph.D.",
"email": "john.doe@example.com",
"firstName": "John",
"gender": "Male",
"influenceLevel": "Low",
"isActive": True,
"lastName": "Doe",
"organizationId": "123e4567-e89b-12d3-a456-426614174000",
"personalityType": "Dominant",
"phone": "+1234567890",
"position": "Manager",
"roleId": "workspace-id_guest_",
"socialNetworkLink": "https://linkedin.com/in/johndoe",
"title": "Dr."
},
)Response
{
"addressCity": "New York",
"addressCountry": "USA",
"addressHouseNumber": "123A",
"addressStreet": "Main Street",
"addressZip": "12345",
"attitudeLevel": "Enthusiastic",
"avatarId": "123e4567-e89b-12d3-a456-426614174000",
"avatarUrl": "https://example.com/api/avatars/public/123e4567-e89b-12d3-a456-426614174000.svg",
"birthDate": "1990-01-15",
"canLogin": true,
"createdAt": "2024-01-15T10:30:00.000Z",
"degree": "Ph.D.",
"email": "john.doe@example.com",
"firstName": "John",
"gender": "Male",
"id": "123e4567-e89b-12d3-a456-426614174000",
"influenceLevel": "Low",
"isActive": true,
"lastName": "Doe",
"organizationId": "123e4567-e89b-12d3-a456-426614174000",
"personalityType": "Dominant",
"phone": "+1234567890",
"position": "Manager",
"roleId": "workspace-id_guest_",
"socialNetworkLink": "https://linkedin.com/in/johndoe",
"title": "Dr.",
"updatedAt": "2024-01-20T15:45:00.000Z",
"userId": "123e4567-e89b-12d3-a456-426614174000"
}{
"errors": {
"email": [
"Email is required",
"Email must be valid"
],
"firstName": [
"First name is required"
],
"lastName": [
"Last name is required"
],
"roleId": [
"Role ID is required"
]
},
"message": "Bad Request",
"statusCode": 400
}Unauthorized - Invalid or missing authentication token
Forbidden - Insufficient API scopes or permissions