/admin/invitesInvite a user to the organizationInvite a user to the organization by email and grant their initial role bindings.
Parameters
X-Pinecone-Api-VersionstringheaderrequiredRequired date-based version header
Request body
requiredThe invite to create.
application/json
emailstring · emailrequiredThe email address to invite.
role_bindingsarray of objectrequiredRole 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.
Show child attributes
Show array items
A role to grant to the principal being created. `resource_type` selects the binding scope and acts as the tag for the entry. For `organization` scope, omit `resource_id`; the binding applies to the principal's organization (inferred from the request context). For `project` scope, `resource_id` is required and must be the project UUID.
resource_idstringProject UUID. Required when `resource_type` is `project`; omit for `organization` scope.
resource_typestringrequiredThe kind of resource scope a role binding applies to. Possible values: `organization`, `project`.
rolestringrequiredA role assigned to a principal at a resource scope.
{
"email": "newhire@acme.com",
"role_bindings": [
{
"resource_type": "organization",
"role": "OrgMember"
},
{
"resource_id": "a2f7dddb-1597-4eff-9f71-535fde243f58",
"resource_type": "project",
"role": "ProjectMember"
}
]
}Responses
An invitation to join the organization.
created_atstring · date-timerequiredThe date and time the invite was created.
emailstring · emailrequiredThe email address the invite was sent to.
expires_atnull | string · date-timeWhen 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.
idstring · uuidrequiredThe unique ID of the invite.
processed_atnull | string · date-timeThe date and time the invite was accepted. `null` or omitted while the invite is still pending or expired.
statusstringrequiredThe 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.
{
"created_at": "2026-04-14T20:00:00Z",
"email": "newhire@acme.com",
"expires_at": "2026-05-21T03:00:00Z",
"id": "9c8e3528-b9c0-4358-84ce-84c28e91b566",
"processed_at": null,
"status": "pending"
}The response shape used for all error responses.
errorobjectrequiredDetailed information about the error that occurred.
Show child attributes
codestringrequiredThe error code. Possible values: `OK`, `UNKNOWN`, `INVALID_ARGUMENT`, `DEADLINE_EXCEEDED`, `QUOTA_EXCEEDED`, `NOT_FOUND`, `ALREADY_EXISTS`, `PERMISSION_DENIED`, `UNAUTHENTICATED`, `RESOURCE_EXHAUSTED`, `FAILED_PRECONDITION`, `ABORTED`, `OUT_OF_RANGE`, `UNIMPLEMENTED`, `INTERNAL`, `UNAVAILABLE`, `DATA_LOSS`, `FORBIDDEN`, or `UNPROCESSABLE_ENTITY`.
detailsobjectAdditional information about the error. This field is not guaranteed to be present.
messagestringrequiredstatusintegerrequiredThe HTTP status code of the error.
{
"error": {
"code": "INVALID_ARGUMENT",
"message": "Bad request. The request body included invalid request parameters."
},
"status": 400
}The response shape used for all error responses.
errorobjectrequiredDetailed information about the error that occurred.
Show child attributes
codestringrequiredThe error code. Possible values: `OK`, `UNKNOWN`, `INVALID_ARGUMENT`, `DEADLINE_EXCEEDED`, `QUOTA_EXCEEDED`, `NOT_FOUND`, `ALREADY_EXISTS`, `PERMISSION_DENIED`, `UNAUTHENTICATED`, `RESOURCE_EXHAUSTED`, `FAILED_PRECONDITION`, `ABORTED`, `OUT_OF_RANGE`, `UNIMPLEMENTED`, `INTERNAL`, `UNAVAILABLE`, `DATA_LOSS`, `FORBIDDEN`, or `UNPROCESSABLE_ENTITY`.
detailsobjectAdditional information about the error. This field is not guaranteed to be present.
messagestringrequiredstatusintegerrequiredThe HTTP status code of the error.
{
"error": {
"code": "UNAUTHENTICATED",
"message": "Invalid API key."
},
"status": 401
}The response shape used for all error responses.
errorobjectrequiredDetailed information about the error that occurred.
Show child attributes
codestringrequiredThe error code. Possible values: `OK`, `UNKNOWN`, `INVALID_ARGUMENT`, `DEADLINE_EXCEEDED`, `QUOTA_EXCEEDED`, `NOT_FOUND`, `ALREADY_EXISTS`, `PERMISSION_DENIED`, `UNAUTHENTICATED`, `RESOURCE_EXHAUSTED`, `FAILED_PRECONDITION`, `ABORTED`, `OUT_OF_RANGE`, `UNIMPLEMENTED`, `INTERNAL`, `UNAVAILABLE`, `DATA_LOSS`, `FORBIDDEN`, or `UNPROCESSABLE_ENTITY`.
detailsobjectAdditional information about the error. This field is not guaranteed to be present.
messagestringrequiredstatusintegerrequiredThe HTTP status code of the error.
{
"error": {
"code": "QUOTA_EXCEEDED",
"message": "The index exceeds the project quota of 5 pods by 2 pods. Upgrade your account or change the project settings to increase the quota."
},
"status": 429
}The response shape used for all error responses.
errorobjectrequiredDetailed information about the error that occurred.
Show child attributes
codestringrequiredThe error code. Possible values: `OK`, `UNKNOWN`, `INVALID_ARGUMENT`, `DEADLINE_EXCEEDED`, `QUOTA_EXCEEDED`, `NOT_FOUND`, `ALREADY_EXISTS`, `PERMISSION_DENIED`, `UNAUTHENTICATED`, `RESOURCE_EXHAUSTED`, `FAILED_PRECONDITION`, `ABORTED`, `OUT_OF_RANGE`, `UNIMPLEMENTED`, `INTERNAL`, `UNAVAILABLE`, `DATA_LOSS`, `FORBIDDEN`, or `UNPROCESSABLE_ENTITY`.
detailsobjectAdditional information about the error. This field is not guaranteed to be present.
messagestringrequiredstatusintegerrequiredThe HTTP status code of the error.
{
"error": {
"code": "ALREADY_EXISTS",
"message": "This email already belongs to a member of the organization."
},
"status": 409
}The response shape used for all error responses.
errorobjectrequiredDetailed information about the error that occurred.
Show child attributes
codestringrequiredThe error code. Possible values: `OK`, `UNKNOWN`, `INVALID_ARGUMENT`, `DEADLINE_EXCEEDED`, `QUOTA_EXCEEDED`, `NOT_FOUND`, `ALREADY_EXISTS`, `PERMISSION_DENIED`, `UNAUTHENTICATED`, `RESOURCE_EXHAUSTED`, `FAILED_PRECONDITION`, `ABORTED`, `OUT_OF_RANGE`, `UNIMPLEMENTED`, `INTERNAL`, `UNAVAILABLE`, `DATA_LOSS`, `FORBIDDEN`, or `UNPROCESSABLE_ENTITY`.
detailsobjectAdditional information about the error. This field is not guaranteed to be present.
messagestringrequiredstatusintegerrequiredThe HTTP status code of the error.
{
"error": {
"code": "QUOTA_EXCEEDED",
"message": "The index exceeds the project quota of 5 pods by 2 pods. Upgrade your account or change the project settings to increase the quota."
},
"status": 429
}The response shape used for all error responses.
errorobjectrequiredDetailed information about the error that occurred.
Show child attributes
codestringrequiredThe error code. Possible values: `OK`, `UNKNOWN`, `INVALID_ARGUMENT`, `DEADLINE_EXCEEDED`, `QUOTA_EXCEEDED`, `NOT_FOUND`, `ALREADY_EXISTS`, `PERMISSION_DENIED`, `UNAUTHENTICATED`, `RESOURCE_EXHAUSTED`, `FAILED_PRECONDITION`, `ABORTED`, `OUT_OF_RANGE`, `UNIMPLEMENTED`, `INTERNAL`, `UNAVAILABLE`, `DATA_LOSS`, `FORBIDDEN`, or `UNPROCESSABLE_ENTITY`.
detailsobjectAdditional information about the error. This field is not guaranteed to be present.
messagestringrequiredstatusintegerrequiredThe HTTP status code of the error.
{
"error": {
"code": "UNKNOWN",
"message": "Internal server error"
},
"status": 500
}