Skip to main content

Invitations

Base URL: https://app.neuroflash.com/api/workspace-service

Invite users to join a workspace via email.

Create a workspace invite

POST/v1/workspaces/{workspaceId}/invites

Creates a new workspace invite for the specified email address. Only workspace admins and owners can create invites.

Path Parameters

ParameterTypeRequiredDescription
workspaceIdstringYesWorkspace ID

Request Body

FieldTypeRequiredDescription
emailstringYesEmail address of the person being invited to the workspace
rolestringYesrole which the new member should be assigned

Response

FieldTypeDescription
_embeddedobject
acceptingCustomerobject
emailstringEmail of the customer
hadTrialbooleanTrue if the customer has ever started a trial in any workspace
legacyIdintegerID of the customer in the legacy system
namestringName of the customer
inviterobject
emailstringEmail of the customer
hadTrialbooleanTrue if the customer has ever started a trial in any workspace
legacyIdintegerID of the customer in the legacy system
namestringName of the customer
statusstringStripeStatus of the invitation
acceptedAtstringTimestamp when the invitation was accepted
acceptedByLegacyCustomerIdintegerID of the legacy customer who accepted the invitation
acceptedByWorkspaceMemberIdstringID of the workspace member who accepted the invitation
createdAtstring
createdByLegacyCustomerIdintegerID of the legacy customer who created the invitation
createdByUserIdstring
deniedAtstringTimestamp when the invitation was denied by the invitee
emailstringEmail address of the person being invited to the workspace
expiresAtstringTimestamp when the invitation expires
idstring
importedFromLegacyTeamCustomerIdintegerID of the legacy team customer this was imported from
importedFromLegacyTeamInviteIdintegerID of the legacy team invite this was imported from
resentAtarray<string>Timestamps when the invitation was resent
rolestringrole which the new member should be assigned
updatedAtstring
workspaceIdstringID of the workspace the invitation is for

Example

curl -X POST "https://app.neuroflash.com/api/workspace-service/v1/workspaces/{workspace_id}/invites" \
-H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"email": "string",
"role": "string"
}'

Response:

{
"_embedded": {
"acceptingCustomer": {
"email": "eren.jaeger@neuroflash.com",
"hadTrial": false,
"legacyId": 5,
"name": "Eren Jaeger"
},
"inviter": {
"email": "eren.jaeger@neuroflash.com",
"hadTrial": false,
"legacyId": 5,
"name": "Eren Jaeger"
},
"status": "PENDING"
},
"acceptedAt": "2023-06-15T10:30:00Z",
"acceptedByLegacyCustomerId": 54321,
"acceptedByWorkspaceMemberId": "550e8400-e29b-41d4-a716-446655440001",
"createdAt": "2025-01-14T16:20:59Z",
"createdByLegacyCustomerId": 12345,
"createdByUserId": "b0920767-2e30-48d3-80ce-268810bc433a",
"deniedAt": "2023-05-20T15:45:00Z",
"email": "max.mustermann@neuroflash.com",
"expiresAt": "2023-12-31T23:59:59Z",
"id": "113c0b32-ed6c-4421-b7da-d1faf238eb56",
"importedFromLegacyTeamCustomerId": 9876,
"importedFromLegacyTeamInviteId": 7890,
"resentAt": [
"[\"2023-01-01T12:00:00Z\"",
"\"2023-01-02T14:30:00Z\"]"
],
"role": "MEMBER",
"updatedAt": "2025-01-14T16:20:59Z",
"workspaceId": "550e8400-e29b-41d4-a716-446655440000"
}

Deny a workspace invite

POST/v1/workspaces/{workspaceId}/invites/{inviteId}/denial

Denies a workspace invite using the confirmation code. Authentication is required.

Path Parameters

ParameterTypeRequiredDescription
workspaceIdstringYesWorkspace ID

Request Body

FieldTypeRequiredDescription
confirmationCodestringYesThe confirmation code from the invite email

Example

curl -X POST "https://app.neuroflash.com/api/workspace-service/v1/workspaces/{workspace_id}/invites/{invite_id}/denial" \
-H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"confirmationCode": "string"
}'

Response:

{}

Resend invitation email

POST/v1/workspaces/{workspaceId}/invites/{inviteId}/emails

Resends the invitation email for a specific invite. Only authenticated users can resend emails.

Path Parameters

ParameterTypeRequiredDescription
workspaceIdstringYesWorkspace ID
inviteIdstringYesInvite ID

Response

FieldTypeDescription
_embeddedobject
acceptingCustomerobject
emailstringEmail of the customer
hadTrialbooleanTrue if the customer has ever started a trial in any workspace
legacyIdintegerID of the customer in the legacy system
namestringName of the customer
inviterobject
emailstringEmail of the customer
hadTrialbooleanTrue if the customer has ever started a trial in any workspace
legacyIdintegerID of the customer in the legacy system
namestringName of the customer
statusstringStripeStatus of the invitation
acceptedAtstringTimestamp when the invitation was accepted
acceptedByLegacyCustomerIdintegerID of the legacy customer who accepted the invitation
acceptedByWorkspaceMemberIdstringID of the workspace member who accepted the invitation
createdAtstring
createdByLegacyCustomerIdintegerID of the legacy customer who created the invitation
createdByUserIdstring
deniedAtstringTimestamp when the invitation was denied by the invitee
emailstringEmail address of the person being invited to the workspace
expiresAtstringTimestamp when the invitation expires
idstring
importedFromLegacyTeamCustomerIdintegerID of the legacy team customer this was imported from
importedFromLegacyTeamInviteIdintegerID of the legacy team invite this was imported from
resentAtarray<string>Timestamps when the invitation was resent
rolestringrole which the new member should be assigned
updatedAtstring
workspaceIdstringID of the workspace the invitation is for

Example

curl -X POST "https://app.neuroflash.com/api/workspace-service/v1/workspaces/{workspace_id}/invites/{invite_id}/emails" \
-H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
-H "Content-Type: application/json" \
-d '{}'

Response:

{
"_embedded": {
"acceptingCustomer": {
"email": "eren.jaeger@neuroflash.com",
"hadTrial": false,
"legacyId": 5,
"name": "Eren Jaeger"
},
"inviter": {
"email": "eren.jaeger@neuroflash.com",
"hadTrial": false,
"legacyId": 5,
"name": "Eren Jaeger"
},
"status": "PENDING"
},
"acceptedAt": "2023-06-15T10:30:00Z",
"acceptedByLegacyCustomerId": 54321,
"acceptedByWorkspaceMemberId": "550e8400-e29b-41d4-a716-446655440001",
"createdAt": "2025-01-14T16:20:59Z",
"createdByLegacyCustomerId": 12345,
"createdByUserId": "b0920767-2e30-48d3-80ce-268810bc433a",
"deniedAt": "2023-05-20T15:45:00Z",
"email": "max.mustermann@neuroflash.com",
"expiresAt": "2023-12-31T23:59:59Z",
"id": "113c0b32-ed6c-4421-b7da-d1faf238eb56",
"importedFromLegacyTeamCustomerId": 9876,
"importedFromLegacyTeamInviteId": 7890,
"resentAt": [
"[\"2023-01-01T12:00:00Z\"",
"\"2023-01-02T14:30:00Z\"]"
],
"role": "MEMBER",
"updatedAt": "2025-01-14T16:20:59Z",
"workspaceId": "550e8400-e29b-41d4-a716-446655440000"
}

Accept a workspace invite

POST/v1/workspaces/{workspaceId}/invites/{inviteId}/confirmation

Accepts a workspace invite using the confirmation code. Authentication is required.

Path Parameters

ParameterTypeRequiredDescription
workspaceIdstringYesWorkspace ID

Request Body

FieldTypeRequiredDescription
confirmationCodestringYesThe confirmation code from the invite email

Example

curl -X POST "https://app.neuroflash.com/api/workspace-service/v1/workspaces/{workspace_id}/invites/{invite_id}/confirmation" \
-H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"confirmationCode": "string"
}'

Response:

{}

List workspace invites

GET/v1/workspaces/{workspaceId}/invites

Retrieves all workspace invites for a workspace. Only workspace admins and owners can list invites.

Path Parameters

ParameterTypeRequiredDescription
workspaceIdstringYesWorkspace ID

Query Parameters

ParameterTypeDefaultDescription
pendingbooleanFilter for pending invitations (not cancelled, not accepted, and not expired)

Response

FieldTypeDescription
dataarray<object>
_embeddedobject
acceptingCustomerobject
emailstringEmail of the customer
hadTrialbooleanTrue if the customer has ever started a trial in any workspace
legacyIdintegerID of the customer in the legacy system
namestringName of the customer
inviterobject
emailstringEmail of the customer
hadTrialbooleanTrue if the customer has ever started a trial in any workspace
legacyIdintegerID of the customer in the legacy system
namestringName of the customer
statusstringStripeStatus of the invitation
acceptedAtstringTimestamp when the invitation was accepted
acceptedByLegacyCustomerIdintegerID of the legacy customer who accepted the invitation
acceptedByWorkspaceMemberIdstringID of the workspace member who accepted the invitation
createdAtstring
createdByLegacyCustomerIdintegerID of the legacy customer who created the invitation
createdByUserIdstring
deniedAtstringTimestamp when the invitation was denied by the invitee
emailstringEmail address of the person being invited to the workspace
expiresAtstringTimestamp when the invitation expires
idstring
importedFromLegacyTeamCustomerIdintegerID of the legacy team customer this was imported from
importedFromLegacyTeamInviteIdintegerID of the legacy team invite this was imported from
resentAtarray<string>Timestamps when the invitation was resent
rolestringrole which the new member should be assigned
updatedAtstring
workspaceIdstringID of the workspace the invitation is for
pageobject
currentPageinteger
sizeinteger
totalElementsinteger
totalPagesinteger

Example

curl "https://app.neuroflash.com/api/workspace-service/v1/workspaces/{workspace_id}/invites" \
-H "Authorization: Bearer YOUR_ACCESS_TOKEN"

Response:

{
"data": [
{
"_embedded": {
"acceptingCustomer": {
"email": "...",
"hadTrial": "...",
"legacyId": "...",
"name": "..."
},
"inviter": {
"email": "...",
"hadTrial": "...",
"legacyId": "...",
"name": "..."
},
"status": "PENDING"
},
"acceptedAt": "2023-06-15T10:30:00Z",
"acceptedByLegacyCustomerId": 54321,
"acceptedByWorkspaceMemberId": "550e8400-e29b-41d4-a716-446655440001",
"createdAt": "2025-01-14T16:20:59Z",
"createdByLegacyCustomerId": 12345,
"createdByUserId": "b0920767-2e30-48d3-80ce-268810bc433a",
"deniedAt": "2023-05-20T15:45:00Z",
"email": "max.mustermann@neuroflash.com",
"expiresAt": "2023-12-31T23:59:59Z",
"id": "113c0b32-ed6c-4421-b7da-d1faf238eb56",
"importedFromLegacyTeamCustomerId": 9876,
"importedFromLegacyTeamInviteId": 7890,
"resentAt": [
"[\"2023-01-01T12:00:00Z\"",
"\"2023-01-02T14:30:00Z\"]"
],
"role": "MEMBER",
"updatedAt": "2025-01-14T16:20:59Z",
"workspaceId": "550e8400-e29b-41d4-a716-446655440000"
}
],
"page": {
"currentPage": 2,
"size": 10,
"totalElements": 35,
"totalPages": 4
}
}

Get a workspace invite

GET/v1/workspaces/{workspaceId}/invites/{inviteId}

Retrieves a workspace invite by its ID. Only workspace admins and owners can view invites.

Path Parameters

ParameterTypeRequiredDescription
workspaceIdstringYesWorkspace ID
inviteIdstringYesInvite ID

Response

FieldTypeDescription
_embeddedobject
acceptingCustomerobject
emailstringEmail of the customer
hadTrialbooleanTrue if the customer has ever started a trial in any workspace
legacyIdintegerID of the customer in the legacy system
namestringName of the customer
inviterobject
emailstringEmail of the customer
hadTrialbooleanTrue if the customer has ever started a trial in any workspace
legacyIdintegerID of the customer in the legacy system
namestringName of the customer
statusstringStripeStatus of the invitation
acceptedAtstringTimestamp when the invitation was accepted
acceptedByLegacyCustomerIdintegerID of the legacy customer who accepted the invitation
acceptedByWorkspaceMemberIdstringID of the workspace member who accepted the invitation
createdAtstring
createdByLegacyCustomerIdintegerID of the legacy customer who created the invitation
createdByUserIdstring
deniedAtstringTimestamp when the invitation was denied by the invitee
emailstringEmail address of the person being invited to the workspace
expiresAtstringTimestamp when the invitation expires
idstring
importedFromLegacyTeamCustomerIdintegerID of the legacy team customer this was imported from
importedFromLegacyTeamInviteIdintegerID of the legacy team invite this was imported from
resentAtarray<string>Timestamps when the invitation was resent
rolestringrole which the new member should be assigned
updatedAtstring
workspaceIdstringID of the workspace the invitation is for

Example

curl "https://app.neuroflash.com/api/workspace-service/v1/workspaces/{workspace_id}/invites/{invite_id}" \
-H "Authorization: Bearer YOUR_ACCESS_TOKEN"

Response:

{
"_embedded": {
"acceptingCustomer": {
"email": "eren.jaeger@neuroflash.com",
"hadTrial": false,
"legacyId": 5,
"name": "Eren Jaeger"
},
"inviter": {
"email": "eren.jaeger@neuroflash.com",
"hadTrial": false,
"legacyId": 5,
"name": "Eren Jaeger"
},
"status": "PENDING"
},
"acceptedAt": "2023-06-15T10:30:00Z",
"acceptedByLegacyCustomerId": 54321,
"acceptedByWorkspaceMemberId": "550e8400-e29b-41d4-a716-446655440001",
"createdAt": "2025-01-14T16:20:59Z",
"createdByLegacyCustomerId": 12345,
"createdByUserId": "b0920767-2e30-48d3-80ce-268810bc433a",
"deniedAt": "2023-05-20T15:45:00Z",
"email": "max.mustermann@neuroflash.com",
"expiresAt": "2023-12-31T23:59:59Z",
"id": "113c0b32-ed6c-4421-b7da-d1faf238eb56",
"importedFromLegacyTeamCustomerId": 9876,
"importedFromLegacyTeamInviteId": 7890,
"resentAt": [
"[\"2023-01-01T12:00:00Z\"",
"\"2023-01-02T14:30:00Z\"]"
],
"role": "MEMBER",
"updatedAt": "2025-01-14T16:20:59Z",
"workspaceId": "550e8400-e29b-41d4-a716-446655440000"
}

Delete a workspace invite

DELETE/v1/workspaces/{workspaceId}/invites/{inviteId}

Deletes a workspace invite by its ID. Only workspace admins and owners can delete invites. Accepted invites cannot be deleted.

Path Parameters

ParameterTypeRequiredDescription
workspaceIdstringYesWorkspace ID
inviteIdstringYesInvite ID

Example

curl -X DELETE "https://app.neuroflash.com/api/workspace-service/v1/workspaces/{workspace_id}/invites/{invite_id}" \
-H "Authorization: Bearer YOUR_ACCESS_TOKEN"

Response:

{}