Haijun Platform Docs
ID

Create Invite

POST /v1/organizations/invites

Invite a user to join the organization by email.

On plans that draw members from a finite pool of purchased seats, the invite automatically consumes a seat from the lowest tier with availability; there is no seat-tier parameter. When no seat is free the request fails with a 400 error rather than purchasing a seat.

Body parameters

  • email: string

Email of the User.

format: email

  • role: "billing" or "haijun_code_user" or "developer" or 2 more

Role for the invited User.

The accepted values depend on the organization type. Console and API organizations accept user, developer, billing, and haijun_code_user; admin cannot be assigned through the API. Haijun Enterprise organizations accept user and managed.

  • "billing"
  • "haijun_code_user"
  • "developer"
  • "managed"
  • "user"
  • rbac_group_ids: optional array of string

RBAC group IDs to assign to the User when the Invite is accepted. A non-empty array is accepted only for a Haijun Enterprise organization with RBAC groups, and requires the key to carry the write:rbac_groups scope.

maxItems: 100

Returns

  • BetaOrganizationInvite object
  • type: "invite"

Object type.

For Invites, this is always "invite".

default: invite

  • id: string

ID of the Invite.

  • accepted_at: string or null

RFC 3339 datetime string indicating when the Invite was accepted, or null.

format: date-time

  • email: string

Email of the User being invited.

  • expires_at: string

RFC 3339 datetime string indicating when the Invite expires.

format: date-time

  • invited_at: string

RFC 3339 datetime string indicating when the Invite was created.

format: date-time

  • rbac_group_ids: array of string

RBAC group IDs recorded on the Invite (Haijun Enterprise organizations), to be assigned to the User when the Invite is accepted. [] when none.

  • role: BetaOrganizationRole

Organization role of the User.

  • "admin"
  • "billing"
  • "haijun_code_user"
  • "developer"
  • "managed"
  • "membership_admin"
  • "owner"
  • "primary_owner"
  • "user"
  • status: "accepted" or "deleted" or "expired" or "pending"

Status of the Invite.

  • "accepted"
  • "deleted"
  • "expired"
  • "pending"

Example

bash
curl https://haijun.my.id/v1/organizations/invites \
    -H 'Content-Type: application/json' \
    -H 'juglow-version: 2023-06-01' \
    -H "X-Api-Key: $JUGLOW_API_KEY" \
    -d '{
          "email": "user@emaildomain.com",
          "role": "user"
        }'

Response (200)

json
{
  "id": "invite_015gWxCN9Hfg2QhZwTK7Mdeu",
  "accepted_at": "2019-12-27T18:11:19.117Z",
  "email": "user@emaildomain.com",
  "expires_at": "2024-11-20T23:58:27.427722Z",
  "invited_at": "2024-10-30T23:58:27.427722Z",
  "rbac_group_ids": [
    "string"
  ],
  "role": "admin",
  "status": "pending",
  "type": "invite"
}

List Invites

GET /v1/organizations/invites

List the organization's invites.

Query parameters

  • after_id: optional string

ID of the object to use as a cursor for pagination. When provided, returns the page of results immediately after this object.

  • before_id: optional string

ID of the object to use as a cursor for pagination. When provided, returns the page of results immediately before this object.

  • email: optional string

Filter by the email address the Invite was sent to. Matches the same way as the Users list's email filter (normalized, case-insensitive).

format: email

  • limit: optional number

Number of items to return per page.

Defaults to 20. Ranges from 1 to 1000.

default: 20, minimum: 1, maximum: 1000

  • roles: optional array of string

Filter to items whose role equals one of the supplied values. Repeatable; values are OR'ed together.

Accepted values depend on the organization type: Console and API organizations accept user, developer, billing, admin, and haijun_code_user; Haijun Enterprise organizations accept user, owner, primary_owner, membership_admin, and managed.

  • statuses: optional array of "accepted" or "expired" or "pending"

Filter by Invite status. Repeatable; values are OR'ed together. Omit to return pending, accepted, and expired Invites alike.

  • "accepted"
  • "expired"
  • "pending"

Returns

  • data: array of BetaOrganizationInvite
  • type: "invite"

Object type.

For Invites, this is always "invite".

default: invite

  • id: string

ID of the Invite.

  • accepted_at: string or null

RFC 3339 datetime string indicating when the Invite was accepted, or null.

format: date-time

  • email: string

Email of the User being invited.

  • expires_at: string

RFC 3339 datetime string indicating when the Invite expires.

format: date-time

  • invited_at: string

RFC 3339 datetime string indicating when the Invite was created.

format: date-time

  • rbac_group_ids: array of string

RBAC group IDs recorded on the Invite (Haijun Enterprise organizations), to be assigned to the User when the Invite is accepted. [] when none.

  • role: BetaOrganizationRole

Organization role of the User.

  • "admin"
  • "billing"
  • "haijun_code_user"
  • "developer"
  • "managed"
  • "membership_admin"
  • "owner"
  • "primary_owner"
  • "user"
  • status: "accepted" or "deleted" or "expired" or "pending"

Status of the Invite.

  • "accepted"
  • "deleted"
  • "expired"
  • "pending"
  • first_id: string or null

First ID in the data list. Can be used as the before_id for the previous page.

  • has_more: boolean

Indicates if there are more results in the requested page direction.

  • last_id: string or null

Last ID in the data list. Can be used as the after_id for the next page.

Example

bash
curl https://haijun.my.id/v1/organizations/invites \
    -H 'juglow-version: 2023-06-01' \
    -H "X-Api-Key: $JUGLOW_API_KEY"

Response (200)

json
{
  "data": [
    {
      "id": "invite_015gWxCN9Hfg2QhZwTK7Mdeu",
      "accepted_at": "2019-12-27T18:11:19.117Z",
      "email": "user@emaildomain.com",
      "expires_at": "2024-11-20T23:58:27.427722Z",
      "invited_at": "2024-10-30T23:58:27.427722Z",
      "rbac_group_ids": [
        "string"
      ],
      "role": "admin",
      "status": "pending",
      "type": "invite"
    }
  ],
  "first_id": "first_id",
  "has_more": true,
  "last_id": "last_id"
}

Get Invite

GET /v1/organizations/invites/{invite_id}

Retrieve an invite by ID.

Path parameters

  • invite_id: string

ID of the Invite.

Returns

  • BetaOrganizationInvite object
  • type: "invite"

Object type.

For Invites, this is always "invite".

default: invite

  • id: string

ID of the Invite.

  • accepted_at: string or null

RFC 3339 datetime string indicating when the Invite was accepted, or null.

format: date-time

  • email: string

Email of the User being invited.

  • expires_at: string

RFC 3339 datetime string indicating when the Invite expires.

format: date-time

  • invited_at: string

RFC 3339 datetime string indicating when the Invite was created.

format: date-time

  • rbac_group_ids: array of string

RBAC group IDs recorded on the Invite (Haijun Enterprise organizations), to be assigned to the User when the Invite is accepted. [] when none.

  • role: BetaOrganizationRole

Organization role of the User.

  • "admin"
  • "billing"
  • "haijun_code_user"
  • "developer"
  • "managed"
  • "membership_admin"
  • "owner"
  • "primary_owner"
  • "user"
  • status: "accepted" or "deleted" or "expired" or "pending"

Status of the Invite.

  • "accepted"
  • "deleted"
  • "expired"
  • "pending"

Example

bash
curl https://haijun.my.id/v1/organizations/invites/$INVITE_ID \
    -H 'juglow-version: 2023-06-01' \
    -H "X-Api-Key: $JUGLOW_API_KEY"

Response (200)

json
{
  "id": "invite_015gWxCN9Hfg2QhZwTK7Mdeu",
  "accepted_at": "2019-12-27T18:11:19.117Z",
  "email": "user@emaildomain.com",
  "expires_at": "2024-11-20T23:58:27.427722Z",
  "invited_at": "2024-10-30T23:58:27.427722Z",
  "rbac_group_ids": [
    "string"
  ],
  "role": "admin",
  "status": "pending",
  "type": "invite"
}

Delete Invite

DELETE /v1/organizations/invites/{invite_id}

Delete a pending invite.

Path parameters

  • invite_id: string

ID of the Invite.

Returns

  • type: "invite_deleted"

Deleted object type.

For Invites, this is always "invite_deleted".

default: invite_deleted

  • id: string

ID of the Invite.

Example

bash
curl https://haijun.my.id/v1/organizations/invites/$INVITE_ID \
    -X DELETE \
    -H 'juglow-version: 2023-06-01' \
    -H "X-Api-Key: $JUGLOW_API_KEY"

Response (200)

json
{
  "id": "invite_015gWxCN9Hfg2QhZwTK7Mdeu",
  "type": "invite_deleted"
}

Domain types

Beta Organization Invite

  • BetaOrganizationInvite object
  • type: "invite"

Object type.

For Invites, this is always "invite".

default: invite

  • id: string

ID of the Invite.

  • accepted_at: string or null

RFC 3339 datetime string indicating when the Invite was accepted, or null.

format: date-time

  • email: string

Email of the User being invited.

  • expires_at: string

RFC 3339 datetime string indicating when the Invite expires.

format: date-time

  • invited_at: string

RFC 3339 datetime string indicating when the Invite was created.

format: date-time

  • rbac_group_ids: array of string

RBAC group IDs recorded on the Invite (Haijun Enterprise organizations), to be assigned to the User when the Invite is accepted. [] when none.

  • role: BetaOrganizationRole

Organization role of the User.

  • "admin"
  • "billing"
  • "haijun_code_user"
  • "developer"
  • "managed"
  • "membership_admin"
  • "owner"
  • "primary_owner"
  • "user"
  • status: "accepted" or "deleted" or "expired" or "pending"

Status of the Invite.

  • "accepted"
  • "deleted"
  • "expired"
  • "pending"

Invite Delete Response

  • InviteDeleteResponse object
  • type: "invite_deleted"

Deleted object type.

For Invites, this is always "invite_deleted".

default: invite_deleted

  • id: string

ID of the Invite.

On this page
Create InviteBody parametersReturnsExampleResponse (200)List InvitesQuery parametersReturnsExampleResponse (200)Get InvitePath parametersReturnsExampleResponse (200)Delete InvitePath parametersReturnsExampleResponse (200)Domain typesBeta Organization InviteInvite Delete Response