Table of Contents
Last updated: 12/20/2025

Using the API


Caution

Sample code provided in here is for demonstration and educational purposes only which provides customers with programming information regarding the products and is not intended for use in a production environment. All production code should always follow development best practices. All sample code here is supplied "AS IS" without any warranties or support.

In the introduction we talked about the Collection and Space segments of the API. When operating within a Space it is often required that we have the SAs-InformationFilter header set. In this section we will look at how we can get an Information Filter using the API.

In this example we have a Space identified as InControl. We can use the Space part of the API by using that Space id. The relative route will be /api/space/Incontrol.

C# Sample


Warning

A common mistake when using HttpClient is to use multiple instances of the HttpClient. You should reuse the same instance within an application.

We continue from the previous example by instantiating a new HttpClient. On this client we setup an Authorization Header using the token from the previous example.

We then make a GET request to https://essevm347.es.eurostep.com/api/space/InControl/informationfilter in order to get the default Information Filter for the current user within the InControl space.


// Set information filter header
var dataString = resultJson["data"]?.ToString();

var informationFilter = Base64UrlEncode(Encoding.UTF8.GetBytes(dataString));

Information Filter payload example:

{
  "href": "https://essevm347.es.eurostep.com/api/space/InControl/informationfilter",
  "data": {
    "owner": "eb43d157e3456d65ef00020000000000",
    "idContext": "eb43d157e4456d65e700020000000000",
    "effectivity": {
      "enabled": true,
      "role": "Actual",
      "mode": "Live"
    }
  }
}

Above we can see an example of the response to our GET request. Looking at the payload we can see that we have a JSON object with the two properties href and data. Nova is making use of HATEOAS REST architecture principles.

The href shows what resource that was requested and the data is the actual data response from the request. Depending on the type of data requested one might also get an array of links. These links depends on the current users access rights to the resource. More on this in the next section where we will look at requesting, creating, and editing SoftTypes.

Once we have the Information Filter we have the possibility to change the filter settings based on how we want to request data from Nova. This is done by simply editing the JSON object before setting it as the SAs-InformationFilter header.

Before the Information Filter can be set as the SAs-InformationFilter it must be converted to a URL Encoded Base64 string.

    output = output.Replace('/', '_'); // 63rd char of encoding
    return output;
}

public static async Task Main()
{
    // using PAT
    string pat = "";

var person = new JObject();
person["id"] = Guid.NewGuid().ToString();
person["firstName"] = "First";
person["lastName"] = "Last";

Caching

When using the .Net HttpClient and you want to make use of the caching functionality in the Nova REST API use the following initialization of the HttpClient.

httpClient = new HttpClient(new WebRequestHandler()
{
  CachePolicy = new HttpRequestCachePolicy(HttpRequestCacheLevel.Default)
});

PowerShell Sample


Continuing from the previous example on the oAuth authorization/authentication. The following sample will show how to get the Information Filter and setting it to the SAs-InformationFilter header using PowerShell.

Download set-information-filter.ps1

$infoFilterUri = "https://essevm347.es.eurostep.com/api/space/InControl/informationfilter"

$bearerHeader = @{ "Authorization" = ("Bearer", $bearerToken -join " ") }

$response = Invoke-RestMethod -Uri $infoFilterUri -Headers $bearerHeader

$data = ConvertTo-Json $response.data

$data = [Convert]::ToBase64String([Text.Encoding]::ASCII.GetBytes($data))
$data = $data.TrimEnd("=")
$data = $data.Replace("+", "-")
$data = $data.Replace("/", "_")

$bearerHeader = @{ 
    "Authorization" = ("Bearer", $bearerToken -join " ");
    "SAs-InformationFilter" = $data
}

Download sample


The code example provided in this document can be downloaded in a sample project.

Download Code