// Requires Node.js SDK v8.2.0 or later
import { AdminClient } from '@pinecone-database/pinecone';
// Reads PINECONE_CLIENT_ID and PINECONE_CLIENT_SECRET from the environment
const admin = new AdminClient();
const invite = await admin.invites.create({
email: 'newhire@example.com',
roleBindings: [
{ resourceType: 'organization', role: 'OrgMember' },
{
resourceType: 'project',
resourceId: 'a2f7dddb-1597-4eff-9f71-535fde243f58',
role: 'ProjectMember',
},
],
});
console.log(invite);
// Requires Go SDK v6.0.0 or later
package main
import (
"context"
"fmt"
"log"
"os"
"github.com/pinecone-io/go-pinecone/v6/pinecone"
)
func main() {
ctx := context.Background()
adminClient, err := pinecone.NewAdminClientWithContext(ctx, pinecone.NewAdminClientParams{
ClientId: os.Getenv("PINECONE_CLIENT_ID"),
ClientSecret: os.Getenv("PINECONE_CLIENT_SECRET"),
})
if err != nil {
log.Fatalf("Failed to create AdminClient: %v", err)
}
projectId := "a2f7dddb-1597-4eff-9f71-535fde243f58"
invite, err := adminClient.Invite.Create(ctx, &pinecone.CreateInviteParams{
Email: "newhire@example.com",
RoleBindings: []pinecone.RoleBindingInput{
{ResourceType: pinecone.ResourceTypeOrganization, Role: "OrgMember"},
{ResourceType: pinecone.ResourceTypeProject, ResourceId: &projectId, Role: "ProjectMember"},
},
})
if err != nil {
log.Fatalf("Failed to create invite: %v", err)
}
fmt.Printf("Invited %v (status: %v)\n", invite.Email, invite.Status)
}
# Requires Terraform provider v4.0.0 or later
resource "pinecone_invite" "newhire" {
email = "newhire@example.com"
role_bindings = [
{
resource_type = "organization"
role = "OrgMember"
},
{
resource_type = "project"
resource_id = "a2f7dddb-1597-4eff-9f71-535fde243f58"
role = "ProjectMember"
}
]
}
PINECONE_ACCESS_TOKEN="YOUR_ACCESS_TOKEN"
curl "https://api.pinecone.io/admin/invites" \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-H "X-Pinecone-Api-Version: 2026-04" \
-H "Authorization: Bearer $PINECONE_ACCESS_TOKEN" \
-d '{
"email": "newhire@example.com",
"role_bindings": [
{
"resource_type": "organization",
"role": "OrgMember"
},
{
"resource_type": "project",
"resource_id": "a2f7dddb-1597-4eff-9f71-535fde243f58",
"role": "ProjectMember"
}
]
}'
{
"id": "9c8e3528-b9c0-4358-84ce-84c28e91b566",
"email": "newhire@example.com",
"status": "pending",
"expires_at": "2026-05-21T03:00:00Z",
"processed_at": null,
"created_at": "2026-04-14T20:00:00Z"
}
Invite a user to the organization
Invite a user to the organization by email and grant their initial role bindings.
// Requires Node.js SDK v8.2.0 or later
import { AdminClient } from '@pinecone-database/pinecone';
// Reads PINECONE_CLIENT_ID and PINECONE_CLIENT_SECRET from the environment
const admin = new AdminClient();
const invite = await admin.invites.create({
email: 'newhire@example.com',
roleBindings: [
{ resourceType: 'organization', role: 'OrgMember' },
{
resourceType: 'project',
resourceId: 'a2f7dddb-1597-4eff-9f71-535fde243f58',
role: 'ProjectMember',
},
],
});
console.log(invite);
// Requires Go SDK v6.0.0 or later
package main
import (
"context"
"fmt"
"log"
"os"
"github.com/pinecone-io/go-pinecone/v6/pinecone"
)
func main() {
ctx := context.Background()
adminClient, err := pinecone.NewAdminClientWithContext(ctx, pinecone.NewAdminClientParams{
ClientId: os.Getenv("PINECONE_CLIENT_ID"),
ClientSecret: os.Getenv("PINECONE_CLIENT_SECRET"),
})
if err != nil {
log.Fatalf("Failed to create AdminClient: %v", err)
}
projectId := "a2f7dddb-1597-4eff-9f71-535fde243f58"
invite, err := adminClient.Invite.Create(ctx, &pinecone.CreateInviteParams{
Email: "newhire@example.com",
RoleBindings: []pinecone.RoleBindingInput{
{ResourceType: pinecone.ResourceTypeOrganization, Role: "OrgMember"},
{ResourceType: pinecone.ResourceTypeProject, ResourceId: &projectId, Role: "ProjectMember"},
},
})
if err != nil {
log.Fatalf("Failed to create invite: %v", err)
}
fmt.Printf("Invited %v (status: %v)\n", invite.Email, invite.Status)
}
# Requires Terraform provider v4.0.0 or later
resource "pinecone_invite" "newhire" {
email = "newhire@example.com"
role_bindings = [
{
resource_type = "organization"
role = "OrgMember"
},
{
resource_type = "project"
resource_id = "a2f7dddb-1597-4eff-9f71-535fde243f58"
role = "ProjectMember"
}
]
}
PINECONE_ACCESS_TOKEN="YOUR_ACCESS_TOKEN"
curl "https://api.pinecone.io/admin/invites" \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-H "X-Pinecone-Api-Version: 2026-04" \
-H "Authorization: Bearer $PINECONE_ACCESS_TOKEN" \
-d '{
"email": "newhire@example.com",
"role_bindings": [
{
"resource_type": "organization",
"role": "OrgMember"
},
{
"resource_type": "project",
"resource_id": "a2f7dddb-1597-4eff-9f71-535fde243f58",
"role": "ProjectMember"
}
]
}'
{
"id": "9c8e3528-b9c0-4358-84ce-84c28e91b566",
"email": "newhire@example.com",
"status": "pending",
"expires_at": "2026-05-21T03:00:00Z",
"processed_at": null,
"created_at": "2026-04-14T20:00:00Z"
}
// Requires Node.js SDK v8.2.0 or later
import { AdminClient } from '@pinecone-database/pinecone';
// Reads PINECONE_CLIENT_ID and PINECONE_CLIENT_SECRET from the environment
const admin = new AdminClient();
const invite = await admin.invites.create({
email: 'newhire@example.com',
roleBindings: [
{ resourceType: 'organization', role: 'OrgMember' },
{
resourceType: 'project',
resourceId: 'a2f7dddb-1597-4eff-9f71-535fde243f58',
role: 'ProjectMember',
},
],
});
console.log(invite);
// Requires Go SDK v6.0.0 or later
package main
import (
"context"
"fmt"
"log"
"os"
"github.com/pinecone-io/go-pinecone/v6/pinecone"
)
func main() {
ctx := context.Background()
adminClient, err := pinecone.NewAdminClientWithContext(ctx, pinecone.NewAdminClientParams{
ClientId: os.Getenv("PINECONE_CLIENT_ID"),
ClientSecret: os.Getenv("PINECONE_CLIENT_SECRET"),
})
if err != nil {
log.Fatalf("Failed to create AdminClient: %v", err)
}
projectId := "a2f7dddb-1597-4eff-9f71-535fde243f58"
invite, err := adminClient.Invite.Create(ctx, &pinecone.CreateInviteParams{
Email: "newhire@example.com",
RoleBindings: []pinecone.RoleBindingInput{
{ResourceType: pinecone.ResourceTypeOrganization, Role: "OrgMember"},
{ResourceType: pinecone.ResourceTypeProject, ResourceId: &projectId, Role: "ProjectMember"},
},
})
if err != nil {
log.Fatalf("Failed to create invite: %v", err)
}
fmt.Printf("Invited %v (status: %v)\n", invite.Email, invite.Status)
}
# Requires Terraform provider v4.0.0 or later
resource "pinecone_invite" "newhire" {
email = "newhire@example.com"
role_bindings = [
{
resource_type = "organization"
role = "OrgMember"
},
{
resource_type = "project"
resource_id = "a2f7dddb-1597-4eff-9f71-535fde243f58"
role = "ProjectMember"
}
]
}
PINECONE_ACCESS_TOKEN="YOUR_ACCESS_TOKEN"
curl "https://api.pinecone.io/admin/invites" \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-H "X-Pinecone-Api-Version: 2026-04" \
-H "Authorization: Bearer $PINECONE_ACCESS_TOKEN" \
-d '{
"email": "newhire@example.com",
"role_bindings": [
{
"resource_type": "organization",
"role": "OrgMember"
},
{
"resource_type": "project",
"resource_id": "a2f7dddb-1597-4eff-9f71-535fde243f58",
"role": "ProjectMember"
}
]
}'
{
"id": "9c8e3528-b9c0-4358-84ce-84c28e91b566",
"email": "newhire@example.com",
"status": "pending",
"expires_at": "2026-05-21T03:00:00Z",
"processed_at": null,
"created_at": "2026-04-14T20:00:00Z"
}
Authorizations
An access token must be provided in the Authorization header using the Bearer scheme.
Headers
Required date-based version header
Body
The invite to create.
The email address to invite.
254"newhire@acme.com"
Role bindings for the invitee. Must include at least one organization-scoped binding that grants organization membership (OrgOwner, OrgManager, OrgBillingAdmin, or OrgMember); project-scoped bindings are optional. Not returned in the response.
1 - 100 elementsShow child attributes
Show child attributes
Response
Invite created and email sent. The invite's role bindings are first-class; view or change them through the role-binding endpoints.
An invitation to join the organization.
The unique ID of the invite.
The email address the invite was sent to.
The lifecycle status of an invite.
Possible values: pending, expired, processed. List endpoints return only pending and expired invites; processed is returned only when fetching a single invite by ID.
"pending"
The date and time the invite was created.
When the invite expires if not accepted. Default TTL is 7 days. Resending the invite extends this to now plus 7 days. null if the invite does not expire.
The date and time the invite was accepted. null or omitted while the invite is still pending or expired.
Was this page helpful?