Edge Impulse DSP API

The DSP API from Edge Impulse — 18 operation(s) for dsp.

OpenAPI Specification

edge-impulse-dsp-api-openapi.yml Raw ↑
openapi: 3.0.0
info:
  title: Edge Impulse DSP API
  version: 1.0.0
servers:
- url: https://studio.edgeimpulse.com/v1
security:
- ApiKeyAuthentication: []
- JWTAuthentication: []
- JWTHttpHeaderAuthentication: []
tags:
- name: DSP
paths:
  /api/{projectId}/dsp/{dspId}:
    get:
      summary: Get config
      description: Retrieve the configuration parameters for the DSP block. Use the impulse functions to retrieve all DSP blocks.
      operationId: getDspConfig
      tags:
      - DSP
      parameters:
      - $ref: '#/components/parameters/ProjectIdParameter'
      - $ref: '#/components/parameters/DspIdParameter'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DSPConfigResponse'
    post:
      summary: Set config
      description: Set configuration parameters for the DSP block. Only values set in the body will be overwritten.
      operationId: setDspConfig
      tags:
      - DSP
      parameters:
      - $ref: '#/components/parameters/ProjectIdParameter'
      - $ref: '#/components/parameters/DspIdParameter'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/DSPConfigRequest'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GenericApiResponse'
  /api/{projectId}/dsp/{dspId}/clear:
    post:
      summary: Clear DSP block
      description: Clear generated features for a DSP block (used in tests).
      operationId: clearDspBlock
      tags:
      - DSP
      parameters:
      - $ref: '#/components/parameters/ProjectIdParameter'
      - $ref: '#/components/parameters/DspIdParameter'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GenericApiResponse'
  /api/{projectId}/dsp/{dspId}/metadata:
    get:
      summary: Get metadata
      description: Retrieve the metadata from a generated DSP block.
      operationId: getDspMetadata
      tags:
      - DSP
      x-middleware:
      - AllowsReadOnly
      parameters:
      - $ref: '#/components/parameters/ProjectIdParameter'
      - $ref: '#/components/parameters/DspIdParameter'
      - $ref: '#/components/parameters/ExcludeIncludedSamplesParameter'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DSPMetadataResponse'
  /api/{projectId}/dsp/{dspId}/raw-data/{sampleId}:
    get:
      summary: Get raw sample
      description: Get raw sample data, but with only the axes selected by the DSP block. E.g. if you have selected only accX and accY as inputs for the DSP block, but the raw sample also contains accZ, accZ is filtered out. If you pass dspId = 0 this will return a raw graph without any processing.
      operationId: getDspRawSample
      tags:
      - DSP
      x-middleware:
      - AllowsReadOnly
      parameters:
      - $ref: '#/components/parameters/ProjectIdParameter'
      - $ref: '#/components/parameters/DspIdParameter'
      - $ref: '#/components/parameters/SampleIdParameter'
      - $ref: '#/components/parameters/LimitPayloadValues'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetSampleResponse'
  /api/{projectId}/dsp/{dspId}/raw-data/{sampleId}/slice:
    get:
      summary: Get raw sample (slice)
      description: Get slice of raw sample data, but with only the axes selected by the DSP block. E.g. if you have selected only accX and accY as inputs for the DSP block, but the raw sample also contains accZ, accZ is filtered out.
      operationId: getDspSampleSlice
      tags:
      - DSP
      x-middleware:
      - AllowsReadOnly
      parameters:
      - $ref: '#/components/parameters/ProjectIdParameter'
      - $ref: '#/components/parameters/DspIdParameter'
      - $ref: '#/components/parameters/SampleIdParameter'
      - $ref: '#/components/parameters/SliceStartParameter'
      - $ref: '#/components/parameters/OptionalSliceEndDefaultToWindowLengthParameter'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetSampleResponse'
  /api/{projectId}/dsp/{dspId}/raw-data/{sampleId}/slice/run:
    post:
      summary: Get processed sample (slice)
      description: Get slice of sample data, and run it through the DSP block. This only the axes selected by the DSP block. E.g. if you have selected only accX and accY as inputs for the DSP block, but the raw sample also contains accZ, accZ is filtered out.
      operationId: runDspSampleSlice
      tags:
      - DSP
      x-middleware:
      - CustomResponse
      parameters:
      - $ref: '#/components/parameters/ProjectIdParameter'
      - $ref: '#/components/parameters/DspIdParameter'
      - $ref: '#/components/parameters/SampleIdParameter'
      - $ref: '#/components/parameters/SliceStartParameter'
      - $ref: '#/components/parameters/OptionalSliceEndDefaultToWindowLengthParameter'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/DspRunRequestWithoutFeatures'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DspRunResponseWithSample'
  /api/{projectId}/dsp/{dspId}/raw-data/{sampleId}/slice/run/readonly:
    get:
      summary: Get processed sample (slice)
      description: Get slice of sample data, and run it through the DSP block. This only the axes selected by the DSP block. E.g. if you have selected only accX and accY as inputs for the DSP block, but the raw sample also contains accZ, accZ is filtered out.
      operationId: runDspSampleSliceReadOnly
      tags:
      - DSP
      x-middleware:
      - AllowsReadOnly
      - CustomResponse
      parameters:
      - $ref: '#/components/parameters/ProjectIdParameter'
      - $ref: '#/components/parameters/DspIdParameter'
      - $ref: '#/components/parameters/SampleIdParameter'
      - $ref: '#/components/parameters/SliceStartParameter'
      - $ref: '#/components/parameters/OptionalSliceEndDefaultToWindowLengthParameter'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DspRunResponseWithSample'
  /api/{projectId}/dsp/{dspId}/features/labels:
    get:
      summary: Feature labels
      description: Retrieve the names of the features the DSP block generates
      operationId: getDspFeatureLabels
      tags:
      - DSP
      parameters:
      - $ref: '#/components/parameters/ProjectIdParameter'
      - $ref: '#/components/parameters/DspIdParameter'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DspFeatureLabelsResponse'
  /api/{projectId}/dsp/{dspId}/features/get-graph/{category}:
    get:
      summary: Sample of trained features
      description: Get a sample of trained features, this extracts a number of samples and their labels. Used to visualize the current training set.
      operationId: dspSampleTrainedFeatures
      tags:
      - DSP
      x-middleware:
      - AllowsReadOnly
      parameters:
      - $ref: '#/components/parameters/ProjectIdParameter'
      - $ref: '#/components/parameters/DspIdParameter'
      - $ref: '#/components/parameters/FeatureAx1Parameter'
      - $ref: '#/components/parameters/FeatureAx2Parameter'
      - $ref: '#/components/parameters/FeatureAx3Parameter'
      - $ref: '#/components/parameters/RawDataCategoryParameter'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DspTrainedFeaturesResponse'
  /api/{projectId}/dsp/{dspId}/features/get-graph/classification/{sampleId}:
    get:
      summary: Features for sample
      description: Runs the DSP block against a sample. This will move the sliding window (dependent on the sliding window length and the sliding window increase parameters in the impulse) over the complete file, and run the DSP function for every window that is extracted.
      operationId: dspGetFeaturesForSample
      tags:
      - DSP
      x-middleware:
      - AllowsReadOnly
      parameters:
      - $ref: '#/components/parameters/ProjectIdParameter'
      - $ref: '#/components/parameters/DspIdParameter'
      - $ref: '#/components/parameters/SampleIdParameter'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DspSampleFeaturesResponse'
  /api/{projectId}/dsp/{dspId}/features/importance:
    get:
      summary: Feature importance
      description: Retrieve the feature importance for a DSP block (only available for blocks where dimensionalityReduction is not enabled)
      operationId: getDspFeatureImportance
      tags:
      - DSP
      parameters:
      - $ref: '#/components/parameters/ProjectIdParameter'
      - $ref: '#/components/parameters/DspIdParameter'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DspFeatureImportanceResponse'
  /api/{projectId}/dsp-data/{dspId}/x/{category}:
    get:
      summary: Download DSP data
      description: Download output from a DSP block over all data in the training set, already sliced in windows. In Numpy binary format.
      operationId: downloadDspData
      tags:
      - DSP
      x-middleware:
      - AllowsReadOnly
      parameters:
      - $ref: '#/components/parameters/ProjectIdParameter'
      - $ref: '#/components/parameters/DspIdParameter'
      - $ref: '#/components/parameters/RawDataCategoryParameter'
      - $ref: '#/components/parameters/DSPDataRawParameter'
      responses:
        '200':
          description: Numpy binary file
          content:
            application/octet-stream:
              schema:
                type: string
                format: binary
  /api/{projectId}/dsp-data/{dspId}/y/{category}:
    get:
      summary: Download DSP labels
      description: Download labels for a DSP block over all data in the training set, already sliced in windows.
      operationId: downloadDspLabels
      tags:
      - DSP
      x-middleware:
      - AllowsReadOnly
      parameters:
      - $ref: '#/components/parameters/ProjectIdParameter'
      - $ref: '#/components/parameters/DspIdParameter'
      - $ref: '#/components/parameters/RawDataCategoryParameter'
      responses:
        '200':
          description: Numpy binary file
          content:
            application/octet-stream:
              schema:
                type: string
                format: binary
  /api/{projectId}/dsp/{dspId}/get-autotuner-results:
    get:
      summary: Get results from DSP autotuner
      description: Get a set of parameters, found as a result of running the DSP autotuner.
      operationId: getAutotunerResults
      tags:
      - DSP
      parameters:
      - $ref: '#/components/parameters/ProjectIdParameter'
      - $ref: '#/components/parameters/DspIdParameter'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DspAutotunerResults'
  /api/{projectId}/dsp-data/{dspId}/artifact/{key}:
    get:
      summary: Download a DSP artifact
      description: Download an artifact from a DSP block for debugging. This is an internal API.
      x-internal-api: true
      operationId: downloadDspArtifact
      tags:
      - DSP
      x-middleware:
      - AllowsReadOnly
      parameters:
      - $ref: '#/components/parameters/ProjectIdParameter'
      - $ref: '#/components/parameters/DspIdParameter'
      - $ref: '#/components/parameters/DspArtifactKeyParameter'
      responses:
        '200':
          description: Artifact binary file
          content:
            application/octet-stream:
              schema:
                type: string
                format: binary
  /api/{projectId}/dsp/{dspId}/profile:
    post:
      summary: Profile custom DSP block
      description: Returns performance characteristics for a custom DSP block (needs `hasTfliteImplementation`). Updates are streamed over the websocket API (or can be retrieved through the /stdout endpoint). Use getProfileTfliteJobResult to get the results when the job is completed.
      tags:
      - DSP
      parameters:
      - $ref: '#/components/parameters/ProjectIdParameter'
      - $ref: '#/components/parameters/DspIdParameter'
      operationId: startProfileCustomDspBlock
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/DspRunRequestWithoutFeaturesReadOnly'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/StartJobResponse'
  /api/{projectId}/dsp/{dspId}/performance:
    get:
      summary: Get DSP block performance for all latency devices
      description: Get estimated performance (latency and RAM) for the DSP block, for all supported project latency devices.
      operationId: getPerformanceAllVariants
      tags:
      - DSP
      parameters:
      - $ref: '#/components/parameters/ProjectIdParameter'
      - $ref: '#/components/parameters/DspIdParameter'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DspPerformanceAllVariantsResponse'
  /api/{projectId}/dsp/{dspId}/run:
    post:
      summary: Get processed sample (from features array)
      description: Takes in a features array and runs it through the DSP block. This data should have the same frequency as set in the input block in your impulse.
      operationId: runDspOnFeaturesArray
      tags:
      - DSP
      parameters:
      - $ref: '#/components/parameters/ProjectIdParameter'
      - $ref: '#/components/parameters/DspIdParameter'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/DspRunRequestWithFeatures'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DspRunResponse'
components:
  parameters:
    SliceStartParameter:
      name: sliceStart
      in: query
      required: true
      description: Begin index of the slice
      schema:
        type: integer
    DSPDataRawParameter:
      name: raw
      in: query
      required: false
      description: Whether to download raw data or processed data. Processed data is the default.
      schema:
        type: boolean
    ProjectIdParameter:
      name: projectId
      in: path
      required: true
      description: Project ID
      schema:
        type: integer
    SampleIdParameter:
      name: sampleId
      in: path
      required: true
      description: Sample ID
      schema:
        type: integer
    OptionalSliceEndDefaultToWindowLengthParameter:
      name: sliceEnd
      in: query
      required: false
      description: End index of the slice. If not given, the sample will be sliced to the same length as the impulse input block window length.
      schema:
        type: integer
    FeatureAx2Parameter:
      name: featureAx2
      in: query
      required: true
      description: Feature axis 2
      schema:
        type: integer
    LimitPayloadValues:
      name: limitPayloadValues
      in: query
      required: false
      description: Limit the number of payload values in the response
      schema:
        type: integer
    ExcludeIncludedSamplesParameter:
      name: excludeIncludedSamples
      in: query
      required: false
      description: Whether to exclude 'includedSamples' in the response (as these can slow down requests significantly).
      schema:
        type: boolean
    DspIdParameter:
      name: dspId
      in: path
      required: true
      description: DSP Block ID, use the impulse functions to retrieve the ID
      schema:
        type: integer
    RawDataCategoryParameter:
      name: category
      in: path
      required: true
      description: Which of the three acquisition categories to download data from
      schema:
        type: string
        enum:
        - training
        - testing
        - anomaly
    FeatureAx1Parameter:
      name: featureAx1
      in: query
      required: true
      description: Feature axis 1
      schema:
        type: integer
    DspArtifactKeyParameter:
      name: key
      in: path
      required: true
      description: DSP artifact file key
      schema:
        type: string
    FeatureAx3Parameter:
      name: featureAx3
      in: query
      required: true
      description: Feature axis 3
      schema:
        type: integer
  schemas:
    StartJobResponse:
      allOf:
      - $ref: '#/components/schemas/GenericApiResponse'
      - type: object
        required:
        - id
        properties:
          id:
            type: integer
            description: Job identifier. Status updates will include this identifier.
            example: 12873488112
    DSPConfigRequest:
      type: object
      required:
      - config
      properties:
        config:
          type: object
          additionalProperties:
            type: string
    DspRunRequestWithFeatures:
      type: object
      required:
      - features
      - params
      - drawGraphs
      - requestPerformance
      properties:
        features:
          type: array
          description: Array of features. If you have multiple axes the data should be interleaved (e.g. [ax0_val0, ax1_val0, ax2_val0, ax0_val1, ax1_val1, ax2_val1]).
          items:
            type: integer
        params:
          type: object
          description: DSP parameters with values
          example:
            scale-axes: '10'
          additionalProperties:
            type: string
            nullable: true
        drawGraphs:
          type: boolean
          description: Whether to generate graphs (will take longer)
        requestPerformance:
          type: boolean
          description: Whether to request performance info (will take longer unless cached)
    DspFeatureImportanceResponse:
      allOf:
      - $ref: '#/components/schemas/GenericApiResponse'
      - type: object
        required:
        - hasFeatureImportance
        - labels
        properties:
          hasFeatureImportance:
            type: boolean
          labels:
            type: object
            additionalProperties:
              type: object
              required:
              - features
              properties:
                features:
                  type: array
                  items:
                    type: object
                    required:
                    - axis
                    - importance
                    properties:
                      axis:
                        type: string
                      importance:
                        type: number
    DspRunRequestWithoutFeatures:
      type: object
      required:
      - params
      - store
      properties:
        params:
          type: object
          description: DSP parameters with values
          example:
            scale-axes: '10'
          additionalProperties:
            type: string
            nullable: true
        store:
          type: boolean
          description: Whether to store the DSP parameters as the new default parameters.
    DSPConfig:
      type: object
      required:
      - dsp
      properties:
        dsp:
          $ref: '#/components/schemas/DSPInfo'
        config:
          type: array
          items:
            $ref: '#/components/schemas/DSPGroup'
        configError:
          type: string
    GetSampleResponse:
      allOf:
      - $ref: '#/components/schemas/GenericApiResponse'
      - $ref: '#/components/schemas/RawSampleData'
    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)
    DspPerformanceAllVariantsResponse:
      allOf:
      - $ref: '#/components/schemas/GenericApiResponse'
      - type: object
        properties:
          performance:
            type: array
            description: List of performance estimates for each supported MCU.
            items:
              type: object
              required:
              - mcu
              - latency
              - ram
              properties:
                mcu:
                  type: string
                latency:
                  type: integer
                  description: Latency estimate, in ms
                ram:
                  type: integer
                  description: RAM estimate, in bytes
    Sensor:
      type: object
      required:
      - name
      - units
      properties:
        name:
          type: string
          description: Name of the axis
          example: accX
        units:
          type: string
          description: Type of data on this axis. Needs to comply to SenML units (see https://www.iana.org/assignments/senml/senml.xhtml).
    DspRunResponse:
      allOf:
      - $ref: '#/components/schemas/GenericApiResponse'
      - type: object
        required:
        - features
        - graphs
        properties:
          features:
            type: array
            description: Array of processed features. Laid out according to the names in 'labels'
            items:
              type: number
          graphs:
            type: array
            description: Graphs to plot to give an insight in how the DSP process ran
            items:
              $ref: '#/components/schemas/DspRunGraph'
          labels:
            type: array
            description: Labels of the feature axes
            items:
              type: string
          state_string:
            type: string
            description: String representation of the DSP state returned
          performance:
            $ref: '#/components/schemas/DspPerformance'
    DspRunResponseWithSample:
      allOf:
      - $ref: '#/components/schemas/GenericApiResponse'
      - type: object
        required:
        - features
        - graphs
        - sample
        - canProfilePerformance
        properties:
          features:
            type: array
            description: Array of processed features. Laid out according to the names in 'labels'
            items:
              type: number
          graphs:
            type: array
            description: Graphs to plot to give an insight in how the DSP process ran
            items:
              $ref: '#/components/schemas/DspRunGraph'
          labels:
            type: array
            description: Labels of the feature axes
            items:
              type: string
          state_string:
            type: string
            description: String representation of the DSP state returned
          labelAtEndOfWindow:
            description: Label for the window (only present for time-series data)
            type: string
          sample:
            $ref: '#/components/schemas/RawSampleData'
          performance:
            $ref: '#/components/schemas/DspPerformance'
          canProfilePerformance:
            type: boolean
    BoundingBox:
      type: object
      description: This has the _absolute values_ for x/y/w/h (so 0..x (where x is the w/h of the image))
      required:
      - label
      - x
      - y
      - width
      - height
      properties:
        label:
          type: string
        x:
          type: integer
        y:
          type: integer
        width:
          type: integer
        height:
          type: integer
    RawSampleData:
      type: object
      required:
      - sample
      - payload
      - totalPayloadLength
      properties:
        sample:
          $ref: '#/components/schemas/Sample'
        payload:
          $ref: '#/components/schemas/RawSamplePayload'
        totalPayloadLength:
          type: integer
          description: Total number of payload values
    DSPGroup:
      type: object
      required:
      - group
      - items
      properties:
        group:
          type: string
          example: Scaling
        items:
          type: array
          items:
            $ref: '#/components/schemas/DSPGroupItem'
    DspTrainedFeaturesResponse:
      allOf:
      - $ref: '#/components/schemas/GenericApiResponse'
      - type: object
        required:
        - totalSampleCount
        - data
        - skipFirstFeatures
        properties:
          totalSampleCount:
            type: integer
            description: Total number of windows in the data set
          data:
            type: array
            items:
              type: object
              required:
              - X
              - y
              - yLabel
              properties:
                X:
                  type: object
                  description: Data by feature index for this window
                  example: '`{ 0: 9.81, 11: 0.32, 22: 0.79 }`'
                  additionalProperties:
                    type: number
                y:
                  type: integer
                  description: Training label index
                yLabel:
                  type: string
                  description: Training label string
                sample:
                  type: object
                  required:
                  - id
                  - name
                  - startMs
                  - endMs
                  properties:
                    id:
                      type: number
                    name:
                      type: string
                    startMs:
                      type: number
                    endMs:
                      type: number
          skipFirstFeatures:
            type: integer
            description: When showing the processed features, skip the first X features. This is used in dimensionality reduction where artificial features are introduced in the response (on the first few positions).
    DspPerformance:
      type: object
      required:
      - latency
      - ram
      properties:
        latency:
          type: integer
        ram:
          type: integer
        customDspString:
          type: string
          description: If the project latencyDevice has custom DSP hardware, this value contains a device specific latency metric (eg. cycles)
    DspFeatureLabelsResponse:
      allOf:
      - $ref: '#/components/schemas/GenericApiResponse'
      - type: object
        required:
        - labels
        properties:
          labels:
            type: array
            example: '`[ "accX RMS", "accX Peak 1 Freq" ]`'
            items:
              type: string
    DSPMetadataResponse:
      allOf:
      - $ref: '#/components/schemas/GenericApiResponse'
      - $ref: '#/components/schemas/DSPMetadata'
    DspRunGraph:
      type: object
      required:
      - name
      - type
      properties:
        name:
          type: string
          description: Name of the graph
          example: Frequency domain
        image:
          type: string
          description: Base64 encoded image, only present if type is 'image'
        imageMimeType:
          type: string
          description: Mime type of the Base64 encoded image, only present if type is 'image'
        X:
          type: object
          description: Values on the x-axis per plot. Key is the name of the raw feature. Present if type is 'logarithmic' or 'linear'.
          example:
            accX:
            - 3
            - 5
            - 7
            accY:
            - 2
            - 1
            - 5
          additionalProperties:
            type: array
            items:
              type: number
        y:
          type: array
          description: Values of the y-axis. Present if type is 'logarithmic' or 'linear'.
          example:
          - 0
          - 0.5
          - 1
          items:
            type: number
        suggestedXMin:
          type: number
          description: Suggested minimum value of x-axis
        suggestedXMax:
          type: number
          description: Suggested maxium value of x-axis
        suggestedYMin:
          type: number
          description: Suggested minimum value of y-axis
        suggestedYMax:
          type: number
          description: Suggested maximum value of y-axis
        type:
          type: string
          description: Type of graph (either `logarithm

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