Edge Impulse Projects API

The Projects API from Edge Impulse — 46 operation(s) for projects.

OpenAPI Specification

edge-impulse-projects-api-openapi.yml Raw ↑
openapi: 3.0.0
info:
  title: Edge Impulse Projects API
  version: 1.0.0
servers:
- url: https://studio.edgeimpulse.com/v1
security:
- ApiKeyAuthentication: []
- JWTAuthentication: []
- JWTHttpHeaderAuthentication: []
tags:
- name: Projects
paths:
  /api/projects:
    get:
      summary: List active projects
      x-skip-route: true
      description: Retrieve list of active projects. If authenticating using JWT token this lists all the projects the user has access to, if authenticating using an API key, this only lists that project.
      tags:
      - Projects
      operationId: listProjects
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ListProjectsResponse'
  /api/projects/create:
    post:
      summary: Create new project
      description: Create a new project. This API can only be called using a JWT token.
      tags:
      - Projects
      operationId: createProject
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateProjectRequest'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CreateProjectResponse'
  /api/{projectId}/devkeys:
    get:
      summary: Get development keys
      description: Retrieve the development API and HMAC keys for a project. These keys are specifically marked to be used during development. These keys can be `undefined` if no development keys are set.
      tags:
      - Projects
      parameters:
      - $ref: '#/components/parameters/ProjectIdParameter'
      operationId: listDevkeys
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DevelopmentKeysResponse'
  /api/{projectId}/downloads:
    get:
      summary: Get downloads
      description: Retrieve the downloads for a project.
      tags:
      - Projects
      x-middleware:
      - AllowsReadOnly
      parameters:
      - $ref: '#/components/parameters/ProjectIdParameter'
      - $ref: '#/components/parameters/OptionalImpulseIdParameter'
      operationId: listDownloads
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProjectDownloadsResponse'
  /api/{projectId}/csv-wizard/download-config:
    get:
      summary: Download CSV Wizard config
      description: Returns a JSON file with the current CSV wizard config. If there is no config this will throw a 5xx error.
      tags:
      - Projects
      parameters:
      - $ref: '#/components/parameters/ProjectIdParameter'
      operationId: downloadCsvWizardConfig
      responses:
        '200':
          description: OK
          content:
            application/octet-stream:
              schema:
                type: string
                format: binary
  /api/{projectId}/csv-wizard/uploaded-file:
    get:
      summary: Get CSV Wizard uploaded file info
      description: Returns whether the file that was uploaded when the CSV wizard was configured is available.
      tags:
      - Projects
      parameters:
      - $ref: '#/components/parameters/ProjectIdParameter'
      operationId: getCsvWizardUploadedFileInfo
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetCsvWizardUploadedFileInfo'
    post:
      summary: Store CSV Wizard uploaded file
      description: Asynchronously called in the CSV Wizard to store the file that the CSV wizard was based on.
      tags:
      - Projects
      parameters:
      - $ref: '#/components/parameters/ProjectIdParameter'
      operationId: uploadCsvWizardUploadedFile
      requestBody:
        required: true
        content:
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/UploadCsvWizardUploadedFileRequest'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GenericApiResponse'
  /api/{projectId}/csv-wizard/uploaded-file/download:
    get:
      summary: Download CSV Wizard uploaded file
      description: Returns the file that was uploaded when the CSV wizard was configured. If there is no config this will throw a 5xx error.
      tags:
      - Projects
      parameters:
      - $ref: '#/components/parameters/ProjectIdParameter'
      operationId: downloadCsvWizardUploadedFile
      responses:
        '200':
          description: OK
          content:
            application/octet-stream:
              schema:
                type: string
                format: binary
  /api/{projectId}/collaborators/add:
    post:
      summary: Add collaborator
      description: Add a collaborator to a project.
      tags:
      - Projects
      parameters:
      - $ref: '#/components/parameters/ProjectIdParameter'
      operationId: addCollaborator
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AddCollaboratorRequest'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EntityCreatedResponse'
  /api/{projectId}/collaborators/remove:
    post:
      summary: Remove collaborator
      description: Remove a collaborator to a project. Note that you cannot invoke this function if only a single collaborator is present.
      tags:
      - Projects
      parameters:
      - $ref: '#/components/parameters/ProjectIdParameter'
      operationId: removeCollaborator
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/RemoveCollaboratorRequest'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GenericApiResponse'
  /api/{projectId}/collaborators/transfer-ownership:
    post:
      summary: Transfer ownership (user)
      description: Transfer ownership of a project to another user.
      tags:
      - Projects
      parameters:
      - $ref: '#/components/parameters/ProjectIdParameter'
      operationId: transferOwnership
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AddCollaboratorRequest'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GenericApiResponse'
  /api/{projectId}/collaborators/transfer-ownership-org:
    post:
      summary: Transfer ownership (organization)
      description: Transfer ownership of a project to another organization.
      tags:
      - Projects
      parameters:
      - $ref: '#/components/parameters/ProjectIdParameter'
      operationId: transferOwnershipOrganization
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/TransferOwnershipOrganizationRequest'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GenericApiResponse'
  /api/{projectId}/hmackeys:
    get:
      summary: Get HMAC keys
      description: Retrieve all HMAC keys.
      tags:
      - Projects
      parameters:
      - $ref: '#/components/parameters/ProjectIdParameter'
      operationId: listProjectHmacKeys
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ListHmacKeysResponse'
    post:
      summary: Add HMAC key
      description: Add an HMAC key. If you set `developmentKey` to `true` this flag will be removed from the current development HMAC key.
      tags:
      - Projects
      parameters:
      - $ref: '#/components/parameters/ProjectIdParameter'
      operationId: addProjectHmacKey
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AddHmacKeyRequest'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EntityCreatedResponse'
  /api/{projectId}/hmackeys/{hmacId}:
    delete:
      summary: Remove HMAC key
      description: Revoke an HMAC key. Note that if you revoke the development key some services (such as automatic provisioning of devices through the serial daemon) will no longer work.
      tags:
      - Projects
      parameters:
      - $ref: '#/components/parameters/ProjectIdParameter'
      - $ref: '#/components/parameters/HmacIdParameter'
      operationId: revokeProjectHmacKey
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GenericApiResponse'
  /api/{projectId}/apikeys:
    get:
      summary: Get API keys
      description: Retrieve all API keys. This does **not** return the full API key, but only a portion (for security purposes). The development key will be returned in full, as it'll be set in devices and is thus not private.
      tags:
      - Projects
      parameters:
      - $ref: '#/components/parameters/ProjectIdParameter'
      operationId: listProjectApiKeys
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ListApiKeysResponse'
    post:
      summary: Add API key
      description: Add an API key. If you set `developmentKey` to `true` this flag will be removed from the current development API key.
      tags:
      - Projects
      parameters:
      - $ref: '#/components/parameters/ProjectIdParameter'
      operationId: addProjectApiKey
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AddProjectApiKeyRequest'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AddApiKeyResponse'
  /api/{projectId}/apikeys/{apiKeyId}:
    delete:
      summary: Revoke API key
      description: Revoke an API key. Note that if you revoke the development API key some services (such as automatic provisioning of devices through the serial daemon) will no longer work.
      tags:
      - Projects
      x-middleware:
      - ProjectRequiresAdmin
      parameters:
      - $ref: '#/components/parameters/ProjectIdParameter'
      - $ref: '#/components/parameters/ApiKeyIdParameter'
      operationId: revokeProjectApiKey
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GenericApiResponse'
  /api/{projectId}/emails:
    get:
      summary: List emails
      description: Get a list of all emails sent by Edge Impulse regarding this project.
      tags:
      - Projects
      parameters:
      - $ref: '#/components/parameters/ProjectIdParameter'
      operationId: listEmails
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ListEmailResponse'
  /api/{projectId}/socket-token:
    get:
      summary: Get socket token
      description: Get a token to authenticate with the web socket interface.
      tags:
      - Projects
      parameters:
      - $ref: '#/components/parameters/ProjectIdParameter'
      operationId: getSocketToken
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SocketTokenResponse'
  /api/{projectId}/data-axes:
    get:
      summary: Get data axes summary
      description: Get a list of axes that are present in the training data.
      tags:
      - Projects
      parameters:
      - $ref: '#/components/parameters/ProjectIdParameter'
      - $ref: '#/components/parameters/IncludeDisabledParameter'
      - $ref: '#/components/parameters/IncludeNotProcessedParameter'
      operationId: getProjectDataAxesSummary
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProjectDataAxesSummaryResponse'
  /api/{projectId}/data-summary:
    get:
      summary: Get data summary
      description: Get summary of all data present in the training set. This returns the number of data items, the total length of all data, and the labels. This is similar to `dataSummary` in `ProjectInfoResponse` but allows you to exclude disabled items or items that are still processing.
      tags:
      - Projects
      parameters:
      - $ref: '#/components/parameters/ProjectIdParameter'
      - $ref: '#/components/parameters/IncludeDisabledParameter'
      - $ref: '#/components/parameters/IncludeNotProcessedParameter'
      operationId: getProjectTrainingDataSummary
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProjectTrainingDataSummaryResponse'
  /api/{projectId}/data-interval:
    get:
      summary: Get the interval (in ms) of the training data
      description: Get the interval of the training data; if multiple intervals are present, the interval of the longest data item is returned.
      tags:
      - Projects
      parameters:
      - $ref: '#/components/parameters/ProjectIdParameter'
      operationId: getProjectRecommendedDataInterval
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProjectDataIntervalResponse'
  /api/{projectId}/compute-time-limit:
    post:
      summary: Set compute time limit
      description: Change the job compute time limit for the project. This function is only available through a JWT token, and is not available to all users.
      security:
      - permissions:
        - projects:limits:write
      tags:
      - Projects
      parameters:
      - $ref: '#/components/parameters/ProjectIdParameter'
      operationId: setProjectComputeTimeLimit
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SetProjectComputeTimeRequest'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GenericApiResponse'
  /api/{projectId}/dsp-file-size-limit:
    post:
      summary: Set DSP file size limit
      description: Change the DSP file size limit for the project. This function is only available through a JWT token, and is not available to all users.
      security:
      - permissions:
        - projects:limits:write
      tags:
      - Projects
      parameters:
      - $ref: '#/components/parameters/ProjectIdParameter'
      operationId: setProjectFileSizeLimit
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SetProjectDspFileSizeRequest'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GenericApiResponse'
  /api/{projectId}/versions:
    get:
      summary: List versions
      description: Get all versions for this project.
      tags:
      - Projects
      parameters:
      - $ref: '#/components/parameters/ProjectIdParameter'
      operationId: listVersions
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ListVersionsResponse'
  /api/{projectId}/versions/public:
    get:
      summary: List public versions
      description: Get all public versions for this project. You don't need any authentication for this function.
      security: []
      tags:
      - Projects
      parameters:
      - $ref: '#/components/parameters/ProjectIdParameter'
      operationId: listPublicVersions
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ListPublicVersionsResponse'
  /api/{projectId}/versions/{versionId}:
    post:
      summary: Update version
      description: Updates a version, this only updates fields that were set in the body.
      tags:
      - Projects
      parameters:
      - $ref: '#/components/parameters/ProjectIdParameter'
      - $ref: '#/components/parameters/VersionIdParameter'
      operationId: updateVersion
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdateVersionRequest'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GenericApiResponse'
    delete:
      summary: Delete versions
      description: Delete a version. This does not delete the version from cold storage.
      tags:
      - Projects
      parameters:
      - $ref: '#/components/parameters/ProjectIdParameter'
      - $ref: '#/components/parameters/VersionIdParameter'
      operationId: deleteVersion
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GenericApiResponse'
  /api/{projectId}/versions/{versionId}/make-private:
    post:
      summary: Make version private
      description: Make a public version private.
      tags:
      - Projects
      parameters:
      - $ref: '#/components/parameters/ProjectIdParameter'
      - $ref: '#/components/parameters/VersionIdParameter'
      operationId: makeVersionPrivate
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GenericApiResponse'
  /api/{projectId}/readme/upload-image:
    post:
      summary: Upload image for readme
      description: Uploads an image to the user CDN and returns the path.
      tags:
      - Projects
      parameters:
      - $ref: '#/components/parameters/ProjectIdParameter'
      operationId: uploadReadmeImage
      requestBody:
        required: true
        content:
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/UploadImageRequest'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UploadReadmeImageResponse'
  /api/{projectId}/launch-getting-started:
    post:
      summary: Launch getting started wizard
      description: This clears out *all data in your project*, and is irrevocable. This function is only available through a JWT token, and is not available to all users.
      tags:
      - Projects
      parameters:
      - $ref: '#/components/parameters/ProjectIdParameter'
      operationId: launchGettingStartedWizard
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GenericApiResponse'
  /api/{projectId}/last-modification:
    get:
      summary: Last modification
      description: Get the last modification date for a project (will be upped when data is modified, or when an impulse is trained)
      tags:
      - Projects
      parameters:
      - $ref: '#/components/parameters/ProjectIdParameter'
      operationId: getProjectLastModificationDate
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/LastModificationDateResponse'
  /api/{projectId}/development-boards:
    get:
      summary: Development boards
      description: List all development boards for a project
      operationId: listDevelopmentBoards
      tags:
      - Projects
      parameters:
      - $ref: '#/components/parameters/ProjectIdParameter'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DevelopmentBoardsResponse'
  /api/{projectId}/target-constraints:
    get:
      summary: Get target constraints
      description: Retrieve target constraints for a project. The constraints object captures hardware attributes of your target device, along with an application budget to allow guidance on performance and resource usage
      operationId: getTargetConstraints
      tags:
      - Projects
      parameters:
      - $ref: '#/components/parameters/ProjectIdParameter'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetTargetConstraintsResponse'
    post:
      summary: Set target constraints
      description: Set target constraints for a project. Use the constraints object to capture hardware attributes of your target device, along with an application budget to allow guidance on performance and resource usage
      operationId: setTargetConstraints
      tags:
      - Projects
      parameters:
      - $ref: '#/components/parameters/ProjectIdParameter'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/TargetConstraints'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GenericApiResponse'
  /api/{projectId}/model-variants:
    get:
      summary: Get a list of all model variants available for this project
      description: Get a list of model variants applicable to all trained learn blocks in this project.
      operationId: getModelVariants
      tags:
      - Projects
      parameters:
      - $ref: '#/components/parameters/ProjectIdParameter'
      - $ref: '#/components/parameters/OptionalImpulseIdParameter'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetModelVariantsResponse'
  /api/{projectId}/dismiss-notification:
    post:
      summary: Dismiss a notification
      description: Dismiss a notification
      operationId: projectDismissNotification
      tags:
      - Projects
      parameters:
      - $ref: '#/components/parameters/ProjectIdParameter'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ProjectDismissNotificationRequest'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GenericApiResponse'
  /api/{projectId}/synthetic-data:
    get:
      summary: Get synthetic data config
      description: Get the last used synthetic data config
      operationId: getSyntheticDataConfig
      tags:
      - Projects
      parameters:
      - $ref: '#/components/parameters/ProjectIdParameter'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetSyntheticDataConfigResponse'
  /api/{projectId}/ai-actions:
    get:
      summary: List AI Actions
      description: Get all AI actions.
      operationId: listAIActions
      tags:
      - Projects
      parameters:
      - $ref: '#/components/parameters/ProjectIdParameter'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ListAIActionsResponse'
  /api/{projectId}/ai-actions/order:
    post:
      summary: Set AI Actions order
      description: Change the order of AI actions. Post the new order of all AI Actions by ID. You need to specify _all_ AI Actions here. If not, an error will be thrown.
      operationId: setAIActionsOrder
      tags:
      - Projects
      parameters:
      - $ref: '#/components/parameters/ProjectIdParameter'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SetAIActionsOrderRequest'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GenericApiResponse'
  /api/{projectId}/ai-actions/create:
    post:
      summary: Create AI Action
      description: Create a new AI Action.
      operationId: createAIAction
      tags:
      - Projects
      parameters:
      - $ref: '#/components/parameters/ProjectIdParameter'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EntityCreatedResponse'
  /api/{projectId}/ai-actions/new:
    get:
      summary: Get new AI Actions config
      description: Get the AI Actions config for a new action
      operationId: getNewAIAction
      tags:
      - Projects
      parameters:
      - $ref: '#/components/parameters/ProjectIdParameter'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetAIActionResponse'
  /api/{projectId}/ai-actions/{actionId}:
    get:
      summary: Get AI Actions config
      description: Get an AI Actions config
      operationId: getAIAction
      tags:
      - Projects
      parameters:
      - $ref: '#/components/parameters/ProjectIdParameter'
      - $ref: '#/components/parameters/ActionIdParameter'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetAIActionResponse'
    post:
      summary: Save AI Actions config
      description: Store an AI Actions config. Use `createAIActionsJob` to run the job. Post the full AI Action here w/ all parameters.
      operationId: updateAIAction
      tags:
      - Projects
      parameters:
      - $ref: '#/components/parameters/ProjectIdParameter'
      - $ref: '#/components/parameters/ActionIdParameter'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdateAIActionRequest'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GenericApiResponse'
    delete:
      summary: Delete AI Actions config
      description: Deletes an AI Actions.
      operationId: deleteAIAction
      tags:
      - Projects
      parameters:
      - $ref: '#/components/parameters/ProjectIdParameter'
      - $ref: '#/components/parameters/ActionIdParameter'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GenericApiResponse'
  /api/{projectId}/ai-actions/{actionId}/preview-samples:
    post:
      summary: Preview samples for AI Actions
      description: Get a number of random samples to show in the AI Actions screen. If `saveConfig` is passed in, then a valid actionId is required in the URL. If you don't need to save the config (e.g. when creating a new action), you can use -1.
      operationId: previewAIActionsSamples
      tags:
      - Projects
      parameters:
      - $ref: '#/components/parameters/ProjectIdParameter'
      - $ref: '#/components/parameters/ActionIdParameter'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PreviewAIActionsSamplesRequest'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ListSamplesResponse'
  /api/{projectId}/ai-actions/{actionId}/clear-proposed-changes:
    get:
      summary: Clear AI Actions proposed changes
      description: Remove all proposed changes for an AI Actions job.
      operationId: clearAIActionsProposedChanges
      tags:
      - Projects
      parameters:
      - $ref: '#/components/parameters/ProjectIdParameter'
      - $ref: '#/components/parameters/ActionIdParameter'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GenericApiResponse'
  /api/{projectId}/tags:
    post:
      summary: Update tags
      description: Update the list of project tags.
      tags:
      - Projects
      parameters:
      - $ref: '#/components/parameters/ProjectIdParameter'
      operationId: updateProjectTags
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdateProjectTagsRequest'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GenericApiResponse'
  /api/projects/public:
    get:
      summary: List public projects
      description: Retrieve the list of all public projects. You don't need any authentication for this method.
      security: []
      tags:
      - Projects
      parameters:
      - $ref: '#/components/parameters/LimitResultsParameter'
      - $ref: '#/components/parameters/OffsetResultsParameter'
      - $ref: '#/components/parameters/FiltersProjectNameParameter'
      - $ref: '#/components/parameters/FiltersProjectTypesParameter'
      - $ref: '#/components/parameters/SortQueryParameter'
      operationId: listPublicProjects
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ListPublicProjectsResponse'
  /api/projects/types:
    get:
      summary: List public project types
      description: Retrieve the list of available public project types. You don't need any authentication for this method.
      security: []
      tags:
      - Projects
      operationId: listPublicProjectTypes
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ListPublicProjectTypesResponse'
  /api/{projectId}:
    get:
      summary: Project information
      description: List all information about this project.
      tags:
      - Projects
      parameters:
      - $ref: '#/components/parameters/ProjectIdParameter'
      - $ref: '#/components/parameters/OptionalImpulseIdParameter'
      operationId: getProjectInfo
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProjectInfoResponse'
    post:
      summary: Update project
      description: Update project properties such as name a

# --- truncated at 32 KB (108 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/edge-impulse/refs/heads/main/openapi/edge-impulse-projects-api-openapi.yml