Edge Impulse Authentication
Authentication profile for the Edge Impulse API surface. Three key-based schemes are declared in the specs harvested into this repo; the currently published spec adds a fourth, an OAuth2 scheme with four flows. Which scheme you need is operation-dependent and stated in each operation description: project-scoped reads and writes take x-api-key, while user-scoped and organization-scoped operations say "only available through a JWT token".
Edge Impulse secures its APIs with apiKey across 4 declared security schemes, as derived from its OpenAPI definitions.
Security Schemes
Source
Authentication Profile
generated: '2026-09-06'
method: searched
source: openapi/edge-impulse-admin-api-openapi.yml, openapi/edge-impulse-auth-api-openapi.yml, openapi/edge-impulse-canary-api-openapi.yml,
openapi/edge-impulse-cdn-api-openapi.yml, openapi/edge-impulse-classify-api-openapi.yml, openapi/edge-impulse-deployment-api-openapi.yml,
openapi/edge-impulse-devices-api-openapi.yml, openapi/edge-impulse-dsp-api-openapi.yml, openapi/edge-impulse-emailverification-api-openapi.yml,
openapi/edge-impulse-export-api-openapi.yml, openapi/edge-impulse-featureflags-api-openapi.yml, openapi/edge-impulse-health-api-openapi.yml
... + https://docs.edgeimpulse.com/apis/studio#api-authentication-types + https://studio.edgeimpulse.com/openapi.yml
summary:
types:
- apiKey
api_key_in:
- cookie
- header
schemes:
- name: ApiKeyAuthentication
type: apiKey
in: header
parameter: x-api-key
sources:
- openapi/edge-impulse-admin-api-openapi.yml
- openapi/edge-impulse-auth-api-openapi.yml
- openapi/edge-impulse-canary-api-openapi.yml
- openapi/edge-impulse-cdn-api-openapi.yml
- openapi/edge-impulse-classify-api-openapi.yml
- openapi/edge-impulse-deployment-api-openapi.yml
- openapi/edge-impulse-devices-api-openapi.yml
- openapi/edge-impulse-dsp-api-openapi.yml
- openapi/edge-impulse-emailverification-api-openapi.yml
- openapi/edge-impulse-export-api-openapi.yml
- openapi/edge-impulse-featureflags-api-openapi.yml
- openapi/edge-impulse-health-api-openapi.yml
- openapi/edge-impulse-impulse-api-openapi.yml
- openapi/edge-impulse-jobs-api-openapi.yml
- openapi/edge-impulse-learn-api-openapi.yml
- openapi/edge-impulse-login-api-openapi.yml
- openapi/edge-impulse-metrics-api-openapi.yml
- openapi/edge-impulse-optimization-api-openapi.yml
- openapi/edge-impulse-organizationblocks-api-openapi.yml
- openapi/edge-impulse-organizationcreateproject-api-openapi.yml
- openapi/edge-impulse-organizationdata-api-openapi.yml
- openapi/edge-impulse-organizationdatacampaigns-api-openapi.yml
- openapi/edge-impulse-organizationjobs-api-openapi.yml
- openapi/edge-impulse-organizationpipelines-api-openapi.yml
- openapi/edge-impulse-organizationportals-api-openapi.yml
- openapi/edge-impulse-organizations-api-openapi.yml
- openapi/edge-impulse-performancecalibration-api-openapi.yml
- openapi/edge-impulse-projects-api-openapi.yml
- openapi/edge-impulse-raw-data-api-openapi.yml
- openapi/edge-impulse-themes-api-openapi.yml
- openapi/edge-impulse-thirdpartyauth-api-openapi.yml
- openapi/edge-impulse-uploadportal-api-openapi.yml
- openapi/edge-impulse-user-api-openapi.yml
- openapi/edge-impulse-whitelabels-api-openapi.yml
- name: JWTAuthentication
type: apiKey
in: cookie
parameter: jwt
sources:
- openapi/edge-impulse-admin-api-openapi.yml
- openapi/edge-impulse-auth-api-openapi.yml
- openapi/edge-impulse-canary-api-openapi.yml
- openapi/edge-impulse-cdn-api-openapi.yml
- openapi/edge-impulse-classify-api-openapi.yml
- openapi/edge-impulse-deployment-api-openapi.yml
- openapi/edge-impulse-devices-api-openapi.yml
- openapi/edge-impulse-dsp-api-openapi.yml
- openapi/edge-impulse-emailverification-api-openapi.yml
- openapi/edge-impulse-export-api-openapi.yml
- openapi/edge-impulse-featureflags-api-openapi.yml
- openapi/edge-impulse-health-api-openapi.yml
- openapi/edge-impulse-impulse-api-openapi.yml
- openapi/edge-impulse-jobs-api-openapi.yml
- openapi/edge-impulse-learn-api-openapi.yml
- openapi/edge-impulse-login-api-openapi.yml
- openapi/edge-impulse-metrics-api-openapi.yml
- openapi/edge-impulse-optimization-api-openapi.yml
- openapi/edge-impulse-organizationblocks-api-openapi.yml
- openapi/edge-impulse-organizationcreateproject-api-openapi.yml
- openapi/edge-impulse-organizationdata-api-openapi.yml
- openapi/edge-impulse-organizationdatacampaigns-api-openapi.yml
- openapi/edge-impulse-organizationjobs-api-openapi.yml
- openapi/edge-impulse-organizationpipelines-api-openapi.yml
- openapi/edge-impulse-organizationportals-api-openapi.yml
- openapi/edge-impulse-organizations-api-openapi.yml
- openapi/edge-impulse-performancecalibration-api-openapi.yml
- openapi/edge-impulse-projects-api-openapi.yml
- openapi/edge-impulse-raw-data-api-openapi.yml
- openapi/edge-impulse-themes-api-openapi.yml
- openapi/edge-impulse-thirdpartyauth-api-openapi.yml
- openapi/edge-impulse-uploadportal-api-openapi.yml
- openapi/edge-impulse-user-api-openapi.yml
- openapi/edge-impulse-whitelabels-api-openapi.yml
- name: JWTHttpHeaderAuthentication
type: apiKey
in: header
parameter: x-jwt-token
sources:
- openapi/edge-impulse-admin-api-openapi.yml
- openapi/edge-impulse-auth-api-openapi.yml
- openapi/edge-impulse-canary-api-openapi.yml
- openapi/edge-impulse-cdn-api-openapi.yml
- openapi/edge-impulse-classify-api-openapi.yml
- openapi/edge-impulse-deployment-api-openapi.yml
- openapi/edge-impulse-devices-api-openapi.yml
- openapi/edge-impulse-dsp-api-openapi.yml
- openapi/edge-impulse-emailverification-api-openapi.yml
- openapi/edge-impulse-export-api-openapi.yml
- openapi/edge-impulse-featureflags-api-openapi.yml
- openapi/edge-impulse-health-api-openapi.yml
- openapi/edge-impulse-impulse-api-openapi.yml
- openapi/edge-impulse-jobs-api-openapi.yml
- openapi/edge-impulse-learn-api-openapi.yml
- openapi/edge-impulse-login-api-openapi.yml
- openapi/edge-impulse-metrics-api-openapi.yml
- openapi/edge-impulse-optimization-api-openapi.yml
- openapi/edge-impulse-organizationblocks-api-openapi.yml
- openapi/edge-impulse-organizationcreateproject-api-openapi.yml
- openapi/edge-impulse-organizationdata-api-openapi.yml
- openapi/edge-impulse-organizationdatacampaigns-api-openapi.yml
- openapi/edge-impulse-organizationjobs-api-openapi.yml
- openapi/edge-impulse-organizationpipelines-api-openapi.yml
- openapi/edge-impulse-organizationportals-api-openapi.yml
- openapi/edge-impulse-organizations-api-openapi.yml
- openapi/edge-impulse-performancecalibration-api-openapi.yml
- openapi/edge-impulse-projects-api-openapi.yml
- openapi/edge-impulse-raw-data-api-openapi.yml
- openapi/edge-impulse-themes-api-openapi.yml
- openapi/edge-impulse-thirdpartyauth-api-openapi.yml
- openapi/edge-impulse-uploadportal-api-openapi.yml
- openapi/edge-impulse-user-api-openapi.yml
- openapi/edge-impulse-whitelabels-api-openapi.yml
- name: OAuth2
type: oauth2
flows:
authorizationCode:
authorizationUrl: /v1/oauth/authorize
tokenUrl: /v1/oauth/token
scopes:
- openid
- email
- profile
implicit:
authorizationUrl: /v1/oauth/authorize
scopes:
- openid
- email
- profile
password:
tokenUrl: /v1/oauth/token
scopes:
- openid
- email
- profile
clientCredentials:
tokenUrl: /v1/oauth/token
scopes:
- openid
- email
- profile
sources:
- https://studio.edgeimpulse.com/openapi.yml
note: Present in the live published spec but NOT in the openapi/ files harvested into this repo, which
predate it. The scopes are OIDC identity scopes only — there is no resource-permission scope. See
scopes/edge-impulse-scopes.yml.
docs: https://docs.edgeimpulse.com/apis/studio#api-authentication-types
description: 'Authentication profile for the Edge Impulse API surface. Three key-based schemes are declared
in the specs harvested into this repo; the currently published spec adds a fourth, an OAuth2 scheme
with four flows. Which scheme you need is operation-dependent and stated in each operation description:
project-scoped reads and writes take x-api-key, while user-scoped and organization-scoped operations
say "only available through a JWT token".'
api_key_format:
prefix: ei_
issued_from: Studio project Dashboard > Keys
scope: one project
docs: https://docs.edgeimpulse.com/apis/studio#api-key
ingestion_only_keys: The live spec adds ingestion-only project API keys (POST /api/{projectId}/apikeys/ingestiononly),
a narrower credential for data upload.
jwt:
obtained_by: POST /api-login (operationId login) with username and password
header: x-jwt-token
cookie: jwt
mfa: TOTP MFA endpoints exist (userGenerateNewTotpMfaKey, userSetTotpMfaKey, userDeleteTotpMfaKey).
docs: https://docs.edgeimpulse.com/apis/studio#jwt-token
other_credentials:
- name: HMAC key
note: Per-project HMAC keys sign ingestion payloads (addProjectHmacKey / revokeProjectHmacKey). The
ingestion acquisition format carries a protected/signature block.
- name: Remote management API key
note: Devices send their project apiKey inside the WebSocket Hello message rather than as an HTTP header.
- name: MCP server credentials
note: '@edgeimpulse/mcp-server reads EI_API_KEY or EI_JWT_TOKEN from the environment. A JWT there grants
the agent every project and organization the user can see; a project key does not.'
sso:
enterprise_only: true
note: 'SSO and role-based access control are Enterprise-plan features (source: https://www.edgeimpulse.com/pricing).
The status page lists a Keycloak component and the live spec exposes /api-sso/{usernameOrEmail}.'
maintainers:
- FN: Kin Lane
email: kin@apievangelist.com
Work with this as data
Every security artifact 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 security posture
4 MCP tools reach this
find_securityBrowse and filter every security artifact in the catalog.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.
Call it yourself
curl for this page
curl "https://apis.io/api/v1/security/edge-impulse-authentication"
curl "https://apis.io/api/v1/security?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.