NAV
HTTP cURL Python Javascript Node.JS Java Ruby Go

Introduction

Welcome to the Logik.io API Documentation. The Logik.io APIs are divided into two categories: Runtime APIs and Admin APIs.

The Runtime APIs are used to create, update and save configurations and are the same APIs that are used in the Logik End User Configurator.

You can use the Admin APIs to work with Blueprints, Fields, Rules, Configurable Products and Managed Tables and perform various automation tasks like importing and exporting data.

We have language examples available for several common languages. You can view code examples in the dark area to the right, and you can switch the programming language of the examples with the tabs in the top right.

Authentication

Logik.io uses API keys to allow access to the API. They are passed in the HTTP Authorization Header with the Bearer <token> scheme.

Authorization: Bearer example123456789

Runtime Authentication

A Runtime Token is used for requests to the Configuration and the BOM APIs. Created in the Logik.io Admin, under Runtime Clients. This token must also be configured to allow the Origin that is passed as a Header parameter in all Runtime Configuration requests. Runtime Tokens cannot be used to access Admin APIs.

Admin Authentication

An Admin API Token is used for requests to the Logik Admin endpoints. You can register a new Admin API key in your environment, by navigating to "Utilities" > "Admin API Keys" in the Logik.io admin screen. This is different from the Runtime Token and will not work for the Configuration and BOM APIs.

Servers

Base URLs:

Contact Support

Configuration

Creating new configurations, reconfiguring existing configurations, making updates to a configuration and saving changes. Can be used for headless or custom UI implementations.

Important Versioning Information

Blueprints that use Product Picker Fields must use the application/vnd.logik.cfg-v2+json Content-Type when making requests.

The Runtime APIs are versioned using different Content-Types. There are 2 Content-Type formats, application/json for v1 and application/vnd.logik.cfg-v2+json for v2.

The Accept Header should match the Content-Type being used, either:

Start Configuration

Code samples

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Origin': 'string',
  'Authorization': 'Bearer {access-token}'
}

r = requests.post('https://{tenant}.{sector}.logik.io/api', headers = headers)

print(r.json())

const inputBody = '{
  "sessionContext": {
    "stateful": true
  },
  "partnerData": {
    "product": {
      "configuredProductId": "string",
      "configurationAttributes": {
        "LGK__ConfigurationId__c": "string"
      }
    }
  },
  "quote": {
    "SBQQ__PricebookId__c": "string"
  },
  "fields": [
    {
      "variableName": "string",
      "value": "string"
    }
  ]
}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Origin':'string',
  'Authorization':'Bearer {access-token}'
};

fetch('https://{tenant}.{sector}.logik.io/api',
{
  method: 'POST',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

const fetch = require('node-fetch');
const inputBody = {
  "sessionContext": {
    "stateful": true
  },
  "partnerData": {
    "product": {
      "configuredProductId": "string",
      "configurationAttributes": {
        "LGK__ConfigurationId__c": "string"
      }
    }
  },
  "quote": {
    "SBQQ__PricebookId__c": "string"
  },
  "fields": [
    {
      "variableName": "string",
      "value": "string"
    }
  ]
};
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Origin':'string',
  'Authorization':'Bearer {access-token}'
};

fetch('https://{tenant}.{sector}.logik.io/api',
{
  method: 'POST',
  body: JSON.stringify(inputBody),
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

# You can also use wget
curl -X POST https://{tenant}.{sector}.logik.io/api \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json' \
  -H 'Origin: string' \
  -H 'Authorization: Bearer {access-token}'

POST https://{tenant}.{sector}.logik.io/api HTTP/1.1

Content-Type: application/json
Accept: application/json
Origin: string

URL obj = new URL("https://{tenant}.{sector}.logik.io/api");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Accept' => 'application/json',
  'Origin' => 'string',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.post 'https://{tenant}.{sector}.logik.io/api',
  params: {
  }, headers: headers

p JSON.parse(result)

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/json"},
        "Origin": []string{"string"},
        "Authorization": []string{"Bearer {access-token}"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "https://{tenant}.{sector}.logik.io/api", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

POST /api

Initialize a new Configuration or reconfigure an existing Configuration if passing an existing Logik Configuration UUID in the Request Body.

Body parameter

{
  "sessionContext": {
    "stateful": true
  },
  "partnerData": {
    "product": {
      "configuredProductId": "string",
      "configurationAttributes": {
        "LGK__ConfigurationId__c": "string"
      }
    }
  },
  "quote": {
    "SBQQ__PricebookId__c": "string"
  },
  "fields": [
    {
      "variableName": "string",
      "value": "string"
    }
  ]
}

Parameters

Name In Type Required Description
Origin header string true Request Origin, needs to be one of the allowed origins for the Runtime Token being used.
body body InitConfig false Configurable Product Object to initialize

Example responses

200 Response

{
  "fields": [
    {
      "value": "string",
      "dataType": "string",
      "visibilityState": "string",
      "editable": "string",
      "variableName": "string",
      "optionSet": {
        "options": [
          {
            "label": "string",
            "state": "string",
            "value": "string",
            "imageUrl": "string",
            "orderNumber": 0
          }
        ]
      }
    }
  ],
  "uuid": "string",
  "revision": 0,
  "valid": true,
  "messages": [
    {
      "message": "string",
      "type": "string",
      "error": true,
      "field": "string"
    }
  ],
  "productChange": true,
  "products": [
    {
      "id": "string",
      "selectionType": "string",
      "quantity": 0,
      "bomType": "string",
      "level": 0,
      "parentProduct": 0,
      "notes": "string",
      "uniqueIdentifier": 0,
      "description": "string",
      "externalId": "string",
      "name": "string",
      "price": 0,
      "extPrice": 0
    }
  ],
  "layouts": [
    {
      "url": "string"
    }
  ],
  "relatedChanges": [
    {
      "key": "string",
      "type": "string"
    }
  ]
}

Responses

Status Meaning Description Schema
200 OK Return the state of configuration at initalization or reconfiguration. Includes fields, messages and products. ConfigResponse
400 Bad Request Bad request. See errorMessage for additional details. ErrorResponse
401 Unauthorized Authorization information is missing or invalid. None
403 Forbidden Credentials are valid but insufficient privileges to perform the action on the resource. None
404 Not Found Resource was not found. See errorMessage for additional details. ErrorResponse
5XX Unknown Unexpected Server Error. ErrorResponse

Get Configuration

Code samples

import requests
headers = {
  'Accept': 'application/json',
  'Origin': 'string',
  'Authorization': 'Bearer {access-token}'
}

r = requests.get('https://{tenant}.{sector}.logik.io/api/{uuid}', headers = headers)

print(r.json())


const headers = {
  'Accept':'application/json',
  'Origin':'string',
  'Authorization':'Bearer {access-token}'
};

fetch('https://{tenant}.{sector}.logik.io/api/{uuid}',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/json',
  'Origin':'string',
  'Authorization':'Bearer {access-token}'
};

fetch('https://{tenant}.{sector}.logik.io/api/{uuid}',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

# You can also use wget
curl -X GET https://{tenant}.{sector}.logik.io/api/{uuid} \
  -H 'Accept: application/json' \
  -H 'Origin: string' \
  -H 'Authorization: Bearer {access-token}'

GET https://{tenant}.{sector}.logik.io/api/{uuid} HTTP/1.1

Accept: application/json
Origin: string

URL obj = new URL("https://{tenant}.{sector}.logik.io/api/{uuid}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/json',
  'Origin' => 'string',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.get 'https://{tenant}.{sector}.logik.io/api/{uuid}',
  params: {
  }, headers: headers

p JSON.parse(result)

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        "Origin": []string{"string"},
        "Authorization": []string{"Bearer {access-token}"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "https://{tenant}.{sector}.logik.io/api/{uuid}", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

GET /api/{uuid}

Returns the Configuration state from the given Configuration UUID. This does not allow changes to made to the Configuration. To make changes, reconfigure using the POST call.

Parameters

Name In Type Required Description
Origin header string true Request Origin, needs to be one of the allowed origins for the Runtime Token being used.
uuid path string true Unique Configuration ID Value

Example responses

200 Response

{
  "fields": [
    {
      "value": "string",
      "dataType": "string",
      "visibilityState": "string",
      "editable": "string",
      "variableName": "string",
      "optionSet": {
        "options": [
          {
            "label": "string",
            "state": "string",
            "value": "string",
            "imageUrl": "string",
            "orderNumber": 0
          }
        ]
      }
    }
  ],
  "uuid": "string",
  "revision": 0,
  "valid": true,
  "messages": [
    {
      "message": "string",
      "type": "string",
      "error": true,
      "field": "string"
    }
  ],
  "productChange": true,
  "products": [
    {
      "id": "string",
      "selectionType": "string",
      "quantity": 0,
      "bomType": "string",
      "level": 0,
      "parentProduct": 0,
      "notes": "string",
      "uniqueIdentifier": 0,
      "description": "string",
      "externalId": "string",
      "name": "string",
      "price": 0,
      "extPrice": 0
    }
  ],
  "layouts": [
    {
      "url": "string"
    }
  ],
  "relatedChanges": [
    {
      "key": "string",
      "type": "string"
    }
  ]
}

Responses

Status Meaning Description Schema
200 OK Return initial state of fields, messages and products ConfigResponse
400 Bad Request Bad request. See errorMessage for additional details. ErrorResponse
401 Unauthorized Authorization information is missing or invalid. None
403 Forbidden Credentials are valid but insufficient privileges to perform the action on the resource. None
404 Not Found Resource was not found. See errorMessage for additional details. ErrorResponse
5XX Unknown Unexpected Server Error. ErrorResponse

Update or Save Configuration

Code samples

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Origin': 'string',
  'Authorization': 'Bearer {access-token}'
}

r = requests.patch('https://{tenant}.{sector}.logik.io/api/{uuid}', headers = headers)

print(r.json())

const inputBody = '{
  "fields": [
    {
      "variableName": "string",
      "value": "string"
    }
  ]
}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Origin':'string',
  'Authorization':'Bearer {access-token}'
};

fetch('https://{tenant}.{sector}.logik.io/api/{uuid}',
{
  method: 'PATCH',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

const fetch = require('node-fetch');
const inputBody = {
  "fields": [
    {
      "variableName": "string",
      "value": "string"
    }
  ]
};
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Origin':'string',
  'Authorization':'Bearer {access-token}'
};

fetch('https://{tenant}.{sector}.logik.io/api/{uuid}',
{
  method: 'PATCH',
  body: JSON.stringify(inputBody),
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

# You can also use wget
curl -X PATCH https://{tenant}.{sector}.logik.io/api/{uuid} \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json' \
  -H 'Origin: string' \
  -H 'Authorization: Bearer {access-token}'

PATCH https://{tenant}.{sector}.logik.io/api/{uuid} HTTP/1.1

Content-Type: application/json
Accept: application/json
Origin: string

URL obj = new URL("https://{tenant}.{sector}.logik.io/api/{uuid}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("PATCH");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Accept' => 'application/json',
  'Origin' => 'string',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.patch 'https://{tenant}.{sector}.logik.io/api/{uuid}',
  params: {
  }, headers: headers

p JSON.parse(result)

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/json"},
        "Origin": []string{"string"},
        "Authorization": []string{"Bearer {access-token}"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("PATCH", "https://{tenant}.{sector}.logik.io/api/{uuid}", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

PATCH /api/{uuid}

Update or Save Configuration with the provided Configuration UUID.

Body parameter

{
  "fields": [
    {
      "variableName": "string",
      "value": "string"
    }
  ]
}

Parameters

Name In Type Required Description
Origin header string true Request Origin, needs to be one of the allowed origins for the Runtime Token being used.
uuid path string true Unique Configuration ID Value
delta query boolean false If delta=true the API only retruns changed data. This is default behavior of the API if the parameter is omitted.
save query boolean false Pass save parameter as true to save the Configuration and send BOM to connected application
body body UpdateConfig true Update or Save Payload for a Configuration.

Example responses

200 Response

{
  "fields": [
    {
      "value": "string",
      "dataType": "string",
      "visibilityState": "string",
      "editable": "string",
      "variableName": "string",
      "optionSet": {
        "options": [
          {
            "label": "string",
            "state": "string",
            "value": "string",
            "imageUrl": "string",
            "orderNumber": 0
          }
        ]
      }
    }
  ],
  "uuid": "string",
  "revision": 0,
  "valid": true,
  "messages": [
    {
      "message": "string",
      "type": "string",
      "error": true,
      "field": "string"
    }
  ],
  "productChange": true,
  "products": [
    {
      "id": "string",
      "selectionType": "string",
      "quantity": 0,
      "bomType": "string",
      "level": 0,
      "parentProduct": 0,
      "notes": "string",
      "uniqueIdentifier": 0,
      "description": "string",
      "externalId": "string",
      "name": "string",
      "price": 0,
      "extPrice": 0
    }
  ],
  "layouts": [
    {
      "url": "string"
    }
  ],
  "relatedChanges": [
    {
      "key": "string",
      "type": "string"
    }
  ]
}

Responses

Status Meaning Description Schema
200 OK Returns state of fields, messages and products ConfigResponse
400 Bad Request Bad request. See errorMessage for additional details. ErrorResponse
401 Unauthorized Authorization information is missing or invalid. None
403 Forbidden Credentials are valid but insufficient privileges to perform the action on the resource. None
404 Not Found Resource was not found. See errorMessage for additional details. ErrorResponse
5XX Unknown Unexpected Server Error. ErrorResponse

Get Set

Code samples

import requests
headers = {
  'Accept': 'application/json',
  'Origin': 'string',
  'Authorization': 'Bearer {access-token}'
}

r = requests.get('https://{tenant}.{sector}.logik.io/api/{uuid}/sets/{setVariableName}', params={
  'page': '0',  'limit': '100',  'sort': 'modified%2CDESC'
}, headers = headers)

print(r.json())


const headers = {
  'Accept':'application/json',
  'Origin':'string',
  'Authorization':'Bearer {access-token}'
};

fetch('https://{tenant}.{sector}.logik.io/api/{uuid}/sets/{setVariableName}?page=0&limit=100&sort=modified%2CDESC',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/json',
  'Origin':'string',
  'Authorization':'Bearer {access-token}'
};

fetch('https://{tenant}.{sector}.logik.io/api/{uuid}/sets/{setVariableName}?page=0&limit=100&sort=modified%2CDESC',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

# You can also use wget
curl -X GET https://{tenant}.{sector}.logik.io/api/{uuid}/sets/{setVariableName}?page=0&limit=100&sort=modified%2CDESC \
  -H 'Accept: application/json' \
  -H 'Origin: string' \
  -H 'Authorization: Bearer {access-token}'

GET https://{tenant}.{sector}.logik.io/api/{uuid}/sets/{setVariableName}?page=0&limit=100&sort=modified%2CDESC HTTP/1.1

Accept: application/json
Origin: string

URL obj = new URL("https://{tenant}.{sector}.logik.io/api/{uuid}/sets/{setVariableName}?page=0&limit=100&sort=modified%2CDESC");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/json',
  'Origin' => 'string',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.get 'https://{tenant}.{sector}.logik.io/api/{uuid}/sets/{setVariableName}',
  params: {
  'page' => 'number',
'limit' => 'number',
'sort' => 'string'
}, headers: headers

p JSON.parse(result)

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        "Origin": []string{"string"},
        "Authorization": []string{"Bearer {access-token}"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "https://{tenant}.{sector}.logik.io/api/{uuid}/sets/{setVariableName}", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

GET /api/{uuid}/sets/{setVariableName}

Access fields in a given Set. Use if Set flagged in relatedChanges param

Parameters

Name In Type Required Description
Origin header string true Request Origin, needs to be one of the allowed origins for the Runtime Token being used.
uuid path string true Unique Configuration ID Value
setVariableName path string true Variable name of the Set defined in admin for which data is requested
page query number true Page number of results to return
limit query number true Size of the paged data results
sort query string true Sort field and order of the results, specify property and order{asc

Example responses

200 Response

{
  "content": [
    {
      "index": 0,
      "fields": [
        {
          "value": "string",
          "dataType": "string",
          "visibilityState": "string",
          "editable": "string",
          "variableName": "string",
          "optionSet": {
            "options": [
              {
                "label": "string",
                "state": "string",
                "value": "string",
                "imageUrl": "string",
                "orderNumber": 0
              }
            ]
          }
        }
      ]
    }
  ],
  "pageable": {
    "sort": {
      "empty": true,
      "sorted": true,
      "unsorted": true
    },
    "offset": 0,
    "pageNumber": 0,
    "pageSize": 0,
    "paged": true,
    "unpaged": true
  },
  "totalPages": 0,
  "totalElements": 0,
  "last": true,
  "size": 0,
  "number": 0,
  "numberOfElements": 0,
  "first": true,
  "empty": true,
  "total": 0
}

Responses

Status Meaning Description Schema
200 OK Paginated details for a given Set variable name SetsResponse
400 Bad Request Bad request. See errorMessage for additional details. ErrorResponse
401 Unauthorized Authorization information is missing or invalid. None
403 Forbidden Credentials are valid but insufficient privileges to perform the action on the resource. None
404 Not Found Resource was not found. See errorMessage for additional details. ErrorResponse
5XX Unknown Unexpected Server Error. ErrorResponse

Configuration (V2)

Creating new configurations, reconfiguring existing configurations, making updates to a configuration and saving changes. Can be used for headless or custom UI implementations.

Important Versioning Information

Blueprints that use Product Picker Fields must use the application/vnd.logik.cfg-v2+json Content-Type when making requests.

The Runtime APIs are versioned using different Content-Types. There are 2 Content-Type formats, application/json for v1 and application/vnd.logik.cfg-v2+json for v2.

The Accept Header should match the Content-Type being used, either:

Start Configuration (V2)

Code samples

import requests
headers = {
  'Content-Type': 'application/vnd.logik.cfg-v2+json',
  'Accept': 'application/vnd.logik.cfg-v2+json',
  'Origin': 'string',
  'Authorization': 'Bearer {access-token}'
}

r = requests.post('https://{tenant}.{sector}.logik.io/api', headers = headers)

print(r.json())

const inputBody = '{
  "sessionContext": {
    "stateful": true
  },
  "productId": "01t6e000009bOeLAAU"
}';
const headers = {
  'Content-Type':'application/vnd.logik.cfg-v2+json',
  'Accept':'application/vnd.logik.cfg-v2+json',
  'Origin':'string',
  'Authorization':'Bearer {access-token}'
};

fetch('https://{tenant}.{sector}.logik.io/api',
{
  method: 'POST',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

const fetch = require('node-fetch');
const inputBody = {
  "sessionContext": {
    "stateful": true
  },
  "productId": "01t6e000009bOeLAAU"
};
const headers = {
  'Content-Type':'application/vnd.logik.cfg-v2+json',
  'Accept':'application/vnd.logik.cfg-v2+json',
  'Origin':'string',
  'Authorization':'Bearer {access-token}'
};

fetch('https://{tenant}.{sector}.logik.io/api',
{
  method: 'POST',
  body: JSON.stringify(inputBody),
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

# You can also use wget
curl -X POST https://{tenant}.{sector}.logik.io/api \
  -H 'Content-Type: application/vnd.logik.cfg-v2+json' \
  -H 'Accept: application/vnd.logik.cfg-v2+json' \
  -H 'Origin: string' \
  -H 'Authorization: Bearer {access-token}'

POST https://{tenant}.{sector}.logik.io/api HTTP/1.1

Content-Type: application/vnd.logik.cfg-v2+json
Accept: application/vnd.logik.cfg-v2+json
Origin: string

URL obj = new URL("https://{tenant}.{sector}.logik.io/api");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/vnd.logik.cfg-v2+json',
  'Accept' => 'application/vnd.logik.cfg-v2+json',
  'Origin' => 'string',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.post 'https://{tenant}.{sector}.logik.io/api',
  params: {
  }, headers: headers

p JSON.parse(result)

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/vnd.logik.cfg-v2+json"},
        "Accept": []string{"application/vnd.logik.cfg-v2+json"},
        "Origin": []string{"string"},
        "Authorization": []string{"Bearer {access-token}"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "https://{tenant}.{sector}.logik.io/api", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

POST /api

Initialize a new Configuration or reconfigure an existing Configuration if passing an existing Logik Configuration UUID in the Request Body.

Body parameter

{
  "sessionContext": {
    "stateful": true
  },
  "productId": "01t6e000009bOeLAAU"
}

Parameters

Name In Type Required Description
Origin header string true Request Origin, needs to be one of the allowed origins for the Runtime Token being used.
body body InitConfigV2 true Initialization Payload

Example responses

200 Response

{
  "fields": [
    {
      "userEdited": false,
      "dataType": "array",
      "visibilityState": "visible",
      "editable": "true",
      "variableName": "ramPicker",
      "uniqueName": "ramPicker",
      "value": [],
      "optionSet": {
        "options": [
          {
            "label": "8GB RAM Module",
            "state": "visible",
            "value": "RAM8GB",
            "imageUrl": "https://i.imgur.com/WkXo98I.png",
            "orderNumber": 10
          },
          {
            "label": "16GB RAM Module",
            "state": "visible",
            "value": "RAM16GB",
            "imageUrl": "https://i.imgur.com/WkXo98I.png",
            "orderNumber": 20
          },
          {
            "label": "32GB RAM Module",
            "state": "visible",
            "value": "RAM32GB",
            "imageUrl": "https://i.imgur.com/WkXo98I.png",
            "orderNumber": 30
          }
        ]
      },
      "selectAll": "NONE",
      "rows": {
        "content": [
          {
            "index": 0,
            "fields": [
              {
                "userEdited": false,
                "dataType": "text",
                "visibilityState": "visible",
                "editable": "false",
                "variableName": "ramPicker.value",
                "uniqueName": "ramPicker-1000-ramPicker.value",
                "value": "RAM8GB",
                "set": "ramPicker",
                "index": 0
              },
              {
                "userEdited": false,
                "dataType": "text",
                "visibilityState": "visible",
                "editable": "true",
                "variableName": "ramPicker.interface",
                "uniqueName": "ramPicker-1000-ramPicker.interface",
                "value": "DDR4",
                "optionSet": {
                  "selectedOptions": [
                    {
                      "label": "DDR4",
                      "state": "visible",
                      "value": "DDR4",
                      "imageUrl": null,
                      "orderNumber": 10
                    }
                  ],
                  "options": [
                    {
                      "label": "DDR4",
                      "state": "visible",
                      "value": "DDR4",
                      "imageUrl": null,
                      "orderNumber": 10
                    },
                    {
                      "label": "DDR5",
                      "state": "visible",
                      "value": "DDR5",
                      "imageUrl": null,
                      "orderNumber": 20
                    }
                  ]
                },
                "set": "ramPicker",
                "index": 0
              },
              {
                "userEdited": false,
                "dataType": "boolean",
                "visibilityState": "visible",
                "editable": "true",
                "variableName": "ramPicker.select",
                "uniqueName": "ramPicker-1000-ramPicker.select",
                "value": false,
                "optionSet": {
                  "options": [
                    {
                      "label": "true",
                      "state": "visible",
                      "value": "true",
                      "imageUrl": null,
                      "orderNumber": null
                    },
                    {
                      "label": "false",
                      "state": "visible",
                      "value": "false",
                      "imageUrl": null,
                      "orderNumber": null
                    }
                  ]
                },
                "set": "ramPicker",
                "index": 0
              },
              {
                "userEdited": false,
                "dataType": "number",
                "visibilityState": "visible",
                "editable": "true",
                "variableName": "ramPicker.quantity",
                "uniqueName": "ramPicker-1000-ramPicker.quantity",
                "value": 0,
                "step": 1,
                "set": "ramPicker",
                "index": 0
              },
              {
                "userEdited": false,
                "dataType": "text",
                "visibilityState": "visible",
                "editable": "true",
                "variableName": "ramPicker.imageUrl",
                "uniqueName": "ramPicker-1000-ramPicker.imageUrl",
                "value": "",
                "set": "ramPicker",
                "index": 0
              },
              {
                "userEdited": false,
                "dataType": "number",
                "visibilityState": "visible",
                "editable": "false",
                "variableName": "ramPicker.storage",
                "uniqueName": "ramPicker-1000-ramPicker.storage",
                "value": 0,
                "set": "ramPicker",
                "index": 0
              }
            ],
            "label": "8GB RAM Module",
            "state": "visible",
            "value": "RAM8GB",
            "imageUrl": "https://i.imgur.com/WkXo98I.png",
            "orderNumber": 10,
            "productDetails": {
              "price": 50,
              "name": "RAM 8GB"
            }
          },
          {
            "index": 1,
            "fields": [
              {
                "userEdited": false,
                "dataType": "text",
                "visibilityState": "visible",
                "editable": "false",
                "variableName": "ramPicker.value",
                "uniqueName": "ramPicker-1001-ramPicker.value",
                "value": "RAM16GB",
                "set": "ramPicker",
                "index": 1
              },
              {
                "userEdited": false,
                "dataType": "text",
                "visibilityState": "visible",
                "editable": "true",
                "variableName": "ramPicker.interface",
                "uniqueName": "ramPicker-1001-ramPicker.interface",
                "value": "DDR4",
                "optionSet": {
                  "selectedOptions": [
                    {
                      "label": "DDR4",
                      "state": "visible",
                      "value": "DDR4",
                      "imageUrl": null,
                      "orderNumber": 10
                    }
                  ],
                  "options": [
                    {
                      "label": "DDR4",
                      "state": "visible",
                      "value": "DDR4",
                      "imageUrl": null,
                      "orderNumber": 10
                    },
                    {
                      "label": "DDR5",
                      "state": "visible",
                      "value": "DDR5",
                      "imageUrl": null,
                      "orderNumber": 20
                    }
                  ]
                },
                "set": "ramPicker",
                "index": 1
              },
              {
                "userEdited": false,
                "dataType": "boolean",
                "visibilityState": "visible",
                "editable": "true",
                "variableName": "ramPicker.select",
                "uniqueName": "ramPicker-1001-ramPicker.select",
                "value": false,
                "optionSet": {
                  "options": [
                    {
                      "label": "true",
                      "state": "visible",
                      "value": "true",
                      "imageUrl": null,
                      "orderNumber": null
                    },
                    {
                      "label": "false",
                      "state": "visible",
                      "value": "false",
                      "imageUrl": null,
                      "orderNumber": null
                    }
                  ]
                },
                "set": "ramPicker",
                "index": 1
              },
              {
                "userEdited": false,
                "dataType": "number",
                "visibilityState": "visible",
                "editable": "true",
                "variableName": "ramPicker.quantity",
                "uniqueName": "ramPicker-1001-ramPicker.quantity",
                "value": 0,
                "step": 1,
                "set": "ramPicker",
                "index": 1
              },
              {
                "userEdited": false,
                "dataType": "text",
                "visibilityState": "visible",
                "editable": "true",
                "variableName": "ramPicker.imageUrl",
                "uniqueName": "ramPicker-1001-ramPicker.imageUrl",
                "value": "",
                "set": "ramPicker",
                "index": 1
              },
              {
                "userEdited": false,
                "dataType": "number",
                "visibilityState": "visible",
                "editable": "false",
                "variableName": "ramPicker.storage",
                "uniqueName": "ramPicker-1001-ramPicker.storage",
                "value": 0,
                "set": "ramPicker",
                "index": 1
              }
            ],
            "label": "16GB RAM Module",
            "state": "visible",
            "value": "RAM16GB",
            "imageUrl": "https://i.imgur.com/WkXo98I.png",
            "orderNumber": 20,
            "productDetails": {
              "price": 125,
              "name": "RAM 16GB"
            }
          },
          {
            "index": 2,
            "fields": [
              {
                "userEdited": false,
                "dataType": "text",
                "visibilityState": "visible",
                "editable": "false",
                "variableName": "ramPicker.value",
                "uniqueName": "ramPicker-1002-ramPicker.value",
                "value": "RAM32GB",
                "set": "ramPicker",
                "index": 2
              },
              {
                "userEdited": false,
                "dataType": "text",
                "visibilityState": "visible",
                "editable": "true",
                "variableName": "ramPicker.interface",
                "uniqueName": "ramPicker-1002-ramPicker.interface",
                "value": "DDR5",
                "optionSet": {
                  "selectedOptions": [
                    {
                      "label": "DDR5",
                      "state": "visible",
                      "value": "DDR5",
                      "imageUrl": null,
                      "orderNumber": 20
                    }
                  ],
                  "options": [
                    {
                      "label": "DDR4",
                      "state": "visible",
                      "value": "DDR4",
                      "imageUrl": null,
                      "orderNumber": 10
                    },
                    {
                      "label": "DDR5",
                      "state": "visible",
                      "value": "DDR5",
                      "imageUrl": null,
                      "orderNumber": 20
                    }
                  ]
                },
                "set": "ramPicker",
                "index": 2
              },
              {
                "userEdited": false,
                "dataType": "boolean",
                "visibilityState": "visible",
                "editable": "true",
                "variableName": "ramPicker.select",
                "uniqueName": "ramPicker-1002-ramPicker.select",
                "value": false,
                "optionSet": {
                  "options": [
                    {
                      "label": "true",
                      "state": "visible",
                      "value": "true",
                      "imageUrl": null,
                      "orderNumber": null
                    },
                    {
                      "label": "false",
                      "state": "visible",
                      "value": "false",
                      "imageUrl": null,
                      "orderNumber": null
                    }
                  ]
                },
                "set": "ramPicker",
                "index": 2
              },
              {
                "userEdited": false,
                "dataType": "number",
                "visibilityState": "visible",
                "editable": "true",
                "variableName": "ramPicker.quantity",
                "uniqueName": "ramPicker-1002-ramPicker.quantity",
                "value": 0,
                "step": 1,
                "set": "ramPicker",
                "index": 2
              },
              {
                "userEdited": false,
                "dataType": "text",
                "visibilityState": "visible",
                "editable": "true",
                "variableName": "ramPicker.imageUrl",
                "uniqueName": "ramPicker-1002-ramPicker.imageUrl",
                "value": "",
                "set": "ramPicker",
                "index": 2
              },
              {
                "userEdited": false,
                "dataType": "number",
                "visibilityState": "visible",
                "editable": "false",
                "variableName": "ramPicker.storage",
                "uniqueName": "ramPicker-1002-ramPicker.storage",
                "value": 0,
                "set": "ramPicker",
                "index": 2
              }
            ],
            "label": "32GB RAM Module",
            "state": "visible",
            "value": "RAM32GB",
            "imageUrl": "https://i.imgur.com/WkXo98I.png",
            "orderNumber": 30,
            "productDetails": {
              "price": 175,
              "name": "RAM 32GB"
            }
          }
        ],
        "pageable": "INSTANCE",
        "totalPages": 1,
        "totalElements": 3,
        "last": true,
        "size": 3,
        "number": 0,
        "sort": {
          "empty": true,
          "sorted": false,
          "unsorted": true
        },
        "numberOfElements": 3,
        "first": true,
        "empty": false
      }
    },
    {
      "userEdited": false,
      "dataType": "array",
      "visibilityState": "visible",
      "editable": "true",
      "variableName": "drivePicker",
      "uniqueName": "drivePicker",
      "value": [],
      "optionSet": {
        "options": [
          {
            "label": "SSD128",
            "state": "visible",
            "value": "SSD128",
            "imageUrl": null,
            "orderNumber": 10
          },
          {
            "label": "SSD256",
            "state": "visible",
            "value": "SSD256",
            "imageUrl": null,
            "orderNumber": 20
          },
          {
            "label": "SSD512",
            "state": "visible",
            "value": "SSD512",
            "imageUrl": null,
            "orderNumber": 30
          }
        ]
      },
      "selectAll": "NONE",
      "rows": {
        "content": [
          {
            "index": 0,
            "fields": [
              {
                "userEdited": false,
                "dataType": "text",
                "visibilityState": "visible",
                "editable": "false",
                "variableName": "drivePicker.value",
                "uniqueName": "drivePicker-1000-drivePicker.value",
                "value": "SSD128",
                "set": "drivePicker",
                "index": 0
              },
              {
                "userEdited": false,
                "dataType": "boolean",
                "visibilityState": "visible",
                "editable": "true",
                "variableName": "drivePicker.select",
                "uniqueName": "drivePicker-1000-drivePicker.select",
                "value": false,
                "optionSet": {
                  "options": [
                    {
                      "label": "true",
                      "state": "visible",
                      "value": "true",
                      "imageUrl": null,
                      "orderNumber": null
                    },
                    {
                      "label": "false",
                      "state": "visible",
                      "value": "false",
                      "imageUrl": null,
                      "orderNumber": null
                    }
                  ]
                },
                "set": "drivePicker",
                "index": 0
              },
              {
                "userEdited": false,
                "dataType": "number",
                "visibilityState": "visible",
                "editable": "true",
                "variableName": "drivePicker.quantity",
                "uniqueName": "drivePicker-1000-drivePicker.quantity",
                "value": 0,
                "set": "drivePicker",
                "index": 0
              },
              {
                "userEdited": false,
                "dataType": "text",
                "visibilityState": "visible",
                "editable": "true",
                "variableName": "drivePicker.interface",
                "uniqueName": "drivePicker-1000-drivePicker.interface",
                "value": "NVMe",
                "optionSet": {
                  "selectedOptions": [
                    {
                      "label": "NVMe",
                      "state": "visible",
                      "value": "NVMe",
                      "imageUrl": null,
                      "orderNumber": 10
                    }
                  ],
                  "options": [
                    {
                      "label": "NVMe",
                      "state": "visible",
                      "value": "NVMe",
                      "imageUrl": null,
                      "orderNumber": 10
                    },
                    {
                      "label": "SSD",
                      "state": "visible",
                      "value": "SSD",
                      "imageUrl": null,
                      "orderNumber": 20
                    }
                  ]
                },
                "set": "drivePicker",
                "index": 0
              }
            ],
            "label": "SSD128",
            "state": "visible",
            "value": "SSD128",
            "imageUrl": null,
            "orderNumber": 10,
            "productDetails": {
              "price": 89,
              "name": "NVMe Drive 128GB",
              "description": "Lightning fast Storage for all your computing needs"
            }
          },
          {
            "index": 1,
            "fields": [
              {
                "userEdited": false,
                "dataType": "text",
                "visibilityState": "visible",
                "editable": "false",
                "variableName": "drivePicker.value",
                "uniqueName": "drivePicker-1001-drivePicker.value",
                "value": "SSD256",
                "set": "drivePicker",
                "index": 1
              },
              {
                "userEdited": false,
                "dataType": "boolean",
                "visibilityState": "visible",
                "editable": "true",
                "variableName": "drivePicker.select",
                "uniqueName": "drivePicker-1001-drivePicker.select",
                "value": false,
                "optionSet": {
                  "options": [
                    {
                      "label": "true",
                      "state": "visible",
                      "value": "true",
                      "imageUrl": null,
                      "orderNumber": null
                    },
                    {
                      "label": "false",
                      "state": "visible",
                      "value": "false",
                      "imageUrl": null,
                      "orderNumber": null
                    }
                  ]
                },
                "set": "drivePicker",
                "index": 1
              },
              {
                "userEdited": false,
                "dataType": "number",
                "visibilityState": "visible",
                "editable": "true",
                "variableName": "drivePicker.quantity",
                "uniqueName": "drivePicker-1001-drivePicker.quantity",
                "value": 0,
                "set": "drivePicker",
                "index": 1
              },
              {
                "userEdited": false,
                "dataType": "text",
                "visibilityState": "visible",
                "editable": "true",
                "variableName": "drivePicker.interface",
                "uniqueName": "drivePicker-1001-drivePicker.interface",
                "value": "SSD",
                "optionSet": {
                  "selectedOptions": [
                    {
                      "label": "SSD",
                      "state": "visible",
                      "value": "SSD",
                      "imageUrl": null,
                      "orderNumber": 20
                    }
                  ],
                  "options": [
                    {
                      "label": "NVMe",
                      "state": "visible",
                      "value": "NVMe",
                      "imageUrl": null,
                      "orderNumber": 10
                    },
                    {
                      "label": "SSD",
                      "state": "visible",
                      "value": "SSD",
                      "imageUrl": null,
                      "orderNumber": 20
                    }
                  ]
                },
                "set": "drivePicker",
                "index": 1
              }
            ],
            "label": "SSD256",
            "state": "visible",
            "value": "SSD256",
            "imageUrl": null,
            "orderNumber": 20,
            "productDetails": {
              "price": 75,
              "name": "SSD 256GB",
              "description": "A balance of speed and capacity"
            }
          },
          {
            "index": 2,
            "fields": [
              {
                "userEdited": false,
                "dataType": "text",
                "visibilityState": "visible",
                "editable": "false",
                "variableName": "drivePicker.value",
                "uniqueName": "drivePicker-1002-drivePicker.value",
                "value": "SSD512",
                "set": "drivePicker",
                "index": 2
              },
              {
                "userEdited": false,
                "dataType": "boolean",
                "visibilityState": "visible",
                "editable": "true",
                "variableName": "drivePicker.select",
                "uniqueName": "drivePicker-1002-drivePicker.select",
                "value": false,
                "optionSet": {
                  "options": [
                    {
                      "label": "true",
                      "state": "visible",
                      "value": "true",
                      "imageUrl": null,
                      "orderNumber": null
                    },
                    {
                      "label": "false",
                      "state": "visible",
                      "value": "false",
                      "imageUrl": null,
                      "orderNumber": null
                    }
                  ]
                },
                "set": "drivePicker",
                "index": 2
              },
              {
                "userEdited": false,
                "dataType": "number",
                "visibilityState": "visible",
                "editable": "true",
                "variableName": "drivePicker.quantity",
                "uniqueName": "drivePicker-1002-drivePicker.quantity",
                "value": 0,
                "set": "drivePicker",
                "index": 2
              },
              {
                "userEdited": false,
                "dataType": "text",
                "visibilityState": "visible",
                "editable": "true",
                "variableName": "drivePicker.interface",
                "uniqueName": "drivePicker-1002-drivePicker.interface",
                "value": "SSD",
                "optionSet": {
                  "selectedOptions": [
                    {
                      "label": "SSD",
                      "state": "visible",
                      "value": "SSD",
                      "imageUrl": null,
                      "orderNumber": 20
                    }
                  ],
                  "options": [
                    {
                      "label": "NVMe",
                      "state": "visible",
                      "value": "NVMe",
                      "imageUrl": null,
                      "orderNumber": 10
                    },
                    {
                      "label": "SSD",
                      "state": "visible",
                      "value": "SSD",
                      "imageUrl": null,
                      "orderNumber": 20
                    }
                  ]
                },
                "set": "drivePicker",
                "index": 2
              }
            ],
            "label": "SSD512",
            "state": "visible",
            "value": "SSD512",
            "imageUrl": null,
            "orderNumber": 30,
            "productDetails": {
              "price": 150,
              "name": "SSD 512GB",
              "description": "Bulk SSD Storage for large files"
            }
          }
        ],
        "pageable": "INSTANCE",
        "totalPages": 1,
        "totalElements": 3,
        "last": true,
        "size": 3,
        "number": 0,
        "sort": {
          "empty": true,
          "sorted": false,
          "unsorted": true
        },
        "numberOfElements": 3,
        "first": true,
        "empty": false
      }
    },
    {
      "userEdited": false,
      "dataType": "text",
      "visibilityState": "visible",
      "editable": "true",
      "variableName": "cpuPicker",
      "uniqueName": "cpuPicker",
      "value": "",
      "optionSet": {
        "options": [
          {
            "label": "Dual Core Processor",
            "state": "visible",
            "value": "CPU16GHZI5",
            "imageUrl": "https://i.imgur.com/ftft5Nx.png",
            "orderNumber": 10
          },
          {
            "label": "Quad Core Processor",
            "state": "visible",
            "value": "CPU22GHZI7",
            "imageUrl": "https://i.imgur.com/ftft5Nx.png",
            "orderNumber": 20
          },
          {
            "label": "6-Core Processor",
            "state": "visible",
            "value": "CPU28GHZI7",
            "imageUrl": "https://i.imgur.com/0xQH6mZ.png",
            "orderNumber": 30
          },
          {
            "label": "8-Core Processor",
            "state": "visible",
            "value": "CPU7320GHZRYZ3",
            "imageUrl": "https://i.imgur.com/0xQH6mZ.png",
            "orderNumber": 40
          },
          {
            "label": "12-Core Processor",
            "state": "visible",
            "value": "CPU7550GHZRYZ5",
            "imageUrl": "https://i.imgur.com/LaQVZma.png",
            "orderNumber": 50
          }
        ]
      },
      "rows": {
        "content": [
          {
            "index": 0,
            "fields": [
              {
                "userEdited": false,
                "dataType": "text",
                "visibilityState": "visible",
                "editable": "false",
                "variableName": "cpuPicker.value",
                "uniqueName": "cpuPicker-1000-cpuPicker.value",
                "value": "CPU16GHZI5",
                "set": "cpuPicker",
                "index": 0
              },
              {
                "userEdited": false,
                "dataType": "boolean",
                "visibilityState": "visible",
                "editable": "true",
                "variableName": "cpuPicker.select",
                "uniqueName": "cpuPicker-1000-cpuPicker.select",
                "value": false,
                "optionSet": {
                  "options": [
                    {
                      "label": "true",
                      "state": "visible",
                      "value": "true",
                      "imageUrl": null,
                      "orderNumber": null
                    },
                    {
                      "label": "false",
                      "state": "visible",
                      "value": "false",
                      "imageUrl": null,
                      "orderNumber": null
                    }
                  ]
                },
                "set": "cpuPicker",
                "index": 0
              },
              {
                "userEdited": false,
                "dataType": "number",
                "visibilityState": "visible",
                "editable": "true",
                "variableName": "cpuPicker.quantity",
                "uniqueName": "cpuPicker-1000-cpuPicker.quantity",
                "value": 0,
                "step": 1,
                "set": "cpuPicker",
                "index": 0
              },
              {
                "userEdited": false,
                "dataType": "text",
                "visibilityState": "visible",
                "editable": "true",
                "variableName": "cpuPicker.imageUrl",
                "uniqueName": "cpuPicker-1000-cpuPicker.imageUrl",
                "value": "",
                "set": "cpuPicker",
                "index": 0
              },
              {
                "userEdited": false,
                "dataType": "text",
                "visibilityState": "visible",
                "editable": "true",
                "variableName": "cpuPicker.description",
                "uniqueName": "cpuPicker-1000-cpuPicker.description",
                "value": "Processor for light computing",
                "set": "cpuPicker",
                "index": 0
              },
              {
                "userEdited": false,
                "dataType": "number",
                "visibilityState": "visible",
                "editable": "true",
                "variableName": "cpuPicker.price",
                "uniqueName": "cpuPicker-1000-cpuPicker.price",
                "value": 100,
                "set": "cpuPicker",
                "index": 0
              },
              {
                "userEdited": false,
                "dataType": "number",
                "visibilityState": "visible",
                "editable": "true",
                "variableName": "cpuPicker.watts",
                "uniqueName": "cpuPicker-1000-cpuPicker.watts",
                "value": 75,
                "set": "cpuPicker",
                "index": 0
              }
            ],
            "label": "Dual Core Processor",
            "state": "visible",
            "value": "CPU16GHZI5",
            "imageUrl": "https://i.imgur.com/ftft5Nx.png",
            "orderNumber": 10,
            "productDetails": {
              "name": "CPU 1.6GHz i5"
            }
          },
          {
            "index": 1,
            "fields": [
              {
                "userEdited": false,
                "dataType": "text",
                "visibilityState": "visible",
                "editable": "false",
                "variableName": "cpuPicker.value",
                "uniqueName": "cpuPicker-1001-cpuPicker.value",
                "value": "CPU22GHZI7",
                "set": "cpuPicker",
                "index": 1
              },
              {
                "userEdited": false,
                "dataType": "boolean",
                "visibilityState": "visible",
                "editable": "true",
                "variableName": "cpuPicker.select",
                "uniqueName": "cpuPicker-1001-cpuPicker.select",
                "value": false,
                "optionSet": {
                  "options": [
                    {
                      "label": "true",
                      "state": "visible",
                      "value": "true",
                      "imageUrl": null,
                      "orderNumber": null
                    },
                    {
                      "label": "false",
                      "state": "visible",
                      "value": "false",
                      "imageUrl": null,
                      "orderNumber": null
                    }
                  ]
                },
                "set": "cpuPicker",
                "index": 1
              },
              {
                "userEdited": false,
                "dataType": "number",
                "visibilityState": "visible",
                "editable": "true",
                "variableName": "cpuPicker.quantity",
                "uniqueName": "cpuPicker-1001-cpuPicker.quantity",
                "value": 0,
                "step": 1,
                "set": "cpuPicker",
                "index": 1
              },
              {
                "userEdited": false,
                "dataType": "text",
                "visibilityState": "visible",
                "editable": "true",
                "variableName": "cpuPicker.imageUrl",
                "uniqueName": "cpuPicker-1001-cpuPicker.imageUrl",
                "value": "",
                "set": "cpuPicker",
                "index": 1
              },
              {
                "userEdited": false,
                "dataType": "text",
                "visibilityState": "visible",
                "editable": "true",
                "variableName": "cpuPicker.description",
                "uniqueName": "cpuPicker-1001-cpuPicker.description",
                "value": "Processor for light computing and office work",
                "set": "cpuPicker",
                "index": 1
              },
              {
                "userEdited": false,
                "dataType": "number",
                "visibilityState": "visible",
                "editable": "true",
                "variableName": "cpuPicker.price",
                "uniqueName": "cpuPicker-1001-cpuPicker.price",
                "value": 125,
                "set": "cpuPicker",
                "index": 1
              },
              {
                "userEdited": false,
                "dataType": "number",
                "visibilityState": "visible",
                "editable": "true",
                "variableName": "cpuPicker.watts",
                "uniqueName": "cpuPicker-1001-cpuPicker.watts",
                "value": 100,
                "set": "cpuPicker",
                "index": 1
              }
            ],
            "label": "Quad Core Processor",
            "state": "visible",
            "value": "CPU22GHZI7",
            "imageUrl": "https://i.imgur.com/ftft5Nx.png",
            "orderNumber": 20,
            "productDetails": {
              "name": "CPU 2.2GHz i7"
            }
          },
          {
            "index": 2,
            "fields": [
              {
                "userEdited": false,
                "dataType": "text",
                "visibilityState": "visible",
                "editable": "false",
                "variableName": "cpuPicker.value",
                "uniqueName": "cpuPicker-1002-cpuPicker.value",
                "value": "CPU28GHZI7",
                "set": "cpuPicker",
                "index": 2
              },
              {
                "userEdited": false,
                "dataType": "boolean",
                "visibilityState": "visible",
                "editable": "true",
                "variableName": "cpuPicker.select",
                "uniqueName": "cpuPicker-1002-cpuPicker.select",
                "value": false,
                "optionSet": {
                  "options": [
                    {
                      "label": "true",
                      "state": "visible",
                      "value": "true",
                      "imageUrl": null,
                      "orderNumber": null
                    },
                    {
                      "label": "false",
                      "state": "visible",
                      "value": "false",
                      "imageUrl": null,
                      "orderNumber": null
                    }
                  ]
                },
                "set": "cpuPicker",
                "index": 2
              },
              {
                "userEdited": false,
                "dataType": "number",
                "visibilityState": "visible",
                "editable": "true",
                "variableName": "cpuPicker.quantity",
                "uniqueName": "cpuPicker-1002-cpuPicker.quantity",
                "value": 0,
                "step": 1,
                "set": "cpuPicker",
                "index": 2
              },
              {
                "userEdited": false,
                "dataType": "text",
                "visibilityState": "visible",
                "editable": "true",
                "variableName": "cpuPicker.imageUrl",
                "uniqueName": "cpuPicker-1002-cpuPicker.imageUrl",
                "value": "",
                "set": "cpuPicker",
                "index": 2
              },
              {
                "userEdited": false,
                "dataType": "text",
                "visibilityState": "visible",
                "editable": "true",
                "variableName": "cpuPicker.description",
                "uniqueName": "cpuPicker-1002-cpuPicker.description",
                "value": "Perfect for moderate computing tasks",
                "set": "cpuPicker",
                "index": 2
              },
              {
                "userEdited": false,
                "dataType": "number",
                "visibilityState": "visible",
                "editable": "true",
                "variableName": "cpuPicker.price",
                "uniqueName": "cpuPicker-1002-cpuPicker.price",
                "value": 175,
                "set": "cpuPicker",
                "index": 2
              },
              {
                "userEdited": false,
                "dataType": "number",
                "visibilityState": "visible",
                "editable": "true",
                "variableName": "cpuPicker.watts",
                "uniqueName": "cpuPicker-1002-cpuPicker.watts",
                "value": 125,
                "set": "cpuPicker",
                "index": 2
              }
            ],
            "label": "6-Core Processor",
            "state": "visible",
            "value": "CPU28GHZI7",
            "imageUrl": "https://i.imgur.com/0xQH6mZ.png",
            "orderNumber": 30,
            "productDetails": {
              "name": "CPU 2.8GHz i7"
            }
          },
          {
            "index": 3,
            "fields": [
              {
                "userEdited": false,
                "dataType": "text",
                "visibilityState": "visible",
                "editable": "false",
                "variableName": "cpuPicker.value",
                "uniqueName": "cpuPicker-1003-cpuPicker.value",
                "value": "CPU7320GHZRYZ3",
                "set": "cpuPicker",
                "index": 3
              },
              {
                "userEdited": false,
                "dataType": "boolean",
                "visibilityState": "visible",
                "editable": "true",
                "variableName": "cpuPicker.select",
                "uniqueName": "cpuPicker-1003-cpuPicker.select",
                "value": false,
                "optionSet": {
                  "options": [
                    {
                      "label": "true",
                      "state": "visible",
                      "value": "true",
                      "imageUrl": null,
                      "orderNumber": null
                    },
                    {
                      "label": "false",
                      "state": "visible",
                      "value": "false",
                      "imageUrl": null,
                      "orderNumber": null
                    }
                  ]
                },
                "set": "cpuPicker",
                "index": 3
              },
              {
                "userEdited": false,
                "dataType": "number",
                "visibilityState": "visible",
                "editable": "true",
                "variableName": "cpuPicker.quantity",
                "uniqueName": "cpuPicker-1003-cpuPicker.quantity",
                "value": 0,
                "step": 1,
                "set": "cpuPicker",
                "index": 3
              },
              {
                "userEdited": false,
                "dataType": "text",
                "visibilityState": "visible",
                "editable": "true",
                "variableName": "cpuPicker.imageUrl",
                "uniqueName": "cpuPicker-1003-cpuPicker.imageUrl",
                "value": "",
                "set": "cpuPicker",
                "index": 3
              },
              {
                "userEdited": false,
                "dataType": "text",
                "visibilityState": "visible",
                "editable": "true",
                "variableName": "cpuPicker.description",
                "uniqueName": "cpuPicker-1003-cpuPicker.description",
                "value": "Great 3D and Video editing capabilities",
                "set": "cpuPicker",
                "index": 3
              },
              {
                "userEdited": false,
                "dataType": "number",
                "visibilityState": "visible",
                "editable": "true",
                "variableName": "cpuPicker.price",
                "uniqueName": "cpuPicker-1003-cpuPicker.price",
                "value": 225,
                "set": "cpuPicker",
                "index": 3
              },
              {
                "userEdited": false,
                "dataType": "number",
                "visibilityState": "visible",
                "editable": "true",
                "variableName": "cpuPicker.watts",
                "uniqueName": "cpuPicker-1003-cpuPicker.watts",
                "value": 150,
                "set": "cpuPicker",
                "index": 3
              }
            ],
            "label": "8-Core Processor",
            "state": "visible",
            "value": "CPU7320GHZRYZ3",
            "imageUrl": "https://i.imgur.com/0xQH6mZ.png",
            "orderNumber": 40,
            "productDetails": {
              "name": "AMD Ryzen 3 7320U"
            }
          },
          {
            "index": 4,
            "fields": [
              {
                "userEdited": false,
                "dataType": "text",
                "visibilityState": "visible",
                "editable": "false",
                "variableName": "cpuPicker.value",
                "uniqueName": "cpuPicker-1004-cpuPicker.value",
                "value": "CPU7550GHZRYZ5",
                "set": "cpuPicker",
                "index": 4
              },
              {
                "userEdited": false,
                "dataType": "boolean",
                "visibilityState": "visible",
                "editable": "true",
                "variableName": "cpuPicker.select",
                "uniqueName": "cpuPicker-1004-cpuPicker.select",
                "value": false,
                "optionSet": {
                  "options": [
                    {
                      "label": "true",
                      "state": "visible",
                      "value": "true",
                      "imageUrl": null,
                      "orderNumber": null
                    },
                    {
                      "label": "false",
                      "state": "visible",
                      "value": "false",
                      "imageUrl": null,
                      "orderNumber": null
                    }
                  ]
                },
                "set": "cpuPicker",
                "index": 4
              },
              {
                "userEdited": false,
                "dataType": "number",
                "visibilityState": "visible",
                "editable": "true",
                "variableName": "cpuPicker.quantity",
                "uniqueName": "cpuPicker-1004-cpuPicker.quantity",
                "value": 0,
                "step": 1,
                "set": "cpuPicker",
                "index": 4
              },
              {
                "userEdited": false,
                "dataType": "text",
                "visibilityState": "visible",
                "editable": "true",
                "variableName": "cpuPicker.imageUrl",
                "uniqueName": "cpuPicker-1004-cpuPicker.imageUrl",
                "value": "",
                "set": "cpuPicker",
                "index": 4
              },
              {
                "userEdited": false,
                "dataType": "text",
                "visibilityState": "visible",
                "editable": "true",
                "variableName": "cpuPicker.description",
                "uniqueName": "cpuPicker-1004-cpuPicker.description",
                "value": "Top of the line processor for AI, number crunching and cryptography",
                "set": "cpuPicker",
                "index": 4
              },
              {
                "userEdited": false,
                "dataType": "number",
                "visibilityState": "visible",
                "editable": "true",
                "variableName": "cpuPicker.price",
                "uniqueName": "cpuPicker-1004-cpuPicker.price",
                "value": 325,
                "set": "cpuPicker",
                "index": 4
              },
              {
                "userEdited": false,
                "dataType": "number",
                "visibilityState": "visible",
                "editable": "true",
                "variableName": "cpuPicker.watts",
                "uniqueName": "cpuPicker-1004-cpuPicker.watts",
                "value": 225,
                "set": "cpuPicker",
                "index": 4
              }
            ],
            "label": "12-Core Processor",
            "state": "visible",
            "value": "CPU7550GHZRYZ5",
            "imageUrl": "https://i.imgur.com/LaQVZma.png",
            "orderNumber": 50,
            "productDetails": {
              "name": "AMD Ryzen 5 7550U"
            }
          }
        ],
        "pageable": "INSTANCE",
        "totalPages": 1,
        "totalElements": 5,
        "last": true,
        "size": 5,
        "number": 0,
        "sort": {
          "empty": true,
          "sorted": false,
          "unsorted": true
        },
        "numberOfElements": 5,
        "first": true,
        "empty": false
      }
    },
    {
      "userEdited": false,
      "dataType": "set",
      "visibilityState": "visible",
      "editable": "true",
      "variableName": "delta",
      "uniqueName": "delta",
      "rows": {
        "content": [],
        "pageable": "INSTANCE",
        "totalPages": 1,
        "totalElements": 0,
        "last": true,
        "size": 0,
        "number": 0,
        "sort": {
          "empty": true,
          "sorted": false,
          "unsorted": true
        },
        "numberOfElements": 0,
        "first": true,
        "empty": true
      }
    },
    {
      "userEdited": false,
      "dataType": "number",
      "visibilityState": "visible",
      "editable": "false",
      "variableName": "ramPicker.aggregates.storage_sum",
      "uniqueName": "ramPicker.aggregates.storage_sum",
      "value": 0
    },
    {
      "userEdited": false,
      "dataType": "text",
      "visibilityState": "visible",
      "editable": "true",
      "variableName": "sys.productDescription",
      "uniqueName": "sys.productDescription",
      "value": ""
    },
    {
      "userEdited": false,
      "dataType": "text",
      "visibilityState": "visible",
      "editable": "true",
      "variableName": "sys.productUOM",
      "uniqueName": "sys.productUOM",
      "value": ""
    },
    {
      "userEdited": false,
      "dataType": "number",
      "visibilityState": "visible",
      "editable": "true",
      "variableName": "sys.productPrice",
      "uniqueName": "sys.productPrice",
      "value": 0
    },
    {
      "userEdited": false,
      "dataType": "text",
      "visibilityState": "visible",
      "editable": "true",
      "variableName": "sys.productId",
      "uniqueName": "sys.productId",
      "value": "SWC"
    },
    {
      "userEdited": false,
      "dataType": "text",
      "visibilityState": "visible",
      "editable": "true",
      "variableName": "sys.actionContext",
      "uniqueName": "sys.actionContext",
      "value": ""
    },
    {
      "userEdited": false,
      "dataType": "number",
      "visibilityState": "visible",
      "editable": "true",
      "variableName": "set.delta.size",
      "uniqueName": "set.delta.size",
      "value": []
    },
    {
      "userEdited": false,
      "dataType": "number",
      "visibilityState": "visible",
      "editable": "false",
      "variableName": "set.delta.priceSum",
      "uniqueName": "set.delta.priceSum",
      "value": 0
    },
    {
      "userEdited": false,
      "dataType": "text",
      "visibilityState": "visible",
      "editable": "true",
      "variableName": "sys.productName",
      "uniqueName": "sys.productName",
      "value": "Laptop Configurator"
    },
    {
      "userEdited": false,
      "dataType": "number",
      "visibilityState": "visible",
      "editable": "false",
      "variableName": "cpuPicker.aggregates.watts_sum",
      "uniqueName": "cpuPicker.aggregates.watts_sum",
      "value": 0
    },
    {
      "userEdited": false,
      "dataType": "number",
      "visibilityState": "visible",
      "editable": "false",
      "variableName": "ramPicker.aggregates.value_count",
      "uniqueName": "ramPicker.aggregates.value_count",
      "value": 0
    },
    {
      "userEdited": false,
      "dataType": "text",
      "visibilityState": "visible",
      "editable": "true",
      "variableName": "pleExtension",
      "uniqueName": "pleExtension",
      "value": "SSM",
      "optionSet": {
        "selectedOptions": [
          {
            "label": "Single",
            "state": "visible",
            "value": "SSM",
            "imageUrl": null,
            "orderNumber": 10
          }
        ],
        "options": [
          {
            "label": "Single",
            "state": "visible",
            "value": "SSM",
            "imageUrl": null,
            "orderNumber": 10
          },
          {
            "label": "Dual",
            "state": "visible",
            "value": "DSM",
            "imageUrl": null,
            "orderNumber": 20
          }
        ]
      }
    },
    {
      "userEdited": false,
      "dataType": "text",
      "visibilityState": "visible",
      "editable": "true",
      "variableName": "partner.quote.currencyIsoCode",
      "uniqueName": "partner.quote.currencyIsoCode",
      "value": "USD"
    },
    {
      "userEdited": false,
      "dataType": "text",
      "visibilityState": "visible",
      "editable": "true",
      "variableName": "sys.productFamily",
      "uniqueName": "sys.productFamily",
      "value": "Software"
    },
    {
      "userEdited": false,
      "dataType": "text",
      "visibilityState": "visible",
      "editable": "true",
      "variableName": "partner.quote.lineId",
      "uniqueName": "partner.quote.lineId",
      "value": ""
    },
    {
      "userEdited": false,
      "dataType": "text",
      "visibilityState": "visible",
      "editable": "true",
      "variableName": "sys.currentDate",
      "uniqueName": "sys.currentDate",
      "value": "2023-09-29"
    },
    {
      "userEdited": false,
      "dataType": "text",
      "visibilityState": "visible",
      "editable": "true",
      "variableName": "cPUType",
      "uniqueName": "cPUType",
      "value": "All",
      "optionSet": {
        "selectedOptions": [
          {
            "label": "All",
            "state": "visible",
            "value": "All",
            "imageUrl": null,
            "orderNumber": 5
          }
        ],
        "options": [
          {
            "label": "All",
            "state": "visible",
            "value": "All",
            "imageUrl": null,
            "orderNumber": 5
          },
          {
            "label": "Low",
            "state": "visible",
            "value": "Low",
            "imageUrl": null,
            "orderNumber": 7
          },
          {
            "label": "Mid",
            "state": "visible",
            "value": "Mid",
            "imageUrl": null,
            "orderNumber": 8
          },
          {
            "label": "High",
            "state": "visible",
            "value": "High",
            "imageUrl": null,
            "orderNumber": 9
          }
        ]
      }
    },
    {
      "userEdited": false,
      "dataType": "text",
      "visibilityState": "visible",
      "editable": "true",
      "variableName": "preconfigured",
      "uniqueName": "preconfigured",
      "value": "",
      "optionSet": {
        "options": [
          {
            "label": "Basic Office",
            "state": "visible",
            "value": "Basic",
            "imageUrl": null,
            "orderNumber": 10
          },
          {
            "label": "Video and 3D",
            "state": "visible",
            "value": "3D",
            "imageUrl": null,
            "orderNumber": 20
          },
          {
            "label": "Enthusiast",
            "state": "visible",
            "value": "Max",
            "imageUrl": null,
            "orderNumber": 30
          }
        ]
      }
    },
    {
      "userEdited": false,
      "dataType": "text",
      "visibilityState": "visible",
      "editable": "true",
      "variableName": "sys.productCode",
      "uniqueName": "sys.productCode",
      "value": "SWC"
    },
    {
      "userEdited": false,
      "dataType": "text",
      "visibilityState": "visible",
      "editable": "true",
      "variableName": "partner.quote.pricebookId",
      "uniqueName": "partner.quote.pricebookId",
      "value": ""
    },
    {
      "userEdited": false,
      "dataType": "text",
      "visibilityState": "visible",
      "editable": "true",
      "variableName": "partner.quote.id",
      "uniqueName": "partner.quote.id",
      "value": ""
    }
  ],
  "uuid": "ad947503-5246-461f-8603-f0124593ae1c",
  "revision": 0,
  "relatedChanges": [
    {
      "key": "drivePicker",
      "type": "PRODUCT_PICKER"
    },
    {
      "key": "ramPicker",
      "type": "PRODUCT_PICKER"
    },
    {
      "key": "cpuPicker",
      "type": "PRODUCT_PICKER"
    },
    {
      "key": "delta",
      "type": "SET"
    },
    {
      "key": "products",
      "type": "PRODUCT"
    }
  ],
  "valid": true,
  "messages": [],
  "productChange": true,
  "products": [
    {
      "id": "SSM",
      "quantity": 1,
      "bomType": "Sales",
      "price": 125,
      "uniqueIdentifier": "motherboard",
      "orderNumber": 10,
      "type": "accessory",
      "name": "Single Motherboard",
      "partnerId": "01t6e000009gRTpAAM",
      "productCode": "SSM",
      "externalId": "",
      "productFamily": "",
      "description": "",
      "uom": "",
      "extPrice": 125,
      "level": 0,
      "rollUpPrice": 125
    }
  ],
  "showValidationButton": false,
  "total": 125,
  "layouts": [
    {
      "url": "/blueprints/8/revisions/LATEST/layouts/1",
      "label": "basic",
      "variableName": "pickerGeneral_basic"
    }
  ]
}

Responses

Status Meaning Description Schema
200 OK Return the state of configuration at initalization or reconfiguration. Includes fields, messages and products. ConfigResponseV2
400 Bad Request Bad request. See errorMessage for additional details. ErrorResponse
401 Unauthorized Authorization information is missing or invalid. None
403 Forbidden Credentials are valid but insufficient privileges to perform the action on the resource. None
404 Not Found Resource was not found. See errorMessage for additional details. ErrorResponse
5XX Unknown Unexpected Server Error. ErrorResponse

Get Configuration (V2)

Code samples

import requests
headers = {
  'Accept': 'application/vnd.logik.cfg-v2+json',
  'Origin': 'string',
  'Authorization': 'Bearer {access-token}'
}

r = requests.get('https://{tenant}.{sector}.logik.io/api/{uuid}', headers = headers)

print(r.json())


const headers = {
  'Accept':'application/vnd.logik.cfg-v2+json',
  'Origin':'string',
  'Authorization':'Bearer {access-token}'
};

fetch('https://{tenant}.{sector}.logik.io/api/{uuid}',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/vnd.logik.cfg-v2+json',
  'Origin':'string',
  'Authorization':'Bearer {access-token}'
};

fetch('https://{tenant}.{sector}.logik.io/api/{uuid}',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

# You can also use wget
curl -X GET https://{tenant}.{sector}.logik.io/api/{uuid} \
  -H 'Accept: application/vnd.logik.cfg-v2+json' \
  -H 'Origin: string' \
  -H 'Authorization: Bearer {access-token}'

GET https://{tenant}.{sector}.logik.io/api/{uuid} HTTP/1.1

Accept: application/vnd.logik.cfg-v2+json
Origin: string

URL obj = new URL("https://{tenant}.{sector}.logik.io/api/{uuid}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/vnd.logik.cfg-v2+json',
  'Origin' => 'string',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.get 'https://{tenant}.{sector}.logik.io/api/{uuid}',
  params: {
  }, headers: headers

p JSON.parse(result)

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/vnd.logik.cfg-v2+json"},
        "Origin": []string{"string"},
        "Authorization": []string{"Bearer {access-token}"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "https://{tenant}.{sector}.logik.io/api/{uuid}", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

GET /api/{uuid}

Returns the Configuration state from the given Configuration UUID. This does not allow changes to made to the Configuration. To make changes, reconfigure using the POST call.

Parameters

Name In Type Required Description
Origin header string true Request Origin, needs to be one of the allowed origins for the Runtime Token being used.
uuid path string true Unique Configuration ID Value

Example responses

200 Response

{
  "fields": [
    {
      "userEdited": false,
      "dataType": "array",
      "visibilityState": "visible",
      "editable": "true",
      "variableName": "ramPicker",
      "uniqueName": "ramPicker",
      "value": [],
      "optionSet": {
        "options": [
          {
            "label": "8GB RAM Module",
            "state": "visible",
            "value": "RAM8GB",
            "imageUrl": "https://i.imgur.com/WkXo98I.png",
            "orderNumber": 10
          },
          {
            "label": "16GB RAM Module",
            "state": "visible",
            "value": "RAM16GB",
            "imageUrl": "https://i.imgur.com/WkXo98I.png",
            "orderNumber": 20
          },
          {
            "label": "32GB RAM Module",
            "state": "visible",
            "value": "RAM32GB",
            "imageUrl": "https://i.imgur.com/WkXo98I.png",
            "orderNumber": 30
          }
        ]
      },
      "selectAll": "NONE",
      "rows": {
        "content": [
          {
            "index": 0,
            "fields": [
              {
                "userEdited": false,
                "dataType": "text",
                "visibilityState": "visible",
                "editable": "false",
                "variableName": "ramPicker.value",
                "uniqueName": "ramPicker-1000-ramPicker.value",
                "value": "RAM8GB",
                "set": "ramPicker",
                "index": 0
              },
              {
                "userEdited": false,
                "dataType": "text",
                "visibilityState": "visible",
                "editable": "true",
                "variableName": "ramPicker.interface",
                "uniqueName": "ramPicker-1000-ramPicker.interface",
                "value": "DDR4",
                "optionSet": {
                  "selectedOptions": [
                    {
                      "label": "DDR4",
                      "state": "visible",
                      "value": "DDR4",
                      "imageUrl": null,
                      "orderNumber": 10
                    }
                  ],
                  "options": [
                    {
                      "label": "DDR4",
                      "state": "visible",
                      "value": "DDR4",
                      "imageUrl": null,
                      "orderNumber": 10
                    },
                    {
                      "label": "DDR5",
                      "state": "visible",
                      "value": "DDR5",
                      "imageUrl": null,
                      "orderNumber": 20
                    }
                  ]
                },
                "set": "ramPicker",
                "index": 0
              },
              {
                "userEdited": false,
                "dataType": "boolean",
                "visibilityState": "visible",
                "editable": "true",
                "variableName": "ramPicker.select",
                "uniqueName": "ramPicker-1000-ramPicker.select",
                "value": false,
                "optionSet": {
                  "options": [
                    {
                      "label": "true",
                      "state": "visible",
                      "value": "true",
                      "imageUrl": null,
                      "orderNumber": null
                    },
                    {
                      "label": "false",
                      "state": "visible",
                      "value": "false",
                      "imageUrl": null,
                      "orderNumber": null
                    }
                  ]
                },
                "set": "ramPicker",
                "index": 0
              },
              {
                "userEdited": false,
                "dataType": "number",
                "visibilityState": "visible",
                "editable": "true",
                "variableName": "ramPicker.quantity",
                "uniqueName": "ramPicker-1000-ramPicker.quantity",
                "value": 0,
                "step": 1,
                "set": "ramPicker",
                "index": 0
              },
              {
                "userEdited": false,
                "dataType": "text",
                "visibilityState": "visible",
                "editable": "true",
                "variableName": "ramPicker.imageUrl",
                "uniqueName": "ramPicker-1000-ramPicker.imageUrl",
                "value": "",
                "set": "ramPicker",
                "index": 0
              },
              {
                "userEdited": false,
                "dataType": "number",
                "visibilityState": "visible",
                "editable": "false",
                "variableName": "ramPicker.storage",
                "uniqueName": "ramPicker-1000-ramPicker.storage",
                "value": 0,
                "set": "ramPicker",
                "index": 0
              }
            ],
            "label": "8GB RAM Module",
            "state": "visible",
            "value": "RAM8GB",
            "imageUrl": "https://i.imgur.com/WkXo98I.png",
            "orderNumber": 10,
            "productDetails": {
              "price": 50,
              "name": "RAM 8GB"
            }
          },
          {
            "index": 1,
            "fields": [
              {
                "userEdited": false,
                "dataType": "text",
                "visibilityState": "visible",
                "editable": "false",
                "variableName": "ramPicker.value",
                "uniqueName": "ramPicker-1001-ramPicker.value",
                "value": "RAM16GB",
                "set": "ramPicker",
                "index": 1
              },
              {
                "userEdited": false,
                "dataType": "text",
                "visibilityState": "visible",
                "editable": "true",
                "variableName": "ramPicker.interface",
                "uniqueName": "ramPicker-1001-ramPicker.interface",
                "value": "DDR4",
                "optionSet": {
                  "selectedOptions": [
                    {
                      "label": "DDR4",
                      "state": "visible",
                      "value": "DDR4",
                      "imageUrl": null,
                      "orderNumber": 10
                    }
                  ],
                  "options": [
                    {
                      "label": "DDR4",
                      "state": "visible",
                      "value": "DDR4",
                      "imageUrl": null,
                      "orderNumber": 10
                    },
                    {
                      "label": "DDR5",
                      "state": "visible",
                      "value": "DDR5",
                      "imageUrl": null,
                      "orderNumber": 20
                    }
                  ]
                },
                "set": "ramPicker",
                "index": 1
              },
              {
                "userEdited": false,
                "dataType": "boolean",
                "visibilityState": "visible",
                "editable": "true",
                "variableName": "ramPicker.select",
                "uniqueName": "ramPicker-1001-ramPicker.select",
                "value": false,
                "optionSet": {
                  "options": [
                    {
                      "label": "true",
                      "state": "visible",
                      "value": "true",
                      "imageUrl": null,
                      "orderNumber": null
                    },
                    {
                      "label": "false",
                      "state": "visible",
                      "value": "false",
                      "imageUrl": null,
                      "orderNumber": null
                    }
                  ]
                },
                "set": "ramPicker",
                "index": 1
              },
              {
                "userEdited": false,
                "dataType": "number",
                "visibilityState": "visible",
                "editable": "true",
                "variableName": "ramPicker.quantity",
                "uniqueName": "ramPicker-1001-ramPicker.quantity",
                "value": 0,
                "step": 1,
                "set": "ramPicker",
                "index": 1
              },
              {
                "userEdited": false,
                "dataType": "text",
                "visibilityState": "visible",
                "editable": "true",
                "variableName": "ramPicker.imageUrl",
                "uniqueName": "ramPicker-1001-ramPicker.imageUrl",
                "value": "",
                "set": "ramPicker",
                "index": 1
              },
              {
                "userEdited": false,
                "dataType": "number",
                "visibilityState": "visible",
                "editable": "false",
                "variableName": "ramPicker.storage",
                "uniqueName": "ramPicker-1001-ramPicker.storage",
                "value": 0,
                "set": "ramPicker",
                "index": 1
              }
            ],
            "label": "16GB RAM Module",
            "state": "visible",
            "value": "RAM16GB",
            "imageUrl": "https://i.imgur.com/WkXo98I.png",
            "orderNumber": 20,
            "productDetails": {
              "price": 125,
              "name": "RAM 16GB"
            }
          },
          {
            "index": 2,
            "fields": [
              {
                "userEdited": false,
                "dataType": "text",
                "visibilityState": "visible",
                "editable": "false",
                "variableName": "ramPicker.value",
                "uniqueName": "ramPicker-1002-ramPicker.value",
                "value": "RAM32GB",
                "set": "ramPicker",
                "index": 2
              },
              {
                "userEdited": false,
                "dataType": "text",
                "visibilityState": "visible",
                "editable": "true",
                "variableName": "ramPicker.interface",
                "uniqueName": "ramPicker-1002-ramPicker.interface",
                "value": "DDR5",
                "optionSet": {
                  "selectedOptions": [
                    {
                      "label": "DDR5",
                      "state": "visible",
                      "value": "DDR5",
                      "imageUrl": null,
                      "orderNumber": 20
                    }
                  ],
                  "options": [
                    {
                      "label": "DDR4",
                      "state": "visible",
                      "value": "DDR4",
                      "imageUrl": null,
                      "orderNumber": 10
                    },
                    {
                      "label": "DDR5",
                      "state": "visible",
                      "value": "DDR5",
                      "imageUrl": null,
                      "orderNumber": 20
                    }
                  ]
                },
                "set": "ramPicker",
                "index": 2
              },
              {
                "userEdited": false,
                "dataType": "boolean",
                "visibilityState": "visible",
                "editable": "true",
                "variableName": "ramPicker.select",
                "uniqueName": "ramPicker-1002-ramPicker.select",
                "value": false,
                "optionSet": {
                  "options": [
                    {
                      "label": "true",
                      "state": "visible",
                      "value": "true",
                      "imageUrl": null,
                      "orderNumber": null
                    },
                    {
                      "label": "false",
                      "state": "visible",
                      "value": "false",
                      "imageUrl": null,
                      "orderNumber": null
                    }
                  ]
                },
                "set": "ramPicker",
                "index": 2
              },
              {
                "userEdited": false,
                "dataType": "number",
                "visibilityState": "visible",
                "editable": "true",
                "variableName": "ramPicker.quantity",
                "uniqueName": "ramPicker-1002-ramPicker.quantity",
                "value": 0,
                "step": 1,
                "set": "ramPicker",
                "index": 2
              },
              {
                "userEdited": false,
                "dataType": "text",
                "visibilityState": "visible",
                "editable": "true",
                "variableName": "ramPicker.imageUrl",
                "uniqueName": "ramPicker-1002-ramPicker.imageUrl",
                "value": "",
                "set": "ramPicker",
                "index": 2
              },
              {
                "userEdited": false,
                "dataType": "number",
                "visibilityState": "visible",
                "editable": "false",
                "variableName": "ramPicker.storage",
                "uniqueName": "ramPicker-1002-ramPicker.storage",
                "value": 0,
                "set": "ramPicker",
                "index": 2
              }
            ],
            "label": "32GB RAM Module",
            "state": "visible",
            "value": "RAM32GB",
            "imageUrl": "https://i.imgur.com/WkXo98I.png",
            "orderNumber": 30,
            "productDetails": {
              "price": 175,
              "name": "RAM 32GB"
            }
          }
        ],
        "pageable": "INSTANCE",
        "totalPages": 1,
        "totalElements": 3,
        "last": true,
        "size": 3,
        "number": 0,
        "sort": {
          "empty": true,
          "sorted": false,
          "unsorted": true
        },
        "numberOfElements": 3,
        "first": true,
        "empty": false
      }
    },
    {
      "userEdited": false,
      "dataType": "array",
      "visibilityState": "visible",
      "editable": "true",
      "variableName": "drivePicker",
      "uniqueName": "drivePicker",
      "value": [],
      "optionSet": {
        "options": [
          {
            "label": "SSD128",
            "state": "visible",
            "value": "SSD128",
            "imageUrl": null,
            "orderNumber": 10
          },
          {
            "label": "SSD256",
            "state": "visible",
            "value": "SSD256",
            "imageUrl": null,
            "orderNumber": 20
          },
          {
            "label": "SSD512",
            "state": "visible",
            "value": "SSD512",
            "imageUrl": null,
            "orderNumber": 30
          }
        ]
      },
      "selectAll": "NONE",
      "rows": {
        "content": [
          {
            "index": 0,
            "fields": [
              {
                "userEdited": false,
                "dataType": "text",
                "visibilityState": "visible",
                "editable": "false",
                "variableName": "drivePicker.value",
                "uniqueName": "drivePicker-1000-drivePicker.value",
                "value": "SSD128",
                "set": "drivePicker",
                "index": 0
              },
              {
                "userEdited": false,
                "dataType": "boolean",
                "visibilityState": "visible",
                "editable": "true",
                "variableName": "drivePicker.select",
                "uniqueName": "drivePicker-1000-drivePicker.select",
                "value": false,
                "optionSet": {
                  "options": [
                    {
                      "label": "true",
                      "state": "visible",
                      "value": "true",
                      "imageUrl": null,
                      "orderNumber": null
                    },
                    {
                      "label": "false",
                      "state": "visible",
                      "value": "false",
                      "imageUrl": null,
                      "orderNumber": null
                    }
                  ]
                },
                "set": "drivePicker",
                "index": 0
              },
              {
                "userEdited": false,
                "dataType": "number",
                "visibilityState": "visible",
                "editable": "true",
                "variableName": "drivePicker.quantity",
                "uniqueName": "drivePicker-1000-drivePicker.quantity",
                "value": 0,
                "set": "drivePicker",
                "index": 0
              },
              {
                "userEdited": false,
                "dataType": "text",
                "visibilityState": "visible",
                "editable": "true",
                "variableName": "drivePicker.interface",
                "uniqueName": "drivePicker-1000-drivePicker.interface",
                "value": "NVMe",
                "optionSet": {
                  "selectedOptions": [
                    {
                      "label": "NVMe",
                      "state": "visible",
                      "value": "NVMe",
                      "imageUrl": null,
                      "orderNumber": 10
                    }
                  ],
                  "options": [
                    {
                      "label": "NVMe",
                      "state": "visible",
                      "value": "NVMe",
                      "imageUrl": null,
                      "orderNumber": 10
                    },
                    {
                      "label": "SSD",
                      "state": "visible",
                      "value": "SSD",
                      "imageUrl": null,
                      "orderNumber": 20
                    }
                  ]
                },
                "set": "drivePicker",
                "index": 0
              }
            ],
            "label": "SSD128",
            "state": "visible",
            "value": "SSD128",
            "imageUrl": null,
            "orderNumber": 10,
            "productDetails": {
              "price": 89,
              "name": "NVMe Drive 128GB",
              "description": "Lightning fast Storage for all your computing needs"
            }
          },
          {
            "index": 1,
            "fields": [
              {
                "userEdited": false,
                "dataType": "text",
                "visibilityState": "visible",
                "editable": "false",
                "variableName": "drivePicker.value",
                "uniqueName": "drivePicker-1001-drivePicker.value",
                "value": "SSD256",
                "set": "drivePicker",
                "index": 1
              },
              {
                "userEdited": false,
                "dataType": "boolean",
                "visibilityState": "visible",
                "editable": "true",
                "variableName": "drivePicker.select",
                "uniqueName": "drivePicker-1001-drivePicker.select",
                "value": false,
                "optionSet": {
                  "options": [
                    {
                      "label": "true",
                      "state": "visible",
                      "value": "true",
                      "imageUrl": null,
                      "orderNumber": null
                    },
                    {
                      "label": "false",
                      "state": "visible",
                      "value": "false",
                      "imageUrl": null,
                      "orderNumber": null
                    }
                  ]
                },
                "set": "drivePicker",
                "index": 1
              },
              {
                "userEdited": false,
                "dataType": "number",
                "visibilityState": "visible",
                "editable": "true",
                "variableName": "drivePicker.quantity",
                "uniqueName": "drivePicker-1001-drivePicker.quantity",
                "value": 0,
                "set": "drivePicker",
                "index": 1
              },
              {
                "userEdited": false,
                "dataType": "text",
                "visibilityState": "visible",
                "editable": "true",
                "variableName": "drivePicker.interface",
                "uniqueName": "drivePicker-1001-drivePicker.interface",
                "value": "SSD",
                "optionSet": {
                  "selectedOptions": [
                    {
                      "label": "SSD",
                      "state": "visible",
                      "value": "SSD",
                      "imageUrl": null,
                      "orderNumber": 20
                    }
                  ],
                  "options": [
                    {
                      "label": "NVMe",
                      "state": "visible",
                      "value": "NVMe",
                      "imageUrl": null,
                      "orderNumber": 10
                    },
                    {
                      "label": "SSD",
                      "state": "visible",
                      "value": "SSD",
                      "imageUrl": null,
                      "orderNumber": 20
                    }
                  ]
                },
                "set": "drivePicker",
                "index": 1
              }
            ],
            "label": "SSD256",
            "state": "visible",
            "value": "SSD256",
            "imageUrl": null,
            "orderNumber": 20,
            "productDetails": {
              "price": 75,
              "name": "SSD 256GB",
              "description": "A balance of speed and capacity"
            }
          },
          {
            "index": 2,
            "fields": [
              {
                "userEdited": false,
                "dataType": "text",
                "visibilityState": "visible",
                "editable": "false",
                "variableName": "drivePicker.value",
                "uniqueName": "drivePicker-1002-drivePicker.value",
                "value": "SSD512",
                "set": "drivePicker",
                "index": 2
              },
              {
                "userEdited": false,
                "dataType": "boolean",
                "visibilityState": "visible",
                "editable": "true",
                "variableName": "drivePicker.select",
                "uniqueName": "drivePicker-1002-drivePicker.select",
                "value": false,
                "optionSet": {
                  "options": [
                    {
                      "label": "true",
                      "state": "visible",
                      "value": "true",
                      "imageUrl": null,
                      "orderNumber": null
                    },
                    {
                      "label": "false",
                      "state": "visible",
                      "value": "false",
                      "imageUrl": null,
                      "orderNumber": null
                    }
                  ]
                },
                "set": "drivePicker",
                "index": 2
              },
              {
                "userEdited": false,
                "dataType": "number",
                "visibilityState": "visible",
                "editable": "true",
                "variableName": "drivePicker.quantity",
                "uniqueName": "drivePicker-1002-drivePicker.quantity",
                "value": 0,
                "set": "drivePicker",
                "index": 2
              },
              {
                "userEdited": false,
                "dataType": "text",
                "visibilityState": "visible",
                "editable": "true",
                "variableName": "drivePicker.interface",
                "uniqueName": "drivePicker-1002-drivePicker.interface",
                "value": "SSD",
                "optionSet": {
                  "selectedOptions": [
                    {
                      "label": "SSD",
                      "state": "visible",
                      "value": "SSD",
                      "imageUrl": null,
                      "orderNumber": 20
                    }
                  ],
                  "options": [
                    {
                      "label": "NVMe",
                      "state": "visible",
                      "value": "NVMe",
                      "imageUrl": null,
                      "orderNumber": 10
                    },
                    {
                      "label": "SSD",
                      "state": "visible",
                      "value": "SSD",
                      "imageUrl": null,
                      "orderNumber": 20
                    }
                  ]
                },
                "set": "drivePicker",
                "index": 2
              }
            ],
            "label": "SSD512",
            "state": "visible",
            "value": "SSD512",
            "imageUrl": null,
            "orderNumber": 30,
            "productDetails": {
              "price": 150,
              "name": "SSD 512GB",
              "description": "Bulk SSD Storage for large files"
            }
          }
        ],
        "pageable": "INSTANCE",
        "totalPages": 1,
        "totalElements": 3,
        "last": true,
        "size": 3,
        "number": 0,
        "sort": {
          "empty": true,
          "sorted": false,
          "unsorted": true
        },
        "numberOfElements": 3,
        "first": true,
        "empty": false
      }
    },
    {
      "userEdited": false,
      "dataType": "text",
      "visibilityState": "visible",
      "editable": "true",
      "variableName": "cpuPicker",
      "uniqueName": "cpuPicker",
      "value": "",
      "optionSet": {
        "options": [
          {
            "label": "Dual Core Processor",
            "state": "visible",
            "value": "CPU16GHZI5",
            "imageUrl": "https://i.imgur.com/ftft5Nx.png",
            "orderNumber": 10
          },
          {
            "label": "Quad Core Processor",
            "state": "visible",
            "value": "CPU22GHZI7",
            "imageUrl": "https://i.imgur.com/ftft5Nx.png",
            "orderNumber": 20
          },
          {
            "label": "6-Core Processor",
            "state": "visible",
            "value": "CPU28GHZI7",
            "imageUrl": "https://i.imgur.com/0xQH6mZ.png",
            "orderNumber": 30
          },
          {
            "label": "8-Core Processor",
            "state": "visible",
            "value": "CPU7320GHZRYZ3",
            "imageUrl": "https://i.imgur.com/0xQH6mZ.png",
            "orderNumber": 40
          },
          {
            "label": "12-Core Processor",
            "state": "visible",
            "value": "CPU7550GHZRYZ5",
            "imageUrl": "https://i.imgur.com/LaQVZma.png",
            "orderNumber": 50
          }
        ]
      },
      "rows": {
        "content": [
          {
            "index": 0,
            "fields": [
              {
                "userEdited": false,
                "dataType": "text",
                "visibilityState": "visible",
                "editable": "false",
                "variableName": "cpuPicker.value",
                "uniqueName": "cpuPicker-1000-cpuPicker.value",
                "value": "CPU16GHZI5",
                "set": "cpuPicker",
                "index": 0
              },
              {
                "userEdited": false,
                "dataType": "boolean",
                "visibilityState": "visible",
                "editable": "true",
                "variableName": "cpuPicker.select",
                "uniqueName": "cpuPicker-1000-cpuPicker.select",
                "value": false,
                "optionSet": {
                  "options": [
                    {
                      "label": "true",
                      "state": "visible",
                      "value": "true",
                      "imageUrl": null,
                      "orderNumber": null
                    },
                    {
                      "label": "false",
                      "state": "visible",
                      "value": "false",
                      "imageUrl": null,
                      "orderNumber": null
                    }
                  ]
                },
                "set": "cpuPicker",
                "index": 0
              },
              {
                "userEdited": false,
                "dataType": "number",
                "visibilityState": "visible",
                "editable": "true",
                "variableName": "cpuPicker.quantity",
                "uniqueName": "cpuPicker-1000-cpuPicker.quantity",
                "value": 0,
                "step": 1,
                "set": "cpuPicker",
                "index": 0
              },
              {
                "userEdited": false,
                "dataType": "text",
                "visibilityState": "visible",
                "editable": "true",
                "variableName": "cpuPicker.imageUrl",
                "uniqueName": "cpuPicker-1000-cpuPicker.imageUrl",
                "value": "",
                "set": "cpuPicker",
                "index": 0
              },
              {
                "userEdited": false,
                "dataType": "text",
                "visibilityState": "visible",
                "editable": "true",
                "variableName": "cpuPicker.description",
                "uniqueName": "cpuPicker-1000-cpuPicker.description",
                "value": "Processor for light computing",
                "set": "cpuPicker",
                "index": 0
              },
              {
                "userEdited": false,
                "dataType": "number",
                "visibilityState": "visible",
                "editable": "true",
                "variableName": "cpuPicker.price",
                "uniqueName": "cpuPicker-1000-cpuPicker.price",
                "value": 100,
                "set": "cpuPicker",
                "index": 0
              },
              {
                "userEdited": false,
                "dataType": "number",
                "visibilityState": "visible",
                "editable": "true",
                "variableName": "cpuPicker.watts",
                "uniqueName": "cpuPicker-1000-cpuPicker.watts",
                "value": 75,
                "set": "cpuPicker",
                "index": 0
              }
            ],
            "label": "Dual Core Processor",
            "state": "visible",
            "value": "CPU16GHZI5",
            "imageUrl": "https://i.imgur.com/ftft5Nx.png",
            "orderNumber": 10,
            "productDetails": {
              "name": "CPU 1.6GHz i5"
            }
          },
          {
            "index": 1,
            "fields": [
              {
                "userEdited": false,
                "dataType": "text",
                "visibilityState": "visible",
                "editable": "false",
                "variableName": "cpuPicker.value",
                "uniqueName": "cpuPicker-1001-cpuPicker.value",
                "value": "CPU22GHZI7",
                "set": "cpuPicker",
                "index": 1
              },
              {
                "userEdited": false,
                "dataType": "boolean",
                "visibilityState": "visible",
                "editable": "true",
                "variableName": "cpuPicker.select",
                "uniqueName": "cpuPicker-1001-cpuPicker.select",
                "value": false,
                "optionSet": {
                  "options": [
                    {
                      "label": "true",
                      "state": "visible",
                      "value": "true",
                      "imageUrl": null,
                      "orderNumber": null
                    },
                    {
                      "label": "false",
                      "state": "visible",
                      "value": "false",
                      "imageUrl": null,
                      "orderNumber": null
                    }
                  ]
                },
                "set": "cpuPicker",
                "index": 1
              },
              {
                "userEdited": false,
                "dataType": "number",
                "visibilityState": "visible",
                "editable": "true",
                "variableName": "cpuPicker.quantity",
                "uniqueName": "cpuPicker-1001-cpuPicker.quantity",
                "value": 0,
                "step": 1,
                "set": "cpuPicker",
                "index": 1
              },
              {
                "userEdited": false,
                "dataType": "text",
                "visibilityState": "visible",
                "editable": "true",
                "variableName": "cpuPicker.imageUrl",
                "uniqueName": "cpuPicker-1001-cpuPicker.imageUrl",
                "value": "",
                "set": "cpuPicker",
                "index": 1
              },
              {
                "userEdited": false,
                "dataType": "text",
                "visibilityState": "visible",
                "editable": "true",
                "variableName": "cpuPicker.description",
                "uniqueName": "cpuPicker-1001-cpuPicker.description",
                "value": "Processor for light computing and office work",
                "set": "cpuPicker",
                "index": 1
              },
              {
                "userEdited": false,
                "dataType": "number",
                "visibilityState": "visible",
                "editable": "true",
                "variableName": "cpuPicker.price",
                "uniqueName": "cpuPicker-1001-cpuPicker.price",
                "value": 125,
                "set": "cpuPicker",
                "index": 1
              },
              {
                "userEdited": false,
                "dataType": "number",
                "visibilityState": "visible",
                "editable": "true",
                "variableName": "cpuPicker.watts",
                "uniqueName": "cpuPicker-1001-cpuPicker.watts",
                "value": 100,
                "set": "cpuPicker",
                "index": 1
              }
            ],
            "label": "Quad Core Processor",
            "state": "visible",
            "value": "CPU22GHZI7",
            "imageUrl": "https://i.imgur.com/ftft5Nx.png",
            "orderNumber": 20,
            "productDetails": {
              "name": "CPU 2.2GHz i7"
            }
          },
          {
            "index": 2,
            "fields": [
              {
                "userEdited": false,
                "dataType": "text",
                "visibilityState": "visible",
                "editable": "false",
                "variableName": "cpuPicker.value",
                "uniqueName": "cpuPicker-1002-cpuPicker.value",
                "value": "CPU28GHZI7",
                "set": "cpuPicker",
                "index": 2
              },
              {
                "userEdited": false,
                "dataType": "boolean",
                "visibilityState": "visible",
                "editable": "true",
                "variableName": "cpuPicker.select",
                "uniqueName": "cpuPicker-1002-cpuPicker.select",
                "value": false,
                "optionSet": {
                  "options": [
                    {
                      "label": "true",
                      "state": "visible",
                      "value": "true",
                      "imageUrl": null,
                      "orderNumber": null
                    },
                    {
                      "label": "false",
                      "state": "visible",
                      "value": "false",
                      "imageUrl": null,
                      "orderNumber": null
                    }
                  ]
                },
                "set": "cpuPicker",
                "index": 2
              },
              {
                "userEdited": false,
                "dataType": "number",
                "visibilityState": "visible",
                "editable": "true",
                "variableName": "cpuPicker.quantity",
                "uniqueName": "cpuPicker-1002-cpuPicker.quantity",
                "value": 0,
                "step": 1,
                "set": "cpuPicker",
                "index": 2
              },
              {
                "userEdited": false,
                "dataType": "text",
                "visibilityState": "visible",
                "editable": "true",
                "variableName": "cpuPicker.imageUrl",
                "uniqueName": "cpuPicker-1002-cpuPicker.imageUrl",
                "value": "",
                "set": "cpuPicker",
                "index": 2
              },
              {
                "userEdited": false,
                "dataType": "text",
                "visibilityState": "visible",
                "editable": "true",
                "variableName": "cpuPicker.description",
                "uniqueName": "cpuPicker-1002-cpuPicker.description",
                "value": "Perfect for moderate computing tasks",
                "set": "cpuPicker",
                "index": 2
              },
              {
                "userEdited": false,
                "dataType": "number",
                "visibilityState": "visible",
                "editable": "true",
                "variableName": "cpuPicker.price",
                "uniqueName": "cpuPicker-1002-cpuPicker.price",
                "value": 175,
                "set": "cpuPicker",
                "index": 2
              },
              {
                "userEdited": false,
                "dataType": "number",
                "visibilityState": "visible",
                "editable": "true",
                "variableName": "cpuPicker.watts",
                "uniqueName": "cpuPicker-1002-cpuPicker.watts",
                "value": 125,
                "set": "cpuPicker",
                "index": 2
              }
            ],
            "label": "6-Core Processor",
            "state": "visible",
            "value": "CPU28GHZI7",
            "imageUrl": "https://i.imgur.com/0xQH6mZ.png",
            "orderNumber": 30,
            "productDetails": {
              "name": "CPU 2.8GHz i7"
            }
          },
          {
            "index": 3,
            "fields": [
              {
                "userEdited": false,
                "dataType": "text",
                "visibilityState": "visible",
                "editable": "false",
                "variableName": "cpuPicker.value",
                "uniqueName": "cpuPicker-1003-cpuPicker.value",
                "value": "CPU7320GHZRYZ3",
                "set": "cpuPicker",
                "index": 3
              },
              {
                "userEdited": false,
                "dataType": "boolean",
                "visibilityState": "visible",
                "editable": "true",
                "variableName": "cpuPicker.select",
                "uniqueName": "cpuPicker-1003-cpuPicker.select",
                "value": false,
                "optionSet": {
                  "options": [
                    {
                      "label": "true",
                      "state": "visible",
                      "value": "true",
                      "imageUrl": null,
                      "orderNumber": null
                    },
                    {
                      "label": "false",
                      "state": "visible",
                      "value": "false",
                      "imageUrl": null,
                      "orderNumber": null
                    }
                  ]
                },
                "set": "cpuPicker",
                "index": 3
              },
              {
                "userEdited": false,
                "dataType": "number",
                "visibilityState": "visible",
                "editable": "true",
                "variableName": "cpuPicker.quantity",
                "uniqueName": "cpuPicker-1003-cpuPicker.quantity",
                "value": 0,
                "step": 1,
                "set": "cpuPicker",
                "index": 3
              },
              {
                "userEdited": false,
                "dataType": "text",
                "visibilityState": "visible",
                "editable": "true",
                "variableName": "cpuPicker.imageUrl",
                "uniqueName": "cpuPicker-1003-cpuPicker.imageUrl",
                "value": "",
                "set": "cpuPicker",
                "index": 3
              },
              {
                "userEdited": false,
                "dataType": "text",
                "visibilityState": "visible",
                "editable": "true",
                "variableName": "cpuPicker.description",
                "uniqueName": "cpuPicker-1003-cpuPicker.description",
                "value": "Great 3D and Video editing capabilities",
                "set": "cpuPicker",
                "index": 3
              },
              {
                "userEdited": false,
                "dataType": "number",
                "visibilityState": "visible",
                "editable": "true",
                "variableName": "cpuPicker.price",
                "uniqueName": "cpuPicker-1003-cpuPicker.price",
                "value": 225,
                "set": "cpuPicker",
                "index": 3
              },
              {
                "userEdited": false,
                "dataType": "number",
                "visibilityState": "visible",
                "editable": "true",
                "variableName": "cpuPicker.watts",
                "uniqueName": "cpuPicker-1003-cpuPicker.watts",
                "value": 150,
                "set": "cpuPicker",
                "index": 3
              }
            ],
            "label": "8-Core Processor",
            "state": "visible",
            "value": "CPU7320GHZRYZ3",
            "imageUrl": "https://i.imgur.com/0xQH6mZ.png",
            "orderNumber": 40,
            "productDetails": {
              "name": "AMD Ryzen 3 7320U"
            }
          },
          {
            "index": 4,
            "fields": [
              {
                "userEdited": false,
                "dataType": "text",
                "visibilityState": "visible",
                "editable": "false",
                "variableName": "cpuPicker.value",
                "uniqueName": "cpuPicker-1004-cpuPicker.value",
                "value": "CPU7550GHZRYZ5",
                "set": "cpuPicker",
                "index": 4
              },
              {
                "userEdited": false,
                "dataType": "boolean",
                "visibilityState": "visible",
                "editable": "true",
                "variableName": "cpuPicker.select",
                "uniqueName": "cpuPicker-1004-cpuPicker.select",
                "value": false,
                "optionSet": {
                  "options": [
                    {
                      "label": "true",
                      "state": "visible",
                      "value": "true",
                      "imageUrl": null,
                      "orderNumber": null
                    },
                    {
                      "label": "false",
                      "state": "visible",
                      "value": "false",
                      "imageUrl": null,
                      "orderNumber": null
                    }
                  ]
                },
                "set": "cpuPicker",
                "index": 4
              },
              {
                "userEdited": false,
                "dataType": "number",
                "visibilityState": "visible",
                "editable": "true",
                "variableName": "cpuPicker.quantity",
                "uniqueName": "cpuPicker-1004-cpuPicker.quantity",
                "value": 0,
                "step": 1,
                "set": "cpuPicker",
                "index": 4
              },
              {
                "userEdited": false,
                "dataType": "text",
                "visibilityState": "visible",
                "editable": "true",
                "variableName": "cpuPicker.imageUrl",
                "uniqueName": "cpuPicker-1004-cpuPicker.imageUrl",
                "value": "",
                "set": "cpuPicker",
                "index": 4
              },
              {
                "userEdited": false,
                "dataType": "text",
                "visibilityState": "visible",
                "editable": "true",
                "variableName": "cpuPicker.description",
                "uniqueName": "cpuPicker-1004-cpuPicker.description",
                "value": "Top of the line processor for AI, number crunching and cryptography",
                "set": "cpuPicker",
                "index": 4
              },
              {
                "userEdited": false,
                "dataType": "number",
                "visibilityState": "visible",
                "editable": "true",
                "variableName": "cpuPicker.price",
                "uniqueName": "cpuPicker-1004-cpuPicker.price",
                "value": 325,
                "set": "cpuPicker",
                "index": 4
              },
              {
                "userEdited": false,
                "dataType": "number",
                "visibilityState": "visible",
                "editable": "true",
                "variableName": "cpuPicker.watts",
                "uniqueName": "cpuPicker-1004-cpuPicker.watts",
                "value": 225,
                "set": "cpuPicker",
                "index": 4
              }
            ],
            "label": "12-Core Processor",
            "state": "visible",
            "value": "CPU7550GHZRYZ5",
            "imageUrl": "https://i.imgur.com/LaQVZma.png",
            "orderNumber": 50,
            "productDetails": {
              "name": "AMD Ryzen 5 7550U"
            }
          }
        ],
        "pageable": "INSTANCE",
        "totalPages": 1,
        "totalElements": 5,
        "last": true,
        "size": 5,
        "number": 0,
        "sort": {
          "empty": true,
          "sorted": false,
          "unsorted": true
        },
        "numberOfElements": 5,
        "first": true,
        "empty": false
      }
    },
    {
      "userEdited": false,
      "dataType": "set",
      "visibilityState": "visible",
      "editable": "true",
      "variableName": "delta",
      "uniqueName": "delta",
      "rows": {
        "content": [],
        "pageable": "INSTANCE",
        "totalPages": 1,
        "totalElements": 0,
        "last": true,
        "size": 0,
        "number": 0,
        "sort": {
          "empty": true,
          "sorted": false,
          "unsorted": true
        },
        "numberOfElements": 0,
        "first": true,
        "empty": true
      }
    },
    {
      "userEdited": false,
      "dataType": "number",
      "visibilityState": "visible",
      "editable": "false",
      "variableName": "ramPicker.aggregates.storage_sum",
      "uniqueName": "ramPicker.aggregates.storage_sum",
      "value": 0
    },
    {
      "userEdited": false,
      "dataType": "text",
      "visibilityState": "visible",
      "editable": "true",
      "variableName": "sys.productDescription",
      "uniqueName": "sys.productDescription",
      "value": ""
    },
    {
      "userEdited": false,
      "dataType": "text",
      "visibilityState": "visible",
      "editable": "true",
      "variableName": "sys.productUOM",
      "uniqueName": "sys.productUOM",
      "value": ""
    },
    {
      "userEdited": false,
      "dataType": "number",
      "visibilityState": "visible",
      "editable": "true",
      "variableName": "sys.productPrice",
      "uniqueName": "sys.productPrice",
      "value": 0
    },
    {
      "userEdited": false,
      "dataType": "text",
      "visibilityState": "visible",
      "editable": "true",
      "variableName": "sys.productId",
      "uniqueName": "sys.productId",
      "value": "SWC"
    },
    {
      "userEdited": false,
      "dataType": "text",
      "visibilityState": "visible",
      "editable": "true",
      "variableName": "sys.actionContext",
      "uniqueName": "sys.actionContext",
      "value": ""
    },
    {
      "userEdited": false,
      "dataType": "number",
      "visibilityState": "visible",
      "editable": "true",
      "variableName": "set.delta.size",
      "uniqueName": "set.delta.size",
      "value": []
    },
    {
      "userEdited": false,
      "dataType": "number",
      "visibilityState": "visible",
      "editable": "false",
      "variableName": "set.delta.priceSum",
      "uniqueName": "set.delta.priceSum",
      "value": 0
    },
    {
      "userEdited": false,
      "dataType": "text",
      "visibilityState": "visible",
      "editable": "true",
      "variableName": "sys.productName",
      "uniqueName": "sys.productName",
      "value": "Laptop Configurator"
    },
    {
      "userEdited": false,
      "dataType": "number",
      "visibilityState": "visible",
      "editable": "false",
      "variableName": "cpuPicker.aggregates.watts_sum",
      "uniqueName": "cpuPicker.aggregates.watts_sum",
      "value": 0
    },
    {
      "userEdited": false,
      "dataType": "number",
      "visibilityState": "visible",
      "editable": "false",
      "variableName": "ramPicker.aggregates.value_count",
      "uniqueName": "ramPicker.aggregates.value_count",
      "value": 0
    },
    {
      "userEdited": false,
      "dataType": "text",
      "visibilityState": "visible",
      "editable": "true",
      "variableName": "pleExtension",
      "uniqueName": "pleExtension",
      "value": "SSM",
      "optionSet": {
        "selectedOptions": [
          {
            "label": "Single",
            "state": "visible",
            "value": "SSM",
            "imageUrl": null,
            "orderNumber": 10
          }
        ],
        "options": [
          {
            "label": "Single",
            "state": "visible",
            "value": "SSM",
            "imageUrl": null,
            "orderNumber": 10
          },
          {
            "label": "Dual",
            "state": "visible",
            "value": "DSM",
            "imageUrl": null,
            "orderNumber": 20
          }
        ]
      }
    },
    {
      "userEdited": false,
      "dataType": "text",
      "visibilityState": "visible",
      "editable": "true",
      "variableName": "partner.quote.currencyIsoCode",
      "uniqueName": "partner.quote.currencyIsoCode",
      "value": "USD"
    },
    {
      "userEdited": false,
      "dataType": "text",
      "visibilityState": "visible",
      "editable": "true",
      "variableName": "sys.productFamily",
      "uniqueName": "sys.productFamily",
      "value": "Software"
    },
    {
      "userEdited": false,
      "dataType": "text",
      "visibilityState": "visible",
      "editable": "true",
      "variableName": "partner.quote.lineId",
      "uniqueName": "partner.quote.lineId",
      "value": ""
    },
    {
      "userEdited": false,
      "dataType": "text",
      "visibilityState": "visible",
      "editable": "true",
      "variableName": "sys.currentDate",
      "uniqueName": "sys.currentDate",
      "value": "2023-09-29"
    },
    {
      "userEdited": false,
      "dataType": "text",
      "visibilityState": "visible",
      "editable": "true",
      "variableName": "cPUType",
      "uniqueName": "cPUType",
      "value": "All",
      "optionSet": {
        "selectedOptions": [
          {
            "label": "All",
            "state": "visible",
            "value": "All",
            "imageUrl": null,
            "orderNumber": 5
          }
        ],
        "options": [
          {
            "label": "All",
            "state": "visible",
            "value": "All",
            "imageUrl": null,
            "orderNumber": 5
          },
          {
            "label": "Low",
            "state": "visible",
            "value": "Low",
            "imageUrl": null,
            "orderNumber": 7
          },
          {
            "label": "Mid",
            "state": "visible",
            "value": "Mid",
            "imageUrl": null,
            "orderNumber": 8
          },
          {
            "label": "High",
            "state": "visible",
            "value": "High",
            "imageUrl": null,
            "orderNumber": 9
          }
        ]
      }
    },
    {
      "userEdited": false,
      "dataType": "text",
      "visibilityState": "visible",
      "editable": "true",
      "variableName": "preconfigured",
      "uniqueName": "preconfigured",
      "value": "",
      "optionSet": {
        "options": [
          {
            "label": "Basic Office",
            "state": "visible",
            "value": "Basic",
            "imageUrl": null,
            "orderNumber": 10
          },
          {
            "label": "Video and 3D",
            "state": "visible",
            "value": "3D",
            "imageUrl": null,
            "orderNumber": 20
          },
          {
            "label": "Enthusiast",
            "state": "visible",
            "value": "Max",
            "imageUrl": null,
            "orderNumber": 30
          }
        ]
      }
    },
    {
      "userEdited": false,
      "dataType": "text",
      "visibilityState": "visible",
      "editable": "true",
      "variableName": "sys.productCode",
      "uniqueName": "sys.productCode",
      "value": "SWC"
    },
    {
      "userEdited": false,
      "dataType": "text",
      "visibilityState": "visible",
      "editable": "true",
      "variableName": "partner.quote.pricebookId",
      "uniqueName": "partner.quote.pricebookId",
      "value": ""
    },
    {
      "userEdited": false,
      "dataType": "text",
      "visibilityState": "visible",
      "editable": "true",
      "variableName": "partner.quote.id",
      "uniqueName": "partner.quote.id",
      "value": ""
    }
  ],
  "uuid": "ad947503-5246-461f-8603-f0124593ae1c",
  "revision": 0,
  "relatedChanges": [
    {
      "key": "drivePicker",
      "type": "PRODUCT_PICKER"
    },
    {
      "key": "ramPicker",
      "type": "PRODUCT_PICKER"
    },
    {
      "key": "cpuPicker",
      "type": "PRODUCT_PICKER"
    },
    {
      "key": "delta",
      "type": "SET"
    },
    {
      "key": "products",
      "type": "PRODUCT"
    }
  ],
  "valid": true,
  "messages": [],
  "productChange": true,
  "products": [
    {
      "id": "SSM",
      "quantity": 1,
      "bomType": "Sales",
      "price": 125,
      "uniqueIdentifier": "motherboard",
      "orderNumber": 10,
      "type": "accessory",
      "name": "Single Motherboard",
      "partnerId": "01t6e000009gRTpAAM",
      "productCode": "SSM",
      "externalId": "",
      "productFamily": "",
      "description": "",
      "uom": "",
      "extPrice": 125,
      "level": 0,
      "rollUpPrice": 125
    }
  ],
  "showValidationButton": false,
  "total": 125,
  "layouts": [
    {
      "url": "/blueprints/8/revisions/LATEST/layouts/1",
      "label": "basic",
      "variableName": "pickerGeneral_basic"
    }
  ]
}

Responses

Status Meaning Description Schema
200 OK Return initial state of fields, messages and products ConfigResponseV2
400 Bad Request Bad request. See errorMessage for additional details. ErrorResponse
401 Unauthorized Authorization information is missing or invalid. None
403 Forbidden Credentials are valid but insufficient privileges to perform the action on the resource. None
404 Not Found Resource was not found. See errorMessage for additional details. ErrorResponse
5XX Unknown Unexpected Server Error. ErrorResponse

Update or Save Configuration (V2)

Code samples

import requests
headers = {
  'Content-Type': 'application/vnd.logik.cfg-v2+json',
  'Accept': 'application/vnd.logik.cfg-v2+json',
  'Origin': 'string',
  'Authorization': 'Bearer {access-token}'
}

r = requests.patch('https://{tenant}.{sector}.logik.io/api/{uuid}', headers = headers)

print(r.json())

const inputBody = '{
  "fields": [
    {
      "variableName": "cpuPicker.select",
      "uniqueName": "cpuPicker-1003-cpuPicker.select",
      "value": true,
      "set": "cpuPicker",
      "index": 3
    }
  ]
}';
const headers = {
  'Content-Type':'application/vnd.logik.cfg-v2+json',
  'Accept':'application/vnd.logik.cfg-v2+json',
  'Origin':'string',
  'Authorization':'Bearer {access-token}'
};

fetch('https://{tenant}.{sector}.logik.io/api/{uuid}',
{
  method: 'PATCH',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

const fetch = require('node-fetch');
const inputBody = {
  "fields": [
    {
      "variableName": "cpuPicker.select",
      "uniqueName": "cpuPicker-1003-cpuPicker.select",
      "value": true,
      "set": "cpuPicker",
      "index": 3
    }
  ]
};
const headers = {
  'Content-Type':'application/vnd.logik.cfg-v2+json',
  'Accept':'application/vnd.logik.cfg-v2+json',
  'Origin':'string',
  'Authorization':'Bearer {access-token}'
};

fetch('https://{tenant}.{sector}.logik.io/api/{uuid}',
{
  method: 'PATCH',
  body: JSON.stringify(inputBody),
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

# You can also use wget
curl -X PATCH https://{tenant}.{sector}.logik.io/api/{uuid} \
  -H 'Content-Type: application/vnd.logik.cfg-v2+json' \
  -H 'Accept: application/vnd.logik.cfg-v2+json' \
  -H 'Origin: string' \
  -H 'Authorization: Bearer {access-token}'

PATCH https://{tenant}.{sector}.logik.io/api/{uuid} HTTP/1.1

Content-Type: application/vnd.logik.cfg-v2+json
Accept: application/vnd.logik.cfg-v2+json
Origin: string

URL obj = new URL("https://{tenant}.{sector}.logik.io/api/{uuid}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("PATCH");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/vnd.logik.cfg-v2+json',
  'Accept' => 'application/vnd.logik.cfg-v2+json',
  'Origin' => 'string',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.patch 'https://{tenant}.{sector}.logik.io/api/{uuid}',
  params: {
  }, headers: headers

p JSON.parse(result)

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/vnd.logik.cfg-v2+json"},
        "Accept": []string{"application/vnd.logik.cfg-v2+json"},
        "Origin": []string{"string"},
        "Authorization": []string{"Bearer {access-token}"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("PATCH", "https://{tenant}.{sector}.logik.io/api/{uuid}", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

PATCH /api/{uuid}

Update or Save Configuration with the provided Configuration UUID.

Body parameter

{
  "fields": [
    {
      "variableName": "cpuPicker.select",
      "uniqueName": "cpuPicker-1003-cpuPicker.select",
      "value": true,
      "set": "cpuPicker",
      "index": 3
    }
  ]
}

Parameters

Name In Type Required Description
Origin header string true Request Origin, needs to be one of the allowed origins for the Runtime Token being used.
uuid path string true Unique Configuration ID Value
delta query boolean false If delta=true the API only retruns changed data. This is default behavior of the API if the parameter is omitted.
save query boolean false Pass save=true to save the Configuration and send BOM to connected application
body body UpdateConfigV2 true Update or Save Payload for a Configuration.

Example responses

200 Response

{
  "fields": [
    {
      "userEdited": false,
      "dataType": "array",
      "visibilityState": "visible",
      "editable": "true",
      "variableName": "ramPicker",
      "uniqueName": "ramPicker",
      "value": [],
      "optionSet": {
        "options": [
          {
            "label": "8GB RAM Module",
            "state": "visible",
            "value": "RAM8GB",
            "imageUrl": "https://i.imgur.com/WkXo98I.png",
            "orderNumber": 10
          },
          {
            "label": "16GB RAM Module",
            "state": "visible",
            "value": "RAM16GB",
            "imageUrl": "https://i.imgur.com/WkXo98I.png",
            "orderNumber": 20
          },
          {
            "label": "32GB RAM Module",
            "state": "visible",
            "value": "RAM32GB",
            "imageUrl": "https://i.imgur.com/WkXo98I.png",
            "orderNumber": 30
          }
        ]
      },
      "selectAll": "NONE",
      "rows": {
        "content": [
          {
            "index": 0,
            "fields": [
              {
                "userEdited": false,
                "dataType": "text",
                "visibilityState": "visible",
                "editable": "false",
                "variableName": "ramPicker.value",
                "uniqueName": "ramPicker-1000-ramPicker.value",
                "value": "RAM8GB",
                "set": "ramPicker",
                "index": 0
              },
              {
                "userEdited": false,
                "dataType": "text",
                "visibilityState": "visible",
                "editable": "true",
                "variableName": "ramPicker.interface",
                "uniqueName": "ramPicker-1000-ramPicker.interface",
                "value": "DDR4",
                "optionSet": {
                  "selectedOptions": [
                    {
                      "label": "DDR4",
                      "state": "visible",
                      "value": "DDR4",
                      "imageUrl": null,
                      "orderNumber": 10
                    }
                  ],
                  "options": [
                    {
                      "label": "DDR4",
                      "state": "visible",
                      "value": "DDR4",
                      "imageUrl": null,
                      "orderNumber": 10
                    },
                    {
                      "label": "DDR5",
                      "state": "visible",
                      "value": "DDR5",
                      "imageUrl": null,
                      "orderNumber": 20
                    }
                  ]
                },
                "set": "ramPicker",
                "index": 0
              },
              {
                "userEdited": false,
                "dataType": "boolean",
                "visibilityState": "visible",
                "editable": "true",
                "variableName": "ramPicker.select",
                "uniqueName": "ramPicker-1000-ramPicker.select",
                "value": false,
                "optionSet": {
                  "options": [
                    {
                      "label": "true",
                      "state": "visible",
                      "value": "true",
                      "imageUrl": null,
                      "orderNumber": null
                    },
                    {
                      "label": "false",
                      "state": "visible",
                      "value": "false",
                      "imageUrl": null,
                      "orderNumber": null
                    }
                  ]
                },
                "set": "ramPicker",
                "index": 0
              },
              {
                "userEdited": false,
                "dataType": "number",
                "visibilityState": "visible",
                "editable": "true",
                "variableName": "ramPicker.quantity",
                "uniqueName": "ramPicker-1000-ramPicker.quantity",
                "value": 0,
                "step": 1,
                "set": "ramPicker",
                "index": 0
              },
              {
                "userEdited": false,
                "dataType": "text",
                "visibilityState": "visible",
                "editable": "true",
                "variableName": "ramPicker.imageUrl",
                "uniqueName": "ramPicker-1000-ramPicker.imageUrl",
                "value": "",
                "set": "ramPicker",
                "index": 0
              },
              {
                "userEdited": false,
                "dataType": "number",
                "visibilityState": "visible",
                "editable": "false",
                "variableName": "ramPicker.storage",
                "uniqueName": "ramPicker-1000-ramPicker.storage",
                "value": 0,
                "set": "ramPicker",
                "index": 0
              }
            ],
            "label": "8GB RAM Module",
            "state": "visible",
            "value": "RAM8GB",
            "imageUrl": "https://i.imgur.com/WkXo98I.png",
            "orderNumber": 10,
            "productDetails": {
              "price": 50,
              "name": "RAM 8GB"
            }
          },
          {
            "index": 1,
            "fields": [
              {
                "userEdited": false,
                "dataType": "text",
                "visibilityState": "visible",
                "editable": "false",
                "variableName": "ramPicker.value",
                "uniqueName": "ramPicker-1001-ramPicker.value",
                "value": "RAM16GB",
                "set": "ramPicker",
                "index": 1
              },
              {
                "userEdited": false,
                "dataType": "text",
                "visibilityState": "visible",
                "editable": "true",
                "variableName": "ramPicker.interface",
                "uniqueName": "ramPicker-1001-ramPicker.interface",
                "value": "DDR4",
                "optionSet": {
                  "selectedOptions": [
                    {
                      "label": "DDR4",
                      "state": "visible",
                      "value": "DDR4",
                      "imageUrl": null,
                      "orderNumber": 10
                    }
                  ],
                  "options": [
                    {
                      "label": "DDR4",
                      "state": "visible",
                      "value": "DDR4",
                      "imageUrl": null,
                      "orderNumber": 10
                    },
                    {
                      "label": "DDR5",
                      "state": "visible",
                      "value": "DDR5",
                      "imageUrl": null,
                      "orderNumber": 20
                    }
                  ]
                },
                "set": "ramPicker",
                "index": 1
              },
              {
                "userEdited": false,
                "dataType": "boolean",
                "visibilityState": "visible",
                "editable": "true",
                "variableName": "ramPicker.select",
                "uniqueName": "ramPicker-1001-ramPicker.select",
                "value": false,
                "optionSet": {
                  "options": [
                    {
                      "label": "true",
                      "state": "visible",
                      "value": "true",
                      "imageUrl": null,
                      "orderNumber": null
                    },
                    {
                      "label": "false",
                      "state": "visible",
                      "value": "false",
                      "imageUrl": null,
                      "orderNumber": null
                    }
                  ]
                },
                "set": "ramPicker",
                "index": 1
              },
              {
                "userEdited": false,
                "dataType": "number",
                "visibilityState": "visible",
                "editable": "true",
                "variableName": "ramPicker.quantity",
                "uniqueName": "ramPicker-1001-ramPicker.quantity",
                "value": 0,
                "step": 1,
                "set": "ramPicker",
                "index": 1
              },
              {
                "userEdited": false,
                "dataType": "text",
                "visibilityState": "visible",
                "editable": "true",
                "variableName": "ramPicker.imageUrl",
                "uniqueName": "ramPicker-1001-ramPicker.imageUrl",
                "value": "",
                "set": "ramPicker",
                "index": 1
              },
              {
                "userEdited": false,
                "dataType": "number",
                "visibilityState": "visible",
                "editable": "false",
                "variableName": "ramPicker.storage",
                "uniqueName": "ramPicker-1001-ramPicker.storage",
                "value": 0,
                "set": "ramPicker",
                "index": 1
              }
            ],
            "label": "16GB RAM Module",
            "state": "visible",
            "value": "RAM16GB",
            "imageUrl": "https://i.imgur.com/WkXo98I.png",
            "orderNumber": 20,
            "productDetails": {
              "price": 125,
              "name": "RAM 16GB"
            }
          },
          {
            "index": 2,
            "fields": [
              {
                "userEdited": false,
                "dataType": "text",
                "visibilityState": "visible",
                "editable": "false",
                "variableName": "ramPicker.value",
                "uniqueName": "ramPicker-1002-ramPicker.value",
                "value": "RAM32GB",
                "set": "ramPicker",
                "index": 2
              },
              {
                "userEdited": false,
                "dataType": "text",
                "visibilityState": "visible",
                "editable": "true",
                "variableName": "ramPicker.interface",
                "uniqueName": "ramPicker-1002-ramPicker.interface",
                "value": "DDR5",
                "optionSet": {
                  "selectedOptions": [
                    {
                      "label": "DDR5",
                      "state": "visible",
                      "value": "DDR5",
                      "imageUrl": null,
                      "orderNumber": 20
                    }
                  ],
                  "options": [
                    {
                      "label": "DDR4",
                      "state": "visible",
                      "value": "DDR4",
                      "imageUrl": null,
                      "orderNumber": 10
                    },
                    {
                      "label": "DDR5",
                      "state": "visible",
                      "value": "DDR5",
                      "imageUrl": null,
                      "orderNumber": 20
                    }
                  ]
                },
                "set": "ramPicker",
                "index": 2
              },
              {
                "userEdited": false,
                "dataType": "boolean",
                "visibilityState": "visible",
                "editable": "true",
                "variableName": "ramPicker.select",
                "uniqueName": "ramPicker-1002-ramPicker.select",
                "value": false,
                "optionSet": {
                  "options": [
                    {
                      "label": "true",
                      "state": "visible",
                      "value": "true",
                      "imageUrl": null,
                      "orderNumber": null
                    },
                    {
                      "label": "false",
                      "state": "visible",
                      "value": "false",
                      "imageUrl": null,
                      "orderNumber": null
                    }
                  ]
                },
                "set": "ramPicker",
                "index": 2
              },
              {
                "userEdited": false,
                "dataType": "number",
                "visibilityState": "visible",
                "editable": "true",
                "variableName": "ramPicker.quantity",
                "uniqueName": "ramPicker-1002-ramPicker.quantity",
                "value": 0,
                "step": 1,
                "set": "ramPicker",
                "index": 2
              },
              {
                "userEdited": false,
                "dataType": "text",
                "visibilityState": "visible",
                "editable": "true",
                "variableName": "ramPicker.imageUrl",
                "uniqueName": "ramPicker-1002-ramPicker.imageUrl",
                "value": "",
                "set": "ramPicker",
                "index": 2
              },
              {
                "userEdited": false,
                "dataType": "number",
                "visibilityState": "visible",
                "editable": "false",
                "variableName": "ramPicker.storage",
                "uniqueName": "ramPicker-1002-ramPicker.storage",
                "value": 0,
                "set": "ramPicker",
                "index": 2
              }
            ],
            "label": "32GB RAM Module",
            "state": "visible",
            "value": "RAM32GB",
            "imageUrl": "https://i.imgur.com/WkXo98I.png",
            "orderNumber": 30,
            "productDetails": {
              "price": 175,
              "name": "RAM 32GB"
            }
          }
        ],
        "pageable": "INSTANCE",
        "totalPages": 1,
        "totalElements": 3,
        "last": true,
        "size": 3,
        "number": 0,
        "sort": {
          "empty": true,
          "sorted": false,
          "unsorted": true
        },
        "numberOfElements": 3,
        "first": true,
        "empty": false
      }
    },
    {
      "userEdited": false,
      "dataType": "array",
      "visibilityState": "visible",
      "editable": "true",
      "variableName": "drivePicker",
      "uniqueName": "drivePicker",
      "value": [],
      "optionSet": {
        "options": [
          {
            "label": "SSD128",
            "state": "visible",
            "value": "SSD128",
            "imageUrl": null,
            "orderNumber": 10
          },
          {
            "label": "SSD256",
            "state": "visible",
            "value": "SSD256",
            "imageUrl": null,
            "orderNumber": 20
          },
          {
            "label": "SSD512",
            "state": "visible",
            "value": "SSD512",
            "imageUrl": null,
            "orderNumber": 30
          }
        ]
      },
      "selectAll": "NONE",
      "rows": {
        "content": [
          {
            "index": 0,
            "fields": [
              {
                "userEdited": false,
                "dataType": "text",
                "visibilityState": "visible",
                "editable": "false",
                "variableName": "drivePicker.value",
                "uniqueName": "drivePicker-1000-drivePicker.value",
                "value": "SSD128",
                "set": "drivePicker",
                "index": 0
              },
              {
                "userEdited": false,
                "dataType": "boolean",
                "visibilityState": "visible",
                "editable": "true",
                "variableName": "drivePicker.select",
                "uniqueName": "drivePicker-1000-drivePicker.select",
                "value": false,
                "optionSet": {
                  "options": [
                    {
                      "label": "true",
                      "state": "visible",
                      "value": "true",
                      "imageUrl": null,
                      "orderNumber": null
                    },
                    {
                      "label": "false",
                      "state": "visible",
                      "value": "false",
                      "imageUrl": null,
                      "orderNumber": null
                    }
                  ]
                },
                "set": "drivePicker",
                "index": 0
              },
              {
                "userEdited": false,
                "dataType": "number",
                "visibilityState": "visible",
                "editable": "true",
                "variableName": "drivePicker.quantity",
                "uniqueName": "drivePicker-1000-drivePicker.quantity",
                "value": 0,
                "set": "drivePicker",
                "index": 0
              },
              {
                "userEdited": false,
                "dataType": "text",
                "visibilityState": "visible",
                "editable": "true",
                "variableName": "drivePicker.interface",
                "uniqueName": "drivePicker-1000-drivePicker.interface",
                "value": "NVMe",
                "optionSet": {
                  "selectedOptions": [
                    {
                      "label": "NVMe",
                      "state": "visible",
                      "value": "NVMe",
                      "imageUrl": null,
                      "orderNumber": 10
                    }
                  ],
                  "options": [
                    {
                      "label": "NVMe",
                      "state": "visible",
                      "value": "NVMe",
                      "imageUrl": null,
                      "orderNumber": 10
                    },
                    {
                      "label": "SSD",
                      "state": "visible",
                      "value": "SSD",
                      "imageUrl": null,
                      "orderNumber": 20
                    }
                  ]
                },
                "set": "drivePicker",
                "index": 0
              }
            ],
            "label": "SSD128",
            "state": "visible",
            "value": "SSD128",
            "imageUrl": null,
            "orderNumber": 10,
            "productDetails": {
              "price": 89,
              "name": "NVMe Drive 128GB",
              "description": "Lightning fast Storage for all your computing needs"
            }
          },
          {
            "index": 1,
            "fields": [
              {
                "userEdited": false,
                "dataType": "text",
                "visibilityState": "visible",
                "editable": "false",
                "variableName": "drivePicker.value",
                "uniqueName": "drivePicker-1001-drivePicker.value",
                "value": "SSD256",
                "set": "drivePicker",
                "index": 1
              },
              {
                "userEdited": false,
                "dataType": "boolean",
                "visibilityState": "visible",
                "editable": "true",
                "variableName": "drivePicker.select",
                "uniqueName": "drivePicker-1001-drivePicker.select",
                "value": false,
                "optionSet": {
                  "options": [
                    {
                      "label": "true",
                      "state": "visible",
                      "value": "true",
                      "imageUrl": null,
                      "orderNumber": null
                    },
                    {
                      "label": "false",
                      "state": "visible",
                      "value": "false",
                      "imageUrl": null,
                      "orderNumber": null
                    }
                  ]
                },
                "set": "drivePicker",
                "index": 1
              },
              {
                "userEdited": false,
                "dataType": "number",
                "visibilityState": "visible",
                "editable": "true",
                "variableName": "drivePicker.quantity",
                "uniqueName": "drivePicker-1001-drivePicker.quantity",
                "value": 0,
                "set": "drivePicker",
                "index": 1
              },
              {
                "userEdited": false,
                "dataType": "text",
                "visibilityState": "visible",
                "editable": "true",
                "variableName": "drivePicker.interface",
                "uniqueName": "drivePicker-1001-drivePicker.interface",
                "value": "SSD",
                "optionSet": {
                  "selectedOptions": [
                    {
                      "label": "SSD",
                      "state": "visible",
                      "value": "SSD",
                      "imageUrl": null,
                      "orderNumber": 20
                    }
                  ],
                  "options": [
                    {
                      "label": "NVMe",
                      "state": "visible",
                      "value": "NVMe",
                      "imageUrl": null,
                      "orderNumber": 10
                    },
                    {
                      "label": "SSD",
                      "state": "visible",
                      "value": "SSD",
                      "imageUrl": null,
                      "orderNumber": 20
                    }
                  ]
                },
                "set": "drivePicker",
                "index": 1
              }
            ],
            "label": "SSD256",
            "state": "visible",
            "value": "SSD256",
            "imageUrl": null,
            "orderNumber": 20,
            "productDetails": {
              "price": 75,
              "name": "SSD 256GB",
              "description": "A balance of speed and capacity"
            }
          },
          {
            "index": 2,
            "fields": [
              {
                "userEdited": false,
                "dataType": "text",
                "visibilityState": "visible",
                "editable": "false",
                "variableName": "drivePicker.value",
                "uniqueName": "drivePicker-1002-drivePicker.value",
                "value": "SSD512",
                "set": "drivePicker",
                "index": 2
              },
              {
                "userEdited": false,
                "dataType": "boolean",
                "visibilityState": "visible",
                "editable": "true",
                "variableName": "drivePicker.select",
                "uniqueName": "drivePicker-1002-drivePicker.select",
                "value": false,
                "optionSet": {
                  "options": [
                    {
                      "label": "true",
                      "state": "visible",
                      "value": "true",
                      "imageUrl": null,
                      "orderNumber": null
                    },
                    {
                      "label": "false",
                      "state": "visible",
                      "value": "false",
                      "imageUrl": null,
                      "orderNumber": null
                    }
                  ]
                },
                "set": "drivePicker",
                "index": 2
              },
              {
                "userEdited": false,
                "dataType": "number",
                "visibilityState": "visible",
                "editable": "true",
                "variableName": "drivePicker.quantity",
                "uniqueName": "drivePicker-1002-drivePicker.quantity",
                "value": 0,
                "set": "drivePicker",
                "index": 2
              },
              {
                "userEdited": false,
                "dataType": "text",
                "visibilityState": "visible",
                "editable": "true",
                "variableName": "drivePicker.interface",
                "uniqueName": "drivePicker-1002-drivePicker.interface",
                "value": "SSD",
                "optionSet": {
                  "selectedOptions": [
                    {
                      "label": "SSD",
                      "state": "visible",
                      "value": "SSD",
                      "imageUrl": null,
                      "orderNumber": 20
                    }
                  ],
                  "options": [
                    {
                      "label": "NVMe",
                      "state": "visible",
                      "value": "NVMe",
                      "imageUrl": null,
                      "orderNumber": 10
                    },
                    {
                      "label": "SSD",
                      "state": "visible",
                      "value": "SSD",
                      "imageUrl": null,
                      "orderNumber": 20
                    }
                  ]
                },
                "set": "drivePicker",
                "index": 2
              }
            ],
            "label": "SSD512",
            "state": "visible",
            "value": "SSD512",
            "imageUrl": null,
            "orderNumber": 30,
            "productDetails": {
              "price": 150,
              "name": "SSD 512GB",
              "description": "Bulk SSD Storage for large files"
            }
          }
        ],
        "pageable": "INSTANCE",
        "totalPages": 1,
        "totalElements": 3,
        "last": true,
        "size": 3,
        "number": 0,
        "sort": {
          "empty": true,
          "sorted": false,
          "unsorted": true
        },
        "numberOfElements": 3,
        "first": true,
        "empty": false
      }
    },
    {
      "userEdited": false,
      "dataType": "text",
      "visibilityState": "visible",
      "editable": "true",
      "variableName": "cpuPicker",
      "uniqueName": "cpuPicker",
      "value": "",
      "optionSet": {
        "options": [
          {
            "label": "Dual Core Processor",
            "state": "visible",
            "value": "CPU16GHZI5",
            "imageUrl": "https://i.imgur.com/ftft5Nx.png",
            "orderNumber": 10
          },
          {
            "label": "Quad Core Processor",
            "state": "visible",
            "value": "CPU22GHZI7",
            "imageUrl": "https://i.imgur.com/ftft5Nx.png",
            "orderNumber": 20
          },
          {
            "label": "6-Core Processor",
            "state": "visible",
            "value": "CPU28GHZI7",
            "imageUrl": "https://i.imgur.com/0xQH6mZ.png",
            "orderNumber": 30
          },
          {
            "label": "8-Core Processor",
            "state": "visible",
            "value": "CPU7320GHZRYZ3",
            "imageUrl": "https://i.imgur.com/0xQH6mZ.png",
            "orderNumber": 40
          },
          {
            "label": "12-Core Processor",
            "state": "visible",
            "value": "CPU7550GHZRYZ5",
            "imageUrl": "https://i.imgur.com/LaQVZma.png",
            "orderNumber": 50
          }
        ]
      },
      "rows": {
        "content": [
          {
            "index": 0,
            "fields": [
              {
                "userEdited": false,
                "dataType": "text",
                "visibilityState": "visible",
                "editable": "false",
                "variableName": "cpuPicker.value",
                "uniqueName": "cpuPicker-1000-cpuPicker.value",
                "value": "CPU16GHZI5",
                "set": "cpuPicker",
                "index": 0
              },
              {
                "userEdited": false,
                "dataType": "boolean",
                "visibilityState": "visible",
                "editable": "true",
                "variableName": "cpuPicker.select",
                "uniqueName": "cpuPicker-1000-cpuPicker.select",
                "value": false,
                "optionSet": {
                  "options": [
                    {
                      "label": "true",
                      "state": "visible",
                      "value": "true",
                      "imageUrl": null,
                      "orderNumber": null
                    },
                    {
                      "label": "false",
                      "state": "visible",
                      "value": "false",
                      "imageUrl": null,
                      "orderNumber": null
                    }
                  ]
                },
                "set": "cpuPicker",
                "index": 0
              },
              {
                "userEdited": false,
                "dataType": "number",
                "visibilityState": "visible",
                "editable": "true",
                "variableName": "cpuPicker.quantity",
                "uniqueName": "cpuPicker-1000-cpuPicker.quantity",
                "value": 0,
                "step": 1,
                "set": "cpuPicker",
                "index": 0
              },
              {
                "userEdited": false,
                "dataType": "text",
                "visibilityState": "visible",
                "editable": "true",
                "variableName": "cpuPicker.imageUrl",
                "uniqueName": "cpuPicker-1000-cpuPicker.imageUrl",
                "value": "",
                "set": "cpuPicker",
                "index": 0
              },
              {
                "userEdited": false,
                "dataType": "text",
                "visibilityState": "visible",
                "editable": "true",
                "variableName": "cpuPicker.description",
                "uniqueName": "cpuPicker-1000-cpuPicker.description",
                "value": "Processor for light computing",
                "set": "cpuPicker",
                "index": 0
              },
              {
                "userEdited": false,
                "dataType": "number",
                "visibilityState": "visible",
                "editable": "true",
                "variableName": "cpuPicker.price",
                "uniqueName": "cpuPicker-1000-cpuPicker.price",
                "value": 100,
                "set": "cpuPicker",
                "index": 0
              },
              {
                "userEdited": false,
                "dataType": "number",
                "visibilityState": "visible",
                "editable": "true",
                "variableName": "cpuPicker.watts",
                "uniqueName": "cpuPicker-1000-cpuPicker.watts",
                "value": 75,
                "set": "cpuPicker",
                "index": 0
              }
            ],
            "label": "Dual Core Processor",
            "state": "visible",
            "value": "CPU16GHZI5",
            "imageUrl": "https://i.imgur.com/ftft5Nx.png",
            "orderNumber": 10,
            "productDetails": {
              "name": "CPU 1.6GHz i5"
            }
          },
          {
            "index": 1,
            "fields": [
              {
                "userEdited": false,
                "dataType": "text",
                "visibilityState": "visible",
                "editable": "false",
                "variableName": "cpuPicker.value",
                "uniqueName": "cpuPicker-1001-cpuPicker.value",
                "value": "CPU22GHZI7",
                "set": "cpuPicker",
                "index": 1
              },
              {
                "userEdited": false,
                "dataType": "boolean",
                "visibilityState": "visible",
                "editable": "true",
                "variableName": "cpuPicker.select",
                "uniqueName": "cpuPicker-1001-cpuPicker.select",
                "value": false,
                "optionSet": {
                  "options": [
                    {
                      "label": "true",
                      "state": "visible",
                      "value": "true",
                      "imageUrl": null,
                      "orderNumber": null
                    },
                    {
                      "label": "false",
                      "state": "visible",
                      "value": "false",
                      "imageUrl": null,
                      "orderNumber": null
                    }
                  ]
                },
                "set": "cpuPicker",
                "index": 1
              },
              {
                "userEdited": false,
                "dataType": "number",
                "visibilityState": "visible",
                "editable": "true",
                "variableName": "cpuPicker.quantity",
                "uniqueName": "cpuPicker-1001-cpuPicker.quantity",
                "value": 0,
                "step": 1,
                "set": "cpuPicker",
                "index": 1
              },
              {
                "userEdited": false,
                "dataType": "text",
                "visibilityState": "visible",
                "editable": "true",
                "variableName": "cpuPicker.imageUrl",
                "uniqueName": "cpuPicker-1001-cpuPicker.imageUrl",
                "value": "",
                "set": "cpuPicker",
                "index": 1
              },
              {
                "userEdited": false,
                "dataType": "text",
                "visibilityState": "visible",
                "editable": "true",
                "variableName": "cpuPicker.description",
                "uniqueName": "cpuPicker-1001-cpuPicker.description",
                "value": "Processor for light computing and office work",
                "set": "cpuPicker",
                "index": 1
              },
              {
                "userEdited": false,
                "dataType": "number",
                "visibilityState": "visible",
                "editable": "true",
                "variableName": "cpuPicker.price",
                "uniqueName": "cpuPicker-1001-cpuPicker.price",
                "value": 125,
                "set": "cpuPicker",
                "index": 1
              },
              {
                "userEdited": false,
                "dataType": "number",
                "visibilityState": "visible",
                "editable": "true",
                "variableName": "cpuPicker.watts",
                "uniqueName": "cpuPicker-1001-cpuPicker.watts",
                "value": 100,
                "set": "cpuPicker",
                "index": 1
              }
            ],
            "label": "Quad Core Processor",
            "state": "visible",
            "value": "CPU22GHZI7",
            "imageUrl": "https://i.imgur.com/ftft5Nx.png",
            "orderNumber": 20,
            "productDetails": {
              "name": "CPU 2.2GHz i7"
            }
          },
          {
            "index": 2,
            "fields": [
              {
                "userEdited": false,
                "dataType": "text",
                "visibilityState": "visible",
                "editable": "false",
                "variableName": "cpuPicker.value",
                "uniqueName": "cpuPicker-1002-cpuPicker.value",
                "value": "CPU28GHZI7",
                "set": "cpuPicker",
                "index": 2
              },
              {
                "userEdited": false,
                "dataType": "boolean",
                "visibilityState": "visible",
                "editable": "true",
                "variableName": "cpuPicker.select",
                "uniqueName": "cpuPicker-1002-cpuPicker.select",
                "value": false,
                "optionSet": {
                  "options": [
                    {
                      "label": "true",
                      "state": "visible",
                      "value": "true",
                      "imageUrl": null,
                      "orderNumber": null
                    },
                    {
                      "label": "false",
                      "state": "visible",
                      "value": "false",
                      "imageUrl": null,
                      "orderNumber": null
                    }
                  ]
                },
                "set": "cpuPicker",
                "index": 2
              },
              {
                "userEdited": false,
                "dataType": "number",
                "visibilityState": "visible",
                "editable": "true",
                "variableName": "cpuPicker.quantity",
                "uniqueName": "cpuPicker-1002-cpuPicker.quantity",
                "value": 0,
                "step": 1,
                "set": "cpuPicker",
                "index": 2
              },
              {
                "userEdited": false,
                "dataType": "text",
                "visibilityState": "visible",
                "editable": "true",
                "variableName": "cpuPicker.imageUrl",
                "uniqueName": "cpuPicker-1002-cpuPicker.imageUrl",
                "value": "",
                "set": "cpuPicker",
                "index": 2
              },
              {
                "userEdited": false,
                "dataType": "text",
                "visibilityState": "visible",
                "editable": "true",
                "variableName": "cpuPicker.description",
                "uniqueName": "cpuPicker-1002-cpuPicker.description",
                "value": "Perfect for moderate computing tasks",
                "set": "cpuPicker",
                "index": 2
              },
              {
                "userEdited": false,
                "dataType": "number",
                "visibilityState": "visible",
                "editable": "true",
                "variableName": "cpuPicker.price",
                "uniqueName": "cpuPicker-1002-cpuPicker.price",
                "value": 175,
                "set": "cpuPicker",
                "index": 2
              },
              {
                "userEdited": false,
                "dataType": "number",
                "visibilityState": "visible",
                "editable": "true",
                "variableName": "cpuPicker.watts",
                "uniqueName": "cpuPicker-1002-cpuPicker.watts",
                "value": 125,
                "set": "cpuPicker",
                "index": 2
              }
            ],
            "label": "6-Core Processor",
            "state": "visible",
            "value": "CPU28GHZI7",
            "imageUrl": "https://i.imgur.com/0xQH6mZ.png",
            "orderNumber": 30,
            "productDetails": {
              "name": "CPU 2.8GHz i7"
            }
          },
          {
            "index": 3,
            "fields": [
              {
                "userEdited": false,
                "dataType": "text",
                "visibilityState": "visible",
                "editable": "false",
                "variableName": "cpuPicker.value",
                "uniqueName": "cpuPicker-1003-cpuPicker.value",
                "value": "CPU7320GHZRYZ3",
                "set": "cpuPicker",
                "index": 3
              },
              {
                "userEdited": false,
                "dataType": "boolean",
                "visibilityState": "visible",
                "editable": "true",
                "variableName": "cpuPicker.select",
                "uniqueName": "cpuPicker-1003-cpuPicker.select",
                "value": false,
                "optionSet": {
                  "options": [
                    {
                      "label": "true",
                      "state": "visible",
                      "value": "true",
                      "imageUrl": null,
                      "orderNumber": null
                    },
                    {
                      "label": "false",
                      "state": "visible",
                      "value": "false",
                      "imageUrl": null,
                      "orderNumber": null
                    }
                  ]
                },
                "set": "cpuPicker",
                "index": 3
              },
              {
                "userEdited": false,
                "dataType": "number",
                "visibilityState": "visible",
                "editable": "true",
                "variableName": "cpuPicker.quantity",
                "uniqueName": "cpuPicker-1003-cpuPicker.quantity",
                "value": 0,
                "step": 1,
                "set": "cpuPicker",
                "index": 3
              },
              {
                "userEdited": false,
                "dataType": "text",
                "visibilityState": "visible",
                "editable": "true",
                "variableName": "cpuPicker.imageUrl",
                "uniqueName": "cpuPicker-1003-cpuPicker.imageUrl",
                "value": "",
                "set": "cpuPicker",
                "index": 3
              },
              {
                "userEdited": false,
                "dataType": "text",
                "visibilityState": "visible",
                "editable": "true",
                "variableName": "cpuPicker.description",
                "uniqueName": "cpuPicker-1003-cpuPicker.description",
                "value": "Great 3D and Video editing capabilities",
                "set": "cpuPicker",
                "index": 3
              },
              {
                "userEdited": false,
                "dataType": "number",
                "visibilityState": "visible",
                "editable": "true",
                "variableName": "cpuPicker.price",
                "uniqueName": "cpuPicker-1003-cpuPicker.price",
                "value": 225,
                "set": "cpuPicker",
                "index": 3
              },
              {
                "userEdited": false,
                "dataType": "number",
                "visibilityState": "visible",
                "editable": "true",
                "variableName": "cpuPicker.watts",
                "uniqueName": "cpuPicker-1003-cpuPicker.watts",
                "value": 150,
                "set": "cpuPicker",
                "index": 3
              }
            ],
            "label": "8-Core Processor",
            "state": "visible",
            "value": "CPU7320GHZRYZ3",
            "imageUrl": "https://i.imgur.com/0xQH6mZ.png",
            "orderNumber": 40,
            "productDetails": {
              "name": "AMD Ryzen 3 7320U"
            }
          },
          {
            "index": 4,
            "fields": [
              {
                "userEdited": false,
                "dataType": "text",
                "visibilityState": "visible",
                "editable": "false",
                "variableName": "cpuPicker.value",
                "uniqueName": "cpuPicker-1004-cpuPicker.value",
                "value": "CPU7550GHZRYZ5",
                "set": "cpuPicker",
                "index": 4
              },
              {
                "userEdited": false,
                "dataType": "boolean",
                "visibilityState": "visible",
                "editable": "true",
                "variableName": "cpuPicker.select",
                "uniqueName": "cpuPicker-1004-cpuPicker.select",
                "value": false,
                "optionSet": {
                  "options": [
                    {
                      "label": "true",
                      "state": "visible",
                      "value": "true",
                      "imageUrl": null,
                      "orderNumber": null
                    },
                    {
                      "label": "false",
                      "state": "visible",
                      "value": "false",
                      "imageUrl": null,
                      "orderNumber": null
                    }
                  ]
                },
                "set": "cpuPicker",
                "index": 4
              },
              {
                "userEdited": false,
                "dataType": "number",
                "visibilityState": "visible",
                "editable": "true",
                "variableName": "cpuPicker.quantity",
                "uniqueName": "cpuPicker-1004-cpuPicker.quantity",
                "value": 0,
                "step": 1,
                "set": "cpuPicker",
                "index": 4
              },
              {
                "userEdited": false,
                "dataType": "text",
                "visibilityState": "visible",
                "editable": "true",
                "variableName": "cpuPicker.imageUrl",
                "uniqueName": "cpuPicker-1004-cpuPicker.imageUrl",
                "value": "",
                "set": "cpuPicker",
                "index": 4
              },
              {
                "userEdited": false,
                "dataType": "text",
                "visibilityState": "visible",
                "editable": "true",
                "variableName": "cpuPicker.description",
                "uniqueName": "cpuPicker-1004-cpuPicker.description",
                "value": "Top of the line processor for AI, number crunching and cryptography",
                "set": "cpuPicker",
                "index": 4
              },
              {
                "userEdited": false,
                "dataType": "number",
                "visibilityState": "visible",
                "editable": "true",
                "variableName": "cpuPicker.price",
                "uniqueName": "cpuPicker-1004-cpuPicker.price",
                "value": 325,
                "set": "cpuPicker",
                "index": 4
              },
              {
                "userEdited": false,
                "dataType": "number",
                "visibilityState": "visible",
                "editable": "true",
                "variableName": "cpuPicker.watts",
                "uniqueName": "cpuPicker-1004-cpuPicker.watts",
                "value": 225,
                "set": "cpuPicker",
                "index": 4
              }
            ],
            "label": "12-Core Processor",
            "state": "visible",
            "value": "CPU7550GHZRYZ5",
            "imageUrl": "https://i.imgur.com/LaQVZma.png",
            "orderNumber": 50,
            "productDetails": {
              "name": "AMD Ryzen 5 7550U"
            }
          }
        ],
        "pageable": "INSTANCE",
        "totalPages": 1,
        "totalElements": 5,
        "last": true,
        "size": 5,
        "number": 0,
        "sort": {
          "empty": true,
          "sorted": false,
          "unsorted": true
        },
        "numberOfElements": 5,
        "first": true,
        "empty": false
      }
    },
    {
      "userEdited": false,
      "dataType": "set",
      "visibilityState": "visible",
      "editable": "true",
      "variableName": "delta",
      "uniqueName": "delta",
      "rows": {
        "content": [],
        "pageable": "INSTANCE",
        "totalPages": 1,
        "totalElements": 0,
        "last": true,
        "size": 0,
        "number": 0,
        "sort": {
          "empty": true,
          "sorted": false,
          "unsorted": true
        },
        "numberOfElements": 0,
        "first": true,
        "empty": true
      }
    },
    {
      "userEdited": false,
      "dataType": "number",
      "visibilityState": "visible",
      "editable": "false",
      "variableName": "ramPicker.aggregates.storage_sum",
      "uniqueName": "ramPicker.aggregates.storage_sum",
      "value": 0
    },
    {
      "userEdited": false,
      "dataType": "text",
      "visibilityState": "visible",
      "editable": "true",
      "variableName": "sys.productDescription",
      "uniqueName": "sys.productDescription",
      "value": ""
    },
    {
      "userEdited": false,
      "dataType": "text",
      "visibilityState": "visible",
      "editable": "true",
      "variableName": "sys.productUOM",
      "uniqueName": "sys.productUOM",
      "value": ""
    },
    {
      "userEdited": false,
      "dataType": "number",
      "visibilityState": "visible",
      "editable": "true",
      "variableName": "sys.productPrice",
      "uniqueName": "sys.productPrice",
      "value": 0
    },
    {
      "userEdited": false,
      "dataType": "text",
      "visibilityState": "visible",
      "editable": "true",
      "variableName": "sys.productId",
      "uniqueName": "sys.productId",
      "value": "SWC"
    },
    {
      "userEdited": false,
      "dataType": "text",
      "visibilityState": "visible",
      "editable": "true",
      "variableName": "sys.actionContext",
      "uniqueName": "sys.actionContext",
      "value": ""
    },
    {
      "userEdited": false,
      "dataType": "number",
      "visibilityState": "visible",
      "editable": "true",
      "variableName": "set.delta.size",
      "uniqueName": "set.delta.size",
      "value": []
    },
    {
      "userEdited": false,
      "dataType": "number",
      "visibilityState": "visible",
      "editable": "false",
      "variableName": "set.delta.priceSum",
      "uniqueName": "set.delta.priceSum",
      "value": 0
    },
    {
      "userEdited": false,
      "dataType": "text",
      "visibilityState": "visible",
      "editable": "true",
      "variableName": "sys.productName",
      "uniqueName": "sys.productName",
      "value": "Laptop Configurator"
    },
    {
      "userEdited": false,
      "dataType": "number",
      "visibilityState": "visible",
      "editable": "false",
      "variableName": "cpuPicker.aggregates.watts_sum",
      "uniqueName": "cpuPicker.aggregates.watts_sum",
      "value": 0
    },
    {
      "userEdited": false,
      "dataType": "number",
      "visibilityState": "visible",
      "editable": "false",
      "variableName": "ramPicker.aggregates.value_count",
      "uniqueName": "ramPicker.aggregates.value_count",
      "value": 0
    },
    {
      "userEdited": false,
      "dataType": "text",
      "visibilityState": "visible",
      "editable": "true",
      "variableName": "pleExtension",
      "uniqueName": "pleExtension",
      "value": "SSM",
      "optionSet": {
        "selectedOptions": [
          {
            "label": "Single",
            "state": "visible",
            "value": "SSM",
            "imageUrl": null,
            "orderNumber": 10
          }
        ],
        "options": [
          {
            "label": "Single",
            "state": "visible",
            "value": "SSM",
            "imageUrl": null,
            "orderNumber": 10
          },
          {
            "label": "Dual",
            "state": "visible",
            "value": "DSM",
            "imageUrl": null,
            "orderNumber": 20
          }
        ]
      }
    },
    {
      "userEdited": false,
      "dataType": "text",
      "visibilityState": "visible",
      "editable": "true",
      "variableName": "partner.quote.currencyIsoCode",
      "uniqueName": "partner.quote.currencyIsoCode",
      "value": "USD"
    },
    {
      "userEdited": false,
      "dataType": "text",
      "visibilityState": "visible",
      "editable": "true",
      "variableName": "sys.productFamily",
      "uniqueName": "sys.productFamily",
      "value": "Software"
    },
    {
      "userEdited": false,
      "dataType": "text",
      "visibilityState": "visible",
      "editable": "true",
      "variableName": "partner.quote.lineId",
      "uniqueName": "partner.quote.lineId",
      "value": ""
    },
    {
      "userEdited": false,
      "dataType": "text",
      "visibilityState": "visible",
      "editable": "true",
      "variableName": "sys.currentDate",
      "uniqueName": "sys.currentDate",
      "value": "2023-09-29"
    },
    {
      "userEdited": false,
      "dataType": "text",
      "visibilityState": "visible",
      "editable": "true",
      "variableName": "cPUType",
      "uniqueName": "cPUType",
      "value": "All",
      "optionSet": {
        "selectedOptions": [
          {
            "label": "All",
            "state": "visible",
            "value": "All",
            "imageUrl": null,
            "orderNumber": 5
          }
        ],
        "options": [
          {
            "label": "All",
            "state": "visible",
            "value": "All",
            "imageUrl": null,
            "orderNumber": 5
          },
          {
            "label": "Low",
            "state": "visible",
            "value": "Low",
            "imageUrl": null,
            "orderNumber": 7
          },
          {
            "label": "Mid",
            "state": "visible",
            "value": "Mid",
            "imageUrl": null,
            "orderNumber": 8
          },
          {
            "label": "High",
            "state": "visible",
            "value": "High",
            "imageUrl": null,
            "orderNumber": 9
          }
        ]
      }
    },
    {
      "userEdited": false,
      "dataType": "text",
      "visibilityState": "visible",
      "editable": "true",
      "variableName": "preconfigured",
      "uniqueName": "preconfigured",
      "value": "",
      "optionSet": {
        "options": [
          {
            "label": "Basic Office",
            "state": "visible",
            "value": "Basic",
            "imageUrl": null,
            "orderNumber": 10
          },
          {
            "label": "Video and 3D",
            "state": "visible",
            "value": "3D",
            "imageUrl": null,
            "orderNumber": 20
          },
          {
            "label": "Enthusiast",
            "state": "visible",
            "value": "Max",
            "imageUrl": null,
            "orderNumber": 30
          }
        ]
      }
    },
    {
      "userEdited": false,
      "dataType": "text",
      "visibilityState": "visible",
      "editable": "true",
      "variableName": "sys.productCode",
      "uniqueName": "sys.productCode",
      "value": "SWC"
    },
    {
      "userEdited": false,
      "dataType": "text",
      "visibilityState": "visible",
      "editable": "true",
      "variableName": "partner.quote.pricebookId",
      "uniqueName": "partner.quote.pricebookId",
      "value": ""
    },
    {
      "userEdited": false,
      "dataType": "text",
      "visibilityState": "visible",
      "editable": "true",
      "variableName": "partner.quote.id",
      "uniqueName": "partner.quote.id",
      "value": ""
    }
  ],
  "uuid": "ad947503-5246-461f-8603-f0124593ae1c",
  "revision": 0,
  "relatedChanges": [
    {
      "key": "drivePicker",
      "type": "PRODUCT_PICKER"
    },
    {
      "key": "ramPicker",
      "type": "PRODUCT_PICKER"
    },
    {
      "key": "cpuPicker",
      "type": "PRODUCT_PICKER"
    },
    {
      "key": "delta",
      "type": "SET"
    },
    {
      "key": "products",
      "type": "PRODUCT"
    }
  ],
  "valid": true,
  "messages": [],
  "productChange": true,
  "products": [
    {
      "id": "SSM",
      "quantity": 1,
      "bomType": "Sales",
      "price": 125,
      "uniqueIdentifier": "motherboard",
      "orderNumber": 10,
      "type": "accessory",
      "name": "Single Motherboard",
      "partnerId": "01t6e000009gRTpAAM",
      "productCode": "SSM",
      "externalId": "",
      "productFamily": "",
      "description": "",
      "uom": "",
      "extPrice": 125,
      "level": 0,
      "rollUpPrice": 125
    }
  ],
  "showValidationButton": false,
  "total": 125,
  "layouts": [
    {
      "url": "/blueprints/8/revisions/LATEST/layouts/1",
      "label": "basic",
      "variableName": "pickerGeneral_basic"
    }
  ]
}

Responses

Status Meaning Description Schema
200 OK Returns state of fields, messages and products ConfigResponseV2
400 Bad Request Bad request. See errorMessage for additional details. ErrorResponse
401 Unauthorized Authorization information is missing or invalid. None
403 Forbidden Credentials are valid but insufficient privileges to perform the action on the resource. None
404 Not Found Resource was not found. See errorMessage for additional details. ErrorResponse
5XX Unknown Unexpected Server Error. ErrorResponse

Bill of Materials

Get Bill of Materials (BOM) information for a given configuration UUID.

Get BOM

Code samples

import requests
headers = {
  'Accept': 'application/json',
  'Origin': 'string',
  'Authorization': 'Bearer {access-token}'
}

r = requests.get('https://{tenant}.{sector}.logik.io/api/{uuid}/bom', params={
  'page': '0',  'limit': '100',  'sort': 'modified%2CDESC'
}, headers = headers)

print(r.json())


const headers = {
  'Accept':'application/json',
  'Origin':'string',
  'Authorization':'Bearer {access-token}'
};

fetch('https://{tenant}.{sector}.logik.io/api/{uuid}/bom?page=0&limit=100&sort=modified%2CDESC',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/json',
  'Origin':'string',
  'Authorization':'Bearer {access-token}'
};

fetch('https://{tenant}.{sector}.logik.io/api/{uuid}/bom?page=0&limit=100&sort=modified%2CDESC',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

# You can also use wget
curl -X GET https://{tenant}.{sector}.logik.io/api/{uuid}/bom?page=0&limit=100&sort=modified%2CDESC \
  -H 'Accept: application/json' \
  -H 'Origin: string' \
  -H 'Authorization: Bearer {access-token}'

GET https://{tenant}.{sector}.logik.io/api/{uuid}/bom?page=0&limit=100&sort=modified%2CDESC HTTP/1.1

Accept: application/json
Origin: string

URL obj = new URL("https://{tenant}.{sector}.logik.io/api/{uuid}/bom?page=0&limit=100&sort=modified%2CDESC");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/json',
  'Origin' => 'string',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.get 'https://{tenant}.{sector}.logik.io/api/{uuid}/bom',
  params: {
  'page' => 'number',
'limit' => 'number',
'sort' => 'string'
}, headers: headers

p JSON.parse(result)

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        "Origin": []string{"string"},
        "Authorization": []string{"Bearer {access-token}"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "https://{tenant}.{sector}.logik.io/api/{uuid}/bom", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

GET /api/{uuid}/bom

Get BOM with the given uuid for current state of Configuration

Parameters

Name In Type Required Description
Origin header string true Request Origin, needs to be one of the allowed origins for the Runtime Token being used.
uuid path string true Unique Configuration ID Value
page query number true Page number of results to return
limit query number true Size of the paged data results
sort query string true Sort field and order of the results, specify property and order{asc
bomType query string false Pass comma separated list of bom types to be returned

Example responses

200 Response

{
  "products": [
    {
      "id": "string",
      "selectionType": "string",
      "quantity": 0,
      "bomType": "string",
      "level": 0,
      "parentProduct": 0,
      "notes": "string",
      "uniqueIdentifier": 0,
      "description": "string",
      "externalId": "string",
      "name": "string",
      "price": 0,
      "extPrice": 0,
      "extended": {
        "additionalProperties": "string"
      }
    }
  ],
  "pageable": {
    "sort": {
      "empty": true,
      "sorted": true,
      "unsorted": true
    },
    "offset": 0,
    "pageNumber": 0,
    "pageSize": 0,
    "paged": true,
    "unpaged": true
  },
  "totalPages": 0,
  "totalElements": 0,
  "last": true,
  "size": 0,
  "number": 0,
  "numberOfElements": 0,
  "first": true,
  "empty": true,
  "total": 0
}

Responses

Status Meaning Description Schema
200 OK Return Entire BOM snapshot of Configuration BOMResponse
400 Bad Request Bad request. See errorMessage for additional details. ErrorResponse
401 Unauthorized Authorization information is missing or invalid. None
403 Forbidden Credentials are valid but insufficient privileges to perform the action on the resource. None
404 Not Found Resource was not found. See errorMessage for additional details. ErrorResponse
5XX Unknown Unexpected Server Error. ErrorResponse

Get Sales BOM

Code samples

import requests
headers = {
  'Accept': 'application/json',
  'Origin': 'string',
  'Authorization': 'Bearer {access-token}'
}

r = requests.get('https://{tenant}.{sector}.logik.io/api/{uuid}/bom/sales', params={
  'page': '0',  'limit': '100',  'sort': 'modified%2CDESC'
}, headers = headers)

print(r.json())


const headers = {
  'Accept':'application/json',
  'Origin':'string',
  'Authorization':'Bearer {access-token}'
};

fetch('https://{tenant}.{sector}.logik.io/api/{uuid}/bom/sales?page=0&limit=100&sort=modified%2CDESC',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/json',
  'Origin':'string',
  'Authorization':'Bearer {access-token}'
};

fetch('https://{tenant}.{sector}.logik.io/api/{uuid}/bom/sales?page=0&limit=100&sort=modified%2CDESC',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

# You can also use wget
curl -X GET https://{tenant}.{sector}.logik.io/api/{uuid}/bom/sales?page=0&limit=100&sort=modified%2CDESC \
  -H 'Accept: application/json' \
  -H 'Origin: string' \
  -H 'Authorization: Bearer {access-token}'

GET https://{tenant}.{sector}.logik.io/api/{uuid}/bom/sales?page=0&limit=100&sort=modified%2CDESC HTTP/1.1

Accept: application/json
Origin: string

URL obj = new URL("https://{tenant}.{sector}.logik.io/api/{uuid}/bom/sales?page=0&limit=100&sort=modified%2CDESC");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/json',
  'Origin' => 'string',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.get 'https://{tenant}.{sector}.logik.io/api/{uuid}/bom/sales',
  params: {
  'page' => 'number',
'limit' => 'number',
'sort' => 'string'
}, headers: headers

p JSON.parse(result)

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        "Origin": []string{"string"},
        "Authorization": []string{"Bearer {access-token}"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "https://{tenant}.{sector}.logik.io/api/{uuid}/bom/sales", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

GET /api/{uuid}/bom/sales

Get Sales BOM with the given uuid for current state of Configuration

Parameters

Name In Type Required Description
Origin header string true Request Origin, needs to be one of the allowed origins for the Runtime Token being used.
uuid path string true Unique Configuration ID Value
page query number true Page number of results to return
limit query number true Size of the paged data results
sort query string true Sort field and order of the results, specify property and order{asc

Example responses

200 Response

{
  "products": [
    {
      "id": "string",
      "selectionType": "string",
      "quantity": 0,
      "bomType": "string",
      "level": 0,
      "parentProduct": 0,
      "notes": "string",
      "uniqueIdentifier": 0,
      "description": "string",
      "externalId": "string",
      "name": "string",
      "price": 0,
      "extPrice": 0,
      "extended": {
        "additionalProperties": "string"
      }
    }
  ],
  "pageable": {
    "sort": {
      "empty": true,
      "sorted": true,
      "unsorted": true
    },
    "offset": 0,
    "pageNumber": 0,
    "pageSize": 0,
    "paged": true,
    "unpaged": true
  },
  "totalPages": 0,
  "totalElements": 0,
  "last": true,
  "size": 0,
  "number": 0,
  "numberOfElements": 0,
  "first": true,
  "empty": true,
  "total": 0
}

Responses

Status Meaning Description Schema
200 OK Return current sales BOM of Configuration BOMResponse
400 Bad Request Bad request. See errorMessage for additional details. ErrorResponse
401 Unauthorized Authorization information is missing or invalid. None
403 Forbidden Credentials are valid but insufficient privileges to perform the action on the resource. None
404 Not Found Resource was not found. See errorMessage for additional details. ErrorResponse
5XX Unknown Unexpected Server Error. ErrorResponse

Get Manufacturing BOM

Code samples

import requests
headers = {
  'Accept': 'application/json',
  'Origin': 'string',
  'Authorization': 'Bearer {access-token}'
}

r = requests.get('https://{tenant}.{sector}.logik.io/api/{uuid}/bom/manufacturing', params={
  'page': '0',  'limit': '100',  'sort': 'modified%2CDESC'
}, headers = headers)

print(r.json())


const headers = {
  'Accept':'application/json',
  'Origin':'string',
  'Authorization':'Bearer {access-token}'
};

fetch('https://{tenant}.{sector}.logik.io/api/{uuid}/bom/manufacturing?page=0&limit=100&sort=modified%2CDESC',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/json',
  'Origin':'string',
  'Authorization':'Bearer {access-token}'
};

fetch('https://{tenant}.{sector}.logik.io/api/{uuid}/bom/manufacturing?page=0&limit=100&sort=modified%2CDESC',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

# You can also use wget
curl -X GET https://{tenant}.{sector}.logik.io/api/{uuid}/bom/manufacturing?page=0&limit=100&sort=modified%2CDESC \
  -H 'Accept: application/json' \
  -H 'Origin: string' \
  -H 'Authorization: Bearer {access-token}'

GET https://{tenant}.{sector}.logik.io/api/{uuid}/bom/manufacturing?page=0&limit=100&sort=modified%2CDESC HTTP/1.1

Accept: application/json
Origin: string

URL obj = new URL("https://{tenant}.{sector}.logik.io/api/{uuid}/bom/manufacturing?page=0&limit=100&sort=modified%2CDESC");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/json',
  'Origin' => 'string',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.get 'https://{tenant}.{sector}.logik.io/api/{uuid}/bom/manufacturing',
  params: {
  'page' => 'number',
'limit' => 'number',
'sort' => 'string'
}, headers: headers

p JSON.parse(result)

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        "Origin": []string{"string"},
        "Authorization": []string{"Bearer {access-token}"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "https://{tenant}.{sector}.logik.io/api/{uuid}/bom/manufacturing", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

GET /api/{uuid}/bom/manufacturing

Get Manufacturing BOM with the given uuid for current state of Configuration.

Parameters

Name In Type Required Description
Origin header string true Request Origin, needs to be one of the allowed origins for the Runtime Token being used.
uuid path string true Unique Configuration ID Value
page query number true Page number of results to return
limit query number true Size of the paged data results
sort query string true Sort field and order of the results, specify property and order{asc

Example responses

200 Response

{
  "products": [
    {
      "id": "string",
      "selectionType": "string",
      "quantity": 0,
      "bomType": "string",
      "level": 0,
      "parentProduct": 0,
      "notes": "string",
      "uniqueIdentifier": 0,
      "description": "string",
      "externalId": "string",
      "name": "string",
      "price": 0,
      "extPrice": 0,
      "extended": {
        "additionalProperties": "string"
      }
    }
  ],
  "pageable": {
    "sort": {
      "empty": true,
      "sorted": true,
      "unsorted": true
    },
    "offset": 0,
    "pageNumber": 0,
    "pageSize": 0,
    "paged": true,
    "unpaged": true
  },
  "totalPages": 0,
  "totalElements": 0,
  "last": true,
  "size": 0,
  "number": 0,
  "numberOfElements": 0,
  "first": true,
  "empty": true,
  "total": 0
}

Responses

Status Meaning Description Schema
200 OK Return Manufacturing BOM snapshot of Configuration BOMResponse
400 Bad Request Bad request. See errorMessage for additional details. ErrorResponse
401 Unauthorized Authorization information is missing or invalid. None
403 Forbidden Credentials are valid but insufficient privileges to perform the action on the resource. None
404 Not Found Resource was not found. See errorMessage for additional details. ErrorResponse
5XX Unknown Unexpected Server Error. ErrorResponse

Get Custom BOM

Code samples

import requests
headers = {
  'Accept': 'application/json',
  'Origin': 'string',
  'Authorization': 'Bearer {access-token}'
}

r = requests.get('https://{tenant}.{sector}.logik.io/api/{uuid}/bom/{custom}', params={
  'page': '0',  'limit': '100',  'sort': 'modified%2CDESC'
}, headers = headers)

print(r.json())


const headers = {
  'Accept':'application/json',
  'Origin':'string',
  'Authorization':'Bearer {access-token}'
};

fetch('https://{tenant}.{sector}.logik.io/api/{uuid}/bom/{custom}?page=0&limit=100&sort=modified%2CDESC',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/json',
  'Origin':'string',
  'Authorization':'Bearer {access-token}'
};

fetch('https://{tenant}.{sector}.logik.io/api/{uuid}/bom/{custom}?page=0&limit=100&sort=modified%2CDESC',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

# You can also use wget
curl -X GET https://{tenant}.{sector}.logik.io/api/{uuid}/bom/{custom}?page=0&limit=100&sort=modified%2CDESC \
  -H 'Accept: application/json' \
  -H 'Origin: string' \
  -H 'Authorization: Bearer {access-token}'

GET https://{tenant}.{sector}.logik.io/api/{uuid}/bom/{custom}?page=0&limit=100&sort=modified%2CDESC HTTP/1.1

Accept: application/json
Origin: string

URL obj = new URL("https://{tenant}.{sector}.logik.io/api/{uuid}/bom/{custom}?page=0&limit=100&sort=modified%2CDESC");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/json',
  'Origin' => 'string',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.get 'https://{tenant}.{sector}.logik.io/api/{uuid}/bom/{custom}',
  params: {
  'page' => 'number',
'limit' => 'number',
'sort' => 'string'
}, headers: headers

p JSON.parse(result)

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        "Origin": []string{"string"},
        "Authorization": []string{"Bearer {access-token}"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "https://{tenant}.{sector}.logik.io/api/{uuid}/bom/{custom}", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

GET /api/{uuid}/bom/{custom}

Get Custom BOM type line items defined in the admin

Parameters

Name In Type Required Description
Origin header string true Request Origin, needs to be one of the allowed origins for the Runtime Token being used.
custom path string true Custom BOM Type name
uuid path string true Unique Configuration ID Value
page query number true Page number of results to return
limit query number true Size of the paged data results
sort query string true Sort field and order of the results, specify property and order{asc

Example responses

200 Response

{
  "products": [
    {
      "id": "string",
      "selectionType": "string",
      "quantity": 0,
      "bomType": "string",
      "level": 0,
      "parentProduct": 0,
      "notes": "string",
      "uniqueIdentifier": 0,
      "description": "string",
      "externalId": "string",
      "name": "string",
      "price": 0,
      "extPrice": 0,
      "extended": {
        "additionalProperties": "string"
      }
    }
  ],
  "pageable": {
    "sort": {
      "empty": true,
      "sorted": true,
      "unsorted": true
    },
    "offset": 0,
    "pageNumber": 0,
    "pageSize": 0,
    "paged": true,
    "unpaged": true
  },
  "totalPages": 0,
  "totalElements": 0,
  "last": true,
  "size": 0,
  "number": 0,
  "numberOfElements": 0,
  "first": true,
  "empty": true,
  "total": 0
}

Responses

Status Meaning Description Schema
200 OK Returns BOM snapshot of Configuration BOMResponse
400 Bad Request Bad request. See errorMessage for additional details. ErrorResponse
401 Unauthorized Authorization information is missing or invalid. None
403 Forbidden Credentials are valid but insufficient privileges to perform the action on the resource. None
404 Not Found Resource was not found. See errorMessage for additional details. ErrorResponse
5XX Unknown Unexpected Server Error. ErrorResponse

Blueprint

Blueprints

Get List of Blueprints

Code samples

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.get('https://{tenant}.{sector}.logik.io/api/admin/v2/blueprints', params={
  'page': '0',  'size': '100',  'sort': 'modified%2CDESC'
}, headers = headers)

print(r.json())


const headers = {
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'
};

fetch('https://{tenant}.{sector}.logik.io/api/admin/v2/blueprints?page=0&size=100&sort=modified%2CDESC',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'
};

fetch('https://{tenant}.{sector}.logik.io/api/admin/v2/blueprints?page=0&size=100&sort=modified%2CDESC',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

# You can also use wget
curl -X GET https://{tenant}.{sector}.logik.io/api/admin/v2/blueprints?page=0&size=100&sort=modified%2CDESC \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

GET https://{tenant}.{sector}.logik.io/api/admin/v2/blueprints?page=0&size=100&sort=modified%2CDESC HTTP/1.1

Accept: application/json

URL obj = new URL("https://{tenant}.{sector}.logik.io/api/admin/v2/blueprints?page=0&size=100&sort=modified%2CDESC");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/json',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.get 'https://{tenant}.{sector}.logik.io/api/admin/v2/blueprints',
  params: {
  'page' => 'number',
'size' => 'number',
'sort' => 'string'
}, headers: headers

p JSON.parse(result)

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        "Authorization": []string{"Bearer {access-token}"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "https://{tenant}.{sector}.logik.io/api/admin/v2/blueprints", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

GET /api/admin/v2/blueprints

Parameters

Name In Type Required Description
page query number true Page number of results to return
size query number true Number of results to return
sort query string true Sort field and order of the results

Example responses

200 Response

{
  "content": [
    {
      "id": 12,
      "name": "PC Builder",
      "variableName": "pCBuilder",
      "description": "",
      "modified": "2023-09-13T16:21:28.590092Z",
      "lastModifiedBy": "scheck@cpq1.logik.dev"
    },
    {
      "id": 18,
      "name": "newBP",
      "variableName": "newBP",
      "description": "ls",
      "modified": "2023-09-11T20:55:11.005400Z",
      "lastModifiedBy": "scheck@cpq1.logik.dev"
    },
    {
      "id": 8,
      "name": "ComputerBP",
      "variableName": "pickerGeneral",
      "description": "",
      "modified": "2023-09-07T13:49:40.877294Z",
      "lastModifiedBy": "scheck@cpq1.logik.dev"
    }
  ],
  "pageable": {
    "sort": {
      "empty": false,
      "sorted": true,
      "unsorted": false
    },
    "offset": 0,
    "pageNumber": 0,
    "pageSize": 100,
    "paged": true,
    "unpaged": false
  },
  "totalPages": 1,
  "last": true,
  "totalElements": 14,
  "size": 100,
  "number": 0,
  "sort": {
    "empty": false,
    "sorted": true,
    "unsorted": false
  },
  "numberOfElements": 14,
  "first": true,
  "empty": false
}

Responses

Status Meaning Description Schema
200 OK List of Blueprints BlueprintListResponse

Get a Blueprint

Code samples

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.get('https://{tenant}.{sector}.logik.io/api/admin/v1/blueprints/{blueprintName}', headers = headers)

print(r.json())


const headers = {
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'
};

fetch('https://{tenant}.{sector}.logik.io/api/admin/v1/blueprints/{blueprintName}',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'
};

fetch('https://{tenant}.{sector}.logik.io/api/admin/v1/blueprints/{blueprintName}',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

# You can also use wget
curl -X GET https://{tenant}.{sector}.logik.io/api/admin/v1/blueprints/{blueprintName} \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

GET https://{tenant}.{sector}.logik.io/api/admin/v1/blueprints/{blueprintName} HTTP/1.1

Accept: application/json

URL obj = new URL("https://{tenant}.{sector}.logik.io/api/admin/v1/blueprints/{blueprintName}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/json',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.get 'https://{tenant}.{sector}.logik.io/api/admin/v1/blueprints/{blueprintName}',
  params: {
  }, headers: headers

p JSON.parse(result)

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        "Authorization": []string{"Bearer {access-token}"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "https://{tenant}.{sector}.logik.io/api/admin/v1/blueprints/{blueprintName}", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

GET /api/admin/v1/blueprints/{blueprintName}

Parameters

Name In Type Required Description
blueprintName path string true Blueprint variable name

Example responses

200 Response

{
  "id": 12,
  "name": "PC Builder",
  "variableName": "pCBuilder",
  "description": "",
  "fields": [
    "cPUType",
    "endDate",
    "pleExtension"
  ],
  "rules": [
    "dummy_sc",
    "dateSet",
    "msgaboveField"
  ],
  "sets": [
    "delta"
  ],
  "layouts": [
    {
      "created": "2023-09-07T13:37:51.195021Z",
      "modified": "2023-09-07T13:37:51.195021Z",
      "id": 131,
      "label": "test",
      "variableName": "pCBuilder_test",
      "lastModifiedBy": "scheck@cpq1.logik.dev",
      "hasLayoutFile": true
    }
  ],
  "created": "2023-06-21T22:21:12.627813Z",
  "modified": "2023-09-15T17:39:47.990406Z",
  "lastModifiedBy": "scheck@cpq1.logik.dev"
}

Responses

Status Meaning Description Schema
200 OK Details about a specific blueprint BlueprintResponse

Update a Blueprint

Code samples

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.put('https://{tenant}.{sector}.logik.io/api/admin/v1/blueprints/{blueprintName}', headers = headers)

print(r.json())

const inputBody = '{
  "id": 12,
  "name": "PC Builder",
  "variableName": "pCBuilder",
  "description": "",
  "fields": [
    "cPUType",
    "textTest_swc",
    "endDate",
    "pleExtension",
    "hidden_sc",
    "startDate",
    "pricer_sc",
    "cpuPicker"
  ],
  "rules": [
    "dummy_sc",
    "dateSet",
    "msgaboveField"
  ],
  "sets": [
    "delta"
  ],
  "layouts": [
    {
      "created": "2023-09-07T13:37:51.195021Z",
      "modified": "2023-09-07T13:37:51.195021Z",
      "id": 131,
      "label": "test",
      "variableName": "pCBuilder_test",
      "lastModifiedBy": "scheck@cpq1.logik.dev",
      "hasLayoutFile": true
    }
  ],
  "created": "2023-06-21T22:21:12.627813Z",
  "modified": "2023-09-13T16:21:28.590092Z",
  "lastModifiedBy": "scheck@cpq1.logik.dev"
}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'
};

fetch('https://{tenant}.{sector}.logik.io/api/admin/v1/blueprints/{blueprintName}',
{
  method: 'PUT',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

const fetch = require('node-fetch');
const inputBody = {
  "id": 12,
  "name": "PC Builder",
  "variableName": "pCBuilder",
  "description": "",
  "fields": [
    "cPUType",
    "textTest_swc",
    "endDate",
    "pleExtension",
    "hidden_sc",
    "startDate",
    "pricer_sc",
    "cpuPicker"
  ],
  "rules": [
    "dummy_sc",
    "dateSet",
    "msgaboveField"
  ],
  "sets": [
    "delta"
  ],
  "layouts": [
    {
      "created": "2023-09-07T13:37:51.195021Z",
      "modified": "2023-09-07T13:37:51.195021Z",
      "id": 131,
      "label": "test",
      "variableName": "pCBuilder_test",
      "lastModifiedBy": "scheck@cpq1.logik.dev",
      "hasLayoutFile": true
    }
  ],
  "created": "2023-06-21T22:21:12.627813Z",
  "modified": "2023-09-13T16:21:28.590092Z",
  "lastModifiedBy": "scheck@cpq1.logik.dev"
};
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'
};

fetch('https://{tenant}.{sector}.logik.io/api/admin/v1/blueprints/{blueprintName}',
{
  method: 'PUT',
  body: JSON.stringify(inputBody),
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

# You can also use wget
curl -X PUT https://{tenant}.{sector}.logik.io/api/admin/v1/blueprints/{blueprintName} \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

PUT https://{tenant}.{sector}.logik.io/api/admin/v1/blueprints/{blueprintName} HTTP/1.1

Content-Type: application/json
Accept: application/json

URL obj = new URL("https://{tenant}.{sector}.logik.io/api/admin/v1/blueprints/{blueprintName}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("PUT");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Accept' => 'application/json',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.put 'https://{tenant}.{sector}.logik.io/api/admin/v1/blueprints/{blueprintName}',
  params: {
  }, headers: headers

p JSON.parse(result)

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/json"},
        "Authorization": []string{"Bearer {access-token}"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("PUT", "https://{tenant}.{sector}.logik.io/api/admin/v1/blueprints/{blueprintName}", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

PUT /api/admin/v1/blueprints/{blueprintName}

Body parameter

{
  "id": 12,
  "name": "PC Builder",
  "variableName": "pCBuilder",
  "description": "",
  "fields": [
    "cPUType",
    "textTest_swc",
    "endDate",
    "pleExtension",
    "hidden_sc",
    "startDate",
    "pricer_sc",
    "cpuPicker"
  ],
  "rules": [
    "dummy_sc",
    "dateSet",
    "msgaboveField"
  ],
  "sets": [
    "delta"
  ],
  "layouts": [
    {
      "created": "2023-09-07T13:37:51.195021Z",
      "modified": "2023-09-07T13:37:51.195021Z",
      "id": 131,
      "label": "test",
      "variableName": "pCBuilder_test",
      "lastModifiedBy": "scheck@cpq1.logik.dev",
      "hasLayoutFile": true
    }
  ],
  "created": "2023-06-21T22:21:12.627813Z",
  "modified": "2023-09-13T16:21:28.590092Z",
  "lastModifiedBy": "scheck@cpq1.logik.dev"
}

Parameters

Name In Type Required Description
blueprintName path string true Blueprint variable name
body body Blueprint true none

Example responses

200 Response

{
  "id": 12,
  "name": "PC Builder",
  "variableName": "pCBuilder",
  "description": "",
  "fields": [
    "cPUType",
    "textTest_swc",
    "endDate",
    "pleExtension",
    "hidden_sc",
    "startDate",
    "pricer_sc",
    "cpuPicker"
  ],
  "rules": [
    "dummy_sc",
    "dateSet",
    "msgaboveField"
  ],
  "sets": [
    "delta"
  ],
  "layouts": [
    {
      "created": "2023-09-07T13:37:51.195021Z",
      "modified": "2023-09-07T13:37:51.195021Z",
      "id": 131,
      "label": "test",
      "variableName": "pCBuilder_test",
      "lastModifiedBy": "scheck@cpq1.logik.dev",
      "hasLayoutFile": true
    }
  ],
  "created": "2023-06-21T22:21:12.627813Z",
  "modified": "2023-09-13T16:21:28.590092Z",
  "lastModifiedBy": "scheck@cpq1.logik.dev"
}

Responses

Status Meaning Description Schema
200 OK Updated Blueprint Data Blueprint

Delete a Blueprint

Code samples

import requests
headers = {
  'Authorization': 'Bearer {access-token}'
}

r = requests.delete('https://{tenant}.{sector}.logik.io/api/admin/v1/blueprints/{blueprintName}', headers = headers)

print(r.json())


const headers = {
  'Authorization':'Bearer {access-token}'
};

fetch('https://{tenant}.{sector}.logik.io/api/admin/v1/blueprints/{blueprintName}',
{
  method: 'DELETE',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

const fetch = require('node-fetch');

const headers = {
  'Authorization':'Bearer {access-token}'
};

fetch('https://{tenant}.{sector}.logik.io/api/admin/v1/blueprints/{blueprintName}',
{
  method: 'DELETE',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

# You can also use wget
curl -X DELETE https://{tenant}.{sector}.logik.io/api/admin/v1/blueprints/{blueprintName} \
  -H 'Authorization: Bearer {access-token}'

DELETE https://{tenant}.{sector}.logik.io/api/admin/v1/blueprints/{blueprintName} HTTP/1.1

URL obj = new URL("https://{tenant}.{sector}.logik.io/api/admin/v1/blueprints/{blueprintName}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("DELETE");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

require 'rest-client'
require 'json'

headers = {
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.delete 'https://{tenant}.{sector}.logik.io/api/admin/v1/blueprints/{blueprintName}',
  params: {
  }, headers: headers

p JSON.parse(result)

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Authorization": []string{"Bearer {access-token}"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("DELETE", "https://{tenant}.{sector}.logik.io/api/admin/v1/blueprints/{blueprintName}", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

DELETE /api/admin/v1/blueprints/{blueprintName}

Parameters

Name In Type Required Description
blueprintName path string true Blueprint variable name

Responses

Status Meaning Description Schema
204 No Content Deleted None

Blueprint > Details

Retrieve and update Blueprint details

Get Blueprint Available Fields

Code samples

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.get('https://{tenant}.{sector}.logik.io/api/admin/v2/blueprints/{blueprintName}/availableFields', params={
  'page': '0',  'size': '100'
}, headers = headers)

print(r.json())


const headers = {
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'
};

fetch('https://{tenant}.{sector}.logik.io/api/admin/v2/blueprints/{blueprintName}/availableFields?page=0&size=100',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'
};

fetch('https://{tenant}.{sector}.logik.io/api/admin/v2/blueprints/{blueprintName}/availableFields?page=0&size=100',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

# You can also use wget
curl -X GET https://{tenant}.{sector}.logik.io/api/admin/v2/blueprints/{blueprintName}/availableFields?page=0&size=100 \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

GET https://{tenant}.{sector}.logik.io/api/admin/v2/blueprints/{blueprintName}/availableFields?page=0&size=100 HTTP/1.1

Accept: application/json

URL obj = new URL("https://{tenant}.{sector}.logik.io/api/admin/v2/blueprints/{blueprintName}/availableFields?page=0&size=100");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/json',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.get 'https://{tenant}.{sector}.logik.io/api/admin/v2/blueprints/{blueprintName}/availableFields',
  params: {
  'page' => 'number',
'size' => 'number'
}, headers: headers

p JSON.parse(result)

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        "Authorization": []string{"Bearer {access-token}"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "https://{tenant}.{sector}.logik.io/api/admin/v2/blueprints/{blueprintName}/availableFields", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

GET /api/admin/v2/blueprints/{blueprintName}/availableFields

Returns a list of Available Fields that can be associated with the blueprint

Parameters

Name In Type Required Description
blueprintName path string true Blueprint variable name
page query number true Page number of results to return
size query number true Number of results to return

Example responses

200 Response

{
  "content": [
    {
      "id": 303,
      "name": "jacksonFakeField10",
      "variableName": "jacksonFakeField10",
      "description": null,
      "type": "Number",
      "modified": "2023-07-11T16:32:35.498893Z",
      "category": "USER",
      "lastModifiedBy": "scheck@cpq1.logik.dev"
    },
    {
      "id": 323,
      "name": "FletchTestPicker2",
      "variableName": "fletchTestPicker2",
      "description": null,
      "type": "ProductPicker",
      "modified": "2023-07-17T23:00:27.861311Z",
      "category": "PRODUCT_PICKER",
      "selectType": "multi",
      "lastModifiedBy": "scheck@cpq1.logik.dev"
    },
    {
      "id": 281,
      "name": "jacksonPolicy",
      "variableName": "jacksonPolicy",
      "description": null,
      "type": "Picklist",
      "modified": "2023-07-05T13:47:14.613554Z",
      "category": "USER",
      "selectType": "single",
      "lastModifiedBy": "scheck@cpq1.logik.dev"
    }
  ],
  "pageable": {
    "sort": {
      "empty": true,
      "sorted": false,
      "unsorted": true
    },
    "offset": 0,
    "pageNumber": 0,
    "pageSize": 100,
    "paged": true,
    "unpaged": false
  },
  "totalPages": 1,
  "last": true,
  "totalElements": 62,
  "size": 100,
  "number": 0,
  "sort": {
    "empty": true,
    "sorted": false,
    "unsorted": true
  },
  "numberOfElements": 62,
  "first": true,
  "empty": false
}

Responses

Status Meaning Description Schema
200 OK none BlueprintAvailableFieldsResponse

Get Enrichment Scripts

Code samples

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.get('https://{tenant}.{sector}.logik.io/api/admin/v1/blueprints/{blueprintName}/scripts', headers = headers)

print(r.json())


const headers = {
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'
};

fetch('https://{tenant}.{sector}.logik.io/api/admin/v1/blueprints/{blueprintName}/scripts',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'
};

fetch('https://{tenant}.{sector}.logik.io/api/admin/v1/blueprints/{blueprintName}/scripts',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

# You can also use wget
curl -X GET https://{tenant}.{sector}.logik.io/api/admin/v1/blueprints/{blueprintName}/scripts \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

GET https://{tenant}.{sector}.logik.io/api/admin/v1/blueprints/{blueprintName}/scripts HTTP/1.1

Accept: application/json

URL obj = new URL("https://{tenant}.{sector}.logik.io/api/admin/v1/blueprints/{blueprintName}/scripts");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/json',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.get 'https://{tenant}.{sector}.logik.io/api/admin/v1/blueprints/{blueprintName}/scripts',
  params: {
  }, headers: headers

p JSON.parse(result)

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        "Authorization": []string{"Bearer {access-token}"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "https://{tenant}.{sector}.logik.io/api/admin/v1/blueprints/{blueprintName}/scripts", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

GET /api/admin/v1/blueprints/{blueprintName}/scripts

Get Enrichment Scripts for a Blueprint

Parameters

Name In Type Required Description
blueprintName path string true Blueprint variable name

Example responses

200 Response

[
  {
    "created": "2023-09-15T17:40:39.187492Z",
    "modified": "2023-09-15T17:40:39.187492Z",
    "id": 9,
    "scriptArea": "INIT",
    "script": {
      "created": "2023-09-15T17:40:39.199291Z",
      "modified": "2023-09-15T17:40:39.199291Z",
      "id": 41,
      "content": "var x=1;\nreturn cfgRequest;",
      "returnType": "map"
    },
    "runOnDemand": false,
    "forcedOnDemand": false
  }
]

Responses

Status Meaning Description Schema
200 OK none BlueprintScriptListResponse

Create an Enrichment Script

Code samples

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.post('https://{tenant}.{sector}.logik.io/api/admin/v1/blueprints/{blueprintName}/scripts/{scriptType}', headers = headers)

print(r.json())

const inputBody = '{
  "script": {
    "content": "var x=1;\nreturn cfgRequest;",
    "returnType": "map"
  },
  "runOnDemand": false
}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'
};

fetch('https://{tenant}.{sector}.logik.io/api/admin/v1/blueprints/{blueprintName}/scripts/{scriptType}',
{
  method: 'POST',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

const fetch = require('node-fetch');
const inputBody = {
  "script": {
    "content": "var x=1;\nreturn cfgRequest;",
    "returnType": "map"
  },
  "runOnDemand": false
};
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'
};

fetch('https://{tenant}.{sector}.logik.io/api/admin/v1/blueprints/{blueprintName}/scripts/{scriptType}',
{
  method: 'POST',
  body: JSON.stringify(inputBody),
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

# You can also use wget
curl -X POST https://{tenant}.{sector}.logik.io/api/admin/v1/blueprints/{blueprintName}/scripts/{scriptType} \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

POST https://{tenant}.{sector}.logik.io/api/admin/v1/blueprints/{blueprintName}/scripts/{scriptType} HTTP/1.1

Content-Type: application/json
Accept: application/json

URL obj = new URL("https://{tenant}.{sector}.logik.io/api/admin/v1/blueprints/{blueprintName}/scripts/{scriptType}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Accept' => 'application/json',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.post 'https://{tenant}.{sector}.logik.io/api/admin/v1/blueprints/{blueprintName}/scripts/{scriptType}',
  params: {
  }, headers: headers

p JSON.parse(result)

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/json"},
        "Authorization": []string{"Bearer {access-token}"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "https://{tenant}.{sector}.logik.io/api/admin/v1/blueprints/{blueprintName}/scripts/{scriptType}", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

POST /api/admin/v1/blueprints/{blueprintName}/scripts/{scriptType}

Body parameter

{
  "script": {
    "content": "var x=1;\nreturn cfgRequest;",
    "returnType": "map"
  },
  "runOnDemand": false
}

Parameters

Name In Type Required Description
blueprintName path string true Blueprint variable name
scriptType path string true none
body body BlueprintEnrichmentScript true none

Enumerated Values

Parameter Value
scriptType INIT
scriptType PRODUCT
scriptType PRICING
scriptType VALIDATION

Example responses

201 Response

{
  "created": "2023-09-15T17:40:39.187492435Z",
  "modified": "2023-09-15T17:40:39.187492435Z",
  "id": 9,
  "scriptArea": "INIT",
  "script": {
    "created": "2023-09-15T17:40:39.199291228Z",
    "modified": "2023-09-15T17:40:39.199291228Z",
    "id": 41,
    "content": "var x=1;\nreturn cfgRequest;",
    "returnType": "map",
    "compileWarnings": []
  },
  "runOnDemand": false,
  "forcedOnDemand": false
}

Responses

Status Meaning Description Schema
201 Created none Inline

Response Schema

Status Code 201

Name Type Required Restrictions Description
» created string false none none
» modified string false none none
» id number false none none
» scriptArea string false none none
» script object false none none
»» created string false none none
»» modified string false none none
»» id number false none none
»» content string false none none
»» returnType string false none none
»» compileWarnings [any] false none none
» runOnDemand boolean false none none
» forcedOnDemand boolean false none none

Blueprint > Related

Retrieve related Blueprint information

Code samples

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.get('https://{tenant}.{sector}.logik.io/api/admin/v2/blueprints/{blueprintName}/fields', params={
  'page': '0',  'size': '100',  'sort': 'modified%2CDESC'
}, headers = headers)

print(r.json())


const headers = {
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'
};

fetch('https://{tenant}.{sector}.logik.io/api/admin/v2/blueprints/{blueprintName}/fields?page=0&size=100&sort=modified%2CDESC',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'
};

fetch('https://{tenant}.{sector}.logik.io/api/admin/v2/blueprints/{blueprintName}/fields?page=0&size=100&sort=modified%2CDESC',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

# You can also use wget
curl -X GET https://{tenant}.{sector}.logik.io/api/admin/v2/blueprints/{blueprintName}/fields?page=0&size=100&sort=modified%2CDESC \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

GET https://{tenant}.{sector}.logik.io/api/admin/v2/blueprints/{blueprintName}/fields?page=0&size=100&sort=modified%2CDESC HTTP/1.1

Accept: application/json

URL obj = new URL("https://{tenant}.{sector}.logik.io/api/admin/v2/blueprints/{blueprintName}/fields?page=0&size=100&sort=modified%2CDESC");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/json',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.get 'https://{tenant}.{sector}.logik.io/api/admin/v2/blueprints/{blueprintName}/fields',
  params: {
  'page' => 'number',
'size' => 'number',
'sort' => 'string'
}, headers: headers

p JSON.parse(result)

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        "Authorization": []string{"Bearer {access-token}"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "https://{tenant}.{sector}.logik.io/api/admin/v2/blueprints/{blueprintName}/fields", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

GET /api/admin/v2/blueprints/{blueprintName}/fields

Get Fields related to a Blueprint

Name In Type Required Description
blueprintName path string true Blueprint variable name
page query number true Page number of results to return
size query number true Number of results to return
sort query string true Sort field and order of the results

Example responses

200 Response

{
  "content": [
    {
      "type": "Picklist",
      "created": "2023-06-08T14:16:59.580802Z",
      "modified": "2023-08-09T14:29:01.175031Z",
      "id": 115,
      "name": "Motherboard Selection",
      "variableName": "pleExtension",
      "description": null,
      "required": true,
      "category": "USER",
      "hasExtension": true,
      "lastModifiedBy": "scheck@cpq1.logik.dev",
      "selectType": "single",
      "defaultValue": null
    },
    {
      "type": "Boolean",
      "created": "2023-06-02T19:01:43.730714Z",
      "modified": "2023-07-19T21:48:44.395142Z",
      "id": 91,
      "name": "hidden_sc",
      "variableName": "hidden_sc",
      "description": null,
      "required": false,
      "category": "USER",
      "lastModifiedBy": "scheck.dev (API)",
      "trueLabel": "yes",
      "falseLabel": "no",
      "defaultValue": false
    },
    {
      "type": "Picklist",
      "created": "2023-05-22T20:30:00.044552Z",
      "modified": "2023-07-19T21:48:44.353860Z",
      "id": 19,
      "name": "CPU Type",
      "variableName": "cPUType",
      "description": null,
      "required": false,
      "category": "USER",
      "lastModifiedBy": "scheck.dev (API)",
      "selectType": "single",
      "defaultValue": null
    }
  ],
  "pageable": {
    "sort": {
      "empty": false,
      "sorted": true,
      "unsorted": false
    },
    "offset": 0,
    "pageNumber": 0,
    "pageSize": 100,
    "paged": true,
    "unpaged": false
  },
  "totalPages": 1,
  "last": true,
  "totalElements": 6,
  "size": 100,
  "number": 0,
  "sort": {
    "empty": false,
    "sorted": true,
    "unsorted": false
  },
  "numberOfElements": 6,
  "first": true,
  "empty": false
}
Status Meaning Description Schema
200 OK none BlueprintRelatedFieldsResponse

Code samples

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.get('https://{tenant}.{sector}.logik.io/api/admin/v1/blueprints/{blueprintName}/configurableProducts', params={
  'page': '0',  'size': '100',  'sort': 'modified%2CDESC'
}, headers = headers)

print(r.json())


const headers = {
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'
};

fetch('https://{tenant}.{sector}.logik.io/api/admin/v1/blueprints/{blueprintName}/configurableProducts?page=0&size=100&sort=modified%2CDESC',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'
};

fetch('https://{tenant}.{sector}.logik.io/api/admin/v1/blueprints/{blueprintName}/configurableProducts?page=0&size=100&sort=modified%2CDESC',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

# You can also use wget
curl -X GET https://{tenant}.{sector}.logik.io/api/admin/v1/blueprints/{blueprintName}/configurableProducts?page=0&size=100&sort=modified%2CDESC \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

GET https://{tenant}.{sector}.logik.io/api/admin/v1/blueprints/{blueprintName}/configurableProducts?page=0&size=100&sort=modified%2CDESC HTTP/1.1

Accept: application/json

URL obj = new URL("https://{tenant}.{sector}.logik.io/api/admin/v1/blueprints/{blueprintName}/configurableProducts?page=0&size=100&sort=modified%2CDESC");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/json',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.get 'https://{tenant}.{sector}.logik.io/api/admin/v1/blueprints/{blueprintName}/configurableProducts',
  params: {
  'page' => 'number',
'size' => 'number',
'sort' => 'string'
}, headers: headers

p JSON.parse(result)

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        "Authorization": []string{"Bearer {access-token}"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "https://{tenant}.{sector}.logik.io/api/admin/v1/blueprints/{blueprintName}/configurableProducts", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

GET /api/admin/v1/blueprints/{blueprintName}/configurableProducts

Get Configurable Products related to a Blueprint

Name In Type Required Description
blueprintName path string true Blueprint variable name
page query number true Page number of results to return
size query number true Number of results to return
sort query string true Sort field and order of the results

Example responses

200 Response

{
  "content": [
    {
      "created": "2023-06-14T14:55:49.699022Z",
      "modified": "2023-06-21T22:23:09.801284Z",
      "id": 3,
      "name": "UniqueLinesConfig",
      "blueprintVariableName": "pCBuilder",
      "partnerProductId": "01t6e000009bzMuAAI"
    }
  ],
  "pageable": {
    "sort": {
      "empty": false,
      "sorted": true,
      "unsorted": false
    },
    "offset": 0,
    "pageNumber": 0,
    "pageSize": 100,
    "paged": true,
    "unpaged": false
  },
  "totalPages": 1,
  "last": true,
  "totalElements": 1,
  "size": 100,
  "number": 0,
  "sort": {
    "empty": false,
    "sorted": true,
    "unsorted": false
  },
  "numberOfElements": 1,
  "first": true,
  "empty": false
}
Status Meaning Description Schema
200 OK none RelatedConfigProductsResponse

Code samples

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.get('https://{tenant}.{sector}.logik.io/api/admin/v1/blueprints/{blueprintName}/sets', headers = headers)

print(r.json())


const headers = {
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'
};

fetch('https://{tenant}.{sector}.logik.io/api/admin/v1/blueprints/{blueprintName}/sets',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'
};

fetch('https://{tenant}.{sector}.logik.io/api/admin/v1/blueprints/{blueprintName}/sets',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

# You can also use wget
curl -X GET https://{tenant}.{sector}.logik.io/api/admin/v1/blueprints/{blueprintName}/sets \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

GET https://{tenant}.{sector}.logik.io/api/admin/v1/blueprints/{blueprintName}/sets HTTP/1.1

Accept: application/json

URL obj = new URL("https://{tenant}.{sector}.logik.io/api/admin/v1/blueprints/{blueprintName}/sets");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/json',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.get 'https://{tenant}.{sector}.logik.io/api/admin/v1/blueprints/{blueprintName}/sets',
  params: {
  }, headers: headers

p JSON.parse(result)

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        "Authorization": []string{"Bearer {access-token}"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "https://{tenant}.{sector}.logik.io/api/admin/v1/blueprints/{blueprintName}/sets", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

GET /api/admin/v1/blueprints/{blueprintName}/sets

Get Sets related to a Blueprint

Name In Type Required Description
blueprintName path string true Blueprint variable name

Example responses

200 Response

{
  "content": [
    {
      "id": 2,
      "name": "delta",
      "variableName": "delta",
      "sizeType": "setField",
      "created": "2023-06-07T22:34:50.052615Z",
      "modified": "2023-06-12T21:37:21.879233Z",
      "fields": [
        {
          "id": 9,
          "variableName": "textTest_swc",
          "name": "textTest_swc",
          "description": null,
          "type": "Text",
          "distinct": false,
          "created": "2023-06-12T21:37:21.877152Z",
          "modified": "2023-06-12T21:37:21.877152Z",
          "lastModifiedBy": "scheck.dev (API)"
        },
        {
          "id": 7,
          "variableName": "set.delta.index",
          "name": "Index for delta",
          "description": null,
          "type": "Number",
          "distinct": false,
          "created": "2023-06-12T21:36:46.256658Z",
          "modified": "2023-06-12T21:37:21.879317Z",
          "lastModifiedBy": null
        }
      ],
      "aggregateFields": [
        {
          "type": "Number",
          "created": "2023-06-12T21:37:11.596742Z",
          "modified": "2023-06-12T21:37:11.596742Z",
          "id": 135,
          "name": "count",
          "variableName": "set.delta.count",
          "description": null,
          "required": false,
          "category": "SET_AGGREGATE",
          "setVariableName": "delta",
          "aggregateType": "COUNT",
          "fieldVariableNames": [
            "textTest_swc"
          ],
          "lastModifiedBy": "scheck@cpq1.logik.dev",
          "defaultValue": null,
          "unitLabel": null,
          "precision": 32,
          "minValue": null,
          "maxValue": null,
          "stepValue": null
        }
      ],
      "sizeFieldVariableName": "set.delta.size",
      "sizeField": {
        "type": "Size",
        "created": "2023-06-07T22:34:50.052776Z",
        "modified": "2023-06-07T22:34:50.063657Z",
        "id": 114,
        "name": "delta Size",
        "variableName": "set.delta.size",
        "description": null,
        "required": false,
        "category": "SET_SIZE",
        "setVariableName": "delta",
        "lastModifiedBy": null,
        "defaultValue": null,
        "minValue": null,
        "maxValue": null
      },
      "lastModifiedBy": "scheck@cpq1.logik.dev"
    }
  ],
  "pageable": {
    "sort": {
      "empty": true,
      "sorted": false,
      "unsorted": true
    },
    "offset": 0,
    "pageNumber": 0,
    "pageSize": 10,
    "paged": true,
    "unpaged": false
  },
  "totalPages": 1,
  "last": true,
  "totalElements": 1,
  "size": 10,
  "number": 0,
  "sort": {
    "empty": true,
    "sorted": false,
    "unsorted": true
  },
  "numberOfElements": 1,
  "first": true,
  "empty": false
}
Status Meaning Description Schema
200 OK none BlueprintRelatedSetsResponse

Code samples

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.get('https://{tenant}.{sector}.logik.io/api/admin/v1/blueprints/{blueprintName}/productPickers', headers = headers)

print(r.json())


const headers = {
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'
};

fetch('https://{tenant}.{sector}.logik.io/api/admin/v1/blueprints/{blueprintName}/productPickers',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'
};

fetch('https://{tenant}.{sector}.logik.io/api/admin/v1/blueprints/{blueprintName}/productPickers',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

# You can also use wget
curl -X GET https://{tenant}.{sector}.logik.io/api/admin/v1/blueprints/{blueprintName}/productPickers \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

GET https://{tenant}.{sector}.logik.io/api/admin/v1/blueprints/{blueprintName}/productPickers HTTP/1.1

Accept: application/json

URL obj = new URL("https://{tenant}.{sector}.logik.io/api/admin/v1/blueprints/{blueprintName}/productPickers");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/json',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.get 'https://{tenant}.{sector}.logik.io/api/admin/v1/blueprints/{blueprintName}/productPickers',
  params: {
  }, headers: headers

p JSON.parse(result)

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        "Authorization": []string{"Bearer {access-token}"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "https://{tenant}.{sector}.logik.io/api/admin/v1/blueprints/{blueprintName}/productPickers", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

GET /api/admin/v1/blueprints/{blueprintName}/productPickers

Get Product Pickers related to a Blueprint

Name In Type Required Description
blueprintName path string true Blueprint variable name

Example responses

200 Response

{
  "content": [
    {
      "created": "2023-06-13T21:28:17.672892Z",
      "modified": "2023-08-10T21:25:27.253738Z",
      "id": 147,
      "name": "cpuPicker",
      "variableName": "cpuPicker",
      "description": null,
      "required": false,
      "category": "PRODUCT_PICKER",
      "lastModifiedBy": "scheck@cpq1.logik.dev",
      "selectType": "single",
      "enrichEnabled": false,
      "quantitySelectionLinked": true,
      "defaultType": null,
      "defaultBomType": null,
      "defaultParentProduct": "motherboard",
      "defaultUom": null,
      "defaultPricingProductSellingModelId": null,
      "defaultPricingStartDate": null,
      "defaultPricingEndDate": null,
      "layoutProductDetails": [
        "name"
      ],
      "fields": [
        {
          "created": "2023-06-21T22:07:38.272409Z",
          "modified": "2023-06-21T22:07:38.272409Z",
          "id": 117,
          "variableName": "cpuPicker.multiThreading",
          "label": "MultiThreading",
          "fieldType": "Boolean",
          "target": "ProductExtended",
          "lastModifiedBy": "scheck@cpq1.logik.dev"
        },
        {
          "created": "2023-06-21T22:11:25.996353Z",
          "modified": "2023-06-21T22:11:25.996353Z",
          "id": 119,
          "variableName": "cpuPicker.speed",
          "label": "speed",
          "fieldType": "Picklist",
          "target": "ProductExtended",
          "lastModifiedBy": "scheck@cpq1.logik.dev"
        },
        {
          "created": "2023-06-13T21:28:17.675998Z",
          "modified": "2023-06-13T21:28:17.675998Z",
          "id": 87,
          "variableName": "cpuPicker.value",
          "label": "Value",
          "fieldType": "Text",
          "target": "ProductId",
          "lastModifiedBy": "scheck@cpq1.logik.dev"
        },
        {
          "created": "2023-06-13T21:28:17.680095Z",
          "modified": "2023-06-13T21:28:17.680095Z",
          "id": 88,
          "variableName": "cpuPicker.select",
          "label": "Select",
          "fieldType": "Boolean",
          "lastModifiedBy": "scheck@cpq1.logik.dev"
        },
        {
          "created": "2023-06-13T21:28:17.683457Z",
          "modified": "2023-06-13T21:28:17.683457Z",
          "id": 89,
          "variableName": "cpuPicker.quantity",
          "label": "Quantity",
          "fieldType": "Number",
          "target": "ProductQuantity",
          "lastModifiedBy": "scheck@cpq1.logik.dev"
        },
        {
          "created": "2023-06-13T21:28:17.759893Z",
          "modified": "2023-06-13T21:28:17.759893Z",
          "id": 91,
          "variableName": "cpuPicker.imageUrl",
          "label": "imageUrl",
          "fieldType": "Text",
          "lastModifiedBy": "scheck@cpq1.logik.dev"
        },
        {
          "created": "2023-08-09T15:45:24.420897Z",
          "modified": "2023-08-09T15:45:24.420897Z",
          "id": 206,
          "variableName": "cpuPicker.description",
          "label": "description",
          "fieldType": "Text",
          "target": "ProductDescription",
          "lastModifiedBy": "scheck@cpq1.logik.dev"
        },
        {
          "created": "2023-08-09T15:45:40.624501Z",
          "modified": "2023-08-09T15:45:40.624501Z",
          "id": 207,
          "variableName": "cpuPicker.price",
          "label": "price",
          "fieldType": "Number",
          "target": "ProductPrice",
          "lastModifiedBy": "scheck@cpq1.logik.dev"
        },
        {
          "created": "2023-08-30T17:16:12.503744Z",
          "modified": "2023-08-30T17:16:12.503744Z",
          "id": 215,
          "variableName": "cpuPicker.wattage",
          "label": "wattage",
          "fieldType": "Number",
          "target": "ProductExtended",
          "lastModifiedBy": "scheck@cpq1.logik.dev"
        }
      ],
      "rules": [
        {
          "created": "2023-06-13T21:34:48.695916Z",
          "modified": "2023-06-13T21:34:48.695916Z",
          "id": 77,
          "variableName": "inclusionTest",
          "type": "Inclusion",
          "status": "active",
          "columns": [
            {
              "id": 290,
              "header": "value",
              "mappedFieldVarName": "cpuPicker.value",
              "columnUse": "ProductId",
              "orderNumber": 0
            },
            {
              "id": 291,
              "header": "cPUType",
              "mappedFieldVarName": "cPUType",
              "operator": "equals",
              "columnUse": "Filter",
              "orderNumber": 1
            }
          ]
        },
        {
          "created": "2023-08-09T15:45:54.465480Z",
          "modified": "2023-08-09T15:45:54.465480Z",
          "id": 123,
          "variableName": "setInfo",
          "type": "Determination",
          "status": "active",
          "columns": [
            {
              "id": 438,
              "header": "value",
              "mappedFieldVarName": "cpuPicker.value",
              "columnUse": "ProductId",
              "orderNumber": 0
            },
            {
              "id": 439,
              "header": "cpuPicker.description",
              "mappedFieldVarName": "cpuPicker.description",
              "columnUse": "ProductDescription",
              "orderNumber": 1
            },
            {
              "id": 440,
              "header": "cpuPicker.price",
              "mappedFieldVarName": "cpuPicker.price",
              "columnUse": "ProductPrice",
              "orderNumber": 2
            }
          ]
        },
        {
          "created": "2023-06-21T22:11:42.152660Z",
          "modified": "2023-06-21T22:16:31.251965Z",
          "id": 89,
          "variableName": "limitCPUs",
          "type": "Quantity",
          "status": "active",
          "columns": [
            {
              "id": 330,
              "header": "value",
              "mappedFieldVarName": "cpuPicker.value",
              "columnUse": "ProductId",
              "orderNumber": 0
            },
            {
              "id": 331,
              "header": "pleExtension",
              "mappedFieldVarName": "pleExtension",
              "operator": "equals",
              "columnUse": "Filter",
              "orderNumber": 1
            },
            {
              "id": 332,
              "header": "quantity.min",
              "mappedFieldVarName": "quantity.min",
              "columnUse": "Field",
              "orderNumber": 2
            },
            {
              "id": 333,
              "header": "quantity.max",
              "mappedFieldVarName": "quantity.max",
              "columnUse": "Field",
              "orderNumber": 3
            },
            {
              "id": 334,
              "header": "quantity.step",
              "mappedFieldVarName": "quantity.step",
              "columnUse": "Field",
              "orderNumber": 4
            }
          ]
        },
        {
          "created": "2023-08-09T15:58:50.720599Z",
          "modified": "2023-08-09T16:06:01.950247Z",
          "id": 124,
          "variableName": "predef",
          "type": "Determination",
          "message": "Action is inactive because it includes fields not associated with the current blueprint (preconfigured).",
          "status": "invalid",
          "columns": [
            {
              "id": 441,
              "header": "value",
              "mappedFieldVarName": "cpuPicker.value",
              "columnUse": "ProductId",
              "orderNumber": 0
            },
            {
              "id": 442,
              "header": "preconfigured",
              "mappedFieldVarName": "preconfigured",
              "operator": "equals",
              "columnUse": "Filter",
              "orderNumber": 1
            },
            {
              "id": 443,
              "header": "cpuPicker.select",
              "mappedFieldVarName": "cpuPicker.select",
              "columnUse": "Field",
              "orderNumber": 2
            },
            {
              "id": 452,
              "header": "cpuPicker.quantity",
              "mappedFieldVarName": "cpuPicker.quantity",
              "columnUse": "ProductQuantity",
              "orderNumber": 3
            }
          ]
        }
      ],
      "aggregateFields": [
        {
          "type": "Number",
          "created": "2023-08-30T17:16:49.266509Z",
          "modified": "2023-08-30T17:16:49.266509Z",
          "id": 373,
          "name": "wattage Sum",
          "variableName": "cpuPicker.aggregates.wattage_sum",
          "description": null,
          "required": false,
          "category": "SET_AGGREGATE",
          "aggregateType": "SUM",
          "fieldVariableNames": [
            "cpuPicker.wattage"
          ],
          "lastModifiedBy": "scheck@cpq1.logik.dev",
          "defaultValue": null,
          "unitLabel": null,
          "precision": 32,
          "minValue": null,
          "maxValue": null,
          "stepValue": null
        }
      ]
    }
  ],
  "pageable": {
    "sort": {
      "empty": true,
      "sorted": false,
      "unsorted": true
    },
    "offset": 0,
    "pageNumber": 0,
    "pageSize": 10,
    "paged": true,
    "unpaged": false
  },
  "totalPages": 1,
  "last": true,
  "totalElements": 1,
  "size": 10,
  "number": 0,
  "sort": {
    "empty": true,
    "sorted": false,
    "unsorted": true
  },
  "numberOfElements": 1,
  "first": true,
  "empty": false
}
Status Meaning Description Schema
200 OK none BlueprintRelatedProductPickerResponse

Code samples

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.get('https://{tenant}.{sector}.logik.io/api/admin/v2/blueprints/{blueprintName}/rules', params={
  'page': '0',  'size': '100',  'sort': 'modified%2CDESC'
}, headers = headers)

print(r.json())


const headers = {
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'
};

fetch('https://{tenant}.{sector}.logik.io/api/admin/v2/blueprints/{blueprintName}/rules?page=0&size=100&sort=modified%2CDESC',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'
};

fetch('https://{tenant}.{sector}.logik.io/api/admin/v2/blueprints/{blueprintName}/rules?page=0&size=100&sort=modified%2CDESC',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

# You can also use wget
curl -X GET https://{tenant}.{sector}.logik.io/api/admin/v2/blueprints/{blueprintName}/rules?page=0&size=100&sort=modified%2CDESC \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

GET https://{tenant}.{sector}.logik.io/api/admin/v2/blueprints/{blueprintName}/rules?page=0&size=100&sort=modified%2CDESC HTTP/1.1

Accept: application/json

URL obj = new URL("https://{tenant}.{sector}.logik.io/api/admin/v2/blueprints/{blueprintName}/rules?page=0&size=100&sort=modified%2CDESC");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/json',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.get 'https://{tenant}.{sector}.logik.io/api/admin/v2/blueprints/{blueprintName}/rules',
  params: {
  'page' => 'number',
'size' => 'number',
'sort' => 'string'
}, headers: headers

p JSON.parse(result)

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        "Authorization": []string{"Bearer {access-token}"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "https://{tenant}.{sector}.logik.io/api/admin/v2/blueprints/{blueprintName}/rules", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

GET /api/admin/v2/blueprints/{blueprintName}/rules

Get Rules related to a Blueprint

Name In Type Required Description
blueprintName path string true Blueprint variable name
page query number true Page number of results to return
size query number true Number of results to return
sort query string true Sort field and order of the results

Example responses

200 Response

{
  "content": [
    {
      "id": 38,
      "name": "dateSet",
      "variableName": "dateSet",
      "description": "",
      "status": "active",
      "modified": "2023-07-19T23:47:30.394634Z",
      "actionSummary": {
        "determinationAction": 1,
        "exclusionAction": 0,
        "inclusionAction": 0,
        "messageAction": 0,
        "productAction": 0,
        "visibilityAction": 0
      },
      "lastModifiedBy": "scheck.dev (API)"
    },
    {
      "id": 4,
      "name": "dummy_sc",
      "variableName": "dummy_sc",
      "description": "",
      "status": "active",
      "modified": "2023-07-19T23:47:30.381211Z",
      "actionSummary": {
        "determinationAction": 0,
        "exclusionAction": 0,
        "inclusionAction": 0,
        "messageAction": 1,
        "productAction": 0,
        "visibilityAction": 0
      },
      "lastModifiedBy": "scheck.dev (API)"
    },
    {
      "id": 31,
      "name": "msgaboveField",
      "variableName": "msgaboveField",
      "description": "",
      "status": "active",
      "modified": "2023-07-19T23:47:30.388005Z",
      "actionSummary": {
        "determinationAction": 0,
        "exclusionAction": 0,
        "inclusionAction": 0,
        "messageAction": 1,
        "productAction": 0,
        "visibilityAction": 0
      },
      "lastModifiedBy": "scheck.dev (API)"
    }
  ],
  "pageable": {
    "sort": {
      "empty": false,
      "sorted": true,
      "unsorted": false
    },
    "offset": 0,
    "pageNumber": 0,
    "pageSize": 100,
    "paged": true,
    "unpaged": false
  },
  "totalPages": 1,
  "last": true,
  "totalElements": 3,
  "size": 100,
  "number": 0,
  "sort": {
    "empty": false,
    "sorted": true,
    "unsorted": false
  },
  "numberOfElements": 3,
  "first": true,
  "empty": false
}
Status Meaning Description Schema
200 OK none BlueprintRelatedRulesResponse

Blueprint > Deployments

Start and get status of Blueprint deployments

Get Deployment History

Code samples

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.get('https://{tenant}.{sector}.logik.io/api/admin/v1/blueprints/{blueprintName}/deployments', params={
  'page': '0',  'size': '100',  'sort': 'modified%2CDESC'
}, headers = headers)

print(r.json())


const headers = {
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'
};

fetch('https://{tenant}.{sector}.logik.io/api/admin/v1/blueprints/{blueprintName}/deployments?page=0&size=100&sort=modified%2CDESC',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'
};

fetch('https://{tenant}.{sector}.logik.io/api/admin/v1/blueprints/{blueprintName}/deployments?page=0&size=100&sort=modified%2CDESC',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

# You can also use wget
curl -X GET https://{tenant}.{sector}.logik.io/api/admin/v1/blueprints/{blueprintName}/deployments?page=0&size=100&sort=modified%2CDESC \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

GET https://{tenant}.{sector}.logik.io/api/admin/v1/blueprints/{blueprintName}/deployments?page=0&size=100&sort=modified%2CDESC HTTP/1.1

Accept: application/json

URL obj = new URL("https://{tenant}.{sector}.logik.io/api/admin/v1/blueprints/{blueprintName}/deployments?page=0&size=100&sort=modified%2CDESC");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/json',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.get 'https://{tenant}.{sector}.logik.io/api/admin/v1/blueprints/{blueprintName}/deployments',
  params: {
  'page' => 'number',
'size' => 'number',
'sort' => 'string'
}, headers: headers

p JSON.parse(result)

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        "Authorization": []string{"Bearer {access-token}"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "https://{tenant}.{sector}.logik.io/api/admin/v1/blueprints/{blueprintName}/deployments", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

GET /api/admin/v1/blueprints/{blueprintName}/deployments

Get Blueprint Deployment History

Parameters

Name In Type Required Description
blueprintName path string true Blueprint variable name
page query number true Page number of results to return
size query number true Number of results to return
sort query string true Sort field and order of the results

Example responses

200 Response

{
  "content": [
    {
      "name": "PC Builder",
      "variableName": "pCBuilder",
      "revision": 55,
      "created": "2023-09-15T17:40:53.718642Z",
      "userId": "scheck@cpq1.logik.dev"
    }
  ],
  "pageable": {
    "sort": {
      "empty": false,
      "sorted": true,
      "unsorted": false
    },
    "offset": 0,
    "pageNumber": 0,
    "pageSize": 1,
    "paged": true,
    "unpaged": false
  },
  "totalElements": 55,
  "totalPages": 55,
  "last": false,
  "size": 1,
  "number": 0,
  "sort": {
    "empty": false,
    "sorted": true,
    "unsorted": false
  },
  "numberOfElements": 1,
  "first": true,
  "empty": false
}

Responses

Status Meaning Description Schema
200 OK none BlueprintDeploymentResponse

Deploy a Blueprint

Code samples

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.post('https://{tenant}.{sector}.logik.io/api/admin/v2/blueprints/{blueprintName}/runtimes', headers = headers)

print(r.json())

const inputBody = '{
  "headers": {
    "Content-Type": "string",
    "accept": "string"
  },
  "withCredentials": true
}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'
};

fetch('https://{tenant}.{sector}.logik.io/api/admin/v2/blueprints/{blueprintName}/runtimes',
{
  method: 'POST',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

const fetch = require('node-fetch');
const inputBody = {
  "headers": {
    "Content-Type": "string",
    "accept": "string"
  },
  "withCredentials": true
};
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'
};

fetch('https://{tenant}.{sector}.logik.io/api/admin/v2/blueprints/{blueprintName}/runtimes',
{
  method: 'POST',
  body: JSON.stringify(inputBody),
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

# You can also use wget
curl -X POST https://{tenant}.{sector}.logik.io/api/admin/v2/blueprints/{blueprintName}/runtimes \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

POST https://{tenant}.{sector}.logik.io/api/admin/v2/blueprints/{blueprintName}/runtimes HTTP/1.1

Content-Type: application/json
Accept: application/json

URL obj = new URL("https://{tenant}.{sector}.logik.io/api/admin/v2/blueprints/{blueprintName}/runtimes");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Accept' => 'application/json',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.post 'https://{tenant}.{sector}.logik.io/api/admin/v2/blueprints/{blueprintName}/runtimes',
  params: {
  }, headers: headers

p JSON.parse(result)

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/json"},
        "Authorization": []string{"Bearer {access-token}"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "https://{tenant}.{sector}.logik.io/api/admin/v2/blueprints/{blueprintName}/runtimes", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

POST /api/admin/v2/blueprints/{blueprintName}/runtimes

Start a deployment of a blueprint

Body parameter

{
  "headers": {
    "Content-Type": "string",
    "accept": "string"
  },
  "withCredentials": true
}

Parameters

Name In Type Required Description
blueprintName path string true Blueprint variable name
body body object true none
» headers body object false none
»» Content-Type body string false none
»» accept body string false none
» withCredentials body boolean false none

Example responses

201 Response

{
  "created": "2023-09-15T17:40:48.467808199Z",
  "modified": "2023-09-15T17:40:48.467808199Z",
  "id": 826,
  "jobType": "DEPLOYMENT",
  "status": "STARTED"
}

Responses

Status Meaning Description Schema
201 Created none Inline

Response Schema

Status Code 201

Name Type Required Restrictions Description
» created string false none none
» modified string false none none
» id number false none none
» jobType string false none none
» status string false none none

Blueprint > Export

Export Blueprints

Export Blueprints

Code samples

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.post('https://{tenant}.{sector}.logik.io/api/admin/v1/bulk/blueprints/export', headers = headers)

print(r.json())

const inputBody = '[
  "string"
]';
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'
};

fetch('https://{tenant}.{sector}.logik.io/api/admin/v1/bulk/blueprints/export',
{
  method: 'POST',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

const fetch = require('node-fetch');
const inputBody = [
  "string"
];
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'
};

fetch('https://{tenant}.{sector}.logik.io/api/admin/v1/bulk/blueprints/export',
{
  method: 'POST',
  body: JSON.stringify(inputBody),
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

# You can also use wget
curl -X POST https://{tenant}.{sector}.logik.io/api/admin/v1/bulk/blueprints/export \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

POST https://{tenant}.{sector}.logik.io/api/admin/v1/bulk/blueprints/export HTTP/1.1

Content-Type: application/json
Accept: application/json

URL obj = new URL("https://{tenant}.{sector}.logik.io/api/admin/v1/bulk/blueprints/export");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Accept' => 'application/json',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.post 'https://{tenant}.{sector}.logik.io/api/admin/v1/bulk/blueprints/export',
  params: {
  }, headers: headers

p JSON.parse(result)

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/json"},
        "Authorization": []string{"Bearer {access-token}"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "https://{tenant}.{sector}.logik.io/api/admin/v1/bulk/blueprints/export", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

POST /api/admin/v1/bulk/blueprints/export

Initiate a bulk export of blueprints with the given payload.

Body parameter

[
  "string"
]

Parameters

Name In Type Required Description
body body array[string] true Payload for initiating the bulk export

Example responses

200 Response

{
  "created": "2019-08-24T14:15:22Z",
  "modified": "2019-08-24T14:15:22Z",
  "id": 0,
  "jobType": "string",
  "status": "string"
}

Responses

Status Meaning Description Schema
200 OK Bulk export job created Inline

Response Schema

Status Code 200

Name Type Required Restrictions Description
» created string(date-time) false none none
» modified string(date-time) false none none
» id integer false none none
» jobType string false none none
» status string false none none

Blueprint > Layouts

Blueprint Layouts

Get Blueprint Layouts

Code samples

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.get('https://{tenant}.{sector}.logik.io/api/admin/v1/blueprints/{blueprintName}/layouts', params={
  'page': '0',  'size': '100',  'sort': 'modified%2CDESC'
}, headers = headers)

print(r.json())


const headers = {
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'
};

fetch('https://{tenant}.{sector}.logik.io/api/admin/v1/blueprints/{blueprintName}/layouts?page=0&size=100&sort=modified%2CDESC',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'
};

fetch('https://{tenant}.{sector}.logik.io/api/admin/v1/blueprints/{blueprintName}/layouts?page=0&size=100&sort=modified%2CDESC',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

# You can also use wget
curl -X GET https://{tenant}.{sector}.logik.io/api/admin/v1/blueprints/{blueprintName}/layouts?page=0&size=100&sort=modified%2CDESC \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

GET https://{tenant}.{sector}.logik.io/api/admin/v1/blueprints/{blueprintName}/layouts?page=0&size=100&sort=modified%2CDESC HTTP/1.1

Accept: application/json

URL obj = new URL("https://{tenant}.{sector}.logik.io/api/admin/v1/blueprints/{blueprintName}/layouts?page=0&size=100&sort=modified%2CDESC");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/json',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.get 'https://{tenant}.{sector}.logik.io/api/admin/v1/blueprints/{blueprintName}/layouts',
  params: {
  'page' => 'number',
'size' => 'number',
'sort' => 'string'
}, headers: headers

p JSON.parse(result)

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        "Authorization": []string{"Bearer {access-token}"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "https://{tenant}.{sector}.logik.io/api/admin/v1/blueprints/{blueprintName}/layouts", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

GET /api/admin/v1/blueprints/{blueprintName}/layouts

Retrieves a list of all Layouts that are associated with the Blueprint

Parameters

Name In Type Required Description
blueprintName path string true Blueprint variable name
page query number true Page number of results to return
size query number true Number of results to return
sort query string true Sort field and order of the results

Example responses

200 Response

{
  "content": [
    {
      "created": "2023-09-07T13:37:51.195021Z",
      "modified": "2023-09-07T13:37:51.195021Z",
      "id": 131,
      "label": "test",
      "variableName": "pCBuilder_test",
      "lastModifiedBy": "scheck@cpq1.logik.dev",
      "hasLayoutFile": true
    }
  ],
  "pageable": {
    "sort": {
      "empty": false,
      "sorted": true,
      "unsorted": false
    },
    "offset": 0,
    "pageNumber": 0,
    "pageSize": 100,
    "paged": true,
    "unpaged": false
  },
  "totalPages": 1,
  "last": true,
  "totalElements": 1,
  "size": 100,
  "number": 0,
  "sort": {
    "empty": false,
    "sorted": true,
    "unsorted": false
  },
  "numberOfElements": 1,
  "first": true,
  "empty": false
}

Responses

Status Meaning Description Schema
200 OK none BlueprintLayoutResponse

Get a Layout

Code samples

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.get('https://{tenant}.{sector}.logik.io/api/admin/v1/blueprints/{blueprintName}/layouts/{layoutName}', headers = headers)

print(r.json())


const headers = {
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'
};

fetch('https://{tenant}.{sector}.logik.io/api/admin/v1/blueprints/{blueprintName}/layouts/{layoutName}',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'
};

fetch('https://{tenant}.{sector}.logik.io/api/admin/v1/blueprints/{blueprintName}/layouts/{layoutName}',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

# You can also use wget
curl -X GET https://{tenant}.{sector}.logik.io/api/admin/v1/blueprints/{blueprintName}/layouts/{layoutName} \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

GET https://{tenant}.{sector}.logik.io/api/admin/v1/blueprints/{blueprintName}/layouts/{layoutName} HTTP/1.1

Accept: application/json

URL obj = new URL("https://{tenant}.{sector}.logik.io/api/admin/v1/blueprints/{blueprintName}/layouts/{layoutName}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/json',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.get 'https://{tenant}.{sector}.logik.io/api/admin/v1/blueprints/{blueprintName}/layouts/{layoutName}',
  params: {
  }, headers: headers

p JSON.parse(result)

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        "Authorization": []string{"Bearer {access-token}"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "https://{tenant}.{sector}.logik.io/api/admin/v1/blueprints/{blueprintName}/layouts/{layoutName}", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

GET /api/admin/v1/blueprints/{blueprintName}/layouts/{layoutName}

Parameters

Name In Type Required Description
blueprintName path string true Blueprint variable name
layoutName path string true Layout Variable Name

Example responses

200 Response

{
  "created": "2023-09-07T13:37:51.195021Z",
  "modified": "2023-09-07T13:37:51.195021Z",
  "id": 131,
  "label": "test",
  "variableName": "pCBuilder_test",
  "layout": {
    "version": 1,
    "label": "test",
    "variableName": "pCBuilder_test",
    "header": {
      "text": "Logik",
      "url": ""
    },
    "tierDef": [
      {
        "depth": 1,
        "representation": "VerticalTab"
      }
    ],
    "layout": {
      "label": "layoutsection",
      "variableName": "layoutsection",
      "tiers": [
        {
          "label": "Tab 1",
          "variableName": "verticaltab1",
          "depth": 1,
          "columnSets": [
            {
              "variableName": "col1",
              "elements": [
                {
                  "type": "field",
                  "variableName": "cPUType",
                  "columnOrder": 1
                },
                {
                  "type": "field",
                  "variableName": "hidden_sc",
                  "columnOrder": 1
                }
              ]
            }
          ]
        },
        {
          "label": "Tab 2",
          "variableName": "verticaltab2",
          "depth": 1,
          "columnSets": [
            {
              "variableName": "col2",
              "elements": [
                {
                  "type": "field",
                  "variableName": "textTest_swc",
                  "columnOrder": 1
                }
              ]
            }
          ]
        },
        {
          "label": "Tab 3",
          "variableName": "verticaltab3",
          "depth": 1,
          "columnSets": [
            {
              "variableName": "col3",
              "elements": [
                {
                  "type": "field",
                  "variableName": "startDate",
                  "columnOrder": 1
                },
                {
                  "type": "field",
                  "variableName": "endDate",
                  "columnOrder": 1
                }
              ]
            }
          ]
        }
      ]
    },
    "fields": [
      {
        "type": "Picklist",
        "variableName": "cPUType",
        "label": "CPU Type"
      },
      {
        "type": "Boolean",
        "variableName": "hidden_sc",
        "label": "hidden_sc"
      },
      {
        "type": "Text",
        "variableName": "textTest_swc",
        "label": "textTest_swc"
      }
    ],
    "productList": {
      "location": "modal",
      "totalLocation": "bottom",
      "hierarchyColumn": "displayName",
      "type": "sales",
      "columns": [
        {
          "variableName": "displayName",
          "label": "Product",
          "width": "40%"
        },
        {
          "variableName": "quantity",
          "label": "Qty",
          "width": "10%"
        },
        {
          "variableName": "price",
          "label": "Price",
          "width": "25%"
        }
      ],
      "displayNullPriceAs": null,
      "displayZeroPriceAs": null,
      "variableName": ""
    }
  },
  "lastModifiedBy": "scheck@cpq1.logik.dev",
  "hasLayoutFile": true
}

Responses

Status Meaning Description Schema
200 OK none LayoutResponse

Configurable Products

Configurable Products

Get List of Configurable Products

Code samples

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.get('https://{tenant}.{sector}.logik.io/api/admin/v1/configurableProducts', params={
  'page': '0',  'sort': 'modified%2CDESC',  'size': '100'
}, headers = headers)

print(r.json())


const headers = {
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'
};

fetch('https://{tenant}.{sector}.logik.io/api/admin/v1/configurableProducts?page=0&sort=modified%2CDESC&size=100',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'
};

fetch('https://{tenant}.{sector}.logik.io/api/admin/v1/configurableProducts?page=0&sort=modified%2CDESC&size=100',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

# You can also use wget
curl -X GET https://{tenant}.{sector}.logik.io/api/admin/v1/configurableProducts?page=0&sort=modified%2CDESC&size=100 \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

GET https://{tenant}.{sector}.logik.io/api/admin/v1/configurableProducts?page=0&sort=modified%2CDESC&size=100 HTTP/1.1

Accept: application/json

URL obj = new URL("https://{tenant}.{sector}.logik.io/api/admin/v1/configurableProducts?page=0&sort=modified%2CDESC&size=100");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/json',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.get 'https://{tenant}.{sector}.logik.io/api/admin/v1/configurableProducts',
  params: {
  'page' => 'number',
'sort' => 'string',
'size' => 'number'
}, headers: headers

p JSON.parse(result)

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        "Authorization": []string{"Bearer {access-token}"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "https://{tenant}.{sector}.logik.io/api/admin/v1/configurableProducts", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

GET /api/admin/v1/configurableProducts

Parameters

Name In Type Required Description
page query number true none
sort query string true none
size query number true none

Example responses

200 Response

{
  "content": [
    {
      "created": "2023-06-30T18:34:18.462919Z",
      "modified": "2023-07-18T15:11:27.169540Z",
      "id": 2,
      "name": "jackson",
      "blueprintVariableName": null,
      "partnerProductId": "01t6e00000949ujAAA"
    },
    {
      "created": "2023-06-13T12:45:33.373568Z",
      "modified": "2023-06-16T17:56:45.413819Z",
      "id": 1,
      "name": "SM Parent",
      "blueprintVariableName": "psmTester",
      "partnerProductId": "01t6e0000093z9MAAQ"
    }
  ],
  "pageable": {
    "sort": {
      "empty": false,
      "sorted": true,
      "unsorted": false
    },
    "offset": 0,
    "pageNumber": 0,
    "pageSize": 100,
    "paged": true,
    "unpaged": false
  },
  "totalElements": 2,
  "last": true,
  "totalPages": 1,
  "size": 100,
  "number": 0,
  "sort": {
    "empty": false,
    "sorted": true,
    "unsorted": false
  },
  "numberOfElements": 2,
  "first": true,
  "empty": false
}

Responses

Status Meaning Description Schema
200 OK none ConfigProductListResponse

Get a Configurable Product

Code samples

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.post('https://{tenant}.{sector}.logik.io/api/admin/v1/configurableProducts', headers = headers)

print(r.json())

const inputBody = '{
  "partnerProductId": "01t6e00000949ujAAA"
}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'
};

fetch('https://{tenant}.{sector}.logik.io/api/admin/v1/configurableProducts',
{
  method: 'POST',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

const fetch = require('node-fetch');
const inputBody = {
  "partnerProductId": "01t6e00000949ujAAA"
};
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'
};

fetch('https://{tenant}.{sector}.logik.io/api/admin/v1/configurableProducts',
{
  method: 'POST',
  body: JSON.stringify(inputBody),
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

# You can also use wget
curl -X POST https://{tenant}.{sector}.logik.io/api/admin/v1/configurableProducts \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

POST https://{tenant}.{sector}.logik.io/api/admin/v1/configurableProducts HTTP/1.1

Content-Type: application/json
Accept: application/json

URL obj = new URL("https://{tenant}.{sector}.logik.io/api/admin/v1/configurableProducts");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Accept' => 'application/json',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.post 'https://{tenant}.{sector}.logik.io/api/admin/v1/configurableProducts',
  params: {
  }, headers: headers

p JSON.parse(result)

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/json"},
        "Authorization": []string{"Bearer {access-token}"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "https://{tenant}.{sector}.logik.io/api/admin/v1/configurableProducts", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

POST /api/admin/v1/configurableProducts

Body parameter

{
  "partnerProductId": "01t6e00000949ujAAA"
}

Parameters

Name In Type Required Description
body body ConfigProductPostRequest true none

Example responses

200 Response

{
  "created": "2023-06-30T18:34:18.462919Z",
  "modified": "2023-09-20T17:01:23.129051Z",
  "id": 2,
  "name": "jackson",
  "blueprintVariableName": null,
  "partnerProductId": "01t6e00000949ujAAA"
}

Responses

Status Meaning Description Schema
200 OK none ConfigProductPayload

Update a Configurable Product

Code samples

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.put('https://{tenant}.{sector}.logik.io/api/admin/v1/configurableProducts/{configProductId}', headers = headers)

print(r.json())

const inputBody = '{
  "created": "2023-06-30T18:34:18.462919Z",
  "modified": "2023-09-20T17:01:23.129051Z",
  "id": 2,
  "name": "jackson",
  "blueprintVariableName": null,
  "partnerProductId": "01t6e00000949ujAAA"
}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'
};

fetch('https://{tenant}.{sector}.logik.io/api/admin/v1/configurableProducts/{configProductId}',
{
  method: 'PUT',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

const fetch = require('node-fetch');
const inputBody = {
  "created": "2023-06-30T18:34:18.462919Z",
  "modified": "2023-09-20T17:01:23.129051Z",
  "id": 2,
  "name": "jackson",
  "blueprintVariableName": null,
  "partnerProductId": "01t6e00000949ujAAA"
};
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'
};

fetch('https://{tenant}.{sector}.logik.io/api/admin/v1/configurableProducts/{configProductId}',
{
  method: 'PUT',
  body: JSON.stringify(inputBody),
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

# You can also use wget
curl -X PUT https://{tenant}.{sector}.logik.io/api/admin/v1/configurableProducts/{configProductId} \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

PUT https://{tenant}.{sector}.logik.io/api/admin/v1/configurableProducts/{configProductId} HTTP/1.1

Content-Type: application/json
Accept: application/json

URL obj = new URL("https://{tenant}.{sector}.logik.io/api/admin/v1/configurableProducts/{configProductId}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("PUT");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Accept' => 'application/json',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.put 'https://{tenant}.{sector}.logik.io/api/admin/v1/configurableProducts/{configProductId}',
  params: {
  }, headers: headers

p JSON.parse(result)

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/json"},
        "Authorization": []string{"Bearer {access-token}"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("PUT", "https://{tenant}.{sector}.logik.io/api/admin/v1/configurableProducts/{configProductId}", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

PUT /api/admin/v1/configurableProducts/{configProductId}

Body parameter

{
  "created": "2023-06-30T18:34:18.462919Z",
  "modified": "2023-09-20T17:01:23.129051Z",
  "id": 2,
  "name": "jackson",
  "blueprintVariableName": null,
  "partnerProductId": "01t6e00000949ujAAA"
}

Parameters

Name In Type Required Description
configProductId path string true none
body body ConfigProductPayload true none

Example responses

200 Response

{
  "created": "2023-06-30T18:34:18.462919Z",
  "modified": "2023-09-20T17:01:23.129051Z",
  "id": 2,
  "name": "jackson",
  "blueprintVariableName": null,
  "partnerProductId": "01t6e00000949ujAAA"
}

Responses

Status Meaning Description Schema
200 OK none ConfigProductPayload

Fields

Logik Fields

Get List of fields

Code samples

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.get('https://{tenant}.{sector}.logik.io/api/admin/v3/fields', params={
  'area': 'USER_ONLY',  'page': '0',  'sort': 'modified%2CDESC',  'size': '100'
}, headers = headers)

print(r.json())


const headers = {
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'
};

fetch('https://{tenant}.{sector}.logik.io/api/admin/v3/fields?area=USER_ONLY&page=0&sort=modified%2CDESC&size=100',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'
};

fetch('https://{tenant}.{sector}.logik.io/api/admin/v3/fields?area=USER_ONLY&page=0&sort=modified%2CDESC&size=100',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

# You can also use wget
curl -X GET https://{tenant}.{sector}.logik.io/api/admin/v3/fields?area=USER_ONLY&page=0&sort=modified%2CDESC&size=100 \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

GET https://{tenant}.{sector}.logik.io/api/admin/v3/fields?area=USER_ONLY&page=0&sort=modified%2CDESC&size=100 HTTP/1.1

Accept: application/json

URL obj = new URL("https://{tenant}.{sector}.logik.io/api/admin/v3/fields?area=USER_ONLY&page=0&sort=modified%2CDESC&size=100");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/json',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.get 'https://{tenant}.{sector}.logik.io/api/admin/v3/fields',
  params: {
  'area' => 'string',
'page' => 'number',
'sort' => 'string',
'size' => 'number'
}, headers: headers

p JSON.parse(result)

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        "Authorization": []string{"Bearer {access-token}"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "https://{tenant}.{sector}.logik.io/api/admin/v3/fields", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

GET /api/admin/v3/fields

Parameters

Name In Type Required Description
area query string true none
page query number true Page number of results to return
sort query string true Sort field and order of the results
size query number true Number of results to return

Enumerated Values

Parameter Value
area USER_ONLY
area SYSTEM_VIEW

Example responses

200 Response

{
  "content": [
    {
      "id": 13,
      "name": "Action Context (System)",
      "variableName": "sys.actionContext",
      "description": "System Field for action context.",
      "type": "Text",
      "modified": "2023-04-21T14:27:22.469400Z",
      "category": "SYSTEM",
      "lastModifiedBy": null
    },
    {
      "id": 12,
      "name": "Line Id (Partner)",
      "variableName": "partner.quote.lineId",
      "description": "Unique identifier reference for the Configurable Product.",
      "type": "Text",
      "modified": "2022-10-28T16:06:05.843469Z",
      "category": "SYSTEM",
      "lastModifiedBy": null
    },
    {
      "id": 11,
      "name": "Currency ISO Code (Partner)",
      "variableName": "partner.quote.currencyIsoCode",
      "description": "Currency ISO Code of the Quote used to price items.",
      "type": "Text",
      "modified": "2022-09-28T13:07:47.352333Z",
      "category": "SYSTEM",
      "lastModifiedBy": null
    }
  ],
  "pageable": {
    "sort": {
      "empty": false,
      "unsorted": false,
      "sorted": true
    },
    "offset": 0,
    "pageNumber": 0,
    "pageSize": 100,
    "paged": true,
    "unpaged": false
  },
  "totalPages": 1,
  "last": true,
  "totalElements": 13,
  "size": 100,
  "number": 0,
  "sort": {
    "empty": false,
    "unsorted": false,
    "sorted": true
  },
  "numberOfElements": 13,
  "first": true,
  "empty": false
}

Responses

Status Meaning Description Schema
200 OK none Inline

Response Schema

Status Code 200

Name Type Required Restrictions Description
» content [object] false none none
»» id number true none none
»» name string true none none
»» variableName string true none none
»» description string true none none
»» type string true none none
»» modified string true none none
»» category string true none none
»» lastModifiedBy string true none none
» pageable object false none none
»» sort object false none none
»»» empty boolean false none none
»»» unsorted boolean false none none
»»» sorted boolean false none none
»» offset number false none none
»» pageNumber number false none none
»» pageSize number false none none
»» paged boolean false none none
»» unpaged boolean false none none
» totalPages number false none none
» last boolean false none none
» totalElements number false none none
» size number false none none
» number number false none none
» sort object false none none
»» empty boolean false none none
»» unsorted boolean false none none
»» sorted boolean false none none
» numberOfElements number false none none
» first boolean false none none
» empty boolean false none none

Create a Field

Code samples

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.post('https://{tenant}.{sector}.logik.io/api/admin/v1/fields', headers = headers)

print(r.json())

const inputBody = '{
  "type": "string",
  "name": "string",
  "variableName": "string",
  "required": true
}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'
};

fetch('https://{tenant}.{sector}.logik.io/api/admin/v1/fields',
{
  method: 'POST',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

const fetch = require('node-fetch');
const inputBody = {
  "type": "string",
  "name": "string",
  "variableName": "string",
  "required": true
};
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'
};

fetch('https://{tenant}.{sector}.logik.io/api/admin/v1/fields',
{
  method: 'POST',
  body: JSON.stringify(inputBody),
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

# You can also use wget
curl -X POST https://{tenant}.{sector}.logik.io/api/admin/v1/fields \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

POST https://{tenant}.{sector}.logik.io/api/admin/v1/fields HTTP/1.1

Content-Type: application/json
Accept: application/json

URL obj = new URL("https://{tenant}.{sector}.logik.io/api/admin/v1/fields");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Accept' => 'application/json',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.post 'https://{tenant}.{sector}.logik.io/api/admin/v1/fields',
  params: {
  }, headers: headers

p JSON.parse(result)

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/json"},
        "Authorization": []string{"Bearer {access-token}"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "https://{tenant}.{sector}.logik.io/api/admin/v1/fields", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

POST /api/admin/v1/fields

Body parameter

{
  "type": "string",
  "name": "string",
  "variableName": "string",
  "required": true
}

Parameters

Name In Type Required Description
body body object true none
» type body string false none
» name body string false none
» variableName body string false none
» required body boolean false none

Example responses

201 Response

{
  "type": "Picklist",
  "created": "2023-09-20T14:23:52.783593669Z",
  "modified": "2023-09-20T14:23:52.783593669Z",
  "id": 72,
  "name": "newPicklist",
  "variableName": "newPicklist",
  "description": null,
  "required": false,
  "category": "USER",
  "lastModifiedBy": "scheck@sm1.logik.dev",
  "selectType": "single",
  "defaultValue": null
}

Responses

Status Meaning Description Schema
201 Created none Inline

Response Schema

Status Code 201

Name Type Required Restrictions Description
» type string false none none
» created string false none none
» modified string false none none
» id number false none none
» name string false none none
» variableName string false none none
» description string false none none
» required boolean false none none
» category string false none none
» lastModifiedBy string false none none
» selectType string false none none
» defaultValue string false none none

Bulk Delete Fields

Code samples

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.post('https://{tenant}.{sector}.logik.io/api/admin/v1/bulk/fields/delete', headers = headers)

print(r.json())

const inputBody = '[
  {
    "variableName": "string"
  }
]';
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'
};

fetch('https://{tenant}.{sector}.logik.io/api/admin/v1/bulk/fields/delete',
{
  method: 'POST',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

const fetch = require('node-fetch');
const inputBody = [
  {
    "variableName": "string"
  }
];
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'
};

fetch('https://{tenant}.{sector}.logik.io/api/admin/v1/bulk/fields/delete',
{
  method: 'POST',
  body: JSON.stringify(inputBody),
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

# You can also use wget
curl -X POST https://{tenant}.{sector}.logik.io/api/admin/v1/bulk/fields/delete \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

POST https://{tenant}.{sector}.logik.io/api/admin/v1/bulk/fields/delete HTTP/1.1

Content-Type: application/json
Accept: application/json

URL obj = new URL("https://{tenant}.{sector}.logik.io/api/admin/v1/bulk/fields/delete");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Accept' => 'application/json',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.post 'https://{tenant}.{sector}.logik.io/api/admin/v1/bulk/fields/delete',
  params: {
  }, headers: headers

p JSON.parse(result)

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/json"},
        "Authorization": []string{"Bearer {access-token}"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "https://{tenant}.{sector}.logik.io/api/admin/v1/bulk/fields/delete", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

POST /api/admin/v1/bulk/fields/delete

Body parameter

[
  {
    "variableName": "string"
  }
]

Parameters

Name In Type Required Description
body body array[object] true none

Example responses

200 Response

{
  "count": 1,
  "records": [
    {
      "num": 1,
      "success": false,
      "created": false,
      "identifier": null,
      "errorMessage": "LGK-81547D98920B422C9977D6317: Cannot delete 'test' field because it is referenced by the following blueprints: [aggTest]."
    }
  ]
}

Responses

Status Meaning Description Schema
200 OK none Inline

Response Schema

Status Code 200

Name Type Required Restrictions Description
» count number false none none
» records [object] false none none
»» num number false none none
»» success boolean false none none
»» created boolean false none none
»» identifier string false none none
»» errorMessage string false none none

Get a Field

Code samples

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.get('https://{tenant}.{sector}.logik.io/api/admin/v2/fields/{fieldName}', headers = headers)

print(r.json())


const headers = {
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'
};

fetch('https://{tenant}.{sector}.logik.io/api/admin/v2/fields/{fieldName}',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'
};

fetch('https://{tenant}.{sector}.logik.io/api/admin/v2/fields/{fieldName}',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

# You can also use wget
curl -X GET https://{tenant}.{sector}.logik.io/api/admin/v2/fields/{fieldName} \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

GET https://{tenant}.{sector}.logik.io/api/admin/v2/fields/{fieldName} HTTP/1.1

Accept: application/json

URL obj = new URL("https://{tenant}.{sector}.logik.io/api/admin/v2/fields/{fieldName}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/json',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.get 'https://{tenant}.{sector}.logik.io/api/admin/v2/fields/{fieldName}',
  params: {
  }, headers: headers

p JSON.parse(result)

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        "Authorization": []string{"Bearer {access-token}"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "https://{tenant}.{sector}.logik.io/api/admin/v2/fields/{fieldName}", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

GET /api/admin/v2/fields/{fieldName}

Parameters

Name In Type Required Description
fieldName path string true none

Example responses

200 Response

{
  "type": "Text",
  "created": "2023-09-20T14:22:08.080151Z",
  "modified": "2023-09-20T14:22:08.080151Z",
  "id": 69,
  "name": "newText",
  "variableName": "newText",
  "description": null,
  "required": false,
  "category": "USER",
  "lastModifiedBy": "scheck@sm1.logik.dev",
  "defaultValue": null,
  "minLength": null,
  "maxLength": null
}

Responses

Status Meaning Description Schema
200 OK none Inline

Response Schema

Status Code 200

Name Type Required Restrictions Description
» type string false none none
» created string false none none
» modified string false none none
» id number false none none
» name string false none none
» variableName string false none none
» description string false none none
» required boolean false none none
» category string false none none
» lastModifiedBy string false none none
» defaultValue string false none none
» minLength string false none none
» maxLength string false none none

Update a Field

Code samples

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.put('https://{tenant}.{sector}.logik.io/api/admin/v2/fields/{fieldName}', headers = headers)

print(r.json())

const inputBody = '{
  "type": "string",
  "created": "string",
  "modified": "string",
  "id": 0,
  "name": "string",
  "variableName": "string",
  "description": "string",
  "required": true,
  "category": "string",
  "lastModifiedBy": "string",
  "defaultValue": "string",
  "minLength": "string",
  "maxLength": "string"
}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'
};

fetch('https://{tenant}.{sector}.logik.io/api/admin/v2/fields/{fieldName}',
{
  method: 'PUT',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

const fetch = require('node-fetch');
const inputBody = {
  "type": "string",
  "created": "string",
  "modified": "string",
  "id": 0,
  "name": "string",
  "variableName": "string",
  "description": "string",
  "required": true,
  "category": "string",
  "lastModifiedBy": "string",
  "defaultValue": "string",
  "minLength": "string",
  "maxLength": "string"
};
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'
};

fetch('https://{tenant}.{sector}.logik.io/api/admin/v2/fields/{fieldName}',
{
  method: 'PUT',
  body: JSON.stringify(inputBody),
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

# You can also use wget
curl -X PUT https://{tenant}.{sector}.logik.io/api/admin/v2/fields/{fieldName} \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

PUT https://{tenant}.{sector}.logik.io/api/admin/v2/fields/{fieldName} HTTP/1.1

Content-Type: application/json
Accept: application/json

URL obj = new URL("https://{tenant}.{sector}.logik.io/api/admin/v2/fields/{fieldName}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("PUT");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Accept' => 'application/json',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.put 'https://{tenant}.{sector}.logik.io/api/admin/v2/fields/{fieldName}',
  params: {
  }, headers: headers

p JSON.parse(result)

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/json"},
        "Authorization": []string{"Bearer {access-token}"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("PUT", "https://{tenant}.{sector}.logik.io/api/admin/v2/fields/{fieldName}", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

PUT /api/admin/v2/fields/{fieldName}

Body parameter

{
  "type": "string",
  "created": "string",
  "modified": "string",
  "id": 0,
  "name": "string",
  "variableName": "string",
  "description": "string",
  "required": true,
  "category": "string",
  "lastModifiedBy": "string",
  "defaultValue": "string",
  "minLength": "string",
  "maxLength": "string"
}

Parameters

Name In Type Required Description
fieldName path string true none
body body object true none
» type body string false none
» created body string false none
» modified body string false none
» id body number false none
» name body string false none
» variableName body string false none
» description body string false none
» required body boolean false none
» category body string false none
» lastModifiedBy body string false none
» defaultValue body string false none
» minLength body string false none
» maxLength body string false none

Example responses

200 Response

{
  "type": "Text",
  "created": "2023-09-20T14:22:08.080151Z",
  "modified": "2023-09-20T14:22:31.886287707Z",
  "id": 69,
  "name": "newText",
  "variableName": "newText",
  "description": null,
  "required": true,
  "category": "USER",
  "lastModifiedBy": "scheck@sm1.logik.dev",
  "defaultValue": "placeholder text",
  "minLength": null,
  "maxLength": null
}

Responses

Status Meaning Description Schema
200 OK none Inline

Response Schema

Status Code 200

Name Type Required Restrictions Description
» type string false none none
» created string false none none
» modified string false none none
» id number false none none
» name string false none none
» variableName string false none none
» description string false none none
» required boolean false none none
» category string false none none
» lastModifiedBy string false none none
» defaultValue string false none none
» minLength string false none none
» maxLength string false none none

Fields > Picklist

Picklist Fields

Create Picklist Extension Data

Code samples

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.post('https://{tenant}.{sector}.logik.io/api/admin/v1/fields/{fieldName}/extension', headers = headers)

print(r.json())

const inputBody = '{
  "created": "2023-09-20T15:46:20.788140301Z",
  "modified": "2023-09-20T15:46:20.788140301Z",
  "id": 1,
  "columns": [
    {
      "created": "2023-09-20T15:46:20.807360033Z",
      "modified": "2023-09-20T15:46:20.807360033Z",
      "id": 1,
      "header": "value",
      "mappedFieldVarName": null,
      "columnUse": "Value",
      "extendedInfo": false,
      "customKey": null,
      "orderNumber": 1
    },
    {
      "created": "2023-09-20T15:46:20.864598589Z",
      "modified": "2023-09-20T15:46:20.864598589Z",
      "id": 2,
      "header": "weight",
      "mappedFieldVarName": null,
      "columnUse": null,
      "extendedInfo": true,
      "customKey": null,
      "orderNumber": 2
    },
    {
      "created": "2023-09-20T15:46:20.865972460Z",
      "modified": "2023-09-20T15:46:20.865972460Z",
      "id": 3,
      "header": "height",
      "mappedFieldVarName": "ProductId",
      "columnUse": "ProductId",
      "extendedInfo": true,
      "customKey": null,
      "orderNumber": 3
    },
    {
      "created": "2023-09-20T15:46:20.866900305Z",
      "modified": "2023-09-20T15:46:20.866900305Z",
      "id": 4,
      "header": "ProductDescription",
      "mappedFieldVarName": "ProductDescription",
      "columnUse": "ProductDescription",
      "extendedInfo": true,
      "customKey": null,
      "orderNumber": 4
    },
    {
      "created": "2023-09-20T15:46:20.867762877Z",
      "modified": "2023-09-20T15:46:20.867762877Z",
      "id": 5,
      "header": "ProductNotes",
      "mappedFieldVarName": "ProductNotes",
      "columnUse": "ProductNotes",
      "extendedInfo": true,
      "customKey": null,
      "orderNumber": 5
    },
    {
      "created": "2023-09-20T15:46:20.868909161Z",
      "modified": "2023-09-20T15:46:20.868909161Z",
      "id": 6,
      "header": "ProductUniqueIdentifier",
      "mappedFieldVarName": "ProductUniqueIdentifier",
      "columnUse": "ProductUniqueIdentifier",
      "extendedInfo": true,
      "customKey": null,
      "orderNumber": 6
    },
    {
      "created": "2023-09-20T15:46:20.870015484Z",
      "modified": "2023-09-20T15:46:20.870015484Z",
      "id": 7,
      "header": "ProductOrderNumber",
      "mappedFieldVarName": null,
      "columnUse": null,
      "extendedInfo": false,
      "customKey": null,
      "orderNumber": 7
    }
  ],
  "jobId": 101,
  "enrichEnabled": false,
  "variableName": "newPicklist"
}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'
};

fetch('https://{tenant}.{sector}.logik.io/api/admin/v1/fields/{fieldName}/extension',
{
  method: 'POST',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

const fetch = require('node-fetch');
const inputBody = {
  "created": "2023-09-20T15:46:20.788140301Z",
  "modified": "2023-09-20T15:46:20.788140301Z",
  "id": 1,
  "columns": [
    {
      "created": "2023-09-20T15:46:20.807360033Z",
      "modified": "2023-09-20T15:46:20.807360033Z",
      "id": 1,
      "header": "value",
      "mappedFieldVarName": null,
      "columnUse": "Value",
      "extendedInfo": false,
      "customKey": null,
      "orderNumber": 1
    },
    {
      "created": "2023-09-20T15:46:20.864598589Z",
      "modified": "2023-09-20T15:46:20.864598589Z",
      "id": 2,
      "header": "weight",
      "mappedFieldVarName": null,
      "columnUse": null,
      "extendedInfo": true,
      "customKey": null,
      "orderNumber": 2
    },
    {
      "created": "2023-09-20T15:46:20.865972460Z",
      "modified": "2023-09-20T15:46:20.865972460Z",
      "id": 3,
      "header": "height",
      "mappedFieldVarName": "ProductId",
      "columnUse": "ProductId",
      "extendedInfo": true,
      "customKey": null,
      "orderNumber": 3
    },
    {
      "created": "2023-09-20T15:46:20.866900305Z",
      "modified": "2023-09-20T15:46:20.866900305Z",
      "id": 4,
      "header": "ProductDescription",
      "mappedFieldVarName": "ProductDescription",
      "columnUse": "ProductDescription",
      "extendedInfo": true,
      "customKey": null,
      "orderNumber": 4
    },
    {
      "created": "2023-09-20T15:46:20.867762877Z",
      "modified": "2023-09-20T15:46:20.867762877Z",
      "id": 5,
      "header": "ProductNotes",
      "mappedFieldVarName": "ProductNotes",
      "columnUse": "ProductNotes",
      "extendedInfo": true,
      "customKey": null,
      "orderNumber": 5
    },
    {
      "created": "2023-09-20T15:46:20.868909161Z",
      "modified": "2023-09-20T15:46:20.868909161Z",
      "id": 6,
      "header": "ProductUniqueIdentifier",
      "mappedFieldVarName": "ProductUniqueIdentifier",
      "columnUse": "ProductUniqueIdentifier",
      "extendedInfo": true,
      "customKey": null,
      "orderNumber": 6
    },
    {
      "created": "2023-09-20T15:46:20.870015484Z",
      "modified": "2023-09-20T15:46:20.870015484Z",
      "id": 7,
      "header": "ProductOrderNumber",
      "mappedFieldVarName": null,
      "columnUse": null,
      "extendedInfo": false,
      "customKey": null,
      "orderNumber": 7
    }
  ],
  "jobId": 101,
  "enrichEnabled": false,
  "variableName": "newPicklist"
};
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'
};

fetch('https://{tenant}.{sector}.logik.io/api/admin/v1/fields/{fieldName}/extension',
{
  method: 'POST',
  body: JSON.stringify(inputBody),
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

# You can also use wget
curl -X POST https://{tenant}.{sector}.logik.io/api/admin/v1/fields/{fieldName}/extension \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

POST https://{tenant}.{sector}.logik.io/api/admin/v1/fields/{fieldName}/extension HTTP/1.1

Content-Type: application/json
Accept: application/json

URL obj = new URL("https://{tenant}.{sector}.logik.io/api/admin/v1/fields/{fieldName}/extension");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Accept' => 'application/json',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.post 'https://{tenant}.{sector}.logik.io/api/admin/v1/fields/{fieldName}/extension',
  params: {
  }, headers: headers

p JSON.parse(result)

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/json"},
        "Authorization": []string{"Bearer {access-token}"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "https://{tenant}.{sector}.logik.io/api/admin/v1/fields/{fieldName}/extension", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

POST /api/admin/v1/fields/{fieldName}/extension

Body parameter

{
  "created": "2023-09-20T15:46:20.788140301Z",
  "modified": "2023-09-20T15:46:20.788140301Z",
  "id": 1,
  "columns": [
    {
      "created": "2023-09-20T15:46:20.807360033Z",
      "modified": "2023-09-20T15:46:20.807360033Z",
      "id": 1,
      "header": "value",
      "mappedFieldVarName": null,
      "columnUse": "Value",
      "extendedInfo": false,
      "customKey": null,
      "orderNumber": 1
    },
    {
      "created": "2023-09-20T15:46:20.864598589Z",
      "modified": "2023-09-20T15:46:20.864598589Z",
      "id": 2,
      "header": "weight",
      "mappedFieldVarName": null,
      "columnUse": null,
      "extendedInfo": true,
      "customKey": null,
      "orderNumber": 2
    },
    {
      "created": "2023-09-20T15:46:20.865972460Z",
      "modified": "2023-09-20T15:46:20.865972460Z",
      "id": 3,
      "header": "height",
      "mappedFieldVarName": "ProductId",
      "columnUse": "ProductId",
      "extendedInfo": true,
      "customKey": null,
      "orderNumber": 3
    },
    {
      "created": "2023-09-20T15:46:20.866900305Z",
      "modified": "2023-09-20T15:46:20.866900305Z",
      "id": 4,
      "header": "ProductDescription",
      "mappedFieldVarName": "ProductDescription",
      "columnUse": "ProductDescription",
      "extendedInfo": true,
      "customKey": null,
      "orderNumber": 4
    },
    {
      "created": "2023-09-20T15:46:20.867762877Z",
      "modified": "2023-09-20T15:46:20.867762877Z",
      "id": 5,
      "header": "ProductNotes",
      "mappedFieldVarName": "ProductNotes",
      "columnUse": "ProductNotes",
      "extendedInfo": true,
      "customKey": null,
      "orderNumber": 5
    },
    {
      "created": "2023-09-20T15:46:20.868909161Z",
      "modified": "2023-09-20T15:46:20.868909161Z",
      "id": 6,
      "header": "ProductUniqueIdentifier",
      "mappedFieldVarName": "ProductUniqueIdentifier",
      "columnUse": "ProductUniqueIdentifier",
      "extendedInfo": true,
      "customKey": null,
      "orderNumber": 6
    },
    {
      "created": "2023-09-20T15:46:20.870015484Z",
      "modified": "2023-09-20T15:46:20.870015484Z",
      "id": 7,
      "header": "ProductOrderNumber",
      "mappedFieldVarName": null,
      "columnUse": null,
      "extendedInfo": false,
      "customKey": null,
      "orderNumber": 7
    }
  ],
  "jobId": 101,
  "enrichEnabled": false,
  "variableName": "newPicklist"
}

Parameters

Name In Type Required Description
fieldName path string true none
body body PicklistExtensionRequest true none

Example responses

200 Response

{
  "created": "2023-09-20T15:46:20.788140Z",
  "modified": "2023-09-20T15:47:48.339646756Z",
  "id": 1,
  "columns": [
    {
      "created": "2023-09-20T15:46:20.807360Z",
      "modified": "2023-09-20T15:47:48.339697472Z",
      "id": 1,
      "header": "value",
      "mappedFieldVarName": null,
      "columnUse": "Value",
      "extendedInfo": false,
      "customKey": null,
      "orderNumber": 1
    },
    {
      "created": "2023-09-20T15:46:20.864599Z",
      "modified": "2023-09-20T15:47:48.339751892Z",
      "id": 2,
      "header": "weight",
      "mappedFieldVarName": null,
      "columnUse": null,
      "extendedInfo": true,
      "customKey": null,
      "orderNumber": 2
    },
    {
      "created": "2023-09-20T15:46:20.865972Z",
      "modified": "2023-09-20T15:47:48.339775139Z",
      "id": 3,
      "header": "height",
      "mappedFieldVarName": null,
      "columnUse": "ProductId",
      "extendedInfo": true,
      "customKey": null,
      "orderNumber": 3
    }
  ],
  "enrichEnabled": false
}

Responses

Status Meaning Description Schema
200 OK none Inline

Response Schema

Status Code 200

Name Type Required Restrictions Description
» created string false none none
» modified string false none none
» id number false none none
» columns [object] false none none
»» created string true none none
»» modified string true none none
»» id number true none none
»» header string true none none
»» mappedFieldVarName string true none none
»» columnUse string true none none
»» extendedInfo boolean true none none
»» customKey string true none none
»» orderNumber number true none none
» enrichEnabled boolean false none none

Get Picklist Field options

Code samples

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.get('https://{tenant}.{sector}.logik.io/api/admin/v1/fields/{fieldName}/options', params={
  'page': '0',  'sort': 'modified%2CDESC',  'size': '100'
}, headers = headers)

print(r.json())


const headers = {
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'
};

fetch('https://{tenant}.{sector}.logik.io/api/admin/v1/fields/{fieldName}/options?page=0&sort=modified%2CDESC&size=100',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'
};

fetch('https://{tenant}.{sector}.logik.io/api/admin/v1/fields/{fieldName}/options?page=0&sort=modified%2CDESC&size=100',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

# You can also use wget
curl -X GET https://{tenant}.{sector}.logik.io/api/admin/v1/fields/{fieldName}/options?page=0&sort=modified%2CDESC&size=100 \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

GET https://{tenant}.{sector}.logik.io/api/admin/v1/fields/{fieldName}/options?page=0&sort=modified%2CDESC&size=100 HTTP/1.1

Accept: application/json

URL obj = new URL("https://{tenant}.{sector}.logik.io/api/admin/v1/fields/{fieldName}/options?page=0&sort=modified%2CDESC&size=100");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/json',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.get 'https://{tenant}.{sector}.logik.io/api/admin/v1/fields/{fieldName}/options',
  params: {
  'page' => 'number',
'sort' => 'string',
'size' => 'number'
}, headers: headers

p JSON.parse(result)

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        "Authorization": []string{"Bearer {access-token}"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "https://{tenant}.{sector}.logik.io/api/admin/v1/fields/{fieldName}/options", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

GET /api/admin/v1/fields/{fieldName}/options

Parameters

Name In Type Required Description
page query number true Page number of results to return
sort query string true Sort field and order of the results
size query number true Number of results to return
fieldName path string true none

Example responses

200 Response

{
  "content": [
    {
      "id": 37,
      "name": "option 1",
      "value": "option 1",
      "imageUrl": "",
      "description": "first option",
      "optionGroup": null,
      "modified": "2023-09-20T14:24:19.404906Z",
      "defaultValue": true,
      "order": 10
    }
  ],
  "pageable": {
    "sort": {
      "empty": false,
      "unsorted": false,
      "sorted": true
    },
    "offset": 0,
    "pageNumber": 0,
    "pageSize": 100,
    "paged": true,
    "unpaged": false
  },
  "totalPages": 1,
  "last": true,
  "totalElements": 1,
  "size": 100,
  "number": 0,
  "sort": {
    "empty": false,
    "unsorted": false,
    "sorted": true
  },
  "numberOfElements": 1,
  "first": true,
  "empty": false
}

Responses

Status Meaning Description Schema
200 OK none Inline

Response Schema

Status Code 200

Name Type Required Restrictions Description
» content [object] false none none
»» id number false none none
»» name string false none none
»» value string false none none
»» imageUrl string false none none
»» description string false none none
»» optionGroup string false none none
»» modified string false none none
»» defaultValue boolean false none none
»» order number false none none
» pageable object false none none
»» sort object false none none
»»» empty boolean false none none
»»» unsorted boolean false none none
»»» sorted boolean false none none
»» offset number false none none
»» pageNumber number false none none
»» pageSize number false none none
»» paged boolean false none none
»» unpaged boolean false none none
» totalPages number false none none
» last boolean false none none
» totalElements number false none none
» size number false none none
» number number false none none
» sort object false none none
»» empty boolean false none none
»» unsorted boolean false none none
»» sorted boolean false none none
» numberOfElements number false none none
» first boolean false none none
» empty boolean false none none

Create Picklist Field options

Code samples

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.post('https://{tenant}.{sector}.logik.io/api/admin/v1/fields/{fieldName}/options', headers = headers)

print(r.json())

const inputBody = '[
  {
    "name": "string",
    "value": "string",
    "defaultValue": true,
    "imageUrl": "string",
    "description": "string",
    "order": 0,
    "optionGroup": "string"
  }
]';
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'
};

fetch('https://{tenant}.{sector}.logik.io/api/admin/v1/fields/{fieldName}/options',
{
  method: 'POST',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

const fetch = require('node-fetch');
const inputBody = [
  {
    "name": "string",
    "value": "string",
    "defaultValue": true,
    "imageUrl": "string",
    "description": "string",
    "order": 0,
    "optionGroup": "string"
  }
];
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'
};

fetch('https://{tenant}.{sector}.logik.io/api/admin/v1/fields/{fieldName}/options',
{
  method: 'POST',
  body: JSON.stringify(inputBody),
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

# You can also use wget
curl -X POST https://{tenant}.{sector}.logik.io/api/admin/v1/fields/{fieldName}/options \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

POST https://{tenant}.{sector}.logik.io/api/admin/v1/fields/{fieldName}/options HTTP/1.1

Content-Type: application/json
Accept: application/json

URL obj = new URL("https://{tenant}.{sector}.logik.io/api/admin/v1/fields/{fieldName}/options");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Accept' => 'application/json',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.post 'https://{tenant}.{sector}.logik.io/api/admin/v1/fields/{fieldName}/options',
  params: {
  }, headers: headers

p JSON.parse(result)

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/json"},
        "Authorization": []string{"Bearer {access-token}"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "https://{tenant}.{sector}.logik.io/api/admin/v1/fields/{fieldName}/options", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

POST /api/admin/v1/fields/{fieldName}/options

Body parameter

[
  {
    "name": "string",
    "value": "string",
    "defaultValue": true,
    "imageUrl": "string",
    "description": "string",
    "order": 0,
    "optionGroup": "string"
  }
]

Parameters

Name In Type Required Description
fieldName path string true none
body body array[object] true none

Example responses

201 Response

[
  {
    "id": 37,
    "name": "option 1",
    "value": "option 1",
    "imageUrl": "",
    "description": "first option",
    "order": 10,
    "defaultValue": true
  }
]

Responses

Status Meaning Description Schema
201 Created none Inline

Response Schema

Status Code 201

Name Type Required Restrictions Description
» id number false none none
» name string false none none
» value string false none none
» imageUrl string false none none
» description string false none none
» order number false none none
» defaultValue boolean false none none

Fields > Related

Related items for fields

Code samples

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.get('https://{tenant}.{sector}.logik.io/api/admin/v1/fields/{fieldName}/rules', headers = headers)

print(r.json())


const headers = {
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'
};

fetch('https://{tenant}.{sector}.logik.io/api/admin/v1/fields/{fieldName}/rules',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'
};

fetch('https://{tenant}.{sector}.logik.io/api/admin/v1/fields/{fieldName}/rules',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

# You can also use wget
curl -X GET https://{tenant}.{sector}.logik.io/api/admin/v1/fields/{fieldName}/rules \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

GET https://{tenant}.{sector}.logik.io/api/admin/v1/fields/{fieldName}/rules HTTP/1.1

Accept: application/json

URL obj = new URL("https://{tenant}.{sector}.logik.io/api/admin/v1/fields/{fieldName}/rules");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/json',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.get 'https://{tenant}.{sector}.logik.io/api/admin/v1/fields/{fieldName}/rules',
  params: {
  }, headers: headers

p JSON.parse(result)

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        "Authorization": []string{"Bearer {access-token}"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "https://{tenant}.{sector}.logik.io/api/admin/v1/fields/{fieldName}/rules", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

GET /api/admin/v1/fields/{fieldName}/rules

Get Rules related to a Field

Name In Type Required Description
fieldName path string true none

Example responses

200 Response

{
  "content": [],
  "pageable": {
    "sort": {
      "empty": true,
      "unsorted": true,
      "sorted": false
    },
    "offset": 0,
    "pageNumber": 0,
    "pageSize": 10,
    "paged": true,
    "unpaged": false
  },
  "totalPages": 0,
  "last": true,
  "totalElements": 0,
  "size": 10,
  "number": 0,
  "sort": {
    "empty": true,
    "unsorted": true,
    "sorted": false
  },
  "numberOfElements": 0,
  "first": true,
  "empty": true
}
Status Meaning Description Schema
200 OK none Inline

Status Code 200

Name Type Required Restrictions Description
» content [any] false none none
» pageable object false none none
»» sort object false none none
»»» empty boolean false none none
»»» unsorted boolean false none none
»»» sorted boolean false none none
»» offset number false none none
»» pageNumber number false none none
»» pageSize number false none none
»» paged boolean false none none
»» unpaged boolean false none none
» totalPages number false none none
» last boolean false none none
» totalElements number false none none
» size number false none none
» number number false none none
» sort object false none none
»» empty boolean false none none
»» unsorted boolean false none none
»» sorted boolean false none none
» numberOfElements number false none none
» first boolean false none none
» empty boolean false none none

Code samples

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.get('https://{tenant}.{sector}.logik.io/api/admin/v1/fields/{fieldName}/blueprints', headers = headers)

print(r.json())


const headers = {
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'
};

fetch('https://{tenant}.{sector}.logik.io/api/admin/v1/fields/{fieldName}/blueprints',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'
};

fetch('https://{tenant}.{sector}.logik.io/api/admin/v1/fields/{fieldName}/blueprints',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

# You can also use wget
curl -X GET https://{tenant}.{sector}.logik.io/api/admin/v1/fields/{fieldName}/blueprints \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

GET https://{tenant}.{sector}.logik.io/api/admin/v1/fields/{fieldName}/blueprints HTTP/1.1

Accept: application/json

URL obj = new URL("https://{tenant}.{sector}.logik.io/api/admin/v1/fields/{fieldName}/blueprints");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/json',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.get 'https://{tenant}.{sector}.logik.io/api/admin/v1/fields/{fieldName}/blueprints',
  params: {
  }, headers: headers

p JSON.parse(result)

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        "Authorization": []string{"Bearer {access-token}"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "https://{tenant}.{sector}.logik.io/api/admin/v1/fields/{fieldName}/blueprints", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

GET /api/admin/v1/fields/{fieldName}/blueprints

Get Blueprints related to a Field

Name In Type Required Description
fieldName path string true none

Example responses

200 Response

{
  "content": [],
  "pageable": {
    "sort": {
      "empty": true,
      "unsorted": true,
      "sorted": false
    },
    "offset": 0,
    "pageNumber": 0,
    "pageSize": 10,
    "paged": true,
    "unpaged": false
  },
  "totalPages": 0,
  "last": true,
  "totalElements": 0,
  "size": 10,
  "number": 0,
  "sort": {
    "empty": true,
    "unsorted": true,
    "sorted": false
  },
  "numberOfElements": 0,
  "first": true,
  "empty": true
}
Status Meaning Description Schema
200 OK none Inline

Status Code 200

Name Type Required Restrictions Description
» content [any] false none none
» pageable object false none none
»» sort object false none none
»»» empty boolean false none none
»»» unsorted boolean false none none
»»» sorted boolean false none none
»» offset number false none none
»» pageNumber number false none none
»» pageSize number false none none
»» paged boolean false none none
»» unpaged boolean false none none
» totalPages number false none none
» last boolean false none none
» totalElements number false none none
» size number false none none
» number number false none none
» sort object false none none
»» empty boolean false none none
»» unsorted boolean false none none
»» sorted boolean false none none
» numberOfElements number false none none
» first boolean false none none
» empty boolean false none none

Code samples

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.get('https://{tenant}.{sector}.logik.io/api/admin/v1/fields/{fieldName}/configurableProducts', headers = headers)

print(r.json())


const headers = {
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'
};

fetch('https://{tenant}.{sector}.logik.io/api/admin/v1/fields/{fieldName}/configurableProducts',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'
};

fetch('https://{tenant}.{sector}.logik.io/api/admin/v1/fields/{fieldName}/configurableProducts',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

# You can also use wget
curl -X GET https://{tenant}.{sector}.logik.io/api/admin/v1/fields/{fieldName}/configurableProducts \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

GET https://{tenant}.{sector}.logik.io/api/admin/v1/fields/{fieldName}/configurableProducts HTTP/1.1

Accept: application/json

URL obj = new URL("https://{tenant}.{sector}.logik.io/api/admin/v1/fields/{fieldName}/configurableProducts");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/json',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.get 'https://{tenant}.{sector}.logik.io/api/admin/v1/fields/{fieldName}/configurableProducts',
  params: {
  }, headers: headers

p JSON.parse(result)

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        "Authorization": []string{"Bearer {access-token}"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "https://{tenant}.{sector}.logik.io/api/admin/v1/fields/{fieldName}/configurableProducts", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

GET /api/admin/v1/fields/{fieldName}/configurableProducts

Get Configurable Products related to a Field

Name In Type Required Description
fieldName path string true none

Example responses

200 Response

{
  "content": [
    {
      "created": "2023-06-14T14:55:49.699022Z",
      "modified": "2023-06-21T22:23:09.801284Z",
      "id": 3,
      "name": "UniqueLinesConfig",
      "blueprintVariableName": "pCBuilder",
      "partnerProductId": "01t6e000009bzMuAAI"
    }
  ],
  "pageable": {
    "sort": {
      "empty": false,
      "sorted": true,
      "unsorted": false
    },
    "offset": 0,
    "pageNumber": 0,
    "pageSize": 100,
    "paged": true,
    "unpaged": false
  },
  "totalPages": 1,
  "last": true,
  "totalElements": 1,
  "size": 100,
  "number": 0,
  "sort": {
    "empty": false,
    "sorted": true,
    "unsorted": false
  },
  "numberOfElements": 1,
  "first": true,
  "empty": false
}
Status Meaning Description Schema
200 OK none RelatedConfigProductsResponse

Set

Set Fields

Get List of Sets

Code samples

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.get('https://{tenant}.{sector}.logik.io/api/admin/v1/sets', params={
  'page': '0',  'sort': 'modified%2CDESC',  'size': '100'
}, headers = headers)

print(r.json())


const headers = {
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'
};

fetch('https://{tenant}.{sector}.logik.io/api/admin/v1/sets?page=0&sort=modified%2CDESC&size=100',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'
};

fetch('https://{tenant}.{sector}.logik.io/api/admin/v1/sets?page=0&sort=modified%2CDESC&size=100',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

# You can also use wget
curl -X GET https://{tenant}.{sector}.logik.io/api/admin/v1/sets?page=0&sort=modified%2CDESC&size=100 \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

GET https://{tenant}.{sector}.logik.io/api/admin/v1/sets?page=0&sort=modified%2CDESC&size=100 HTTP/1.1

Accept: application/json

URL obj = new URL("https://{tenant}.{sector}.logik.io/api/admin/v1/sets?page=0&sort=modified%2CDESC&size=100");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/json',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.get 'https://{tenant}.{sector}.logik.io/api/admin/v1/sets',
  params: {
  'page' => 'number',
'sort' => 'string',
'size' => 'number'
}, headers: headers

p JSON.parse(result)

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        "Authorization": []string{"Bearer {access-token}"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "https://{tenant}.{sector}.logik.io/api/admin/v1/sets", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

GET /api/admin/v1/sets

Parameters

Name In Type Required Description
page query number true Page number of results to return
sort query string true Sort field and order of the results
size query number true Number of results to return

Example responses

200 Response

{
  "content": [
    {
      "id": 2,
      "name": "basic",
      "variableName": "basic",
      "sizeType": "setField",
      "created": "2023-08-31T18:51:49.006629Z",
      "modified": "2023-08-31T18:51:49.006629Z",
      "fields": [
        {
          "id": 3,
          "variableName": "set.basic.index",
          "name": "Index for basic",
          "description": null,
          "type": "Number",
          "distinct": false,
          "created": "2023-08-31T18:51:49.075661Z",
          "modified": "2023-08-31T18:51:49.075661Z",
          "lastModifiedBy": null
        }
      ],
      "aggregateFields": [],
      "sizeFieldVariableName": "set.basic.size",
      "sizeField": {
        "type": "Size",
        "created": "2023-08-31T18:51:49.006953Z",
        "modified": "2023-08-31T18:51:49.093582Z",
        "id": 62,
        "name": "basic Size",
        "variableName": "set.basic.size",
        "description": null,
        "required": false,
        "category": "SET_SIZE",
        "setVariableName": "basic",
        "lastModifiedBy": null,
        "defaultValue": null,
        "minValue": null,
        "maxValue": null
      },
      "lastModifiedBy": "scheck@sm1.logik.dev"
    },
    {
      "id": 1,
      "name": "pickSet",
      "variableName": "pickSet",
      "sizeType": "setField",
      "created": "2023-07-24T20:05:50.031086Z",
      "modified": "2023-07-24T20:05:57.172924Z",
      "fields": [
        {
          "id": 1,
          "variableName": "set.pickSet.index",
          "name": "Index for pickSet",
          "description": null,
          "type": "Number",
          "distinct": false,
          "created": "2023-07-24T20:05:50.044686Z",
          "modified": "2023-07-24T20:05:50.044686Z",
          "lastModifiedBy": null
        },
        {
          "id": 2,
          "variableName": "psmPP",
          "name": "psmPP",
          "description": null,
          "type": "ProductPicker",
          "distinct": false,
          "created": "2023-07-24T20:05:57.170051Z",
          "modified": "2023-07-24T20:05:57.170051Z",
          "lastModifiedBy": "scheck@sm1.logik.dev"
        }
      ],
      "aggregateFields": [
        {
          "type": "Number",
          "created": "2023-07-24T20:06:27.335030Z",
          "modified": "2023-07-24T20:06:27.335030Z",
          "id": 59,
          "name": "maxQty",
          "variableName": "set.pickSet.maxQty",
          "description": null,
          "required": false,
          "category": "SET_AGGREGATE",
          "setVariableName": "pickSet",
          "aggregateType": "MAX",
          "fieldVariableNames": [
            "psmPP"
          ],
          "lastModifiedBy": "scheck@sm1.logik.dev",
          "defaultValue": null,
          "unitLabel": null,
          "precision": 32,
          "minValue": null,
          "maxValue": null,
          "stepValue": null
        }
      ],
      "sizeFieldVariableName": "set.pickSet.size",
      "sizeField": {
        "type": "Size",
        "created": "2023-07-24T20:05:50.031445Z",
        "modified": "2023-07-24T20:05:50.052828Z",
        "id": 58,
        "name": "pickSet Size",
        "variableName": "set.pickSet.size",
        "description": null,
        "required": false,
        "category": "SET_SIZE",
        "setVariableName": "pickSet",
        "lastModifiedBy": null,
        "defaultValue": null,
        "minValue": null,
        "maxValue": null
      },
      "lastModifiedBy": "scheck@sm1.logik.dev"
    }
  ],
  "pageable": {
    "sort": {
      "empty": false,
      "unsorted": false,
      "sorted": true
    },
    "offset": 0,
    "pageNumber": 0,
    "pageSize": 100,
    "paged": true,
    "unpaged": false
  },
  "totalPages": 1,
  "last": true,
  "totalElements": 2,
  "size": 100,
  "number": 0,
  "sort": {
    "empty": false,
    "unsorted": false,
    "sorted": true
  },
  "numberOfElements": 2,
  "first": true,
  "empty": false
}

Responses

Status Meaning Description Schema
200 OK none Inline

Response Schema

Status Code 200

Name Type Required Restrictions Description
» content [object] false none none
»» id number true none none
»» name string true none none
»» variableName string true none none
»» sizeType string true none none
»» created string true none none
»» modified string true none none
»» fields [object] true none none
»»» id number true none none
»»» variableName string true none none
»»» name string true none none
»»» description string true none none
»»» type string true none none
»»» distinct boolean true none none
»»» created string true none none
»»» modified string true none none
»»» lastModifiedBy string true none none
»» aggregateFields [object] true none none
»»» type string false none none
»»» created string false none none
»»» modified string false none none
»»» id number false none none
»»» name string false none none
»»» variableName string false none none
»»» description string false none none
»»» required boolean false none none
»»» category string false none none
»»» setVariableName string false none none
»»» aggregateType string false none none
»»» fieldVariableNames [string] false none none
»»» lastModifiedBy string false none none
»»» defaultValue string false none none
»»» unitLabel string false none none
»»» precision number false none none
»»» minValue string false none none
»»» maxValue string false none none
»»» stepValue string false none none
»» sizeFieldVariableName string true none none
»» sizeField object true none none
»»» type string false none none
»»» created string false none none
»»» modified string false none none
»»» id number false none none
»»» name string false none none
»»» variableName string false none none
»»» description string false none none
»»» required boolean false none none
»»» category string false none none
»»» setVariableName string false none none
»»» lastModifiedBy string false none none
»»» defaultValue string false none none
»»» minValue string false none none
»»» maxValue string false none none
»» lastModifiedBy string true none none
» pageable object false none none
»» sort object false none none
»»» empty boolean false none none
»»» unsorted boolean false none none
»»» sorted boolean false none none
»» offset number false none none
»» pageNumber number false none none
»» pageSize number false none none
»» paged boolean false none none
»» unpaged boolean false none none
» totalPages number false none none
» last boolean false none none
» totalElements number false none none
» size number false none none
» number number false none none
» sort object false none none
»» empty boolean false none none
»» unsorted boolean false none none
»» sorted boolean false none none
» numberOfElements number false none none
» first boolean false none none
» empty boolean false none none

Create a Set Field

Code samples

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.post('https://{tenant}.{sector}.logik.io/api/admin/v1/sets', headers = headers)

print(r.json())

const inputBody = '{
  "name": "string",
  "variableName": "string",
  "fields": [
    null
  ],
  "aggregateFields": [
    null
  ],
  "sizeType": "string"
}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'
};

fetch('https://{tenant}.{sector}.logik.io/api/admin/v1/sets',
{
  method: 'POST',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

const fetch = require('node-fetch');
const inputBody = {
  "name": "string",
  "variableName": "string",
  "fields": [
    null
  ],
  "aggregateFields": [
    null
  ],
  "sizeType": "string"
};
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'
};

fetch('https://{tenant}.{sector}.logik.io/api/admin/v1/sets',
{
  method: 'POST',
  body: JSON.stringify(inputBody),
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

# You can also use wget
curl -X POST https://{tenant}.{sector}.logik.io/api/admin/v1/sets \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

POST https://{tenant}.{sector}.logik.io/api/admin/v1/sets HTTP/1.1

Content-Type: application/json
Accept: application/json

URL obj = new URL("https://{tenant}.{sector}.logik.io/api/admin/v1/sets");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Accept' => 'application/json',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.post 'https://{tenant}.{sector}.logik.io/api/admin/v1/sets',
  params: {
  }, headers: headers

p JSON.parse(result)

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/json"},
        "Authorization": []string{"Bearer {access-token}"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "https://{tenant}.{sector}.logik.io/api/admin/v1/sets", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

POST /api/admin/v1/sets

Body parameter

{
  "name": "string",
  "variableName": "string",
  "fields": [
    null
  ],
  "aggregateFields": [
    null
  ],
  "sizeType": "string"
}

Parameters

Name In Type Required Description
body body object true none
» name body string false none
» variableName body string false none
» fields body [any] false none
» aggregateFields body [any] false none
» sizeType body string false none

Example responses

201 Response

{
  "id": 3,
  "name": "newSet",
  "variableName": "newSet",
  "sizeType": "setField",
  "created": "2023-09-20T15:25:17.300612085Z",
  "modified": "2023-09-20T15:25:17.300612085Z",
  "fields": [
    {
      "id": 4,
      "variableName": "set.newSet.index",
      "name": "Index for newSet",
      "description": null,
      "type": null,
      "distinct": false,
      "created": "2023-09-20T15:25:17.328977911Z",
      "modified": "2023-09-20T15:25:17.328977911Z",
      "lastModifiedBy": null
    }
  ],
  "aggregateFields": [],
  "sizeFieldVariableName": "set.newSet.size",
  "sizeField": {
    "type": "Size",
    "created": "2023-09-20T15:25:17.300741838Z",
    "modified": "2023-09-20T15:25:17.357986161Z",
    "id": 74,
    "name": "newSet Size",
    "variableName": "set.newSet.size",
    "description": null,
    "required": false,
    "category": "SET_SIZE",
    "setVariableName": "newSet",
    "lastModifiedBy": null,
    "defaultValue": null,
    "minValue": null,
    "maxValue": null
  },
  "lastModifiedBy": "scheck@sm1.logik.dev"
}

Responses

Status Meaning Description Schema
201 Created none Inline

Response Schema

Status Code 201

Name Type Required Restrictions Description
» id number false none none
» name string false none none
» variableName string false none none
» sizeType string false none none
» created string false none none
» modified string false none none
» fields [object] false none none
»» id number false none none
»» variableName string false none none
»» name string false none none
»» description string false none none
»» type string false none none
»» distinct boolean false none none
»» created string false none none
»» modified string false none none
»» lastModifiedBy string false none none
» aggregateFields [any] false none none
» sizeFieldVariableName string false none none
» sizeField object false none none
»» type string false none none
»» created string false none none
»» modified string false none none
»» id number false none none
»» name string false none none
»» variableName string false none none
»» description string false none none
»» required boolean false none none
»» category string false none none
»» setVariableName string false none none
»» lastModifiedBy string false none none
»» defaultValue string false none none
»» minValue string false none none
»» maxValue string false none none
» lastModifiedBy string false none none

Get a Set Field

Code samples

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.get('https://{tenant}.{sector}.logik.io/api/admin/v1/sets/{fieldName}', headers = headers)

print(r.json())


const headers = {
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'
};

fetch('https://{tenant}.{sector}.logik.io/api/admin/v1/sets/{fieldName}',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'
};

fetch('https://{tenant}.{sector}.logik.io/api/admin/v1/sets/{fieldName}',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

# You can also use wget
curl -X GET https://{tenant}.{sector}.logik.io/api/admin/v1/sets/{fieldName} \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

GET https://{tenant}.{sector}.logik.io/api/admin/v1/sets/{fieldName} HTTP/1.1

Accept: application/json

URL obj = new URL("https://{tenant}.{sector}.logik.io/api/admin/v1/sets/{fieldName}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/json',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.get 'https://{tenant}.{sector}.logik.io/api/admin/v1/sets/{fieldName}',
  params: {
  }, headers: headers

p JSON.parse(result)

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        "Authorization": []string{"Bearer {access-token}"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "https://{tenant}.{sector}.logik.io/api/admin/v1/sets/{fieldName}", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

GET /api/admin/v1/sets/{fieldName}

Parameters

Name In Type Required Description
fieldName path string true none

Example responses

200 Response

{
  "id": 3,
  "name": "newSet",
  "variableName": "newSet",
  "sizeType": "setField",
  "created": "2023-09-20T15:25:17.300612Z",
  "modified": "2023-09-20T15:25:17.300612Z",
  "fields": [
    {
      "id": 4,
      "variableName": "set.newSet.index",
      "name": "Index for newSet",
      "description": null,
      "type": "Number",
      "distinct": false,
      "created": "2023-09-20T15:25:17.328978Z",
      "modified": "2023-09-20T15:25:17.328978Z",
      "lastModifiedBy": null
    }
  ],
  "aggregateFields": [],
  "sizeFieldVariableName": "set.newSet.size",
  "sizeField": {
    "type": "Size",
    "created": "2023-09-20T15:25:17.300742Z",
    "modified": "2023-09-20T15:25:17.357986Z",
    "id": 74,
    "name": "newSet Size",
    "variableName": "set.newSet.size",
    "description": null,
    "required": false,
    "category": "SET_SIZE",
    "setVariableName": "newSet",
    "lastModifiedBy": null,
    "defaultValue": null,
    "minValue": null,
    "maxValue": null
  },
  "lastModifiedBy": "scheck@sm1.logik.dev"
}

Responses

Status Meaning Description Schema
200 OK none Inline

Response Schema

Status Code 200

Name Type Required Restrictions Description
» id number false none none
» name string false none none
» variableName string false none none
» sizeType string false none none
» created string false none none
» modified string false none none
» fields [object] false none none
»» id number false none none
»» variableName string false none none
»» name string false none none
»» description string false none none
»» type string false none none
»» distinct boolean false none none
»» created string false none none
»» modified string false none none
»» lastModifiedBy string false none none
» aggregateFields [any] false none none
» sizeFieldVariableName string false none none
» sizeField object false none none
»» type string false none none
»» created string false none none
»» modified string false none none
»» id number false none none
»» name string false none none
»» variableName string false none none
»» description string false none none
»» required boolean false none none
»» category string false none none
»» setVariableName string false none none
»» lastModifiedBy string false none none
»» defaultValue string false none none
»» minValue string false none none
»» maxValue string false none none
» lastModifiedBy string false none none

Update a Set field

Code samples

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.put('https://{tenant}.{sector}.logik.io/api/admin/v1/sets/{fieldName}', headers = headers)

print(r.json())

const inputBody = '{
  "name": "string",
  "variableName": "string",
  "fields": [
    {
      "id": 0,
      "variableName": "string",
      "name": "string",
      "description": "string",
      "type": "string",
      "distinct": true,
      "created": "string",
      "modified": "string",
      "lastModifiedBy": "string"
    }
  ],
  "sizeType": "string"
}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'
};

fetch('https://{tenant}.{sector}.logik.io/api/admin/v1/sets/{fieldName}',
{
  method: 'PUT',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

const fetch = require('node-fetch');
const inputBody = {
  "name": "string",
  "variableName": "string",
  "fields": [
    {
      "id": 0,
      "variableName": "string",
      "name": "string",
      "description": "string",
      "type": "string",
      "distinct": true,
      "created": "string",
      "modified": "string",
      "lastModifiedBy": "string"
    }
  ],
  "sizeType": "string"
};
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'
};

fetch('https://{tenant}.{sector}.logik.io/api/admin/v1/sets/{fieldName}',
{
  method: 'PUT',
  body: JSON.stringify(inputBody),
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

# You can also use wget
curl -X PUT https://{tenant}.{sector}.logik.io/api/admin/v1/sets/{fieldName} \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

PUT https://{tenant}.{sector}.logik.io/api/admin/v1/sets/{fieldName} HTTP/1.1

Content-Type: application/json
Accept: application/json

URL obj = new URL("https://{tenant}.{sector}.logik.io/api/admin/v1/sets/{fieldName}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("PUT");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Accept' => 'application/json',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.put 'https://{tenant}.{sector}.logik.io/api/admin/v1/sets/{fieldName}',
  params: {
  }, headers: headers

p JSON.parse(result)

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/json"},
        "Authorization": []string{"Bearer {access-token}"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("PUT", "https://{tenant}.{sector}.logik.io/api/admin/v1/sets/{fieldName}", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

PUT /api/admin/v1/sets/{fieldName}

Body parameter

{
  "name": "string",
  "variableName": "string",
  "fields": [
    {
      "id": 0,
      "variableName": "string",
      "name": "string",
      "description": "string",
      "type": "string",
      "distinct": true,
      "created": "string",
      "modified": "string",
      "lastModifiedBy": "string"
    }
  ],
  "sizeType": "string"
}

Parameters

Name In Type Required Description
fieldName path string true none
body body object true none
» name body string false none
» variableName body string false none
» fields body [object] false none
»» id body number true none
»» variableName body string true none
»» name body string true none
»» description body string true none
»» type body string true none
»» distinct body boolean true none
»» created body string true none
»» modified body string true none
»» lastModifiedBy body string true none
» sizeType body string false none

Example responses

200 Response

{
  "id": 3,
  "name": "newSet",
  "variableName": "newSet",
  "sizeType": "setField",
  "created": null,
  "modified": "2023-09-20T15:25:49.727629078Z",
  "fields": [
    {
      "id": 4,
      "variableName": "set.newSet.index",
      "name": "Index for newSet",
      "description": null,
      "type": "Number",
      "distinct": false,
      "created": "2023-09-20T15:25:17.328978Z",
      "modified": "2023-09-20T15:25:17.328978Z",
      "lastModifiedBy": null
    },
    {
      "id": 5,
      "variableName": "newNumber",
      "name": "newNumber",
      "description": null,
      "type": "Number",
      "distinct": false,
      "created": "2023-09-20T15:25:45.174439554Z",
      "modified": "2023-09-20T15:25:49.727602281Z",
      "lastModifiedBy": "scheck@sm1.logik.dev"
    },
    {
      "id": 6,
      "variableName": "newBoolean",
      "name": "newBoolean",
      "description": null,
      "type": "Boolean",
      "distinct": false,
      "created": "2023-09-20T15:25:49.725567275Z",
      "modified": "2023-09-20T15:25:49.725567275Z",
      "lastModifiedBy": "scheck@sm1.logik.dev"
    }
  ],
  "aggregateFields": [],
  "sizeFieldVariableName": "set.newSet.size",
  "sizeField": {
    "type": "Size",
    "created": "2023-09-20T15:25:17.300742Z",
    "modified": "2023-09-20T15:25:17.357986Z",
    "id": 74,
    "name": "newSet Size",
    "variableName": "set.newSet.size",
    "description": null,
    "required": false,
    "category": "SET_SIZE",
    "setVariableName": "newSet",
    "lastModifiedBy": null,
    "defaultValue": null,
    "minValue": null,
    "maxValue": null
  },
  "lastModifiedBy": "scheck@sm1.logik.dev"
}

Responses

Status Meaning Description Schema
200 OK none Inline

Response Schema

Status Code 200

Name Type Required Restrictions Description
» id number false none none
» name string false none none
» variableName string false none none
» sizeType string false none none
» created string false none none
» modified string false none none
» fields [object] false none none
»» id number true none none
»» variableName string true none none
»» name string true none none
»» description string true none none
»» type string true none none
»» distinct boolean true none none
»» created string true none none
»» modified string true none none
»» lastModifiedBy string true none none
» aggregateFields [any] false none none
» sizeFieldVariableName string false none none
» sizeField object false none none
»» type string false none none
»» created string false none none
»» modified string false none none
»» id number false none none
»» name string false none none
»» variableName string false none none
»» description string false none none
»» required boolean false none none
»» category string false none none
»» setVariableName string false none none
»» lastModifiedBy string false none none
»» defaultValue string false none none
»» minValue string false none none
»» maxValue string false none none
» lastModifiedBy string false none none

Delete a Set Field

Code samples

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.delete('https://{tenant}.{sector}.logik.io/api/admin/v1/sets/{fieldName}', headers = headers)

print(r.json())


const headers = {
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'
};

fetch('https://{tenant}.{sector}.logik.io/api/admin/v1/sets/{fieldName}',
{
  method: 'DELETE',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'
};

fetch('https://{tenant}.{sector}.logik.io/api/admin/v1/sets/{fieldName}',
{
  method: 'DELETE',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

# You can also use wget
curl -X DELETE https://{tenant}.{sector}.logik.io/api/admin/v1/sets/{fieldName} \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

DELETE https://{tenant}.{sector}.logik.io/api/admin/v1/sets/{fieldName} HTTP/1.1

Accept: application/json

URL obj = new URL("https://{tenant}.{sector}.logik.io/api/admin/v1/sets/{fieldName}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("DELETE");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/json',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.delete 'https://{tenant}.{sector}.logik.io/api/admin/v1/sets/{fieldName}',
  params: {
  }, headers: headers

p JSON.parse(result)

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        "Authorization": []string{"Bearer {access-token}"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("DELETE", "https://{tenant}.{sector}.logik.io/api/admin/v1/sets/{fieldName}", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

DELETE /api/admin/v1/sets/{fieldName}

Parameters

Name In Type Required Description
fieldName path string true none

Example responses

422 Response

{
  "errorCode": "LGK-4CF671086BF84DA9BFD9A14EA",
  "errorMessage": "Cannot delete array set. It is referenced in the following blueprints: newBP, pCBuilder, aggTest.",
  "timestamp": "2023-09-21T21:12:09.357521759Z"
}

Responses

Status Meaning Description Schema
204 No Content none None
422 Unprocessable Entity none Inline

Response Schema

Status Code 422

Name Type Required Restrictions Description
» errorCode string false none none
» errorMessage string false none none
» timestamp string false none none

Get Associated Fields

Code samples

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.get('https://{tenant}.{sector}.logik.io/api/admin/v1/sets/{fieldName}/fields', headers = headers)

print(r.json())


const headers = {
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'
};

fetch('https://{tenant}.{sector}.logik.io/api/admin/v1/sets/{fieldName}/fields',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'
};

fetch('https://{tenant}.{sector}.logik.io/api/admin/v1/sets/{fieldName}/fields',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

# You can also use wget
curl -X GET https://{tenant}.{sector}.logik.io/api/admin/v1/sets/{fieldName}/fields \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

GET https://{tenant}.{sector}.logik.io/api/admin/v1/sets/{fieldName}/fields HTTP/1.1

Accept: application/json

URL obj = new URL("https://{tenant}.{sector}.logik.io/api/admin/v1/sets/{fieldName}/fields");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/json',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.get 'https://{tenant}.{sector}.logik.io/api/admin/v1/sets/{fieldName}/fields',
  params: {
  }, headers: headers

p JSON.parse(result)

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        "Authorization": []string{"Bearer {access-token}"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "https://{tenant}.{sector}.logik.io/api/admin/v1/sets/{fieldName}/fields", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

GET /api/admin/v1/sets/{fieldName}/fields

Get Fields associated to a Set

Parameters

Name In Type Required Description
fieldName path string true none

Example responses

200 Response

[
  {
    "id": 70,
    "name": "newNumber",
    "variableName": "newNumber",
    "description": null,
    "type": "Number",
    "modified": "2023-09-20T14:23:09.335027Z",
    "category": "USER",
    "lastModifiedBy": "scheck@sm1.logik.dev"
  },
  {
    "id": 71,
    "name": "newBoolean",
    "variableName": "newBoolean",
    "description": null,
    "type": "Boolean",
    "modified": "2023-09-20T14:23:37.616638Z",
    "category": "USER",
    "lastModifiedBy": "scheck@sm1.logik.dev"
  },
  {
    "id": 73,
    "name": "Index for newSet",
    "variableName": "set.newSet.index",
    "description": null,
    "type": "Number",
    "modified": "2023-09-20T15:25:17.288228Z",
    "category": "SET_INDEX",
    "lastModifiedBy": null
  }
]

Responses

Status Meaning Description Schema
200 OK none Inline

Response Schema

Status Code 200

Name Type Required Restrictions Description
» id number true none none
» name string true none none
» variableName string true none none
» description string true none none
» type string true none none
» modified string true none none
» category string true none none
» lastModifiedBy string true none none

Set > Aggregates

Set Aggregates

Get Aggregate Fields for a Set

Code samples

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.get('https://{tenant}.{sector}.logik.io/api/admin/v1/sets/{fieldName}/aggregateFields', headers = headers)

print(r.json())


const headers = {
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'
};

fetch('https://{tenant}.{sector}.logik.io/api/admin/v1/sets/{fieldName}/aggregateFields',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'
};

fetch('https://{tenant}.{sector}.logik.io/api/admin/v1/sets/{fieldName}/aggregateFields',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

# You can also use wget
curl -X GET https://{tenant}.{sector}.logik.io/api/admin/v1/sets/{fieldName}/aggregateFields \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

GET https://{tenant}.{sector}.logik.io/api/admin/v1/sets/{fieldName}/aggregateFields HTTP/1.1

Accept: application/json

URL obj = new URL("https://{tenant}.{sector}.logik.io/api/admin/v1/sets/{fieldName}/aggregateFields");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/json',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.get 'https://{tenant}.{sector}.logik.io/api/admin/v1/sets/{fieldName}/aggregateFields',
  params: {
  }, headers: headers

p JSON.parse(result)

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        "Authorization": []string{"Bearer {access-token}"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "https://{tenant}.{sector}.logik.io/api/admin/v1/sets/{fieldName}/aggregateFields", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

GET /api/admin/v1/sets/{fieldName}/aggregateFields

Parameters

Name In Type Required Description
fieldName path string true none

Example responses

200 Response

[
  {
    "type": "Number",
    "created": "2023-09-20T15:26:28.359334Z",
    "modified": "2023-09-20T15:26:28.359334Z",
    "id": 75,
    "name": "averageAmount",
    "variableName": "set.newSet.averageAmount",
    "description": null,
    "required": false,
    "category": "SET_AGGREGATE",
    "setVariableName": "newSet",
    "aggregateType": "AVERAGE",
    "fieldVariableNames": [
      "newNumber"
    ],
    "lastModifiedBy": "scheck@sm1.logik.dev",
    "defaultValue": null,
    "unitLabel": null,
    "precision": 32,
    "minValue": null,
    "maxValue": null,
    "stepValue": null
  },
  {
    "type": "Number",
    "created": "2023-09-20T15:26:44.827942Z",
    "modified": "2023-09-20T15:26:44.827942Z",
    "id": 76,
    "name": "countBoolean",
    "variableName": "set.newSet.countBoolean",
    "description": null,
    "required": false,
    "category": "SET_AGGREGATE",
    "setVariableName": "newSet",
    "aggregateType": "COUNT",
    "fieldVariableNames": [
      "newBoolean"
    ],
    "lastModifiedBy": "scheck@sm1.logik.dev",
    "defaultValue": null,
    "unitLabel": null,
    "precision": 32,
    "minValue": null,
    "maxValue": null,
    "stepValue": null
  },
  {
    "type": "Number",
    "created": "2023-09-20T15:26:58.054905Z",
    "modified": "2023-09-20T15:26:58.054905Z",
    "id": 77,
    "name": "totalSum",
    "variableName": "set.newSet.totalSum",
    "description": null,
    "required": false,
    "category": "SET_AGGREGATE",
    "setVariableName": "newSet",
    "aggregateType": "SUM",
    "fieldVariableNames": [
      "newNumber"
    ],
    "lastModifiedBy": "scheck@sm1.logik.dev",
    "defaultValue": null,
    "unitLabel": null,
    "precision": 32,
    "minValue": null,
    "maxValue": null,
    "stepValue": null
  }
]

Responses

Status Meaning Description Schema
200 OK none Inline

Response Schema

Status Code 200

Name Type Required Restrictions Description
» type string true none none
» created string true none none
» modified string true none none
» id number true none none
» name string true none none
» variableName string true none none
» description string true none none
» required boolean true none none
» category string true none none
» setVariableName string true none none
» aggregateType string true none none
» fieldVariableNames [string] true none none
» lastModifiedBy string true none none
» defaultValue string true none none
» unitLabel string true none none
» precision number true none none
» minValue string true none none
» maxValue string true none none
» stepValue string true none none

Create an Aggregate Field on a Set

Code samples

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.post('https://{tenant}.{sector}.logik.io/api/admin/v1/sets/{fieldName}/aggregateFields', headers = headers)

print(r.json())

const inputBody = '{
  "name": "string",
  "variableName": "string",
  "aggregateType": "string",
  "type": "string",
  "fieldVariableNames": [
    "string"
  ]
}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'
};

fetch('https://{tenant}.{sector}.logik.io/api/admin/v1/sets/{fieldName}/aggregateFields',
{
  method: 'POST',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

const fetch = require('node-fetch');
const inputBody = {
  "name": "string",
  "variableName": "string",
  "aggregateType": "string",
  "type": "string",
  "fieldVariableNames": [
    "string"
  ]
};
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'
};

fetch('https://{tenant}.{sector}.logik.io/api/admin/v1/sets/{fieldName}/aggregateFields',
{
  method: 'POST',
  body: JSON.stringify(inputBody),
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

# You can also use wget
curl -X POST https://{tenant}.{sector}.logik.io/api/admin/v1/sets/{fieldName}/aggregateFields \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

POST https://{tenant}.{sector}.logik.io/api/admin/v1/sets/{fieldName}/aggregateFields HTTP/1.1

Content-Type: application/json
Accept: application/json

URL obj = new URL("https://{tenant}.{sector}.logik.io/api/admin/v1/sets/{fieldName}/aggregateFields");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Accept' => 'application/json',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.post 'https://{tenant}.{sector}.logik.io/api/admin/v1/sets/{fieldName}/aggregateFields',
  params: {
  }, headers: headers

p JSON.parse(result)

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/json"},
        "Authorization": []string{"Bearer {access-token}"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "https://{tenant}.{sector}.logik.io/api/admin/v1/sets/{fieldName}/aggregateFields", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

POST /api/admin/v1/sets/{fieldName}/aggregateFields

Body parameter

{
  "name": "string",
  "variableName": "string",
  "aggregateType": "string",
  "type": "string",
  "fieldVariableNames": [
    "string"
  ]
}

Parameters

Name In Type Required Description
fieldName path string true none
body body object true none
» name body string false none
» variableName body string false none
» aggregateType body string false none
» type body string false none
» fieldVariableNames body [string] false none

Example responses

201 Response

{
  "type": "Number",
  "created": "2023-09-20T15:26:58.054905Z",
  "modified": "2023-09-20T15:26:58.054905Z",
  "id": 77,
  "name": "totalSum",
  "variableName": "set.newSet.totalSum",
  "description": null,
  "required": false,
  "category": "SET_AGGREGATE",
  "setVariableName": "newSet",
  "aggregateType": "SUM",
  "fieldVariableNames": [
    "newNumber"
  ],
  "lastModifiedBy": "scheck@sm1.logik.dev",
  "defaultValue": null,
  "unitLabel": null,
  "precision": 32,
  "minValue": null,
  "maxValue": null,
  "stepValue": null
}

Responses

Status Meaning Description Schema
201 Created none Inline

Response Schema

Status Code 201

Name Type Required Restrictions Description
» type string false none none
» created string false none none
» modified string false none none
» id number false none none
» name string false none none
» variableName string false none none
» description string false none none
» required boolean false none none
» category string false none none
» setVariableName string false none none
» aggregateType string false none none
» fieldVariableNames [string] false none none
» lastModifiedBy string false none none
» defaultValue string false none none
» unitLabel string false none none
» precision number false none none
» minValue string false none none
» maxValue string false none none
» stepValue string false none none

Product Pickers

Product Picker Fields

Get List of Product Pickers

Code samples

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.get('https://{tenant}.{sector}.logik.io/api/admin/v1/productPickers', params={
  'page': '0',  'sort': 'modified%2CDESC',  'size': '100'
}, headers = headers)

print(r.json())


const headers = {
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'
};

fetch('https://{tenant}.{sector}.logik.io/api/admin/v1/productPickers?page=0&sort=modified%2CDESC&size=100',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'
};

fetch('https://{tenant}.{sector}.logik.io/api/admin/v1/productPickers?page=0&sort=modified%2CDESC&size=100',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

# You can also use wget
curl -X GET https://{tenant}.{sector}.logik.io/api/admin/v1/productPickers?page=0&sort=modified%2CDESC&size=100 \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

GET https://{tenant}.{sector}.logik.io/api/admin/v1/productPickers?page=0&sort=modified%2CDESC&size=100 HTTP/1.1

Accept: application/json

URL obj = new URL("https://{tenant}.{sector}.logik.io/api/admin/v1/productPickers?page=0&sort=modified%2CDESC&size=100");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/json',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.get 'https://{tenant}.{sector}.logik.io/api/admin/v1/productPickers',
  params: {
  'page' => 'number',
'sort' => 'string',
'size' => 'number'
}, headers: headers

p JSON.parse(result)

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        "Authorization": []string{"Bearer {access-token}"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "https://{tenant}.{sector}.logik.io/api/admin/v1/productPickers", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

GET /api/admin/v1/productPickers

Parameters

Name In Type Required Description
page query number true none
sort query string true none
size query number true none

Example responses

200 Response

{
  "content": [
    {
      "created": "string",
      "modified": "string",
      "id": 0,
      "name": "string",
      "variableName": "string",
      "description": "string",
      "required": true,
      "category": "string",
      "lastModifiedBy": "string",
      "selectType": "string",
      "enrichEnabled": true,
      "quantitySelectionLinked": true,
      "defaultType": "string",
      "defaultBomType": "string",
      "defaultParentProduct": "string",
      "defaultUom": "string",
      "defaultPricingProductSellingModelId": "string",
      "defaultPricingStartDate": "string",
      "defaultPricingEndDate": "string",
      "layoutProductDetails": [
        "string"
      ],
      "fields": [
        {
          "created": "string",
          "modified": "string",
          "id": 0,
          "variableName": "string",
          "label": "string",
          "fieldType": "string",
          "target": "string",
          "lastModifiedBy": "string"
        }
      ],
      "rules": [
        {
          "created": "string",
          "modified": "string",
          "id": 0,
          "variableName": "string",
          "type": "string",
          "status": "string",
          "columns": [
            {
              "id": 0,
              "header": "string",
              "mappedFieldVarName": "string",
              "columnUse": "string",
              "orderNumber": 0,
              "operator": "string"
            }
          ]
        }
      ],
      "aggregateFields": [
        null
      ]
    }
  ],
  "pageable": {
    "sort": {
      "empty": true,
      "unsorted": true,
      "sorted": true
    },
    "offset": 0,
    "pageNumber": 0,
    "pageSize": 0,
    "paged": true,
    "unpaged": true
  },
  "totalPages": 0,
  "last": true,
  "totalElements": 0,
  "size": 0,
  "number": 0,
  "sort": {
    "empty": true,
    "sorted": true,
    "unsorted": true
  },
  "numberOfElements": 0,
  "first": true,
  "empty": true
}

Responses

Status Meaning Description Schema
200 OK none ProductPickerListResponse

Create a Product Picker Field

Code samples

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.post('https://{tenant}.{sector}.logik.io/api/admin/v1/productPickers', headers = headers)

print(r.json())

const inputBody = '{
  "type": "ProductPicker",
  "name": "newPicker",
  "variableName": "newPicker",
  "quantitySelectionLinked": false,
  "selectType": "multi",
  "fields": []
}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'
};

fetch('https://{tenant}.{sector}.logik.io/api/admin/v1/productPickers',
{
  method: 'POST',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

const fetch = require('node-fetch');
const inputBody = {
  "type": "ProductPicker",
  "name": "newPicker",
  "variableName": "newPicker",
  "quantitySelectionLinked": false,
  "selectType": "multi",
  "fields": []
};
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'
};

fetch('https://{tenant}.{sector}.logik.io/api/admin/v1/productPickers',
{
  method: 'POST',
  body: JSON.stringify(inputBody),
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

# You can also use wget
curl -X POST https://{tenant}.{sector}.logik.io/api/admin/v1/productPickers \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

POST https://{tenant}.{sector}.logik.io/api/admin/v1/productPickers HTTP/1.1

Content-Type: application/json
Accept: application/json

URL obj = new URL("https://{tenant}.{sector}.logik.io/api/admin/v1/productPickers");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Accept' => 'application/json',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.post 'https://{tenant}.{sector}.logik.io/api/admin/v1/productPickers',
  params: {
  }, headers: headers

p JSON.parse(result)

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/json"},
        "Authorization": []string{"Bearer {access-token}"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "https://{tenant}.{sector}.logik.io/api/admin/v1/productPickers", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

POST /api/admin/v1/productPickers

Body parameter

{
  "type": "ProductPicker",
  "name": "newPicker",
  "variableName": "newPicker",
  "quantitySelectionLinked": false,
  "selectType": "multi",
  "fields": []
}

Parameters

Name In Type Required Description
body body CreateProductPickerRequest true none

Example responses

201 Response

{
  "type": "ProductPicker",
  "created": "2023-09-20T15:55:02.622582782Z",
  "modified": "2023-09-20T15:55:02.622582782Z",
  "id": 78,
  "name": "newPicker",
  "variableName": "newPicker",
  "description": null,
  "required": false,
  "category": "PRODUCT_PICKER",
  "lastModifiedBy": "scheck@sm1.logik.dev",
  "selectType": "multi",
  "enrichEnabled": false,
  "quantitySelectionLinked": false,
  "defaultType": null,
  "defaultBomType": null,
  "defaultParentProduct": null,
  "defaultUom": null,
  "defaultPricingProductSellingModelId": null,
  "defaultPricingStartDate": null,
  "defaultPricingEndDate": null,
  "layoutProductDetails": null,
  "fields": [
    {
      "created": "2023-09-20T15:55:02.625127085Z",
      "modified": "2023-09-20T15:55:02.625127085Z",
      "id": 31,
      "variableName": "newPicker.value",
      "label": "Value",
      "fieldType": "Text",
      "target": "ProductId",
      "lastModifiedBy": "scheck@sm1.logik.dev"
    },
    {
      "created": "2023-09-20T15:55:02.679673035Z",
      "modified": "2023-09-20T15:55:02.679673035Z",
      "id": 32,
      "variableName": "newPicker.select",
      "label": "Select",
      "fieldType": "Boolean",
      "lastModifiedBy": "scheck@sm1.logik.dev"
    },
    {
      "created": "2023-09-20T15:55:02.682612353Z",
      "modified": "2023-09-20T15:55:02.682612353Z",
      "id": 33,
      "variableName": "newPicker.quantity",
      "label": "Quantity",
      "fieldType": "Number",
      "target": "ProductQuantity",
      "lastModifiedBy": "scheck@sm1.logik.dev"
    }
  ],
  "rules": [],
  "aggregateFields": null
}

Responses

Status Meaning Description Schema
201 Created none CreateProductPickerResponse

Get a Product Picker

Code samples

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.get('https://{tenant}.{sector}.logik.io/api/admin/v1/productPickers/{productPickerName}', headers = headers)

print(r.json())


const headers = {
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'
};

fetch('https://{tenant}.{sector}.logik.io/api/admin/v1/productPickers/{productPickerName}',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'
};

fetch('https://{tenant}.{sector}.logik.io/api/admin/v1/productPickers/{productPickerName}',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

# You can also use wget
curl -X GET https://{tenant}.{sector}.logik.io/api/admin/v1/productPickers/{productPickerName} \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

GET https://{tenant}.{sector}.logik.io/api/admin/v1/productPickers/{productPickerName} HTTP/1.1

Accept: application/json

URL obj = new URL("https://{tenant}.{sector}.logik.io/api/admin/v1/productPickers/{productPickerName}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/json',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.get 'https://{tenant}.{sector}.logik.io/api/admin/v1/productPickers/{productPickerName}',
  params: {
  }, headers: headers

p JSON.parse(result)

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        "Authorization": []string{"Bearer {access-token}"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "https://{tenant}.{sector}.logik.io/api/admin/v1/productPickers/{productPickerName}", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

GET /api/admin/v1/productPickers/{productPickerName}

Parameters

Name In Type Required Description
productPickerName path string true none

Example responses

200 Response

{
  "type": "ProductPicker",
  "created": "2023-09-20T15:55:02.622583Z",
  "modified": "2023-09-20T15:56:27.430012Z",
  "id": 78,
  "name": "newPicker",
  "variableName": "newPicker",
  "description": null,
  "required": true,
  "category": "PRODUCT_PICKER",
  "lastModifiedBy": "scheck@sm1.logik.dev",
  "selectType": "multi",
  "enrichEnabled": false,
  "quantitySelectionLinked": true,
  "defaultType": null,
  "defaultBomType": null,
  "defaultParentProduct": null,
  "defaultUom": null,
  "defaultPricingProductSellingModelId": "OneTime_OneTime_2023_07_05",
  "defaultPricingStartDate": null,
  "defaultPricingEndDate": null,
  "layoutProductDetails": [
    "price",
    "name"
  ],
  "fields": [
    {
      "created": "2023-09-20T15:55:02.625127Z",
      "modified": "2023-09-20T15:55:02.625127Z",
      "id": 31,
      "variableName": "newPicker.value",
      "label": "Value",
      "fieldType": "Text",
      "target": "ProductId",
      "lastModifiedBy": "scheck@sm1.logik.dev"
    },
    {
      "created": "2023-09-20T15:55:02.679673Z",
      "modified": "2023-09-20T15:55:02.679673Z",
      "id": 32,
      "variableName": "newPicker.select",
      "label": "Select",
      "fieldType": "Boolean",
      "lastModifiedBy": "scheck@sm1.logik.dev"
    },
    {
      "created": "2023-09-20T15:55:02.682612Z",
      "modified": "2023-09-20T15:55:02.682612Z",
      "id": 33,
      "variableName": "newPicker.quantity",
      "label": "Quantity",
      "fieldType": "Number",
      "target": "ProductQuantity",
      "lastModifiedBy": "scheck@sm1.logik.dev"
    }
  ],
  "rules": [
    {
      "created": "2023-09-20T15:56:44.109145Z",
      "modified": "2023-09-20T15:58:08.254303Z",
      "id": 7,
      "variableName": "newOptionInclusion",
      "type": "Inclusion",
      "status": "active",
      "columns": [
        {
          "id": 20,
          "header": "value",
          "mappedFieldVarName": "newPicker.value",
          "columnUse": "ProductId",
          "orderNumber": 0
        },
        {
          "id": 21,
          "header": "hasPromoCode",
          "mappedFieldVarName": "hasPromoCode",
          "operator": "equals",
          "columnUse": "Filter",
          "orderNumber": 1
        }
      ]
    },
    {
      "created": "2023-09-20T15:58:38.609609Z",
      "modified": "2023-09-20T15:58:38.609609Z",
      "id": 8,
      "variableName": "setFieldValues",
      "type": "Determination",
      "status": "active",
      "columns": [
        {
          "id": 22,
          "header": "value",
          "mappedFieldVarName": "newPicker.value",
          "columnUse": "ProductId",
          "orderNumber": 0
        },
        {
          "id": 23,
          "header": "newPicker.quantity",
          "mappedFieldVarName": "newPicker.quantity",
          "columnUse": "ProductQuantity",
          "orderNumber": 1
        },
        {
          "id": 24,
          "header": "newPicker.subFieldNumber",
          "mappedFieldVarName": "newPicker.subFieldNumber",
          "columnUse": "ProductExtended",
          "orderNumber": 2
        }
      ]
    },
    {
      "created": "2023-09-20T15:59:10.489882Z",
      "modified": "2023-09-20T15:59:10.489882Z",
      "id": 9,
      "variableName": "setQty",
      "type": "Quantity",
      "status": "active",
      "columns": [
        {
          "id": 25,
          "header": "value",
          "mappedFieldVarName": "newPicker.value",
          "columnUse": "ProductId",
          "orderNumber": 0
        },
        {
          "id": 26,
          "header": "quantity.min",
          "mappedFieldVarName": "quantity.min",
          "columnUse": "Field",
          "orderNumber": 1
        },
        {
          "id": 27,
          "header": "quantity.max",
          "mappedFieldVarName": "quantity.max",
          "columnUse": "Field",
          "orderNumber": 2
        },
        {
          "id": 28,
          "header": "quantity.step",
          "mappedFieldVarName": "quantity.step",
          "columnUse": "Field",
          "orderNumber": 3
        }
      ]
    }
  ],
  "aggregateFields": [
    {
      "type": "Number",
      "created": "2023-09-20T15:56:22.141851Z",
      "modified": "2023-09-20T15:56:22.141851Z",
      "id": 83,
      "name": "subFieldNumber Sum",
      "variableName": "newPicker.aggregates.subFieldNumber_sum",
      "description": null,
      "required": false,
      "category": "SET_AGGREGATE",
      "aggregateType": "SUM",
      "fieldVariableNames": [
        "newPicker.subFieldNumber"
      ],
      "lastModifiedBy": "scheck@sm1.logik.dev",
      "defaultValue": null,
      "unitLabel": null,
      "precision": 32,
      "minValue": null,
      "maxValue": null,
      "stepValue": null
    }
  ]
}

Responses

Status Meaning Description Schema
200 OK none ProductPickerResponse

Update a Product Picker

Code samples

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.put('https://{tenant}.{sector}.logik.io/api/admin/v1/productPickers/{productPickerName}', headers = headers)

print(r.json())

const inputBody = '{
  "id": 78,
  "name": "newPicker",
  "description": null,
  "fields": [
    {
      "created": "2023-09-20T15:55:02.625127Z",
      "modified": "2023-09-20T15:55:02.625127Z",
      "id": 31,
      "variableName": "newPicker.value",
      "label": "Value",
      "fieldType": "Text",
      "target": "ProductId",
      "lastModifiedBy": "scheck@sm1.logik.dev"
    },
    {
      "created": "2023-09-20T15:55:02.679673Z",
      "modified": "2023-09-20T15:55:02.679673Z",
      "id": 32,
      "variableName": "newPicker.select",
      "label": "Select",
      "fieldType": "Boolean",
      "lastModifiedBy": "scheck@sm1.logik.dev"
    },
    {
      "created": "2023-09-20T15:55:02.682612Z",
      "modified": "2023-09-20T15:55:02.682612Z",
      "id": 33,
      "variableName": "newPicker.quantity",
      "label": "Quantity",
      "fieldType": "Number",
      "target": "ProductQuantity",
      "lastModifiedBy": "scheck@sm1.logik.dev"
    },
    {
      "created": "2023-09-20T15:56:13.437274Z",
      "modified": "2023-09-20T15:56:13.437274Z",
      "id": 34,
      "variableName": "newPicker.subFieldNumber",
      "label": "subFieldNumber",
      "fieldType": "Number",
      "target": "ProductExtended",
      "lastModifiedBy": "scheck@sm1.logik.dev"
    }
  ],
  "layoutProductDetails": [
    "name",
    "price"
  ],
  "quantitySelectionLinked": true,
  "selectType": "multi",
  "type": "ProductPicker",
  "variableName": "newPicker",
  "unsavedOptions": false,
  "unsavedAction": false,
  "savedVersion": 1,
  "rules": [],
  "currentAction": {},
  "created": "2023-09-20T15:55:02.622583Z",
  "modified": "2023-09-20T15:55:55.565127Z",
  "required": true,
  "category": "PRODUCT_PICKER",
  "lastModifiedBy": "scheck@sm1.logik.dev",
  "enrichEnabled": false,
  "defaultType": null,
  "defaultBomType": null,
  "defaultParentProduct": null,
  "defaultUom": null,
  "defaultPricingProductSellingModelId": "OneTime_OneTime_2023_07_05",
  "defaultPricingStartDate": null,
  "defaultPricingEndDate": null,
  "aggregateFields": [
    {
      "type": "Number",
      "created": "2023-09-20T15:56:22.141851Z",
      "modified": "2023-09-20T15:56:22.141851Z",
      "id": 83,
      "name": "subFieldNumber Sum",
      "variableName": "newPicker.aggregates.subFieldNumber_sum",
      "description": null,
      "required": false,
      "category": "SET_AGGREGATE",
      "aggregateType": "SUM",
      "fieldVariableNames": [
        "newPicker.subFieldNumber"
      ],
      "lastModifiedBy": "scheck@sm1.logik.dev",
      "defaultValue": null,
      "unitLabel": null,
      "precision": 32,
      "minValue": null,
      "maxValue": null,
      "stepValue": null
    }
  ],
  "options": [
    {
      "id": 38,
      "name": "option1",
      "value": "option1",
      "imageUrl": null,
      "description": null,
      "optionGroup": null,
      "modified": "2023-09-20T15:55:28.907745Z",
      "defaultValue": false,
      "order": 10
    },
    {
      "id": 39,
      "name": "option2",
      "value": "option2",
      "imageUrl": null,
      "description": null,
      "optionGroup": null,
      "modified": "2023-09-20T15:55:28.917641Z",
      "defaultValue": true,
      "order": 20
    },
    {
      "id": 40,
      "name": "option3",
      "value": "option3",
      "imageUrl": null,
      "description": null,
      "optionGroup": null,
      "modified": "2023-09-20T15:55:28.922805Z",
      "defaultValue": false,
      "order": 30
    }
  ],
  "aggregatesToDelete": [],
  "aggregates": [
    {
      "type": "Number",
      "created": "2023-09-20T15:56:22.141851Z",
      "modified": "2023-09-20T15:56:22.141851Z",
      "id": 83,
      "name": "subFieldNumber Sum",
      "variableName": "newPicker.aggregates.subFieldNumber_sum",
      "description": null,
      "required": false,
      "category": "SET_AGGREGATE",
      "aggregateType": "SUM",
      "fieldVariableNames": [
        "newPicker.subFieldNumber"
      ],
      "lastModifiedBy": "scheck@sm1.logik.dev",
      "defaultValue": null,
      "unitLabel": null,
      "precision": 32,
      "minValue": null,
      "maxValue": null,
      "stepValue": null
    }
  ],
  "unsavedAggregates": false
}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'
};

fetch('https://{tenant}.{sector}.logik.io/api/admin/v1/productPickers/{productPickerName}',
{
  method: 'PUT',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

const fetch = require('node-fetch');
const inputBody = {
  "id": 78,
  "name": "newPicker",
  "description": null,
  "fields": [
    {
      "created": "2023-09-20T15:55:02.625127Z",
      "modified": "2023-09-20T15:55:02.625127Z",
      "id": 31,
      "variableName": "newPicker.value",
      "label": "Value",
      "fieldType": "Text",
      "target": "ProductId",
      "lastModifiedBy": "scheck@sm1.logik.dev"
    },
    {
      "created": "2023-09-20T15:55:02.679673Z",
      "modified": "2023-09-20T15:55:02.679673Z",
      "id": 32,
      "variableName": "newPicker.select",
      "label": "Select",
      "fieldType": "Boolean",
      "lastModifiedBy": "scheck@sm1.logik.dev"
    },
    {
      "created": "2023-09-20T15:55:02.682612Z",
      "modified": "2023-09-20T15:55:02.682612Z",
      "id": 33,
      "variableName": "newPicker.quantity",
      "label": "Quantity",
      "fieldType": "Number",
      "target": "ProductQuantity",
      "lastModifiedBy": "scheck@sm1.logik.dev"
    },
    {
      "created": "2023-09-20T15:56:13.437274Z",
      "modified": "2023-09-20T15:56:13.437274Z",
      "id": 34,
      "variableName": "newPicker.subFieldNumber",
      "label": "subFieldNumber",
      "fieldType": "Number",
      "target": "ProductExtended",
      "lastModifiedBy": "scheck@sm1.logik.dev"
    }
  ],
  "layoutProductDetails": [
    "name",
    "price"
  ],
  "quantitySelectionLinked": true,
  "selectType": "multi",
  "type": "ProductPicker",
  "variableName": "newPicker",
  "unsavedOptions": false,
  "unsavedAction": false,
  "savedVersion": 1,
  "rules": [],
  "currentAction": {},
  "created": "2023-09-20T15:55:02.622583Z",
  "modified": "2023-09-20T15:55:55.565127Z",
  "required": true,
  "category": "PRODUCT_PICKER",
  "lastModifiedBy": "scheck@sm1.logik.dev",
  "enrichEnabled": false,
  "defaultType": null,
  "defaultBomType": null,
  "defaultParentProduct": null,
  "defaultUom": null,
  "defaultPricingProductSellingModelId": "OneTime_OneTime_2023_07_05",
  "defaultPricingStartDate": null,
  "defaultPricingEndDate": null,
  "aggregateFields": [
    {
      "type": "Number",
      "created": "2023-09-20T15:56:22.141851Z",
      "modified": "2023-09-20T15:56:22.141851Z",
      "id": 83,
      "name": "subFieldNumber Sum",
      "variableName": "newPicker.aggregates.subFieldNumber_sum",
      "description": null,
      "required": false,
      "category": "SET_AGGREGATE",
      "aggregateType": "SUM",
      "fieldVariableNames": [
        "newPicker.subFieldNumber"
      ],
      "lastModifiedBy": "scheck@sm1.logik.dev",
      "defaultValue": null,
      "unitLabel": null,
      "precision": 32,
      "minValue": null,
      "maxValue": null,
      "stepValue": null
    }
  ],
  "options": [
    {
      "id": 38,
      "name": "option1",
      "value": "option1",
      "imageUrl": null,
      "description": null,
      "optionGroup": null,
      "modified": "2023-09-20T15:55:28.907745Z",
      "defaultValue": false,
      "order": 10
    },
    {
      "id": 39,
      "name": "option2",
      "value": "option2",
      "imageUrl": null,
      "description": null,
      "optionGroup": null,
      "modified": "2023-09-20T15:55:28.917641Z",
      "defaultValue": true,
      "order": 20
    },
    {
      "id": 40,
      "name": "option3",
      "value": "option3",
      "imageUrl": null,
      "description": null,
      "optionGroup": null,
      "modified": "2023-09-20T15:55:28.922805Z",
      "defaultValue": false,
      "order": 30
    }
  ],
  "aggregatesToDelete": [],
  "aggregates": [
    {
      "type": "Number",
      "created": "2023-09-20T15:56:22.141851Z",
      "modified": "2023-09-20T15:56:22.141851Z",
      "id": 83,
      "name": "subFieldNumber Sum",
      "variableName": "newPicker.aggregates.subFieldNumber_sum",
      "description": null,
      "required": false,
      "category": "SET_AGGREGATE",
      "aggregateType": "SUM",
      "fieldVariableNames": [
        "newPicker.subFieldNumber"
      ],
      "lastModifiedBy": "scheck@sm1.logik.dev",
      "defaultValue": null,
      "unitLabel": null,
      "precision": 32,
      "minValue": null,
      "maxValue": null,
      "stepValue": null
    }
  ],
  "unsavedAggregates": false
};
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'
};

fetch('https://{tenant}.{sector}.logik.io/api/admin/v1/productPickers/{productPickerName}',
{
  method: 'PUT',
  body: JSON.stringify(inputBody),
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

# You can also use wget
curl -X PUT https://{tenant}.{sector}.logik.io/api/admin/v1/productPickers/{productPickerName} \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

PUT https://{tenant}.{sector}.logik.io/api/admin/v1/productPickers/{productPickerName} HTTP/1.1

Content-Type: application/json
Accept: application/json

URL obj = new URL("https://{tenant}.{sector}.logik.io/api/admin/v1/productPickers/{productPickerName}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("PUT");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Accept' => 'application/json',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.put 'https://{tenant}.{sector}.logik.io/api/admin/v1/productPickers/{productPickerName}',
  params: {
  }, headers: headers

p JSON.parse(result)

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/json"},
        "Authorization": []string{"Bearer {access-token}"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("PUT", "https://{tenant}.{sector}.logik.io/api/admin/v1/productPickers/{productPickerName}", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

PUT /api/admin/v1/productPickers/{productPickerName}

Body parameter

{
  "id": 78,
  "name": "newPicker",
  "description": null,
  "fields": [
    {
      "created": "2023-09-20T15:55:02.625127Z",
      "modified": "2023-09-20T15:55:02.625127Z",
      "id": 31,
      "variableName": "newPicker.value",
      "label": "Value",
      "fieldType": "Text",
      "target": "ProductId",
      "lastModifiedBy": "scheck@sm1.logik.dev"
    },
    {
      "created": "2023-09-20T15:55:02.679673Z",
      "modified": "2023-09-20T15:55:02.679673Z",
      "id": 32,
      "variableName": "newPicker.select",
      "label": "Select",
      "fieldType": "Boolean",
      "lastModifiedBy": "scheck@sm1.logik.dev"
    },
    {
      "created": "2023-09-20T15:55:02.682612Z",
      "modified": "2023-09-20T15:55:02.682612Z",
      "id": 33,
      "variableName": "newPicker.quantity",
      "label": "Quantity",
      "fieldType": "Number",
      "target": "ProductQuantity",
      "lastModifiedBy": "scheck@sm1.logik.dev"
    },
    {
      "created": "2023-09-20T15:56:13.437274Z",
      "modified": "2023-09-20T15:56:13.437274Z",
      "id": 34,
      "variableName": "newPicker.subFieldNumber",
      "label": "subFieldNumber",
      "fieldType": "Number",
      "target": "ProductExtended",
      "lastModifiedBy": "scheck@sm1.logik.dev"
    }
  ],
  "layoutProductDetails": [
    "name",
    "price"
  ],
  "quantitySelectionLinked": true,
  "selectType": "multi",
  "type": "ProductPicker",
  "variableName": "newPicker",
  "unsavedOptions": false,
  "unsavedAction": false,
  "savedVersion": 1,
  "rules": [],
  "currentAction": {},
  "created": "2023-09-20T15:55:02.622583Z",
  "modified": "2023-09-20T15:55:55.565127Z",
  "required": true,
  "category": "PRODUCT_PICKER",
  "lastModifiedBy": "scheck@sm1.logik.dev",
  "enrichEnabled": false,
  "defaultType": null,
  "defaultBomType": null,
  "defaultParentProduct": null,
  "defaultUom": null,
  "defaultPricingProductSellingModelId": "OneTime_OneTime_2023_07_05",
  "defaultPricingStartDate": null,
  "defaultPricingEndDate": null,
  "aggregateFields": [
    {
      "type": "Number",
      "created": "2023-09-20T15:56:22.141851Z",
      "modified": "2023-09-20T15:56:22.141851Z",
      "id": 83,
      "name": "subFieldNumber Sum",
      "variableName": "newPicker.aggregates.subFieldNumber_sum",
      "description": null,
      "required": false,
      "category": "SET_AGGREGATE",
      "aggregateType": "SUM",
      "fieldVariableNames": [
        "newPicker.subFieldNumber"
      ],
      "lastModifiedBy": "scheck@sm1.logik.dev",
      "defaultValue": null,
      "unitLabel": null,
      "precision": 32,
      "minValue": null,
      "maxValue": null,
      "stepValue": null
    }
  ],
  "options": [
    {
      "id": 38,
      "name": "option1",
      "value": "option1",
      "imageUrl": null,
      "description": null,
      "optionGroup": null,
      "modified": "2023-09-20T15:55:28.907745Z",
      "defaultValue": false,
      "order": 10
    },
    {
      "id": 39,
      "name": "option2",
      "value": "option2",
      "imageUrl": null,
      "description": null,
      "optionGroup": null,
      "modified": "2023-09-20T15:55:28.917641Z",
      "defaultValue": true,
      "order": 20
    },
    {
      "id": 40,
      "name": "option3",
      "value": "option3",
      "imageUrl": null,
      "description": null,
      "optionGroup": null,
      "modified": "2023-09-20T15:55:28.922805Z",
      "defaultValue": false,
      "order": 30
    }
  ],
  "aggregatesToDelete": [],
  "aggregates": [
    {
      "type": "Number",
      "created": "2023-09-20T15:56:22.141851Z",
      "modified": "2023-09-20T15:56:22.141851Z",
      "id": 83,
      "name": "subFieldNumber Sum",
      "variableName": "newPicker.aggregates.subFieldNumber_sum",
      "description": null,
      "required": false,
      "category": "SET_AGGREGATE",
      "aggregateType": "SUM",
      "fieldVariableNames": [
        "newPicker.subFieldNumber"
      ],
      "lastModifiedBy": "scheck@sm1.logik.dev",
      "defaultValue": null,
      "unitLabel": null,
      "precision": 32,
      "minValue": null,
      "maxValue": null,
      "stepValue": null
    }
  ],
  "unsavedAggregates": false
}

Parameters

Name In Type Required Description
productPickerName path string true none
body body UpdateProductPickerRequest true none

Example responses

200 Response

{
  "type": "ProductPicker",
  "created": "2023-09-20T15:55:02.622583Z",
  "modified": "2023-09-20T15:56:27.430011623Z",
  "id": 78,
  "name": "newPicker",
  "variableName": "newPicker",
  "description": null,
  "required": true,
  "category": "PRODUCT_PICKER",
  "lastModifiedBy": "scheck@sm1.logik.dev",
  "selectType": "multi",
  "enrichEnabled": false,
  "quantitySelectionLinked": true,
  "defaultType": null,
  "defaultBomType": null,
  "defaultParentProduct": null,
  "defaultUom": null,
  "defaultPricingProductSellingModelId": "OneTime_OneTime_2023_07_05",
  "defaultPricingStartDate": null,
  "defaultPricingEndDate": null,
  "layoutProductDetails": [
    "price",
    "name"
  ],
  "fields": [
    {
      "created": "2023-09-20T15:55:02.625127Z",
      "modified": "2023-09-20T15:55:02.625127Z",
      "id": 31,
      "variableName": "newPicker.value",
      "label": "Value",
      "fieldType": "Text",
      "target": "ProductId",
      "lastModifiedBy": "scheck@sm1.logik.dev"
    },
    {
      "created": "2023-09-20T15:55:02.679673Z",
      "modified": "2023-09-20T15:55:02.679673Z",
      "id": 32,
      "variableName": "newPicker.select",
      "label": "Select",
      "fieldType": "Boolean",
      "lastModifiedBy": "scheck@sm1.logik.dev"
    },
    {
      "created": "2023-09-20T15:55:02.682612Z",
      "modified": "2023-09-20T15:55:02.682612Z",
      "id": 33,
      "variableName": "newPicker.quantity",
      "label": "Quantity",
      "fieldType": "Number",
      "target": "ProductQuantity",
      "lastModifiedBy": "scheck@sm1.logik.dev"
    }
  ],
  "rules": [],
  "aggregateFields": [
    {
      "type": "Number",
      "created": "2023-09-20T15:56:22.141851Z",
      "modified": "2023-09-20T15:56:22.141851Z",
      "id": 83,
      "name": "subFieldNumber Sum",
      "variableName": "newPicker.aggregates.subFieldNumber_sum",
      "description": null,
      "required": false,
      "category": "SET_AGGREGATE",
      "aggregateType": "SUM",
      "fieldVariableNames": [
        "newPicker.subFieldNumber"
      ],
      "lastModifiedBy": "scheck@sm1.logik.dev",
      "defaultValue": null,
      "unitLabel": null,
      "precision": 32,
      "minValue": null,
      "maxValue": null,
      "stepValue": null
    }
  ]
}

Responses

Status Meaning Description Schema
200 OK none UpdateProductPickerResponse

Delete a Product Picker

Code samples

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.delete('https://{tenant}.{sector}.logik.io/api/admin/v1/productPickers/{productPickerName}', headers = headers)

print(r.json())


const headers = {
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'
};

fetch('https://{tenant}.{sector}.logik.io/api/admin/v1/productPickers/{productPickerName}',
{
  method: 'DELETE',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'
};

fetch('https://{tenant}.{sector}.logik.io/api/admin/v1/productPickers/{productPickerName}',
{
  method: 'DELETE',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

# You can also use wget
curl -X DELETE https://{tenant}.{sector}.logik.io/api/admin/v1/productPickers/{productPickerName} \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

DELETE https://{tenant}.{sector}.logik.io/api/admin/v1/productPickers/{productPickerName} HTTP/1.1

Accept: application/json

URL obj = new URL("https://{tenant}.{sector}.logik.io/api/admin/v1/productPickers/{productPickerName}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("DELETE");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/json',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.delete 'https://{tenant}.{sector}.logik.io/api/admin/v1/productPickers/{productPickerName}',
  params: {
  }, headers: headers

p JSON.parse(result)

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        "Authorization": []string{"Bearer {access-token}"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("DELETE", "https://{tenant}.{sector}.logik.io/api/admin/v1/productPickers/{productPickerName}", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

DELETE /api/admin/v1/productPickers/{productPickerName}

Parameters

Name In Type Required Description
productPickerName path string true none

Example responses

422 Response

{
  "errorCode": "LGK-CF4CBB2C7AD5407EAE474544B",
  "errorMessage": "Cannot delete 'proto1' field because it is referenced by the following rules: [proto1SetParentProduct].",
  "timestamp": "2023-09-21T21:10:54.734716309Z"
}

Responses

Status Meaning Description Schema
204 No Content none None
422 Unprocessable Entity none Inline

Response Schema

Status Code 422

Name Type Required Restrictions Description
» errorCode string false none none
» errorMessage string false none none
» timestamp string false none none

Product Pickers > Options

Product Picker Options

Get Product Picker Options

Code samples

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.get('https://{tenant}.{sector}.logik.io/api/admin/v1/fields/{productPickerName}/options', params={
  'page': '0',  'sort': 'modified%2CDESC',  'size': '100'
}, headers = headers)

print(r.json())


const headers = {
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'
};

fetch('https://{tenant}.{sector}.logik.io/api/admin/v1/fields/{productPickerName}/options?page=0&sort=modified%2CDESC&size=100',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'
};

fetch('https://{tenant}.{sector}.logik.io/api/admin/v1/fields/{productPickerName}/options?page=0&sort=modified%2CDESC&size=100',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

# You can also use wget
curl -X GET https://{tenant}.{sector}.logik.io/api/admin/v1/fields/{productPickerName}/options?page=0&sort=modified%2CDESC&size=100 \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

GET https://{tenant}.{sector}.logik.io/api/admin/v1/fields/{productPickerName}/options?page=0&sort=modified%2CDESC&size=100 HTTP/1.1

Accept: application/json

URL obj = new URL("https://{tenant}.{sector}.logik.io/api/admin/v1/fields/{productPickerName}/options?page=0&sort=modified%2CDESC&size=100");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/json',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.get 'https://{tenant}.{sector}.logik.io/api/admin/v1/fields/{productPickerName}/options',
  params: {
  'page' => 'number',
'sort' => 'string',
'size' => 'number'
}, headers: headers

p JSON.parse(result)

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        "Authorization": []string{"Bearer {access-token}"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "https://{tenant}.{sector}.logik.io/api/admin/v1/fields/{productPickerName}/options", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

GET /api/admin/v1/fields/{productPickerName}/options

Retrieve list of options for a Product Picker field

Parameters

Name In Type Required Description
page query number true none
sort query string true none
size query number true none
productPickerName path string true none

Example responses

200 Response

{
  "content": [
    {
      "id": 38,
      "name": "option1",
      "value": "option1",
      "imageUrl": null,
      "description": null,
      "optionGroup": null,
      "modified": "2023-09-20T15:55:28.907745Z",
      "defaultValue": false,
      "order": 10
    },
    {
      "id": 39,
      "name": "option2",
      "value": "option2",
      "imageUrl": null,
      "description": null,
      "optionGroup": null,
      "modified": "2023-09-20T15:55:28.917641Z",
      "defaultValue": true,
      "order": 20
    },
    {
      "id": 40,
      "name": "option3",
      "value": "option3",
      "imageUrl": null,
      "description": null,
      "optionGroup": null,
      "modified": "2023-09-20T15:55:28.922805Z",
      "defaultValue": false,
      "order": 30
    }
  ],
  "pageable": {
    "sort": {
      "empty": false,
      "sorted": true,
      "unsorted": false
    },
    "offset": 0,
    "pageNumber": 0,
    "pageSize": 100,
    "paged": true,
    "unpaged": false
  },
  "totalElements": 3,
  "last": true,
  "totalPages": 1,
  "size": 100,
  "number": 0,
  "sort": {
    "empty": false,
    "sorted": true,
    "unsorted": false
  },
  "numberOfElements": 3,
  "first": true,
  "empty": false
}

Responses

Status Meaning Description Schema
200 OK none ProductPickerOptionsResponse

Create Product Picker Options

Code samples

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.post('https://{tenant}.{sector}.logik.io/api/admin/v1/fields/{productPickerName}/options', headers = headers)

print(r.json())

const inputBody = '[
  {
    "order": "10",
    "value": "option1",
    "defaultValue": "false",
    "name": "option1"
  },
  {
    "order": "20",
    "value": "option2",
    "defaultValue": "true",
    "name": "option2"
  },
  {
    "order": "30",
    "value": "option3",
    "defaultValue": "false",
    "name": "option3"
  }
]';
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'
};

fetch('https://{tenant}.{sector}.logik.io/api/admin/v1/fields/{productPickerName}/options',
{
  method: 'POST',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

const fetch = require('node-fetch');
const inputBody = [
  {
    "order": "10",
    "value": "option1",
    "defaultValue": "false",
    "name": "option1"
  },
  {
    "order": "20",
    "value": "option2",
    "defaultValue": "true",
    "name": "option2"
  },
  {
    "order": "30",
    "value": "option3",
    "defaultValue": "false",
    "name": "option3"
  }
];
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'
};

fetch('https://{tenant}.{sector}.logik.io/api/admin/v1/fields/{productPickerName}/options',
{
  method: 'POST',
  body: JSON.stringify(inputBody),
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

# You can also use wget
curl -X POST https://{tenant}.{sector}.logik.io/api/admin/v1/fields/{productPickerName}/options \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

POST https://{tenant}.{sector}.logik.io/api/admin/v1/fields/{productPickerName}/options HTTP/1.1

Content-Type: application/json
Accept: application/json

URL obj = new URL("https://{tenant}.{sector}.logik.io/api/admin/v1/fields/{productPickerName}/options");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Accept' => 'application/json',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.post 'https://{tenant}.{sector}.logik.io/api/admin/v1/fields/{productPickerName}/options',
  params: {
  }, headers: headers

p JSON.parse(result)

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/json"},
        "Authorization": []string{"Bearer {access-token}"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "https://{tenant}.{sector}.logik.io/api/admin/v1/fields/{productPickerName}/options", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

POST /api/admin/v1/fields/{productPickerName}/options

Add options to Product Picker

Body parameter

[
  {
    "order": "10",
    "value": "option1",
    "defaultValue": "false",
    "name": "option1"
  },
  {
    "order": "20",
    "value": "option2",
    "defaultValue": "true",
    "name": "option2"
  },
  {
    "order": "30",
    "value": "option3",
    "defaultValue": "false",
    "name": "option3"
  }
]

Parameters

Name In Type Required Description
productPickerName path string true none
body body CreateProductPickerOptionsRequest true none

Example responses

201 Response

[
  {
    "id": 38,
    "name": "option1",
    "value": "option1",
    "imageUrl": null,
    "description": null,
    "order": 10,
    "defaultValue": false
  },
  {
    "id": 39,
    "name": "option2",
    "value": "option2",
    "imageUrl": null,
    "description": null,
    "order": 20,
    "defaultValue": true
  },
  {
    "id": 40,
    "name": "option3",
    "value": "option3",
    "imageUrl": null,
    "description": null,
    "order": 30,
    "defaultValue": false
  }
]

Responses

Status Meaning Description Schema
201 Created none CreateProductPickerOptionsResponse

Product Pickers > Aggregates

Product Picker Aggregates

Get Aggregate Fields

Code samples

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.get('https://{tenant}.{sector}.logik.io/api/admin/v1/productPickers/{productPickerName}/aggregateFields', headers = headers)

print(r.json())


const headers = {
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'
};

fetch('https://{tenant}.{sector}.logik.io/api/admin/v1/productPickers/{productPickerName}/aggregateFields',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'
};

fetch('https://{tenant}.{sector}.logik.io/api/admin/v1/productPickers/{productPickerName}/aggregateFields',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

# You can also use wget
curl -X GET https://{tenant}.{sector}.logik.io/api/admin/v1/productPickers/{productPickerName}/aggregateFields \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

GET https://{tenant}.{sector}.logik.io/api/admin/v1/productPickers/{productPickerName}/aggregateFields HTTP/1.1

Accept: application/json

URL obj = new URL("https://{tenant}.{sector}.logik.io/api/admin/v1/productPickers/{productPickerName}/aggregateFields");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/json',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.get 'https://{tenant}.{sector}.logik.io/api/admin/v1/productPickers/{productPickerName}/aggregateFields',
  params: {
  }, headers: headers

p JSON.parse(result)

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        "Authorization": []string{"Bearer {access-token}"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "https://{tenant}.{sector}.logik.io/api/admin/v1/productPickers/{productPickerName}/aggregateFields", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

GET /api/admin/v1/productPickers/{productPickerName}/aggregateFields

Parameters

Name In Type Required Description
productPickerName path string true none

Example responses

200 Response

[
  {
    "type": "Number",
    "created": "2023-09-20T15:56:22.141851Z",
    "modified": "2023-09-20T15:56:22.141851Z",
    "id": 83,
    "name": "subFieldNumber Sum",
    "variableName": "newPicker.aggregates.subFieldNumber_sum",
    "description": null,
    "required": false,
    "category": "SET_AGGREGATE",
    "aggregateType": "SUM",
    "fieldVariableNames": [
      "newPicker.subFieldNumber"
    ],
    "lastModifiedBy": "scheck@sm1.logik.dev",
    "defaultValue": null,
    "unitLabel": null,
    "precision": 32,
    "minValue": null,
    "maxValue": null,
    "stepValue": null
  }
]

Responses

Status Meaning Description Schema
200 OK none Inline

Response Schema

Status Code 200

Name Type Required Restrictions Description
» type string false none none
» created string false none none
» modified string false none none
» id number false none none
» name string false none none
» variableName string false none none
» description string false none none
» required boolean false none none
» category string false none none
» aggregateType string false none none
» fieldVariableNames [string] false none none
» lastModifiedBy string false none none
» defaultValue string false none none
» unitLabel string false none none
» precision number false none none
» minValue string false none none
» maxValue string false none none
» stepValue string false none none

Create Aggregate Field

Code samples

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.post('https://{tenant}.{sector}.logik.io/api/admin/v1/productPickers/{productPickerName}/aggregateFields', headers = headers)

print(r.json())

const inputBody = '{
  "fieldVariableNames": [
    "string"
  ],
  "aggregateType": "string",
  "name": "string",
  "variableName": "string",
  "type": "string",
  "isUnsaved": true
}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'
};

fetch('https://{tenant}.{sector}.logik.io/api/admin/v1/productPickers/{productPickerName}/aggregateFields',
{
  method: 'POST',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

const fetch = require('node-fetch');
const inputBody = {
  "fieldVariableNames": [
    "string"
  ],
  "aggregateType": "string",
  "name": "string",
  "variableName": "string",
  "type": "string",
  "isUnsaved": true
};
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'
};

fetch('https://{tenant}.{sector}.logik.io/api/admin/v1/productPickers/{productPickerName}/aggregateFields',
{
  method: 'POST',
  body: JSON.stringify(inputBody),
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

# You can also use wget
curl -X POST https://{tenant}.{sector}.logik.io/api/admin/v1/productPickers/{productPickerName}/aggregateFields \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

POST https://{tenant}.{sector}.logik.io/api/admin/v1/productPickers/{productPickerName}/aggregateFields HTTP/1.1

Content-Type: application/json
Accept: application/json

URL obj = new URL("https://{tenant}.{sector}.logik.io/api/admin/v1/productPickers/{productPickerName}/aggregateFields");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Accept' => 'application/json',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.post 'https://{tenant}.{sector}.logik.io/api/admin/v1/productPickers/{productPickerName}/aggregateFields',
  params: {
  }, headers: headers

p JSON.parse(result)

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/json"},
        "Authorization": []string{"Bearer {access-token}"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "https://{tenant}.{sector}.logik.io/api/admin/v1/productPickers/{productPickerName}/aggregateFields", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

POST /api/admin/v1/productPickers/{productPickerName}/aggregateFields

Create a Product Picker Aggregate Field

Body parameter

{
  "fieldVariableNames": [
    "string"
  ],
  "aggregateType": "string",
  "name": "string",
  "variableName": "string",
  "type": "string",
  "isUnsaved": true
}

Parameters

Name In Type Required Description
productPickerName path string true none
body body object true none
» fieldVariableNames body [string] false none
» aggregateType body string false none
» name body string false none
» variableName body string false none
» type body string false none
» isUnsaved body boolean false none

Example responses

201 Response

{
  "type": "Number",
  "created": "2023-09-20T15:56:22.141850654Z",
  "modified": "2023-09-20T15:56:22.141850654Z",
  "id": 83,
  "name": "subFieldNumber Sum",
  "variableName": "newPicker.aggregates.subFieldNumber_sum",
  "description": null,
  "required": false,
  "category": "SET_AGGREGATE",
  "aggregateType": "SUM",
  "fieldVariableNames": [
    "newPicker.subFieldNumber"
  ],
  "lastModifiedBy": "scheck@sm1.logik.dev",
  "defaultValue": null,
  "unitLabel": null,
  "precision": 32,
  "minValue": null,
  "maxValue": null,
  "stepValue": null
}

Responses

Status Meaning Description Schema
201 Created none Inline

Response Schema

Status Code 201

Name Type Required Restrictions Description
» type string false none none
» created string false none none
» modified string false none none
» id number false none none
» name string false none none
» variableName string false none none
» description string false none none
» required boolean false none none
» category string false none none
» aggregateType string false none none
» fieldVariableNames [string] false none none
» lastModifiedBy string false none none
» defaultValue string false none none
» unitLabel string false none none
» precision number false none none
» minValue string false none none
» maxValue string false none none
» stepValue string false none none

Product Pickers > Bulk Actions

Product Picker Bulk Rules

Import a Bulk Action

Code samples

import requests
headers = {
  'Content-Type': 'multipart/form-data',
  'Accept': 'application/json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.post('https://{tenant}.{sector}.logik.io/api/admin/v1/productPickers/{productPickerName}/rules', headers = headers)

print(r.json())

const inputBody = '{
  "jobType": "string",
  "file": "string"
}';
const headers = {
  'Content-Type':'multipart/form-data',
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'
};

fetch('https://{tenant}.{sector}.logik.io/api/admin/v1/productPickers/{productPickerName}/rules',
{
  method: 'POST',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

const fetch = require('node-fetch');
const inputBody = {
  "jobType": "string",
  "file": "string"
};
const headers = {
  'Content-Type':'multipart/form-data',
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'
};

fetch('https://{tenant}.{sector}.logik.io/api/admin/v1/productPickers/{productPickerName}/rules',
{
  method: 'POST',
  body: JSON.stringify(inputBody),
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

# You can also use wget
curl -X POST https://{tenant}.{sector}.logik.io/api/admin/v1/productPickers/{productPickerName}/rules \
  -H 'Content-Type: multipart/form-data' \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

POST https://{tenant}.{sector}.logik.io/api/admin/v1/productPickers/{productPickerName}/rules HTTP/1.1

Content-Type: multipart/form-data
Accept: application/json

URL obj = new URL("https://{tenant}.{sector}.logik.io/api/admin/v1/productPickers/{productPickerName}/rules");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'multipart/form-data',
  'Accept' => 'application/json',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.post 'https://{tenant}.{sector}.logik.io/api/admin/v1/productPickers/{productPickerName}/rules',
  params: {
  }, headers: headers

p JSON.parse(result)

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"multipart/form-data"},
        "Accept": []string{"application/json"},
        "Authorization": []string{"Bearer {access-token}"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "https://{tenant}.{sector}.logik.io/api/admin/v1/productPickers/{productPickerName}/rules", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

POST /api/admin/v1/productPickers/{productPickerName}/rules

Body parameter

jobType: string
file: string

Parameters

Name In Type Required Description
productPickerName path string true none
body body object true none
» jobType body string true none
» file body string(binary) true none

Example responses

200 Response

{
  "created": "2023-09-20T16:00:35.614277785Z",
  "modified": "2023-09-20T16:00:35.614277785Z",
  "id": 105,
  "jobType": "PRODUCT_PICKER_RULE_IMPORT",
  "status": "STARTED"
}

Responses

Status Meaning Description Schema
200 OK none Inline

Response Schema

Status Code 200

Name Type Required Restrictions Description
» created string false none none
» modified string false none none
» id number false none none
» jobType string false none none
» status string false none none

Get List of Bulk Actions

Code samples

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.get('https://{tenant}.{sector}.logik.io/api/admin/v1/productPickers/{productPickerName}/rules', headers = headers)

print(r.json())


const headers = {
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'
};

fetch('https://{tenant}.{sector}.logik.io/api/admin/v1/productPickers/{productPickerName}/rules',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'
};

fetch('https://{tenant}.{sector}.logik.io/api/admin/v1/productPickers/{productPickerName}/rules',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

# You can also use wget
curl -X GET https://{tenant}.{sector}.logik.io/api/admin/v1/productPickers/{productPickerName}/rules \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

GET https://{tenant}.{sector}.logik.io/api/admin/v1/productPickers/{productPickerName}/rules HTTP/1.1

Accept: application/json

URL obj = new URL("https://{tenant}.{sector}.logik.io/api/admin/v1/productPickers/{productPickerName}/rules");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/json',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.get 'https://{tenant}.{sector}.logik.io/api/admin/v1/productPickers/{productPickerName}/rules',
  params: {
  }, headers: headers

p JSON.parse(result)

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        "Authorization": []string{"Bearer {access-token}"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "https://{tenant}.{sector}.logik.io/api/admin/v1/productPickers/{productPickerName}/rules", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

GET /api/admin/v1/productPickers/{productPickerName}/rules

Get Bulk Actions from Product Picker

Parameters

Name In Type Required Description
productPickerName path string true none

Example responses

200 Response

{
  "content": [
    {
      "created": "2023-09-20T15:56:44.109145Z",
      "modified": "2023-09-20T15:58:08.254303Z",
      "id": 7,
      "variableName": "newOptionInclusion",
      "type": "Inclusion",
      "status": "active",
      "columns": [
        {
          "id": 20,
          "header": "value",
          "mappedFieldVarName": "newPicker.value",
          "columnUse": "ProductId",
          "orderNumber": 0
        },
        {
          "id": 21,
          "header": "hasPromoCode",
          "mappedFieldVarName": "hasPromoCode",
          "operator": "equals",
          "columnUse": "Filter",
          "orderNumber": 1
        }
      ]
    },
    {
      "created": "2023-09-20T16:00:35.640650Z",
      "modified": "2023-09-20T16:00:35.727075Z",
      "id": 10,
      "variableName": "setQty",
      "type": "Quantity",
      "status": "active",
      "columns": [
        {
          "id": 29,
          "header": "value",
          "mappedFieldVarName": "newPicker.value",
          "columnUse": "ProductId",
          "orderNumber": 0
        },
        {
          "id": 30,
          "header": "quantity.min",
          "mappedFieldVarName": "quantity.min",
          "columnUse": "Field",
          "orderNumber": 1
        },
        {
          "id": 31,
          "header": "quantity.max",
          "mappedFieldVarName": "quantity.max",
          "columnUse": "Field",
          "orderNumber": 2
        },
        {
          "id": 32,
          "header": "quantity.step",
          "mappedFieldVarName": "quantity.step",
          "columnUse": "Field",
          "orderNumber": 3
        }
      ]
    }
  ],
  "pageable": {
    "sort": {
      "empty": true,
      "sorted": false,
      "unsorted": true
    },
    "offset": 0,
    "pageNumber": 0,
    "pageSize": 20,
    "paged": true,
    "unpaged": false
  },
  "totalElements": 2,
  "last": true,
  "totalPages": 1,
  "size": 20,
  "number": 0,
  "sort": {
    "empty": true,
    "sorted": false,
    "unsorted": true
  },
  "numberOfElements": 2,
  "first": true,
  "empty": false
}

Responses

Status Meaning Description Schema
200 OK none Inline

Response Schema

Status Code 200

Name Type Required Restrictions Description
» content [object] false none none
»» created string true none none
»» modified string true none none
»» id number true none none
»» variableName string true none none
»» type string true none none
»» status string true none none
»» columns [object] true none none
»»» id number true none none
»»» header string true none none
»»» mappedFieldVarName string true none none
»»» columnUse string true none none
»»» orderNumber number true none none
»»» operator string false none none
» pageable object false none none
»» sort object false none none
»»» empty boolean false none none
»»» sorted boolean false none none
»»» unsorted boolean false none none
»» offset number false none none
»» pageNumber number false none none
»» pageSize number false none none
»» paged boolean false none none
»» unpaged boolean false none none
» totalElements number false none none
» last boolean false none none
» totalPages number false none none
» size number false none none
» number number false none none
» sort object false none none
»» empty boolean false none none
»» sorted boolean false none none
»» unsorted boolean false none none
» numberOfElements number false none none
» first boolean false none none
» empty boolean false none none

Get a Bulk Action

Code samples

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.get('https://{tenant}.{sector}.logik.io/api/admin/v1/productPickers/{productPickerName}/rules/{ruleName}', headers = headers)

print(r.json())


const headers = {
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'
};

fetch('https://{tenant}.{sector}.logik.io/api/admin/v1/productPickers/{productPickerName}/rules/{ruleName}',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'
};

fetch('https://{tenant}.{sector}.logik.io/api/admin/v1/productPickers/{productPickerName}/rules/{ruleName}',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

# You can also use wget
curl -X GET https://{tenant}.{sector}.logik.io/api/admin/v1/productPickers/{productPickerName}/rules/{ruleName} \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

GET https://{tenant}.{sector}.logik.io/api/admin/v1/productPickers/{productPickerName}/rules/{ruleName} HTTP/1.1

Accept: application/json

URL obj = new URL("https://{tenant}.{sector}.logik.io/api/admin/v1/productPickers/{productPickerName}/rules/{ruleName}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/json',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.get 'https://{tenant}.{sector}.logik.io/api/admin/v1/productPickers/{productPickerName}/rules/{ruleName}',
  params: {
  }, headers: headers

p JSON.parse(result)

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        "Authorization": []string{"Bearer {access-token}"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "https://{tenant}.{sector}.logik.io/api/admin/v1/productPickers/{productPickerName}/rules/{ruleName}", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

GET /api/admin/v1/productPickers/{productPickerName}/rules/{ruleName}

Parameters

Name In Type Required Description
productPickerName path string true none
ruleName path string true none

Example responses

200 Response

{
  "created": "2023-09-20T15:56:44.109145Z",
  "modified": "2023-09-20T15:56:44.109145Z",
  "id": 7,
  "variableName": "newOptionInclusion",
  "type": "Inclusion",
  "status": "active",
  "columns": [
    {
      "id": 20,
      "header": "value",
      "mappedFieldVarName": "newPicker.value",
      "columnUse": "ProductId",
      "orderNumber": 0
    },
    {
      "id": 21,
      "header": "hasPromoCode",
      "mappedFieldVarName": "hasPromoCode",
      "operator": "equals",
      "columnUse": "Filter",
      "orderNumber": 1
    }
  ]
}

Responses

Status Meaning Description Schema
200 OK none Inline

Response Schema

Status Code 200

Name Type Required Restrictions Description
» created string false none none
» modified string false none none
» id number false none none
» variableName string false none none
» type string false none none
» status string false none none
» columns [object] false none none
»» id number true none none
»» header string true none none
»» mappedFieldVarName string true none none
»» columnUse string true none none
»» orderNumber number true none none
»» operator string false none none

Update a Bulk Action

Code samples

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.put('https://{tenant}.{sector}.logik.io/api/admin/v1/productPickers/{productPickerName}/rules/{ruleName}', headers = headers)

print(r.json())

const inputBody = '{
  "variableName": "string",
  "type": "string",
  "columns": [
    {
      "header": "string",
      "orderNumber": 0,
      "name": "string",
      "variableName": "string",
      "columnUse": "string",
      "operator": "string",
      "type": "string"
    }
  ]
}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'
};

fetch('https://{tenant}.{sector}.logik.io/api/admin/v1/productPickers/{productPickerName}/rules/{ruleName}',
{
  method: 'PUT',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

const fetch = require('node-fetch');
const inputBody = {
  "variableName": "string",
  "type": "string",
  "columns": [
    {
      "header": "string",
      "orderNumber": 0,
      "name": "string",
      "variableName": "string",
      "columnUse": "string",
      "operator": "string",
      "type": "string"
    }
  ]
};
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'
};

fetch('https://{tenant}.{sector}.logik.io/api/admin/v1/productPickers/{productPickerName}/rules/{ruleName}',
{
  method: 'PUT',
  body: JSON.stringify(inputBody),
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

# You can also use wget
curl -X PUT https://{tenant}.{sector}.logik.io/api/admin/v1/productPickers/{productPickerName}/rules/{ruleName} \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

PUT https://{tenant}.{sector}.logik.io/api/admin/v1/productPickers/{productPickerName}/rules/{ruleName} HTTP/1.1

Content-Type: application/json
Accept: application/json

URL obj = new URL("https://{tenant}.{sector}.logik.io/api/admin/v1/productPickers/{productPickerName}/rules/{ruleName}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("PUT");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Accept' => 'application/json',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.put 'https://{tenant}.{sector}.logik.io/api/admin/v1/productPickers/{productPickerName}/rules/{ruleName}',
  params: {
  }, headers: headers

p JSON.parse(result)

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/json"},
        "Authorization": []string{"Bearer {access-token}"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("PUT", "https://{tenant}.{sector}.logik.io/api/admin/v1/productPickers/{productPickerName}/rules/{ruleName}", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

PUT /api/admin/v1/productPickers/{productPickerName}/rules/{ruleName}

Update a Product Picker Bulk Action

Body parameter

{
  "variableName": "string",
  "type": "string",
  "columns": [
    {
      "header": "string",
      "orderNumber": 0,
      "name": "string",
      "variableName": "string",
      "columnUse": "string",
      "operator": "string",
      "type": "string"
    }
  ]
}

Parameters

Name In Type Required Description
productPickerName path string true none
ruleName path string true none
body body object true none
» variableName body string false none
» type body string false none
» columns body [object] false none
»» header body string true none
»» orderNumber body number true none
»» name body string false none
»» variableName body string false none
»» columnUse body string false none
»» operator body string false none
»» type body string false none

Example responses

200 Response

{
  "created": "2023-09-20T15:56:44.109145Z",
  "modified": "2023-09-20T15:56:44.109145Z",
  "id": 7,
  "variableName": "newOptionInclusion",
  "type": "Inclusion",
  "status": "active",
  "columns": [
    {
      "id": 20,
      "header": "value",
      "mappedFieldVarName": "newPicker.value",
      "columnUse": "ProductId",
      "orderNumber": 0
    },
    {
      "id": 21,
      "header": "hasPromoCode",
      "mappedFieldVarName": "hasPromoCode",
      "operator": "equals",
      "columnUse": "Filter",
      "orderNumber": 1
    }
  ]
}

Responses

Status Meaning Description Schema
200 OK none Inline

Response Schema

Status Code 200

Name Type Required Restrictions Description
» created string false none none
» modified string false none none
» id number false none none
» variableName string false none none
» type string false none none
» status string false none none
» columns [object] false none none
»» id number true none none
»» header string true none none
»» mappedFieldVarName string true none none
»» columnUse string true none none
»» orderNumber number true none none
»» operator string false none none

Export a Bulk Action

Code samples

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.post('https://{tenant}.{sector}.logik.io/api/admin/v1/productPickers/{productPickerName}/rules/export', headers = headers)

print(r.json())

const inputBody = '[
  "string"
]';
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'
};

fetch('https://{tenant}.{sector}.logik.io/api/admin/v1/productPickers/{productPickerName}/rules/export',
{
  method: 'POST',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

const fetch = require('node-fetch');
const inputBody = [
  "string"
];
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'
};

fetch('https://{tenant}.{sector}.logik.io/api/admin/v1/productPickers/{productPickerName}/rules/export',
{
  method: 'POST',
  body: JSON.stringify(inputBody),
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

# You can also use wget
curl -X POST https://{tenant}.{sector}.logik.io/api/admin/v1/productPickers/{productPickerName}/rules/export \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

POST https://{tenant}.{sector}.logik.io/api/admin/v1/productPickers/{productPickerName}/rules/export HTTP/1.1

Content-Type: application/json
Accept: application/json

URL obj = new URL("https://{tenant}.{sector}.logik.io/api/admin/v1/productPickers/{productPickerName}/rules/export");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Accept' => 'application/json',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.post 'https://{tenant}.{sector}.logik.io/api/admin/v1/productPickers/{productPickerName}/rules/export',
  params: {
  }, headers: headers

p JSON.parse(result)

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/json"},
        "Authorization": []string{"Bearer {access-token}"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "https://{tenant}.{sector}.logik.io/api/admin/v1/productPickers/{productPickerName}/rules/export", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

POST /api/admin/v1/productPickers/{productPickerName}/rules/export

Body parameter

[
  "string"
]

Parameters

Name In Type Required Description
productPickerName path string true none
body body array[string] true none

Example responses

200 Response

{
  "created": "2023-09-20T15:59:47.900704477Z",
  "modified": "2023-09-20T15:59:47.900704477Z",
  "id": 104,
  "jobType": "PRODUCT_PICKER_RULE_EXPORT",
  "status": "STARTED"
}

Responses

Status Meaning Description Schema
200 OK none Inline

Response Schema

Status Code 200

Name Type Required Restrictions Description
» created string false none none
» modified string false none none
» id number false none none
» jobType string false none none
» status string false none none

Product Pickers > Bulk Action Data

Product Picker Bulk Action Data

Import Bulk Action Data

Code samples

import requests
headers = {
  'Content-Type': 'multipart/form-data',
  'Accept': 'application/json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.post('https://{tenant}.{sector}.logik.io/api/admin/v1/productPickers/{productPickerName}/rules/{ruleName}', headers = headers)

print(r.json())

const inputBody = '{
  "jobType": "string",
  "file": "string"
}';
const headers = {
  'Content-Type':'multipart/form-data',
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'
};

fetch('https://{tenant}.{sector}.logik.io/api/admin/v1/productPickers/{productPickerName}/rules/{ruleName}',
{
  method: 'POST',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

const fetch = require('node-fetch');
const inputBody = {
  "jobType": "string",
  "file": "string"
};
const headers = {
  'Content-Type':'multipart/form-data',
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'
};

fetch('https://{tenant}.{sector}.logik.io/api/admin/v1/productPickers/{productPickerName}/rules/{ruleName}',
{
  method: 'POST',
  body: JSON.stringify(inputBody),
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

# You can also use wget
curl -X POST https://{tenant}.{sector}.logik.io/api/admin/v1/productPickers/{productPickerName}/rules/{ruleName} \
  -H 'Content-Type: multipart/form-data' \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

POST https://{tenant}.{sector}.logik.io/api/admin/v1/productPickers/{productPickerName}/rules/{ruleName} HTTP/1.1

Content-Type: multipart/form-data
Accept: application/json

URL obj = new URL("https://{tenant}.{sector}.logik.io/api/admin/v1/productPickers/{productPickerName}/rules/{ruleName}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'multipart/form-data',
  'Accept' => 'application/json',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.post 'https://{tenant}.{sector}.logik.io/api/admin/v1/productPickers/{productPickerName}/rules/{ruleName}',
  params: {
  }, headers: headers

p JSON.parse(result)

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"multipart/form-data"},
        "Accept": []string{"application/json"},
        "Authorization": []string{"Bearer {access-token}"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "https://{tenant}.{sector}.logik.io/api/admin/v1/productPickers/{productPickerName}/rules/{ruleName}", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

POST /api/admin/v1/productPickers/{productPickerName}/rules/{ruleName}

Start an import job of Bulk Action Data for the specified Bulk Action.

Body parameter

jobType: string
file: string

Parameters

Name In Type Required Description
productPickerName path string true none
ruleName path string true none
body body object true none
» jobType body string true none
» file body string(binary) true none

Example responses

200 Response

{
  "created": "2023-09-20T15:58:08.187827782Z",
  "modified": "2023-09-20T15:58:08.187827782Z",
  "id": 103,
  "jobType": "PRODUCT_PICKER_RULE_DATA_IMPORT",
  "status": "STARTED"
}

Responses

Status Meaning Description Schema
200 OK none Inline

Response Schema

Status Code 200

Name Type Required Restrictions Description
» created string false none none
» modified string false none none
» id number false none none
» jobType string false none none
» status string false none none

Get Bulk Action Data

Code samples

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.get('https://{tenant}.{sector}.logik.io/api/admin/v1/productPickers/{productPickerName}/rules/{ruleName}/rows', params={
  'page': '0',  'size': '100'
}, headers = headers)

print(r.json())


const headers = {
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'
};

fetch('https://{tenant}.{sector}.logik.io/api/admin/v1/productPickers/{productPickerName}/rules/{ruleName}/rows?page=0&size=100',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'
};

fetch('https://{tenant}.{sector}.logik.io/api/admin/v1/productPickers/{productPickerName}/rules/{ruleName}/rows?page=0&size=100',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

# You can also use wget
curl -X GET https://{tenant}.{sector}.logik.io/api/admin/v1/productPickers/{productPickerName}/rules/{ruleName}/rows?page=0&size=100 \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

GET https://{tenant}.{sector}.logik.io/api/admin/v1/productPickers/{productPickerName}/rules/{ruleName}/rows?page=0&size=100 HTTP/1.1

Accept: application/json

URL obj = new URL("https://{tenant}.{sector}.logik.io/api/admin/v1/productPickers/{productPickerName}/rules/{ruleName}/rows?page=0&size=100");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/json',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.get 'https://{tenant}.{sector}.logik.io/api/admin/v1/productPickers/{productPickerName}/rules/{ruleName}/rows',
  params: {
  'page' => 'number',
'size' => 'number'
}, headers: headers

p JSON.parse(result)

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        "Authorization": []string{"Bearer {access-token}"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "https://{tenant}.{sector}.logik.io/api/admin/v1/productPickers/{productPickerName}/rules/{ruleName}/rows", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

GET /api/admin/v1/productPickers/{productPickerName}/rules/{ruleName}/rows

Parameters

Name In Type Required Description
page query number true none
size query number true none
productPickerName path string true none
ruleName path string true none

Example responses

200 Response

{
  "content": [
    {
      "id": 1,
      "hasPromoCode": "true",
      "value": "option2"
    },
    {
      "id": 2,
      "hasPromoCode": "true",
      "value": "option3"
    }
  ],
  "pageable": {
    "sort": {
      "empty": true,
      "sorted": false,
      "unsorted": true
    },
    "offset": 0,
    "pageNumber": 0,
    "pageSize": 100,
    "paged": true,
    "unpaged": false
  },
  "totalElements": 2,
  "last": true,
  "totalPages": 1,
  "size": 100,
  "number": 0,
  "sort": {
    "empty": true,
    "sorted": false,
    "unsorted": true
  },
  "numberOfElements": 2,
  "first": true,
  "empty": false
}

Responses

Status Meaning Description Schema
200 OK none Inline

Response Schema

Status Code 200

Name Type Required Restrictions Description
» content [object] false none none
»» id number true none none
»» hasPromoCode string true none none
»» value string true none none
» pageable object false none none
»» sort object false none none
»»» empty boolean false none none
»»» sorted boolean false none none
»»» unsorted boolean false none none
»» offset number false none none
»» pageNumber number false none none
»» pageSize number false none none
»» paged boolean false none none
»» unpaged boolean false none none
» totalElements number false none none
» last boolean false none none
» totalPages number false none none
» size number false none none
» number number false none none
» sort object false none none
»» empty boolean false none none
»» sorted boolean false none none
»» unsorted boolean false none none
» numberOfElements number false none none
» first boolean false none none
» empty boolean false none none

Create Bulk Action Data

Code samples

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.post('https://{tenant}.{sector}.logik.io/api/admin/v1/productPickers/{productPickerName}/rules/{ruleName}/rows', headers = headers)

print(r.json())

const inputBody = '[
  {
    "id": "string",
    "hasPromoCode": "string",
    "value": "string"
  }
]';
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'
};

fetch('https://{tenant}.{sector}.logik.io/api/admin/v1/productPickers/{productPickerName}/rules/{ruleName}/rows',
{
  method: 'POST',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

const fetch = require('node-fetch');
const inputBody = [
  {
    "id": "string",
    "hasPromoCode": "string",
    "value": "string"
  }
];
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'
};

fetch('https://{tenant}.{sector}.logik.io/api/admin/v1/productPickers/{productPickerName}/rules/{ruleName}/rows',
{
  method: 'POST',
  body: JSON.stringify(inputBody),
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

# You can also use wget
curl -X POST https://{tenant}.{sector}.logik.io/api/admin/v1/productPickers/{productPickerName}/rules/{ruleName}/rows \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

POST https://{tenant}.{sector}.logik.io/api/admin/v1/productPickers/{productPickerName}/rules/{ruleName}/rows HTTP/1.1

Content-Type: application/json
Accept: application/json

URL obj = new URL("https://{tenant}.{sector}.logik.io/api/admin/v1/productPickers/{productPickerName}/rules/{ruleName}/rows");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Accept' => 'application/json',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.post 'https://{tenant}.{sector}.logik.io/api/admin/v1/productPickers/{productPickerName}/rules/{ruleName}/rows',
  params: {
  }, headers: headers

p JSON.parse(result)

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/json"},
        "Authorization": []string{"Bearer {access-token}"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "https://{tenant}.{sector}.logik.io/api/admin/v1/productPickers/{productPickerName}/rules/{ruleName}/rows", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

POST /api/admin/v1/productPickers/{productPickerName}/rules/{ruleName}/rows

Body parameter

[
  {
    "id": "string",
    "hasPromoCode": "string",
    "value": "string"
  }
]

Parameters

Name In Type Required Description
productPickerName path string true none
ruleName path string true none
body body array[object] true none

Example responses

200 Response

[
  {
    "id": "1",
    "hasPromoCode": "true",
    "value": "option2"
  },
  {
    "id": "2",
    "hasPromoCode": "true",
    "value": "option3"
  }
]

Responses

Status Meaning Description Schema
200 OK none Inline

Response Schema

Status Code 200

Name Type Required Restrictions Description
» id string true none none
» hasPromoCode string true none none
» value string true none none

Export Bulk Action Data

Code samples

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.post('https://{tenant}.{sector}.logik.io/api/admin/v1/productPickers/{productPickerName}/rules/{ruleName}/rows/export', headers = headers)

print(r.json())

const inputBody = '{}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'
};

fetch('https://{tenant}.{sector}.logik.io/api/admin/v1/productPickers/{productPickerName}/rules/{ruleName}/rows/export',
{
  method: 'POST',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

const fetch = require('node-fetch');
const inputBody = {};
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'
};

fetch('https://{tenant}.{sector}.logik.io/api/admin/v1/productPickers/{productPickerName}/rules/{ruleName}/rows/export',
{
  method: 'POST',
  body: JSON.stringify(inputBody),
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

# You can also use wget
curl -X POST https://{tenant}.{sector}.logik.io/api/admin/v1/productPickers/{productPickerName}/rules/{ruleName}/rows/export \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

POST https://{tenant}.{sector}.logik.io/api/admin/v1/productPickers/{productPickerName}/rules/{ruleName}/rows/export HTTP/1.1

Content-Type: application/json
Accept: application/json

URL obj = new URL("https://{tenant}.{sector}.logik.io/api/admin/v1/productPickers/{productPickerName}/rules/{ruleName}/rows/export");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Accept' => 'application/json',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.post 'https://{tenant}.{sector}.logik.io/api/admin/v1/productPickers/{productPickerName}/rules/{ruleName}/rows/export',
  params: {
  }, headers: headers

p JSON.parse(result)

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/json"},
        "Authorization": []string{"Bearer {access-token}"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "https://{tenant}.{sector}.logik.io/api/admin/v1/productPickers/{productPickerName}/rules/{ruleName}/rows/export", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

POST /api/admin/v1/productPickers/{productPickerName}/rules/{ruleName}/rows/export

Body parameter

{}

Parameters

Name In Type Required Description
productPickerName path string true none
ruleName path string true none
body body object true none

Example responses

200 Response

{
  "created": "2023-09-20T15:57:33.783491724Z",
  "modified": "2023-09-20T15:57:33.783491724Z",
  "id": 102,
  "jobType": "PRODUCT_PICKER_RULE_DATA_EXPORT",
  "status": "STARTED"
}

Responses

Status Meaning Description Schema
200 OK none Inline

Response Schema

Status Code 200

Name Type Required Restrictions Description
» created string false none none
» modified string false none none
» id number false none none
» jobType string false none none
» status string false none none

Rules

Logik Rules

Get List of Rules

Code samples

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.get('https://{tenant}.{sector}.logik.io/api/admin/v3/rules', params={
  'page': '0',  'size': '100',  'sort': 'modified%2CDESC'
}, headers = headers)

print(r.json())


const headers = {
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'
};

fetch('https://{tenant}.{sector}.logik.io/api/admin/v3/rules?page=0&size=100&sort=modified%2CDESC',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'
};

fetch('https://{tenant}.{sector}.logik.io/api/admin/v3/rules?page=0&size=100&sort=modified%2CDESC',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

# You can also use wget
curl -X GET https://{tenant}.{sector}.logik.io/api/admin/v3/rules?page=0&size=100&sort=modified%2CDESC \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

GET https://{tenant}.{sector}.logik.io/api/admin/v3/rules?page=0&size=100&sort=modified%2CDESC HTTP/1.1

Accept: application/json

URL obj = new URL("https://{tenant}.{sector}.logik.io/api/admin/v3/rules?page=0&size=100&sort=modified%2CDESC");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/json',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.get 'https://{tenant}.{sector}.logik.io/api/admin/v3/rules',
  params: {
  'page' => 'number',
'size' => 'number',
'sort' => 'string'
}, headers: headers

p JSON.parse(result)

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        "Authorization": []string{"Bearer {access-token}"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "https://{tenant}.{sector}.logik.io/api/admin/v3/rules", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

GET /api/admin/v3/rules

Parameters

Name In Type Required Description
page query number true Page number of results to return
size query number true Number of results to return
sort query string true Sort field and order of the results

Example responses

200 Response

{
  "content": [
    {
      "id": 54,
      "name": "addTablet",
      "variableName": "addTablet",
      "description": "",
      "status": "inactive",
      "modified": "2023-09-08T21:42:39.285656Z",
      "actionSummary": {
        "determinationAction": 0,
        "exclusionAction": 0,
        "inclusionAction": 0,
        "messageAction": 0,
        "productAction": 1,
        "visibilityAction": 0
      },
      "lastModifiedBy": "scheck@cpq1.logik.dev"
    },
    {
      "id": 55,
      "name": "add hierarchy",
      "variableName": "addHierarchy",
      "description": "",
      "status": "inactive",
      "modified": "2023-09-08T21:42:26.168890Z",
      "actionSummary": {
        "determinationAction": 0,
        "exclusionAction": 0,
        "inclusionAction": 0,
        "messageAction": 0,
        "productAction": 1,
        "visibilityAction": 0
      },
      "lastModifiedBy": "scheck@cpq1.logik.dev"
    },
    {
      "id": 53,
      "name": "calculateRAMstorage",
      "variableName": "calculateRAMstorage",
      "description": "",
      "status": "active",
      "modified": "2023-08-30T16:12:13.737755Z",
      "actionSummary": {
        "determinationAction": 1,
        "exclusionAction": 0,
        "inclusionAction": 0,
        "messageAction": 0,
        "productAction": 0,
        "visibilityAction": 0
      },
      "lastModifiedBy": "scheck@cpq1.logik.dev"
    }
  ],
  "pageable": {
    "sort": {
      "empty": false,
      "unsorted": false,
      "sorted": true
    },
    "offset": 0,
    "pageNumber": 0,
    "pageSize": 100,
    "paged": true,
    "unpaged": false
  },
  "totalPages": 1,
  "last": true,
  "totalElements": 45,
  "size": 100,
  "number": 0,
  "sort": {
    "empty": false,
    "unsorted": false,
    "sorted": true
  },
  "numberOfElements": 45,
  "first": true,
  "empty": false
}

Responses

Status Meaning Description Schema
200 OK none RuleListResponse

Create a Rule

Code samples

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.post('https://{tenant}.{sector}.logik.io/api/admin/v2/rules', headers = headers)

print(r.json())

const inputBody = '{
  "name": "string",
  "variableName": "string",
  "description": "string",
  "status": "string",
  "condition": {
    "groupingType": "string"
  },
  "actions": [
    null
  ]
}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'
};

fetch('https://{tenant}.{sector}.logik.io/api/admin/v2/rules',
{
  method: 'POST',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

const fetch = require('node-fetch');
const inputBody = {
  "name": "string",
  "variableName": "string",
  "description": "string",
  "status": "string",
  "condition": {
    "groupingType": "string"
  },
  "actions": [
    null
  ]
};
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'
};

fetch('https://{tenant}.{sector}.logik.io/api/admin/v2/rules',
{
  method: 'POST',
  body: JSON.stringify(inputBody),
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

# You can also use wget
curl -X POST https://{tenant}.{sector}.logik.io/api/admin/v2/rules \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

POST https://{tenant}.{sector}.logik.io/api/admin/v2/rules HTTP/1.1

Content-Type: application/json
Accept: application/json

URL obj = new URL("https://{tenant}.{sector}.logik.io/api/admin/v2/rules");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Accept' => 'application/json',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.post 'https://{tenant}.{sector}.logik.io/api/admin/v2/rules',
  params: {
  }, headers: headers

p JSON.parse(result)

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/json"},
        "Authorization": []string{"Bearer {access-token}"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "https://{tenant}.{sector}.logik.io/api/admin/v2/rules", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

POST /api/admin/v2/rules

Body parameter

{
  "name": "string",
  "variableName": "string",
  "description": "string",
  "status": "string",
  "condition": {
    "groupingType": "string"
  },
  "actions": [
    null
  ]
}

Parameters

Name In Type Required Description
body body object true none
» name body string false none
» variableName body string false none
» description body string false none
» status body string false none
» condition body object false none
»» groupingType body string false none
» actions body [any] false none

Example responses

201 Response

{
  "created": "2023-09-20T12:13:07.272753270Z",
  "modified": "2023-09-20T12:13:07.272753270Z",
  "id": 10,
  "name": "new rule",
  "variableName": "newRule",
  "description": "basic desecription",
  "status": "active",
  "condition": {
    "groupingType": "always",
    "customLogic": null,
    "scriptId": null,
    "conditions": []
  },
  "actions": [],
  "lastModifiedBy": "scheck@sm1.logik.dev"
}

Responses

Status Meaning Description Schema
201 Created none Inline

Response Schema

Status Code 201

Name Type Required Restrictions Description
» created string false none none
» modified string false none none
» id number false none none
» name string false none none
» variableName string false none none
» description string false none none
» status string false none none
» condition object false none none
»» groupingType string false none none
»» customLogic string false none none
»» scriptId string false none none
»» conditions [any] false none none
» actions [any] false none none
» lastModifiedBy string false none none

Get a Rule

Code samples

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.get('https://{tenant}.{sector}.logik.io/api/admin/v3/rules/{ruleName}', headers = headers)

print(r.json())


const headers = {
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'
};

fetch('https://{tenant}.{sector}.logik.io/api/admin/v3/rules/{ruleName}',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'
};

fetch('https://{tenant}.{sector}.logik.io/api/admin/v3/rules/{ruleName}',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

# You can also use wget
curl -X GET https://{tenant}.{sector}.logik.io/api/admin/v3/rules/{ruleName} \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

GET https://{tenant}.{sector}.logik.io/api/admin/v3/rules/{ruleName} HTTP/1.1

Accept: application/json

URL obj = new URL("https://{tenant}.{sector}.logik.io/api/admin/v3/rules/{ruleName}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/json',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.get 'https://{tenant}.{sector}.logik.io/api/admin/v3/rules/{ruleName}',
  params: {
  }, headers: headers

p JSON.parse(result)

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        "Authorization": []string{"Bearer {access-token}"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "https://{tenant}.{sector}.logik.io/api/admin/v3/rules/{ruleName}", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

GET /api/admin/v3/rules/{ruleName}

Parameters

Name In Type Required Description
ruleName path string true Rule Variable Name

Example responses

200 Response

{
  "created": "2023-09-20T12:13:07.272753Z",
  "modified": "2023-09-20T12:13:07.272753Z",
  "id": 10,
  "name": "new rule",
  "variableName": "newRule",
  "description": "basic desecription",
  "status": "active",
  "condition": {
    "groupingType": "always",
    "customLogic": null,
    "scriptId": null,
    "conditions": []
  },
  "actions": [],
  "lastModifiedBy": "scheck@sm1.logik.dev"
}

Responses

Status Meaning Description Schema
200 OK none RuleResponse

Update a Rule

Code samples

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.put('https://{tenant}.{sector}.logik.io/api/admin/v3/rules/{ruleName}', headers = headers)

print(r.json())

const inputBody = '{
  "name": "string",
  "variableName": "string",
  "status": "string",
  "description": "string",
  "actions": [
    {
      "type": "string",
      "created": "string",
      "modified": "string",
      "id": 0,
      "fieldVariableName": "string",
      "scriptId": "string",
      "variableName": "string",
      "visibilityType": "string",
      "message": "string",
      "messageType": "string",
      "color": "string",
      "icon": "string",
      "targetType": "string",
      "exclusionType": "string",
      "values": [
        "string"
      ],
      "behavior": "string",
      "excludedOptionDisplayBehavior": "string",
      "messageScriptId": "string",
      "optionMapping": "string",
      "setReadOnly": true,
      "overrideUserInput": true,
      "showMessage": true,
      "unionWithCurrentValue": true,
      "clearValue": true,
      "actionType": "string",
      "fieldObject": [
        null
      ],
      "products": [
        {
          "id": "string",
          "productId": "string",
          "quantity": 0,
          "bomType": "string",
          "type": "string",
          "productSellingModelId": "string",
          "startDate": "string",
          "endDate": "string",
          "orderNumber": 0,
          "uniqueIdentifier": "string",
          "price": "string",
          "description": "string",
          "notes": "string"
        }
      ]
    }
  ],
  "condition": {
    "groupingType": "string",
    "customLogic": "string",
    "scriptId": "string",
    "conditions": [
      {
        "created": "string",
        "modified": "string",
        "id": 0,
        "index": 0,
        "op": "string",
        "lhs": {
          "field": true,
          "dataType": "string",
          "value": [
            "string"
          ]
        },
        "rhs": {
          "field": true,
          "dataType": "string",
          "value": [
            "string"
          ]
        }
      }
    ]
  },
  "errors": {},
  "created": "string",
  "modified": "string",
  "id": 0,
  "lastModifiedBy": "string"
}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'
};

fetch('https://{tenant}.{sector}.logik.io/api/admin/v3/rules/{ruleName}',
{
  method: 'PUT',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

const fetch = require('node-fetch');
const inputBody = {
  "name": "string",
  "variableName": "string",
  "status": "string",
  "description": "string",
  "actions": [
    {
      "type": "string",
      "created": "string",
      "modified": "string",
      "id": 0,
      "fieldVariableName": "string",
      "scriptId": "string",
      "variableName": "string",
      "visibilityType": "string",
      "message": "string",
      "messageType": "string",
      "color": "string",
      "icon": "string",
      "targetType": "string",
      "exclusionType": "string",
      "values": [
        "string"
      ],
      "behavior": "string",
      "excludedOptionDisplayBehavior": "string",
      "messageScriptId": "string",
      "optionMapping": "string",
      "setReadOnly": true,
      "overrideUserInput": true,
      "showMessage": true,
      "unionWithCurrentValue": true,
      "clearValue": true,
      "actionType": "string",
      "fieldObject": [
        null
      ],
      "products": [
        {
          "id": "string",
          "productId": "string",
          "quantity": 0,
          "bomType": "string",
          "type": "string",
          "productSellingModelId": "string",
          "startDate": "string",
          "endDate": "string",
          "orderNumber": 0,
          "uniqueIdentifier": "string",
          "price": "string",
          "description": "string",
          "notes": "string"
        }
      ]
    }
  ],
  "condition": {
    "groupingType": "string",
    "customLogic": "string",
    "scriptId": "string",
    "conditions": [
      {
        "created": "string",
        "modified": "string",
        "id": 0,
        "index": 0,
        "op": "string",
        "lhs": {
          "field": true,
          "dataType": "string",
          "value": [
            "string"
          ]
        },
        "rhs": {
          "field": true,
          "dataType": "string",
          "value": [
            "string"
          ]
        }
      }
    ]
  },
  "errors": {},
  "created": "string",
  "modified": "string",
  "id": 0,
  "lastModifiedBy": "string"
};
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'
};

fetch('https://{tenant}.{sector}.logik.io/api/admin/v3/rules/{ruleName}',
{
  method: 'PUT',
  body: JSON.stringify(inputBody),
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

# You can also use wget
curl -X PUT https://{tenant}.{sector}.logik.io/api/admin/v3/rules/{ruleName} \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

PUT https://{tenant}.{sector}.logik.io/api/admin/v3/rules/{ruleName} HTTP/1.1

Content-Type: application/json
Accept: application/json

URL obj = new URL("https://{tenant}.{sector}.logik.io/api/admin/v3/rules/{ruleName}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("PUT");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Accept' => 'application/json',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.put 'https://{tenant}.{sector}.logik.io/api/admin/v3/rules/{ruleName}',
  params: {
  }, headers: headers

p JSON.parse(result)

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/json"},
        "Authorization": []string{"Bearer {access-token}"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("PUT", "https://{tenant}.{sector}.logik.io/api/admin/v3/rules/{ruleName}", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

PUT /api/admin/v3/rules/{ruleName}

Use to update a Rule along with adding or removing conditions or actions

Body parameter

{
  "name": "string",
  "variableName": "string",
  "status": "string",
  "description": "string",
  "actions": [
    {
      "type": "string",
      "created": "string",
      "modified": "string",
      "id": 0,
      "fieldVariableName": "string",
      "scriptId": "string",
      "variableName": "string",
      "visibilityType": "string",
      "message": "string",
      "messageType": "string",
      "color": "string",
      "icon": "string",
      "targetType": "string",
      "exclusionType": "string",
      "values": [
        "string"
      ],
      "behavior": "string",
      "excludedOptionDisplayBehavior": "string",
      "messageScriptId": "string",
      "optionMapping": "string",
      "setReadOnly": true,
      "overrideUserInput": true,
      "showMessage": true,
      "unionWithCurrentValue": true,
      "clearValue": true,
      "actionType": "string",
      "fieldObject": [
        null
      ],
      "products": [
        {
          "id": "string",
          "productId": "string",
          "quantity": 0,
          "bomType": "string",
          "type": "string",
          "productSellingModelId": "string",
          "startDate": "string",
          "endDate": "string",
          "orderNumber": 0,
          "uniqueIdentifier": "string",
          "price": "string",
          "description": "string",
          "notes": "string"
        }
      ]
    }
  ],
  "condition": {
    "groupingType": "string",
    "customLogic": "string",
    "scriptId": "string",
    "conditions": [
      {
        "created": "string",
        "modified": "string",
        "id": 0,
        "index": 0,
        "op": "string",
        "lhs": {
          "field": true,
          "dataType": "string",
          "value": [
            "string"
          ]
        },
        "rhs": {
          "field": true,
          "dataType": "string",
          "value": [
            "string"
          ]
        }
      }
    ]
  },
  "errors": {},
  "created": "string",
  "modified": "string",
  "id": 0,
  "lastModifiedBy": "string"
}

Parameters

Name In Type Required Description
ruleName path string true Rule Variable Name
body body object true none
» name body string false none
» variableName body string false none
» status body string false none
» description body string false none
» actions body [object] false none
»» type body string true none
»» created body string true none
»» modified body string true none
»» id body number true none
»» fieldVariableName body string true none
»» scriptId body string true none
»» variableName body string true none
»» visibilityType body string false none
»» message body string true none
»» messageType body string false none
»» color body string false none
»» icon body string false none
»» targetType body string false none
»» exclusionType body string true none
»» values body [string] true none
»» behavior body string true none
»» excludedOptionDisplayBehavior body string true none
»» messageScriptId body string true none
»» optionMapping body string true none
»» setReadOnly body boolean false none
»» overrideUserInput body boolean false none
»» showMessage body boolean false none
»» unionWithCurrentValue body boolean false none
»» clearValue body boolean false none
»» actionType body string false none
»» fieldObject body [any] false none
»» products body [object] false none
»»» id body string false none
»»» productId body string false none
»»» quantity body number false none
»»» bomType body string false none
»»» type body string false none
»»» productSellingModelId body string false none
»»» startDate body string false none
»»» endDate body string false none
»»» orderNumber body number false none
»»» uniqueIdentifier body string false none
»»» price body string false none
»»» description body string false none
»»» notes body string false none
» condition body object false none
»» groupingType body string false none
»» customLogic body string false none
»» scriptId body string false none
»» conditions body [object] false none
»»» created body string true none
»»» modified body string true none
»»» id body number true none
»»» index body number true none
»»» op body string true none
»»» lhs body object true none
»»»» field body boolean false none
»»»» dataType body string false none
»»»» value body [string] false none
»»» rhs body object true none
»»»» field body boolean false none
»»»» dataType body string false none
»»»» value body [string] false none
» errors body object false none
» created body string false none
» modified body string false none
» id body number false none
» lastModifiedBy body string false none

Example responses

200 Response

{
  "created": "2023-09-20T12:13:07.272753Z",
  "modified": "2023-09-20T12:16:39.780929819Z",
  "id": 10,
  "name": "new rule",
  "variableName": "newRule",
  "description": "basic desecription",
  "status": "active",
  "condition": {
    "groupingType": "all",
    "customLogic": null,
    "scriptId": null,
    "conditions": [
      {
        "created": "2023-09-20T12:16:39.771146134Z",
        "modified": "2023-09-20T12:16:39.771146134Z",
        "id": 35,
        "index": 1,
        "op": "not equals",
        "lhs": {
          "field": true,
          "dataType": "text",
          "value": [
            "psmPP.uniqueId"
          ]
        },
        "rhs": {
          "field": false,
          "dataType": "text",
          "value": []
        }
      },
      {
        "created": "2023-09-20T12:16:39.772262565Z",
        "modified": "2023-09-20T12:16:39.772262565Z",
        "id": 36,
        "index": 2,
        "op": "contains",
        "lhs": {
          "field": true,
          "dataType": "text",
          "value": [
            "sys.productId"
          ]
        },
        "rhs": {
          "field": false,
          "dataType": "text",
          "value": [
            "01t"
          ]
        }
      }
    ]
  },
  "actions": [
    {
      "type": "Visibility",
      "created": "2023-09-20T12:14:25.713005Z",
      "modified": "2023-09-20T12:14:25.713005Z",
      "id": 6,
      "fieldVariableName": "numWidgets",
      "scriptId": null,
      "variableName": "newRule_action_1",
      "visibilityType": "hide"
    },
    {
      "type": "Message",
      "created": "2023-09-20T12:14:51.812852Z",
      "modified": "2023-09-20T12:14:51.812852Z",
      "id": 7,
      "fieldVariableName": "sys.productPrice",
      "scriptId": null,
      "variableName": "newRule_action_2",
      "message": "This is the price",
      "messageType": "info",
      "color": "#0070d2",
      "icon": "info",
      "targetType": "field"
    },
    {
      "type": "Exclusion",
      "created": "2023-09-20T12:15:14.388705Z",
      "modified": "2023-09-20T12:16:39.780976395Z",
      "id": 8,
      "fieldVariableName": "psmPP",
      "scriptId": null,
      "variableName": "newRule_action_3",
      "exclusionType": "excluded",
      "values": [
        "a"
      ],
      "behavior": "ignore",
      "excludedOptionDisplayBehavior": "hidden",
      "message": null,
      "messageScriptId": null,
      "optionMapping": null
    }
  ],
  "lastModifiedBy": "scheck@sm1.logik.dev"
}

Responses

Status Meaning Description Schema
200 OK none Inline

Response Schema

Status Code 200

Name Type Required Restrictions Description
» created string false none none
» modified string false none none
» id number false none none
» name string false none none
» variableName string false none none
» description string false none none
» status string false none none
» condition object false none none
»» groupingType string false none none
»» customLogic string false none none
»» scriptId string false none none
»» conditions [object] false none none
»»» created string true none none
»»» modified string true none none
»»» id number true none none
»»» index number true none none
»»» op string true none none
»»» lhs object true none none
»»»» field boolean false none none
»»»» dataType string false none none
»»»» value [string] false none none
»»» rhs object true none none
»»»» field boolean false none none
»»»» dataType string false none none
»»»» value [string] false none none
» actions [object] false none none
»» type string true none none
»» created string true none none
»» modified string true none none
»» id number true none none
»» fieldVariableName string true none none
»» scriptId string true none none
»» variableName string true none none
»» visibilityType string false none none
»» message string true none none
»» messageType string false none none
»» color string false none none
»» icon string false none none
»» targetType string false none none
»» exclusionType string false none none
»» values [string] false none none
»» behavior string false none none
»» excludedOptionDisplayBehavior string false none none
»» messageScriptId string false none none
»» optionMapping string false none none
» lastModifiedBy string false none none

Bulk Delete Rules

Code samples

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.post('https://{tenant}.{sector}.logik.io/api/admin/v1/bulk/rules/delete', headers = headers)

print(r.json())

const inputBody = '[
  {
    "variableName": "string"
  }
]';
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'
};

fetch('https://{tenant}.{sector}.logik.io/api/admin/v1/bulk/rules/delete',
{
  method: 'POST',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

const fetch = require('node-fetch');
const inputBody = [
  {
    "variableName": "string"
  }
];
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'
};

fetch('https://{tenant}.{sector}.logik.io/api/admin/v1/bulk/rules/delete',
{
  method: 'POST',
  body: JSON.stringify(inputBody),
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

# You can also use wget
curl -X POST https://{tenant}.{sector}.logik.io/api/admin/v1/bulk/rules/delete \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

POST https://{tenant}.{sector}.logik.io/api/admin/v1/bulk/rules/delete HTTP/1.1

Content-Type: application/json
Accept: application/json

URL obj = new URL("https://{tenant}.{sector}.logik.io/api/admin/v1/bulk/rules/delete");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Accept' => 'application/json',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.post 'https://{tenant}.{sector}.logik.io/api/admin/v1/bulk/rules/delete',
  params: {
  }, headers: headers

p JSON.parse(result)

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/json"},
        "Authorization": []string{"Bearer {access-token}"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "https://{tenant}.{sector}.logik.io/api/admin/v1/bulk/rules/delete", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

POST /api/admin/v1/bulk/rules/delete

Body parameter

[
  {
    "variableName": "string"
  }
]

Parameters

Name In Type Required Description
body body array[object] true none

Example responses

200 Response

{
  "count": 1,
  "records": [
    {
      "num": 1,
      "success": true,
      "created": false,
      "identifier": "msgaboveField"
    }
  ]
}

Responses

Status Meaning Description Schema
200 OK none Inline

Response Schema

Status Code 200

Name Type Required Restrictions Description
» count number false none none
» records [object] false none none
»» num number false none none
»» success boolean false none none
»» created boolean false none none
»» identifier string false none none

Clone Rule

Code samples

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.post('https://{tenant}.{sector}.logik.io/api/admin/v1/rules/{ruleName}/saveAs', headers = headers)

print(r.json())

const inputBody = '{
  "name": "string",
  "variableName": "string"
}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'
};

fetch('https://{tenant}.{sector}.logik.io/api/admin/v1/rules/{ruleName}/saveAs',
{
  method: 'POST',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

const fetch = require('node-fetch');
const inputBody = {
  "name": "string",
  "variableName": "string"
};
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'
};

fetch('https://{tenant}.{sector}.logik.io/api/admin/v1/rules/{ruleName}/saveAs',
{
  method: 'POST',
  body: JSON.stringify(inputBody),
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

# You can also use wget
curl -X POST https://{tenant}.{sector}.logik.io/api/admin/v1/rules/{ruleName}/saveAs \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

POST https://{tenant}.{sector}.logik.io/api/admin/v1/rules/{ruleName}/saveAs HTTP/1.1

Content-Type: application/json
Accept: application/json

URL obj = new URL("https://{tenant}.{sector}.logik.io/api/admin/v1/rules/{ruleName}/saveAs");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Accept' => 'application/json',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.post 'https://{tenant}.{sector}.logik.io/api/admin/v1/rules/{ruleName}/saveAs',
  params: {
  }, headers: headers

p JSON.parse(result)

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/json"},
        "Authorization": []string{"Bearer {access-token}"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "https://{tenant}.{sector}.logik.io/api/admin/v1/rules/{ruleName}/saveAs", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

POST /api/admin/v1/rules/{ruleName}/saveAs

Make a copy of the rule (from the path parameter) and related conditions and actions.

Body parameter

{
  "name": "string",
  "variableName": "string"
}

Parameters

Name In Type Required Description
ruleName path string true Rule Variable Name
body body object true none
» name body string false none
» variableName body string false none

Example responses

201 Response

{
  "name": "advHierarchyQtyScale_2",
  "variableName": "advHierarchyQtyScale_2",
  "id": 12
}

Responses

Status Meaning Description Schema
201 Created none Inline

Response Schema

Status Code 201

Name Type Required Restrictions Description
» name string false none none
» variableName string false none none
» id integer false none none

Rules > Related

Related items for rules

Code samples

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.get('https://{tenant}.{sector}.logik.io/api/admin/v2/rules/{ruleName}/fields', headers = headers)

print(r.json())


const headers = {
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'
};

fetch('https://{tenant}.{sector}.logik.io/api/admin/v2/rules/{ruleName}/fields',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'
};

fetch('https://{tenant}.{sector}.logik.io/api/admin/v2/rules/{ruleName}/fields',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

# You can also use wget
curl -X GET https://{tenant}.{sector}.logik.io/api/admin/v2/rules/{ruleName}/fields \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

GET https://{tenant}.{sector}.logik.io/api/admin/v2/rules/{ruleName}/fields HTTP/1.1

Accept: application/json

URL obj = new URL("https://{tenant}.{sector}.logik.io/api/admin/v2/rules/{ruleName}/fields");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/json',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.get 'https://{tenant}.{sector}.logik.io/api/admin/v2/rules/{ruleName}/fields',
  params: {
  }, headers: headers

p JSON.parse(result)

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        "Authorization": []string{"Bearer {access-token}"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "https://{tenant}.{sector}.logik.io/api/admin/v2/rules/{ruleName}/fields", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

GET /api/admin/v2/rules/{ruleName}/fields

Get Fields related to the Rule

Name In Type Required Description
ruleName path string true Rule Variable Name

Example responses

200 Response

{
  "content": [
    {
      "id": 2,
      "name": "Product Id (System)",
      "variableName": "sys.productId",
      "description": "System Field for the Id of the Configured Product",
      "type": "Text",
      "modified": "2000-01-01T00:00:00Z",
      "category": "SYSTEM",
      "lastModifiedBy": null
    },
    {
      "id": 4,
      "name": "Product Price (System)",
      "variableName": "sys.productPrice",
      "description": "System Field for the Base Price of the Configured Product",
      "type": "Number",
      "modified": "2000-01-01T00:00:00Z",
      "category": "SYSTEM",
      "lastModifiedBy": null
    },
    {
      "id": 56,
      "name": "uniqueId",
      "variableName": "psmPP.uniqueId",
      "description": null,
      "type": "Text",
      "modified": "2023-07-21T17:55:30.202817Z",
      "category": "PICKER_SUBFIELD",
      "lastModifiedBy": null
    }
  ],
  "pageable": {
    "sort": {
      "empty": true,
      "unsorted": true,
      "sorted": false
    },
    "offset": 0,
    "pageNumber": 0,
    "pageSize": 10,
    "paged": true,
    "unpaged": false
  },
  "last": true,
  "totalPages": 1,
  "totalElements": 6,
  "size": 10,
  "number": 0,
  "sort": {
    "empty": true,
    "unsorted": true,
    "sorted": false
  },
  "numberOfElements": 6,
  "first": true,
  "empty": false
}
Status Meaning Description Schema
200 OK none RelatedFieldsResponse

Code samples

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.get('https://{tenant}.{sector}.logik.io/api/admin/v2/rules/{ruleName}/blueprints', headers = headers)

print(r.json())


const headers = {
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'
};

fetch('https://{tenant}.{sector}.logik.io/api/admin/v2/rules/{ruleName}/blueprints',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'
};

fetch('https://{tenant}.{sector}.logik.io/api/admin/v2/rules/{ruleName}/blueprints',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

# You can also use wget
curl -X GET https://{tenant}.{sector}.logik.io/api/admin/v2/rules/{ruleName}/blueprints \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

GET https://{tenant}.{sector}.logik.io/api/admin/v2/rules/{ruleName}/blueprints HTTP/1.1

Accept: application/json

URL obj = new URL("https://{tenant}.{sector}.logik.io/api/admin/v2/rules/{ruleName}/blueprints");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/json',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.get 'https://{tenant}.{sector}.logik.io/api/admin/v2/rules/{ruleName}/blueprints',
  params: {
  }, headers: headers

p JSON.parse(result)

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        "Authorization": []string{"Bearer {access-token}"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "https://{tenant}.{sector}.logik.io/api/admin/v2/rules/{ruleName}/blueprints", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

GET /api/admin/v2/rules/{ruleName}/blueprints

Get Blueprints related to the rule

Name In Type Required Description
ruleName path string true Rule Variable Name

Example responses

200 Response

{
  "content": [
    {
      "id": 1,
      "name": "psmTester",
      "variableName": "psmTester",
      "description": "",
      "modified": "2023-09-08T20:54:24.225681Z",
      "lastModifiedBy": "scheck@sm1.logik.dev"
    }
  ],
  "pageable": {
    "sort": {
      "empty": true,
      "unsorted": true,
      "sorted": false
    },
    "offset": 0,
    "pageNumber": 0,
    "pageSize": 10,
    "paged": true,
    "unpaged": false
  },
  "last": true,
  "totalPages": 1,
  "totalElements": 1,
  "size": 10,
  "number": 0,
  "sort": {
    "empty": true,
    "unsorted": true,
    "sorted": false
  },
  "numberOfElements": 1,
  "first": true,
  "empty": false
}
Status Meaning Description Schema
200 OK none RelatedBlueprintsResponse

Code samples

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.get('https://{tenant}.{sector}.logik.io/api/admin/v2/rules/{ruleName}/configurableProducts', headers = headers)

print(r.json())


const headers = {
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'
};

fetch('https://{tenant}.{sector}.logik.io/api/admin/v2/rules/{ruleName}/configurableProducts',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'
};

fetch('https://{tenant}.{sector}.logik.io/api/admin/v2/rules/{ruleName}/configurableProducts',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

# You can also use wget
curl -X GET https://{tenant}.{sector}.logik.io/api/admin/v2/rules/{ruleName}/configurableProducts \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

GET https://{tenant}.{sector}.logik.io/api/admin/v2/rules/{ruleName}/configurableProducts HTTP/1.1

Accept: application/json

URL obj = new URL("https://{tenant}.{sector}.logik.io/api/admin/v2/rules/{ruleName}/configurableProducts");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/json',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.get 'https://{tenant}.{sector}.logik.io/api/admin/v2/rules/{ruleName}/configurableProducts',
  params: {
  }, headers: headers

p JSON.parse(result)

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        "Authorization": []string{"Bearer {access-token}"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "https://{tenant}.{sector}.logik.io/api/admin/v2/rules/{ruleName}/configurableProducts", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

GET /api/admin/v2/rules/{ruleName}/configurableProducts

Get Configurable Products related to the rule

Name In Type Required Description
ruleName path string true Rule Variable Name

Example responses

200 Response

{
  "content": [
    {
      "created": "2023-06-14T14:55:49.699022Z",
      "modified": "2023-06-21T22:23:09.801284Z",
      "id": 3,
      "name": "UniqueLinesConfig",
      "blueprintVariableName": "pCBuilder",
      "partnerProductId": "01t6e000009bzMuAAI"
    }
  ],
  "pageable": {
    "sort": {
      "empty": false,
      "sorted": true,
      "unsorted": false
    },
    "offset": 0,
    "pageNumber": 0,
    "pageSize": 100,
    "paged": true,
    "unpaged": false
  },
  "totalPages": 1,
  "last": true,
  "totalElements": 1,
  "size": 100,
  "number": 0,
  "sort": {
    "empty": false,
    "sorted": true,
    "unsorted": false
  },
  "numberOfElements": 1,
  "first": true,
  "empty": false
}
Status Meaning Description Schema
200 OK none RelatedConfigProductsResponse

Managed Tables

Listing all Tables and working with indiviudal Tables

List All Tables

Code samples

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.get('https://{tenant}.{sector}.logik.io/api/managedTables/v1/managedTables', headers = headers)

print(r.json())


const headers = {
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'
};

fetch('https://{tenant}.{sector}.logik.io/api/managedTables/v1/managedTables',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'
};

fetch('https://{tenant}.{sector}.logik.io/api/managedTables/v1/managedTables',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

# You can also use wget
curl -X GET https://{tenant}.{sector}.logik.io/api/managedTables/v1/managedTables \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

GET https://{tenant}.{sector}.logik.io/api/managedTables/v1/managedTables HTTP/1.1

Accept: application/json

URL obj = new URL("https://{tenant}.{sector}.logik.io/api/managedTables/v1/managedTables");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/json',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.get 'https://{tenant}.{sector}.logik.io/api/managedTables/v1/managedTables',
  params: {
  }, headers: headers

p JSON.parse(result)

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        "Authorization": []string{"Bearer {access-token}"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "https://{tenant}.{sector}.logik.io/api/managedTables/v1/managedTables", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

GET /api/managedTables/v1/managedTables

Example responses

200 Response

{
  "content": [
    {
      "dateCreated": "2023-05-30T21:19:32.650Z",
      "dateModified": "2023-05-30T21:19:55.210Z",
      "lastModifiedBy": "NO_USER_ID",
      "name": "packersTable",
      "columns": [
        {
          "name": "a",
          "type": "text",
          "description": "",
          "orderNumber": 1
        },
        {
          "name": "b",
          "type": "text",
          "description": "",
          "orderNumber": 2
        }
      ],
      "description": ""
    },
    {
      "dateCreated": "2023-05-31T02:34:32.749Z",
      "dateModified": "2023-05-31T02:34:32.749Z",
      "lastModifiedBy": "NO_USER_ID",
      "name": "shapes",
      "columns": [
        {
          "name": "sides",
          "type": "number",
          "description": "",
          "orderNumber": 1
        },
        {
          "name": "shape",
          "type": "text",
          "description": "",
          "orderNumber": 2
        }
      ],
      "description": ""
    }
  ],
  "pageable": {
    "sort": {
      "empty": false,
      "unsorted": false,
      "sorted": true
    },
    "offset": 0,
    "pageNumber": 0,
    "pageSize": 100,
    "paged": true,
    "unpaged": false
  },
  "totalPages": 1,
  "totalElements": 2,
  "last": true,
  "size": 100,
  "number": 0,
  "sort": {
    "empty": false,
    "unsorted": false,
    "sorted": true
  },
  "first": true,
  "numberOfElements": 2,
  "empty": false
}

400 Response

{
  "errorCode": "LGK-7A407E7202264005AD03A14D9",
  "errorMessage": "Rows must not be empty.",
  "timestamp": "2023-05-31T02:08:58.235882682Z"
}

404 Response

{
  "errorCode": "LGK-C2BD5E131995442CABF255BCD",
  "errorMessage": "LOGIK_OBJECT 'OBJECT_VARIABLE_NAME' was not found.",
  "timestamp": "2023-05-31T02:07:58.447433023Z"
}

5XX Response

{
  "errorCode": "LGK-82DB4CF583054DF0930EDE9BE",
  "errorMessage": "An unexpected error occurred.",
  "timestamp": "2023-05-31T02:42:40.087287033Z"
}

Responses

Status Meaning Description Schema
200 OK Successful response ManagedTableResponse
400 Bad Request Bad request. See errorMessage for additional details. ErrorResponse
401 Unauthorized Authorization information is missing or invalid. None
403 Forbidden Credentials are valid but insufficient privileges to perform the action on the resource. None
404 Not Found Resource was not found. See errorMessage for additional details. ErrorResponse
5XX Unknown Unexpected Server Error. ErrorResponse

Create a new Table

Code samples

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.post('https://{tenant}.{sector}.logik.io/api/managedTables/v1/managedTables', headers = headers)

print(r.json())

const inputBody = '{
  "name": "string",
  "description": "string",
  "columns": [
    {
      "name": "string",
      "type": "text",
      "description": "string"
    }
  ]
}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'
};

fetch('https://{tenant}.{sector}.logik.io/api/managedTables/v1/managedTables',
{
  method: 'POST',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

const fetch = require('node-fetch');
const inputBody = {
  "name": "string",
  "description": "string",
  "columns": [
    {
      "name": "string",
      "type": "text",
      "description": "string"
    }
  ]
};
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'
};

fetch('https://{tenant}.{sector}.logik.io/api/managedTables/v1/managedTables',
{
  method: 'POST',
  body: JSON.stringify(inputBody),
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

# You can also use wget
curl -X POST https://{tenant}.{sector}.logik.io/api/managedTables/v1/managedTables \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

POST https://{tenant}.{sector}.logik.io/api/managedTables/v1/managedTables HTTP/1.1

Content-Type: application/json
Accept: application/json

URL obj = new URL("https://{tenant}.{sector}.logik.io/api/managedTables/v1/managedTables");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Accept' => 'application/json',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.post 'https://{tenant}.{sector}.logik.io/api/managedTables/v1/managedTables',
  params: {
  }, headers: headers

p JSON.parse(result)

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/json"},
        "Authorization": []string{"Bearer {access-token}"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "https://{tenant}.{sector}.logik.io/api/managedTables/v1/managedTables", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

POST /api/managedTables/v1/managedTables

Body parameter

{
  "name": "string",
  "description": "string",
  "columns": [
    {
      "name": "string",
      "type": "text",
      "description": "string"
    }
  ]
}

Parameters

Name In Type Required Description
body body ManagedTableCreatePayload false none

Example responses

201 Response

{
  "dateCreated": "string",
  "dateModified": "string",
  "lastModifiedBy": "string",
  "name": "string",
  "columns": [
    {
      "name": "string",
      "type": "text",
      "description": "string",
      "orderNumber": 0
    }
  ],
  "description": "string"
}

400 Response

{
  "errorCode": "LGK-7A407E7202264005AD03A14D9",
  "errorMessage": "Rows must not be empty.",
  "timestamp": "2023-05-31T02:08:58.235882682Z"
}

404 Response

{
  "errorCode": "LGK-C2BD5E131995442CABF255BCD",
  "errorMessage": "LOGIK_OBJECT 'OBJECT_VARIABLE_NAME' was not found.",
  "timestamp": "2023-05-31T02:07:58.447433023Z"
}

5XX Response

{
  "errorCode": "LGK-82DB4CF583054DF0930EDE9BE",
  "errorMessage": "An unexpected error occurred.",
  "timestamp": "2023-05-31T02:42:40.087287033Z"
}

Responses

Status Meaning Description Schema
201 Created Successful response ManagedTableCreateResponse
400 Bad Request Bad request. See errorMessage for additional details. ErrorResponse
401 Unauthorized Authorization information is missing or invalid. None
403 Forbidden Credentials are valid but insufficient privileges to perform the action on the resource. None
404 Not Found Resource was not found. See errorMessage for additional details. ErrorResponse
5XX Unknown Unexpected Server Error. ErrorResponse

Get Table Data and Metadata

Code samples

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.get('https://{tenant}.{sector}.logik.io/api/managedTables/v2/managedTables/{tableName}', headers = headers)

print(r.json())


const headers = {
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'
};

fetch('https://{tenant}.{sector}.logik.io/api/managedTables/v2/managedTables/{tableName}',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'
};

fetch('https://{tenant}.{sector}.logik.io/api/managedTables/v2/managedTables/{tableName}',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

# You can also use wget
curl -X GET https://{tenant}.{sector}.logik.io/api/managedTables/v2/managedTables/{tableName} \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

GET https://{tenant}.{sector}.logik.io/api/managedTables/v2/managedTables/{tableName} HTTP/1.1

Accept: application/json

URL obj = new URL("https://{tenant}.{sector}.logik.io/api/managedTables/v2/managedTables/{tableName}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/json',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.get 'https://{tenant}.{sector}.logik.io/api/managedTables/v2/managedTables/{tableName}',
  params: {
  }, headers: headers

p JSON.parse(result)

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        "Authorization": []string{"Bearer {access-token}"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "https://{tenant}.{sector}.logik.io/api/managedTables/v2/managedTables/{tableName}", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

GET /api/managedTables/v2/managedTables/{tableName}

Parameters

Name In Type Required Description
tableName path string true Variable name of the Managed Table

Example responses

200 Response

{
  "content": [
    {
      "DATE_MODIFIED": "string",
      "DATE_CREATED": "string",
      "ID": 0,
      "additionalProperties": "string"
    }
  ],
  "pageable": {
    "sort": {
      "empty": true,
      "unsorted": true,
      "sorted": true
    },
    "offset": 0,
    "pageNumber": 0,
    "pageSize": 0,
    "paged": true,
    "unpaged": true
  },
  "totalPages": 0,
  "totalElements": 0,
  "last": true,
  "size": 0,
  "number": 0,
  "sort": {
    "empty": true,
    "unsorted": true,
    "sorted": true
  },
  "first": true,
  "numberOfElements": 0,
  "empty": true
}

400 Response

{
  "errorCode": "LGK-7A407E7202264005AD03A14D9",
  "errorMessage": "Rows must not be empty.",
  "timestamp": "2023-05-31T02:08:58.235882682Z"
}

404 Response

{
  "errorCode": "LGK-C2BD5E131995442CABF255BCD",
  "errorMessage": "LOGIK_OBJECT 'OBJECT_VARIABLE_NAME' was not found.",
  "timestamp": "2023-05-31T02:07:58.447433023Z"
}

5XX Response

{
  "errorCode": "LGK-82DB4CF583054DF0930EDE9BE",
  "errorMessage": "An unexpected error occurred.",
  "timestamp": "2023-05-31T02:42:40.087287033Z"
}

Responses

Status Meaning Description Schema
200 OK Successful response TableResponse
400 Bad Request Bad request. See errorMessage for additional details. ErrorResponse
401 Unauthorized Authorization information is missing or invalid. None
403 Forbidden Credentials are valid but insufficient privileges to perform the action on the resource. None
404 Not Found Resource was not found. See errorMessage for additional details. ErrorResponse
5XX Unknown Unexpected Server Error. ErrorResponse

Delete Table

Code samples

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.delete('https://{tenant}.{sector}.logik.io/api/managedTables/v2/managedTables/{tableName}', headers = headers)

print(r.json())


const headers = {
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'
};

fetch('https://{tenant}.{sector}.logik.io/api/managedTables/v2/managedTables/{tableName}',
{
  method: 'DELETE',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'
};

fetch('https://{tenant}.{sector}.logik.io/api/managedTables/v2/managedTables/{tableName}',
{
  method: 'DELETE',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

# You can also use wget
curl -X DELETE https://{tenant}.{sector}.logik.io/api/managedTables/v2/managedTables/{tableName} \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

DELETE https://{tenant}.{sector}.logik.io/api/managedTables/v2/managedTables/{tableName} HTTP/1.1

Accept: application/json

URL obj = new URL("https://{tenant}.{sector}.logik.io/api/managedTables/v2/managedTables/{tableName}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("DELETE");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/json',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.delete 'https://{tenant}.{sector}.logik.io/api/managedTables/v2/managedTables/{tableName}',
  params: {
  }, headers: headers

p JSON.parse(result)

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        "Authorization": []string{"Bearer {access-token}"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("DELETE", "https://{tenant}.{sector}.logik.io/api/managedTables/v2/managedTables/{tableName}", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

DELETE /api/managedTables/v2/managedTables/{tableName}

Parameters

Name In Type Required Description
tableName path string true Variable name of the Managed Table

Example responses

400 Response

{
  "errorCode": "LGK-7A407E7202264005AD03A14D9",
  "errorMessage": "Rows must not be empty.",
  "timestamp": "2023-05-31T02:08:58.235882682Z"
}

404 Response

{
  "errorCode": "LGK-C2BD5E131995442CABF255BCD",
  "errorMessage": "LOGIK_OBJECT 'OBJECT_VARIABLE_NAME' was not found.",
  "timestamp": "2023-05-31T02:07:58.447433023Z"
}

5XX Response

{
  "errorCode": "LGK-82DB4CF583054DF0930EDE9BE",
  "errorMessage": "An unexpected error occurred.",
  "timestamp": "2023-05-31T02:42:40.087287033Z"
}

Responses

Status Meaning Description Schema
204 No Content Successful response None
400 Bad Request Bad request. See errorMessage for additional details. ErrorResponse
401 Unauthorized Authorization information is missing or invalid. None
403 Forbidden Credentials are valid but insufficient privileges to perform the action on the resource. None
404 Not Found Resource was not found. See errorMessage for additional details. ErrorResponse
5XX Unknown Unexpected Server Error. ErrorResponse

Managed Tables > Metadata

Working with Table Metadata

Get Table Metadata

Code samples

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.get('https://{tenant}.{sector}.logik.io/api/managedTables/v1/managedTables/{tableName}/metadata', headers = headers)

print(r.json())


const headers = {
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'
};

fetch('https://{tenant}.{sector}.logik.io/api/managedTables/v1/managedTables/{tableName}/metadata',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'
};

fetch('https://{tenant}.{sector}.logik.io/api/managedTables/v1/managedTables/{tableName}/metadata',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

# You can also use wget
curl -X GET https://{tenant}.{sector}.logik.io/api/managedTables/v1/managedTables/{tableName}/metadata \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

GET https://{tenant}.{sector}.logik.io/api/managedTables/v1/managedTables/{tableName}/metadata HTTP/1.1

Accept: application/json

URL obj = new URL("https://{tenant}.{sector}.logik.io/api/managedTables/v1/managedTables/{tableName}/metadata");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/json',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.get 'https://{tenant}.{sector}.logik.io/api/managedTables/v1/managedTables/{tableName}/metadata',
  params: {
  }, headers: headers

p JSON.parse(result)

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        "Authorization": []string{"Bearer {access-token}"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "https://{tenant}.{sector}.logik.io/api/managedTables/v1/managedTables/{tableName}/metadata", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

GET /api/managedTables/v1/managedTables/{tableName}/metadata

Parameters

Name In Type Required Description
tableName path string true Variable name of the Managed Table

Example responses

200 Response

{
  "dateCreated": "string",
  "dateModified": "string",
  "lastModifiedBy": "string",
  "name": "string",
  "columns": [
    {
      "name": "string",
      "type": "text",
      "description": "string",
      "orderNumber": 0
    }
  ],
  "description": "string"
}

400 Response

{
  "errorCode": "LGK-7A407E7202264005AD03A14D9",
  "errorMessage": "Rows must not be empty.",
  "timestamp": "2023-05-31T02:08:58.235882682Z"
}

404 Response

{
  "errorCode": "LGK-C2BD5E131995442CABF255BCD",
  "errorMessage": "LOGIK_OBJECT 'OBJECT_VARIABLE_NAME' was not found.",
  "timestamp": "2023-05-31T02:07:58.447433023Z"
}

5XX Response

{
  "errorCode": "LGK-82DB4CF583054DF0930EDE9BE",
  "errorMessage": "An unexpected error occurred.",
  "timestamp": "2023-05-31T02:42:40.087287033Z"
}

Responses

Status Meaning Description Schema
200 OK Successful response ManagedTableCreateResponse
400 Bad Request Bad request. See errorMessage for additional details. ErrorResponse
401 Unauthorized Authorization information is missing or invalid. None
403 Forbidden Credentials are valid but insufficient privileges to perform the action on the resource. None
404 Not Found Resource was not found. See errorMessage for additional details. ErrorResponse
5XX Unknown Unexpected Server Error. ErrorResponse

Update Table Metadata

Code samples

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.patch('https://{tenant}.{sector}.logik.io/api/managedTables/v1/managedTables/{tableName}/metadata/columns', headers = headers)

print(r.json())

const inputBody = '{
  "deleted": [
    "string"
  ],
  "added": [
    {
      "name": "string",
      "type": "text",
      "description": "string",
      "orderNumber": 0
    }
  ]
}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'
};

fetch('https://{tenant}.{sector}.logik.io/api/managedTables/v1/managedTables/{tableName}/metadata/columns',
{
  method: 'PATCH',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

const fetch = require('node-fetch');
const inputBody = {
  "deleted": [
    "string"
  ],
  "added": [
    {
      "name": "string",
      "type": "text",
      "description": "string",
      "orderNumber": 0
    }
  ]
};
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'
};

fetch('https://{tenant}.{sector}.logik.io/api/managedTables/v1/managedTables/{tableName}/metadata/columns',
{
  method: 'PATCH',
  body: JSON.stringify(inputBody),
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

# You can also use wget
curl -X PATCH https://{tenant}.{sector}.logik.io/api/managedTables/v1/managedTables/{tableName}/metadata/columns \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

PATCH https://{tenant}.{sector}.logik.io/api/managedTables/v1/managedTables/{tableName}/metadata/columns HTTP/1.1

Content-Type: application/json
Accept: application/json

URL obj = new URL("https://{tenant}.{sector}.logik.io/api/managedTables/v1/managedTables/{tableName}/metadata/columns");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("PATCH");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Accept' => 'application/json',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.patch 'https://{tenant}.{sector}.logik.io/api/managedTables/v1/managedTables/{tableName}/metadata/columns',
  params: {
  }, headers: headers

p JSON.parse(result)

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/json"},
        "Authorization": []string{"Bearer {access-token}"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("PATCH", "https://{tenant}.{sector}.logik.io/api/managedTables/v1/managedTables/{tableName}/metadata/columns", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

PATCH /api/managedTables/v1/managedTables/{tableName}/metadata/columns

Add / Remove Table Metadata Column(s)

Body parameter

{
  "deleted": [
    "string"
  ],
  "added": [
    {
      "name": "string",
      "type": "text",
      "description": "string",
      "orderNumber": 0
    }
  ]
}

Parameters

Name In Type Required Description
tableName path string true Variable name of the Managed Table
body body MetadataPatch false none

Example responses

400 Response

{
  "errorCode": "LGK-7A407E7202264005AD03A14D9",
  "errorMessage": "Rows must not be empty.",
  "timestamp": "2023-05-31T02:08:58.235882682Z"
}

404 Response

{
  "errorCode": "LGK-C2BD5E131995442CABF255BCD",
  "errorMessage": "LOGIK_OBJECT 'OBJECT_VARIABLE_NAME' was not found.",
  "timestamp": "2023-05-31T02:07:58.447433023Z"
}

5XX Response

{
  "errorCode": "LGK-82DB4CF583054DF0930EDE9BE",
  "errorMessage": "An unexpected error occurred.",
  "timestamp": "2023-05-31T02:42:40.087287033Z"
}

Responses

Status Meaning Description Schema
202 Accepted Successful response None
400 Bad Request Bad request. See errorMessage for additional details. ErrorResponse
401 Unauthorized Authorization information is missing or invalid. None
403 Forbidden Credentials are valid but insufficient privileges to perform the action on the resource. None
404 Not Found Resource was not found. See errorMessage for additional details. ErrorResponse
5XX Unknown Unexpected Server Error. ErrorResponse

Delete Table Metadata

Code samples

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.delete('https://{tenant}.{sector}.logik.io/api/managedTables/v1/managedTables/{tableName}/metadata/columns/{columnName}', headers = headers)

print(r.json())


const headers = {
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'
};

fetch('https://{tenant}.{sector}.logik.io/api/managedTables/v1/managedTables/{tableName}/metadata/columns/{columnName}',
{
  method: 'DELETE',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'
};

fetch('https://{tenant}.{sector}.logik.io/api/managedTables/v1/managedTables/{tableName}/metadata/columns/{columnName}',
{
  method: 'DELETE',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

# You can also use wget
curl -X DELETE https://{tenant}.{sector}.logik.io/api/managedTables/v1/managedTables/{tableName}/metadata/columns/{columnName} \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

DELETE https://{tenant}.{sector}.logik.io/api/managedTables/v1/managedTables/{tableName}/metadata/columns/{columnName} HTTP/1.1

Accept: application/json

URL obj = new URL("https://{tenant}.{sector}.logik.io/api/managedTables/v1/managedTables/{tableName}/metadata/columns/{columnName}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("DELETE");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/json',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.delete 'https://{tenant}.{sector}.logik.io/api/managedTables/v1/managedTables/{tableName}/metadata/columns/{columnName}',
  params: {
  }, headers: headers

p JSON.parse(result)

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        "Authorization": []string{"Bearer {access-token}"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("DELETE", "https://{tenant}.{sector}.logik.io/api/managedTables/v1/managedTables/{tableName}/metadata/columns/{columnName}", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

DELETE /api/managedTables/v1/managedTables/{tableName}/metadata/columns/{columnName}

Parameters

Name In Type Required Description
tableName path string true Variable name of the Managed Table
columnName path string true Name of the Column in the Managed Table

Example responses

400 Response

{
  "errorCode": "LGK-7A407E7202264005AD03A14D9",
  "errorMessage": "Rows must not be empty.",
  "timestamp": "2023-05-31T02:08:58.235882682Z"
}

404 Response

{
  "errorCode": "LGK-C2BD5E131995442CABF255BCD",
  "errorMessage": "LOGIK_OBJECT 'OBJECT_VARIABLE_NAME' was not found.",
  "timestamp": "2023-05-31T02:07:58.447433023Z"
}

5XX Response

{
  "errorCode": "LGK-82DB4CF583054DF0930EDE9BE",
  "errorMessage": "An unexpected error occurred.",
  "timestamp": "2023-05-31T02:42:40.087287033Z"
}

Responses

Status Meaning Description Schema
204 No Content Successful response None
400 Bad Request Bad request. See errorMessage for additional details. ErrorResponse
401 Unauthorized Authorization information is missing or invalid. None
403 Forbidden Credentials are valid but insufficient privileges to perform the action on the resource. None
404 Not Found Resource was not found. See errorMessage for additional details. ErrorResponse
5XX Unknown Unexpected Server Error. ErrorResponse

Managed Tables > Table Rows

Working with individual Table Rows

Create Table Data Row

Code samples

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.post('https://{tenant}.{sector}.logik.io/api/managedTables/v1/managedTables/{tableName}', headers = headers)

print(r.json())

const inputBody = '{
  "rows": [
    {
      "property1": "string",
      "property2": "string"
    }
  ]
}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'
};

fetch('https://{tenant}.{sector}.logik.io/api/managedTables/v1/managedTables/{tableName}',
{
  method: 'POST',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

const fetch = require('node-fetch');
const inputBody = {
  "rows": [
    {
      "property1": "string",
      "property2": "string"
    }
  ]
};
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'
};

fetch('https://{tenant}.{sector}.logik.io/api/managedTables/v1/managedTables/{tableName}',
{
  method: 'POST',
  body: JSON.stringify(inputBody),
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

# You can also use wget
curl -X POST https://{tenant}.{sector}.logik.io/api/managedTables/v1/managedTables/{tableName} \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

POST https://{tenant}.{sector}.logik.io/api/managedTables/v1/managedTables/{tableName} HTTP/1.1

Content-Type: application/json
Accept: application/json

URL obj = new URL("https://{tenant}.{sector}.logik.io/api/managedTables/v1/managedTables/{tableName}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Accept' => 'application/json',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.post 'https://{tenant}.{sector}.logik.io/api/managedTables/v1/managedTables/{tableName}',
  params: {
  }, headers: headers

p JSON.parse(result)

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/json"},
        "Authorization": []string{"Bearer {access-token}"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "https://{tenant}.{sector}.logik.io/api/managedTables/v1/managedTables/{tableName}", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

POST /api/managedTables/v1/managedTables/{tableName}

Add new row(s) to Table

Body parameter

{
  "rows": [
    {
      "property1": "string",
      "property2": "string"
    }
  ]
}

Parameters

Name In Type Required Description
tableName path string true Variable name of the Managed Table
body body object false none
» rows body [object] false none
»» additionalProperties body string false none

Example responses

201 Response

{
  "rows": [
    {
      "ID": 0,
      "additionalProperties": "string"
    }
  ]
}

400 Response

{
  "errorCode": "LGK-7A407E7202264005AD03A14D9",
  "errorMessage": "Rows must not be empty.",
  "timestamp": "2023-05-31T02:08:58.235882682Z"
}

404 Response

{
  "errorCode": "LGK-C2BD5E131995442CABF255BCD",
  "errorMessage": "LOGIK_OBJECT 'OBJECT_VARIABLE_NAME' was not found.",
  "timestamp": "2023-05-31T02:07:58.447433023Z"
}

5XX Response

{
  "errorCode": "LGK-82DB4CF583054DF0930EDE9BE",
  "errorMessage": "An unexpected error occurred.",
  "timestamp": "2023-05-31T02:42:40.087287033Z"
}

Responses

Status Meaning Description Schema
201 Created Successful response ColumnPatch
400 Bad Request Bad request. See errorMessage for additional details. ErrorResponse
401 Unauthorized Authorization information is missing or invalid. None
403 Forbidden Credentials are valid but insufficient privileges to perform the action on the resource. None
404 Not Found Resource was not found. See errorMessage for additional details. ErrorResponse
5XX Unknown Unexpected Server Error. ErrorResponse

Get Table Data Row

Code samples

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.get('https://{tenant}.{sector}.logik.io/api/managedTables/v1/managedTables/{tableName}/{rowId}', headers = headers)

print(r.json())


const headers = {
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'
};

fetch('https://{tenant}.{sector}.logik.io/api/managedTables/v1/managedTables/{tableName}/{rowId}',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'
};

fetch('https://{tenant}.{sector}.logik.io/api/managedTables/v1/managedTables/{tableName}/{rowId}',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

# You can also use wget
curl -X GET https://{tenant}.{sector}.logik.io/api/managedTables/v1/managedTables/{tableName}/{rowId} \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

GET https://{tenant}.{sector}.logik.io/api/managedTables/v1/managedTables/{tableName}/{rowId} HTTP/1.1

Accept: application/json

URL obj = new URL("https://{tenant}.{sector}.logik.io/api/managedTables/v1/managedTables/{tableName}/{rowId}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/json',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.get 'https://{tenant}.{sector}.logik.io/api/managedTables/v1/managedTables/{tableName}/{rowId}',
  params: {
  }, headers: headers

p JSON.parse(result)

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        "Authorization": []string{"Bearer {access-token}"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "https://{tenant}.{sector}.logik.io/api/managedTables/v1/managedTables/{tableName}/{rowId}", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

GET /api/managedTables/v1/managedTables/{tableName}/{rowId}

Parameters

Name In Type Required Description
tableName path string true Variable name of the Managed Table
rowId path integer true Row Id

Example responses

200 Response

{
  "DATE_MODIFIED": "string",
  "DATE_CREATED": "string",
  "ID": 0,
  "additionalProperties": "string"
}

400 Response

{
  "errorCode": "LGK-7A407E7202264005AD03A14D9",
  "errorMessage": "Rows must not be empty.",
  "timestamp": "2023-05-31T02:08:58.235882682Z"
}

404 Response

{
  "errorCode": "LGK-C2BD5E131995442CABF255BCD",
  "errorMessage": "LOGIK_OBJECT 'OBJECT_VARIABLE_NAME' was not found.",
  "timestamp": "2023-05-31T02:07:58.447433023Z"
}

5XX Response

{
  "errorCode": "LGK-82DB4CF583054DF0930EDE9BE",
  "errorMessage": "An unexpected error occurred.",
  "timestamp": "2023-05-31T02:42:40.087287033Z"
}

Responses

Status Meaning Description Schema
200 OK Successful response ColumnResponse
400 Bad Request Bad request. See errorMessage for additional details. ErrorResponse
401 Unauthorized Authorization information is missing or invalid. None
403 Forbidden Credentials are valid but insufficient privileges to perform the action on the resource. None
404 Not Found Resource was not found. See errorMessage for additional details. ErrorResponse
5XX Unknown Unexpected Server Error. ErrorResponse

Update Table Data Row

Code samples

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.patch('https://{tenant}.{sector}.logik.io/api/managedTables/v1/managedTables/{tableName}/{rowId}', headers = headers)

print(r.json())

const inputBody = '{
  "rows": [
    {
      "ID": 0,
      "additionalProperties": "string"
    }
  ]
}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'
};

fetch('https://{tenant}.{sector}.logik.io/api/managedTables/v1/managedTables/{tableName}/{rowId}',
{
  method: 'PATCH',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

const fetch = require('node-fetch');
const inputBody = {
  "rows": [
    {
      "ID": 0,
      "additionalProperties": "string"
    }
  ]
};
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'
};

fetch('https://{tenant}.{sector}.logik.io/api/managedTables/v1/managedTables/{tableName}/{rowId}',
{
  method: 'PATCH',
  body: JSON.stringify(inputBody),
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

# You can also use wget
curl -X PATCH https://{tenant}.{sector}.logik.io/api/managedTables/v1/managedTables/{tableName}/{rowId} \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

PATCH https://{tenant}.{sector}.logik.io/api/managedTables/v1/managedTables/{tableName}/{rowId} HTTP/1.1

Content-Type: application/json
Accept: application/json

URL obj = new URL("https://{tenant}.{sector}.logik.io/api/managedTables/v1/managedTables/{tableName}/{rowId}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("PATCH");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Accept' => 'application/json',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.patch 'https://{tenant}.{sector}.logik.io/api/managedTables/v1/managedTables/{tableName}/{rowId}',
  params: {
  }, headers: headers

p JSON.parse(result)

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/json"},
        "Authorization": []string{"Bearer {access-token}"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("PATCH", "https://{tenant}.{sector}.logik.io/api/managedTables/v1/managedTables/{tableName}/{rowId}", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

PATCH /api/managedTables/v1/managedTables/{tableName}/{rowId}

Body parameter

{
  "rows": [
    {
      "ID": 0,
      "additionalProperties": "string"
    }
  ]
}

Parameters

Name In Type Required Description
tableName path string true Variable name of the Managed Table
rowId path integer true Row Id
body body ColumnPatch false none

Example responses

200 Response

{
  "ID": 0,
  "additionalProperties": "string"
}

400 Response

{
  "errorCode": "LGK-7A407E7202264005AD03A14D9",
  "errorMessage": "Rows must not be empty.",
  "timestamp": "2023-05-31T02:08:58.235882682Z"
}

404 Response

{
  "errorCode": "LGK-C2BD5E131995442CABF255BCD",
  "errorMessage": "LOGIK_OBJECT 'OBJECT_VARIABLE_NAME' was not found.",
  "timestamp": "2023-05-31T02:07:58.447433023Z"
}

5XX Response

{
  "errorCode": "LGK-82DB4CF583054DF0930EDE9BE",
  "errorMessage": "An unexpected error occurred.",
  "timestamp": "2023-05-31T02:42:40.087287033Z"
}

Responses

Status Meaning Description Schema
200 OK Successful response ColumnWithId
400 Bad Request Bad request. See errorMessage for additional details. ErrorResponse
401 Unauthorized Authorization information is missing or invalid. None
403 Forbidden Credentials are valid but insufficient privileges to perform the action on the resource. None
404 Not Found Resource was not found. See errorMessage for additional details. ErrorResponse
5XX Unknown Unexpected Server Error. ErrorResponse

Delete Table Data Row

Code samples

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.delete('https://{tenant}.{sector}.logik.io/api/managedTables/v1/managedTables/{tableName}/{rowId}', headers = headers)

print(r.json())


const headers = {
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'
};

fetch('https://{tenant}.{sector}.logik.io/api/managedTables/v1/managedTables/{tableName}/{rowId}',
{
  method: 'DELETE',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'
};

fetch('https://{tenant}.{sector}.logik.io/api/managedTables/v1/managedTables/{tableName}/{rowId}',
{
  method: 'DELETE',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

# You can also use wget
curl -X DELETE https://{tenant}.{sector}.logik.io/api/managedTables/v1/managedTables/{tableName}/{rowId} \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

DELETE https://{tenant}.{sector}.logik.io/api/managedTables/v1/managedTables/{tableName}/{rowId} HTTP/1.1

Accept: application/json

URL obj = new URL("https://{tenant}.{sector}.logik.io/api/managedTables/v1/managedTables/{tableName}/{rowId}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("DELETE");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/json',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.delete 'https://{tenant}.{sector}.logik.io/api/managedTables/v1/managedTables/{tableName}/{rowId}',
  params: {
  }, headers: headers

p JSON.parse(result)

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        "Authorization": []string{"Bearer {access-token}"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("DELETE", "https://{tenant}.{sector}.logik.io/api/managedTables/v1/managedTables/{tableName}/{rowId}", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

DELETE /api/managedTables/v1/managedTables/{tableName}/{rowId}

Parameters

Name In Type Required Description
tableName path string true Variable name of the Managed Table
rowId path integer true Row Id

Example responses

400 Response

{
  "errorCode": "LGK-7A407E7202264005AD03A14D9",
  "errorMessage": "Rows must not be empty.",
  "timestamp": "2023-05-31T02:08:58.235882682Z"
}

404 Response

{
  "errorCode": "LGK-C2BD5E131995442CABF255BCD",
  "errorMessage": "LOGIK_OBJECT 'OBJECT_VARIABLE_NAME' was not found.",
  "timestamp": "2023-05-31T02:07:58.447433023Z"
}

5XX Response

{
  "errorCode": "LGK-82DB4CF583054DF0930EDE9BE",
  "errorMessage": "An unexpected error occurred.",
  "timestamp": "2023-05-31T02:42:40.087287033Z"
}

Responses

Status Meaning Description Schema
204 No Content The row was deleted successfully. None
400 Bad Request Bad request. See errorMessage for additional details. ErrorResponse
401 Unauthorized Authorization information is missing or invalid. None
403 Forbidden Credentials are valid but insufficient privileges to perform the action on the resource. None
404 Not Found Resource was not found. See errorMessage for additional details. ErrorResponse
5XX Unknown Unexpected Server Error. ErrorResponse

Managed Tables > Import

Import and Replace Tables

Upload Table CSV

Code samples

import requests
headers = {
  'Content-Type': 'multipart/form-data',
  'Accept': 'application/json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.post('https://{tenant}.{sector}.logik.io/api/managedTables/v2/managedTables/{tableName}', headers = headers)

print(r.json())

const inputBody = '{
  "file": "string",
  "jobType": "TABLE_IMPORT"
}';
const headers = {
  'Content-Type':'multipart/form-data',
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'
};

fetch('https://{tenant}.{sector}.logik.io/api/managedTables/v2/managedTables/{tableName}',
{
  method: 'POST',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

const fetch = require('node-fetch');
const inputBody = {
  "file": "string",
  "jobType": "TABLE_IMPORT"
};
const headers = {
  'Content-Type':'multipart/form-data',
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'
};

fetch('https://{tenant}.{sector}.logik.io/api/managedTables/v2/managedTables/{tableName}',
{
  method: 'POST',
  body: JSON.stringify(inputBody),
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

# You can also use wget
curl -X POST https://{tenant}.{sector}.logik.io/api/managedTables/v2/managedTables/{tableName} \
  -H 'Content-Type: multipart/form-data' \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

POST https://{tenant}.{sector}.logik.io/api/managedTables/v2/managedTables/{tableName} HTTP/1.1

Content-Type: multipart/form-data
Accept: application/json

URL obj = new URL("https://{tenant}.{sector}.logik.io/api/managedTables/v2/managedTables/{tableName}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'multipart/form-data',
  'Accept' => 'application/json',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.post 'https://{tenant}.{sector}.logik.io/api/managedTables/v2/managedTables/{tableName}',
  params: {
  }, headers: headers

p JSON.parse(result)

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"multipart/form-data"},
        "Accept": []string{"application/json"},
        "Authorization": []string{"Bearer {access-token}"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "https://{tenant}.{sector}.logik.io/api/managedTables/v2/managedTables/{tableName}", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

POST /api/managedTables/v2/managedTables/{tableName}

Body parameter

file: string
jobType: TABLE_IMPORT

Parameters

Name In Type Required Description
tableName path string true Variable name of the Managed Table
body body object false none
» file body string(binary) false none
» jobType body string false none

Enumerated Values

Parameter Value
» jobType TABLE_IMPORT

Example responses

201 Response

{
  "id": "6,",
  "started": "2023-05-31T02:51:16.550561712Z",
  "finished": null,
  "jobType": "TABLE_EXPORT",
  "status": "STARTED"
}

400 Response

{
  "errorCode": "LGK-7A407E7202264005AD03A14D9",
  "errorMessage": "Rows must not be empty.",
  "timestamp": "2023-05-31T02:08:58.235882682Z"
}

404 Response

{
  "errorCode": "LGK-C2BD5E131995442CABF255BCD",
  "errorMessage": "LOGIK_OBJECT 'OBJECT_VARIABLE_NAME' was not found.",
  "timestamp": "2023-05-31T02:07:58.447433023Z"
}

5XX Response

{
  "errorCode": "LGK-82DB4CF583054DF0930EDE9BE",
  "errorMessage": "An unexpected error occurred.",
  "timestamp": "2023-05-31T02:42:40.087287033Z"
}

Responses

Status Meaning Description Schema
201 Created Successful response JobResponse
400 Bad Request Bad request. See errorMessage for additional details. ErrorResponse
401 Unauthorized Authorization information is missing or invalid. None
403 Forbidden Credentials are valid but insufficient privileges to perform the action on the resource. None
404 Not Found Resource was not found. See errorMessage for additional details. ErrorResponse
5XX Unknown Unexpected Server Error. ErrorResponse

Replace Table Data

Code samples

import requests
headers = {
  'Content-Type': 'multipart/form-data',
  'Accept': 'application/json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.put('https://{tenant}.{sector}.logik.io/api/managedTables/v2/managedTables/{tableName}', headers = headers)

print(r.json())

const inputBody = '{
  "file": "string",
  "jobType": "TABLE_IMPORT"
}';
const headers = {
  'Content-Type':'multipart/form-data',
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'
};

fetch('https://{tenant}.{sector}.logik.io/api/managedTables/v2/managedTables/{tableName}',
{
  method: 'PUT',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

const fetch = require('node-fetch');
const inputBody = {
  "file": "string",
  "jobType": "TABLE_IMPORT"
};
const headers = {
  'Content-Type':'multipart/form-data',
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'
};

fetch('https://{tenant}.{sector}.logik.io/api/managedTables/v2/managedTables/{tableName}',
{
  method: 'PUT',
  body: JSON.stringify(inputBody),
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

# You can also use wget
curl -X PUT https://{tenant}.{sector}.logik.io/api/managedTables/v2/managedTables/{tableName} \
  -H 'Content-Type: multipart/form-data' \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

PUT https://{tenant}.{sector}.logik.io/api/managedTables/v2/managedTables/{tableName} HTTP/1.1

Content-Type: multipart/form-data
Accept: application/json

URL obj = new URL("https://{tenant}.{sector}.logik.io/api/managedTables/v2/managedTables/{tableName}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("PUT");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'multipart/form-data',
  'Accept' => 'application/json',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.put 'https://{tenant}.{sector}.logik.io/api/managedTables/v2/managedTables/{tableName}',
  params: {
  }, headers: headers

p JSON.parse(result)

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"multipart/form-data"},
        "Accept": []string{"application/json"},
        "Authorization": []string{"Bearer {access-token}"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("PUT", "https://{tenant}.{sector}.logik.io/api/managedTables/v2/managedTables/{tableName}", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

PUT /api/managedTables/v2/managedTables/{tableName}

Replace data in table with uploaded data

Body parameter

file: string
jobType: TABLE_IMPORT

Parameters

Name In Type Required Description
tableName path string true Variable name of the Managed Table
body body object false none
» file body string(binary) false none
» jobType body string false none

Enumerated Values

Parameter Value
» jobType TABLE_IMPORT

Example responses

201 Response

{
  "id": "6,",
  "started": "2023-05-31T02:51:16.550561712Z",
  "finished": null,
  "jobType": "TABLE_EXPORT",
  "status": "STARTED"
}

400 Response

{
  "errorCode": "LGK-7A407E7202264005AD03A14D9",
  "errorMessage": "Rows must not be empty.",
  "timestamp": "2023-05-31T02:08:58.235882682Z"
}

404 Response

{
  "errorCode": "LGK-C2BD5E131995442CABF255BCD",
  "errorMessage": "LOGIK_OBJECT 'OBJECT_VARIABLE_NAME' was not found.",
  "timestamp": "2023-05-31T02:07:58.447433023Z"
}

5XX Response

{
  "errorCode": "LGK-82DB4CF583054DF0930EDE9BE",
  "errorMessage": "An unexpected error occurred.",
  "timestamp": "2023-05-31T02:42:40.087287033Z"
}

Responses

Status Meaning Description Schema
201 Created Successful response JobResponse
400 Bad Request Bad request. See errorMessage for additional details. ErrorResponse
401 Unauthorized Authorization information is missing or invalid. None
403 Forbidden Credentials are valid but insufficient privileges to perform the action on the resource. None
404 Not Found Resource was not found. See errorMessage for additional details. ErrorResponse
5XX Unknown Unexpected Server Error. ErrorResponse

Managed Tables > Export

Export and Download Tables

Export Table Data

Code samples

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.post('https://{tenant}.{sector}.logik.io/api/managedTables/v3/managedTables/{tableName}/export', headers = headers)

print(r.json())

const inputBody = '{}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'
};

fetch('https://{tenant}.{sector}.logik.io/api/managedTables/v3/managedTables/{tableName}/export',
{
  method: 'POST',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

const fetch = require('node-fetch');
const inputBody = {};
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'
};

fetch('https://{tenant}.{sector}.logik.io/api/managedTables/v3/managedTables/{tableName}/export',
{
  method: 'POST',
  body: JSON.stringify(inputBody),
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

# You can also use wget
curl -X POST https://{tenant}.{sector}.logik.io/api/managedTables/v3/managedTables/{tableName}/export \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

POST https://{tenant}.{sector}.logik.io/api/managedTables/v3/managedTables/{tableName}/export HTTP/1.1

Content-Type: application/json
Accept: application/json

URL obj = new URL("https://{tenant}.{sector}.logik.io/api/managedTables/v3/managedTables/{tableName}/export");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Accept' => 'application/json',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.post 'https://{tenant}.{sector}.logik.io/api/managedTables/v3/managedTables/{tableName}/export',
  params: {
  }, headers: headers

p JSON.parse(result)

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/json"},
        "Authorization": []string{"Bearer {access-token}"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "https://{tenant}.{sector}.logik.io/api/managedTables/v3/managedTables/{tableName}/export", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

POST /api/managedTables/v3/managedTables/{tableName}/export

Start an Export Table Data Job

Body parameter

"{}"

Parameters

Name In Type Required Description
tableName path string true Variable name of the Managed Table
body body object false none

Enumerated Values

Parameter Value
body {}

Example responses

200 Response

{
  "id": "6,",
  "started": "2023-05-31T02:51:16.550561712Z",
  "finished": null,
  "jobType": "TABLE_EXPORT",
  "status": "STARTED"
}

400 Response

{
  "errorCode": "LGK-7A407E7202264005AD03A14D9",
  "errorMessage": "Rows must not be empty.",
  "timestamp": "2023-05-31T02:08:58.235882682Z"
}

404 Response

{
  "errorCode": "LGK-C2BD5E131995442CABF255BCD",
  "errorMessage": "LOGIK_OBJECT 'OBJECT_VARIABLE_NAME' was not found.",
  "timestamp": "2023-05-31T02:07:58.447433023Z"
}

5XX Response

{
  "errorCode": "LGK-82DB4CF583054DF0930EDE9BE",
  "errorMessage": "An unexpected error occurred.",
  "timestamp": "2023-05-31T02:42:40.087287033Z"
}

Responses

Status Meaning Description Schema
200 OK Successful response JobResponse
400 Bad Request Bad request. See errorMessage for additional details. ErrorResponse
401 Unauthorized Authorization information is missing or invalid. None
403 Forbidden Credentials are valid but insufficient privileges to perform the action on the resource. None
404 Not Found Resource was not found. See errorMessage for additional details. ErrorResponse
5XX Unknown Unexpected Server Error. ErrorResponse

Get Job Status

Code samples

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.get('https://{tenant}.{sector}.logik.io/api/managedTables/v2/job/{jobId}', headers = headers)

print(r.json())


const headers = {
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'
};

fetch('https://{tenant}.{sector}.logik.io/api/managedTables/v2/job/{jobId}',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'
};

fetch('https://{tenant}.{sector}.logik.io/api/managedTables/v2/job/{jobId}',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

# You can also use wget
curl -X GET https://{tenant}.{sector}.logik.io/api/managedTables/v2/job/{jobId} \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

GET https://{tenant}.{sector}.logik.io/api/managedTables/v2/job/{jobId} HTTP/1.1

Accept: application/json

URL obj = new URL("https://{tenant}.{sector}.logik.io/api/managedTables/v2/job/{jobId}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/json',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.get 'https://{tenant}.{sector}.logik.io/api/managedTables/v2/job/{jobId}',
  params: {
  }, headers: headers

p JSON.parse(result)

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        "Authorization": []string{"Bearer {access-token}"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "https://{tenant}.{sector}.logik.io/api/managedTables/v2/job/{jobId}", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

GET /api/managedTables/v2/job/{jobId}

Get Managed Table Job Status

Parameters

Name In Type Required Description
jobId path integer true Job Id

Example responses

200 Response

{
  "id": "6,",
  "started": "2023-05-31T02:51:16.550561712Z",
  "finished": null,
  "jobType": "TABLE_EXPORT",
  "status": "STARTED"
}

400 Response

{
  "errorCode": "LGK-7A407E7202264005AD03A14D9",
  "errorMessage": "Rows must not be empty.",
  "timestamp": "2023-05-31T02:08:58.235882682Z"
}

404 Response

{
  "errorCode": "LGK-C2BD5E131995442CABF255BCD",
  "errorMessage": "LOGIK_OBJECT 'OBJECT_VARIABLE_NAME' was not found.",
  "timestamp": "2023-05-31T02:07:58.447433023Z"
}

5XX Response

{
  "errorCode": "LGK-82DB4CF583054DF0930EDE9BE",
  "errorMessage": "An unexpected error occurred.",
  "timestamp": "2023-05-31T02:42:40.087287033Z"
}

Responses

Status Meaning Description Schema
200 OK Successful response JobResponse
400 Bad Request Bad request. See errorMessage for additional details. ErrorResponse
401 Unauthorized Authorization information is missing or invalid. None
403 Forbidden Credentials are valid but insufficient privileges to perform the action on the resource. None
404 Not Found Resource was not found. See errorMessage for additional details. ErrorResponse
5XX Unknown Unexpected Server Error. ErrorResponse

Download Table Export

Code samples

import requests
headers = {
  'Accept': 'application/octet-stream',
  'Authorization': 'Bearer {access-token}'
}

r = requests.get('https://{tenant}.{sector}.logik.io/api/managedTables/v2/job/{jobId}/file', headers = headers)

print(r.json())


const headers = {
  'Accept':'application/octet-stream',
  'Authorization':'Bearer {access-token}'
};

fetch('https://{tenant}.{sector}.logik.io/api/managedTables/v2/job/{jobId}/file',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/octet-stream',
  'Authorization':'Bearer {access-token}'
};

fetch('https://{tenant}.{sector}.logik.io/api/managedTables/v2/job/{jobId}/file',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

# You can also use wget
curl -X GET https://{tenant}.{sector}.logik.io/api/managedTables/v2/job/{jobId}/file \
  -H 'Accept: application/octet-stream' \
  -H 'Authorization: Bearer {access-token}'

GET https://{tenant}.{sector}.logik.io/api/managedTables/v2/job/{jobId}/file HTTP/1.1

Accept: application/octet-stream

URL obj = new URL("https://{tenant}.{sector}.logik.io/api/managedTables/v2/job/{jobId}/file");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/octet-stream',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.get 'https://{tenant}.{sector}.logik.io/api/managedTables/v2/job/{jobId}/file',
  params: {
  }, headers: headers

p JSON.parse(result)

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/octet-stream"},
        "Authorization": []string{"Bearer {access-token}"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "https://{tenant}.{sector}.logik.io/api/managedTables/v2/job/{jobId}/file", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

GET /api/managedTables/v2/job/{jobId}/file

Download Managed Table export file from a successfully completed job.

Parameters

Name In Type Required Description
jobId path integer true Job Id

Example responses

200 Response

400 Response

{
  "errorCode": "LGK-7A407E7202264005AD03A14D9",
  "errorMessage": "Rows must not be empty.",
  "timestamp": "2023-05-31T02:08:58.235882682Z"
}

404 Response

{
  "errorCode": "LGK-C2BD5E131995442CABF255BCD",
  "errorMessage": "LOGIK_OBJECT 'OBJECT_VARIABLE_NAME' was not found.",
  "timestamp": "2023-05-31T02:07:58.447433023Z"
}

5XX Response

{
  "errorCode": "LGK-82DB4CF583054DF0930EDE9BE",
  "errorMessage": "An unexpected error occurred.",
  "timestamp": "2023-05-31T02:42:40.087287033Z"
}

Responses

Status Meaning Description Schema
200 OK Successful response string
400 Bad Request Bad request. See errorMessage for additional details. ErrorResponse
401 Unauthorized Authorization information is missing or invalid. None
403 Forbidden Credentials are valid but insufficient privileges to perform the action on the resource. None
404 Not Found Resource was not found. See errorMessage for additional details. ErrorResponse
5XX Unknown Unexpected Server Error. ErrorResponse

Matrix Loader

Matrix Loader import and uploads

Import File

Code samples

import requests
headers = {
  'Content-Type': 'multipart/form-data',
  'Accept': 'application/json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.post('https://{tenant}.{sector}.logik.io/api/admin/v2/uploadFile', headers = headers)

print(r.json())

const inputBody = '{
  "jobType": "GENERIC_IMPORT",
  "file": "string"
}';
const headers = {
  'Content-Type':'multipart/form-data',
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'
};

fetch('https://{tenant}.{sector}.logik.io/api/admin/v2/uploadFile',
{
  method: 'POST',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

const fetch = require('node-fetch');
const inputBody = {
  "jobType": "GENERIC_IMPORT",
  "file": "string"
};
const headers = {
  'Content-Type':'multipart/form-data',
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'
};

fetch('https://{tenant}.{sector}.logik.io/api/admin/v2/uploadFile',
{
  method: 'POST',
  body: JSON.stringify(inputBody),
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

# You can also use wget
curl -X POST https://{tenant}.{sector}.logik.io/api/admin/v2/uploadFile \
  -H 'Content-Type: multipart/form-data' \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

POST https://{tenant}.{sector}.logik.io/api/admin/v2/uploadFile HTTP/1.1

Content-Type: multipart/form-data
Accept: application/json

URL obj = new URL("https://{tenant}.{sector}.logik.io/api/admin/v2/uploadFile");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'multipart/form-data',
  'Accept' => 'application/json',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.post 'https://{tenant}.{sector}.logik.io/api/admin/v2/uploadFile',
  params: {
  }, headers: headers

p JSON.parse(result)

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"multipart/form-data"},
        "Accept": []string{"application/json"},
        "Authorization": []string{"Bearer {access-token}"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "https://{tenant}.{sector}.logik.io/api/admin/v2/uploadFile", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

POST /api/admin/v2/uploadFile

A detailed description of the operation. Use markdown for rich text representation, such as bold, italic, and links.

Body parameter

jobType: GENERIC_IMPORT
file: string

Parameters

Name In Type Required Description
body body MatrixLoaderUpload true none

Example responses

200 Response

{
  "created": "2023-09-19T16:40:26.550044863Z",
  "modified": "2023-09-19T16:40:26.550044863Z",
  "id": 99,
  "jobType": "GENERIC_IMPORT",
  "status": "STARTED"
}

Responses

Status Meaning Description Schema
200 OK none MatrixLoaderGenericUploadResponse

Matrix Loader > Managed Tables

Matrix Loader import and uploads for Managed Tables

Import Managed Table

Code samples

import requests
headers = {
  'Content-Type': 'multipart/form-data',
  'Accept': 'application/json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.post('https://{tenant}.{sector}.logik.io/api/managedTables/v2/managedTables', headers = headers)

print(r.json())

const inputBody = '{
  "jobType": "MANAGED_TABLES_IMPORT_UPSERT",
  "file": "string"
}';
const headers = {
  'Content-Type':'multipart/form-data',
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'
};

fetch('https://{tenant}.{sector}.logik.io/api/managedTables/v2/managedTables',
{
  method: 'POST',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

const fetch = require('node-fetch');
const inputBody = {
  "jobType": "MANAGED_TABLES_IMPORT_UPSERT",
  "file": "string"
};
const headers = {
  'Content-Type':'multipart/form-data',
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'
};

fetch('https://{tenant}.{sector}.logik.io/api/managedTables/v2/managedTables',
{
  method: 'POST',
  body: JSON.stringify(inputBody),
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

# You can also use wget
curl -X POST https://{tenant}.{sector}.logik.io/api/managedTables/v2/managedTables \
  -H 'Content-Type: multipart/form-data' \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

POST https://{tenant}.{sector}.logik.io/api/managedTables/v2/managedTables HTTP/1.1

Content-Type: multipart/form-data
Accept: application/json

URL obj = new URL("https://{tenant}.{sector}.logik.io/api/managedTables/v2/managedTables");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'multipart/form-data',
  'Accept' => 'application/json',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.post 'https://{tenant}.{sector}.logik.io/api/managedTables/v2/managedTables',
  params: {
  }, headers: headers

p JSON.parse(result)

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"multipart/form-data"},
        "Accept": []string{"application/json"},
        "Authorization": []string{"Bearer {access-token}"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "https://{tenant}.{sector}.logik.io/api/managedTables/v2/managedTables", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

POST /api/managedTables/v2/managedTables

Upload

Body parameter

jobType: MANAGED_TABLES_IMPORT_UPSERT
file: string

Parameters

Name In Type Required Description
body body ManagedTableDataUpload true none

Example responses

202 Response

{
  "id": 1,
  "started": "2023-09-19T16:38:15.530973739Z",
  "finished": null,
  "jobType": "MANAGED_TABLES_IMPORT_UPSERT",
  "status": "STARTED"
}

Responses

Status Meaning Description Schema
202 Accepted none Inline

Response Schema

Status Code 202

Name Type Required Restrictions Description
» id number false none none
» started string false none none
» finished string false none none
» jobType string false none none
» status string false none none

Jobs

Admin Job Information

Get Admin Job Status

Code samples

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.get('https://{tenant}.{sector}.logik.io/api/admin/v1/job/{jobId}', headers = headers)

print(r.json())


const headers = {
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'
};

fetch('https://{tenant}.{sector}.logik.io/api/admin/v1/job/{jobId}',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'
};

fetch('https://{tenant}.{sector}.logik.io/api/admin/v1/job/{jobId}',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

# You can also use wget
curl -X GET https://{tenant}.{sector}.logik.io/api/admin/v1/job/{jobId} \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

GET https://{tenant}.{sector}.logik.io/api/admin/v1/job/{jobId} HTTP/1.1

Accept: application/json

URL obj = new URL("https://{tenant}.{sector}.logik.io/api/admin/v1/job/{jobId}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/json',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.get 'https://{tenant}.{sector}.logik.io/api/admin/v1/job/{jobId}',
  params: {
  }, headers: headers

p JSON.parse(result)

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        "Authorization": []string{"Bearer {access-token}"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "https://{tenant}.{sector}.logik.io/api/admin/v1/job/{jobId}", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

GET /api/admin/v1/job/{jobId}

Retrieve details of a job by providing its Id.

Parameters

Name In Type Required Description
jobId path integer true Id of the job

Example responses

200 Response

{
  "id": 99,
  "started": "2023-09-19T16:40:26.554240Z",
  "finished": "2023-09-19T16:40:26.563650Z",
  "jobType": "GENERIC_IMPORT",
  "status": "COMPLETED",
  "result": {
    "success": true,
    "counts": {
      "success": 0,
      "error": 0,
      "warning": 0,
      "total": 0
    },
    "messages": []
  }
}

Responses

Status Meaning Description Schema
200 OK Admin Job Details AdminJobResponse

Download Bulk Export

Code samples

import requests
headers = {
  'Accept': 'application/octet-stream',
  'Authorization': 'Bearer {access-token}'
}

r = requests.get('https://{tenant}.{sector}.logik.io/api/admin/v2/bulk/export/{jobId}', headers = headers)

print(r.json())


const headers = {
  'Accept':'application/octet-stream',
  'Authorization':'Bearer {access-token}'
};

fetch('https://{tenant}.{sector}.logik.io/api/admin/v2/bulk/export/{jobId}',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/octet-stream',
  'Authorization':'Bearer {access-token}'
};

fetch('https://{tenant}.{sector}.logik.io/api/admin/v2/bulk/export/{jobId}',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

# You can also use wget
curl -X GET https://{tenant}.{sector}.logik.io/api/admin/v2/bulk/export/{jobId} \
  -H 'Accept: application/octet-stream' \
  -H 'Authorization: Bearer {access-token}'

GET https://{tenant}.{sector}.logik.io/api/admin/v2/bulk/export/{jobId} HTTP/1.1

Accept: application/octet-stream

URL obj = new URL("https://{tenant}.{sector}.logik.io/api/admin/v2/bulk/export/{jobId}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/octet-stream',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.get 'https://{tenant}.{sector}.logik.io/api/admin/v2/bulk/export/{jobId}',
  params: {
  }, headers: headers

p JSON.parse(result)

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/octet-stream"},
        "Authorization": []string{"Bearer {access-token}"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "https://{tenant}.{sector}.logik.io/api/admin/v2/bulk/export/{jobId}", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

GET /api/admin/v2/bulk/export/{jobId}

Retrieve a bulk export file by providing the corresponding job Id.

Parameters

Name In Type Required Description
jobId path integer true Id of the job

Example responses

200 Response

Responses

Status Meaning Description Schema
200 OK Bulk Export Result File string

Response Headers

Status Header Type Format Description
200 Content-Disposition string Attachment filename

Schemas

PagedResponse

{
  "pageable": {
    "sort": {
      "empty": true,
      "unsorted": true,
      "sorted": true
    },
    "offset": 0,
    "pageNumber": 0,
    "pageSize": 0,
    "paged": true,
    "unpaged": true
  },
  "totalPages": 0,
  "last": true,
  "totalElements": 0,
  "size": 0,
  "number": 0,
  "sort": {
    "empty": true,
    "sorted": true,
    "unsorted": true
  },
  "numberOfElements": 0,
  "first": true,
  "empty": true
}

Properties

Name Type Required Restrictions Description
pageable object false none none
» sort object false none none
»» empty boolean false none none
»» unsorted boolean false none none
»» sorted boolean false none none
» offset number false none none
» pageNumber number false none none
» pageSize number false none none
» paged boolean false none none
» unpaged boolean false none none
totalPages number false none none
last boolean false none none
totalElements number false none none
size number false none none
number number false none none
sort object false none none
» empty boolean false none none
» sorted boolean false none none
» unsorted boolean false none none
numberOfElements number false none none
first boolean false none none
empty boolean false none none

BlueprintListResponse

{
  "content": [
    {
      "id": 12,
      "name": "PC Builder",
      "variableName": "pCBuilder",
      "description": "",
      "modified": "2023-09-13T16:21:28.590092Z",
      "lastModifiedBy": "scheck@cpq1.logik.dev"
    },
    {
      "id": 18,
      "name": "newBP",
      "variableName": "newBP",
      "description": "ls",
      "modified": "2023-09-11T20:55:11.005400Z",
      "lastModifiedBy": "scheck@cpq1.logik.dev"
    },
    {
      "id": 8,
      "name": "ComputerBP",
      "variableName": "pickerGeneral",
      "description": "",
      "modified": "2023-09-07T13:49:40.877294Z",
      "lastModifiedBy": "scheck@cpq1.logik.dev"
    }
  ],
  "pageable": {
    "sort": {
      "empty": false,
      "sorted": true,
      "unsorted": false
    },
    "offset": 0,
    "pageNumber": 0,
    "pageSize": 100,
    "paged": true,
    "unpaged": false
  },
  "totalPages": 1,
  "last": true,
  "totalElements": 14,
  "size": 100,
  "number": 0,
  "sort": {
    "empty": false,
    "sorted": true,
    "unsorted": false
  },
  "numberOfElements": 14,
  "first": true,
  "empty": false
}

Properties

allOf

Name Type Required Restrictions Description
anonymous object false none none
» content [object] false none none
»» id number true none none
»» name string true none none
»» variableName string true none none
»» description string true none none
»» modified string true none none
»» lastModifiedBy string true none none

and

Name Type Required Restrictions Description
anonymous PagedResponse false none none

BlueprintResponse

{
  "id": 12,
  "name": "PC Builder",
  "variableName": "pCBuilder",
  "description": "",
  "fields": [
    "cPUType",
    "endDate",
    "pleExtension"
  ],
  "rules": [
    "dummy_sc",
    "dateSet",
    "msgaboveField"
  ],
  "sets": [
    "delta"
  ],
  "layouts": [
    {
      "created": "2023-09-07T13:37:51.195021Z",
      "modified": "2023-09-07T13:37:51.195021Z",
      "id": 131,
      "label": "test",
      "variableName": "pCBuilder_test",
      "lastModifiedBy": "scheck@cpq1.logik.dev",
      "hasLayoutFile": true
    }
  ],
  "created": "2023-06-21T22:21:12.627813Z",
  "modified": "2023-09-15T17:39:47.990406Z",
  "lastModifiedBy": "scheck@cpq1.logik.dev"
}

Properties

Name Type Required Restrictions Description
id number false none none
name string false none none
variableName string false none none
description string false none none
fields [string] false none none
rules [string] false none none
sets [string] false none none
layouts [object] false none none
» created string false none none
» modified string false none none
» id number false none none
» label string false none none
» variableName string false none none
» lastModifiedBy string false none none
» hasLayoutFile boolean false none none
created string false none none
modified string false none none
lastModifiedBy string false none none

Blueprint

{
  "id": 12,
  "name": "PC Builder",
  "variableName": "pCBuilder",
  "description": "",
  "fields": [
    "cPUType",
    "textTest_swc",
    "endDate",
    "pleExtension",
    "hidden_sc",
    "startDate",
    "pricer_sc",
    "cpuPicker"
  ],
  "rules": [
    "dummy_sc",
    "dateSet",
    "msgaboveField"
  ],
  "sets": [
    "delta"
  ],
  "layouts": [
    {
      "created": "2023-09-07T13:37:51.195021Z",
      "modified": "2023-09-07T13:37:51.195021Z",
      "id": 131,
      "label": "test",
      "variableName": "pCBuilder_test",
      "lastModifiedBy": "scheck@cpq1.logik.dev",
      "hasLayoutFile": true
    }
  ],
  "created": "2023-06-21T22:21:12.627813Z",
  "modified": "2023-09-13T16:21:28.590092Z",
  "lastModifiedBy": "scheck@cpq1.logik.dev"
}

Properties

Name Type Required Restrictions Description
id number false none none
name string false none none
variableName string false none none
description string false none none
fields [string] false none none
rules [string] false none none
sets [string] false none none
layouts [object] false none none
» created string false none none
» modified string false none none
» id number false none none
» label string false none none
» variableName string false none none
» lastModifiedBy string false none none
» hasLayoutFile boolean false none none
created string false none none
modified string false none none
lastModifiedBy string false none none

BlueprintLayoutResponse

{
  "content": [
    {
      "created": "2023-09-07T13:37:51.195021Z",
      "modified": "2023-09-07T13:37:51.195021Z",
      "id": 131,
      "label": "test",
      "variableName": "pCBuilder_test",
      "lastModifiedBy": "scheck@cpq1.logik.dev",
      "hasLayoutFile": true
    }
  ],
  "pageable": {
    "sort": {
      "empty": false,
      "sorted": true,
      "unsorted": false
    },
    "offset": 0,
    "pageNumber": 0,
    "pageSize": 100,
    "paged": true,
    "unpaged": false
  },
  "totalPages": 1,
  "last": true,
  "totalElements": 1,
  "size": 100,
  "number": 0,
  "sort": {
    "empty": false,
    "sorted": true,
    "unsorted": false
  },
  "numberOfElements": 1,
  "first": true,
  "empty": false
}

Properties

allOf

Name Type Required Restrictions Description
anonymous object false none none
» content [object] false none none
»» created string false none none
»» modified string false none none
»» id number false none none
»» label string false none none
»» variableName string false none none
»» lastModifiedBy string false none none
»» hasLayoutFile boolean false none none

and

Name Type Required Restrictions Description
anonymous PagedResponse false none none

BlueprintRelatedSetsResponse

{
  "content": [
    {
      "id": 2,
      "name": "delta",
      "variableName": "delta",
      "sizeType": "setField",
      "created": "2023-06-07T22:34:50.052615Z",
      "modified": "2023-06-12T21:37:21.879233Z",
      "fields": [
        {
          "id": 9,
          "variableName": "textTest_swc",
          "name": "textTest_swc",
          "description": null,
          "type": "Text",
          "distinct": false,
          "created": "2023-06-12T21:37:21.877152Z",
          "modified": "2023-06-12T21:37:21.877152Z",
          "lastModifiedBy": "scheck.dev (API)"
        },
        {
          "id": 7,
          "variableName": "set.delta.index",
          "name": "Index for delta",
          "description": null,
          "type": "Number",
          "distinct": false,
          "created": "2023-06-12T21:36:46.256658Z",
          "modified": "2023-06-12T21:37:21.879317Z",
          "lastModifiedBy": null
        }
      ],
      "aggregateFields": [
        {
          "type": "Number",
          "created": "2023-06-12T21:37:11.596742Z",
          "modified": "2023-06-12T21:37:11.596742Z",
          "id": 135,
          "name": "count",
          "variableName": "set.delta.count",
          "description": null,
          "required": false,
          "category": "SET_AGGREGATE",
          "setVariableName": "delta",
          "aggregateType": "COUNT",
          "fieldVariableNames": [
            "textTest_swc"
          ],
          "lastModifiedBy": "scheck@cpq1.logik.dev",
          "defaultValue": null,
          "unitLabel": null,
          "precision": 32,
          "minValue": null,
          "maxValue": null,
          "stepValue": null
        }
      ],
      "sizeFieldVariableName": "set.delta.size",
      "sizeField": {
        "type": "Size",
        "created": "2023-06-07T22:34:50.052776Z",
        "modified": "2023-06-07T22:34:50.063657Z",
        "id": 114,
        "name": "delta Size",
        "variableName": "set.delta.size",
        "description": null,
        "required": false,
        "category": "SET_SIZE",
        "setVariableName": "delta",
        "lastModifiedBy": null,
        "defaultValue": null,
        "minValue": null,
        "maxValue": null
      },
      "lastModifiedBy": "scheck@cpq1.logik.dev"
    }
  ],
  "pageable": {
    "sort": {
      "empty": true,
      "sorted": false,
      "unsorted": true
    },
    "offset": 0,
    "pageNumber": 0,
    "pageSize": 10,
    "paged": true,
    "unpaged": false
  },
  "totalPages": 1,
  "last": true,
  "totalElements": 1,
  "size": 10,
  "number": 0,
  "sort": {
    "empty": true,
    "sorted": false,
    "unsorted": true
  },
  "numberOfElements": 1,
  "first": true,
  "empty": false
}

Properties

allOf

Name Type Required Restrictions Description
anonymous object false none none
» content [object] false none none
»» id number false none none
»» name string false none none
»» variableName string false none none
»» sizeType string false none none
»» created string false none none
»» modified string false none none
»» fields [object] false none none
»»» id number true none none
»»» variableName string true none none
»»» name string true none none
»»» description string true none none
»»» type string true none none
»»» distinct boolean true none none
»»» created string true none none
»»» modified string true none none
»»» lastModifiedBy string true none none
»» aggregateFields [object] false none none
»»» type string false none none
»»» created string false none none
»»» modified string false none none
»»» id number false none none
»»» name string false none none
»»» variableName string false none none
»»» description string false none none
»»» required boolean false none none
»»» category string false none none
»»» setVariableName string false none none
»»» aggregateType string false none none
»»» fieldVariableNames [string] false none none
»»» lastModifiedBy string false none none
»»» defaultValue string false none none
»»» unitLabel string false none none
»»» precision number false none none
»»» minValue string false none none
»»» maxValue string false none none
»»» stepValue string false none none
»» sizeFieldVariableName string false none none
»» sizeField object false none none
»»» type string false none none
»»» created string false none none
»»» modified string false none none
»»» id number false none none
»»» name string false none none
»»» variableName string false none none
»»» description string false none none
»»» required boolean false none none
»»» category string false none none
»»» setVariableName string false none none
»»» lastModifiedBy string false none none
»»» defaultValue string false none none
»»» minValue string false none none
»»» maxValue string false none none
»» lastModifiedBy string false none none

and

Name Type Required Restrictions Description
anonymous PagedResponse false none none

RelatedConfigProductsResponse

{
  "content": [
    {
      "created": "2023-06-14T14:55:49.699022Z",
      "modified": "2023-06-21T22:23:09.801284Z",
      "id": 3,
      "name": "UniqueLinesConfig",
      "blueprintVariableName": "pCBuilder",
      "partnerProductId": "01t6e000009bzMuAAI"
    }
  ],
  "pageable": {
    "sort": {
      "empty": false,
      "sorted": true,
      "unsorted": false
    },
    "offset": 0,
    "pageNumber": 0,
    "pageSize": 100,
    "paged": true,
    "unpaged": false
  },
  "totalPages": 1,
  "last": true,
  "totalElements": 1,
  "size": 100,
  "number": 0,
  "sort": {
    "empty": false,
    "sorted": true,
    "unsorted": false
  },
  "numberOfElements": 1,
  "first": true,
  "empty": false
}

Properties

allOf

Name Type Required Restrictions Description
anonymous object false none none
» content [object] false none none
»» created string(date-time) false none none
»» modified string(date-time) false none none
»» id integer false none none
»» name string false none none
»» blueprintVariableName string false none none
»» partnerProductId string false none none

and

Name Type Required Restrictions Description
anonymous PagedResponse false none none

BlueprintRelatedProductPickerResponse

{
  "content": [
    {
      "created": "2023-06-13T21:28:17.672892Z",
      "modified": "2023-08-10T21:25:27.253738Z",
      "id": 147,
      "name": "cpuPicker",
      "variableName": "cpuPicker",
      "description": null,
      "required": false,
      "category": "PRODUCT_PICKER",
      "lastModifiedBy": "scheck@cpq1.logik.dev",
      "selectType": "single",
      "enrichEnabled": false,
      "quantitySelectionLinked": true,
      "defaultType": null,
      "defaultBomType": null,
      "defaultParentProduct": "motherboard",
      "defaultUom": null,
      "defaultPricingProductSellingModelId": null,
      "defaultPricingStartDate": null,
      "defaultPricingEndDate": null,
      "layoutProductDetails": [
        "name"
      ],
      "fields": [
        {
          "created": "2023-06-21T22:07:38.272409Z",
          "modified": "2023-06-21T22:07:38.272409Z",
          "id": 117,
          "variableName": "cpuPicker.multiThreading",
          "label": "MultiThreading",
          "fieldType": "Boolean",
          "target": "ProductExtended",
          "lastModifiedBy": "scheck@cpq1.logik.dev"
        },
        {
          "created": "2023-06-21T22:11:25.996353Z",
          "modified": "2023-06-21T22:11:25.996353Z",
          "id": 119,
          "variableName": "cpuPicker.speed",
          "label": "speed",
          "fieldType": "Picklist",
          "target": "ProductExtended",
          "lastModifiedBy": "scheck@cpq1.logik.dev"
        },
        {
          "created": "2023-06-13T21:28:17.675998Z",
          "modified": "2023-06-13T21:28:17.675998Z",
          "id": 87,
          "variableName": "cpuPicker.value",
          "label": "Value",
          "fieldType": "Text",
          "target": "ProductId",
          "lastModifiedBy": "scheck@cpq1.logik.dev"
        },
        {
          "created": "2023-06-13T21:28:17.680095Z",
          "modified": "2023-06-13T21:28:17.680095Z",
          "id": 88,
          "variableName": "cpuPicker.select",
          "label": "Select",
          "fieldType": "Boolean",
          "lastModifiedBy": "scheck@cpq1.logik.dev"
        },
        {
          "created": "2023-06-13T21:28:17.683457Z",
          "modified": "2023-06-13T21:28:17.683457Z",
          "id": 89,
          "variableName": "cpuPicker.quantity",
          "label": "Quantity",
          "fieldType": "Number",
          "target": "ProductQuantity",
          "lastModifiedBy": "scheck@cpq1.logik.dev"
        },
        {
          "created": "2023-06-13T21:28:17.759893Z",
          "modified": "2023-06-13T21:28:17.759893Z",
          "id": 91,
          "variableName": "cpuPicker.imageUrl",
          "label": "imageUrl",
          "fieldType": "Text",
          "lastModifiedBy": "scheck@cpq1.logik.dev"
        },
        {
          "created": "2023-08-09T15:45:24.420897Z",
          "modified": "2023-08-09T15:45:24.420897Z",
          "id": 206,
          "variableName": "cpuPicker.description",
          "label": "description",
          "fieldType": "Text",
          "target": "ProductDescription",
          "lastModifiedBy": "scheck@cpq1.logik.dev"
        },
        {
          "created": "2023-08-09T15:45:40.624501Z",
          "modified": "2023-08-09T15:45:40.624501Z",
          "id": 207,
          "variableName": "cpuPicker.price",
          "label": "price",
          "fieldType": "Number",
          "target": "ProductPrice",
          "lastModifiedBy": "scheck@cpq1.logik.dev"
        },
        {
          "created": "2023-08-30T17:16:12.503744Z",
          "modified": "2023-08-30T17:16:12.503744Z",
          "id": 215,
          "variableName": "cpuPicker.wattage",
          "label": "wattage",
          "fieldType": "Number",
          "target": "ProductExtended",
          "lastModifiedBy": "scheck@cpq1.logik.dev"
        }
      ],
      "rules": [
        {
          "created": "2023-06-13T21:34:48.695916Z",
          "modified": "2023-06-13T21:34:48.695916Z",
          "id": 77,
          "variableName": "inclusionTest",
          "type": "Inclusion",
          "status": "active",
          "columns": [
            {
              "id": 290,
              "header": "value",
              "mappedFieldVarName": "cpuPicker.value",
              "columnUse": "ProductId",
              "orderNumber": 0
            },
            {
              "id": 291,
              "header": "cPUType",
              "mappedFieldVarName": "cPUType",
              "operator": "equals",
              "columnUse": "Filter",
              "orderNumber": 1
            }
          ]
        },
        {
          "created": "2023-08-09T15:45:54.465480Z",
          "modified": "2023-08-09T15:45:54.465480Z",
          "id": 123,
          "variableName": "setInfo",
          "type": "Determination",
          "status": "active",
          "columns": [
            {
              "id": 438,
              "header": "value",
              "mappedFieldVarName": "cpuPicker.value",
              "columnUse": "ProductId",
              "orderNumber": 0
            },
            {
              "id": 439,
              "header": "cpuPicker.description",
              "mappedFieldVarName": "cpuPicker.description",
              "columnUse": "ProductDescription",
              "orderNumber": 1
            },
            {
              "id": 440,
              "header": "cpuPicker.price",
              "mappedFieldVarName": "cpuPicker.price",
              "columnUse": "ProductPrice",
              "orderNumber": 2
            }
          ]
        },
        {
          "created": "2023-06-21T22:11:42.152660Z",
          "modified": "2023-06-21T22:16:31.251965Z",
          "id": 89,
          "variableName": "limitCPUs",
          "type": "Quantity",
          "status": "active",
          "columns": [
            {
              "id": 330,
              "header": "value",
              "mappedFieldVarName": "cpuPicker.value",
              "columnUse": "ProductId",
              "orderNumber": 0
            },
            {
              "id": 331,
              "header": "pleExtension",
              "mappedFieldVarName": "pleExtension",
              "operator": "equals",
              "columnUse": "Filter",
              "orderNumber": 1
            },
            {
              "id": 332,
              "header": "quantity.min",
              "mappedFieldVarName": "quantity.min",
              "columnUse": "Field",
              "orderNumber": 2
            },
            {
              "id": 333,
              "header": "quantity.max",
              "mappedFieldVarName": "quantity.max",
              "columnUse": "Field",
              "orderNumber": 3
            },
            {
              "id": 334,
              "header": "quantity.step",
              "mappedFieldVarName": "quantity.step",
              "columnUse": "Field",
              "orderNumber": 4
            }
          ]
        },
        {
          "created": "2023-08-09T15:58:50.720599Z",
          "modified": "2023-08-09T16:06:01.950247Z",
          "id": 124,
          "variableName": "predef",
          "type": "Determination",
          "message": "Action is inactive because it includes fields not associated with the current blueprint (preconfigured).",
          "status": "invalid",
          "columns": [
            {
              "id": 441,
              "header": "value",
              "mappedFieldVarName": "cpuPicker.value",
              "columnUse": "ProductId",
              "orderNumber": 0
            },
            {
              "id": 442,
              "header": "preconfigured",
              "mappedFieldVarName": "preconfigured",
              "operator": "equals",
              "columnUse": "Filter",
              "orderNumber": 1
            },
            {
              "id": 443,
              "header": "cpuPicker.select",
              "mappedFieldVarName": "cpuPicker.select",
              "columnUse": "Field",
              "orderNumber": 2
            },
            {
              "id": 452,
              "header": "cpuPicker.quantity",
              "mappedFieldVarName": "cpuPicker.quantity",
              "columnUse": "ProductQuantity",
              "orderNumber": 3
            }
          ]
        }
      ],
      "aggregateFields": [
        {
          "type": "Number",
          "created": "2023-08-30T17:16:49.266509Z",
          "modified": "2023-08-30T17:16:49.266509Z",
          "id": 373,
          "name": "wattage Sum",
          "variableName": "cpuPicker.aggregates.wattage_sum",
          "description": null,
          "required": false,
          "category": "SET_AGGREGATE",
          "aggregateType": "SUM",
          "fieldVariableNames": [
            "cpuPicker.wattage"
          ],
          "lastModifiedBy": "scheck@cpq1.logik.dev",
          "defaultValue": null,
          "unitLabel": null,
          "precision": 32,
          "minValue": null,
          "maxValue": null,
          "stepValue": null
        }
      ]
    }
  ],
  "pageable": {
    "sort": {
      "empty": true,
      "sorted": false,
      "unsorted": true
    },
    "offset": 0,
    "pageNumber": 0,
    "pageSize": 10,
    "paged": true,
    "unpaged": false
  },
  "totalPages": 1,
  "last": true,
  "totalElements": 1,
  "size": 10,
  "number": 0,
  "sort": {
    "empty": true,
    "sorted": false,
    "unsorted": true
  },
  "numberOfElements": 1,
  "first": true,
  "empty": false
}

Properties

allOf

Name Type Required Restrictions Description
anonymous object false none none
» content [object] false none none
»» created string false none none
»» modified string false none none
»» id number false none none
»» name string false none none
»» variableName string false none none
»» description string false none none
»» required boolean false none none
»» category string false none none
»» lastModifiedBy string false none none
»» selectType string false none none
»» enrichEnabled boolean false none none
»» quantitySelectionLinked boolean false none none
»» defaultType string false none none
»» defaultBomType string false none none
»» defaultParentProduct string false none none
»» defaultUom string false none none
»» defaultPricingProductSellingModelId string false none none
»» defaultPricingStartDate string false none none
»» defaultPricingEndDate string false none none
»» layoutProductDetails [string] false none none
»» fields [object] false none none
»»» created string true none none
»»» modified string true none none
»»» id number true none none
»»» variableName string true none none
»»» label string true none none
»»» fieldType string true none none
»»» target string true none none
»»» lastModifiedBy string true none none
»» rules [object] false none none
»»» created string true none none
»»» modified string true none none
»»» id number true none none
»»» variableName string true none none
»»» type string true none none
»»» status string true none none
»»» columns [object] true none none
»»»» id number true none none
»»»» header string true none none
»»»» mappedFieldVarName string true none none
»»»» columnUse string true none none
»»»» orderNumber number true none none
»»»» operator string true none none
»»» message string false none none
»» aggregateFields [object] false none none
»»» type string false none none
»»» created string false none none
»»» modified string false none none
»»» id number false none none
»»» name string false none none
»»» variableName string false none none
»»» description string false none none
»»» required boolean false none none
»»» category string false none none
»»» aggregateType string false none none
»»» fieldVariableNames [string] false none none
»»» lastModifiedBy string false none none
»»» defaultValue string false none none
»»» unitLabel string false none none
»»» precision number false none none
»»» minValue string false none none
»»» maxValue string false none none
»»» stepValue string false none none

and

Name Type Required Restrictions Description
anonymous PagedResponse false none none

BlueprintRelatedRulesResponse

{
  "content": [
    {
      "id": 38,
      "name": "dateSet",
      "variableName": "dateSet",
      "description": "",
      "status": "active",
      "modified": "2023-07-19T23:47:30.394634Z",
      "actionSummary": {
        "determinationAction": 1,
        "exclusionAction": 0,
        "inclusionAction": 0,
        "messageAction": 0,
        "productAction": 0,
        "visibilityAction": 0
      },
      "lastModifiedBy": "scheck.dev (API)"
    },
    {
      "id": 4,
      "name": "dummy_sc",
      "variableName": "dummy_sc",
      "description": "",
      "status": "active",
      "modified": "2023-07-19T23:47:30.381211Z",
      "actionSummary": {
        "determinationAction": 0,
        "exclusionAction": 0,
        "inclusionAction": 0,
        "messageAction": 1,
        "productAction": 0,
        "visibilityAction": 0
      },
      "lastModifiedBy": "scheck.dev (API)"
    },
    {
      "id": 31,
      "name": "msgaboveField",
      "variableName": "msgaboveField",
      "description": "",
      "status": "active",
      "modified": "2023-07-19T23:47:30.388005Z",
      "actionSummary": {
        "determinationAction": 0,
        "exclusionAction": 0,
        "inclusionAction": 0,
        "messageAction": 1,
        "productAction": 0,
        "visibilityAction": 0
      },
      "lastModifiedBy": "scheck.dev (API)"
    }
  ],
  "pageable": {
    "sort": {
      "empty": false,
      "sorted": true,
      "unsorted": false
    },
    "offset": 0,
    "pageNumber": 0,
    "pageSize": 100,
    "paged": true,
    "unpaged": false
  },
  "totalPages": 1,
  "last": true,
  "totalElements": 3,
  "size": 100,
  "number": 0,
  "sort": {
    "empty": false,
    "sorted": true,
    "unsorted": false
  },
  "numberOfElements": 3,
  "first": true,
  "empty": false
}

Properties

allOf

Name Type Required Restrictions Description
anonymous object false none none
» content [object] false none none
»» id number true none none
»» name string true none none
»» variableName string true none none
»» description string true none none
»» status string true none none
»» modified string true none none
»» actionSummary object true none none
»»» determinationAction number false none none
»»» exclusionAction number false none none
»»» inclusionAction number false none none
»»» messageAction number false none none
»»» productAction number false none none
»»» visibilityAction number false none none
»» lastModifiedBy string true none none

and

Name Type Required Restrictions Description
anonymous PagedResponse false none none

BlueprintRelatedFieldsResponse

{
  "content": [
    {
      "type": "Picklist",
      "created": "2023-06-08T14:16:59.580802Z",
      "modified": "2023-08-09T14:29:01.175031Z",
      "id": 115,
      "name": "Motherboard Selection",
      "variableName": "pleExtension",
      "description": null,
      "required": true,
      "category": "USER",
      "hasExtension": true,
      "lastModifiedBy": "scheck@cpq1.logik.dev",
      "selectType": "single",
      "defaultValue": null
    },
    {
      "type": "Boolean",
      "created": "2023-06-02T19:01:43.730714Z",
      "modified": "2023-07-19T21:48:44.395142Z",
      "id": 91,
      "name": "hidden_sc",
      "variableName": "hidden_sc",
      "description": null,
      "required": false,
      "category": "USER",
      "lastModifiedBy": "scheck.dev (API)",
      "trueLabel": "yes",
      "falseLabel": "no",
      "defaultValue": false
    },
    {
      "type": "Picklist",
      "created": "2023-05-22T20:30:00.044552Z",
      "modified": "2023-07-19T21:48:44.353860Z",
      "id": 19,
      "name": "CPU Type",
      "variableName": "cPUType",
      "description": null,
      "required": false,
      "category": "USER",
      "lastModifiedBy": "scheck.dev (API)",
      "selectType": "single",
      "defaultValue": null
    }
  ],
  "pageable": {
    "sort": {
      "empty": false,
      "sorted": true,
      "unsorted": false
    },
    "offset": 0,
    "pageNumber": 0,
    "pageSize": 100,
    "paged": true,
    "unpaged": false
  },
  "totalPages": 1,
  "last": true,
  "totalElements": 6,
  "size": 100,
  "number": 0,
  "sort": {
    "empty": false,
    "sorted": true,
    "unsorted": false
  },
  "numberOfElements": 6,
  "first": true,
  "empty": false
}

Properties

allOf

Name Type Required Restrictions Description
anonymous object false none none
» content [object] false none none
»» type string true none none
»» created string true none none
»» modified string true none none
»» id number true none none
»» name string true none none
»» variableName string true none none
»» description string true none none
»» required boolean true none none
»» category string true none none
»» hasExtension boolean false none none
»» lastModifiedBy string true none none
»» selectType string true none none
»» defaultValue string true none none
»» trueLabel string false none none
»» falseLabel string false none none

and

Name Type Required Restrictions Description
anonymous PagedResponse false none none

BlueprintAvailableFieldsResponse

{
  "content": [
    {
      "id": 303,
      "name": "jacksonFakeField10",
      "variableName": "jacksonFakeField10",
      "description": null,
      "type": "Number",
      "modified": "2023-07-11T16:32:35.498893Z",
      "category": "USER",
      "lastModifiedBy": "scheck@cpq1.logik.dev"
    },
    {
      "id": 323,
      "name": "FletchTestPicker2",
      "variableName": "fletchTestPicker2",
      "description": null,
      "type": "ProductPicker",
      "modified": "2023-07-17T23:00:27.861311Z",
      "category": "PRODUCT_PICKER",
      "selectType": "multi",
      "lastModifiedBy": "scheck@cpq1.logik.dev"
    },
    {
      "id": 281,
      "name": "jacksonPolicy",
      "variableName": "jacksonPolicy",
      "description": null,
      "type": "Picklist",
      "modified": "2023-07-05T13:47:14.613554Z",
      "category": "USER",
      "selectType": "single",
      "lastModifiedBy": "scheck@cpq1.logik.dev"
    }
  ],
  "pageable": {
    "sort": {
      "empty": true,
      "sorted": false,
      "unsorted": true
    },
    "offset": 0,
    "pageNumber": 0,
    "pageSize": 100,
    "paged": true,
    "unpaged": false
  },
  "totalPages": 1,
  "last": true,
  "totalElements": 62,
  "size": 100,
  "number": 0,
  "sort": {
    "empty": true,
    "sorted": false,
    "unsorted": true
  },
  "numberOfElements": 62,
  "first": true,
  "empty": false
}

Properties

allOf

Name Type Required Restrictions Description
anonymous object false none none
» content [object] false none none
»» id number true none none
»» name string true none none
»» variableName string true none none
»» description string true none none
»» type string true none none
»» modified string true none none
»» category string true none none
»» lastModifiedBy string true none none
»» selectType string true none none

and

Name Type Required Restrictions Description
anonymous PagedResponse false none none

BlueprintDeploymentResponse

{
  "content": [
    {
      "name": "PC Builder",
      "variableName": "pCBuilder",
      "revision": 55,
      "created": "2023-09-15T17:40:53.718642Z",
      "userId": "scheck@cpq1.logik.dev"
    }
  ],
  "pageable": {
    "sort": {
      "empty": false,
      "sorted": true,
      "unsorted": false
    },
    "offset": 0,
    "pageNumber": 0,
    "pageSize": 1,
    "paged": true,
    "unpaged": false
  },
  "totalElements": 55,
  "totalPages": 55,
  "last": false,
  "size": 1,
  "number": 0,
  "sort": {
    "empty": false,
    "sorted": true,
    "unsorted": false
  },
  "numberOfElements": 1,
  "first": true,
  "empty": false
}

Properties

allOf

Name Type Required Restrictions Description
anonymous object false none none
» content [object] false none none
»» name string false none none
»» variableName string false none none
»» revision number false none none
»» created string false none none
»» userId string false none none

and

Name Type Required Restrictions Description
anonymous PagedResponse false none none

BlueprintEnrichmentScript

{
  "script": {
    "content": "var x=1;\nreturn cfgRequest;",
    "returnType": "map"
  },
  "runOnDemand": false
}

Properties

Name Type Required Restrictions Description
script object false none none
» content string false none none
» returnType string false none none
runOnDemand boolean false none none

BlueprintScriptListResponse

[
  {
    "created": "2023-09-15T17:40:39.187492Z",
    "modified": "2023-09-15T17:40:39.187492Z",
    "id": 9,
    "scriptArea": "INIT",
    "script": {
      "created": "2023-09-15T17:40:39.199291Z",
      "modified": "2023-09-15T17:40:39.199291Z",
      "id": 41,
      "content": "var x=1;\nreturn cfgRequest;",
      "returnType": "map"
    },
    "runOnDemand": false,
    "forcedOnDemand": false
  }
]

Properties

Name Type Required Restrictions Description
created string false none none
modified string false none none
id number false none none
scriptArea string false none none
script object false none none
» created string false none none
» modified string false none none
» id number false none none
» content string false none none
» returnType string false none none
runOnDemand boolean false none none
forcedOnDemand boolean false none none

LayoutResponse

{
  "created": "2023-09-07T13:37:51.195021Z",
  "modified": "2023-09-07T13:37:51.195021Z",
  "id": 131,
  "label": "test",
  "variableName": "pCBuilder_test",
  "layout": {
    "version": 1,
    "label": "test",
    "variableName": "pCBuilder_test",
    "header": {
      "text": "Logik",
      "url": ""
    },
    "tierDef": [
      {
        "depth": 1,
        "representation": "VerticalTab"
      }
    ],
    "layout": {
      "label": "layoutsection",
      "variableName": "layoutsection",
      "tiers": [
        {
          "label": "Tab 1",
          "variableName": "verticaltab1",
          "depth": 1,
          "columnSets": [
            {
              "variableName": "col1",
              "elements": [
                {
                  "type": "field",
                  "variableName": "cPUType",
                  "columnOrder": 1
                },
                {
                  "type": "field",
                  "variableName": "hidden_sc",
                  "columnOrder": 1
                }
              ]
            }
          ]
        },
        {
          "label": "Tab 2",
          "variableName": "verticaltab2",
          "depth": 1,
          "columnSets": [
            {
              "variableName": "col2",
              "elements": [
                {
                  "type": "field",
                  "variableName": "textTest_swc",
                  "columnOrder": 1
                }
              ]
            }
          ]
        },
        {
          "label": "Tab 3",
          "variableName": "verticaltab3",
          "depth": 1,
          "columnSets": [
            {
              "variableName": "col3",
              "elements": [
                {
                  "type": "field",
                  "variableName": "startDate",
                  "columnOrder": 1
                },
                {
                  "type": "field",
                  "variableName": "endDate",
                  "columnOrder": 1
                }
              ]
            }
          ]
        }
      ]
    },
    "fields": [
      {
        "type": "Picklist",
        "variableName": "cPUType",
        "label": "CPU Type"
      },
      {
        "type": "Boolean",
        "variableName": "hidden_sc",
        "label": "hidden_sc"
      },
      {
        "type": "Text",
        "variableName": "textTest_swc",
        "label": "textTest_swc"
      }
    ],
    "productList": {
      "location": "modal",
      "totalLocation": "bottom",
      "hierarchyColumn": "displayName",
      "type": "sales",
      "columns": [
        {
          "variableName": "displayName",
          "label": "Product",
          "width": "40%"
        },
        {
          "variableName": "quantity",
          "label": "Qty",
          "width": "10%"
        },
        {
          "variableName": "price",
          "label": "Price",
          "width": "25%"
        }
      ],
      "displayNullPriceAs": null,
      "displayZeroPriceAs": null,
      "variableName": ""
    }
  },
  "lastModifiedBy": "scheck@cpq1.logik.dev",
  "hasLayoutFile": true
}

Properties

Name Type Required Restrictions Description
created string false none none
modified string false none none
id number false none none
label string false none none
variableName string false none none
layout object false none none
» version number false none none
» label string false none none
» variableName string false none none
» header object false none none
»» text string false none none
»» url string false none none
» tierDef [object] false none none
»» depth number false none none
»» representation string false none none
» layout object false none none
»» label string false none none
»» variableName string false none none
»» tiers [object] false none none
»»» label string true none none
»»» variableName string true none none
»»» depth number true none none
»»» columnSets [object] true none none
»»»» variableName string true none none
»»»» elements [object] true none none
»»»»» type string true none none
»»»»» variableName string true none none
»»»»» columnOrder number true none none
» fields [object] false none none
»» type string true none none
»» variableName string true none none
»» label string true none none
» productList object false none none
»» location string false none none
»» totalLocation string false none none
»» hierarchyColumn string false none none
»» type string false none none
»» columns [object] false none none
»»» variableName string true none none
»»» label string true none none
»»» width string true none none
»» displayNullPriceAs string false none none
»» displayZeroPriceAs string false none none
»» variableName string false none none
lastModifiedBy string false none none
hasLayoutFile boolean false none none

ConfigProductPostRequest

{
  "partnerProductId": "01t6e00000949ujAAA"
}

Properties

Name Type Required Restrictions Description
partnerProductId string false none none

ConfigProductPayload

{
  "created": "2023-06-30T18:34:18.462919Z",
  "modified": "2023-09-20T17:01:23.129051Z",
  "id": 2,
  "name": "jackson",
  "blueprintVariableName": null,
  "partnerProductId": "01t6e00000949ujAAA"
}

Properties

Name Type Required Restrictions Description
created string(date-time) false none none
modified string(date-time) false none none
id integer false none none
name string false none none
blueprintVariableName string false none none
partnerProductId string false none none

ConfigProductListResponse

{
  "content": [
    {
      "created": "2023-06-30T18:34:18.462919Z",
      "modified": "2023-07-18T15:11:27.169540Z",
      "id": 2,
      "name": "jackson",
      "blueprintVariableName": null,
      "partnerProductId": "01t6e00000949ujAAA"
    },
    {
      "created": "2023-06-13T12:45:33.373568Z",
      "modified": "2023-06-16T17:56:45.413819Z",
      "id": 1,
      "name": "SM Parent",
      "blueprintVariableName": "psmTester",
      "partnerProductId": "01t6e0000093z9MAAQ"
    }
  ],
  "pageable": {
    "sort": {
      "empty": false,
      "sorted": true,
      "unsorted": false
    },
    "offset": 0,
    "pageNumber": 0,
    "pageSize": 100,
    "paged": true,
    "unpaged": false
  },
  "totalElements": 2,
  "last": true,
  "totalPages": 1,
  "size": 100,
  "number": 0,
  "sort": {
    "empty": false,
    "sorted": true,
    "unsorted": false
  },
  "numberOfElements": 2,
  "first": true,
  "empty": false
}

Properties

allOf

Name Type Required Restrictions Description
anonymous object false none none
» content [object] false none none
»» created string true none none
»» modified string true none none
»» id number true none none
»» name string true none none
»» blueprintVariableName string true none none
»» partnerProductId string true none none

and

Name Type Required Restrictions Description
anonymous PagedResponse false none none

PicklistExtensionRequest

{
  "created": "2023-09-20T15:46:20.788140301Z",
  "modified": "2023-09-20T15:46:20.788140301Z",
  "id": 1,
  "columns": [
    {
      "created": "2023-09-20T15:46:20.807360033Z",
      "modified": "2023-09-20T15:46:20.807360033Z",
      "id": 1,
      "header": "value",
      "mappedFieldVarName": null,
      "columnUse": "Value",
      "extendedInfo": false,
      "customKey": null,
      "orderNumber": 1
    },
    {
      "created": "2023-09-20T15:46:20.864598589Z",
      "modified": "2023-09-20T15:46:20.864598589Z",
      "id": 2,
      "header": "weight",
      "mappedFieldVarName": null,
      "columnUse": null,
      "extendedInfo": true,
      "customKey": null,
      "orderNumber": 2
    },
    {
      "created": "2023-09-20T15:46:20.865972460Z",
      "modified": "2023-09-20T15:46:20.865972460Z",
      "id": 3,
      "header": "height",
      "mappedFieldVarName": "ProductId",
      "columnUse": "ProductId",
      "extendedInfo": true,
      "customKey": null,
      "orderNumber": 3
    },
    {
      "created": "2023-09-20T15:46:20.866900305Z",
      "modified": "2023-09-20T15:46:20.866900305Z",
      "id": 4,
      "header": "ProductDescription",
      "mappedFieldVarName": "ProductDescription",
      "columnUse": "ProductDescription",
      "extendedInfo": true,
      "customKey": null,
      "orderNumber": 4
    },
    {
      "created": "2023-09-20T15:46:20.867762877Z",
      "modified": "2023-09-20T15:46:20.867762877Z",
      "id": 5,
      "header": "ProductNotes",
      "mappedFieldVarName": "ProductNotes",
      "columnUse": "ProductNotes",
      "extendedInfo": true,
      "customKey": null,
      "orderNumber": 5
    },
    {
      "created": "2023-09-20T15:46:20.868909161Z",
      "modified": "2023-09-20T15:46:20.868909161Z",
      "id": 6,
      "header": "ProductUniqueIdentifier",
      "mappedFieldVarName": "ProductUniqueIdentifier",
      "columnUse": "ProductUniqueIdentifier",
      "extendedInfo": true,
      "customKey": null,
      "orderNumber": 6
    },
    {
      "created": "2023-09-20T15:46:20.870015484Z",
      "modified": "2023-09-20T15:46:20.870015484Z",
      "id": 7,
      "header": "ProductOrderNumber",
      "mappedFieldVarName": null,
      "columnUse": null,
      "extendedInfo": false,
      "customKey": null,
      "orderNumber": 7
    }
  ],
  "jobId": 101,
  "enrichEnabled": false,
  "variableName": "newPicklist"
}

Properties

Name Type Required Restrictions Description
created string false none none
modified string false none none
id number false none none
columns [object] false none none
» created string true none none
» modified string true none none
» id number true none none
» header string true none none
» mappedFieldVarName string true none none
» columnUse string true none none
» extendedInfo boolean true none none
» customKey string true none none
» orderNumber number true none none
jobId number false none none
enrichEnabled boolean false none none
variableName string false none none

ProductPickerListResponse

{
  "content": [
    {
      "created": "string",
      "modified": "string",
      "id": 0,
      "name": "string",
      "variableName": "string",
      "description": "string",
      "required": true,
      "category": "string",
      "lastModifiedBy": "string",
      "selectType": "string",
      "enrichEnabled": true,
      "quantitySelectionLinked": true,
      "defaultType": "string",
      "defaultBomType": "string",
      "defaultParentProduct": "string",
      "defaultUom": "string",
      "defaultPricingProductSellingModelId": "string",
      "defaultPricingStartDate": "string",
      "defaultPricingEndDate": "string",
      "layoutProductDetails": [
        "string"
      ],
      "fields": [
        {
          "created": "string",
          "modified": "string",
          "id": 0,
          "variableName": "string",
          "label": "string",
          "fieldType": "string",
          "target": "string",
          "lastModifiedBy": "string"
        }
      ],
      "rules": [
        {
          "created": "string",
          "modified": "string",
          "id": 0,
          "variableName": "string",
          "type": "string",
          "status": "string",
          "columns": [
            {
              "id": 0,
              "header": "string",
              "mappedFieldVarName": "string",
              "columnUse": "string",
              "orderNumber": 0,
              "operator": "string"
            }
          ]
        }
      ],
      "aggregateFields": [
        null
      ]
    }
  ],
  "pageable": {
    "sort": {
      "empty": true,
      "unsorted": true,
      "sorted": true
    },
    "offset": 0,
    "pageNumber": 0,
    "pageSize": 0,
    "paged": true,
    "unpaged": true
  },
  "totalPages": 0,
  "last": true,
  "totalElements": 0,
  "size": 0,
  "number": 0,
  "sort": {
    "empty": true,
    "sorted": true,
    "unsorted": true
  },
  "numberOfElements": 0,
  "first": true,
  "empty": true
}

Properties

allOf

Name Type Required Restrictions Description
anonymous object false none none
» content [object] false none none
»» created string false none none
»» modified string false none none
»» id number false none none
»» name string false none none
»» variableName string false none none
»» description string false none none
»» required boolean false none none
»» category string false none none
»» lastModifiedBy string false none none
»» selectType string false none none
»» enrichEnabled boolean false none none
»» quantitySelectionLinked boolean false none none
»» defaultType string false none none
»» defaultBomType string false none none
»» defaultParentProduct string false none none
»» defaultUom string false none none
»» defaultPricingProductSellingModelId string false none none
»» defaultPricingStartDate string false none none
»» defaultPricingEndDate string false none none
»» layoutProductDetails [string] false none none
»» fields [object] false none none
»»» created string true none none
»»» modified string true none none
»»» id number true none none
»»» variableName string true none none
»»» label string true none none
»»» fieldType string true none none
»»» target string true none none
»»» lastModifiedBy string true none none
»» rules [object] false none none
»»» created string false none none
»»» modified string false none none
»»» id number false none none
»»» variableName string false none none
»»» type string false none none
»»» status string false none none
»»» columns [object] false none none
»»»» id number true none none
»»»» header string true none none
»»»» mappedFieldVarName string true none none
»»»» columnUse string true none none
»»»» orderNumber number true none none
»»»» operator string false none none
»» aggregateFields [any] false none none

and

Name Type Required Restrictions Description
anonymous PagedResponse false none none

CreateProductPickerRequest

{
  "type": "ProductPicker",
  "name": "newPicker",
  "variableName": "newPicker",
  "quantitySelectionLinked": false,
  "selectType": "multi",
  "fields": []
}

Properties

Name Type Required Restrictions Description
type string false none none
name string false none none
variableName string false none none
quantitySelectionLinked boolean false none none
selectType string false none none
fields [any] false none none

CreateProductPickerResponse

{
  "type": "ProductPicker",
  "created": "2023-09-20T15:55:02.622582782Z",
  "modified": "2023-09-20T15:55:02.622582782Z",
  "id": 78,
  "name": "newPicker",
  "variableName": "newPicker",
  "description": null,
  "required": false,
  "category": "PRODUCT_PICKER",
  "lastModifiedBy": "scheck@sm1.logik.dev",
  "selectType": "multi",
  "enrichEnabled": false,
  "quantitySelectionLinked": false,
  "defaultType": null,
  "defaultBomType": null,
  "defaultParentProduct": null,
  "defaultUom": null,
  "defaultPricingProductSellingModelId": null,
  "defaultPricingStartDate": null,
  "defaultPricingEndDate": null,
  "layoutProductDetails": null,
  "fields": [
    {
      "created": "2023-09-20T15:55:02.625127085Z",
      "modified": "2023-09-20T15:55:02.625127085Z",
      "id": 31,
      "variableName": "newPicker.value",
      "label": "Value",
      "fieldType": "Text",
      "target": "ProductId",
      "lastModifiedBy": "scheck@sm1.logik.dev"
    },
    {
      "created": "2023-09-20T15:55:02.679673035Z",
      "modified": "2023-09-20T15:55:02.679673035Z",
      "id": 32,
      "variableName": "newPicker.select",
      "label": "Select",
      "fieldType": "Boolean",
      "lastModifiedBy": "scheck@sm1.logik.dev"
    },
    {
      "created": "2023-09-20T15:55:02.682612353Z",
      "modified": "2023-09-20T15:55:02.682612353Z",
      "id": 33,
      "variableName": "newPicker.quantity",
      "label": "Quantity",
      "fieldType": "Number",
      "target": "ProductQuantity",
      "lastModifiedBy": "scheck@sm1.logik.dev"
    }
  ],
  "rules": [],
  "aggregateFields": null
}

Properties

Name Type Required Restrictions Description
type string false none none
created string false none none
modified string false none none
id number false none none
name string false none none
variableName string false none none
description string false none none
required boolean false none none
category string false none none
lastModifiedBy string false none none
selectType string false none none
enrichEnabled boolean false none none
quantitySelectionLinked boolean false none none
defaultType string false none none
defaultBomType string false none none
defaultParentProduct string false none none
defaultUom string false none none
defaultPricingProductSellingModelId string false none none
defaultPricingStartDate string false none none
defaultPricingEndDate string false none none
layoutProductDetails string false none none
fields [object] false none none
» created string true none none
» modified string true none none
» id number true none none
» variableName string true none none
» label string true none none
» fieldType string true none none
» target string true none none
» lastModifiedBy string true none none
rules [any] false none none
aggregateFields string false none none

UpdateProductPickerRequest

{
  "id": 78,
  "name": "newPicker",
  "description": null,
  "fields": [
    {
      "created": "2023-09-20T15:55:02.625127Z",
      "modified": "2023-09-20T15:55:02.625127Z",
      "id": 31,
      "variableName": "newPicker.value",
      "label": "Value",
      "fieldType": "Text",
      "target": "ProductId",
      "lastModifiedBy": "scheck@sm1.logik.dev"
    },
    {
      "created": "2023-09-20T15:55:02.679673Z",
      "modified": "2023-09-20T15:55:02.679673Z",
      "id": 32,
      "variableName": "newPicker.select",
      "label": "Select",
      "fieldType": "Boolean",
      "lastModifiedBy": "scheck@sm1.logik.dev"
    },
    {
      "created": "2023-09-20T15:55:02.682612Z",
      "modified": "2023-09-20T15:55:02.682612Z",
      "id": 33,
      "variableName": "newPicker.quantity",
      "label": "Quantity",
      "fieldType": "Number",
      "target": "ProductQuantity",
      "lastModifiedBy": "scheck@sm1.logik.dev"
    },
    {
      "created": "2023-09-20T15:56:13.437274Z",
      "modified": "2023-09-20T15:56:13.437274Z",
      "id": 34,
      "variableName": "newPicker.subFieldNumber",
      "label": "subFieldNumber",
      "fieldType": "Number",
      "target": "ProductExtended",
      "lastModifiedBy": "scheck@sm1.logik.dev"
    }
  ],
  "layoutProductDetails": [
    "name",
    "price"
  ],
  "quantitySelectionLinked": true,
  "selectType": "multi",
  "type": "ProductPicker",
  "variableName": "newPicker",
  "unsavedOptions": false,
  "unsavedAction": false,
  "savedVersion": 1,
  "rules": [],
  "currentAction": {},
  "created": "2023-09-20T15:55:02.622583Z",
  "modified": "2023-09-20T15:55:55.565127Z",
  "required": true,
  "category": "PRODUCT_PICKER",
  "lastModifiedBy": "scheck@sm1.logik.dev",
  "enrichEnabled": false,
  "defaultType": null,
  "defaultBomType": null,
  "defaultParentProduct": null,
  "defaultUom": null,
  "defaultPricingProductSellingModelId": "OneTime_OneTime_2023_07_05",
  "defaultPricingStartDate": null,
  "defaultPricingEndDate": null,
  "aggregateFields": [
    {
      "type": "Number",
      "created": "2023-09-20T15:56:22.141851Z",
      "modified": "2023-09-20T15:56:22.141851Z",
      "id": 83,
      "name": "subFieldNumber Sum",
      "variableName": "newPicker.aggregates.subFieldNumber_sum",
      "description": null,
      "required": false,
      "category": "SET_AGGREGATE",
      "aggregateType": "SUM",
      "fieldVariableNames": [
        "newPicker.subFieldNumber"
      ],
      "lastModifiedBy": "scheck@sm1.logik.dev",
      "defaultValue": null,
      "unitLabel": null,
      "precision": 32,
      "minValue": null,
      "maxValue": null,
      "stepValue": null
    }
  ],
  "options": [
    {
      "id": 38,
      "name": "option1",
      "value": "option1",
      "imageUrl": null,
      "description": null,
      "optionGroup": null,
      "modified": "2023-09-20T15:55:28.907745Z",
      "defaultValue": false,
      "order": 10
    },
    {
      "id": 39,
      "name": "option2",
      "value": "option2",
      "imageUrl": null,
      "description": null,
      "optionGroup": null,
      "modified": "2023-09-20T15:55:28.917641Z",
      "defaultValue": true,
      "order": 20
    },
    {
      "id": 40,
      "name": "option3",
      "value": "option3",
      "imageUrl": null,
      "description": null,
      "optionGroup": null,
      "modified": "2023-09-20T15:55:28.922805Z",
      "defaultValue": false,
      "order": 30
    }
  ],
  "aggregatesToDelete": [],
  "aggregates": [
    {
      "type": "Number",
      "created": "2023-09-20T15:56:22.141851Z",
      "modified": "2023-09-20T15:56:22.141851Z",
      "id": 83,
      "name": "subFieldNumber Sum",
      "variableName": "newPicker.aggregates.subFieldNumber_sum",
      "description": null,
      "required": false,
      "category": "SET_AGGREGATE",
      "aggregateType": "SUM",
      "fieldVariableNames": [
        "newPicker.subFieldNumber"
      ],
      "lastModifiedBy": "scheck@sm1.logik.dev",
      "defaultValue": null,
      "unitLabel": null,
      "precision": 32,
      "minValue": null,
      "maxValue": null,
      "stepValue": null
    }
  ],
  "unsavedAggregates": false
}

Properties

Name Type Required Restrictions Description
id number false none none
name string false none none
description string false none none
fields [object] false none none
» created string true none none
» modified string true none none
» id number true none none
» variableName string true none none
» label string true none none
» fieldType string true none none
» target string true none none
» lastModifiedBy string true none none
layoutProductDetails [string] false none none
quantitySelectionLinked boolean false none none
selectType string false none none
type string false none none
variableName string false none none
unsavedOptions boolean false none none
unsavedAction boolean false none none
savedVersion number false none none
rules [any] false none none
currentAction object false none none
created string false none none
modified string false none none
required boolean false none none
category string false none none
lastModifiedBy string false none none
enrichEnabled boolean false none none
defaultType string false none none
defaultBomType string false none none
defaultParentProduct string false none none
defaultUom string false none none
defaultPricingProductSellingModelId string false none none
defaultPricingStartDate string false none none
defaultPricingEndDate string false none none
aggregateFields [object] false none none
» type string false none none
» created string false none none
» modified string false none none
» id number false none none
» name string false none none
» variableName string false none none
» description string false none none
» required boolean false none none
» category string false none none
» aggregateType string false none none
» fieldVariableNames [string] false none none
» lastModifiedBy string false none none
» defaultValue string false none none
» unitLabel string false none none
» precision number false none none
» minValue string false none none
» maxValue string false none none
» stepValue string false none none
options [object] false none none
» id number true none none
» name string true none none
» value string true none none
» imageUrl string true none none
» description string true none none
» optionGroup string true none none
» modified string true none none
» defaultValue boolean true none none
» order number true none none
aggregatesToDelete [any] false none none
aggregates [object] false none none
» type string false none none
» created string false none none
» modified string false none none
» id number false none none
» name string false none none
» variableName string false none none
» description string false none none
» required boolean false none none
» category string false none none
» aggregateType string false none none
» fieldVariableNames [string] false none none
» lastModifiedBy string false none none
» defaultValue string false none none
» unitLabel string false none none
» precision number false none none
» minValue string false none none
» maxValue string false none none
» stepValue string false none none
unsavedAggregates boolean false none none

UpdateProductPickerResponse

{
  "type": "ProductPicker",
  "created": "2023-09-20T15:55:02.622583Z",
  "modified": "2023-09-20T15:56:27.430011623Z",
  "id": 78,
  "name": "newPicker",
  "variableName": "newPicker",
  "description": null,
  "required": true,
  "category": "PRODUCT_PICKER",
  "lastModifiedBy": "scheck@sm1.logik.dev",
  "selectType": "multi",
  "enrichEnabled": false,
  "quantitySelectionLinked": true,
  "defaultType": null,
  "defaultBomType": null,
  "defaultParentProduct": null,
  "defaultUom": null,
  "defaultPricingProductSellingModelId": "OneTime_OneTime_2023_07_05",
  "defaultPricingStartDate": null,
  "defaultPricingEndDate": null,
  "layoutProductDetails": [
    "price",
    "name"
  ],
  "fields": [
    {
      "created": "2023-09-20T15:55:02.625127Z",
      "modified": "2023-09-20T15:55:02.625127Z",
      "id": 31,
      "variableName": "newPicker.value",
      "label": "Value",
      "fieldType": "Text",
      "target": "ProductId",
      "lastModifiedBy": "scheck@sm1.logik.dev"
    },
    {
      "created": "2023-09-20T15:55:02.679673Z",
      "modified": "2023-09-20T15:55:02.679673Z",
      "id": 32,
      "variableName": "newPicker.select",
      "label": "Select",
      "fieldType": "Boolean",
      "lastModifiedBy": "scheck@sm1.logik.dev"
    },
    {
      "created": "2023-09-20T15:55:02.682612Z",
      "modified": "2023-09-20T15:55:02.682612Z",
      "id": 33,
      "variableName": "newPicker.quantity",
      "label": "Quantity",
      "fieldType": "Number",
      "target": "ProductQuantity",
      "lastModifiedBy": "scheck@sm1.logik.dev"
    }
  ],
  "rules": [],
  "aggregateFields": [
    {
      "type": "Number",
      "created": "2023-09-20T15:56:22.141851Z",
      "modified": "2023-09-20T15:56:22.141851Z",
      "id": 83,
      "name": "subFieldNumber Sum",
      "variableName": "newPicker.aggregates.subFieldNumber_sum",
      "description": null,
      "required": false,
      "category": "SET_AGGREGATE",
      "aggregateType": "SUM",
      "fieldVariableNames": [
        "newPicker.subFieldNumber"
      ],
      "lastModifiedBy": "scheck@sm1.logik.dev",
      "defaultValue": null,
      "unitLabel": null,
      "precision": 32,
      "minValue": null,
      "maxValue": null,
      "stepValue": null
    }
  ]
}

Properties

Name Type Required Restrictions Description
type string false none none
created string false none none
modified string false none none
id number false none none
name string false none none
variableName string false none none
description string false none none
required boolean false none none
category string false none none
lastModifiedBy string false none none
selectType string false none none
enrichEnabled boolean false none none
quantitySelectionLinked boolean false none none
defaultType string false none none
defaultBomType string false none none
defaultParentProduct string false none none
defaultUom string false none none
defaultPricingProductSellingModelId string false none none
defaultPricingStartDate string false none none
defaultPricingEndDate string false none none
layoutProductDetails [string] false none none
fields [object] false none none
» created string true none none
» modified string true none none
» id number true none none
» variableName string true none none
» label string true none none
» fieldType string true none none
» target string true none none
» lastModifiedBy string true none none
rules [any] false none none
aggregateFields [object] false none none
» type string false none none
» created string false none none
» modified string false none none
» id number false none none
» name string false none none
» variableName string false none none
» description string false none none
» required boolean false none none
» category string false none none
» aggregateType string false none none
» fieldVariableNames [string] false none none
» lastModifiedBy string false none none
» defaultValue string false none none
» unitLabel string false none none
» precision number false none none
» minValue string false none none
» maxValue string false none none
» stepValue string false none none

ProductPickerOptionsResponse

{
  "content": [
    {
      "id": 38,
      "name": "option1",
      "value": "option1",
      "imageUrl": null,
      "description": null,
      "optionGroup": null,
      "modified": "2023-09-20T15:55:28.907745Z",
      "defaultValue": false,
      "order": 10
    },
    {
      "id": 39,
      "name": "option2",
      "value": "option2",
      "imageUrl": null,
      "description": null,
      "optionGroup": null,
      "modified": "2023-09-20T15:55:28.917641Z",
      "defaultValue": true,
      "order": 20
    },
    {
      "id": 40,
      "name": "option3",
      "value": "option3",
      "imageUrl": null,
      "description": null,
      "optionGroup": null,
      "modified": "2023-09-20T15:55:28.922805Z",
      "defaultValue": false,
      "order": 30
    }
  ],
  "pageable": {
    "sort": {
      "empty": false,
      "sorted": true,
      "unsorted": false
    },
    "offset": 0,
    "pageNumber": 0,
    "pageSize": 100,
    "paged": true,
    "unpaged": false
  },
  "totalElements": 3,
  "last": true,
  "totalPages": 1,
  "size": 100,
  "number": 0,
  "sort": {
    "empty": false,
    "sorted": true,
    "unsorted": false
  },
  "numberOfElements": 3,
  "first": true,
  "empty": false
}

Properties

allOf

Name Type Required Restrictions Description
anonymous object false none none
» content [object] false none none
»» id number true none none
»» name string true none none
»» value string true none none
»» imageUrl string true none none
»» description string true none none
»» optionGroup string true none none
»» modified string true none none
»» defaultValue boolean true none none
»» order number true none none

and

Name Type Required Restrictions Description
anonymous PagedResponse false none none

CreateProductPickerOptionsRequest

[
  {
    "order": "10",
    "value": "option1",
    "defaultValue": "false",
    "name": "option1"
  },
  {
    "order": "20",
    "value": "option2",
    "defaultValue": "true",
    "name": "option2"
  },
  {
    "order": "30",
    "value": "option3",
    "defaultValue": "false",
    "name": "option3"
  }
]

Properties

Name Type Required Restrictions Description
order string true none none
value string true none none
defaultValue string true none none
name string true none none

CreateProductPickerOptionsResponse

[
  {
    "id": 38,
    "name": "option1",
    "value": "option1",
    "imageUrl": null,
    "description": null,
    "order": 10,
    "defaultValue": false
  },
  {
    "id": 39,
    "name": "option2",
    "value": "option2",
    "imageUrl": null,
    "description": null,
    "order": 20,
    "defaultValue": true
  },
  {
    "id": 40,
    "name": "option3",
    "value": "option3",
    "imageUrl": null,
    "description": null,
    "order": 30,
    "defaultValue": false
  }
]

Properties

Name Type Required Restrictions Description
id number true none none
name string true none none
value string true none none
imageUrl string true none none
description string true none none
order number true none none
defaultValue boolean true none none

ProductPickerResponse

{
  "type": "ProductPicker",
  "created": "2023-09-20T15:55:02.622583Z",
  "modified": "2023-09-20T15:56:27.430012Z",
  "id": 78,
  "name": "newPicker",
  "variableName": "newPicker",
  "description": null,
  "required": true,
  "category": "PRODUCT_PICKER",
  "lastModifiedBy": "scheck@sm1.logik.dev",
  "selectType": "multi",
  "enrichEnabled": false,
  "quantitySelectionLinked": true,
  "defaultType": null,
  "defaultBomType": null,
  "defaultParentProduct": null,
  "defaultUom": null,
  "defaultPricingProductSellingModelId": "OneTime_OneTime_2023_07_05",
  "defaultPricingStartDate": null,
  "defaultPricingEndDate": null,
  "layoutProductDetails": [
    "price",
    "name"
  ],
  "fields": [
    {
      "created": "2023-09-20T15:55:02.625127Z",
      "modified": "2023-09-20T15:55:02.625127Z",
      "id": 31,
      "variableName": "newPicker.value",
      "label": "Value",
      "fieldType": "Text",
      "target": "ProductId",
      "lastModifiedBy": "scheck@sm1.logik.dev"
    },
    {
      "created": "2023-09-20T15:55:02.679673Z",
      "modified": "2023-09-20T15:55:02.679673Z",
      "id": 32,
      "variableName": "newPicker.select",
      "label": "Select",
      "fieldType": "Boolean",
      "lastModifiedBy": "scheck@sm1.logik.dev"
    },
    {
      "created": "2023-09-20T15:55:02.682612Z",
      "modified": "2023-09-20T15:55:02.682612Z",
      "id": 33,
      "variableName": "newPicker.quantity",
      "label": "Quantity",
      "fieldType": "Number",
      "target": "ProductQuantity",
      "lastModifiedBy": "scheck@sm1.logik.dev"
    }
  ],
  "rules": [
    {
      "created": "2023-09-20T15:56:44.109145Z",
      "modified": "2023-09-20T15:58:08.254303Z",
      "id": 7,
      "variableName": "newOptionInclusion",
      "type": "Inclusion",
      "status": "active",
      "columns": [
        {
          "id": 20,
          "header": "value",
          "mappedFieldVarName": "newPicker.value",
          "columnUse": "ProductId",
          "orderNumber": 0
        },
        {
          "id": 21,
          "header": "hasPromoCode",
          "mappedFieldVarName": "hasPromoCode",
          "operator": "equals",
          "columnUse": "Filter",
          "orderNumber": 1
        }
      ]
    },
    {
      "created": "2023-09-20T15:58:38.609609Z",
      "modified": "2023-09-20T15:58:38.609609Z",
      "id": 8,
      "variableName": "setFieldValues",
      "type": "Determination",
      "status": "active",
      "columns": [
        {
          "id": 22,
          "header": "value",
          "mappedFieldVarName": "newPicker.value",
          "columnUse": "ProductId",
          "orderNumber": 0
        },
        {
          "id": 23,
          "header": "newPicker.quantity",
          "mappedFieldVarName": "newPicker.quantity",
          "columnUse": "ProductQuantity",
          "orderNumber": 1
        },
        {
          "id": 24,
          "header": "newPicker.subFieldNumber",
          "mappedFieldVarName": "newPicker.subFieldNumber",
          "columnUse": "ProductExtended",
          "orderNumber": 2
        }
      ]
    },
    {
      "created": "2023-09-20T15:59:10.489882Z",
      "modified": "2023-09-20T15:59:10.489882Z",
      "id": 9,
      "variableName": "setQty",
      "type": "Quantity",
      "status": "active",
      "columns": [
        {
          "id": 25,
          "header": "value",
          "mappedFieldVarName": "newPicker.value",
          "columnUse": "ProductId",
          "orderNumber": 0
        },
        {
          "id": 26,
          "header": "quantity.min",
          "mappedFieldVarName": "quantity.min",
          "columnUse": "Field",
          "orderNumber": 1
        },
        {
          "id": 27,
          "header": "quantity.max",
          "mappedFieldVarName": "quantity.max",
          "columnUse": "Field",
          "orderNumber": 2
        },
        {
          "id": 28,
          "header": "quantity.step",
          "mappedFieldVarName": "quantity.step",
          "columnUse": "Field",
          "orderNumber": 3
        }
      ]
    }
  ],
  "aggregateFields": [
    {
      "type": "Number",
      "created": "2023-09-20T15:56:22.141851Z",
      "modified": "2023-09-20T15:56:22.141851Z",
      "id": 83,
      "name": "subFieldNumber Sum",
      "variableName": "newPicker.aggregates.subFieldNumber_sum",
      "description": null,
      "required": false,
      "category": "SET_AGGREGATE",
      "aggregateType": "SUM",
      "fieldVariableNames": [
        "newPicker.subFieldNumber"
      ],
      "lastModifiedBy": "scheck@sm1.logik.dev",
      "defaultValue": null,
      "unitLabel": null,
      "precision": 32,
      "minValue": null,
      "maxValue": null,
      "stepValue": null
    }
  ]
}

Properties

Name Type Required Restrictions Description
type string false none none
created string false none none
modified string false none none
id number false none none
name string false none none
variableName string false none none
description string false none none
required boolean false none none
category string false none none
lastModifiedBy string false none none
selectType string false none none
enrichEnabled boolean false none none
quantitySelectionLinked boolean false none none
defaultType string false none none
defaultBomType string false none none
defaultParentProduct string false none none
defaultUom string false none none
defaultPricingProductSellingModelId string false none none
defaultPricingStartDate string false none none
defaultPricingEndDate string false none none
layoutProductDetails [string] false none none
fields [object] false none none
» created string true none none
» modified string true none none
» id number true none none
» variableName string true none none
» label string true none none
» fieldType string true none none
» target string true none none
» lastModifiedBy string true none none
rules [object] false none none
» created string true none none
» modified string true none none
» id number true none none
» variableName string true none none
» type string true none none
» status string true none none
» columns [object] true none none
»» id number true none none
»» header string true none none
»» mappedFieldVarName string true none none
»» columnUse string true none none
»» orderNumber number true none none
»» operator string false none none
aggregateFields [object] false none none
» type string false none none
» created string false none none
» modified string false none none
» id number false none none
» name string false none none
» variableName string false none none
» description string false none none
» required boolean false none none
» category string false none none
» aggregateType string false none none
» fieldVariableNames [string] false none none
» lastModifiedBy string false none none
» defaultValue string false none none
» unitLabel string false none none
» precision number false none none
» minValue string false none none
» maxValue string false none none
» stepValue string false none none

RuleListResponse

{
  "content": [
    {
      "id": 54,
      "name": "addTablet",
      "variableName": "addTablet",
      "description": "",
      "status": "inactive",
      "modified": "2023-09-08T21:42:39.285656Z",
      "actionSummary": {
        "determinationAction": 0,
        "exclusionAction": 0,
        "inclusionAction": 0,
        "messageAction": 0,
        "productAction": 1,
        "visibilityAction": 0
      },
      "lastModifiedBy": "scheck@cpq1.logik.dev"
    },
    {
      "id": 55,
      "name": "add hierarchy",
      "variableName": "addHierarchy",
      "description": "",
      "status": "inactive",
      "modified": "2023-09-08T21:42:26.168890Z",
      "actionSummary": {
        "determinationAction": 0,
        "exclusionAction": 0,
        "inclusionAction": 0,
        "messageAction": 0,
        "productAction": 1,
        "visibilityAction": 0
      },
      "lastModifiedBy": "scheck@cpq1.logik.dev"
    },
    {
      "id": 53,
      "name": "calculateRAMstorage",
      "variableName": "calculateRAMstorage",
      "description": "",
      "status": "active",
      "modified": "2023-08-30T16:12:13.737755Z",
      "actionSummary": {
        "determinationAction": 1,
        "exclusionAction": 0,
        "inclusionAction": 0,
        "messageAction": 0,
        "productAction": 0,
        "visibilityAction": 0
      },
      "lastModifiedBy": "scheck@cpq1.logik.dev"
    }
  ],
  "pageable": {
    "sort": {
      "empty": false,
      "unsorted": false,
      "sorted": true
    },
    "offset": 0,
    "pageNumber": 0,
    "pageSize": 100,
    "paged": true,
    "unpaged": false
  },
  "totalPages": 1,
  "last": true,
  "totalElements": 45,
  "size": 100,
  "number": 0,
  "sort": {
    "empty": false,
    "unsorted": false,
    "sorted": true
  },
  "numberOfElements": 45,
  "first": true,
  "empty": false
}

Properties

allOf

Name Type Required Restrictions Description
anonymous object false none none
» content [object] false none none
»» id number true none none
»» name string true none none
»» variableName string true none none
»» description string true none none
»» status string true none none
»» modified string true none none
»» actionSummary object true none none
»»» determinationAction number false none none
»»» exclusionAction number false none none
»»» inclusionAction number false none none
»»» messageAction number false none none
»»» productAction number false none none
»»» visibilityAction number false none none
»» lastModifiedBy string true none none

and

Name Type Required Restrictions Description
anonymous PagedResponse false none none

RuleResponse

{
  "created": "2023-09-20T12:13:07.272753Z",
  "modified": "2023-09-20T12:13:07.272753Z",
  "id": 10,
  "name": "new rule",
  "variableName": "newRule",
  "description": "basic desecription",
  "status": "active",
  "condition": {
    "groupingType": "always",
    "customLogic": null,
    "scriptId": null,
    "conditions": []
  },
  "actions": [],
  "lastModifiedBy": "scheck@sm1.logik.dev"
}

Properties

Name Type Required Restrictions Description
created string false none none
modified string false none none
id number false none none
name string false none none
variableName string false none none
description string false none none
status string false none none
condition object false none none
» groupingType string false none none
» customLogic string false none none
» scriptId string false none none
» conditions [any] false none none
actions [any] false none none
lastModifiedBy string false none none

RelatedFieldsResponse

{
  "content": [
    {
      "id": 2,
      "name": "Product Id (System)",
      "variableName": "sys.productId",
      "description": "System Field for the Id of the Configured Product",
      "type": "Text",
      "modified": "2000-01-01T00:00:00Z",
      "category": "SYSTEM",
      "lastModifiedBy": null
    },
    {
      "id": 4,
      "name": "Product Price (System)",
      "variableName": "sys.productPrice",
      "description": "System Field for the Base Price of the Configured Product",
      "type": "Number",
      "modified": "2000-01-01T00:00:00Z",
      "category": "SYSTEM",
      "lastModifiedBy": null
    },
    {
      "id": 56,
      "name": "uniqueId",
      "variableName": "psmPP.uniqueId",
      "description": null,
      "type": "Text",
      "modified": "2023-07-21T17:55:30.202817Z",
      "category": "PICKER_SUBFIELD",
      "lastModifiedBy": null
    }
  ],
  "pageable": {
    "sort": {
      "empty": true,
      "unsorted": true,
      "sorted": false
    },
    "offset": 0,
    "pageNumber": 0,
    "pageSize": 10,
    "paged": true,
    "unpaged": false
  },
  "last": true,
  "totalPages": 1,
  "totalElements": 6,
  "size": 10,
  "number": 0,
  "sort": {
    "empty": true,
    "unsorted": true,
    "sorted": false
  },
  "numberOfElements": 6,
  "first": true,
  "empty": false
}

Properties

allOf

Name Type Required Restrictions Description
anonymous object false none none
» content [object] false none none
»» id number true none none
»» name string true none none
»» variableName string true none none
»» description string true none none
»» type string true none none
»» modified string true none none
»» category string true none none
»» lastModifiedBy string true none none

and

Name Type Required Restrictions Description
anonymous PagedResponse false none none

RelatedBlueprintsResponse

{
  "content": [
    {
      "id": 1,
      "name": "psmTester",
      "variableName": "psmTester",
      "description": "",
      "modified": "2023-09-08T20:54:24.225681Z",
      "lastModifiedBy": "scheck@sm1.logik.dev"
    }
  ],
  "pageable": {
    "sort": {
      "empty": true,
      "unsorted": true,
      "sorted": false
    },
    "offset": 0,
    "pageNumber": 0,
    "pageSize": 10,
    "paged": true,
    "unpaged": false
  },
  "last": true,
  "totalPages": 1,
  "totalElements": 1,
  "size": 10,
  "number": 0,
  "sort": {
    "empty": true,
    "unsorted": true,
    "sorted": false
  },
  "numberOfElements": 1,
  "first": true,
  "empty": false
}

Properties

allOf

Name Type Required Restrictions Description
anonymous object false none none
» content [object] false none none
»» id number false none none
»» name string false none none
»» variableName string false none none
»» description string false none none
»» modified string false none none
»» lastModifiedBy string false none none

and

Name Type Required Restrictions Description
anonymous PagedResponse false none none

MetadataPatch

{
  "deleted": [
    "string"
  ],
  "added": [
    {
      "name": "string",
      "type": "text",
      "description": "string",
      "orderNumber": 0
    }
  ]
}

Properties

Name Type Required Restrictions Description
deleted [string] false none none
added [Column] false none none

Column

{
  "name": "string",
  "type": "text",
  "description": "string",
  "orderNumber": 0
}

Properties

allOf

Name Type Required Restrictions Description
anonymous ColumnMetadata false none none

and

Name Type Required Restrictions Description
anonymous object false none none
» orderNumber integer false none none

ColumnPatch

{
  "rows": [
    {
      "ID": 0,
      "additionalProperties": "string"
    }
  ]
}

Properties

Name Type Required Restrictions Description
rows [ColumnWithId] true none none

ColumnWithId

{
  "ID": 0,
  "additionalProperties": "string"
}

Properties

Name Type Required Restrictions Description
ID number false none none
additionalProperties string false none none

ColumnResponse

{
  "DATE_MODIFIED": "string",
  "DATE_CREATED": "string",
  "ID": 0,
  "additionalProperties": "string"
}

Properties

allOf

Name Type Required Restrictions Description
anonymous object false none none
» DATE_MODIFIED string false none none
» DATE_CREATED string false none none

and

Name Type Required Restrictions Description
anonymous ColumnWithId false none none

Pageable

{
  "sort": {
    "empty": true,
    "unsorted": true,
    "sorted": true
  },
  "offset": 0,
  "pageNumber": 0,
  "pageSize": 0,
  "paged": true,
  "unpaged": true
}

Properties

Name Type Required Restrictions Description
sort object false none none
» empty boolean false none none
» unsorted boolean false none none
» sorted boolean false none none
offset number false none none
pageNumber number false none none
pageSize number false none none
paged boolean false none none
unpaged boolean false none none

TableResponse

{
  "content": [
    {
      "DATE_MODIFIED": "string",
      "DATE_CREATED": "string",
      "ID": 0,
      "additionalProperties": "string"
    }
  ],
  "pageable": {
    "sort": {
      "empty": true,
      "unsorted": true,
      "sorted": true
    },
    "offset": 0,
    "pageNumber": 0,
    "pageSize": 0,
    "paged": true,
    "unpaged": true
  },
  "totalPages": 0,
  "totalElements": 0,
  "last": true,
  "size": 0,
  "number": 0,
  "sort": {
    "empty": true,
    "unsorted": true,
    "sorted": true
  },
  "first": true,
  "numberOfElements": 0,
  "empty": true
}

Properties

Name Type Required Restrictions Description
content [ColumnResponse] false none none
pageable Pageable false none none
totalPages number false none none
totalElements number false none none
last boolean false none none
size number false none none
number number false none none
sort object false none none
» empty boolean false none none
» unsorted boolean false none none
» sorted boolean false none none
first boolean false none none
numberOfElements number false none none
empty boolean false none none

JobResponse

{
  "id": "6,",
  "started": "2023-05-31T02:51:16.550561712Z",
  "finished": null,
  "jobType": "TABLE_EXPORT",
  "status": "STARTED"
}

Properties

Name Type Required Restrictions Description
id number false none none
started string(date-time) false none none
jobType string false none none
status string false none none
finished string(date-time)¦null false none none

ImportTableResponse

{
  "id": "6,",
  "started": "2023-05-31T02:51:16.550561712Z",
  "finished": null,
  "jobType": "TABLE_EXPORT",
  "status": "STARTED"
}

Properties

allOf

Name Type Required Restrictions Description
anonymous JobResponse false none none

and

Name Type Required Restrictions Description
anonymous ImportTableResult false none none

ImportTableResult

{
  "totalRecords": 0,
  "totalInserts": 0,
  "totalUpdates": 0,
  "tableName": "string"
}

Properties

Name Type Required Restrictions Description
totalRecords integer false none none
totalInserts integer false none none
totalUpdates integer false none none
tableName string false none none

ErrorResponse

{
  "errorCode": "string",
  "errorMessage": "string",
  "timestamp": "2019-08-24T14:15:22Z"
}

Properties

Name Type Required Restrictions Description
errorCode string false none none
errorMessage string false none none
timestamp string(date-time) false none none

ManagedTableCreateResponse

{
  "dateCreated": "string",
  "dateModified": "string",
  "lastModifiedBy": "string",
  "name": "string",
  "columns": [
    {
      "name": "string",
      "type": "text",
      "description": "string",
      "orderNumber": 0
    }
  ],
  "description": "string"
}

Properties

Name Type Required Restrictions Description
dateCreated string false none none
dateModified string false none none
lastModifiedBy string false none none
name string false none none
columns [Column] false none none
description string false none none

ManagedTableCreatePayload

{
  "name": "string",
  "description": "string",
  "columns": [
    {
      "name": "string",
      "type": "text",
      "description": "string"
    }
  ]
}

Properties

Name Type Required Restrictions Description
name string true none none
description string true none none
columns [ColumnMetadata] true none none

ColumnMetadata

{
  "name": "string",
  "type": "text",
  "description": "string"
}

Properties

Name Type Required Restrictions Description
name string true none none
type string true none none
description string true none none

Enumerated Values

Property Value
type text
type number

ManagedTableResponse

{
  "content": [
    {
      "dateCreated": "2023-05-30T21:19:32.650Z",
      "dateModified": "2023-05-30T21:19:55.210Z",
      "lastModifiedBy": "NO_USER_ID",
      "name": "packersTable",
      "columns": [
        {
          "name": "a",
          "type": "text",
          "description": "",
          "orderNumber": 1
        },
        {
          "name": "b",
          "type": "text",
          "description": "",
          "orderNumber": 2
        }
      ],
      "description": ""
    },
    {
      "dateCreated": "2023-05-31T02:34:32.749Z",
      "dateModified": "2023-05-31T02:34:32.749Z",
      "lastModifiedBy": "NO_USER_ID",
      "name": "shapes",
      "columns": [
        {
          "name": "sides",
          "type": "number",
          "description": "",
          "orderNumber": 1
        },
        {
          "name": "shape",
          "type": "text",
          "description": "",
          "orderNumber": 2
        }
      ],
      "description": ""
    }
  ],
  "pageable": {
    "sort": {
      "empty": false,
      "unsorted": false,
      "sorted": true
    },
    "offset": 0,
    "pageNumber": 0,
    "pageSize": 100,
    "paged": true,
    "unpaged": false
  },
  "totalPages": 1,
  "totalElements": 2,
  "last": true,
  "size": 100,
  "number": 0,
  "sort": {
    "empty": false,
    "unsorted": false,
    "sorted": true
  },
  "first": true,
  "numberOfElements": 2,
  "empty": false
}

Properties

Name Type Required Restrictions Description
content [ManagedTableCreateResponse] false none none
pageable Pageable false none none
totalPages number false none none
totalElements number false none none
last boolean false none none
size number false none none
number number false none none
sort object false none none
» empty boolean false none none
» unsorted boolean false none none
» sorted boolean false none none
first boolean false none none
numberOfElements number false none none
empty boolean false none none

MatrixLoaderUpload

{
  "jobType": "GENERIC_IMPORT",
  "file": "string"
}

Properties

Name Type Required Restrictions Description
jobType string true none none
file string(binary) true none none

Enumerated Values

Property Value
jobType GENERIC_IMPORT
jobType RULE_IMPORT
jobType FIELD_IMPORT
jobType FIELD_OPTION_IMPORT
jobType SETS
jobType PRODUCT_PICKERS
jobType BLUEPRINT_IMPORT

MatrixLoaderGenericUploadResponse

{
  "created": "2023-09-19T16:40:26.550044863Z",
  "modified": "2023-09-19T16:40:26.550044863Z",
  "id": 99,
  "jobType": "GENERIC_IMPORT",
  "status": "STARTED"
}

Properties

Name Type Required Restrictions Description
created string false none none
modified string false none none
id number false none none
jobType string false none none
status string false none none

ManagedTableDataUpload

{
  "jobType": "MANAGED_TABLES_IMPORT_UPSERT",
  "file": "string"
}

Properties

Name Type Required Restrictions Description
jobType string true none none
file string(binary) true none none

Enumerated Values

Property Value
jobType MANAGED_TABLES_IMPORT_UPSERT

AdminJobResponse

{
  "id": 99,
  "started": "2023-09-19T16:40:26.554240Z",
  "finished": "2023-09-19T16:40:26.563650Z",
  "jobType": "GENERIC_IMPORT",
  "status": "COMPLETED",
  "result": {
    "success": true,
    "counts": {
      "success": 0,
      "error": 0,
      "warning": 0,
      "total": 0
    },
    "messages": []
  }
}

Properties

Name Type Required Restrictions Description
id number false none none
started string false none none
finished string false none none
jobType string false none none
status string false none none
result object false none none
» success boolean false none none
» counts object false none none
»» success integer false none none
»» error integer false none none
»» warning integer false none none
»» total integer false none none
» messages [any] false none none

ErrorResponse

{
  "errorMessage": "string"
}

Properties

Name Type Required Restrictions Description
errorMessage string false none none

FieldPayload

{
  "variableName": "string",
  "value": "string"
}

Properties

Name Type Required Restrictions Description
variableName string false none none
value string false none none

UpdateConfig

{
  "fields": [
    {
      "variableName": "string",
      "value": "string"
    }
  ]
}

Properties

Name Type Required Restrictions Description
fields [FieldPayload] false none none

InitConfig

{
  "sessionContext": {
    "stateful": true
  },
  "partnerData": {
    "product": {
      "configuredProductId": "string",
      "configurationAttributes": {
        "LGK__ConfigurationId__c": "string"
      }
    }
  },
  "quote": {
    "SBQQ__PricebookId__c": "string"
  },
  "fields": [
    {
      "variableName": "string",
      "value": "string"
    }
  ]
}

Properties

Name Type Required Restrictions Description
sessionContext object false none none
» stateful boolean false none none
partnerData object false none none
» product object true none none
»» configuredProductId string false none Product id of the Product linked to Logik Blueprint
»» configurationAttributes object false none none
»»» LGK_ConfigurationId_c string false none Configuration Id which was generated for saved configuration
quote object false none none
» SBQQ_PricebookId_c string false none none
fields [FieldPayload] false none none

BOMResponse

{
  "products": [
    {
      "id": "string",
      "selectionType": "string",
      "quantity": 0,
      "bomType": "string",
      "level": 0,
      "parentProduct": 0,
      "notes": "string",
      "uniqueIdentifier": 0,
      "description": "string",
      "externalId": "string",
      "name": "string",
      "price": 0,
      "extPrice": 0
    }
  ],
  "pageable": {
    "sort": {
      "empty": true,
      "sorted": true,
      "unsorted": true
    },
    "offset": 0,
    "pageNumber": 0,
    "pageSize": 0,
    "paged": true,
    "unpaged": true
  },
  "totalPages": 0,
  "totalElements": 0,
  "last": true,
  "size": 0,
  "number": 0,
  "numberOfElements": 0,
  "first": true,
  "empty": true,
  "total": 0
}

Properties

Name Type Required Restrictions Description
products [Product] false none none
pageable object false none none
» sort object false none none
»» empty boolean false none none
»» sorted boolean false none none
»» unsorted boolean false none none
» offset integer false none none
» pageNumber integer false none none
» pageSize integer false none none
» paged boolean false none none
» unpaged boolean false none none
totalPages integer false none none
totalElements integer false none none
last boolean false none none
size integer false none none
number integer false none none
numberOfElements integer false none none
first boolean false none none
empty boolean false none none
total integer false none none

Product

{
  "id": "string",
  "selectionType": "string",
  "quantity": 0,
  "bomType": "string",
  "level": 0,
  "parentProduct": 0,
  "notes": "string",
  "uniqueIdentifier": 0,
  "description": "string",
  "externalId": "string",
  "name": "string",
  "price": 0,
  "extPrice": 0
}

Properties

Name Type Required Restrictions Description
id string false none none
selectionType string false none none
quantity integer false none none
bomType string false none none
level integer false none none
parentProduct integer false none none
notes string false none none
uniqueIdentifier integer false none none
description string false none none
externalId string false none none
name string false none none
price number false none none
extPrice number false none none

Field

{
  "value": "string",
  "dataType": "string",
  "visibilityState": "string",
  "editable": "string",
  "variableName": "string",
  "optionSet": {
    "options": [
      {
        "label": "string",
        "state": "string",
        "value": "string",
        "imageUrl": "string",
        "orderNumber": 0
      }
    ]
  }
}

Properties

Name Type Required Restrictions Description
value string false none none
dataType string false none none
visibilityState string false none none
editable string false none none
variableName string false none none
optionSet object false none none
» options [object] true none none
»» label string true none none
»» state string true none none
»» value string true none none
»» imageUrl string false none none
»» orderNumber integer true none none

Message

{
  "message": "string",
  "type": "string",
  "error": true,
  "field": "string"
}

Properties

Name Type Required Restrictions Description
message string true none none
type string true none none
error boolean true none none
field string true none none

ConfigResponse

{
  "fields": [
    {
      "value": "string",
      "dataType": "string",
      "visibilityState": "string",
      "editable": "string",
      "variableName": "string",
      "optionSet": {
        "options": [
          {
            "label": "string",
            "state": "string",
            "value": "string",
            "imageUrl": "string",
            "orderNumber": 0
          }
        ]
      }
    }
  ],
  "uuid": "string",
  "revision": 0,
  "valid": true,
  "messages": [
    {
      "message": "string",
      "type": "string",
      "error": true,
      "field": "string"
    }
  ],
  "productChange": true,
  "products": [
    {
      "id": "string",
      "selectionType": "string",
      "quantity": 0,
      "bomType": "string",
      "level": 0,
      "parentProduct": 0,
      "notes": "string",
      "uniqueIdentifier": 0,
      "description": "string",
      "externalId": "string",
      "name": "string",
      "price": 0,
      "extPrice": 0
    }
  ],
  "layouts": [
    {
      "url": "string"
    }
  ],
  "relatedChanges": [
    {
      "key": "string",
      "type": "string"
    }
  ]
}

Properties

Name Type Required Restrictions Description
fields [Field] false none none
uuid string false none none
revision integer false none none
valid boolean false none none
messages [Message] false none none
productChange boolean false none none
products [Product] false none none
layouts [object] false none none
» url string true none none
relatedChanges [relatedChangesValue] false none none

relatedChangesValue

{
  "key": "string",
  "type": "string"
}

Properties

Name Type Required Restrictions Description
key string false none none
type string false none Value of SET

SetsContent

{
  "index": 0,
  "fields": [
    {
      "value": "string",
      "dataType": "string",
      "visibilityState": "string",
      "editable": "string",
      "variableName": "string",
      "optionSet": {
        "options": [
          {
            "label": "string",
            "state": "string",
            "value": "string",
            "imageUrl": "string",
            "orderNumber": 0
          }
        ]
      }
    }
  ]
}

Properties

Name Type Required Restrictions Description
index integer false none none
fields [Field] false none none

SetsResponse

{
  "content": [
    {
      "index": 0,
      "fields": [
        {
          "value": "string",
          "dataType": "string",
          "visibilityState": "string",
          "editable": "string",
          "variableName": "string",
          "optionSet": {
            "options": [
              {
                "label": "string",
                "state": "string",
                "value": "string",
                "imageUrl": "string",
                "orderNumber": 0
              }
            ]
          }
        }
      ]
    }
  ],
  "pageable": {
    "sort": {
      "empty": true,
      "sorted": true,
      "unsorted": true
    },
    "offset": 0,
    "pageNumber": 0,
    "pageSize": 0,
    "paged": true,
    "unpaged": true
  },
  "totalPages": 0,
  "totalElements": 0,
  "last": true,
  "size": 0,
  "number": 0,
  "numberOfElements": 0,
  "first": true,
  "empty": true,
  "total": 0
}

Properties

Name Type Required Restrictions Description
content [SetsContent] false none none
pageable object false none none
» sort object false none none
»» empty boolean false none none
»» sorted boolean false none none
»» unsorted boolean false none none
» offset integer false none none
» pageNumber integer false none none
» pageSize integer false none none
» paged boolean false none none
» unpaged boolean false none none
totalPages integer false none none
totalElements integer false none none
last boolean false none none
size integer false none none
number integer false none none
numberOfElements integer false none none
first boolean false none none
empty boolean false none none
total integer false none none

UpdateConfigV2

{
  "fields": [
    {
      "variableName": "cpuPicker.select",
      "uniqueName": "cpuPicker-1003-cpuPicker.select",
      "value": true,
      "set": "cpuPicker",
      "index": 3
    }
  ]
}

Properties

Name Type Required Restrictions Description
fields [object] false none none
» variableName string false none none
» value boolean false none none
» index number false none none
» set string false none none
» uniqueName string false none none
responseState object false none none
» setPagination object false none none
»» additionalProperties object false none none
»»» pageSize number true none none
»»» pageNumber number true none none
» defaultPagination object false none none
»» pageSize number true none none
»» pageNumber number true none none

InitConfigV2

{
  "sessionContext": {
    "stateful": true
  },
  "productId": "01t6e000009bOeLAAU"
}

Properties

Name Type Required Restrictions Description
sessionContext object false none none
» stateful boolean true none none
partnerData object false none none
» quote object false none none
»» SBQQ_PricebookId_c string false none none
»» LGK_QueriedEditAccess_c string false none none
» product object false none none
»» configuredProductId string false none none
»» configurationAttributes object false none none
»»» LGK_Logik_Id_c string false none none
configurableProduct object false none none
» responseState object false none none
»» defaultPagination object true none none
»»» pageSize number true none none
»»» pageNumber number true none none
productId string false none none

BOMResponse

{
  "total": 350,
  "pageable": {
    "sort": {
      "empty": false,
      "sorted": true,
      "unsorted": false
    },
    "offset": 0,
    "pageNumber": 0,
    "pageSize": 20,
    "paged": true,
    "unpaged": false
  },
  "totalPages": 1,
  "totalElements": 2,
  "last": true,
  "size": 20,
  "number": 0,
  "sort": {
    "empty": false,
    "sorted": true,
    "unsorted": false
  },
  "numberOfElements": 2,
  "first": true,
  "empty": false,
  "products": [
    {
      "id": "SSM",
      "uom": "",
      "name": "Single Motherboard",
      "type": "accessory",
      "level": 0,
      "price": 125,
      "bomType": "Sales",
      "extPrice": 125,
      "quantity": 1,
      "partnerId": "01t6e000009gRTpAAM",
      "externalId": "",
      "description": "",
      "orderNumber": 10,
      "productCode": "SSM",
      "rollUpPrice": 350,
      "productFamily": "",
      "uniqueIdentifier": "motherboard"
    },
    {
      "id": "CPU7320GHZRYZ3",
      "uom": "",
      "name": "AMD Ryzen 3 7320U",
      "type": "accessory",
      "level": 1,
      "price": 225,
      "bomType": "SALES",
      "extPrice": 225,
      "extended": {
        "watts": "150"
      },
      "quantity": 1,
      "partnerId": "01t6e000009bOfYAAU",
      "externalId": "",
      "description": "",
      "productCode": "CPU7320GHZRYZ3",
      "rollUpPrice": 225,
      "parentProduct": "motherboard",
      "productFamily": "Hardware",
      "effectiveParent": "motherboard"
    }
  ]
}

Properties

Name Type Required Restrictions Description
products [Product] false none none
pageable object false none none
» sort object false none none
»» empty boolean false none none
»» sorted boolean false none none
»» unsorted boolean false none none
» offset integer false none none
» pageNumber integer false none none
» pageSize integer false none none
» paged boolean false none none
» unpaged boolean false none none
totalPages integer false none none
totalElements integer false none none
last boolean false none none
size integer false none none
number integer false none none
numberOfElements integer false none none
first boolean false none none
empty boolean false none none
total integer false none none

Product

{
  "id": "string",
  "selectionType": "string",
  "quantity": 0,
  "bomType": "string",
  "level": 0,
  "parentProduct": 0,
  "notes": "string",
  "uniqueIdentifier": 0,
  "description": "string",
  "externalId": "string",
  "name": "string",
  "price": 0,
  "extPrice": 0
}

Properties

Name Type Required Restrictions Description
id string false none none
selectionType string false none none
quantity integer false none none
bomType string false none none
level integer false none none
parentProduct integer false none none
notes string false none none
uniqueIdentifier integer false none none
description string false none none
externalId string false none none
name string false none none
price number false none none
extPrice number false none none

Field

{
  "value": "string",
  "dataType": "string",
  "visibilityState": "string",
  "editable": "string",
  "variableName": "string",
  "optionSet": {
    "options": [
      {
        "label": "string",
        "state": "string",
        "value": "string",
        "imageUrl": "string",
        "orderNumber": 0
      }
    ]
  }
}

Properties

Name Type Required Restrictions Description
value string false none none
dataType string false none none
visibilityState string false none none
editable string false none none
variableName string false none none
optionSet object false none none
» options [object] true none none
»» label string true none none
»» state string true none none
»» value string true none none
»» imageUrl string false none none
»» orderNumber integer true none none

Message

{
  "message": "string",
  "type": "string",
  "error": true,
  "field": "string"
}

Properties

Name Type Required Restrictions Description
message string true none none
type string true none none
error boolean true none none
field string true none none

relatedChangesValue

{
  "key": "string",
  "type": "string"
}

Properties

Name Type Required Restrictions Description
key string false none none
type string false none Value of SET

SetsContent

{
  "index": 0,
  "fields": [
    {
      "value": "string",
      "dataType": "string",
      "visibilityState": "string",
      "editable": "string",
      "variableName": "string",
      "optionSet": {
        "options": [
          {
            "label": "string",
            "state": "string",
            "value": "string",
            "imageUrl": "string",
            "orderNumber": 0
          }
        ]
      }
    }
  ]
}

Properties

Name Type Required Restrictions Description
index integer false none none
fields [Field] false none none

SetsResponse

{
  "content": [
    {
      "index": 0,
      "fields": [
        {
          "value": "string",
          "dataType": "string",
          "visibilityState": "string",
          "editable": "string",
          "variableName": "string",
          "optionSet": {
            "options": [
              {
                "label": "string",
                "state": "string",
                "value": "string",
                "imageUrl": "string",
                "orderNumber": 0
              }
            ]
          }
        }
      ]
    }
  ],
  "pageable": {
    "sort": {
      "empty": true,
      "sorted": true,
      "unsorted": true
    },
    "offset": 0,
    "pageNumber": 0,
    "pageSize": 0,
    "paged": true,
    "unpaged": true
  },
  "totalPages": 0,
  "totalElements": 0,
  "last": true,
  "size": 0,
  "number": 0,
  "numberOfElements": 0,
  "first": true,
  "empty": true,
  "total": 0
}

Properties

Name Type Required Restrictions Description
content [SetsContent] false none none
pageable object false none none
» sort object false none none
»» empty boolean false none none
»» sorted boolean false none none
»» unsorted boolean false none none
» offset integer false none none
» pageNumber integer false none none
» pageSize integer false none none
» paged boolean false none none
» unpaged boolean false none none
totalPages integer false none none
totalElements integer false none none
last boolean false none none
size integer false none none
number integer false none none
numberOfElements integer false none none
first boolean false none none
empty boolean false none none
total integer false none none

ConfigResponseV2

{
  "fields": [
    {
      "userEdited": false,
      "dataType": "array",
      "visibilityState": "visible",
      "editable": "true",
      "variableName": "ramPicker",
      "uniqueName": "ramPicker",
      "value": [],
      "optionSet": {
        "options": [
          {
            "label": "8GB RAM Module",
            "state": "visible",
            "value": "RAM8GB",
            "imageUrl": "https://i.imgur.com/WkXo98I.png",
            "orderNumber": 10
          },
          {
            "label": "16GB RAM Module",
            "state": "visible",
            "value": "RAM16GB",
            "imageUrl": "https://i.imgur.com/WkXo98I.png",
            "orderNumber": 20
          },
          {
            "label": "32GB RAM Module",
            "state": "visible",
            "value": "RAM32GB",
            "imageUrl": "https://i.imgur.com/WkXo98I.png",
            "orderNumber": 30
          }
        ]
      },
      "selectAll": "NONE",
      "rows": {
        "content": [
          {
            "index": 0,
            "fields": [
              {
                "userEdited": false,
                "dataType": "text",
                "visibilityState": "visible",
                "editable": "false",
                "variableName": "ramPicker.value",
                "uniqueName": "ramPicker-1000-ramPicker.value",
                "value": "RAM8GB",
                "set": "ramPicker",
                "index": 0
              },
              {
                "userEdited": false,
                "dataType": "text",
                "visibilityState": "visible",
                "editable": "true",
                "variableName": "ramPicker.interface",
                "uniqueName": "ramPicker-1000-ramPicker.interface",
                "value": "DDR4",
                "optionSet": {
                  "selectedOptions": [
                    {
                      "label": "DDR4",
                      "state": "visible",
                      "value": "DDR4",
                      "imageUrl": null,
                      "orderNumber": 10
                    }
                  ],
                  "options": [
                    {
                      "label": "DDR4",
                      "state": "visible",
                      "value": "DDR4",
                      "imageUrl": null,
                      "orderNumber": 10
                    },
                    {
                      "label": "DDR5",
                      "state": "visible",
                      "value": "DDR5",
                      "imageUrl": null,
                      "orderNumber": 20
                    }
                  ]
                },
                "set": "ramPicker",
                "index": 0
              },
              {
                "userEdited": false,
                "dataType": "boolean",
                "visibilityState": "visible",
                "editable": "true",
                "variableName": "ramPicker.select",
                "uniqueName": "ramPicker-1000-ramPicker.select",
                "value": false,
                "optionSet": {
                  "options": [
                    {
                      "label": "true",
                      "state": "visible",
                      "value": "true",
                      "imageUrl": null,
                      "orderNumber": null
                    },
                    {
                      "label": "false",
                      "state": "visible",
                      "value": "false",
                      "imageUrl": null,
                      "orderNumber": null
                    }
                  ]
                },
                "set": "ramPicker",
                "index": 0
              },
              {
                "userEdited": false,
                "dataType": "number",
                "visibilityState": "visible",
                "editable": "true",
                "variableName": "ramPicker.quantity",
                "uniqueName": "ramPicker-1000-ramPicker.quantity",
                "value": 0,
                "step": 1,
                "set": "ramPicker",
                "index": 0
              },
              {
                "userEdited": false,
                "dataType": "text",
                "visibilityState": "visible",
                "editable": "true",
                "variableName": "ramPicker.imageUrl",
                "uniqueName": "ramPicker-1000-ramPicker.imageUrl",
                "value": "",
                "set": "ramPicker",
                "index": 0
              },
              {
                "userEdited": false,
                "dataType": "number",
                "visibilityState": "visible",
                "editable": "false",
                "variableName": "ramPicker.storage",
                "uniqueName": "ramPicker-1000-ramPicker.storage",
                "value": 0,
                "set": "ramPicker",
                "index": 0
              }
            ],
            "label": "8GB RAM Module",
            "state": "visible",
            "value": "RAM8GB",
            "imageUrl": "https://i.imgur.com/WkXo98I.png",
            "orderNumber": 10,
            "productDetails": {
              "price": 50,
              "name": "RAM 8GB"
            }
          },
          {
            "index": 1,
            "fields": [
              {
                "userEdited": false,
                "dataType": "text",
                "visibilityState": "visible",
                "editable": "false",
                "variableName": "ramPicker.value",
                "uniqueName": "ramPicker-1001-ramPicker.value",
                "value": "RAM16GB",
                "set": "ramPicker",
                "index": 1
              },
              {
                "userEdited": false,
                "dataType": "text",
                "visibilityState": "visible",
                "editable": "true",
                "variableName": "ramPicker.interface",
                "uniqueName": "ramPicker-1001-ramPicker.interface",
                "value": "DDR4",
                "optionSet": {
                  "selectedOptions": [
                    {
                      "label": "DDR4",
                      "state": "visible",
                      "value": "DDR4",
                      "imageUrl": null,
                      "orderNumber": 10
                    }
                  ],
                  "options": [
                    {
                      "label": "DDR4",
                      "state": "visible",
                      "value": "DDR4",
                      "imageUrl": null,
                      "orderNumber": 10
                    },
                    {
                      "label": "DDR5",
                      "state": "visible",
                      "value": "DDR5",
                      "imageUrl": null,
                      "orderNumber": 20
                    }
                  ]
                },
                "set": "ramPicker",
                "index": 1
              },
              {
                "userEdited": false,
                "dataType": "boolean",
                "visibilityState": "visible",
                "editable": "true",
                "variableName": "ramPicker.select",
                "uniqueName": "ramPicker-1001-ramPicker.select",
                "value": false,
                "optionSet": {
                  "options": [
                    {
                      "label": "true",
                      "state": "visible",
                      "value": "true",
                      "imageUrl": null,
                      "orderNumber": null
                    },
                    {
                      "label": "false",
                      "state": "visible",
                      "value": "false",
                      "imageUrl": null,
                      "orderNumber": null
                    }
                  ]
                },
                "set": "ramPicker",
                "index": 1
              },
              {
                "userEdited": false,
                "dataType": "number",
                "visibilityState": "visible",
                "editable": "true",
                "variableName": "ramPicker.quantity",
                "uniqueName": "ramPicker-1001-ramPicker.quantity",
                "value": 0,
                "step": 1,
                "set": "ramPicker",
                "index": 1
              },
              {
                "userEdited": false,
                "dataType": "text",
                "visibilityState": "visible",
                "editable": "true",
                "variableName": "ramPicker.imageUrl",
                "uniqueName": "ramPicker-1001-ramPicker.imageUrl",
                "value": "",
                "set": "ramPicker",
                "index": 1
              },
              {
                "userEdited": false,
                "dataType": "number",
                "visibilityState": "visible",
                "editable": "false",
                "variableName": "ramPicker.storage",
                "uniqueName": "ramPicker-1001-ramPicker.storage",
                "value": 0,
                "set": "ramPicker",
                "index": 1
              }
            ],
            "label": "16GB RAM Module",
            "state": "visible",
            "value": "RAM16GB",
            "imageUrl": "https://i.imgur.com/WkXo98I.png",
            "orderNumber": 20,
            "productDetails": {
              "price": 125,
              "name": "RAM 16GB"
            }
          },
          {
            "index": 2,
            "fields": [
              {
                "userEdited": false,
                "dataType": "text",
                "visibilityState": "visible",
                "editable": "false",
                "variableName": "ramPicker.value",
                "uniqueName": "ramPicker-1002-ramPicker.value",
                "value": "RAM32GB",
                "set": "ramPicker",
                "index": 2
              },
              {
                "userEdited": false,
                "dataType": "text",
                "visibilityState": "visible",
                "editable": "true",
                "variableName": "ramPicker.interface",
                "uniqueName": "ramPicker-1002-ramPicker.interface",
                "value": "DDR5",
                "optionSet": {
                  "selectedOptions": [
                    {
                      "label": "DDR5",
                      "state": "visible",
                      "value": "DDR5",
                      "imageUrl": null,
                      "orderNumber": 20
                    }
                  ],
                  "options": [
                    {
                      "label": "DDR4",
                      "state": "visible",
                      "value": "DDR4",
                      "imageUrl": null,
                      "orderNumber": 10
                    },
                    {
                      "label": "DDR5",
                      "state": "visible",
                      "value": "DDR5",
                      "imageUrl": null,
                      "orderNumber": 20
                    }
                  ]
                },
                "set": "ramPicker",
                "index": 2
              },
              {
                "userEdited": false,
                "dataType": "boolean",
                "visibilityState": "visible",
                "editable": "true",
                "variableName": "ramPicker.select",
                "uniqueName": "ramPicker-1002-ramPicker.select",
                "value": false,
                "optionSet": {
                  "options": [
                    {
                      "label": "true",
                      "state": "visible",
                      "value": "true",
                      "imageUrl": null,
                      "orderNumber": null
                    },
                    {
                      "label": "false",
                      "state": "visible",
                      "value": "false",
                      "imageUrl": null,
                      "orderNumber": null
                    }
                  ]
                },
                "set": "ramPicker",
                "index": 2
              },
              {
                "userEdited": false,
                "dataType": "number",
                "visibilityState": "visible",
                "editable": "true",
                "variableName": "ramPicker.quantity",
                "uniqueName": "ramPicker-1002-ramPicker.quantity",
                "value": 0,
                "step": 1,
                "set": "ramPicker",
                "index": 2
              },
              {
                "userEdited": false,
                "dataType": "text",
                "visibilityState": "visible",
                "editable": "true",
                "variableName": "ramPicker.imageUrl",
                "uniqueName": "ramPicker-1002-ramPicker.imageUrl",
                "value": "",
                "set": "ramPicker",
                "index": 2
              },
              {
                "userEdited": false,
                "dataType": "number",
                "visibilityState": "visible",
                "editable": "false",
                "variableName": "ramPicker.storage",
                "uniqueName": "ramPicker-1002-ramPicker.storage",
                "value": 0,
                "set": "ramPicker",
                "index": 2
              }
            ],
            "label": "32GB RAM Module",
            "state": "visible",
            "value": "RAM32GB",
            "imageUrl": "https://i.imgur.com/WkXo98I.png",
            "orderNumber": 30,
            "productDetails": {
              "price": 175,
              "name": "RAM 32GB"
            }
          }
        ],
        "pageable": "INSTANCE",
        "totalPages": 1,
        "totalElements": 3,
        "last": true,
        "size": 3,
        "number": 0,
        "sort": {
          "empty": true,
          "sorted": false,
          "unsorted": true
        },
        "numberOfElements": 3,
        "first": true,
        "empty": false
      }
    },
    {
      "userEdited": false,
      "dataType": "array",
      "visibilityState": "visible",
      "editable": "true",
      "variableName": "drivePicker",
      "uniqueName": "drivePicker",
      "value": [],
      "optionSet": {
        "options": [
          {
            "label": "SSD128",
            "state": "visible",
            "value": "SSD128",
            "imageUrl": null,
            "orderNumber": 10
          },
          {
            "label": "SSD256",
            "state": "visible",
            "value": "SSD256",
            "imageUrl": null,
            "orderNumber": 20
          },
          {
            "label": "SSD512",
            "state": "visible",
            "value": "SSD512",
            "imageUrl": null,
            "orderNumber": 30
          }
        ]
      },
      "selectAll": "NONE",
      "rows": {
        "content": [
          {
            "index": 0,
            "fields": [
              {
                "userEdited": false,
                "dataType": "text",
                "visibilityState": "visible",
                "editable": "false",
                "variableName": "drivePicker.value",
                "uniqueName": "drivePicker-1000-drivePicker.value",
                "value": "SSD128",
                "set": "drivePicker",
                "index": 0
              },
              {
                "userEdited": false,
                "dataType": "boolean",
                "visibilityState": "visible",
                "editable": "true",
                "variableName": "drivePicker.select",
                "uniqueName": "drivePicker-1000-drivePicker.select",
                "value": false,
                "optionSet": {
                  "options": [
                    {
                      "label": "true",
                      "state": "visible",
                      "value": "true",
                      "imageUrl": null,
                      "orderNumber": null
                    },
                    {
                      "label": "false",
                      "state": "visible",
                      "value": "false",
                      "imageUrl": null,
                      "orderNumber": null
                    }
                  ]
                },
                "set": "drivePicker",
                "index": 0
              },
              {
                "userEdited": false,
                "dataType": "number",
                "visibilityState": "visible",
                "editable": "true",
                "variableName": "drivePicker.quantity",
                "uniqueName": "drivePicker-1000-drivePicker.quantity",
                "value": 0,
                "set": "drivePicker",
                "index": 0
              },
              {
                "userEdited": false,
                "dataType": "text",
                "visibilityState": "visible",
                "editable": "true",
                "variableName": "drivePicker.interface",
                "uniqueName": "drivePicker-1000-drivePicker.interface",
                "value": "NVMe",
                "optionSet": {
                  "selectedOptions": [
                    {
                      "label": "NVMe",
                      "state": "visible",
                      "value": "NVMe",
                      "imageUrl": null,
                      "orderNumber": 10
                    }
                  ],
                  "options": [
                    {
                      "label": "NVMe",
                      "state": "visible",
                      "value": "NVMe",
                      "imageUrl": null,
                      "orderNumber": 10
                    },
                    {
                      "label": "SSD",
                      "state": "visible",
                      "value": "SSD",
                      "imageUrl": null,
                      "orderNumber": 20
                    }
                  ]
                },
                "set": "drivePicker",
                "index": 0
              }
            ],
            "label": "SSD128",
            "state": "visible",
            "value": "SSD128",
            "imageUrl": null,
            "orderNumber": 10,
            "productDetails": {
              "price": 89,
              "name": "NVMe Drive 128GB",
              "description": "Lightning fast Storage for all your computing needs"
            }
          },
          {
            "index": 1,
            "fields": [
              {
                "userEdited": false,
                "dataType": "text",
                "visibilityState": "visible",
                "editable": "false",
                "variableName": "drivePicker.value",
                "uniqueName": "drivePicker-1001-drivePicker.value",
                "value": "SSD256",
                "set": "drivePicker",
                "index": 1
              },
              {
                "userEdited": false,
                "dataType": "boolean",
                "visibilityState": "visible",
                "editable": "true",
                "variableName": "drivePicker.select",
                "uniqueName": "drivePicker-1001-drivePicker.select",
                "value": false,
                "optionSet": {
                  "options": [
                    {
                      "label": "true",
                      "state": "visible",
                      "value": "true",
                      "imageUrl": null,
                      "orderNumber": null
                    },
                    {
                      "label": "false",
                      "state": "visible",
                      "value": "false",
                      "imageUrl": null,
                      "orderNumber": null
                    }
                  ]
                },
                "set": "drivePicker",
                "index": 1
              },
              {
                "userEdited": false,
                "dataType": "number",
                "visibilityState": "visible",
                "editable": "true",
                "variableName": "drivePicker.quantity",
                "uniqueName": "drivePicker-1001-drivePicker.quantity",
                "value": 0,
                "set": "drivePicker",
                "index": 1
              },
              {
                "userEdited": false,
                "dataType": "text",
                "visibilityState": "visible",
                "editable": "true",
                "variableName": "drivePicker.interface",
                "uniqueName": "drivePicker-1001-drivePicker.interface",
                "value": "SSD",
                "optionSet": {
                  "selectedOptions": [
                    {
                      "label": "SSD",
                      "state": "visible",
                      "value": "SSD",
                      "imageUrl": null,
                      "orderNumber": 20
                    }
                  ],
                  "options": [
                    {
                      "label": "NVMe",
                      "state": "visible",
                      "value": "NVMe",
                      "imageUrl": null,
                      "orderNumber": 10
                    },
                    {
                      "label": "SSD",
                      "state": "visible",
                      "value": "SSD",
                      "imageUrl": null,
                      "orderNumber": 20
                    }
                  ]
                },
                "set": "drivePicker",
                "index": 1
              }
            ],
            "label": "SSD256",
            "state": "visible",
            "value": "SSD256",
            "imageUrl": null,
            "orderNumber": 20,
            "productDetails": {
              "price": 75,
              "name": "SSD 256GB",
              "description": "A balance of speed and capacity"
            }
          },
          {
            "index": 2,
            "fields": [
              {
                "userEdited": false,
                "dataType": "text",
                "visibilityState": "visible",
                "editable": "false",
                "variableName": "drivePicker.value",
                "uniqueName": "drivePicker-1002-drivePicker.value",
                "value": "SSD512",
                "set": "drivePicker",
                "index": 2
              },
              {
                "userEdited": false,
                "dataType": "boolean",
                "visibilityState": "visible",
                "editable": "true",
                "variableName": "drivePicker.select",
                "uniqueName": "drivePicker-1002-drivePicker.select",
                "value": false,
                "optionSet": {
                  "options": [
                    {
                      "label": "true",
                      "state": "visible",
                      "value": "true",
                      "imageUrl": null,
                      "orderNumber": null
                    },
                    {
                      "label": "false",
                      "state": "visible",
                      "value": "false",
                      "imageUrl": null,
                      "orderNumber": null
                    }
                  ]
                },
                "set": "drivePicker",
                "index": 2
              },
              {
                "userEdited": false,
                "dataType": "number",
                "visibilityState": "visible",
                "editable": "true",
                "variableName": "drivePicker.quantity",
                "uniqueName": "drivePicker-1002-drivePicker.quantity",
                "value": 0,
                "set": "drivePicker",
                "index": 2
              },
              {
                "userEdited": false,
                "dataType": "text",
                "visibilityState": "visible",
                "editable": "true",
                "variableName": "drivePicker.interface",
                "uniqueName": "drivePicker-1002-drivePicker.interface",
                "value": "SSD",
                "optionSet": {
                  "selectedOptions": [
                    {
                      "label": "SSD",
                      "state": "visible",
                      "value": "SSD",
                      "imageUrl": null,
                      "orderNumber": 20
                    }
                  ],
                  "options": [
                    {
                      "label": "NVMe",
                      "state": "visible",
                      "value": "NVMe",
                      "imageUrl": null,
                      "orderNumber": 10
                    },
                    {
                      "label": "SSD",
                      "state": "visible",
                      "value": "SSD",
                      "imageUrl": null,
                      "orderNumber": 20
                    }
                  ]
                },
                "set": "drivePicker",
                "index": 2
              }
            ],
            "label": "SSD512",
            "state": "visible",
            "value": "SSD512",
            "imageUrl": null,
            "orderNumber": 30,
            "productDetails": {
              "price": 150,
              "name": "SSD 512GB",
              "description": "Bulk SSD Storage for large files"
            }
          }
        ],
        "pageable": "INSTANCE",
        "totalPages": 1,
        "totalElements": 3,
        "last": true,
        "size": 3,
        "number": 0,
        "sort": {
          "empty": true,
          "sorted": false,
          "unsorted": true
        },
        "numberOfElements": 3,
        "first": true,
        "empty": false
      }
    },
    {
      "userEdited": false,
      "dataType": "text",
      "visibilityState": "visible",
      "editable": "true",
      "variableName": "cpuPicker",
      "uniqueName": "cpuPicker",
      "value": "",
      "optionSet": {
        "options": [
          {
            "label": "Dual Core Processor",
            "state": "visible",
            "value": "CPU16GHZI5",
            "imageUrl": "https://i.imgur.com/ftft5Nx.png",
            "orderNumber": 10
          },
          {
            "label": "Quad Core Processor",
            "state": "visible",
            "value": "CPU22GHZI7",
            "imageUrl": "https://i.imgur.com/ftft5Nx.png",
            "orderNumber": 20
          },
          {
            "label": "6-Core Processor",
            "state": "visible",
            "value": "CPU28GHZI7",
            "imageUrl": "https://i.imgur.com/0xQH6mZ.png",
            "orderNumber": 30
          },
          {
            "label": "8-Core Processor",
            "state": "visible",
            "value": "CPU7320GHZRYZ3",
            "imageUrl": "https://i.imgur.com/0xQH6mZ.png",
            "orderNumber": 40
          },
          {
            "label": "12-Core Processor",
            "state": "visible",
            "value": "CPU7550GHZRYZ5",
            "imageUrl": "https://i.imgur.com/LaQVZma.png",
            "orderNumber": 50
          }
        ]
      },
      "rows": {
        "content": [
          {
            "index": 0,
            "fields": [
              {
                "userEdited": false,
                "dataType": "text",
                "visibilityState": "visible",
                "editable": "false",
                "variableName": "cpuPicker.value",
                "uniqueName": "cpuPicker-1000-cpuPicker.value",
                "value": "CPU16GHZI5",
                "set": "cpuPicker",
                "index": 0
              },
              {
                "userEdited": false,
                "dataType": "boolean",
                "visibilityState": "visible",
                "editable": "true",
                "variableName": "cpuPicker.select",
                "uniqueName": "cpuPicker-1000-cpuPicker.select",
                "value": false,
                "optionSet": {
                  "options": [
                    {
                      "label": "true",
                      "state": "visible",
                      "value": "true",
                      "imageUrl": null,
                      "orderNumber": null
                    },
                    {
                      "label": "false",
                      "state": "visible",
                      "value": "false",
                      "imageUrl": null,
                      "orderNumber": null
                    }
                  ]
                },
                "set": "cpuPicker",
                "index": 0
              },
              {
                "userEdited": false,
                "dataType": "number",
                "visibilityState": "visible",
                "editable": "true",
                "variableName": "cpuPicker.quantity",
                "uniqueName": "cpuPicker-1000-cpuPicker.quantity",
                "value": 0,
                "step": 1,
                "set": "cpuPicker",
                "index": 0
              },
              {
                "userEdited": false,
                "dataType": "text",
                "visibilityState": "visible",
                "editable": "true",
                "variableName": "cpuPicker.imageUrl",
                "uniqueName": "cpuPicker-1000-cpuPicker.imageUrl",
                "value": "",
                "set": "cpuPicker",
                "index": 0
              },
              {
                "userEdited": false,
                "dataType": "text",
                "visibilityState": "visible",
                "editable": "true",
                "variableName": "cpuPicker.description",
                "uniqueName": "cpuPicker-1000-cpuPicker.description",
                "value": "Processor for light computing",
                "set": "cpuPicker",
                "index": 0
              },
              {
                "userEdited": false,
                "dataType": "number",
                "visibilityState": "visible",
                "editable": "true",
                "variableName": "cpuPicker.price",
                "uniqueName": "cpuPicker-1000-cpuPicker.price",
                "value": 100,
                "set": "cpuPicker",
                "index": 0
              },
              {
                "userEdited": false,
                "dataType": "number",
                "visibilityState": "visible",
                "editable": "true",
                "variableName": "cpuPicker.watts",
                "uniqueName": "cpuPicker-1000-cpuPicker.watts",
                "value": 75,
                "set": "cpuPicker",
                "index": 0
              }
            ],
            "label": "Dual Core Processor",
            "state": "visible",
            "value": "CPU16GHZI5",
            "imageUrl": "https://i.imgur.com/ftft5Nx.png",
            "orderNumber": 10,
            "productDetails": {
              "name": "CPU 1.6GHz i5"
            }
          },
          {
            "index": 1,
            "fields": [
              {
                "userEdited": false,
                "dataType": "text",
                "visibilityState": "visible",
                "editable": "false",
                "variableName": "cpuPicker.value",
                "uniqueName": "cpuPicker-1001-cpuPicker.value",
                "value": "CPU22GHZI7",
                "set": "cpuPicker",
                "index": 1
              },
              {
                "userEdited": false,
                "dataType": "boolean",
                "visibilityState": "visible",
                "editable": "true",
                "variableName": "cpuPicker.select",
                "uniqueName": "cpuPicker-1001-cpuPicker.select",
                "value": false,
                "optionSet": {
                  "options": [
                    {
                      "label": "true",
                      "state": "visible",
                      "value": "true",
                      "imageUrl": null,
                      "orderNumber": null
                    },
                    {
                      "label": "false",
                      "state": "visible",
                      "value": "false",
                      "imageUrl": null,
                      "orderNumber": null
                    }
                  ]
                },
                "set": "cpuPicker",
                "index": 1
              },
              {
                "userEdited": false,
                "dataType": "number",
                "visibilityState": "visible",
                "editable": "true",
                "variableName": "cpuPicker.quantity",
                "uniqueName": "cpuPicker-1001-cpuPicker.quantity",
                "value": 0,
                "step": 1,
                "set": "cpuPicker",
                "index": 1
              },
              {
                "userEdited": false,
                "dataType": "text",
                "visibilityState": "visible",
                "editable": "true",
                "variableName": "cpuPicker.imageUrl",
                "uniqueName": "cpuPicker-1001-cpuPicker.imageUrl",
                "value": "",
                "set": "cpuPicker",
                "index": 1
              },
              {
                "userEdited": false,
                "dataType": "text",
                "visibilityState": "visible",
                "editable": "true",
                "variableName": "cpuPicker.description",
                "uniqueName": "cpuPicker-1001-cpuPicker.description",
                "value": "Processor for light computing and office work",
                "set": "cpuPicker",
                "index": 1
              },
              {
                "userEdited": false,
                "dataType": "number",
                "visibilityState": "visible",
                "editable": "true",
                "variableName": "cpuPicker.price",
                "uniqueName": "cpuPicker-1001-cpuPicker.price",
                "value": 125,
                "set": "cpuPicker",
                "index": 1
              },
              {
                "userEdited": false,
                "dataType": "number",
                "visibilityState": "visible",
                "editable": "true",
                "variableName": "cpuPicker.watts",
                "uniqueName": "cpuPicker-1001-cpuPicker.watts",
                "value": 100,
                "set": "cpuPicker",
                "index": 1
              }
            ],
            "label": "Quad Core Processor",
            "state": "visible",
            "value": "CPU22GHZI7",
            "imageUrl": "https://i.imgur.com/ftft5Nx.png",
            "orderNumber": 20,
            "productDetails": {
              "name": "CPU 2.2GHz i7"
            }
          },
          {
            "index": 2,
            "fields": [
              {
                "userEdited": false,
                "dataType": "text",
                "visibilityState": "visible",
                "editable": "false",
                "variableName": "cpuPicker.value",
                "uniqueName": "cpuPicker-1002-cpuPicker.value",
                "value": "CPU28GHZI7",
                "set": "cpuPicker",
                "index": 2
              },
              {
                "userEdited": false,
                "dataType": "boolean",
                "visibilityState": "visible",
                "editable": "true",
                "variableName": "cpuPicker.select",
                "uniqueName": "cpuPicker-1002-cpuPicker.select",
                "value": false,
                "optionSet": {
                  "options": [
                    {
                      "label": "true",
                      "state": "visible",
                      "value": "true",
                      "imageUrl": null,
                      "orderNumber": null
                    },
                    {
                      "label": "false",
                      "state": "visible",
                      "value": "false",
                      "imageUrl": null,
                      "orderNumber": null
                    }
                  ]
                },
                "set": "cpuPicker",
                "index": 2
              },
              {
                "userEdited": false,
                "dataType": "number",
                "visibilityState": "visible",
                "editable": "true",
                "variableName": "cpuPicker.quantity",
                "uniqueName": "cpuPicker-1002-cpuPicker.quantity",
                "value": 0,
                "step": 1,
                "set": "cpuPicker",
                "index": 2
              },
              {
                "userEdited": false,
                "dataType": "text",
                "visibilityState": "visible",
                "editable": "true",
                "variableName": "cpuPicker.imageUrl",
                "uniqueName": "cpuPicker-1002-cpuPicker.imageUrl",
                "value": "",
                "set": "cpuPicker",
                "index": 2
              },
              {
                "userEdited": false,
                "dataType": "text",
                "visibilityState": "visible",
                "editable": "true",
                "variableName": "cpuPicker.description",
                "uniqueName": "cpuPicker-1002-cpuPicker.description",
                "value": "Perfect for moderate computing tasks",
                "set": "cpuPicker",
                "index": 2
              },
              {
                "userEdited": false,
                "dataType": "number",
                "visibilityState": "visible",
                "editable": "true",
                "variableName": "cpuPicker.price",
                "uniqueName": "cpuPicker-1002-cpuPicker.price",
                "value": 175,
                "set": "cpuPicker",
                "index": 2
              },
              {
                "userEdited": false,
                "dataType": "number",
                "visibilityState": "visible",
                "editable": "true",
                "variableName": "cpuPicker.watts",
                "uniqueName": "cpuPicker-1002-cpuPicker.watts",
                "value": 125,
                "set": "cpuPicker",
                "index": 2
              }
            ],
            "label": "6-Core Processor",
            "state": "visible",
            "value": "CPU28GHZI7",
            "imageUrl": "https://i.imgur.com/0xQH6mZ.png",
            "orderNumber": 30,
            "productDetails": {
              "name": "CPU 2.8GHz i7"
            }
          },
          {
            "index": 3,
            "fields": [
              {
                "userEdited": false,
                "dataType": "text",
                "visibilityState": "visible",
                "editable": "false",
                "variableName": "cpuPicker.value",
                "uniqueName": "cpuPicker-1003-cpuPicker.value",
                "value": "CPU7320GHZRYZ3",
                "set": "cpuPicker",
                "index": 3
              },
              {
                "userEdited": false,
                "dataType": "boolean",
                "visibilityState": "visible",
                "editable": "true",
                "variableName": "cpuPicker.select",
                "uniqueName": "cpuPicker-1003-cpuPicker.select",
                "value": false,
                "optionSet": {
                  "options": [
                    {
                      "label": "true",
                      "state": "visible",
                      "value": "true",
                      "imageUrl": null,
                      "orderNumber": null
                    },
                    {
                      "label": "false",
                      "state": "visible",
                      "value": "false",
                      "imageUrl": null,
                      "orderNumber": null
                    }
                  ]
                },
                "set": "cpuPicker",
                "index": 3
              },
              {
                "userEdited": false,
                "dataType": "number",
                "visibilityState": "visible",
                "editable": "true",
                "variableName": "cpuPicker.quantity",
                "uniqueName": "cpuPicker-1003-cpuPicker.quantity",
                "value": 0,
                "step": 1,
                "set": "cpuPicker",
                "index": 3
              },
              {
                "userEdited": false,
                "dataType": "text",
                "visibilityState": "visible",
                "editable": "true",
                "variableName": "cpuPicker.imageUrl",
                "uniqueName": "cpuPicker-1003-cpuPicker.imageUrl",
                "value": "",
                "set": "cpuPicker",
                "index": 3
              },
              {
                "userEdited": false,
                "dataType": "text",
                "visibilityState": "visible",
                "editable": "true",
                "variableName": "cpuPicker.description",
                "uniqueName": "cpuPicker-1003-cpuPicker.description",
                "value": "Great 3D and Video editing capabilities",
                "set": "cpuPicker",
                "index": 3
              },
              {
                "userEdited": false,
                "dataType": "number",
                "visibilityState": "visible",
                "editable": "true",
                "variableName": "cpuPicker.price",
                "uniqueName": "cpuPicker-1003-cpuPicker.price",
                "value": 225,
                "set": "cpuPicker",
                "index": 3
              },
              {
                "userEdited": false,
                "dataType": "number",
                "visibilityState": "visible",
                "editable": "true",
                "variableName": "cpuPicker.watts",
                "uniqueName": "cpuPicker-1003-cpuPicker.watts",
                "value": 150,
                "set": "cpuPicker",
                "index": 3
              }
            ],
            "label": "8-Core Processor",
            "state": "visible",
            "value": "CPU7320GHZRYZ3",
            "imageUrl": "https://i.imgur.com/0xQH6mZ.png",
            "orderNumber": 40,
            "productDetails": {
              "name": "AMD Ryzen 3 7320U"
            }
          },
          {
            "index": 4,
            "fields": [
              {
                "userEdited": false,
                "dataType": "text",
                "visibilityState": "visible",
                "editable": "false",
                "variableName": "cpuPicker.value",
                "uniqueName": "cpuPicker-1004-cpuPicker.value",
                "value": "CPU7550GHZRYZ5",
                "set": "cpuPicker",
                "index": 4
              },
              {
                "userEdited": false,
                "dataType": "boolean",
                "visibilityState": "visible",
                "editable": "true",
                "variableName": "cpuPicker.select",
                "uniqueName": "cpuPicker-1004-cpuPicker.select",
                "value": false,
                "optionSet": {
                  "options": [
                    {
                      "label": "true",
                      "state": "visible",
                      "value": "true",
                      "imageUrl": null,
                      "orderNumber": null
                    },
                    {
                      "label": "false",
                      "state": "visible",
                      "value": "false",
                      "imageUrl": null,
                      "orderNumber": null
                    }
                  ]
                },
                "set": "cpuPicker",
                "index": 4
              },
              {
                "userEdited": false,
                "dataType": "number",
                "visibilityState": "visible",
                "editable": "true",
                "variableName": "cpuPicker.quantity",
                "uniqueName": "cpuPicker-1004-cpuPicker.quantity",
                "value": 0,
                "step": 1,
                "set": "cpuPicker",
                "index": 4
              },
              {
                "userEdited": false,
                "dataType": "text",
                "visibilityState": "visible",
                "editable": "true",
                "variableName": "cpuPicker.imageUrl",
                "uniqueName": "cpuPicker-1004-cpuPicker.imageUrl",
                "value": "",
                "set": "cpuPicker",
                "index": 4
              },
              {
                "userEdited": false,
                "dataType": "text",
                "visibilityState": "visible",
                "editable": "true",
                "variableName": "cpuPicker.description",
                "uniqueName": "cpuPicker-1004-cpuPicker.description",
                "value": "Top of the line processor for AI, number crunching and cryptography",
                "set": "cpuPicker",
                "index": 4
              },
              {
                "userEdited": false,
                "dataType": "number",
                "visibilityState": "visible",
                "editable": "true",
                "variableName": "cpuPicker.price",
                "uniqueName": "cpuPicker-1004-cpuPicker.price",
                "value": 325,
                "set": "cpuPicker",
                "index": 4
              },
              {
                "userEdited": false,
                "dataType": "number",
                "visibilityState": "visible",
                "editable": "true",
                "variableName": "cpuPicker.watts",
                "uniqueName": "cpuPicker-1004-cpuPicker.watts",
                "value": 225,
                "set": "cpuPicker",
                "index": 4
              }
            ],
            "label": "12-Core Processor",
            "state": "visible",
            "value": "CPU7550GHZRYZ5",
            "imageUrl": "https://i.imgur.com/LaQVZma.png",
            "orderNumber": 50,
            "productDetails": {
              "name": "AMD Ryzen 5 7550U"
            }
          }
        ],
        "pageable": "INSTANCE",
        "totalPages": 1,
        "totalElements": 5,
        "last": true,
        "size": 5,
        "number": 0,
        "sort": {
          "empty": true,
          "sorted": false,
          "unsorted": true
        },
        "numberOfElements": 5,
        "first": true,
        "empty": false
      }
    },
    {
      "userEdited": false,
      "dataType": "set",
      "visibilityState": "visible",
      "editable": "true",
      "variableName": "delta",
      "uniqueName": "delta",
      "rows": {
        "content": [],
        "pageable": "INSTANCE",
        "totalPages": 1,
        "totalElements": 0,
        "last": true,
        "size": 0,
        "number": 0,
        "sort": {
          "empty": true,
          "sorted": false,
          "unsorted": true
        },
        "numberOfElements": 0,
        "first": true,
        "empty": true
      }
    },
    {
      "userEdited": false,
      "dataType": "number",
      "visibilityState": "visible",
      "editable": "false",
      "variableName": "ramPicker.aggregates.storage_sum",
      "uniqueName": "ramPicker.aggregates.storage_sum",
      "value": 0
    },
    {
      "userEdited": false,
      "dataType": "text",
      "visibilityState": "visible",
      "editable": "true",
      "variableName": "sys.productDescription",
      "uniqueName": "sys.productDescription",
      "value": ""
    },
    {
      "userEdited": false,
      "dataType": "text",
      "visibilityState": "visible",
      "editable": "true",
      "variableName": "sys.productUOM",
      "uniqueName": "sys.productUOM",
      "value": ""
    },
    {
      "userEdited": false,
      "dataType": "number",
      "visibilityState": "visible",
      "editable": "true",
      "variableName": "sys.productPrice",
      "uniqueName": "sys.productPrice",
      "value": 0
    },
    {
      "userEdited": false,
      "dataType": "text",
      "visibilityState": "visible",
      "editable": "true",
      "variableName": "sys.productId",
      "uniqueName": "sys.productId",
      "value": "SWC"
    },
    {
      "userEdited": false,
      "dataType": "text",
      "visibilityState": "visible",
      "editable": "true",
      "variableName": "sys.actionContext",
      "uniqueName": "sys.actionContext",
      "value": ""
    },
    {
      "userEdited": false,
      "dataType": "number",
      "visibilityState": "visible",
      "editable": "true",
      "variableName": "set.delta.size",
      "uniqueName": "set.delta.size",
      "value": []
    },
    {
      "userEdited": false,
      "dataType": "number",
      "visibilityState": "visible",
      "editable": "false",
      "variableName": "set.delta.priceSum",
      "uniqueName": "set.delta.priceSum",
      "value": 0
    },
    {
      "userEdited": false,
      "dataType": "text",
      "visibilityState": "visible",
      "editable": "true",
      "variableName": "sys.productName",
      "uniqueName": "sys.productName",
      "value": "Laptop Configurator"
    },
    {
      "userEdited": false,
      "dataType": "number",
      "visibilityState": "visible",
      "editable": "false",
      "variableName": "cpuPicker.aggregates.watts_sum",
      "uniqueName": "cpuPicker.aggregates.watts_sum",
      "value": 0
    },
    {
      "userEdited": false,
      "dataType": "number",
      "visibilityState": "visible",
      "editable": "false",
      "variableName": "ramPicker.aggregates.value_count",
      "uniqueName": "ramPicker.aggregates.value_count",
      "value": 0
    },
    {
      "userEdited": false,
      "dataType": "text",
      "visibilityState": "visible",
      "editable": "true",
      "variableName": "pleExtension",
      "uniqueName": "pleExtension",
      "value": "SSM",
      "optionSet": {
        "selectedOptions": [
          {
            "label": "Single",
            "state": "visible",
            "value": "SSM",
            "imageUrl": null,
            "orderNumber": 10
          }
        ],
        "options": [
          {
            "label": "Single",
            "state": "visible",
            "value": "SSM",
            "imageUrl": null,
            "orderNumber": 10
          },
          {
            "label": "Dual",
            "state": "visible",
            "value": "DSM",
            "imageUrl": null,
            "orderNumber": 20
          }
        ]
      }
    },
    {
      "userEdited": false,
      "dataType": "text",
      "visibilityState": "visible",
      "editable": "true",
      "variableName": "partner.quote.currencyIsoCode",
      "uniqueName": "partner.quote.currencyIsoCode",
      "value": "USD"
    },
    {
      "userEdited": false,
      "dataType": "text",
      "visibilityState": "visible",
      "editable": "true",
      "variableName": "sys.productFamily",
      "uniqueName": "sys.productFamily",
      "value": "Software"
    },
    {
      "userEdited": false,
      "dataType": "text",
      "visibilityState": "visible",
      "editable": "true",
      "variableName": "partner.quote.lineId",
      "uniqueName": "partner.quote.lineId",
      "value": ""
    },
    {
      "userEdited": false,
      "dataType": "text",
      "visibilityState": "visible",
      "editable": "true",
      "variableName": "sys.currentDate",
      "uniqueName": "sys.currentDate",
      "value": "2023-09-29"
    },
    {
      "userEdited": false,
      "dataType": "text",
      "visibilityState": "visible",
      "editable": "true",
      "variableName": "cPUType",
      "uniqueName": "cPUType",
      "value": "All",
      "optionSet": {
        "selectedOptions": [
          {
            "label": "All",
            "state": "visible",
            "value": "All",
            "imageUrl": null,
            "orderNumber": 5
          }
        ],
        "options": [
          {
            "label": "All",
            "state": "visible",
            "value": "All",
            "imageUrl": null,
            "orderNumber": 5
          },
          {
            "label": "Low",
            "state": "visible",
            "value": "Low",
            "imageUrl": null,
            "orderNumber": 7
          },
          {
            "label": "Mid",
            "state": "visible",
            "value": "Mid",
            "imageUrl": null,
            "orderNumber": 8
          },
          {
            "label": "High",
            "state": "visible",
            "value": "High",
            "imageUrl": null,
            "orderNumber": 9
          }
        ]
      }
    },
    {
      "userEdited": false,
      "dataType": "text",
      "visibilityState": "visible",
      "editable": "true",
      "variableName": "preconfigured",
      "uniqueName": "preconfigured",
      "value": "",
      "optionSet": {
        "options": [
          {
            "label": "Basic Office",
            "state": "visible",
            "value": "Basic",
            "imageUrl": null,
            "orderNumber": 10
          },
          {
            "label": "Video and 3D",
            "state": "visible",
            "value": "3D",
            "imageUrl": null,
            "orderNumber": 20
          },
          {
            "label": "Enthusiast",
            "state": "visible",
            "value": "Max",
            "imageUrl": null,
            "orderNumber": 30
          }
        ]
      }
    },
    {
      "userEdited": false,
      "dataType": "text",
      "visibilityState": "visible",
      "editable": "true",
      "variableName": "sys.productCode",
      "uniqueName": "sys.productCode",
      "value": "SWC"
    },
    {
      "userEdited": false,
      "dataType": "text",
      "visibilityState": "visible",
      "editable": "true",
      "variableName": "partner.quote.pricebookId",
      "uniqueName": "partner.quote.pricebookId",
      "value": ""
    },
    {
      "userEdited": false,
      "dataType": "text",
      "visibilityState": "visible",
      "editable": "true",
      "variableName": "partner.quote.id",
      "uniqueName": "partner.quote.id",
      "value": ""
    }
  ],
  "uuid": "ad947503-5246-461f-8603-f0124593ae1c",
  "revision": 0,
  "relatedChanges": [
    {
      "key": "drivePicker",
      "type": "PRODUCT_PICKER"
    },
    {
      "key": "ramPicker",
      "type": "PRODUCT_PICKER"
    },
    {
      "key": "cpuPicker",
      "type": "PRODUCT_PICKER"
    },
    {
      "key": "delta",
      "type": "SET"
    },
    {
      "key": "products",
      "type": "PRODUCT"
    }
  ],
  "valid": true,
  "messages": [],
  "productChange": true,
  "products": [
    {
      "id": "SSM",
      "quantity": 1,
      "bomType": "Sales",
      "price": 125,
      "uniqueIdentifier": "motherboard",
      "orderNumber": 10,
      "type": "accessory",
      "name": "Single Motherboard",
      "partnerId": "01t6e000009gRTpAAM",
      "productCode": "SSM",
      "externalId": "",
      "productFamily": "",
      "description": "",
      "uom": "",
      "extPrice": 125,
      "level": 0,
      "rollUpPrice": 125
    }
  ],
  "showValidationButton": false,
  "total": 125,
  "layouts": [
    {
      "url": "/blueprints/8/revisions/LATEST/layouts/1",
      "label": "basic",
      "variableName": "pickerGeneral_basic"
    }
  ]
}

Properties

Name Type Required Restrictions Description
fields [object] false none none
» userEdited boolean false none none
» dataType string false none none
» visibilityState string false none none
» editable string false none none
» variableName string false none none
» uniqueName string false none none
» value any false none none

anyOf

Name Type Required Restrictions Description
»» anonymous string false none none

or

Name Type Required Restrictions Description
»» anonymous number false none none

or

Name Type Required Restrictions Description
»» anonymous boolean false none none

or

Name Type Required Restrictions Description
»» anonymous [string] false none none

continued

Name Type Required Restrictions Description
» optionSet object false none none
»» options [object] true none none
»»» label string false none none
»»» state string false none none
»»» value string false none none
»»» imageUrl string false none none
»»» orderNumber number false none none
» selectAll string false none none
» rows object false none none
»» content [object] true none none
»»» index number false none none
»»» fields [object] false none none
»»»» userEdited boolean false none none
»»»» dataType string false none none
»»»» visibilityState string false none none
»»»» editable string false none none
»»»» variableName string false none none
»»»» uniqueName string false none none
»»»» value string false none none
»»»» set string false none none
»»»» index number false none none
»»» label string false none none
»»» state string false none none
»»» value string false none none
»»» imageUrl string false none none
»»» orderNumber number false none none
»»» productDetails object false none none
»»»» price number true none none
»»»» name string true none none
»» pageable string true none none
»» last boolean true none none
»» totalPages number true none none
»» totalElements number true none none
»» size number true none none
»» number number true none none
»» sort object true none none
»»» empty boolean true none none
»»» sorted boolean true none none
»»» unsorted boolean true none none
»» numberOfElements number true none none
»» first boolean true none none
»» empty boolean true none none
uuid string false none none
revision number false none none
relatedChanges [object] false none none
» key string false none none
» type string false none none
valid boolean false none none
messages [Message] false none none
productChange boolean false none none
products [Product] false none none
showValidationButton boolean false none none
layouts [object] false none none
» url string false none none
» label string false none none
» variableName string false none none

BOMResponse

{
  "products": [
    {
      "id": "string",
      "selectionType": "string",
      "quantity": 0,
      "bomType": "string",
      "level": 0,
      "parentProduct": 0,
      "notes": "string",
      "uniqueIdentifier": 0,
      "description": "string",
      "externalId": "string",
      "name": "string",
      "price": 0,
      "extPrice": 0,
      "extended": {
        "additionalProperties": "string"
      }
    }
  ],
  "pageable": {
    "sort": {
      "empty": true,
      "sorted": true,
      "unsorted": true
    },
    "offset": 0,
    "pageNumber": 0,
    "pageSize": 0,
    "paged": true,
    "unpaged": true
  },
  "totalPages": 0,
  "totalElements": 0,
  "last": true,
  "size": 0,
  "number": 0,
  "numberOfElements": 0,
  "first": true,
  "empty": true,
  "total": 0
}

Properties

Name Type Required Restrictions Description
products [Product] false none none
pageable object false none none
» sort object false none none
»» empty boolean false none none
»» sorted boolean false none none
»» unsorted boolean false none none
» offset integer false none none
» pageNumber integer false none none
» pageSize integer false none none
» paged boolean false none none
» unpaged boolean false none none
totalPages integer false none none
totalElements integer false none none
last boolean false none none
size integer false none none
number integer false none none
numberOfElements integer false none none
first boolean false none none
empty boolean false none none
total integer false none none

Product

{
  "id": "string",
  "selectionType": "string",
  "quantity": 0,
  "bomType": "string",
  "level": 0,
  "parentProduct": 0,
  "notes": "string",
  "uniqueIdentifier": 0,
  "description": "string",
  "externalId": "string",
  "name": "string",
  "price": 0,
  "extPrice": 0,
  "extended": {
    "additionalProperties": "string"
  }
}

Properties

Name Type Required Restrictions Description
id string false none none
selectionType string false none none
quantity integer false none none
bomType string false none none
level integer false none none
parentProduct integer false none none
notes string false none none
uniqueIdentifier integer false none none
description string false none none
externalId string false none none
name string false none none
price number false none none
extPrice number false none none
extended object false none none
» additionalProperties string false none none

Errors

The Logik.io API uses the following error codes:

Error Code Meaning
400 Bad Request -- Your request is invalid.
401 Unauthorized -- Your API key is wrong or missing.
403 Forbidden -- Your API Key does not have permissions to perform the operation.
404 Not Found -- The endpoint or resource could not be found.
405 Method Not Allowed
500 Internal Server Error -- We had a problem with our server. Try again later.
503 Service Unavailable -- We're temporarily offline for maintenance. Please try again later.