Skip to content

List employees

POST
/api/public/v1/employees/search
curl --request POST \
--url https://example.com/api/public/v1/employees/search \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '{ "Query": "example", "Status": "NotActivated", "Sphere": "SpInternal", "IsArchived": true, "Page": 1, "PageSize": 1 }'

One page of the company’s employee records, newest activity first. Filters travel in the body: a search that carries corporate email addresses does not belong in a URL, where it would land in access logs and browser history. Send an empty body to list everything.

One of:

Filters for the employee list. Everything is optional.

object
Query

Free-text match on name or corporate email.

string
nullable
Status
One of:
string
Allowed values: NotActivated Invited Activated Revoked
Sphere
One of:
string
Allowed values: SpInternal SpExternal
IsArchived

False (the default) lists active records; true lists archived ones.

boolean
Page

1-based page number.

integer format: int32
PageSize

Rows per page. Clamped server-side.

integer format: int32

OK

Media typeapplication/json

One page of results plus the totals needed to walk the rest.

object
Items
Array<object>

One employee record. Carries the state of the invitation and of the person’s consent — never the emergency field values themselves, under any condition.

object
Id
string
Email

The corporate email the record is matched by.

string
FullName
string
LastName
string
nullable
FirstName
string
nullable
MiddleName
string
nullable
Sphere
string
Allowed values: SpInternal SpExternal
Status
string
Allowed values: NotActivated Invited Activated Revoked
InvitedAt

When the invitation was last delivered; null if it never was.

string format: date-time
nullable
GrantedAt

When the person granted access; null until they do.

string format: date-time
nullable
SphereUpdatedAt

When they last changed their emergency card. Null if they never filled it in.

string format: date-time
nullable
HasBoundToken

Whether the person carries a Spherum token issued by this company.

boolean
IsArchived

Archived records stay listed; ask for them with the archived filter.

boolean
PortalUrl

Where this person’s card lives in the Portal. Opening it needs a signed-in Portal session — the link is an address, not access.

string
nullable
Page

1-based index of this page.

integer format: int32
PageSize
integer format: int32
Total

Matching records across all pages.

integer format: int64
TotalPages
integer format: int32
Example
{
"Items": [
{
"Sphere": "SpInternal",
"Status": "NotActivated"
}
]
}

Bad Request

Media typeapplication/json

The Integration API’s error shape — RFC 7807 application/problem+json. The Portal API answers in its own { Error, Details } envelope because one client parses one shape; an external integrator expects the standard instead.

object
type
string
nullable
title
required
string
nullable
status
integer format: int32
nullable
detail
string
nullable
instance
string
nullable
Examplegenerated
{
"type": "example",
"title": "example",
"status": 1,
"detail": "example",
"instance": "example"
}

Unauthorized

Media typeapplication/json

The Integration API’s error shape — RFC 7807 application/problem+json. The Portal API answers in its own { Error, Details } envelope because one client parses one shape; an external integrator expects the standard instead.

object
type
string
nullable
title
required
string
nullable
status
integer format: int32
nullable
detail
string
nullable
instance
string
nullable
Examplegenerated
{
"type": "example",
"title": "example",
"status": 1,
"detail": "example",
"instance": "example"
}