{ "opencollection": "1.0.0", "info": { "name": "Edge Impulse Jobs API", "version": "1.0.0" }, "request": { "auth": { "type": "apikey", "key": "x-api-key", "value": "{{x-api-key}}", "placement": "header" } }, "items": [ { "info": { "name": "Jobs", "type": "folder" }, "items": [ { "info": { "name": "Post-processing", "type": "http" }, "http": { "method": "POST", "url": "https://studio.edgeimpulse.com/v1/api/:projectId/jobs/post-processing", "params": [ { "name": "projectId", "value": "", "type": "path", "description": "Project ID" }, { "name": "impulseId", "value": "", "type": "query", "description": "Impulse ID. If this is unset then the default impulse is used." } ], "body": { "type": "json", "data": "{}" } }, "docs": "Begins post processing job" }, { "info": { "name": "Generate data explorer features", "type": "http" }, "http": { "method": "POST", "url": "https://studio.edgeimpulse.com/v1/api/:projectId/jobs/data-explorer-features", "params": [ { "name": "projectId", "value": "", "type": "path", "description": "Project ID" } ] }, "docs": "Generate features for the data explorer" }, { "info": { "name": "Calculate data quality metrics. Only available for EI staff.", "type": "http" }, "http": { "method": "POST", "url": "https://studio.edgeimpulse.com/v1/api/:projectId/jobs/data-quality-metrics", "params": [ { "name": "projectId", "value": "", "type": "path", "description": "Project ID" } ], "body": { "type": "json", "data": "{}" } }, "docs": "Calculate data quality metrics for the dataset" }, { "info": { "name": "Retry impulse migration", "type": "http" }, "http": { "method": "POST", "url": "https://studio.edgeimpulse.com/v1/api/:projectId/jobs/retry-migrate-impulse", "params": [ { "name": "projectId", "value": "", "type": "path", "description": "Project ID" } ] }, "docs": "If an impulse migration previously failed, use this function to retry the job." }, { "info": { "name": "Create synthetic data", "type": "http" }, "http": { "method": "POST", "url": "https://studio.edgeimpulse.com/v1/api/:projectId/jobs/synthetic-data", "params": [ { "name": "projectId", "value": "", "type": "path", "description": "Project ID" } ], "body": { "type": "json", "data": "{}" } }, "docs": "Generate new synthetic data" }, { "info": { "name": "Create preview AI Actions job", "type": "http" }, "http": { "method": "POST", "url": "https://studio.edgeimpulse.com/v1/api/:projectId/jobs/ai-actions/:actionId/preview", "params": [ { "name": "projectId", "value": "", "type": "path", "description": "Project ID" }, { "name": "actionId", "value": "", "type": "path", "description": "AI Action ID" } ], "body": { "type": "json", "data": "{}" } }, "docs": "Do a dry-run of an AI Actions job over a subset of data. This will instruct the block to propose changes to data items (via \"setSampleProposedChanges\") rather than apply the changes directly." }, { "info": { "name": "Create AI Actions job", "type": "http" }, "http": { "method": "POST", "url": "https://studio.edgeimpulse.com/v1/api/:projectId/jobs/ai-actions/:actionId", "params": [ { "name": "projectId", "value": "", "type": "path", "description": "Project ID" }, { "name": "actionId", "value": "", "type": "path", "description": "AI Action ID" } ] }, "docs": "Run an AI Actions job over a subset of data. This will instruct the block to apply the changes directly to your dataset. To preview, use \"createPreviewAIActionsJob\". To set the config use `updateAIAction`." }, { "info": { "name": "Optimize model", "type": "http" }, "http": { "method": "POST", "url": "https://studio.edgeimpulse.com/v1/api/:projectId/jobs/optimize", "params": [ { "name": "projectId", "value": "", "type": "path", "description": "Project ID" }, { "name": "continuationJobId", "value": "", "type": "query", "description": "Tuner coordinator job ID" } ] }, "docs": "Evaluates optimal model architecture" }, { "info": { "name": "Sets EON tuner primary model", "type": "http" }, "http": { "method": "POST", "url": "https://studio.edgeimpulse.com/v1/api/:projectId/jobs/set-tuner-primary-job", "params": [ { "name": "projectId", "value": "", "type": "path", "description": "Project ID" }, { "name": "trialId", "value": "", "type": "query", "description": "trial ID" } ], "body": { "type": "json", "data": "{}" } }, "docs": "Sets EON tuner primary model" }, { "info": { "name": "List active jobs", "type": "http" }, "http": { "method": "GET", "url": "https://studio.edgeimpulse.com/v1/api/:projectId/jobs", "params": [ { "name": "projectId", "value": "", "type": "path", "description": "Project ID" }, { "name": "rootOnly", "value": "", "type": "query", "description": "Whether to exclude jobs with a parent ID (so jobs started as part of another job)" } ] }, "docs": "Get all active jobs for this project" }, { "info": { "name": "List finished jobs", "type": "http" }, "http": { "method": "GET", "url": "https://studio.edgeimpulse.com/v1/api/:projectId/jobs/history", "params": [ { "name": "projectId", "value": "", "type": "path", "description": "Project ID" }, { "name": "startDate", "value": "", "type": "query", "description": "Start date" }, { "name": "endDate", "value": "", "type": "query", "description": "End date" }, { "name": "limit", "value": "", "type": "query", "description": "Maximum number of results" }, { "name": "offset", "value": "", "type": "query", "description": "Offset in results, can be used in conjunction with LimitResultsParameter to implement paging." }, { "name": "rootOnly", "value": "", "type": "query", "description": "Whether to exclude jobs with a parent ID (so jobs started as part of another job)" } ] }, "docs": "Get all finished jobs for this project" }, { "info": { "name": "List all jobs", "type": "http" }, "http": { "method": "GET", "url": "https://studio.edgeimpulse.com/v1/api/:projectId/jobs/all", "params": [ { "name": "projectId", "value": "", "type": "path", "description": "Project ID" }, { "name": "startDate", "value": "", "type": "query", "description": "Start date" }, { "name": "endDate", "value": "", "type": "query", "description": "End date" }, { "name": "limit", "value": "", "type": "query", "description": "Maximum number of results" }, { "name": "offset", "value": "", "type": "query", "description": "Offset in results, can be used in conjunction with LimitResultsParameter to implement paging." }, { "name": "rootOnly", "value": "", "type": "query", "description": "Whether to exclude jobs with a parent ID (so jobs started as part of another job)" }, { "name": "key", "value": "", "type": "query", "description": "Job key to filter on" }, { "name": "category", "value": "", "type": "query", "description": "Job category to filter on" } ] }, "docs": "Get all jobs for this project" }, { "info": { "name": "Job summary", "type": "http" }, "http": { "method": "GET", "url": "https://studio.edgeimpulse.com/v1/api/:projectId/jobs/summary", "params": [ { "name": "projectId", "value": "", "type": "path", "description": "Project ID" }, { "name": "startDate", "value": "", "type": "query", "description": "Start date" }, { "name": "endDate", "value": "", "type": "query", "description": "End date" } ] }, "docs": "Get a summary of jobs, grouped by key. Used to report to users how much compute they've used." }, { "info": { "name": "Get impulse migration status", "type": "http" }, "http": { "method": "GET", "url": "https://studio.edgeimpulse.com/v1/api/:projectId/jobs/impulse-migration/status", "params": [ { "name": "projectId", "value": "", "type": "path", "description": "Project ID" } ] }, "docs": "Get the status for the multi-impulse migration job in this project. This is a separate route so public projects can access it. If no multi-impulse migration jobs are present, an error will be thrown." }, { "info": { "name": "Get impulse migration logs", "type": "http" }, "http": { "method": "GET", "url": "https://studio.edgeimpulse.com/v1/api/:projectId/jobs/impulse-migration/stdout", "params": [ { "name": "projectId", "value": "", "type": "path", "description": "Project ID" }, { "name": "limit", "value": "", "type": "query", "description": "Maximum number of results" }, { "name": "logLevel", "value": "", "type": "query", "description": "Log level (error, warn, info, debug)" } ] }, "docs": "Get the logs for the multi-impulse migration job in this project. This is a separate route so public projects can access it. If no multi-impulse migration jobs are present, an error will be thrown." }, { "info": { "name": "Update job", "type": "http" }, "http": { "method": "POST", "url": "https://studio.edgeimpulse.com/v1/api/:projectId/jobs/:jobId/update", "params": [ { "name": "projectId", "value": "", "type": "path", "description": "Project ID" }, { "name": "jobId", "value": "", "type": "path", "description": "Job ID" } ], "body": { "type": "json", "data": "{}" } }, "docs": "Update a job." }, { "info": { "name": "Get job status", "type": "http" }, "http": { "method": "GET", "url": "https://studio.edgeimpulse.com/v1/api/:projectId/jobs/:jobId/status", "params": [ { "name": "projectId", "value": "", "type": "path", "description": "Project ID" }, { "name": "jobId", "value": "", "type": "path", "description": "Job ID" } ] }, "docs": "Get the status for a job." }, { "info": { "name": "Get logs", "type": "http" }, "http": { "method": "GET", "url": "https://studio.edgeimpulse.com/v1/api/:projectId/jobs/:jobId/stdout", "params": [ { "name": "projectId", "value": "", "type": "path", "description": "Project ID" }, { "name": "jobId", "value": "", "type": "path", "description": "Job ID" }, { "name": "limit", "value": "", "type": "query", "description": "Maximum number of results" }, { "name": "logLevel", "value": "", "type": "query", "description": "Log level (error, warn, info, debug)" } ] }, "docs": "Get the logs for a job." }, { "info": { "name": "Download logs", "type": "http" }, "http": { "method": "GET", "url": "https://studio.edgeimpulse.com/v1/api/:projectId/jobs/:jobId/stdout/download", "params": [ { "name": "projectId", "value": "", "type": "path", "description": "Project ID" }, { "name": "jobId", "value": "", "type": "path", "description": "Job ID" }, { "name": "limit", "value": "", "type": "query", "description": "Maximum number of results" }, { "name": "logLevel", "value": "", "type": "query", "description": "Log level (error, warn, info, debug)" } ] }, "docs": "Download the logs for a job (as a text file)." }, { "info": { "name": "Cancel job", "type": "http" }, "http": { "method": "POST", "url": "https://studio.edgeimpulse.com/v1/api/:projectId/jobs/:jobId/cancel", "params": [ { "name": "projectId", "value": "", "type": "path", "description": "Project ID" }, { "name": "jobId", "value": "", "type": "path", "description": "Job ID" }, { "name": "forceCancel", "value": "", "type": "query", "description": "If set to 'true', we won't wait for the job cluster to cancel the job, and will mark the job as finished." } ] }, "docs": "Cancel a running job." }, { "info": { "name": "Generate features", "type": "http" }, "http": { "method": "POST", "url": "https://studio.edgeimpulse.com/v1/api/:projectId/jobs/generate-features", "params": [ { "name": "projectId", "value": "", "type": "path", "description": "Project ID" } ], "body": { "type": "json", "data": "{}" } }, "docs": "Take the raw training set and generate features from them. Updates are streamed over the websocket API." }, { "info": { "name": "Autotune DSP parameters", "type": "http" }, "http": { "method": "POST", "url": "https://studio.edgeimpulse.com/v1/api/:projectId/jobs/autotune-dsp", "params": [ { "name": "projectId", "value": "", "type": "path", "description": "Project ID" } ], "body": { "type": "json", "data": "{}" } }, "docs": "Autotune DSP block parameters. Updates are streamed over the websocket API." }, { "info": { "name": "Train model (Keras)", "type": "http" }, "http": { "method": "POST", "url": "https://studio.edgeimpulse.com/v1/api/:projectId/jobs/train/keras/:learnId", "params": [ { "name": "projectId", "value": "", "type": "path", "description": "Project ID" }, { "name": "learnId", "value": "", "type": "path", "description": "Learn Block ID, use the impulse functions to retrieve the ID" } ], "body": { "type": "json", "data": "{}" } }, "docs": "Take the output from a DSP block and train a neural network using Keras. Updates are streamed over the websocket API." }, { "info": { "name": "Train model (Anomaly)", "type": "http" }, "http": { "method": "POST", "url": "https://studio.edgeimpulse.com/v1/api/:projectId/jobs/train/anomaly/:learnId", "params": [ { "name": "projectId", "value": "", "type": "path", "description": "Project ID" }, { "name": "learnId", "value": "", "type": "path", "description": "Learn Block ID, use the impulse functions to retrieve the ID" } ], "body": { "type": "json", "data": "{}" } }, "docs": "Take the output from a DSP block and train an anomaly detection model using K-means or GMM. Updates are streamed over the websocket API." }, { "info": { "name": "Export Keras block", "type": "http" }, "http": { "method": "POST", "url": "https://studio.edgeimpulse.com/v1/api/:projectId/jobs/train/keras/:learnId/export", "params": [ { "name": "projectId", "value": "", "type": "path", "description": "Project ID" }, { "name": "learnId", "value": "", "type": "path", "description": "Learn Block ID, use the impulse functions to retrieve the ID" } ] }, "docs": "Export the training pipeline of a Keras block. Updates are streamed over the websocket API." }, { "info": { "name": "Export Keras block data", "type": "http" }, "http": { "method": "POST", "url": "https://studio.edgeimpulse.com/v1/api/:projectId/jobs/train/keras/:learnId/data", "params": [ { "name": "projectId", "value": "", "type": "path", "description": "Project ID" }, { "name": "learnId", "value": "", "type": "path", "description": "Learn Block ID, use the impulse functions to retrieve the ID" } ], "body": { "type": "json", "data": "{}" } }, "docs": "Export the data of a Keras block (already split in train/validate data). Updates are streamed over the websocket API." }, { "info": { "name": "Build on-device model", "type": "http" }, "http": { "method": "POST", "url": "https://studio.edgeimpulse.com/v1/api/:projectId/jobs/build-ondevice-model", "params": [ { "name": "projectId", "value": "", "type": "path", "description": "Project ID" }, { "name": "type", "value": "", "type": "query", "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." }, { "name": "impulseId", "value": "", "type": "query", "description": "Impulse ID. If this is unset then the default impulse is used." } ], "body": { "type": "json", "data": "{}" } }, "docs": "Generate code to run the impulse on an embedded device. When this step is complete use `downloadBuild` to download the artefacts. Updates are streamed over the websocket API." }, { "info": { "name": "Build organizational on-device model", "type": "http" }, "http": { "method": "POST", "url": "https://studio.edgeimpulse.com/v1/api/:projectId/jobs/build-ondevice-model/organization", "params": [ { "name": "projectId", "value": "", "type": "path", "description": "Project ID" }, { "name": "impulseId", "value": "", "type": "query", "description": "Impulse ID. If this is unset then the default impulse is used." } ], "body": { "type": "json", "data": "{}" } }, "docs": "Generate code to run the impulse on an embedded device using an organizational deployment block. When this step is complete use `downloadBuild` to download the artefacts. Updates are streamed over the websocket API." }, { "info": { "name": "Export original data", "type": "http" }, "http": { "method": "POST", "url": "https://studio.edgeimpulse.com/v1/api/:projectId/jobs/export/original", "params": [ { "name": "projectId", "value": "", "type": "path", "description": "Project ID" } ], "body": { "type": "json", "data": "{}" } }, "docs": "Export all the data in the project as it was uploaded to Edge Impulse. Updates are streamed over the websocket API." }, { "info": { "name": "Export data as WAV", "type": "http" }, "http": { "method": "POST", "url": "https://studio.edgeimpulse.com/v1/api/:projectId/jobs/export/wav", "params": [ { "name": "projectId", "value": "", "type": "path", "description": "Project ID" } ], "body": { "type": "json", "data": "{}" } }, "docs": "Export all the data in the project in WAV format. Updates are streamed over the websocket API." }, { "info": { "name": "Retrain", "type": "http" }, "http": { "method": "POST", "url": "https://studio.edgeimpulse.com/v1/api/:projectId/jobs/retrain", "params": [ { "name": "projectId", "value": "", "type": "path", "description": "Project ID" }, { "name": "impulseId", "value": "", "type": "query", "description": "Impulse ID. If this is unset then the default impulse is used." } ] }, "docs": "Retrains the current impulse with the last known parameters. Updates are streamed over the websocket API." }, { "info": { "name": "Classify", "type": "http" }, "http": { "method": "POST", "url": "https://studio.edgeimpulse.com/v1/api/:projectId/jobs/classify", "params": [ { "name": "projectId", "value": "", "type": "path", "description": "Project ID" }, { "name": "impulseId", "value": "", "type": "query", "description": "Impulse ID. If this is unset then the default impulse is used." } ], "body": { "type": "json", "data": "{}" } }, "docs": "Classifies all items in the testing dataset against the current impulse. Updates are streamed over the websocket API." }, { "info": { "name": "Performance Calibration", "type": "http" }, "http": { "method": "POST", "url": "https://studio.edgeimpulse.com/v1/api/:projectId/jobs/performance-calibration", "params": [ { "name": "projectId", "value": "", "type": "path", "description": "Project ID" }, { "name": "impulseId", "value": "", "type": "query", "description": "Impulse ID. If this is unset then the default impulse is used." } ], "body": { "type": "json", "data": "{}" } }, "docs": "Simulates real world usage and returns performance metrics." }, { "info": { "name": "Evaluate", "type": "http" }, "http": { "method": "POST", "url": "https://studio.edgeimpulse.com/v1/api/:projectId/jobs/evaluate", "params": [ { "name": "projectId", "value": "", "type": "path", "description": "Project ID" }, { "name": "impulseId", "value": "", "type": "query", "description": "Impulse ID. If this is unset then the default impulse is used." } ] }, "docs": "Evaluates every variant of the current impulse. Updates are streamed over the websocket API." }, { "info": { "name": "Version project", "type": "http" }, "http": { "method": "POST", "url": "https://studio.edgeimpulse.com/v1/api/:projectId/jobs/version", "params": [ { "name": "projectId", "value": "", "type": "path", "description": "Project ID" } ], "body": { "type": "json", "data": "{}" } }, "docs": "Create a new version of the project. This stores all data and configuration offsite. If you have access to the enterprise version of Edge Impulse you can store your data in your own storage buckets (only through JWT token authentication)." }, { "info": { "name": "Restore project to version", "type": "http" }, "http": { "method": "POST", "url": "https://studio.edgeimpulse.com/v1/api/:projectId/jobs/restore", "params": [ { "name": "projectId", "value": "", "type": "path", "description": "Project ID" } ], "body": { "type": "json", "data": "{}" } }, "docs": "Restore a project to a certain version. This can only applied to a project without data, and will overwrite your impulse and all settings." }, { "info": { "name": "Restore project to public version", "type": "http" }, "http": { "method": "POST", "url": "https://studio.edgeimpulse.com/v1/api/:projectId/jobs/restore/from-public", "params": [ { "name": "projectId", "value": "", "type": "path", "description": "Project ID" } ], "body": { "type": "json", "data": "{}" } }, "docs": "Restore a project to a certain public version. This can only applied to a project without data, and will overwrite your impulse and all settings." }, { "info": { "name": "Make a version public", "type": "http" }, "http": { "method": "POST", "url": "https://studio.edgeimpulse.com/v1/api/:projectId/jobs/versions/:versionId/make-public", "params": [ { "name": "projectId", "value": "", "type": "path", "description": "Project ID" }, { "name": "versionId", "value": "", "type": "path", "description": "Version ID" } ] }, "docs": "Make a version of a project public. This makes all data and state available (read-only) on a public URL, and allows users to clone this project." }, { "info": { "name": "Add keywords and noise", "type": "http" }, "http": { "method": "POST", "url": "https://studio.edgeimpulse.com/v1/api/:projectId/jobs/keywords-noise", "params": [ { "name": "projectId", "value": "", "type": "path", "description": "Project ID" } ] }, "docs": "Add keywords and noise data to a project (for getting started guide)" }, { "info": { "name": "Profile TFLite model", "type": "http" }, "http": { "method": "POST", "url": "https://studio.edgeimpulse.com/v1/api/:projectId/jobs/profile-tflite", "params": [ { "name": "projectId", "value": "", "type": "path", "description": "Project ID" } ], "body": { "type": "json", "data": "{}" } }, "docs": "Takes in a TFLite model and returns the latency, RAM and ROM used for this model. 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." }, { "info": { "name": "Deploy pretrained model", "type": "http" }, "http": { "method": "POST", "url": "https://studio.edgeimpulse.com/v1/api/:projectId/jobs/deploy-pretrained-model", "params": [ { "name": "projectId", "value": "", "type": "path", "description": "Project ID" }, { "name": "impulseId", "value": "", "type": "query", "description": "Impulse ID. If this is unset then the default impulse is used." } ], "body": { "type": "json", "data": "{}" } }, "docs": "Takes in a TFLite file and builds the model and SDK. 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." }, { "info": { "name": "Get TFLite profile result (GET)", "type": "http" }, "http": { "method": "GET", "url": "https://studio.edgeimpulse.com/v1/api/:projectId/jobs/profile-tflite/:jobId/result", "params": [ { "name": "projectId", "value": "", "type": "path", "description": "Project ID" }, { "name": "jobId", "value": "", "type": "path", "description": "Job ID" } ] }, "docs": "Get the results from a job started from startProfileTfliteJob (via a GET request)." }, { "info": { "name": "Get TFLite profile result (POST)", "type": "http" }, "http": { "method": "POST", "url": "https://studio.edgeimpulse.com/v1/api/:projectId/jobs/profile-tflite/:jobId/result", "params": [ { "name": "projectId", "value": "", "type": "path", "description": "Project ID" }, { "name": "jobId", "value": "", "type": "path", "description": "Job ID" } ] }, "docs": "Get the results from a job started from startProfileTfliteJob (via a POST request)." } ] } ], "bundled": true }