Logik.io Configuration (V2) API

Creating new configurations, reconfiguring existing configurations, making updates to a configuration and saving changes.

Operations 4

POST /api Start Configuration #
GET /api/{uuid} Get Configuration #
PATCH /api/{uuid} Update or Save Configuration #
GET /api/{uuid}/sets/{setVariableName} Access fields in a given Set. Use if Set flagged in relatedChanges param #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/logikio-configuration-v2-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

logikio-configuration-v2-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Logik Configurator Runtime APIs V2 Configuration (V2) API
  version: 2.1.0
  description: "Logik.io End User API Definition. Shows payload structure and schema, authroization approach and endpoint format. Can be used for custom UI or headless implementations.\n\n## Important Versioning Information\n\nBlueprints that use Product Picker Fields ***must*** use the `application/vnd.logik.cfg-v2+json` Content-Type when making requests.\n\n 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.\n  - `application/json`: can be used with regular Logik field types (number, boolean, text and picklist) and sets.\n  - `application/vnd.logik.cfg-v2+json`: can be used with all regular field types as well as Product Picker Fields.\n  \nThe Accept Header should match the Content-Type being used, either:\n  - `application/json`: for v1.\n  - `application/vnd.logik.cfg-v2+json, application/json`: for v2.\n"
  contact:
    email: support@logik.io
servers:
- url: https://{tenant}.{sector}.logik.io
  variables:
    tenant:
      default: example
      description: Logik.io tenant
    sector:
      default: test
      description: Logik.io sector
security:
- RuntimeTokenBearerAuth: []
tags:
- name: Configuration (V2)
  description: Creating new configurations, reconfiguring existing configurations, making updates to a configuration and saving changes.
paths:
  /api:
    post:
      tags:
      - Configuration (V2)
      summary: Start Configuration
      description: Initialize a new Configuration or reconfigure an existing Configuration if passing an existing Logik Configuration UUID in the Request Body.
      operationId: startConfigV2
      parameters:
      - $ref: '#/components/parameters/headerOrigin'
      requestBody:
        $ref: '#/components/requestBodies/InitializeConfigurationV2'
      responses:
        200:
          description: Return the state of configuration at initalization or reconfiguration. Includes fields, messages and products.
          content:
            application/vnd.logik.cfg-v2+json:
              schema:
                $ref: '#/components/schemas/ConfigResponseV2'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/NotAuthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        5XX:
          $ref: '#/components/responses/ServerError'
  /api/{uuid}:
    get:
      tags:
      - Configuration (V2)
      summary: Get Configuration
      description: '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.

        '
      operationId: getConfigByUuidV2
      parameters:
      - $ref: '#/components/parameters/headerOrigin'
      - $ref: '#/components/parameters/ConfigurationUUID'
      responses:
        200:
          description: Return initial state of fields, messages and products
          content:
            application/vnd.logik.cfg-v2+json:
              schema:
                $ref: '#/components/schemas/ConfigResponseV2'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/NotAuthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        5XX:
          $ref: '#/components/responses/ServerError'
    patch:
      tags:
      - Configuration (V2)
      summary: Update or Save Configuration
      description: 'Update or Save Configuration with the provided Configuration UUID.

        '
      operationId: updateConfigByUuidV2
      parameters:
      - $ref: '#/components/parameters/headerOrigin'
      - $ref: '#/components/parameters/ConfigurationUUID'
      - $ref: '#/components/parameters/queryDelta'
      - $ref: '#/components/parameters/querySave'
      requestBody:
        description: Update or Save Payload for a Configuration.
        content:
          application/vnd.logik.cfg-v2+json:
            schema:
              $ref: '#/components/schemas/UpdateConfigV2'
        required: true
      responses:
        200:
          description: Returns state of fields, messages and products
          content:
            application/vnd.logik.cfg-v2+json:
              schema:
                $ref: '#/components/schemas/ConfigResponseV2'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/NotAuthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        5XX:
          $ref: '#/components/responses/ServerError'
  /api/{uuid}/sets/{setVariableName}:
    get:
      tags:
      - Configuration (V2)
      summary: Access fields in a given Set. Use if Set flagged in relatedChanges param
      operationId: getSet
      parameters:
      - $ref: '#/components/parameters/headerOrigin'
      - $ref: '#/components/parameters/ConfigurationUUID'
      - name: setVariableName
        in: path
        description: Variable name of the Set defined in admin for which data is requested
        required: true
        schema:
          type: string
      - $ref: '#/components/parameters/queryPage'
      - $ref: '#/components/parameters/queryLimit'
      - $ref: '#/components/parameters/querySort'
      responses:
        200:
          description: Paginated details for a given Set variable name
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SetsResponse'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/NotAuthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        5XX:
          $ref: '#/components/responses/ServerError'
components:
  schemas:
    ErrorResponse:
      type: object
      properties:
        errorMessage:
          type: string
        timestamp:
          type: string
          format: date-time
    InitConfigV2:
      type: object
      properties:
        sessionContext:
          required:
          - stateful
          properties:
            stateful:
              type: boolean
          type: object
        partnerData:
          properties:
            quote:
              properties:
                SBQQ__PricebookId__c:
                  type: string
                LGK__QueriedEditAccess__c:
                  type: string
              type: object
            product:
              properties:
                configuredProductId:
                  type: string
                configurationAttributes:
                  properties:
                    LGK__Logik_Id__c:
                      type: string
                  type: object
              type: object
          type: object
        configurableProduct:
          properties:
            responseState:
              required:
              - defaultPagination
              properties:
                defaultPagination:
                  required:
                  - pageSize
                  - pageNumber
                  properties:
                    pageSize:
                      type: number
                    pageNumber:
                      type: number
                  type: object
              type: object
          type: object
        productId:
          type: string
      example:
        sessionContext:
          stateful: true
        productId: 01t6e000009bOeLAAU
    Field:
      type: object
      properties:
        value:
          type: string
        dataType:
          type: string
        visibilityState:
          type: string
        editable:
          type: string
        variableName:
          type: string
        optionSet:
          required:
          - options
          type: object
          properties:
            options:
              type: array
              items:
                required:
                - label
                - orderNumber
                - state
                - value
                type: object
                properties:
                  label:
                    type: string
                  state:
                    type: string
                  value:
                    type: string
                  imageUrl:
                    type: string
                  orderNumber:
                    type: integer
    SetsContent:
      type: object
      properties:
        index:
          type: integer
        fields:
          type: array
          items:
            $ref: '#/components/schemas/Field'
    Message:
      required:
      - error
      - field
      - message
      - type
      type: object
      properties:
        message:
          type: string
        type:
          type: string
        error:
          type: boolean
        field:
          type: string
    SetsResponse:
      type: object
      properties:
        content:
          type: array
          items:
            $ref: '#/components/schemas/SetsContent'
        pageable:
          type: object
          properties:
            sort:
              type: object
              properties:
                empty:
                  type: boolean
                sorted:
                  type: boolean
                unsorted:
                  type: boolean
            offset:
              type: integer
            pageNumber:
              type: integer
            pageSize:
              type: integer
            paged:
              type: boolean
            unpaged:
              type: boolean
        totalPages:
          type: integer
        totalElements:
          type: integer
        last:
          type: boolean
        size:
          type: integer
        number:
          type: integer
        numberOfElements:
          type: integer
        first:
          type: boolean
        empty:
          type: boolean
        total:
          type: integer
    UpdateConfigV2:
      type: object
      properties:
        fields:
          type: array
          items:
            type: object
            properties:
              variableName:
                type: string
              value:
                type: boolean
              index:
                type: number
              set:
                type: string
              uniqueName:
                type: string
        responseState:
          properties:
            setPagination:
              properties:
                additionalProperties:
                  required:
                  - pageSize
                  - pageNumber
                  properties:
                    pageSize:
                      type: number
                    pageNumber:
                      type: number
                  type: object
              type: object
            defaultPagination:
              required:
              - pageSize
              - pageNumber
              properties:
                pageSize:
                  type: number
                  default: 10
                pageNumber:
                  type: number
                  default: 0
              type: object
          type: object
      example:
        fields:
        - variableName: cpuPicker.select
          uniqueName: cpuPicker-1003-cpuPicker.select
          value: true
          set: cpuPicker
          index: 3
    ConfigResponseV2:
      type: object
      properties:
        fields:
          type: array
          items:
            type: object
            properties:
              userEdited:
                type: boolean
              dataType:
                type: string
              visibilityState:
                type: string
              editable:
                type: string
              variableName:
                type: string
              uniqueName:
                type: string
              value:
                anyOf:
                - type: string
                - type: number
                - type: boolean
                - type: array
                  items:
                    type: string
              optionSet:
                required:
                - options
                properties:
                  options:
                    type: array
                    items:
                      type: object
                      properties:
                        label:
                          type: string
                        state:
                          type: string
                        value:
                          type: string
                        imageUrl:
                          type: string
                        orderNumber:
                          type: number
                type: object
              selectAll:
                type: string
              rows:
                required:
                - content
                - pageable
                - last
                - totalPages
                - totalElements
                - size
                - number
                - sort
                - numberOfElements
                - first
                - empty
                properties:
                  content:
                    type: array
                    items:
                      type: object
                      properties:
                        index:
                          type: number
                        fields:
                          type: array
                          items:
                            type: object
                            properties:
                              userEdited:
                                type: boolean
                              dataType:
                                type: string
                              visibilityState:
                                type: string
                              editable:
                                type: string
                              variableName:
                                type: string
                              uniqueName:
                                type: string
                              value:
                                type: string
                              set:
                                type: string
                              index:
                                type: number
                        label:
                          type: string
                        state:
                          type: string
                        value:
                          type: string
                        imageUrl:
                          type: string
                        orderNumber:
                          type: number
                        productDetails:
                          required:
                          - price
                          - name
                          properties:
                            price:
                              type: number
                            name:
                              type: string
                          type: object
                  pageable:
                    type: string
                  last:
                    type: boolean
                  totalPages:
                    type: number
                  totalElements:
                    type: number
                  size:
                    type: number
                  number:
                    type: number
                  sort:
                    required:
                    - empty
                    - sorted
                    - unsorted
                    properties:
                      empty:
                        type: boolean
                      sorted:
                        type: boolean
                      unsorted:
                        type: boolean
                    type: object
                  numberOfElements:
                    type: number
                  first:
                    type: boolean
                  empty:
                    type: boolean
                type: object
        uuid:
          type: string
        revision:
          type: number
        relatedChanges:
          type: array
          items:
            type: object
            properties:
              key:
                type: string
              type:
                type: string
        valid:
          type: boolean
        messages:
          type: array
          items:
            $ref: '#/components/schemas/Message'
        productChange:
          type: boolean
        products:
          type: array
          items:
            $ref: '#/components/schemas/Product'
        showValidationButton:
          type: boolean
        layouts:
          type: array
          items:
            type: object
            properties:
              url:
                type: string
              label:
                type: string
              variableName:
                type: string
      example:
        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
                optionS

# --- truncated at 32 KB (64 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/logikio/refs/heads/main/openapi/logikio-configuration-v2-api-openapi.yml