Skip to main content
The Néxudus Members Portal is a front-end only application that connects to the Néxudus API backend. This API provides comprehensive access to all the functionality available in the portal interface, enabling developers to integrate portal features into custom applications, mobile apps, or third-party systems.
This portal application does not have its own backend - it connects directly to the Néxudus API infrastructure for all data operations using a client-side architecture.

Base URL Structure

The API endpoints follow two primary URL patterns:
  • API Endpoints: https://[your-space].spaces.nexudus.com/api/public/...
  • Localized Endpoints: https://[your-space].spaces.nexudus.com/{lang}/...

HTTP Methods

The API primarily uses these HTTP methods:
  • GET - Retrieve data (most common)
  • POST - Create resources and submit data
  • PUT - Update existing resources
  • DELETE - Remove resources
  • PATCH - Update resources partially

Response Format

API responses return JSON with consistent structures. List endpoints follow the ApiListResult<T> pattern:
{
  "Records": [
    /* array of items */
  ],
  "CurrentPageSize": 20,
  "CurrentPage": 1,
  "CurrentOrderField": "Name",
  "CurrentSortDirection": "ASC",
  "FirstItem": 1,
  "HasNextPage": true,
  "HasPreviousPage": false,
  "LastItem": 20,
  "PageNumber": 1,
  "PageSize": 20,
  "TotalItems": 150,
  "TotalPages": 8
}

Single-record Responses

For single-record endpoints.
{
  "Resource": {
    ...
  }
}

Error Handling

Error responses generally use HTTP 400 status code with and error code:
{
  "Invalid booking date - start date cannot be in the past"
}
When authentication fails or the user does not have permission to make a specific request, the API returns a 401 status code;

API Client Implementation

The portal uses a custom HTTP client based on Axios with these characteristics:
  • Bearer token authentication
  • Timezone-aware requests (X-Use-Timezone header).
  • JSON content type by default

Request Shaping

The API supports request shaping to optimize response size:
// Example of request shaping
const shape = ['BlogPost.Id', 'BlogPost.Title', 'BlogPost.AllowComments', 'BlogPost.UpdatedOn', 'BlogPost.Comments.Id', 'BlogPost.Comments.Text']

// URL with shape parameter
const url = `${endpoint}?_shape=${shape.join(',')}`

GET /api/public/blogPosts?page=1&top=10&featured=true&_shape=BlogPosts.Records.Id,BlogPosts.Records.Business.Id,BlogPosts.Records.Business.WebAddress,BlogPosts.Records.Business.Name,BlogPosts.Records.Title,BlogPosts.Records.BlogCategories.Id,BlogPosts.Records.BlogCategories.Title,BlogPosts.Records.SummaryText,BlogPosts.Records.PublishDateUtc,BlogPosts.Records.UpdatedOn,BlogPosts.Records.PostedBy.FullName,BlogPosts.HasNextPage,Category.Id,Category.Title,Categories.Id,Categories.Title

Multi-tenancy Support

The application supports multi-tenancy through dynamic domain resolution:
  • Each location has its own subdomain (your-space.spaces.Néxudus.com)

API Throttling Limits

The API enforces throttling rules to prevent abuse and ensure fair usage.
Limits apply per client (based on request signature) and vary depending on method, endpoint, and time window.

General Limits

ScopeMethodsLimitWindow
Per secondAny10 requests1 sec
Per minuteAny120 requests1 min
Per hourAny5000 requests1 hour
Per dayAny200,000 requests24 hours
POST/PUT/DELETE (minute)POST, PUT, DELETE60 requests1 min
POST/PUT/DELETE (day)POST, PUT, DELETE5000 requests24 hours

Public API Limits

EndpointMethodsLimitWindow
/api/public*Any10 requests5 sec
/api/public/checkinAny60 requests1 min

Endpoint-Specific Limits

EndpointMethodsLimitWindow
/api/Spaces/CoworkerPricePlanHistoriesAny1 request10 sec
/api/Sys/AuditTrailEntriesAny1 request60 sec
/api/spaces/coworkerDataFilesPOST, PUT5 requests1 min
/api/spaces/coworkerMessagesPOST, PUT5 requests1 min
/api/billing/proposals/runcommandAny10 requests1 min
/api/billing/coworkercontracts/runcommandAny10 requests1 min
/api/billing/coworkerinvoices/runcommandAny10 requests1 min
/api/nexpos/validatepinAny60 requests1 min
*/bigquery/pushallAny1 request12 min
/api/integrations/textractAny12 requests1 min
/api/integrations/openaiAny12 requests1 min
/api/sys/users/sendmagiclinkAny12 requests1 min