List employees
const url = 'https://example.com/api/public/v1/employees/search';const options = { method: 'POST', headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'}, body: '{"Query":"example","Status":"NotActivated","Sphere":"SpInternal","IsArchived":true,"Page":1,"PageSize":1}'};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}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.
Authorizations
Section titled “Authorizations”Request Body
Section titled “Request Body”Filters for the employee list. Everything is optional.
object
Free-text match on name or corporate email.
False (the default) lists active records; true lists archived ones.
1-based page number.
Rows per page. Clamped server-side.
Filters for the employee list. Everything is optional.
object
Free-text match on name or corporate email.
False (the default) lists active records; true lists archived ones.
1-based page number.
Rows per page. Clamped server-side.
Filters for the employee list. Everything is optional.
object
Free-text match on name or corporate email.
False (the default) lists active records; true lists archived ones.
1-based page number.
Rows per page. Clamped server-side.
Responses
Section titled “Responses”OK
One page of results plus the totals needed to walk the rest.
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
The corporate email the record is matched by.
When the invitation was last delivered; null if it never was.
When the person granted access; null until they do.
When they last changed their emergency card. Null if they never filled it in.
Whether the person carries a Spherum token issued by this company.
Archived records stay listed; ask for them with the archived filter.
Where this person’s card lives in the Portal. Opening it needs a signed-in Portal session — the link is an address, not access.
1-based index of this page.
Matching records across all pages.
Example
{ "Items": [ { "Sphere": "SpInternal", "Status": "NotActivated" } ]}Bad Request
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
Examplegenerated
{ "type": "example", "title": "example", "status": 1, "detail": "example", "instance": "example"}Unauthorized
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
Examplegenerated
{ "type": "example", "title": "example", "status": 1, "detail": "example", "instance": "example"}