Edge Impulse API
The Edge Impulse Studio API provides programmatic access to build datasets, train models, and deploy embedded machine learning libraries directly to devices, from microcontrollers to gateways with neural accelerators.
The Edge Impulse Studio API provides programmatic access to build datasets, train models, and deploy embedded machine learning libraries directly to devices, from microcontrollers to gateways with neural accelerators.
openapi: 3.0.0
info:
title: Edge Impulse API
version: 1.0.0
servers:
- url: https://studio.edgeimpulse.com/v1
paths:
/api-login:
post:
summary: Get JWT token
security: []
description: Get a JWT token to authenticate with the API.
tags:
- Login
operationId: login
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/GetJWTRequest'
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/GetJWTResponse'
/api-user-create:
post:
summary: Create user
security: []
description: Create a new user and project
tags:
- User
operationId: createUser
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/CreateUserRequest'
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/CreateUserResponse'
/api-user-create-evaluate:
post:
summary: Create evaluation user
security: []
description: >-
Creates an evaluation user and a new project, and redirects the user to
the new project.
tags:
- User
operationId: createEvaluationUser
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/CreateEvaluationUserResponse'
/api-create-pro-user:
post:
summary: Create Professional Tier user
security: []
description: >-
Create a new user for the Professional Plan and a new project. Note that
the Professional plan will not be enabled until the payment is
successful.
tags:
- User
operationId: createProTierUser
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/CreateProTierUserRequest'
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/CreateUserResponse'
/api-user-create-enterprise-trial:
post:
summary: Create enterprise trial user
security: []
description: >-
Creates an enterprise trial user and a new trial organization, and
redirects the user to the new organization.
tags:
- User
operationId: createEnterpriseTrialUser
requestBody:
description: Trial request
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/CreateEnterpriseTrialUserRequest'
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/CreateEnterpriseTrialResponse'
/api-user-need-to-set-password/{usernameOrEmail}:
get:
summary: Get user registration state
security: []
description: >-
Tells whether a user is registered and whether it needs to set its
password.
tags:
- User
operationId: getUserNeedToSetPassword
parameters:
- $ref: '#/components/parameters/UsernameOrEmailParameter'
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/GetUserNeedToSetPasswordResponse'
/api/canary:
get:
summary: >-
Get the decision to whether the requested URL goes on canary deployment
or not
description: >-
Get the decision to whether the requested URL goes on canary deployment
or not
x-internal-api: true
x-required-headers:
- x-edge-lambda
security:
- JWTAuthentication: []
operationId: shouldGoOnCanary
tags:
- Canary
parameters:
- $ref: '#/components/parameters/RequestedUrlParameter'
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/CanaryResponse'
/api/user:
get:
summary: Get current user
description: >-
Get information about the current user. This function is only available
through a JWT token.
tags:
- User
operationId: getCurrentUser
parameters:
- $ref: '#/components/parameters/UserExcludeProjectsParameter'
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/GetUserResponse'
post:
summary: Update current user
description: >-
Update user properties such as name. This function is only available
through a JWT token.
tags:
- User
operationId: updateCurrentUser
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/UpdateUserRequest'
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/GenericApiResponse'
delete:
summary: Delete current user
description: >-
Delete a user. This function is only available through a JWT token, and
can only remove the current user.
tags:
- User
operationId: deleteCurrentUser
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/DeleteUserRequest'
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/GenericApiResponse'
/api/user/projects:
get:
summary: Get current user projects
description: >-
Get projects for the current user. This returns all projects regardless
of whitelabel. This function is only available through a JWT token.
tags:
- User
operationId: getCurrentUserProjects
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/GetUserProjectsResponse'
/api/user/convert:
post:
summary: Convert current evaluation user
description: Convert current evaluation user account to regular account.
tags:
- User
operationId: convertCurrentUser
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/ConvertUserRequest'
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/GenericApiResponse'
/api/user/activate:
post:
summary: Activate current user
description: >-
Activate the current user account (requires an activation code). This
function is only available through a JWT token.
tags:
- User
operationId: activateCurrentUser
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/ActivateUserOrVerifyEmailRequest'
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/GenericApiResponse'
/api/user/request-activation:
post:
summary: Request activation code
description: >-
Request a new activation code for the current user. This function is
only available through a JWT token.
tags:
- User
operationId: requestActivationCodeCurrentUser
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/GenericApiResponse'
/api/user/create-developer-profile:
post:
summary: Create developer profile
description: Create a developer profile for the current active user.
tags:
- User
operationId: createDeveloperProfile
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/CreateDeveloperProfileResponse'
/api/user/trial:
post:
summary: Start enterprise trial
description: >-
Create an enterprise trial for the current user. Users can only go
through a trial once.
tags:
- User
operationId: startEnterpriseTrial
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/StartEnterpriseTrialRequest'
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/CreateEnterpriseTrialResponse'
/api/user/emails:
get:
summary: List emails
description: >-
Get a list of all emails sent by Edge Impulse to the current user. This
function is only available through a JWT token, and is not available for
all users.
security:
- permissions:
- users:emails:read
tags:
- User
operationId: listEmailsCurrentUser
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/ListEmailResponse'
/api/user/photo:
post:
summary: Upload photo
description: >-
Upload a photo for the current user. This function is only available
through a JWT token.
tags:
- User
operationId: uploadPhotoCurrentUser
requestBody:
required: true
content:
multipart/form-data:
schema:
$ref: '#/components/schemas/UploadUserPhotoRequest'
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/UploadUserPhotoResponse'
delete:
summary: Delete photo
description: >-
Delete user profile photo. This function is only available through a JWT
token.
tags:
- User
operationId: deletePhotoCurrentUser
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/GenericApiResponse'
/api/user/change-password:
post:
summary: Change password current user
description: >-
Change the password for the current user account. This function is only
available through a JWT token.
tags:
- User
operationId: changePasswordCurrentUser
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/ChangePasswordRequest'
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/GenericApiResponse'
/api/user/organizations:
get:
summary: Get organizations
description: >-
List all organizations that the current user is a member of. This
function is only available through a JWT token.
tags:
- User
operationId: listOrganizationsCurrentUser
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/ListOrganizationsResponse'
/api/users/buckets:
get:
summary: Get buckets current user
description: >-
List all organizational storage buckets that the current user has access
to. This function is only available through a JWT token.
tags:
- User
operationId: listOrganizationBucketsCurrentUser
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/ListOrganizationBucketsUserResponse'
/api/user/by-third-party-activation-code:
post:
summary: Get user by third party activation code
description: >-
Get information about a user through an activation code. This function
is only available through a JWT token.
tags:
- User
operationId: getUserByThirdPartyActivationCode
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/UserByThirdPartyActivationRequest'
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/GetUserResponse'
/api/user/activate-by-third-party-activation-code:
post:
summary: Activate user by third party activation code
description: >-
Activate a user that was created by a third party. This function is only
available through a JWT token.
tags:
- User
operationId: activateUserByThirdPartyActivationCode
requestBody:
required: true
content:
application/json:
schema:
$ref: >-
#/components/schemas/ActivateUserByThirdPartyActivationCodeRequest
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/GetJWTResponse'
/api/user/accept-tos:
post:
summary: Accept Terms of Service
description: Accept Terms of Service.
tags:
- User
operationId: acceptTermsOfService
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/GenericApiResponse'
/api/user/dismiss-notification:
post:
summary: Dismiss a notification
description: Dismiss a notification
tags:
- User
operationId: userDismissNotification
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/UserDismissNotificationRequest'
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/GenericApiResponse'
/api/user/mfa/totp/create-key:
post:
summary: Generate a new TOTP MFA key
description: >-
Creates a new MFA key, only allowed if the user has no MFA configured.
TOTP tokens use SHA-1 algorithm.
tags:
- User
operationId: userGenerateNewTotpMfaKey
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/UserGenerateNewMfaKeyResponse'
/api/user/mfa/totp/set-key:
post:
summary: Set TOTP MFA key
description: >-
Enable MFA on this account using an TOTP token. First create a new key
via `userGenerateNewTotpMfaKey`.
tags:
- User
operationId: userSetTotpMfaKey
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/UserSetTotpMfaKeyRequest'
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/UserSetTotpMfaKeyResponse'
/api/user/mfa/totp/clear:
post:
summary: Remove TOTP MFA key
description: Disable MFA on this account using an TOTP token.
tags:
- User
operationId: userDeleteTotpMfaKey
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/UserDeleteTotpMfaKeyRequest'
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/GenericApiResponse'
/api/user/subscription/upgrade:
post:
summary: Upgrade subscription
description: Upgrade the current subscription.
tags:
- User
operationId: userUpgradeSubscription
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/UpgradeSubscriptionRequest'
responses:
'302':
description: A redirect to the payment portal
/api/user/subscription/cancel:
post:
summary: Cancel subscription
description: Cancel the current subscription.
tags:
- User
operationId: userCancelSubscription
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/DowngradeSubscriptionRequest'
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/GenericApiResponse'
/api/user/subscription/undo-cancel:
post:
summary: Undo subscription cancellation
description: >
Stop a pending cancellation. If you schedule a subscription to be
canceled, and
the subscription hasn't yet reached the end of the billing period, you
can stop
the cancellation. After a subscription has been canceled, you can't
reactivate it.
tags:
- User
operationId: userUndoCancelSubscription
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/GenericApiResponse'
/api/user/subscription/metrics:
get:
summary: Get user billable compute metrics
description: >-
Get billable compute metrics for a user. This function is only available
to users with an active subscription.
tags:
- User
operationId: userGetSubscriptionMetrics
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/UserSubscriptionMetricsResponse'
/api/users/{userId}:
get:
summary: Get user
description: >-
Get information about a user. This function is only available through a
JWT token.
tags:
- User
parameters:
- $ref: '#/components/parameters/UserIdParameter'
operationId: getUser
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/GetUserResponse'
post:
summary: Update user
description: >-
Update user properties such as name. This function is only available
through a JWT token.
tags:
- User
parameters:
- $ref: '#/components/parameters/UserIdParameter'
operationId: updateUser
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/UpdateUserRequest'
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/GenericApiResponse'
delete:
summary: Delete user
description: >-
Delete a user. This function is only available through a JWT token, and
can only remove the current user.
tags:
- User
parameters:
- $ref: '#/components/parameters/UserIdParameter'
operationId: deleteUser
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/DeleteUserRequest'
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/GenericApiResponse'
/api/users/{userId}/activate:
post:
summary: Activate user
description: >-
Activate a user account (requires an activation code). This function is
only available through a JWT token.
tags:
- User
parameters:
- $ref: '#/components/parameters/UserIdParameter'
operationId: activateUser
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/ActivateUserOrVerifyEmailRequest'
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/GenericApiResponse'
/api/users/{userId}/request-activation:
post:
summary: Request activation code
description: >-
Request a new activation code. This function is only available through a
JWT token.
tags:
- User
parameters:
- $ref: '#/components/parameters/UserIdParameter'
operationId: requestActivationCodeUser
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/GenericApiResponse'
/api/users/{userId}/emails:
get:
summary: List emails
description: >-
Get a list of all emails sent by Edge Impulse to a user. This function
is only available through a JWT token, and is not available for all
users.
security:
- permissions:
- users:emails:read
tags:
- User
parameters:
- $ref: '#/components/parameters/UserIdParameter'
operationId: listEmailsUser
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/ListEmailResponse'
/api/users/{userId}/photo:
post:
summary: Upload photo
description: >-
Upload a photo for a user. This function is only available through a JWT
token, and is not available for all users.
tags:
- User
parameters:
- $ref: '#/components/parameters/UserIdParameter'
operationId: uploadPhotoUser
requestBody:
required: true
content:
multipart/form-data:
schema:
$ref: '#/components/schemas/UploadUserPhotoRequest'
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/UploadUserPhotoResponse'
/api/users/{userId}/change-password:
post:
summary: Change password
description: >-
Change the password for a user account. This function is only available
through a JWT token.
tags:
- User
parameters:
- $ref: '#/components/parameters/UserIdParameter'
operationId: changePasswordUser
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/ChangePasswordRequest'
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/GenericApiResponse'
/api/users/{userId}/set-password:
post:
summary: Set password for SSO user
description: >-
Set the password for a new SSO user. This function is only available
through an SSO access token.
security: []
tags:
- User
parameters:
- $ref: '#/components/parameters/UserIdParameter'
operationId: setUserPassword
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/SetUserPasswordRequest'
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/GenericApiResponse'
/api/users/{userId}/organizations:
get:
summary: Get organizations
description: >-
List all organizations for a user. This function is only available
through a JWT token.
tags:
- User
operationId: listOrganizationsUser
parameters:
- $ref: '#/components/parameters/UserIdParameter'
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/ListOrganizationsResponse'
/api/users/{userId}/buckets:
get:
summary: Get buckets
description: >-
List all organizational storage buckets that a user has access to. This
function is only available through a JWT token.
tags:
- User
operationId: listOrganizationBucketsUser
parameters:
- $ref: '#/components/parameters/UserIdParameter'
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/ListOrganizationBucketsUserResponse'
/api/users/{userId}/feedback:
post:
summary: Send feedback
description: Send feedback to Edge Impulse or get in touch with sales.
tags:
- User
operationId: sendUserFeedback
parameters:
- $ref: '#/components/parameters/UserIdParameter'
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/SendUserFeedbackRequest'
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/GenericApiResponse'
/api/users/{userId}/upgrade:
post:
summary: Send upgrade request
description: Send an upgrade to Enterprise request to Edge Impulse.
tags:
- User
operationId: sendUserUpgradeRequest
parameters:
- $ref: '#/components/parameters/UserIdParameter'
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/EnterpriseUpgradeOrTrialExtensionRequest'
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/GenericApiResponse'
/api/users/{userId}/trials:
get:
summary: Get enterprise trials
description: >-
Get a list of all enterprise trials for a user. This function is only
available through a JWT token.
tags:
- User
operationId: listEnterpriseTrialsUser
parameters:
- $ref: '#/components/parameters/UserIdParameter'
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/ListEnterpriseTrialsResponse'
/api-user-request-reset-password:
post:
summary: Request reset password
security: []
description: Request a password reset link for a user.
tags:
- User
operationId: requestResetPassword
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/RequestResetPasswordRequest'
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/GenericApiResponse'
/api-user-reset-password:
post:
summary: Reset password
security: []
description: Reset the password for a user.
tags:
- User
operationId: resetPassword
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/ResetPasswordRequest'
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/GenericApiResponse'
/api-user-verify-reset-password-code:
post:
summary: Verify reset password code
security: []
description: Verify whether the reset password code for the user is valid.
tags:
- User
operationId: verifyResetPassword
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/VerifyResetPasswordRequest'
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/GenericApiResponse'
/api/third-party-auth:
get:
summary: Get all third party auth
description: Get information about all third party authentication partners
operationId: getAllThirdPartyAuth
x-internal-api: true
security:
- permissions:
- thirdpartyauth:read
tags:
- ThirdPartyAuth
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/GetAllThirdPartyAuthResponse'
post:
summary: Create third party auth
description: Create a new third party authentication partner
operationId: createThirdPartyAuth
x-internal-api: true
security:
- permissions:
- thirdpartyauth:write
tags:
- ThirdPartyAuth
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/CreateThirdPartyAuthRequest'
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/CreateThirdPartyAuthResponse'
/api/third-party-auth/{authId}:
get:
summary: Get third party auth
description: Get information about a third party authentication partner
operationId: getThirdPartyAuth
x-internal-api: true
security:
- permissions:
- thirdpartyauth:read
tags:
- ThirdPartyAuth
parameters:
- $ref: '#/components/parameters/AuthIdParameter'
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/GetThirdPartyAuthResponse'
post:
summary: Update third party auth
description: Update a third party authentication partner
operationId: updateThirdPartyAuth
x-internal-api: true
security:
- permissions:
- thirdpartyauth:write
tags:
- ThirdPartyAuth
parameters:
- $ref: '#/components/parameters/AuthIdParameter'
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/UpdateThirdPartyAuthRequest'
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/GenericApiResponse'
delete:
summary: Delete third party auth
description: Delete a third party authentication partner
operationId: deleteThi
# --- truncated at 32 KB (964 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/edge-impulse/refs/heads/main/openapi/edge-impulse-openapi.yml