---
title: "Retrieves available transfer learning models"
method: GET
path: "/api/{projectId}/optimize/transfer-learning-models"
tags: ["Optimization"]
---

# Retrieves available transfer learning models

`GET /api/{projectId}/optimize/transfer-learning-models`

## Request

- Base URL: `https://studio.edgeimpulse.com/v1`
- URL: `https://studio.edgeimpulse.com/v1/api/{projectId}/optimize/transfer-learning-models`
- Auth: one of:
  - API key in header `x-api-key`
  - API key in cookie `jwt`
  - API key in header `x-jwt-token`
  - OAuth 2
    - Authorization code: `/v1/oauth/authorize`
    - Client credentials
    - Implicit: `/v1/oauth/authorize`
    - Password
    - Token URL: `/v1/oauth/token`
- TypeScript: <https://skmtc.dev/edgeimpulse/apis/edge-impulse-api/docs/api/:projectId/optimize/transfer-learning-models/get.ts> (a function with typed inputs; its response is checked against the schema)

Retrieves available transfer learning models

## Path parameters

- `projectId` integer, required

## Response `200`

OK

- OptimizeTransferLearningModelsResponse
  - `success` boolean, required: Whether the operation succeeded
  - `error` string: Optional error description (set if 'success' was false)
  - `models` object, required
    - `image` TransferLearningModel[], required
      - `name` string, required
      - `shortName` string, required
      - `abbreviatedName` string
      - `description` string, required
      - `hasNeurons` boolean, required
      - `hasDropout` boolean, required
      - `defaultNeurons` integer
      - `defaultDropout` number
      - `defaultLearningRate` number
      - `defaultTrainingCycles` number
      - `hasImageAugmentation` boolean
      - `type` 'dense' | 'conv1d' | 'conv2d' | 'reshape' | 'flatten' | 'dropout' | 'batchNormalization' | 'transfer_mobilenetv2_a35' | 'transfer_mobilenetv2_a1' | 'transfer_mobilenetv2_a05' | 'transfer_mobilenetv2_160_a1' | 'transfer_mobilenetv2_160_a75' | 'transfer_mobilenetv2_160_a5' | 'transfer_mobilenetv2_160_a35' | 'transfer_mobilenetv1_a25_d100' | 'transfer_mobilenetv1_a2_d100' | 'transfer_mobilenetv1_a1_d100' | 'transfer_kws_mobilenetv1_a1_d100' | 'transfer_kws_mobilenetv2_a35_d100' | 'transfer_kws_syntiant_ndp10x' | 'transfer_kws_conv2d_tiny' | 'object_ssd_mobilenet_v2_fpnlite_320x320' | 'fomo_mobilenet_v2_a01' | 'fomo_mobilenet_v2_a35' | 'transfer_organization' | 'transfer_akidanet_imagenet_160_a100' | 'transfer_akidanet_imagenet_160_a50' | 'transfer_akidanet_imagenet_160_a25' | 'transfer_akidanet_imagenet_224_a100' | 'transfer_akidanet_imagenet_224_a50' | 'transfer_akidanet_imagenet_224_a25' | 'fomo_akidanet_a50' | 'fomo_ad_gmm' | 'fomo_ad_patchcore', required
      - `learnBlockType` 'anomaly' | 'anomaly-gmm' | 'keras' | 'keras-transfer-image' | 'keras-transfer-kws' | 'keras-object-detection' | 'keras-regression' | 'keras-akida' | 'keras-akida-transfer-image' | 'keras-akida-object-detection' | 'keras-visual-anomaly' | 'keras-freeform' | 'keras-self-contained-freeform' | 'keras-anomaly' | 'vlm', required: The type of learning block (anomaly, keras, keras-transfer-image, ...). Each behaves differently.
      - `organizationModelId` integer
      - `implementationVersion` integer
      - `repositoryUrl` string: URL to the source code of this custom learn block.
      - `customBlockRef` string: Unique stable string key used to create and find this custom block.
      - `author` string, required
      - `blockType` 'official' | 'personal' | 'enterprise' | 'community', required
      - `customParameters` DSPGroupItem[]
        - `name` string, required
        - `value` string
        - `defaultValue` string, required
        - `type` string, required
        - `help` string
        - `param` string, required
        - `selectOptions` object[]
          - `value` string: What is the string that will be set if this option is selected?
          - `selected` boolean
          - `optionLabel` string: What is the label that will be shown to the user for this option?
          - `priority` number: The following options are optional. See Learn Block Auto Config in Notion. Higher priority will get chosen based on limits below.
          - `romEstimate` number: Estimated ROM footprint for this choice. Will be tested against ROM budget in Studio.
          - `needsOps` string[]
          - `needsFeatures` string[]
        - `readonly` boolean, required
        - `shouldShow` boolean, required
        - `showIf` object
          - `parameter` string, required
          - `operator` 'eq' | 'neq', required
          - `value` string, required
        - `invalidText` string
        - `section` 'advanced' | 'augmentation' | 'modelProfiling': Interface section to render parameter in.
        - `multiline` boolean: Only valid for type "string". Will render a multiline text area.
        - `required` boolean, required
        - `hint` string: If set, shows a hint below the input.
        - `placeholder` string: Sets the placeholder text on the input element (for types "string", "int", "float" and "secret")
        - `showClickToSet` boolean, required: If enabled, render a disabled input element with 'Click to set'
        - `valid` object[]: Valid values for parameter.
        - `items` object: Recursive definition for items of a parameter with type 'array'.
        - `properties` object: Recursive definition for a parameter with type 'object'.
        - `minVal` number: Minimum value for parameters of type 'int' or 'float'.
        - `maxVal` number: Maximum value for parameters of type 'int' or 'float'.
      - `displayCategory` 'classical' | 'tao' | 'developer-preview': Category to display this block in the UI.
      - `blockNoLongerAvailable` object: If this object is set, then you can no longer train this block. The reason (or a migration path) is in the `reasonMarkdown` and `reasonHtml` properties.
        - `reasonMarkdown` string, required: Reason or migration path for current users of this block, in Markdown format.
        - `reasonHtml` string, required: Reason or migration path for current users of this block, in HTML format.
      - `hasExpertMode` boolean, required: Whether this block can be switched to expert mode.
    - `objectDetection` TransferLearningModel[], required
      - `name` string, required
      - `shortName` string, required
      - `abbreviatedName` string
      - `description` string, required
      - `hasNeurons` boolean, required
      - `hasDropout` boolean, required
      - `defaultNeurons` integer
      - `defaultDropout` number
      - `defaultLearningRate` number
      - `defaultTrainingCycles` number
      - `hasImageAugmentation` boolean
      - `type` 'dense' | 'conv1d' | 'conv2d' | 'reshape' | 'flatten' | 'dropout' | 'batchNormalization' | 'transfer_mobilenetv2_a35' | 'transfer_mobilenetv2_a1' | 'transfer_mobilenetv2_a05' | 'transfer_mobilenetv2_160_a1' | 'transfer_mobilenetv2_160_a75' | 'transfer_mobilenetv2_160_a5' | 'transfer_mobilenetv2_160_a35' | 'transfer_mobilenetv1_a25_d100' | 'transfer_mobilenetv1_a2_d100' | 'transfer_mobilenetv1_a1_d100' | 'transfer_kws_mobilenetv1_a1_d100' | 'transfer_kws_mobilenetv2_a35_d100' | 'transfer_kws_syntiant_ndp10x' | 'transfer_kws_conv2d_tiny' | 'object_ssd_mobilenet_v2_fpnlite_320x320' | 'fomo_mobilenet_v2_a01' | 'fomo_mobilenet_v2_a35' | 'transfer_organization' | 'transfer_akidanet_imagenet_160_a100' | 'transfer_akidanet_imagenet_160_a50' | 'transfer_akidanet_imagenet_160_a25' | 'transfer_akidanet_imagenet_224_a100' | 'transfer_akidanet_imagenet_224_a50' | 'transfer_akidanet_imagenet_224_a25' | 'fomo_akidanet_a50' | 'fomo_ad_gmm' | 'fomo_ad_patchcore', required
      - `learnBlockType` 'anomaly' | 'anomaly-gmm' | 'keras' | 'keras-transfer-image' | 'keras-transfer-kws' | 'keras-object-detection' | 'keras-regression' | 'keras-akida' | 'keras-akida-transfer-image' | 'keras-akida-object-detection' | 'keras-visual-anomaly' | 'keras-freeform' | 'keras-self-contained-freeform' | 'keras-anomaly' | 'vlm', required: The type of learning block (anomaly, keras, keras-transfer-image, ...). Each behaves differently.
      - `organizationModelId` integer
      - `implementationVersion` integer
      - `repositoryUrl` string: URL to the source code of this custom learn block.
      - `customBlockRef` string: Unique stable string key used to create and find this custom block.
      - `author` string, required
      - `blockType` 'official' | 'personal' | 'enterprise' | 'community', required
      - `customParameters` DSPGroupItem[]
        - `name` string, required
        - `value` string
        - `defaultValue` string, required
        - `type` string, required
        - `help` string
        - `param` string, required
        - `selectOptions` object[]
          - `value` string: What is the string that will be set if this option is selected?
          - `selected` boolean
          - `optionLabel` string: What is the label that will be shown to the user for this option?
          - `priority` number: The following options are optional. See Learn Block Auto Config in Notion. Higher priority will get chosen based on limits below.
          - `romEstimate` number: Estimated ROM footprint for this choice. Will be tested against ROM budget in Studio.
          - `needsOps` string[]
          - `needsFeatures` string[]
        - `readonly` boolean, required
        - `shouldShow` boolean, required
        - `showIf` object
          - `parameter` string, required
          - `operator` 'eq' | 'neq', required
          - `value` string, required
        - `invalidText` string
        - `section` 'advanced' | 'augmentation' | 'modelProfiling': Interface section to render parameter in.
        - `multiline` boolean: Only valid for type "string". Will render a multiline text area.
        - `required` boolean, required
        - `hint` string: If set, shows a hint below the input.
        - `placeholder` string: Sets the placeholder text on the input element (for types "string", "int", "float" and "secret")
        - `showClickToSet` boolean, required: If enabled, render a disabled input element with 'Click to set'
        - `valid` object[]: Valid values for parameter.
        - `items` object: Recursive definition for items of a parameter with type 'array'.
        - `properties` object: Recursive definition for a parameter with type 'object'.
        - `minVal` number: Minimum value for parameters of type 'int' or 'float'.
        - `maxVal` number: Maximum value for parameters of type 'int' or 'float'.
      - `displayCategory` 'classical' | 'tao' | 'developer-preview': Category to display this block in the UI.
      - `blockNoLongerAvailable` object: If this object is set, then you can no longer train this block. The reason (or a migration path) is in the `reasonMarkdown` and `reasonHtml` properties.
        - `reasonMarkdown` string, required: Reason or migration path for current users of this block, in Markdown format.
        - `reasonHtml` string, required: Reason or migration path for current users of this block, in HTML format.
      - `hasExpertMode` boolean, required: Whether this block can be switched to expert mode.
    - `kws` TransferLearningModel[], required
      - `name` string, required
      - `shortName` string, required
      - `abbreviatedName` string
      - `description` string, required
      - `hasNeurons` boolean, required
      - `hasDropout` boolean, required
      - `defaultNeurons` integer
      - `defaultDropout` number
      - `defaultLearningRate` number
      - `defaultTrainingCycles` number
      - `hasImageAugmentation` boolean
      - `type` 'dense' | 'conv1d' | 'conv2d' | 'reshape' | 'flatten' | 'dropout' | 'batchNormalization' | 'transfer_mobilenetv2_a35' | 'transfer_mobilenetv2_a1' | 'transfer_mobilenetv2_a05' | 'transfer_mobilenetv2_160_a1' | 'transfer_mobilenetv2_160_a75' | 'transfer_mobilenetv2_160_a5' | 'transfer_mobilenetv2_160_a35' | 'transfer_mobilenetv1_a25_d100' | 'transfer_mobilenetv1_a2_d100' | 'transfer_mobilenetv1_a1_d100' | 'transfer_kws_mobilenetv1_a1_d100' | 'transfer_kws_mobilenetv2_a35_d100' | 'transfer_kws_syntiant_ndp10x' | 'transfer_kws_conv2d_tiny' | 'object_ssd_mobilenet_v2_fpnlite_320x320' | 'fomo_mobilenet_v2_a01' | 'fomo_mobilenet_v2_a35' | 'transfer_organization' | 'transfer_akidanet_imagenet_160_a100' | 'transfer_akidanet_imagenet_160_a50' | 'transfer_akidanet_imagenet_160_a25' | 'transfer_akidanet_imagenet_224_a100' | 'transfer_akidanet_imagenet_224_a50' | 'transfer_akidanet_imagenet_224_a25' | 'fomo_akidanet_a50' | 'fomo_ad_gmm' | 'fomo_ad_patchcore', required
      - `learnBlockType` 'anomaly' | 'anomaly-gmm' | 'keras' | 'keras-transfer-image' | 'keras-transfer-kws' | 'keras-object-detection' | 'keras-regression' | 'keras-akida' | 'keras-akida-transfer-image' | 'keras-akida-object-detection' | 'keras-visual-anomaly' | 'keras-freeform' | 'keras-self-contained-freeform' | 'keras-anomaly' | 'vlm', required: The type of learning block (anomaly, keras, keras-transfer-image, ...). Each behaves differently.
      - `organizationModelId` integer
      - `implementationVersion` integer
      - `repositoryUrl` string: URL to the source code of this custom learn block.
      - `customBlockRef` string: Unique stable string key used to create and find this custom block.
      - `author` string, required
      - `blockType` 'official' | 'personal' | 'enterprise' | 'community', required
      - `customParameters` DSPGroupItem[]
        - `name` string, required
        - `value` string
        - `defaultValue` string, required
        - `type` string, required
        - `help` string
        - `param` string, required
        - `selectOptions` object[]
          - `value` string: What is the string that will be set if this option is selected?
          - `selected` boolean
          - `optionLabel` string: What is the label that will be shown to the user for this option?
          - `priority` number: The following options are optional. See Learn Block Auto Config in Notion. Higher priority will get chosen based on limits below.
          - `romEstimate` number: Estimated ROM footprint for this choice. Will be tested against ROM budget in Studio.
          - `needsOps` string[]
          - `needsFeatures` string[]
        - `readonly` boolean, required
        - `shouldShow` boolean, required
        - `showIf` object
          - `parameter` string, required
          - `operator` 'eq' | 'neq', required
          - `value` string, required
        - `invalidText` string
        - `section` 'advanced' | 'augmentation' | 'modelProfiling': Interface section to render parameter in.
        - `multiline` boolean: Only valid for type "string". Will render a multiline text area.
        - `required` boolean, required
        - `hint` string: If set, shows a hint below the input.
        - `placeholder` string: Sets the placeholder text on the input element (for types "string", "int", "float" and "secret")
        - `showClickToSet` boolean, required: If enabled, render a disabled input element with 'Click to set'
        - `valid` object[]: Valid values for parameter.
        - `items` object: Recursive definition for items of a parameter with type 'array'.
        - `properties` object: Recursive definition for a parameter with type 'object'.
        - `minVal` number: Minimum value for parameters of type 'int' or 'float'.
        - `maxVal` number: Maximum value for parameters of type 'int' or 'float'.
      - `displayCategory` 'classical' | 'tao' | 'developer-preview': Category to display this block in the UI.
      - `blockNoLongerAvailable` object: If this object is set, then you can no longer train this block. The reason (or a migration path) is in the `reasonMarkdown` and `reasonHtml` properties.
        - `reasonMarkdown` string, required: Reason or migration path for current users of this block, in Markdown format.
        - `reasonHtml` string, required: Reason or migration path for current users of this block, in HTML format.
      - `hasExpertMode` boolean, required: Whether this block can be switched to expert mode.
    - `regression` TransferLearningModel[], required
      - `name` string, required
      - `shortName` string, required
      - `abbreviatedName` string
      - `description` string, required
      - `hasNeurons` boolean, required
      - `hasDropout` boolean, required
      - `defaultNeurons` integer
      - `defaultDropout` number
      - `defaultLearningRate` number
      - `defaultTrainingCycles` number
      - `hasImageAugmentation` boolean
      - `type` 'dense' | 'conv1d' | 'conv2d' | 'reshape' | 'flatten' | 'dropout' | 'batchNormalization' | 'transfer_mobilenetv2_a35' | 'transfer_mobilenetv2_a1' | 'transfer_mobilenetv2_a05' | 'transfer_mobilenetv2_160_a1' | 'transfer_mobilenetv2_160_a75' | 'transfer_mobilenetv2_160_a5' | 'transfer_mobilenetv2_160_a35' | 'transfer_mobilenetv1_a25_d100' | 'transfer_mobilenetv1_a2_d100' | 'transfer_mobilenetv1_a1_d100' | 'transfer_kws_mobilenetv1_a1_d100' | 'transfer_kws_mobilenetv2_a35_d100' | 'transfer_kws_syntiant_ndp10x' | 'transfer_kws_conv2d_tiny' | 'object_ssd_mobilenet_v2_fpnlite_320x320' | 'fomo_mobilenet_v2_a01' | 'fomo_mobilenet_v2_a35' | 'transfer_organization' | 'transfer_akidanet_imagenet_160_a100' | 'transfer_akidanet_imagenet_160_a50' | 'transfer_akidanet_imagenet_160_a25' | 'transfer_akidanet_imagenet_224_a100' | 'transfer_akidanet_imagenet_224_a50' | 'transfer_akidanet_imagenet_224_a25' | 'fomo_akidanet_a50' | 'fomo_ad_gmm' | 'fomo_ad_patchcore', required
      - `learnBlockType` 'anomaly' | 'anomaly-gmm' | 'keras' | 'keras-transfer-image' | 'keras-transfer-kws' | 'keras-object-detection' | 'keras-regression' | 'keras-akida' | 'keras-akida-transfer-image' | 'keras-akida-object-detection' | 'keras-visual-anomaly' | 'keras-freeform' | 'keras-self-contained-freeform' | 'keras-anomaly' | 'vlm', required: The type of learning block (anomaly, keras, keras-transfer-image, ...). Each behaves differently.
      - `organizationModelId` integer
      - `implementationVersion` integer
      - `repositoryUrl` string: URL to the source code of this custom learn block.
      - `customBlockRef` string: Unique stable string key used to create and find this custom block.
      - `author` string, required
      - `blockType` 'official' | 'personal' | 'enterprise' | 'community', required
      - `customParameters` DSPGroupItem[]
        - `name` string, required
        - `value` string
        - `defaultValue` string, required
        - `type` string, required
        - `help` string
        - `param` string, required
        - `selectOptions` object[]
          - `value` string: What is the string that will be set if this option is selected?
          - `selected` boolean
          - `optionLabel` string: What is the label that will be shown to the user for this option?
          - `priority` number: The following options are optional. See Learn Block Auto Config in Notion. Higher priority will get chosen based on limits below.
          - `romEstimate` number: Estimated ROM footprint for this choice. Will be tested against ROM budget in Studio.
          - `needsOps` string[]
          - `needsFeatures` string[]
        - `readonly` boolean, required
        - `shouldShow` boolean, required
        - `showIf` object
          - `parameter` string, required
          - `operator` 'eq' | 'neq', required
          - `value` string, required
        - `invalidText` string
        - `section` 'advanced' | 'augmentation' | 'modelProfiling': Interface section to render parameter in.
        - `multiline` boolean: Only valid for type "string". Will render a multiline text area.
        - `required` boolean, required
        - `hint` string: If set, shows a hint below the input.
        - `placeholder` string: Sets the placeholder text on the input element (for types "string", "int", "float" and "secret")
        - `showClickToSet` boolean, required: If enabled, render a disabled input element with 'Click to set'
        - `valid` object[]: Valid values for parameter.
        - `items` object: Recursive definition for items of a parameter with type 'array'.
        - `properties` object: Recursive definition for a parameter with type 'object'.
        - `minVal` number: Minimum value for parameters of type 'int' or 'float'.
        - `maxVal` number: Maximum value for parameters of type 'int' or 'float'.
      - `displayCategory` 'classical' | 'tao' | 'developer-preview': Category to display this block in the UI.
      - `blockNoLongerAvailable` object: If this object is set, then you can no longer train this block. The reason (or a migration path) is in the `reasonMarkdown` and `reasonHtml` properties.
        - `reasonMarkdown` string, required: Reason or migration path for current users of this block, in Markdown format.
        - `reasonHtml` string, required: Reason or migration path for current users of this block, in HTML format.
      - `hasExpertMode` boolean, required: Whether this block can be switched to expert mode.
    - `classification` TransferLearningModel[], required
      - `name` string, required
      - `shortName` string, required
      - `abbreviatedName` string
      - `description` string, required
      - `hasNeurons` boolean, required
      - `hasDropout` boolean, required
      - `defaultNeurons` integer
      - `defaultDropout` number
      - `defaultLearningRate` number
      - `defaultTrainingCycles` number
      - `hasImageAugmentation` boolean
      - `type` 'dense' | 'conv1d' | 'conv2d' | 'reshape' | 'flatten' | 'dropout' | 'batchNormalization' | 'transfer_mobilenetv2_a35' | 'transfer_mobilenetv2_a1' | 'transfer_mobilenetv2_a05' | 'transfer_mobilenetv2_160_a1' | 'transfer_mobilenetv2_160_a75' | 'transfer_mobilenetv2_160_a5' | 'transfer_mobilenetv2_160_a35' | 'transfer_mobilenetv1_a25_d100' | 'transfer_mobilenetv1_a2_d100' | 'transfer_mobilenetv1_a1_d100' | 'transfer_kws_mobilenetv1_a1_d100' | 'transfer_kws_mobilenetv2_a35_d100' | 'transfer_kws_syntiant_ndp10x' | 'transfer_kws_conv2d_tiny' | 'object_ssd_mobilenet_v2_fpnlite_320x320' | 'fomo_mobilenet_v2_a01' | 'fomo_mobilenet_v2_a35' | 'transfer_organization' | 'transfer_akidanet_imagenet_160_a100' | 'transfer_akidanet_imagenet_160_a50' | 'transfer_akidanet_imagenet_160_a25' | 'transfer_akidanet_imagenet_224_a100' | 'transfer_akidanet_imagenet_224_a50' | 'transfer_akidanet_imagenet_224_a25' | 'fomo_akidanet_a50' | 'fomo_ad_gmm' | 'fomo_ad_patchcore', required
      - `learnBlockType` 'anomaly' | 'anomaly-gmm' | 'keras' | 'keras-transfer-image' | 'keras-transfer-kws' | 'keras-object-detection' | 'keras-regression' | 'keras-akida' | 'keras-akida-transfer-image' | 'keras-akida-object-detection' | 'keras-visual-anomaly' | 'keras-freeform' | 'keras-self-contained-freeform' | 'keras-anomaly' | 'vlm', required: The type of learning block (anomaly, keras, keras-transfer-image, ...). Each behaves differently.
      - `organizationModelId` integer
      - `implementationVersion` integer
      - `repositoryUrl` string: URL to the source code of this custom learn block.
      - `customBlockRef` string: Unique stable string key used to create and find this custom block.
      - `author` string, required
      - `blockType` 'official' | 'personal' | 'enterprise' | 'community', required
      - `customParameters` DSPGroupItem[]
        - `name` string, required
        - `value` string
        - `defaultValue` string, required
        - `type` string, required
        - `help` string
        - `param` string, required
        - `selectOptions` object[]
          - `value` string: What is the string that will be set if this option is selected?
          - `selected` boolean
          - `optionLabel` string: What is the label that will be shown to the user for this option?
          - `priority` number: The following options are optional. See Learn Block Auto Config in Notion. Higher priority will get chosen based on limits below.
          - `romEstimate` number: Estimated ROM footprint for this choice. Will be tested against ROM budget in Studio.
          - `needsOps` string[]
          - `needsFeatures` string[]
        - `readonly` boolean, required
        - `shouldShow` boolean, required
        - `showIf` object
          - `parameter` string, required
          - `operator` 'eq' | 'neq', required
          - `value` string, required
        - `invalidText` string
        - `section` 'advanced' | 'augmentation' | 'modelProfiling': Interface section to render parameter in.
        - `multiline` boolean: Only valid for type "string". Will render a multiline text area.
        - `required` boolean, required
        - `hint` string: If set, shows a hint below the input.
        - `placeholder` string: Sets the placeholder text on the input element (for types "string", "int", "float" and "secret")
        - `showClickToSet` boolean, required: If enabled, render a disabled input element with 'Click to set'
        - `valid` object[]: Valid values for parameter.
        - `items` object: Recursive definition for items of a parameter with type 'array'.
        - `properties` object: Recursive definition for a parameter with type 'object'.
        - `minVal` number: Minimum value for parameters of type 'int' or 'float'.
        - `maxVal` number: Maximum value for parameters of type 'int' or 'float'.
      - `displayCategory` 'classical' | 'tao' | 'developer-preview': Category to display this block in the UI.
      - `blockNoLongerAvailable` object: If this object is set, then you can no longer train this block. The reason (or a migration path) is in the `reasonMarkdown` and `reasonHtml` properties.
        - `reasonMarkdown` string, required: Reason or migration path for current users of this block, in Markdown format.
        - `reasonHtml` string, required: Reason or migration path for current users of this block, in HTML format.
      - `hasExpertMode` boolean, required: Whether this block can be switched to expert mode.
    - `anomaly` TransferLearningModel[]
      - `name` string, required
      - `shortName` string, required
      - `abbreviatedName` string
      - `description` string, required
      - `hasNeurons` boolean, required
      - `hasDropout` boolean, required
      - `defaultNeurons` integer
      - `defaultDropout` number
      - `defaultLearningRate` number
      - `defaultTrainingCycles` number
      - `hasImageAugmentation` boolean
      - `type` 'dense' | 'conv1d' | 'conv2d' | 'reshape' | 'flatten' | 'dropout' | 'batchNormalization' | 'transfer_mobilenetv2_a35' | 'transfer_mobilenetv2_a1' | 'transfer_mobilenetv2_a05' | 'transfer_mobilenetv2_160_a1' | 'transfer_mobilenetv2_160_a75' | 'transfer_mobilenetv2_160_a5' | 'transfer_mobilenetv2_160_a35' | 'transfer_mobilenetv1_a25_d100' | 'transfer_mobilenetv1_a2_d100' | 'transfer_mobilenetv1_a1_d100' | 'transfer_kws_mobilenetv1_a1_d100' | 'transfer_kws_mobilenetv2_a35_d100' | 'transfer_kws_syntiant_ndp10x' | 'transfer_kws_conv2d_tiny' | 'object_ssd_mobilenet_v2_fpnlite_320x320' | 'fomo_mobilenet_v2_a01' | 'fomo_mobilenet_v2_a35' | 'transfer_organization' | 'transfer_akidanet_imagenet_160_a100' | 'transfer_akidanet_imagenet_160_a50' | 'transfer_akidanet_imagenet_160_a25' | 'transfer_akidanet_imagenet_224_a100' | 'transfer_akidanet_imagenet_224_a50' | 'transfer_akidanet_imagenet_224_a25' | 'fomo_akidanet_a50' | 'fomo_ad_gmm' | 'fomo_ad_patchcore', required
      - `learnBlockType` 'anomaly' | 'anomaly-gmm' | 'keras' | 'keras-transfer-image' | 'keras-transfer-kws' | 'keras-object-detection' | 'keras-regression' | 'keras-akida' | 'keras-akida-transfer-image' | 'keras-akida-object-detection' | 'keras-visual-anomaly' | 'keras-freeform' | 'keras-self-contained-freeform' | 'keras-anomaly' | 'vlm', required: The type of learning block (anomaly, keras, keras-transfer-image, ...). Each behaves differently.
      - `organizationModelId` integer
      - `implementationVersion` integer
      - `repositoryUrl` string: URL to the source code of this custom learn block.
      - `customBlockRef` string: Unique stable string key used to create and find this custom block.
      - `author` string, required
      - `blockType` 'official' | 'personal' | 'enterprise' | 'community', required
      - `customParameters` DSPGroupItem[]
        - `name` string, required
        - `value` string
        - `defaultValue` string, required
        - `type` string, required
        - `help` string
        - `param` string, required
        - `selectOptions` object[]
          - `value` string: What is the string that will be set if this option is selected?
          - `selected` boolean
          - `optionLabel` string: What is the label that will be shown to the user for this option?
          - `priority` number: The following options are optional. See Learn Block Auto Config in Notion. Higher priority will get chosen based on limits below.
          - `romEstimate` number: Estimated ROM footprint for this choice. Will be tested against ROM budget in Studio.
          - `needsOps` string[]
          - `needsFeatures` string[]
        - `readonly` boolean, required
        - `shouldShow` boolean, required
        - `showIf` object
          - `parameter` string, required
          - `operator` 'eq' | 'neq', required
          - `value` string, required
        - `invalidText` string
        - `section` 'advanced' | 'augmentation' | 'modelProfiling': Interface section to render parameter in.
        - `multiline` boolean: Only valid for type "string". Will render a multiline text area.
        - `required` boolean, required
        - `hint` string: If set, shows a hint below the input.
        - `placeholder` string: Sets the placeholder text on the input element (for types "string", "int", "float" and "secret")
        - `showClickToSet` boolean, required: If enabled, render a disabled input element with 'Click to set'
        - `valid` object[]: Valid values for parameter.
        - `items` object: Recursive definition for items of a parameter with type 'array'.
        - `properties` object: Recursive definition for a parameter with type 'object'.
        - `minVal` number: Minimum value for parameters of type 'int' or 'float'.
        - `maxVal` number: Maximum value for parameters of type 'int' or 'float'.
      - `displayCategory` 'classical' | 'tao' | 'developer-preview': Category to display this block in the UI.
      - `blockNoLongerAvailable` object: If this object is set, then you can no longer train this block. The reason (or a migration path) is in the `reasonMarkdown` and `reasonHtml` properties.
        - `reasonMarkdown` string, required: Reason or migration path for current users of this block, in Markdown format.
        - `reasonHtml` string, required: Reason or migration path for current users of this block, in HTML format.
      - `hasExpertMode` boolean, required: Whether this block can be switched to expert mode.
    - `visualAnomaly` TransferLearningModel[]
      - `name` string, required
      - `shortName` string, required
      - `abbreviatedName` string
      - `description` string, required
      - `hasNeurons` boolean, required
      - `hasDropout` boolean, required
      - `defaultNeurons` integer
      - `defaultDropout` number
      - `defaultLearningRate` number
      - `defaultTrainingCycles` number
      - `hasImageAugmentation` boolean
      - `type` 'dense' | 'conv1d' | 'conv2d' | 'reshape' | 'flatten' | 'dropout' | 'batchNormalization' | 'transfer_mobilenetv2_a35' | 'transfer_mobilenetv2_a1' | 'transfer_mobilenetv2_a05' | 'transfer_mobilenetv2_160_a1' | 'transfer_mobilenetv2_160_a75' | 'transfer_mobilenetv2_160_a5' | 'transfer_mobilenetv2_160_a35' | 'transfer_mobilenetv1_a25_d100' | 'transfer_mobilenetv1_a2_d100' | 'transfer_mobilenetv1_a1_d100' | 'transfer_kws_mobilenetv1_a1_d100' | 'transfer_kws_mobilenetv2_a35_d100' | 'transfer_kws_syntiant_ndp10x' | 'transfer_kws_conv2d_tiny' | 'object_ssd_mobilenet_v2_fpnlite_320x320' | 'fomo_mobilenet_v2_a01' | 'fomo_mobilenet_v2_a35' | 'transfer_organization' | 'transfer_akidanet_imagenet_160_a100' | 'transfer_akidanet_imagenet_160_a50' | 'transfer_akidanet_imagenet_160_a25' | 'transfer_akidanet_imagenet_224_a100' | 'transfer_akidanet_imagenet_224_a50' | 'transfer_akidanet_imagenet_224_a25' | 'fomo_akidanet_a50' | 'fomo_ad_gmm' | 'fomo_ad_patchcore', required
      - `learnBlockType` 'anomaly' | 'anomaly-gmm' | 'keras' | 'keras-transfer-image' | 'keras-transfer-kws' | 'keras-object-detection' | 'keras-regression' | 'keras-akida' | 'keras-akida-transfer-image' | 'keras-akida-object-detection' | 'keras-visual-anomaly' | 'keras-freeform' | 'keras-self-contained-freeform' | 'keras-anomaly' | 'vlm', required: The type of learning block (anomaly, keras, keras-transfer-image, ...). Each behaves differently.
      - `organizationModelId` integer
      - `implementationVersion` integer
      - `repositoryUrl` string: URL to the source code of this custom learn block.
      - `customBlockRef` string: Unique stable string key used to create and find this custom block.
      - `author` string, required
      - `blockType` 'official' | 'personal' | 'enterprise' | 'community', required
      - `customParameters` DSPGroupItem[]
        - `name` string, required
        - `value` string
        - `defaultValue` string, required
        - `type` string, required
        - `help` string
        - `param` string, required
        - `selectOptions` object[]
          - `value` string: What is the string that will be set if this option is selected?
          - `selected` boolean
          - `optionLabel` string: What is the label that will be shown to the user for this option?
          - `priority` number: The following options are optional. See Learn Block Auto Config in Notion. Higher priority will get chosen based on limits below.
          - `romEstimate` number: Estimated ROM footprint for this choice. Will be tested against ROM budget in Studio.
          - `needsOps` string[]
          - `needsFeatures` string[]
        - `readonly` boolean, required
        - `shouldShow` boolean, required
        - `showIf` object
          - `parameter` string, required
          - `operator` 'eq' | 'neq', required
          - `value` string, required
        - `invalidText` string
        - `section` 'advanced' | 'augmentation' | 'modelProfiling': Interface section to render parameter in.
        - `multiline` boolean: Only valid for type "string". Will render a multiline text area.
        - `required` boolean, required
        - `hint` string: If set, shows a hint below the input.
        - `placeholder` string: Sets the placeholder text on the input element (for types "string", "int", "float" and "secret")
        - `showClickToSet` boolean, required: If enabled, render a disabled input element with 'Click to set'
        - `valid` object[]: Valid values for parameter.
        - `items` object: Recursive definition for items of a parameter with type 'array'.
        - `properties` object: Recursive definition for a parameter with type 'object'.
        - `minVal` number: Minimum value for parameters of type 'int' or 'float'.
        - `maxVal` number: Maximum value for parameters of type 'int' or 'float'.
      - `displayCategory` 'classical' | 'tao' | 'developer-preview': Category to display this block in the UI.
      - `blockNoLongerAvailable` object: If this object is set, then you can no longer train this block. The reason (or a migration path) is in the `reasonMarkdown` and `reasonHtml` properties.
        - `reasonMarkdown` string, required: Reason or migration path for current users of this block, in Markdown format.
        - `reasonHtml` string, required: Reason or migration path for current users of this block, in HTML format.
      - `hasExpertMode` boolean, required: Whether this block can be switched to expert mode.

---

[API](https://skmtc.dev/edgeimpulse/apis/edge-impulse-api.md) - [All operations](https://skmtc.dev/edgeimpulse/apis/edge-impulse-api/llms.txt) - [OpenAPI document](https://skmtc.dev/edgeimpulse/apis/edge-impulse-api/revisions/e2a976d38427?raw)
