201 response indicates the invitation was created and its workflow was queued; it does not confirm that the invitation email has been delivered. Provide your own system’s user identifier and, optionally, a role at invite time to maintain consistent identity mapping from day one.
Endpoint
Authentication
This endpoint requires a write-enabled API key:Request Body
Send aCreateInvitationDto JSON object in the request body.
string
required
The email address to invite. The invitation workflow will target this address.
string
required
Your system’s unique identifier for this user. Stored alongside the Shilo user record for cross-system identity mapping.
string
Shilo UUID of the user sending the invitation. Exactly one of
invited_by_user_id or invited_by_email is required.string
Email address of the user sending the invitation. Exactly one of
invited_by_user_id or invited_by_email is required.string
Display name for the agent. Used to personalize the invitation email and pre-populate the agent’s profile.
string
Optional first name for the agent.
string
Role to assign to the user upon accepting the invitation. Must be
ADMIN or MEMBER. Defaults to MEMBER.Response
201 — Created
A new invitation was created and the invitation workflow was queued. Returns the created Invitation object.string
Unique identifier for the new invitation (UUID).
string
Recipient email address for the invitation.
string
Your system’s identifier for the invited user.
string | null
Display name for the invited agent. May be
null when not provided.string | null
First name for the invited agent. May be
null when not provided.string
Role assigned on the invitation.
ADMIN or MEMBER.string
Invitation status. Will be
PENDING immediately after creation.string
ISO-8601 timestamp of when the invitation was created.
string
ISO-8601 timestamp indicating when this invitation expires.
string
Shilo UUID of the user who created the invitation.
string
Shareable link the recipient can use to accept the invitation.
200 — Already Exists
A pending invitation for this email address already exists. The existing Invitation object is returned. No new email is sent. Use the Resend Invitation endpoint if you need to re-trigger the email.400 — Bad Request
The request body is missing required fields or contains invalid values.403 — Forbidden
Your API key does not have write permissions.409 — Conflict
A pending invitation for this email already exists but was created with a differentexternal_user_id. Resolve the conflict before retrying.
Example Request
Example Response
If you receive a 200 response, the existing invitation was returned and no new email was queued. Use the Resend Invitation endpoint to re-trigger the invitation email.