Edge Impulse Deployment API
The Deployment API from Edge Impulse — 10 operation(s) for deployment.
The Deployment API from Edge Impulse — 10 operation(s) for deployment.
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
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.curl "https://apis.io/api/v1/apis/edge-impulse-deployment-api"
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
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: 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