Skip to main content
The Users API lets you manage the people who have access to your Varo Cloud organization. You can list current members, invite new teammates by email, update someone’s role as their responsibilities change, and remove users when they leave your team. Role changes and removals take effect immediately, so you can use this API to automate onboarding and offboarding workflows from your identity provider or HR systems. Base URL: https://inference.varo.cloud/v1 All requests require an Authorization: Bearer YOUR_API_KEY header.

GET /users

Returns a list of all members currently active in your organization.
curl -X GET "https://inference.varo.cloud/v1/users" \
  -H "Authorization: Bearer YOUR_API_KEY"
{
  "data": [
    {
      "id": "usr_aaa111",
      "name": "Alex Rivera",
      "email": "alex@acme-corp.com",
      "role": "owner",
      "status": "active",
      "joined_at": "2023-06-01T09:00:00Z"
    },
    {
      "id": "usr_bbb222",
      "name": "Jordan Lee",
      "email": "jordan@acme-corp.com",
      "role": "developer",
      "status": "active",
      "joined_at": "2023-09-15T14:30:00Z"
    },
    {
      "id": "usr_ccc333",
      "name": "Sam Patel",
      "email": "sam@acme-corp.com",
      "role": "viewer",
      "status": "active",
      "joined_at": "2024-01-10T10:00:00Z"
    }
  ]
}
data[].id
string
Unique identifier for the user, prefixed with usr_.
data[].name
string
The user’s display name.
data[].email
string
The user’s email address.
data[].role
string
The user’s current role in the organization. One of owner, admin, developer, or viewer.
data[].status
string
The user’s account status within the organization. One of active or suspended.
data[].joined_at
string
ISO 8601 datetime string for when the user accepted their invitation and joined the organization.

POST /users/invite

Sends an email invitation to a new team member. The invitation includes a link to accept access to your organization under the specified role.
email
string
required
The email address of the person you want to invite.
role
string
required
The role to grant the invited user upon acceptance. One of owner, admin, developer, or viewer.
Invitations expire after 7 days. If the invitee does not accept within that window, you will need to resend the invitation. Pending invitations are not included in the GET /users response until accepted.
curl -X POST "https://inference.varo.cloud/v1/users/invite" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "email": "casey@acme-corp.com",
    "role": "developer"
  }'
{
  "id": "inv_ddd444",
  "email": "casey@acme-corp.com",
  "role": "developer",
  "invited_at": "2024-01-15T12:00:00Z",
  "expires_at": "2024-01-22T12:00:00Z"
}
id
string
Unique identifier for the invitation, prefixed with inv_.
email
string
The email address the invitation was sent to.
role
string
The role the invitee will receive upon acceptance.
invited_at
string
ISO 8601 datetime string for when the invitation was sent.
expires_at
string
ISO 8601 datetime string for when the invitation expires (7 days after creation).

GET /users/

Retrieves the full profile of a single organization member.
id
string
required
The unique identifier of the user to retrieve.
curl -X GET "https://inference.varo.cloud/v1/users/usr_bbb222" \
  -H "Authorization: Bearer YOUR_API_KEY"
{
  "id": "usr_bbb222",
  "name": "Jordan Lee",
  "email": "jordan@acme-corp.com",
  "role": "developer",
  "status": "active",
  "joined_at": "2023-09-15T14:30:00Z"
}

PUT /users/

Updates a team member’s role within the organization.
id
string
required
The unique identifier of the user whose role you want to update.
role
string
required
The new role to assign to the user. One of owner, admin, developer, or viewer.
You cannot change the Owner’s role. Each organization must have at least one Owner at all times. To transfer ownership, first promote another user to owner, then update the original Owner’s role.
curl -X PUT "https://inference.varo.cloud/v1/users/usr_bbb222" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "role": "admin"
  }'
{
  "id": "usr_bbb222",
  "name": "Jordan Lee",
  "email": "jordan@acme-corp.com",
  "role": "admin",
  "status": "active",
  "joined_at": "2023-09-15T14:30:00Z"
}

DELETE /users/

Removes a user from the organization immediately.
id
string
required
The unique identifier of the user to remove.
Removing a user immediately revokes all of their API keys and ends their active sessions. Any automated processes or integrations using their credentials will stop working at once. Rotate or reassign those credentials before removing the user.
curl -X DELETE "https://inference.varo.cloud/v1/users/usr_ccc333" \
  -H "Authorization: Bearer YOUR_API_KEY"
A successful deletion returns 204 No Content with an empty response body.

User Object

id
string
Unique identifier for the user, prefixed with usr_.
name
string
The user’s full display name.
email
string
The user’s email address.
role
string
The user’s role in the organization. One of owner, admin, developer, or viewer. See the Roles table below for a breakdown of permissions.
status
string
The user’s current account status. One of active or suspended.
joined_at
string
ISO 8601 datetime string for when the user joined the organization.

Roles

The following table summarizes what each role can do within your Varo Cloud organization.
CapabilityOwnerAdminDeveloperViewer
Manage billing and subscription
Invite and remove users
Update user roles
Create and delete projects
Create and manage deployments
Create and manage integrations
View projects and deployments
View logs and metrics