Edge Impulse Deployment API

The Deployment API from Edge Impulse — 10 operation(s) for deployment.

Operations 11

GET /api/deployment/targets Deployment targets #
GET /api/{projectId}/deployment/targets Deployment targets #
GET /api/{projectId}/deployment/targets/data-sources Deployment targets (data sources) #
GET /api/{projectId}/deployment/evaluate Evaluate job result #
GET /api/{projectId}/deployment/evaluate/cache Check evaluate job result (cache) #
GET /api/{projectId}/deployment Get deployment info #
GET /api/{projectId}/deployment/download Download #
GET /api/{projectId}/deployment/last Get information on the last deployment build #
GET /api/{projectId}/deployment/syntiant/posterior Get Syntiant posterior parameters #
POST /api/{projectId}/deployment/syntiant/posterior Set Syntiant posterior parameters #
POST /api/{projectId}/jobs/find-syntiant-posterior Find Syntiant posterior parameters #

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-deployment-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-deployment-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Edge Impulse Deployment API
  version: 1.0.0
servers:
- url: https://studio.edgeimpulse.com/v1
security:
- ApiKeyAuthentication: []
- JWTAuthentication: []
- JWTHttpHeaderAuthentication: []
tags:
- name: Deployment
paths:
  /api/deployment/targets:
    get:
      summary: Deployment targets
      description: List all deployment targets
      operationId: listAllDeploymentTargets
      tags:
      - Deployment
      x-middleware:
      - AllowsReadOnly
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DeploymentTargetsResponse'
  /api/{projectId}/deployment/targets:
    get:
      summary: Deployment targets
      description: List deployment targets for a project
      operationId: listDeploymentTargetsForProject
      tags:
      - Deployment
      x-middleware:
      - AllowsReadOnly
      parameters:
      - $ref: '#/components/parameters/ProjectIdParameter'
      - $ref: '#/components/parameters/OptionalImpulseIdParameter'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProjectDeploymentTargetsResponse'
  /api/{projectId}/deployment/targets/data-sources:
    get:
      summary: Deployment targets (data sources)
      description: List deployment targets for a project from data sources page  (it shows some things like all Linux deploys, and hides 'fake' deploy targets like mobile phone / computer)
      operationId: listDeploymentTargetsForProjectDataSources
      tags:
      - Deployment
      x-middleware:
      - AllowsReadOnly
      parameters:
      - $ref: '#/components/parameters/ProjectIdParameter'
      - $ref: '#/components/parameters/OptionalImpulseIdParameter'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DeploymentTargetsResponse'
  /api/{projectId}/deployment/evaluate:
    get:
      summary: Evaluate job result
      description: Get evaluate job result, containing detailed performance statistics for every possible variant of the impulse.
      operationId: getEvaluateJobResult
      tags:
      - Deployment
      parameters:
      - $ref: '#/components/parameters/ProjectIdParameter'
      - $ref: '#/components/parameters/OptionalImpulseIdParameter'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EvaluateJobResponse'
  /api/{projectId}/deployment/evaluate/cache:
    get:
      summary: Check evaluate job result (cache)
      description: Get evaluate job result, containing detailed performance statistics for every possible variant of the impulse. This only checks cache, and throws an error if there is no data in cache.
      operationId: getEvaluateJobResultCache
      tags:
      - Deployment
      parameters:
      - $ref: '#/components/parameters/ProjectIdParameter'
      - $ref: '#/components/parameters/OptionalImpulseIdParameter'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EvaluateJobResponse'
  /api/{projectId}/deployment:
    get:
      summary: Get deployment info
      description: Gives information on whether a deployment was already built for a type
      operationId: getDeployment
      tags:
      - Deployment
      parameters:
      - $ref: '#/components/parameters/ProjectIdParameter'
      - $ref: '#/components/parameters/DeploymentTypeParameter'
      - $ref: '#/components/parameters/ModelTypeParameter'
      - $ref: '#/components/parameters/ModelEngineParameter'
      - $ref: '#/components/parameters/OptionalImpulseIdParameter'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetDeploymentResponse'
  /api/{projectId}/deployment/download:
    get:
      summary: Download
      description: Download the build artefacts for a project
      operationId: downloadBuild
      tags:
      - Deployment
      x-middleware:
      - AllowsReadOnly
      parameters:
      - $ref: '#/components/parameters/ProjectIdParameter'
      - $ref: '#/components/parameters/DeploymentTypeParameter'
      - $ref: '#/components/parameters/ModelTypeParameter'
      - $ref: '#/components/parameters/ModelEngineParameter'
      - $ref: '#/components/parameters/OptionalImpulseIdParameter'
      responses:
        '200':
          description: ZIP or BIN file
          content:
            application/zip:
              schema:
                type: string
                format: binary
  /api/{projectId}/deployment/last:
    get:
      summary: Get information on the last deployment build
      description: Get information on the result of the last successful deployment job, including info on the build e.g. whether it is still valid.
      operationId: getLastDeploymentBuild
      tags:
      - Deployment
      parameters:
      - $ref: '#/components/parameters/ProjectIdParameter'
      - $ref: '#/components/parameters/OptionalImpulseIdParameter'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetLastDeploymentBuildResponse'
  /api/{projectId}/deployment/syntiant/posterior:
    get:
      summary: Get Syntiant posterior parameters
      description: Get the current posterior parameters for the Syntiant deployment target
      operationId: getSyntiantPosterior
      tags:
      - Deployment
      parameters:
      - $ref: '#/components/parameters/ProjectIdParameter'
      - $ref: '#/components/parameters/OptionalImpulseIdParameter'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetSyntiantPosteriorResponse'
    post:
      summary: Set Syntiant posterior parameters
      description: Set the current posterior parameters for the Syntiant deployment target
      operationId: setSyntiantPosterior
      tags:
      - Deployment
      parameters:
      - $ref: '#/components/parameters/ProjectIdParameter'
      - $ref: '#/components/parameters/OptionalImpulseIdParameter'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SetSyntiantPosteriorRequest'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GenericApiResponse'
  /api/{projectId}/jobs/find-syntiant-posterior:
    post:
      summary: Find Syntiant posterior parameters
      description: Automatically find the current posterior parameters for the Syntiant deployment target
      operationId: findSyntiantPosterior
      tags:
      - Deployment
      parameters:
      - $ref: '#/components/parameters/ProjectIdParameter'
      - $ref: '#/components/parameters/OptionalImpulseIdParameter'
      requestBody:
        required: true
        content:
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/FindSyntiantPosteriorRequest'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/StartJobResponse'
components:
  schemas:
    SetSyntiantPosteriorRequest:
      type: object
      required:
      - parameters
      properties:
        parameters:
          type: object
    ProjectDeploymentTargetsResponse:
      allOf:
      - $ref: '#/components/schemas/GenericApiResponse'
      - type: object
        required:
        - targets
        properties:
          targets:
            type: array
            items:
              $ref: '#/components/schemas/ProjectDeploymentTarget'
    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
    EvaluateResultValue:
      type: object
      properties:
        raw:
          description: The value based on the model alone
          type: number
        withAnomaly:
          description: The value including the result of anomaly detection
          type: number
    ProjectDeploymentTarget:
      allOf:
      - $ref: '#/components/schemas/DeploymentTarget'
      - type: object
        required:
        - recommendedForProject
        - disabledForProject
        properties:
          recommendedForProject:
            type: boolean
            description: Whether this deployment target is recommended for the project based on connected devices.
          disabledForProject:
            type: boolean
            description: Whether this deployment target is disabled for the project based on various attributes of the project.
          reasonTargetDisabled:
            type: string
            description: If the deployment target is disabled for the project, this gives the reason why.
    EvaluateJobResponse:
      allOf:
      - $ref: '#/components/schemas/GenericApiResponse'
      - type: object
        required:
        - result
        properties:
          result:
            type: array
            items:
              $ref: '#/components/schemas/ModelVariantStats'
    DeploymentTarget:
      type: object
      required:
      - name
      - description
      - image
      - imageClasses
      - format
      - hasEonCompiler
      - hasTensorRT
      - hasTensaiFlow
      - hasDRPAI
      - hasTIDL
      - hasAkida
      - hasMemryx
      - hasStAton
      - hideOptimizations
      - uiSection
      - supportedEngines
      - preferredEngine
      - docsUrl
      properties:
        name:
          type: string
        description:
          type: string
        image:
          type: string
        imageClasses:
          type: string
        format:
          type: string
        latencyDevice:
          type: string
        hasEonCompiler:
          type: boolean
          description: Preferably use supportedEngines / preferredEngine
        hasTensorRT:
          type: boolean
          description: Preferably use supportedEngines / preferredEngine
        hasTensaiFlow:
          type: boolean
          description: Preferably use supportedEngines / preferredEngine
        hasDRPAI:
          type: boolean
          description: Preferably use supportedEngines / preferredEngine
        hasTIDL:
          type: boolean
          description: Preferably use supportedEngines / preferredEngine
        hasAkida:
          type: boolean
          description: Preferably use supportedEngines / preferredEngine
        hasMemryx:
          type: boolean
          description: Preferably use supportedEngines / preferredEngine
        hasStAton:
          type: boolean
          description: Preferably use supportedEngines / preferredEngine
        hideOptimizations:
          type: boolean
        badge:
          type: object
          required:
          - name
          - description
          properties:
            name:
              type: string
            description:
              type: string
        uiSection:
          type: string
          enum:
          - library
          - firmware
          - mobile
          - hidden
        customDeployId:
          type: integer
        integrateUrl:
          type: string
        ownerOrganizationName:
          type: string
        supportedEngines:
          type: array
          items:
            $ref: '#/components/schemas/DeploymentTargetEngine'
        preferredEngine:
          $ref: '#/components/schemas/DeploymentTargetEngine'
        url:
          type: string
        docsUrl:
          type: string
        firmwareRepoUrl:
          type: string
    FindSyntiantPosteriorRequest:
      type: object
      required:
      - targetWords
      - referenceSet
      properties:
        targetWords:
          type: array
          items:
            type: string
        referenceSet:
          type: string
          enum:
          - 600_seconds
          - full
          - custom
          - no_calibration
        wavFile:
          type: string
          format: binary
        metaCsvFile:
          type: string
          format: binary
        deploymentTarget:
          type: string
          enum:
          - syntiant-ndp101
          - syntiant-ndp101-lib
          - syntiant-ndp120-lib
          - syntiant-ndp120-lib-tdk-v14
          - syntiant-nicla-ndp120
          - syntiant-avnet-rasyn
          - syntiant-ndp120-lib-ndp-v1-15-0
    GetLastDeploymentBuildResponse:
      allOf:
      - $ref: '#/components/schemas/GenericApiResponse'
      - type: object
        required:
        - hasBuild
        properties:
          hasBuild:
            type: boolean
            description: Does the deployment build still exist? (Builds are deleted if they are no longer valid for the project)
          lastBuild:
            type: object
            required:
            - version
            - deploymentType
            - engine
            - created
            properties:
              version:
                type: integer
                description: The build version, incremented after each deployment build
              deploymentType:
                type: string
                description: Deployment type of the build
              engine:
                $ref: '#/components/schemas/DeploymentTargetEngine'
              modelType:
                $ref: '#/components/schemas/KerasModelTypeEnum'
              created:
                type: string
                format: date-time
                description: The time this build was created
          lastDeploymentTarget:
            $ref: '#/components/schemas/ProjectDeploymentTarget'
    ModelVariantStats:
      type: object
      required:
      - modelType
      - learnBlockType
      - learnBlockId
      - confusionMatrix
      - confusionMatrixRowHeaders
      - confusionMatrixColumnHeaders
      - accuracy
      - trainingLabels
      - classificationLabels
      properties:
        modelType:
          description: The type of model
          $ref: '#/components/schemas/KerasModelTypeEnum'
        learnBlockId:
          description: The learning block this model variant is from
          type: integer
        learnBlockType:
          $ref: '#/components/schemas/LearnBlockType'
        confusionMatrix:
          description: A map from actual labels to predicted labels, where actual labels are listed in `trainingLabels` and possible predicted labels are listed in `classificationLabels`.
          type: object
          additionalProperties:
            type: object
            additionalProperties:
              type: object
              $ref: '#/components/schemas/EvaluateResultValue'
        trainingLabels:
          description: The labels present in the model's training data. These are all present in the first dimension of the confusion matrix.
          type: array
          items:
            type: string
        classificationLabels:
          description: The possible labels resulting from classification. These may be present in the second dimension of the confusion matrix.
          type: array
          items:
            type: string
        totalWindowCount:
          description: The total number of windows that were evaluated
          type: integer
        totalCorrectWindowCount:
          description: The total number of windows that the model classified correctly
          $ref: '#/components/schemas/EvaluateResultValue'
        accuracy:
          description: The model's accuracy as a percentage
          $ref: '#/components/schemas/EvaluateResultValue'
    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
    KerasModelTypeEnum:
      type: string
      enum:
      - int8
      - float32
      - akida
      - requiresRetrain
    DeploymentTargetsResponse:
      allOf:
      - $ref: '#/components/schemas/GenericApiResponse'
      - type: object
        required:
        - targets
        properties:
          targets:
            type: array
            items:
              $ref: '#/components/schemas/DeploymentTarget'
    GetSyntiantPosteriorResponse:
      allOf:
      - $ref: '#/components/schemas/GenericApiResponse'
      - type: object
        required:
        - hasPosteriorParameters
        properties:
          hasPosteriorParameters:
            type: boolean
          parameters:
            type: object
    DeploymentTargetEngine:
      type: string
      enum:
      - tflite
      - tflite-eon
      - tflite-eon-ram-optimized
      - tensorrt
      - tensaiflow
      - drp-ai
      - tidl
      - akida
      - syntiant
      - memryx
      - neox
      - ethos-linux
      - st-aton
    GenericApiResponse:
      type: object
      required:
      - success
      properties:
        success:
          type: boolean
          description: Whether the operation succeeded
        error:
          type: string
          description: Optional error description (set if 'success' was false)
    GetDeploymentResponse:
      allOf:
      - $ref: '#/components/schemas/GenericApiResponse'
      - type: object
        required:
        - hasDeployment
        properties:
          hasDeployment:
            type: boolean
          version:
            type: integer
  parameters:
    DeploymentTypeParameter:
      name: type
      in: query
      required: true
      description: The name of the built target. You can find this by listing all deployment targets through `listDeploymentTargetsForProject` (via `GET /v1/api/{projectId}/deployment/targets`) and see the `format` type.
      schema:
        type: string
    ModelTypeParameter:
      name: modelType
      in: query
      required: false
      description: Optional model type of the build (if not, it uses the settings in the Keras block)
      schema:
        $ref: '#/components/schemas/KerasModelTypeEnum'
    ModelEngineParameter:
      name: engine
      in: query
      required: false
      description: Optional engine for the build (if not, it uses the default engine for the deployment target)
      schema:
        $ref: '#/components/schemas/DeploymentTargetEngine'
    ProjectIdParameter:
      name: projectId
      in: path
      required: true
      description: Project ID
      schema:
        type: integer
    OptionalImpulseIdParameter:
      name: impulseId
      in: query
      required: false
      description: Impulse ID. If this is unset then the default impulse is used.
      schema:
        type: integer
  securitySchemes:
    ApiKeyAuthentication:
      type: apiKey
      in: header
      name: x-api-key
    JWTAuthentication:
      type: apiKey
      in: cookie
      name: jwt
    JWTHttpHeaderAuthentication:
      type: apiKey
      in: header
      name: x-jwt-token