Losant Edge And Embedded Compute API

Manage Losant Edge Compute deployments to Linux gateways (Gateway Edge Agent) and Embedded Edge Agent (EEA) deployments to microcontrollers. Distribute workflow versions to fleets, track deployment state, and roll back releases.

Losant Edge And Embedded Compute API is one of 9 APIs that Losant publishes on the APIs.io network, described by a machine-readable OpenAPI specification.

This API exposes 1 machine-runnable capability that can be deployed as REST, MCP, or Agent Skill surfaces via Naftiko.

Tagged areas include Edge Compute, Embedded, EEA, Deployments, and Gateways. The published artifact set on APIs.io includes API documentation, an OpenAPI specification, and 1 Naftiko capability spec.

OpenAPI Specification

losant-edge-api-openapi.yml Raw ↑
openapi: 3.0.3
info:
  title: Losant Edge and Embedded Compute API
  version: 1.29.4
  description: Manage Edge Compute deployments to Linux gateways and Embedded Edge Agent (EEA) deployments to microcontrollers,
    including release management and edge workflow distribution. Derived from the Losant Platform API (Bravado/Swagger 2)
    at https://api.losant.com/.
  contact:
    name: Losant Support
    url: https://www.losant.com/contact
    email: [email protected]
  license:
    name: Proprietary
    url: https://www.losant.com/legal
  x-source: https://api.losant.com/
  x-publisher: Losant IoT, Inc.
servers:
- url: https://api.losant.com
  description: Losant Platform API (US multi-tenant cloud)
tags:
- name: Edge and Embedded Compute
  description: Edge and Embedded Compute resources on the Losant Platform.
security:
- BearerAuth: []
paths:
  /applications/{applicationId}/edge/deployments/{edgeDeploymentId}:
    get:
      summary: Retrieves Information on an Edge Deployment
      tags:
      - Edge and Embedded Compute
      parameters:
      - name: applicationId
        in: path
        description: ID associated with the application
        required: true
        example: 575ec8687ae143cd83dc4a97
        schema:
          type: string
          pattern: ^[A-Fa-f\d]{24}$
      - name: edgeDeploymentId
        in: path
        description: ID associated with the edge deployment
        required: true
        example: 575ed78e7ae143cd83dc4aab
        schema:
          type: string
          pattern: ^[A-Fa-f\d]{24}$
      responses:
        '200':
          description: Edge deployment information
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/edgeDeployment'
        '400':
          description: Error if malformed request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/error'
        '404':
          description: Error if edge deployment was not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/error'
      security:
      - BearerAuth: []
  /applications/{applicationId}/edge/deployments:
    get:
      summary: Returns the Edge Deployments for an Application
      tags:
      - Edge and Embedded Compute
      parameters:
      - &id001
        name: applicationId
        in: path
        description: ID associated with the application
        required: true
        example: 575ec8687ae143cd83dc4a97
        schema:
          type: string
          pattern: ^[A-Fa-f\d]{24}$
      - name: sortField
        in: query
        description: Field to sort the results by
        required: false
        example: creationDate
        schema:
          type: string
          enum:
          - id
          - deviceId
          - flowId
          - desiredVersion
          - currentVersion
          - creationDate
          - lastUpdated
          default: lastUpdated
      - name: sortDirection
        in: query
        description: Direction to sort the results by
        required: false
        example: asc
        schema:
          type: string
          enum:
          - asc
          - desc
          default: asc
      - name: page
        in: query
        description: Which page of results to return
        required: false
        example: 0
        schema:
          type: string
          default: 0
      - name: perPage
        in: query
        description: How many items to return per page
        required: false
        example: 10
        schema:
          type: string
          default: 100
      - name: deviceId
        in: query
        description: Filter deployments to the given Device ID
        required: false
        example: 575ecf887ae143cd83dc4aa2
        schema:
          type: string
          pattern: ^[A-Fa-f\d]{24}$
      - name: version
        in: query
        description: Filter deployments to the given Workflow Version (matches against both current and desired)
        required: false
        example: myFlowVersion
        schema:
          type: string
      - name: filterEmpty
        in: query
        description: Filter out deployments where both the current and desired version are null.
        required: false
        example: true
      - name: flowId
        in: query
        description: Filter deployments to the given Workflow ID
        required: false
        example: 575ed18f7ae143cd83dc4aa6
        schema:
          type: string
          pattern: ^[A-Fa-f\d]{24}$
      responses:
        '200':
          description: Collection of edge deployments
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/edgeDeployments'
        '400':
          description: Error if malformed request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/error'
        '404':
          description: Error if application was not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/error'
      security:
      - BearerAuth: []
    post:
      summary: Replace Deployments of an Edge Workflow Version with a New Version. New Version Can Be Blank, if Removal Is
        Desired.
      tags:
      - Edge and Embedded Compute
      parameters:
      - *id001
      requestBody:
        description: Deployment replacement information
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/edgeDeploymentReplace'
      responses:
        '201':
          description: If deployment replacement has been initiated successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/success'
        '400':
          description: Error if malformed request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/error'
        '404':
          description: Error if application was not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/error'
      security:
      - BearerAuth: []
  /applications/{applicationId}/embedded/deployments/{embeddedDeploymentId}:
    get:
      summary: Retrieves Information on an Embedded Deployment
      tags:
      - Edge and Embedded Compute
      parameters:
      - name: applicationId
        in: path
        description: ID associated with the application
        required: true
        example: 575ec8687ae143cd83dc4a97
        schema:
          type: string
          pattern: ^[A-Fa-f\d]{24}$
      - name: embeddedDeploymentId
        in: path
        description: ID associated with the embedded deployment
        required: true
        example: 575ed78e7ae143cd83dc4aab
        schema:
          type: string
          pattern: ^[A-Fa-f\d]{24}$
      responses:
        '200':
          description: Embedded deployment information
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/embeddedDeployment'
        '400':
          description: Error if malformed request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/error'
        '404':
          description: Error if embedded deployment was not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/error'
      security:
      - BearerAuth: []
  /applications/{applicationId}/embedded/deployments:
    get:
      summary: Returns the Embedded Deployments for an Application
      tags:
      - Edge and Embedded Compute
      parameters:
      - &id002
        name: applicationId
        in: path
        description: ID associated with the application
        required: true
        example: 575ec8687ae143cd83dc4a97
        schema:
          type: string
          pattern: ^[A-Fa-f\d]{24}$
      - name: sortField
        in: query
        description: Field to sort the results by
        required: false
        example: creationDate
        schema:
          type: string
          enum:
          - id
          - creationDate
          - lastUpdated
          default: lastUpdated
      - name: sortDirection
        in: query
        description: Direction to sort the results by
        required: false
        example: asc
        schema:
          type: string
          enum:
          - asc
          - desc
          default: desc
      - name: page
        in: query
        description: Which page of results to return
        required: false
        example: 0
        schema:
          type: string
          default: 0
      - name: perPage
        in: query
        description: How many items to return per page
        required: false
        example: 10
        schema:
          type: string
          default: 1000
      - name: deviceId
        in: query
        description: Filter deployments to the given Device ID
        required: false
        example: 575ecf887ae143cd83dc4aa2
        schema:
          type: string
          pattern: ^[A-Fa-f\d]{24}$
      - name: version
        in: query
        description: Filter deployments to the given Workflow Version (matches against both current and desired)
        required: false
        example: myFlowVersion
        schema:
          type: string
      - name: flowId
        in: query
        description: Filter deployments to the given Workflow ID
        required: false
        example: 575ed18f7ae143cd83dc4aa6
        schema:
          type: string
          pattern: ^[A-Fa-f\d]{24}$
      responses:
        '200':
          description: Collection of embedded deployments
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/embeddedDeployments'
        '400':
          description: Error if malformed request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/error'
        '404':
          description: Error if application or device was not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/error'
      security:
      - BearerAuth: []
    post:
      summary: Request an Export of the Compiled WASM Files for a Current Deployment
      tags:
      - Edge and Embedded Compute
      parameters:
      - *id002
      requestBody:
        description: Export options for embedded deployment
        required: false
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/embeddedDeploymentExport'
      responses:
        '202':
          description: If generation of export was successfully started
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/jobEnqueuedResult'
        '400':
          description: Error if malformed request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/error'
        '404':
          description: Error if deployment was not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/error'
      security:
      - BearerAuth: []
components:
  securitySchemes:
    BearerAuth:
      type: http
      scheme: bearer
      bearerFormat: JWT
      description: Losant uses JSON Web Tokens (JWTs) for authentication. Obtain a token via POST /auth/user, POST /auth/device,
        POST /applications/{applicationId}/tokens, or POST /me/tokens and pass it in the Authorization header as `Bearer <token>`.
  schemas:
    edgeDeployment:
      title: Edge Deployment
      description: Schema for a single deployment of an edge workflow to an edge device
      type: object
      properties:
        id:
          $ref: '#/components/schemas/common/objectId'
        edgeDeploymentId:
          $ref: '#/components/schemas/common/objectId'
        applicationId:
          $ref: '#/components/schemas/common/objectId'
        deviceId:
          $ref: '#/components/schemas/common/objectId'
        deviceName:
          $ref: '#/components/schemas/common/name'
        deviceConnectionInfo:
          type: object
          properties:
            time:
              $ref: '#/components/schemas/common/date'
            connected:
              enum:
              - 1
              - 0
              - null
        flowId:
          $ref: '#/components/schemas/common/objectId'
        flowName:
          $ref: '#/components/schemas/common/name'
        flowClass:
          type: string
          enum:
          - edge
          - customNode
        fileName:
          $ref: '#/components/schemas/common/safeFileName'
        creationDate:
          $ref: '#/components/schemas/common/date'
        lastUpdated:
          $ref: '#/components/schemas/common/date'
        currentVersion:
          $ref: '#/components/schemas/common/nullableName'
        desiredVersion:
          $ref: '#/components/schemas/common/nullableName'
        currentEtag:
          $ref: '#/components/schemas/common/name'
        desiredEtag:
          $ref: '#/components/schemas/common/name'
        logs:
          type: array
          items:
            type: object
            properties:
              sourceType:
                $ref: '#/components/schemas/common/sourceType'
              sourceId:
                $ref: '#/components/schemas/common/objectId'
              date:
                $ref: '#/components/schemas/common/date'
              changeType:
                type: string
                enum:
                - current
                - desired
              newValue:
                $ref: '#/components/schemas/common/nullableName'
              previousValue:
                $ref: '#/components/schemas/common/nullableName'
              attemptedValue:
                $ref: '#/components/schemas/common/nullableName'
              newEtag:
                $ref: '#/components/schemas/common/name'
              previousEtag:
                $ref: '#/components/schemas/common/name'
              attemptedEtag:
                $ref: '#/components/schemas/common/name'
              error:
                type: string
    edgeDeploymentRelease:
      title: Edge Deployment Release
      description: Schema for deploying an edge workflow to one or more edge devices
      type: object
      properties:
        flowId:
          $ref: '#/components/schemas/common/objectId'
        version:
          $ref: '#/components/schemas/common/nullableName'
        deviceIds:
          $ref: '#/components/schemas/common/objectIds'
        deviceTags:
          $ref: '#/components/schemas/common/tagsOptional'
      additionalProperties: false
      required:
      - flowId
      - version
    edgeDeploymentRemove:
      title: Edge Deployment Remove
      description: Schema for removing edge deployments. Can remove a specific workflow from a specific device, can remove
        all workflows from a specific device, or can remove a specific workflow from all devices.
      type: object
      properties:
        flowId:
          $ref: '#/components/schemas/common/nullableObjectId'
        deviceId:
          $ref: '#/components/schemas/common/nullableObjectId'
      additionalProperties: false
      required:
      - flowId
      - deviceId
    edgeDeploymentReplace:
      title: Edge Deployment Replace
      description: Schema for replacing a deployment of a workflow version with a different workflow version
      type: object
      properties:
        flowId:
          $ref: '#/components/schemas/common/objectId'
        oldVersion:
          $ref: '#/components/schemas/common/name'
        newVersion:
          $ref: '#/components/schemas/common/nullableName'
      additionalProperties: false
      required:
      - flowId
      - oldVersion
      - newVersion
    edgeDeployments:
      title: Edge Deployments
      description: Schema for a collection of Edge Deployments
      type: object
      properties:
        items:
          type: array
          items:
            $ref: '#/components/schemas/edgeDeployment'
        count:
          type: integer
        totalCount:
          type: integer
        applicationId:
          $ref: '#/components/schemas/common/objectId'
        deviceId:
          $ref: '#/components/schemas/common/objectId'
        flowId:
          $ref: '#/components/schemas/common/objectId'
        version:
          $ref: '#/components/schemas/common/name'
    embeddedDeployment:
      title: Embedded Deployment
      description: Schema for a single deployment of embedded workflows to embedded devices
      type: object
      properties:
        id:
          $ref: '#/components/schemas/common/objectId'
        embeddedDeploymentId:
          $ref: '#/components/schemas/common/objectId'
        applicationId:
          $ref: '#/components/schemas/common/objectId'
        creationDate:
          $ref: '#/components/schemas/common/date'
        lastUpdated:
          $ref: '#/components/schemas/common/date'
        deviceId:
          $ref: '#/components/schemas/common/objectId'
        deviceName:
          $ref: '#/components/schemas/common/name'
        deviceConnectionInfo:
          type: object
          properties:
            time:
              $ref: '#/components/schemas/common/date'
            connected:
              enum:
              - 1
              - 0
              - null
        flows:
          type: object
          patternProperties:
            ^[A-Fa-f\d]{24}$:
              type: object
              properties:
                flowName:
                  $ref: '#/components/schemas/common/name'
                currentVersion:
                  $ref: '#/components/schemas/common/nullableName'
                desiredVersion:
                  $ref: '#/components/schemas/common/nullableName'
          additionalProperties: false
        currentBundleVersion:
          $ref: '#/components/schemas/common/nullableName'
        desiredBundleVersion:
          $ref: '#/components/schemas/common/nullableName'
        unknownBundle:
          type: boolean
        logs:
          type: array
          items:
            type: object
            properties:
              sourceType:
                $ref: '#/components/schemas/common/sourceType'
              sourceId:
                $ref: '#/components/schemas/common/objectId'
              date:
                $ref: '#/components/schemas/common/date'
              changeType:
                type: string
                enum:
                - current
                - desired
              updateType:
                type: string
                enum:
                - newFlow
                - replaceFlow
                - removeFlow
                - clear
                - globals
                - device
                - unknownBundle
                - knownBundle
              updateFlowId:
                $ref: '#/components/schemas/common/objectId'
              desiredVersion:
                $ref: '#/components/schemas/common/nullableName'
              newBundle:
                $ref: '#/components/schemas/common/nullableName'
              attemptedBundle:
                $ref: '#/components/schemas/common/nullableName'
              error:
                type: string
    embeddedDeploymentExport:
      title: Embedded Deployment Export
      description: Schema for the body of a compiled embedded deployment files request
      type: object
      properties:
        email:
          $ref: '#/components/schemas/common/email'
        callbackUrl:
          $ref: '#/components/schemas/common/url'
        embeddedDeploymentId:
          $ref: '#/components/schemas/common/objectId'
        deviceId:
          $ref: '#/components/schemas/common/objectId'
        traceLevel:
          enum:
          - 0
          - 1
          - 2
        disableDebugMessage:
          type: boolean
        stackSize:
          type: integer
          minimum: 1600
          maximum: 2147483648
        debugSymbols:
          type: boolean
        exportMemory:
          type: boolean
        gzip:
          type: boolean
      additionalProperties: false
    embeddedDeploymentRelease:
      title: Embedded Deployment Release
      description: Schema for deploying an embedded workflow to one or more edge devices
      type: object
      properties:
        flowId:
          $ref: '#/components/schemas/common/objectId'
        version:
          $ref: '#/components/schemas/common/nullableName'
        deviceIds:
          $ref: '#/components/schemas/common/objectIds'
        deviceTags:
          $ref: '#/components/schemas/common/tagsOptional'
        releaseTag:
          $ref: '#/components/schemas/common/nullableName'
      additionalProperties: false
      required:
      - flowId
      - version
    embeddedDeploymentRemove:
      title: Embedded Deployment Remove
      description: Schema for removing embedded deployments. Can remove a specific workflow from a specific device, can remove
        all workflows from a specific device, or can remove a specific workflow from all devices.
      type: object
      properties:
        flowId:
          $ref: '#/components/schemas/common/nullableObjectId'
        deviceId:
          $ref: '#/components/schemas/common/nullableObjectId'
      additionalProperties: false
      required:
      - flowId
      - deviceId
    embeddedDeploymentReplace:
      title: Embedded Deployment Replace
      description: Schema for replacing a deployment of a workflow version with a different workflow version
      type: object
      properties:
        flowId:
          $ref: '#/components/schemas/common/objectId'
        oldVersion:
          $ref: '#/components/schemas/common/name'
        newVersion:
          $ref: '#/components/schemas/common/nullableName'
      additionalProperties: false
      required:
      - flowId
      - oldVersion
      - newVersion
    embeddedDeployments:
      title: Embedded Deployments
      description: Schema for a collection of Embedded Deployments
      type: object
      properties:
        items:
          type: array
          items:
            $ref: '#/components/schemas/embeddedDeployment'
        count:
          type: integer
        totalCount:
          type: integer
        applicationId:
          $ref: '#/components/schemas/common/objectId'
        deviceId:
          $ref: '#/components/schemas/common/objectId'
        flowId:
          $ref: '#/components/schemas/common/objectId'
        version:
          $ref: '#/components/schemas/common/name'
    error:
      title: Error
      description: Schema for errors returned by the API
      type: object
      properties:
        type:
          type: string
        message:
          type: string
    jobEnqueuedResult:
      title: Job Enqueued API Result
      description: Schema for the result of a job being queued
      type: object
      properties:
        jobQueued:
          type: boolean
          enum:
          - true
        jobId:
          type: string
          maxLength: 21
        success:
          type: boolean
          enum:
          - true
    success:
      title: Success
      description: Schema for reporting a successful operation
      type: object
      properties:
        success:
          type: boolean
          enum:
          - true