---
title: Create Invite
url: https://platform.claude.com/docs/en/api/go/beta/organization/invites/create
---

# Create Invite

`client.Beta.Organization.Invites.New(ctx, body) (*BetaOrganizationInvite, error)`

**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.

## Parameters

- `body BetaOrganizationInviteNewParams`

  - `Email string`

    Email of the User.

    format: email

  - `Role BetaOrganizationInviteNewParamsRole`

    Role for the invited User.

    The accepted values depend on the organization type. Console and API organizations accept `user`, `developer`, `billing`, and `claude_code_user`; `admin` cannot be assigned through the API. Claude Enterprise organizations accept `user` and `managed`; inviting with the `managed` role requires the `write:rbac_groups` scope in addition to `write:members`.

    - `const BetaOrganizationInviteNewParamsRoleBilling BetaOrganizationInviteNewParamsRole = "billing"`

    - `const BetaOrganizationInviteNewParamsRoleClaudeCodeUser BetaOrganizationInviteNewParamsRole = "claude_code_user"`

    - `const BetaOrganizationInviteNewParamsRoleDeveloper BetaOrganizationInviteNewParamsRole = "developer"`

    - `const BetaOrganizationInviteNewParamsRoleManaged BetaOrganizationInviteNewParamsRole = "managed"`

    - `const BetaOrganizationInviteNewParamsRoleUser BetaOrganizationInviteNewParamsRole = "user"`

  - `RBACGroupIDs []string Optional`

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

    maxItems: 100

## Returns

- `type BetaOrganizationInvite`

  - `Type Invite`

    Object type.

    For Invites, this is always `"invite"`.

    default: invite

  - `ID string`

    ID of the Invite.

  - `AcceptedAt Time`

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

    format: date-time

  - `Email string`

    Email of the User being invited.

  - `ExpiresAt Time`

    RFC 3339 datetime string indicating when the Invite expires.

    format: date-time

  - `InvitedAt Time`

    RFC 3339 datetime string indicating when the Invite was created.

    format: date-time

  - `RBACGroupIDs []string`

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

  - `Role BetaOrganizationRole`

    Organization role of the User.

    - `const BetaOrganizationRoleAdmin BetaOrganizationRole = "admin"`

    - `const BetaOrganizationRoleBilling BetaOrganizationRole = "billing"`

    - `const BetaOrganizationRoleClaudeCodeUser BetaOrganizationRole = "claude_code_user"`

    - `const BetaOrganizationRoleDeveloper BetaOrganizationRole = "developer"`

    - `const BetaOrganizationRoleManaged BetaOrganizationRole = "managed"`

    - `const BetaOrganizationRoleMembershipAdmin BetaOrganizationRole = "membership_admin"`

    - `const BetaOrganizationRoleOwner BetaOrganizationRole = "owner"`

    - `const BetaOrganizationRolePrimaryOwner BetaOrganizationRole = "primary_owner"`

    - `const BetaOrganizationRoleUser BetaOrganizationRole = "user"`

  - `Status BetaOrganizationInviteStatus`

    Status of the Invite.

    - `const BetaOrganizationInviteStatusAccepted BetaOrganizationInviteStatus = "accepted"`

    - `const BetaOrganizationInviteStatusDeleted BetaOrganizationInviteStatus = "deleted"`

    - `const BetaOrganizationInviteStatusExpired BetaOrganizationInviteStatus = "expired"`

    - `const BetaOrganizationInviteStatusPending BetaOrganizationInviteStatus = "pending"`

## Example

```go
package main

import (
	"context"
	"fmt"

	"github.com/anthropics/anthropic-sdk-go"
	"github.com/anthropics/anthropic-sdk-go/option"
)

func main() {
	client := anthropic.NewClient(
		option.WithAPIKey("my-anthropic-api-key"),
	)
	betaOrganizationInvite, err := client.Beta.Organization.Invites.New(context.TODO(), anthropic.BetaOrganizationInviteNewParams{
		Email: "user@emaildomain.com",
		Role:  anthropic.BetaOrganizationInviteNewParamsRoleUser,
	})
	if err != nil {
		panic(err.Error())
	}
	fmt.Printf("%+v\n", betaOrganizationInvite.ID)
}
```

### 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"
}
```
