Skip to content
API Reference

Create

client.Organizations.Invitations.New(ctx, organizationID, params) (*Invitation, error)
POST/organizations/{organization_id}/invitations

Create an invitation to join an organization

ParametersExpand Collapse
organizationID string

Organization ID or label identifier

minLength1
maxLength255
params OrganizationInvitationNewParams
Email param.Field[string]

Body param: Email address to invite

formatemail
Role param.Field[OrganizationRole]

Body param: Role to assign when invitation is accepted

XClientRequestID param.Field[string]optional

Header param: Unique request identifier specified by the originating caller and passed along by proxies.

formatuuid
ReturnsExpand Collapse
type Invitation struct{…}
ID string

Identifier for API resources. A 26-char nanoid (URL/DNS safe).

minLength1
maxLength255
CreatedAt Time

The time the entity was created in utc

formatdate-time
CreatedBy string

ID of the user who created the invitation

minLength1
maxLength255
Email string

Email address for the invitation

formatemail
ExpiresAt Time

When the invitation expires

formatdate-time
OrganizationID string

Identifier for API resources. A 26-char nanoid (URL/DNS safe).

minLength1
maxLength255

Role that will be assigned when invitation is accepted

Accepts one of the following:
const OrganizationRoleOrgAdmin OrganizationRole = "org_admin"
const OrganizationRoleOrgMember OrganizationRole = "org_member"
const OrganizationRoleOrgViewer OrganizationRole = "org_viewer"

Status of an invitation

Accepts one of the following:
const InvitationStatusPending InvitationStatus = "pending"
const InvitationStatusAccepted InvitationStatus = "accepted"
const InvitationStatusExpired InvitationStatus = "expired"
const InvitationStatusRevoked InvitationStatus = "revoked"
UpdatedAt Time

The time the entity was mostly recently updated in utc

formatdate-time
Permissions map[string, map[string, bool]]optional

Permissions granted to the authenticated principal for this resource. Only populated when the 'expand[]=permissions' query parameter is provided. Keys are resource types (e.g., "organizations"), values are objects mapping permission names to boolean values indicating if the permission is granted.

Create

package main

import (
  "context"
  "fmt"

  "github.com/keycardai/keycard-go"
)

func main() {
  client := keycard.NewClient(

  )
  invitation, err := client.Organizations.Invitations.New(
    context.TODO(),
    "x",
    keycard.OrganizationInvitationNewParams{
      Email: "dev@stainless.com",
      Role: keycard.OrganizationRoleOrgAdmin,
    },
  )
  if err != nil {
    panic(err.Error())
  }
  fmt.Printf("%+v\n", invitation.ID)
}
{
  "id": "ab3def8hij2klm9opq5rst7uvw",
  "created_at": "2019-12-27T18:11:19.117Z",
  "created_by": "ab3def8hij2klm9opq5rst7uvw",
  "email": "dev@stainless.com",
  "expires_at": "2019-12-27T18:11:19.117Z",
  "organization_id": "ab3def8hij2klm9opq5rst7uvw",
  "role": "org_admin",
  "status": "pending",
  "updated_at": "2019-12-27T18:11:19.117Z",
  "permissions": {
    "organizations": {
      "read": true,
      "update": true
    },
    "users": {
      "read": true,
      "list": true
    }
  }
}
Returns Examples
{
  "id": "ab3def8hij2klm9opq5rst7uvw",
  "created_at": "2019-12-27T18:11:19.117Z",
  "created_by": "ab3def8hij2klm9opq5rst7uvw",
  "email": "dev@stainless.com",
  "expires_at": "2019-12-27T18:11:19.117Z",
  "organization_id": "ab3def8hij2klm9opq5rst7uvw",
  "role": "org_admin",
  "status": "pending",
  "updated_at": "2019-12-27T18:11:19.117Z",
  "permissions": {
    "organizations": {
      "read": true,
      "update": true
    },
    "users": {
      "read": true,
      "list": true
    }
  }
}