Edge Impulse Impulse API

The Impulse API from Edge Impulse — 13 operation(s) for impulse.

Operations 15

GET /api/{projectId}/impulse Get impulse #
POST /api/{projectId}/impulse Create impulse #
DELETE /api/{projectId}/impulse Delete impulse #
POST /api/{projectId}/impulse/new Create new empty impulse #
POST /api/{projectId}/impulse/update Update impulse #
GET /api/{projectId}/impulse/all Get impulse including disabled blocks #
POST /api/{projectId}/impulse/get-new-block-id Get new block ID #
GET /api/{projectId}/impulse/blocks Get impulse blocks #
POST /api/{projectId}/verify-dsp-block/url Verify custom DSP block #
GET /api/{projectId}/impulses Get all impulses #
GET /api/{projectId}/impulses-detailed Get all impulses (incl. metrics) #
GET /api/{projectId}/download-impulses-detailed Download all impulses (incl. metrics), as JSON or CSV. #
POST /api/{projectId}/impulse/legacy-set-impulse Set legacy impulse #
POST /api/{projectId}/impulse/{impulseId}/clone/structure Clone impulse (structure) #
POST /api/{projectId}/impulse/{impulseId}/clone/complete Clone impulse (complete) #

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/edge-impulse-impulse-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

edge-impulse-impulse-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Edge Impulse API
  version: 1.0.0
servers:
- url: https://studio.edgeimpulse.com/v1
security:
- ApiKeyAuthentication: []
- JWTAuthentication: []
- JWTHttpHeaderAuthentication: []
tags:
- name: Impulse
paths:
  /api/{projectId}/impulse:
    get:
      summary: Get impulse
      description: Retrieve the impulse for this project. If you specify `impulseId` then that impulse is returned, otherwise the default impulse is returned.
      operationId: getImpulse
      tags:
      - Impulse
      parameters:
      - $ref: '#/components/parameters/ProjectIdParameter'
      - $ref: '#/components/parameters/OptionalImpulseIdParameter'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetImpulseResponse'
    post:
      summary: Create impulse
      description: Sets the impulse for this project.  If you specify `impulseId` then that impulse is created/updated, otherwise the default impulse is created/updated.
      operationId: createImpulse
      tags:
      - Impulse
      parameters:
      - $ref: '#/components/parameters/ProjectIdParameter'
      - $ref: '#/components/parameters/OptionalImpulseIdParameter'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateImpulseRequest'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CreateImpulseResponse'
    delete:
      summary: Delete impulse
      description: Clears the impulse and all associated blocks for this project.  If you specify `impulseId` then that impulse is cleared, otherwise the default impulse is cleared.
      operationId: deleteImpulse
      tags:
      - Impulse
      parameters:
      - $ref: '#/components/parameters/ProjectIdParameter'
      - $ref: '#/components/parameters/OptionalImpulseIdParameter'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GenericApiResponse'
  /api/{projectId}/impulse/new:
    post:
      summary: Create new empty impulse
      description: Create a new empty impulse, and return the ID.
      operationId: createNewEmptyImpulse
      tags:
      - Impulse
      parameters:
      - $ref: '#/components/parameters/ProjectIdParameter'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CreateNewEmptyImpulseResponse'
  /api/{projectId}/impulse/update:
    post:
      summary: Update impulse
      description: Update the impulse for this project.  If you specify `impulseId` then that impulse is created/updated, otherwise the default impulse is created/updated.
      operationId: updateImpulse
      tags:
      - Impulse
      parameters:
      - $ref: '#/components/parameters/ProjectIdParameter'
      - $ref: '#/components/parameters/OptionalImpulseIdParameter'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdateImpulseRequest'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GenericApiResponse'
  /api/{projectId}/impulse/all:
    get:
      summary: Get impulse including disabled blocks
      description: Retrieve the impulse for this project including disabled blocks. If you specify `impulseId` then that impulse is returned, otherwise the default impulse is returned.
      operationId: getImpulseAll
      tags:
      - Impulse
      parameters:
      - $ref: '#/components/parameters/ProjectIdParameter'
      - $ref: '#/components/parameters/OptionalImpulseIdParameter'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetImpulseResponse'
  /api/{projectId}/impulse/get-new-block-id:
    post:
      summary: Get new block ID
      description: Returns an unused block ID. Use this function to determine new block IDs when you construct an impulse; so you won't accidentally re-use block IDs.
      operationId: getNewBlockId
      tags:
      - Impulse
      parameters:
      - $ref: '#/components/parameters/ProjectIdParameter'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetNewBlockIdResponse'
  /api/{projectId}/impulse/blocks:
    get:
      summary: Get impulse blocks
      description: Lists all possible blocks that can be used in the impulse
      operationId: getImpulseBlocks
      tags:
      - Impulse
      parameters:
      - $ref: '#/components/parameters/ProjectIdParameter'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetImpulseBlocksResponse'
  /api/{projectId}/verify-dsp-block/url:
    post:
      summary: Verify custom DSP block
      description: Verify the validity of a custom DSP block
      operationId: verifyDspBlockUrl
      tags:
      - Impulse
      parameters:
      - $ref: '#/components/parameters/ProjectIdParameter'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/VerifyDspBlockUrlRequest'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/VerifyDspBlockUrlResponse'
  /api/{projectId}/impulses:
    get:
      summary: Get all impulses
      description: Retrieve all impulse for a project
      operationId: getAllImpulses
      tags:
      - Impulse
      parameters:
      - $ref: '#/components/parameters/ProjectIdParameter'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetAllImpulsesResponse'
  /api/{projectId}/impulses-detailed:
    get:
      summary: Get all impulses (incl. metrics)
      description: Retrieve all impulse for a project, including accuracy and performance metrics.
      operationId: getAllDetailedImpulses
      tags:
      - Impulse
      parameters:
      - $ref: '#/components/parameters/ProjectIdParameter'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetAllDetailedImpulsesResponse'
  /api/{projectId}/download-impulses-detailed:
    get:
      summary: Download all impulses (incl. metrics), as JSON or CSV.
      description: Download all impulse for a project, including accuracy and performance metrics, as JSON or CSV.
      operationId: downloadDetailedImpulses
      tags:
      - Impulse
      parameters:
      - $ref: '#/components/parameters/ProjectIdParameter'
      - $ref: '#/components/parameters/DetailedImpulsesFormatParameter'
      responses:
        '200':
          description: File
          content:
            application/octet-stream:
              schema:
                type: string
                format: binary
  /api/{projectId}/impulse/legacy-set-impulse:
    post:
      summary: Set legacy impulse
      description: Set the complete impulse state for a project, writing impulses in the old (pre-impulse experiments) format. This completely clears out all files on FSx for this project. This is an internal API.
      x-internal-api: true
      security:
      - permissions:
        - projects:training:keras:write
      operationId: setLegacyImpulseStateInternal
      tags:
      - Impulse
      parameters:
      - $ref: '#/components/parameters/ProjectIdParameter'
      requestBody:
        required: true
        content:
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/SetLegacyImpulseStateInternalRequest'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GenericApiResponse'
  /api/{projectId}/impulse/{impulseId}/clone/structure:
    post:
      summary: Clone impulse (structure)
      description: Clones the complete structure (incl. config) of an impulse. Does not copy data.
      operationId: cloneImpulseStructure
      tags:
      - Impulse
      parameters:
      - $ref: '#/components/parameters/ProjectIdParameter'
      - $ref: '#/components/parameters/ImpulseIdParameter'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CloneImpulseRequest'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CreateImpulseResponse'
  /api/{projectId}/impulse/{impulseId}/clone/complete:
    post:
      summary: Clone impulse (complete)
      description: Clones the complete impulse (incl. config and data) of an existing impulse.
      operationId: cloneImpulseComplete
      tags:
      - Impulse
      parameters:
      - $ref: '#/components/parameters/ProjectIdParameter'
      - $ref: '#/components/parameters/ImpulseIdParameter'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CloneImpulseRequest'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/StartJobResponse'
components:
  schemas:
    DependencyData:
      type: object
      required:
      - classes
      - blockNames
      - featureCount
      - sampleCount
      properties:
        classes:
          type: array
          items:
            type: string
        blockNames:
          type: array
          items:
            type: string
        featureCount:
          type: integer
        sampleCount:
          type: integer
    AnomalyConfig:
      type: object
      required:
      - name
      - axes
      - trained
      - dependencies
      - selectedAxes
      - minimumConfidenceRating
      properties:
        dependencies:
          $ref: '#/components/schemas/DependencyData'
        name:
          type: string
        axes:
          type: array
          description: Selectable axes for the anomaly detection block
          items:
            type: object
            required:
            - label
            - selected
            - favourite
            properties:
              label:
                type: string
              selected:
                type: boolean
              favourite:
                type: boolean
        trained:
          type: boolean
          description: Whether the block is trained
        clusterCount:
          type: integer
          description: Number of clusters for K-means, or number of components for GMM (in config)
        selectedAxes:
          type: array
          items:
            type: integer
          description: Selected clusters (in config)
        minimumConfidenceRating:
          type: number
          description: Minimum confidence rating for this block, scores above this number will be flagged as anomaly.
    ImpulseDspBlock:
      type: object
      required:
      - id
      - type
      - name
      - axes
      - title
      - primaryVersion
      - implementationVersion
      properties:
        id:
          minimum: 1
          type: integer
          description: Identifier for this block. Make sure to up this number when creating a new block, and don't re-use identifiers. If the block hasn't changed, keep the ID as-is. ID must be unique across the project and greather than zero (>0).
        type:
          type: string
          description: Block type
          example: spectral-analysis
        name:
          type: string
          description: Block name, will be used in menus
          example: Spectral features
        axes:
          type: array
          description: Input axes, identified by the name in the name of the axis
          items:
            type: string
            example: accX
        title:
          type: string
          description: Block title, used in the impulse UI
          example: Spectral Analysis
        valuesPerAxis:
          type: integer
          description: Number of features this DSP block outputs per axis. This is only set when the DSP block is configured.
          example: 11
        input:
          type: integer
          description: The ID of the Input block a DSP block is connected to
          example: 1
        description:
          type: string
          description: A short description of the block version, displayed in the block versioning UI
          example: Reduced learning rate and more layers
        createdBy:
          type: string
          description: The system component that created the block version (createImpulse | clone | tuner). Cannot be set via API.
          example: createImpulse
        createdAt:
          type: string
          format: date-time
          description: The datetime that the block version was created. Cannot be set via API.
        implementationVersion:
          type: integer
          description: Implementation version of the block
        organization:
          type: object
          required:
          - id
          - dspId
          properties:
            id:
              type: integer
            dspId:
              type: integer
        customUrl:
          type: string
          description: Required for type 'custom'
        namedAxes:
          type: array
          description: Named axes for the block
          items:
            type: object
            required:
            - name
            properties:
              name:
                type: string
                description: Name of the axis
              description:
                type: string
                description: Description of the axis
              required:
                type: boolean
                description: Whether the axis is required
              selectedAxis:
                type: string
                description: The selected axis for the block
    GetImpulseResponse:
      allOf:
      - $ref: '#/components/schemas/GenericApiResponse'
      - type: object
        properties:
          impulse:
            $ref: '#/components/schemas/Impulse'
    AnomalyGmmMetadata:
      type: object
      required:
      - means
      - covariances
      - weights
      properties:
        means:
          type: array
          items:
            type: array
            items:
              type: number
          description: 2D array of shape (n, m)
        covariances:
          type: array
          items:
            type: array
            items:
              type: array
              items:
                type: number
          description: 3D array of shape (n, m, m)
        weights:
          type: array
          items:
            type: number
          description: 1D array of shape (n,)
    AdditionalMetric:
      type: object
      required:
      - name
      - value
      - fullPrecisionValue
      properties:
        name:
          type: string
        value:
          type: string
        fullPrecisionValue:
          type: number
        tooltipText:
          type: string
        link:
          type: string
    BlockDisplayCategory:
      description: Category to display this block in the UI.
      type: string
      enum:
      - classical
      - tao
    ObjectDetectionLastLayer:
      type: string
      enum:
      - mobilenet-ssd
      - fomo
      - yolov2-akida
      - yolov5
      - yolov5v5-drpai
      - yolox
      - yolov7
      - tao-retinanet
      - tao-ssd
      - tao-yolov3
      - tao-yolov4
    BlockParamsVisualAnomalyPatchcore:
      type: object
      properties:
        backbone:
          type: string
          description: The backbone to use for feature extraction
        numLayers:
          type: integer
          description: The number of layers in the feature extractor (1-3)
        poolSize:
          type: integer
          description: The pool size for the feature extractor
        samplingRatio:
          type: number
          description: The sampling ratio for the coreset, used for anomaly scoring
        numNearestNeighbors:
          type: integer
          description: The number of nearest neighbors to consider, used for anomaly scoring
    TransferLearningModel:
      type: object
      required:
      - name
      - shortName
      - description
      - hasNeurons
      - hasDropout
      - type
      - author
      - blockType
      properties:
        name:
          type: string
        shortName:
          type: string
        abbreviatedName:
          type: string
        description:
          type: string
        hasNeurons:
          type: boolean
        hasDropout:
          type: boolean
        defaultNeurons:
          type: integer
        defaultDropout:
          type: number
        defaultLearningRate:
          type: number
        defaultTrainingCycles:
          type: number
        hasImageAugmentation:
          type: boolean
        type:
          $ref: '#/components/schemas/KerasVisualLayerType'
        learnBlockType:
          $ref: '#/components/schemas/LearnBlockType'
        organizationModelId:
          type: integer
        implementationVersion:
          type: integer
        repositoryUrl:
          type: string
          description: URL to the source code of this custom learn block.
        author:
          type: string
        blockType:
          $ref: '#/components/schemas/BlockType'
        customParameters:
          type: array
          items:
            $ref: '#/components/schemas/DSPGroupItem'
        displayCategory:
          $ref: '#/components/schemas/BlockDisplayCategory'
    CreateImpulseResponse:
      allOf:
      - $ref: '#/components/schemas/GenericApiResponse'
      - type: object
        required:
        - id
        properties:
          id:
            type: integer
            description: ID of the new impulse
    KerasCustomMetric:
      type: object
      required:
      - name
      - value
      properties:
        name:
          description: The name of the metric
          type: string
        value:
          description: The value of this metric for this model type
          type: string
    AugmentationPolicySpectrogram:
      type: object
      required:
      - enabled
      properties:
        enabled:
          type: boolean
          description: True if spectrogram augmentation is enabled. Other properties will be ignored if this is false.
        warping:
          type: boolean
          description: True if warping along the time axis is enabled.
        freqMasking:
          type: string
          enum:
          - none
          - low
          - high
          description: The amount of frequency masking to apply.
        timeMasking:
          type: string
          enum:
          - none
          - low
          - high
          description: The amount of time masking to apply.
        gaussianNoise:
          type: string
          enum:
          - none
          - low
          - high
          description: The amount of Gaussian noise to add.
    LearnBlockType:
      type: string
      description: The type of learning block (anomaly, keras, keras-transfer-image, keras-transfer-kws, keras-object-detection, keras-regression). Each behaves differently.
      enum:
      - 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
    AkidaEdgeLearningConfig:
      type: object
      required:
      - enabled
      properties:
        enabled:
          type: boolean
          description: True if Akida Edge Learning model creation is enabled. Other properties will be ignored if this is false.
        additionalClasses:
          type: number
          description: Number of additional classes that will be added to the Edge Learning model.
        neuronsPerClass:
          type: number
          description: Number of neurons in each class on the last layer in the Edge Learning model.
    CreateImpulseRequest:
      type: object
      required:
      - inputBlocks
      - dspBlocks
      - learnBlocks
      properties:
        name:
          type: string
          description: Name for this impulse (optional). If no name is provided one is created based on your blocks.
        inputBlocks:
          type: array
          description: Input Blocks that are part of this impulse
          items:
            $ref: '#/components/schemas/ImpulseInputBlock'
        dspBlocks:
          type: array
          description: DSP Blocks that are part of this impulse
          items:
            $ref: '#/components/schemas/ImpulseDspBlock'
        learnBlocks:
          type: array
          description: Learning Blocks that are part of this impulse
          items:
            $ref: '#/components/schemas/ImpulseLearnBlock'
    KerasModelMetadataMetrics:
      type: object
      required:
      - type
      - loss
      - confusionMatrix
      - report
      - onDevicePerformance
      - visualization
      - isSupportedOnMcu
      - additionalMetrics
      properties:
        type:
          description: The type of model
          $ref: '#/components/schemas/KerasModelTypeEnum'
        loss:
          type: number
          description: The model's loss on the validation set after training
        accuracy:
          type: number
          description: The model's accuracy on the validation set after training
        confusionMatrix:
          type: array
          example:
          - - 31
            - 1
            - 0
          - - 2
            - 27
            - 3
          - - 1
            - 0
            - 39
          items:
            type: array
            items:
              type: number
        report:
          type: object
          description: Precision, recall, F1 and support scores
        onDevicePerformance:
          type: array
          items:
            type: object
            required:
            - mcu
            - name
            - isDefault
            - latency
            - tflite
            - eon
            properties:
              mcu:
                type: string
              name:
                type: string
              isDefault:
                type: boolean
              latency:
                type: number
              tflite:
                type: object
                required:
                - ramRequired
                - romRequired
                - arenaSize
                - modelSize
                properties:
                  ramRequired:
                    type: integer
                  romRequired:
                    type: integer
                  arenaSize:
                    type: integer
                  modelSize:
                    type: integer
              eon:
                type: object
                required:
                - ramRequired
                - romRequired
                - arenaSize
                - modelSize
                properties:
                  ramRequired:
                    type: integer
                  romRequired:
                    type: integer
                  arenaSize:
                    type: integer
                  modelSize:
                    type: integer
              eon_ram_optimized:
                type: object
                required:
                - ramRequired
                - romRequired
                - arenaSize
                - modelSize
                properties:
                  ramRequired:
                    type: integer
                  romRequired:
                    type: integer
                  arenaSize:
                    type: integer
                  modelSize:
                    type: integer
              customMetrics:
                description: Custom, device-specific performance metrics
                type: array
                items:
                  $ref: '#/components/schemas/KerasCustomMetric'
        predictions:
          type: array
          items:
            $ref: '#/components/schemas/ModelPrediction'
        visualization:
          type: string
          enum:
          - featureExplorer
          - dataExplorer
          - none
        isSupportedOnMcu:
          type: boolean
        mcuSupportError:
          type: string
        profilingJobId:
          description: If this is set, then we're still profiling this model. Subscribe to job updates to see when it's done (afterward the metadata will be updated).
          type: integer
        profilingJobFailed:
          description: If this is set, then the profiling job failed (get the status by getting the job logs for 'profilingJobId').
          type: boolean
        additionalMetrics:
          type: array
          items:
            $ref: '#/components/schemas/AdditionalMetric'
    DSPMetadata:
      type: object
      required:
      - created
      - dspConfig
      - labels
      - featureCount
      - windowCount
      - includedSamples
      - windowSizeMs
      - windowIncreaseMs
      - padZeros
      - frequency
      - outputConfig
      properties:
        created:
          type: string
          format: date-time
          description: Date when the features were created
        dspConfig:
          type: object
          additionalProperties:
            type: string
        labels:
          type: array
          description: Labels in the dataset when generator ran
          items:
            type: string
        featureLabels:
          type: array
          description: Names of the generated features. Only set if axes have explicit labels.
          items:
            type: string
        windowCount:
          type: integer
        featureCount:
          type: integer
          description: Number of features for this DSP block
        includedSamples:
          type: array
          description: The included samples in this DSP block. Note that these are sorted in the same way as the `npy` files are laid out. So with the `windowCount` parameter you can exactly search back to see which file contributed to which windows there.
          items:
            type: object
            required:
            - id
            - windowCount
            properties:
              id:
                type: integer
              windowCount:
                type: integer
        windowSizeMs:
          type: integer
          description: Length of the sliding window when generating features.
        windowIncreaseMs:
          type: integer
          description: Increase of the sliding window when generating features.
        padZeros:
          type: boolean
          description: Whether data was zero-padded when generating features.
        frequency:
          type: number
          description: Frequency of the original data in Hz.
        outputConfig:
          type: object
          description: Information about the output of the DSP block
          required:
          - type
          - shape
          properties:
            type:
              type: string
              description: Output type of the DSP block
              enum:
              - image
              - spectrogram
              - flat
            shape:
              type: object
              description: The shape of the block output
              required:
              - width
              properties:
                width:
                  description: Available on all types. Denotes the width of an 'image' or 'spectrogram', or the number of features in a 'flat' block.
                  type: integer
                height:
                  description: Only available for type 'image' and 'spectrogram'
                  type: integer
                channels:
                  description: Only available for type 'image'
                  type: integer
                frames:
                  description: Number of frames, only available for type 'image'
                  type: integer
        fftUsed:
          type: array
          items:
            type: integer
        resamplingAlgorithmVersion:
          type: number
          description: The version number of the resampling algorithm used (for resampled time series data only)
    BlockParameters:
      description: Training parameters specific to the type of the learn block. Parameters may be adjusted depending on the model defined in the visual layers. Used for our built-in blocks.
      oneOf:
      - $ref: '#/components/schemas/BlockParamsVisualAnomalyPatchcore'
      - $ref: '#/components/schemas/BlockParamsVisualAnomalyGmm'
    KerasVisualLayerType:
      type: string
      enum:
      - 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
    DSPGroup:
      type: object
      required:
      - group
      - items
      properties:
        group:
          type: string
          example: Scaling
        items:
          type: array
          items:
            $ref: '#/components/schemas/DSPGroupItem'
    VerifyDspBlockUrlResponse:
      allOf:
      - $ref: '#/components/schemas/GenericApiResponse'
      - type: object
        properties:
          block:
            type: object
            required:
            - title
            - author
            - description
            - name
            - latestImplementationVersion
            properties:
              title:
                type: string
              author:
                type: string
              description:
                type: string
              name:
                type: string
              latestImplementationVersion:
                type: integer
              namedAxes:
                type: array
                items:
                  $ref: '#/components/schemas/DSPNamedAxis'
    DSPGroupItem:
      type: object
      required:
      - name
      - type
      - param
      - defaultValue
      - readonly
      - shouldShow
      - required
      properties:
        name:
          type: string
          example: Scale axes
        value:
          type: string
        defaultValue:
          type: string
        type:
          type: string
          example: text
        help:
          type: string
          example: Divide axes by this number
        param:
          type: string
          example: scale-axes
        selectOptions:
          type: array
          items:
            type: object
            properties:
              value:
                type: string
              selected:
                type: boolean
              optionLabel:
                type: string
        readonly:
          type: boolean
        sho

# --- truncated at 32 KB (69 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/edge-impulse/refs/heads/main/openapi/edge-impulse-impulse-api-openapi.yml