Skip to content

API reference

Users

Users are the people in your workspace. Read them to put the right ID into owner_id and assignee_ids; invite and remove people in the app.

Scope
users:read
Plan
Every plan
Access
Read-only

The user object

Removed users stay in the list with is_active: false, because records they owned still point to them.

Attributes

  • iduuidRead-only

    Unique identifier of the user.

  • full_namestring

    Name as shown in the app.

  • emailstring

    Sign-in email.

  • rolestring

    The user’s role: admin, manager, user, or the name of a custom role.

  • avatar_urlstringNullable

    Profile picture URL.

  • is_activeboolean

    false once the user has been removed from the workspace. Assign records only to active users.

The user object
{
  "id": "0c4f8e2a-7b3d-4a1f-9e6c-5d2b8a1f3e47",
  "full_name": "Maya Chen",
  "email": "[email protected]",
  "role": "admin",
  "avatar_url": null,
  "is_active": true
}

Assign an owner by email

Integrations usually know a person’s email, not their Nextora ID. Look the ID up once, then use it when you create or update records:

assign-owner.mjs
const headers = { Authorization: `Bearer ${process.env.NEXTORA_API_KEY}` };

const { data: users } = await (await fetch('https://acme.nextora.co/api/v1/users?limit=100', { headers })).json();
const owner = users.find(user => user.is_active && user.email === '[email protected]');

await fetch('https://acme.nextora.co/api/v1/deals/8f2d6c1a-4b7e-4f0a-9c3d-2e1b5a6f7c80', {
  method: 'PATCH',
  headers: { ...headers, 'Content-Type': 'application/json' },
  body: JSON.stringify({ owner_id: owner.id }),
});

List users

GET/api/v1/users

Requires users:read

Returns the users of the workspace, active and removed.

Query parameters

  • limitinteger

    Page size, from 1 to 100.

    Default50

  • cursorstring

    The meta.next_cursor of the previous page.

Returns

A list of user objects.

GET/api/v1/users
curl -G https://acme.nextora.co/api/v1/users \
  -H "Authorization: Bearer $NEXTORA_API_KEY" \
  -d limit=100
Response200 OK
{
  "data": [
    {
      "id": "0c4f8e2a-7b3d-4a1f-9e6c-5d2b8a1f3e47",
      "full_name": "Maya Chen",
      "email": "[email protected]",
      "role": "admin",
      "avatar_url": null,
      "is_active": true
    },
    {
      "id": "6a2d9c4e-1f8b-4e3a-b7d5-9c0e2f4a6b18",
      "full_name": "Daniel Okafor",
      "email": "[email protected]",
      "role": "manager",
      "avatar_url": null,
      "is_active": true
    }
  ],
  "meta": {
    "limit": 100,
    "has_more": false,
    "next_cursor": null
  }
}