Edge Impulse · OpenAPI Overlay 1.0.0

API Evangelist conversational phrasing for Edge Impulse Devices API

13 actions 13 updates phrasing extends openapi/edge-impulse-devices-api-openapi.yml
Generated by API Evangelist Written by API Evangelist tooling for Edge Impulse's API. It is a proposal applied on top of the contract, not a document Edge Impulse publishes.
View Overlay File View on GitHub Overlay Specification

What the actions change

x-apievangelist-phrasing

Targets 13

$.info
$.paths['/api/{projectId}/devices'].get
$.paths['/api/{projectId}/device/{deviceId}'].get
$.paths['/api/{projectId}/device/{deviceId}'].delete
$.paths['/api/{projectId}/device/{deviceId}/start-sampling'].post
$.paths['/api/{projectId}/device/{deviceId}/debug-stream/inference/start'].post
$.paths['/api/{projectId}/device/{deviceId}/debug-stream/snapshot/start'].post
$.paths['/api/{projectId}/device/{deviceId}/debug-stream/keep-alive'].post
$.paths['/api/{projectId}/device/{deviceId}/debug-stream/stop'].post
$.paths['/api/{projectId}/device/{deviceId}/get-impulse-records'].post
$.paths['/api/{projectId}/devices/create'].post
$.paths['/api/{projectId}/devices/{deviceId}/rename'].post
$.paths['/api/{projectId}/devices/{deviceId}/request-model-update'].post

OpenAPI Overlay

Raw ↑
# Generated by API Evangelist (build-phrasing.py). Our phrasing, not observed demand.
overlay: 1.0.0
info:
  title: API Evangelist conversational phrasing for Edge Impulse Devices API
  version: 1.0.0
extends: openapi/edge-impulse-devices-api-openapi.yml
actions:
- target: $.info
  update:
    x-apievangelist-phrasing:
      method: generated
      generated: '2026-10-01'
      generator: build-phrasing.py
      label: Generated by API Evangelist
      operations: 12
- target: $.paths['/api/{projectId}/devices'].get
  update:
    x-apievangelist-phrasing:
      intent: List a project's devices
      effect: read
      questions:
      - Which devices are connected to my Edge Impulse project?
      - Why does a device appear in the list even though it only sent data to ingestion?
      instructions:
      - text: List all devices in project {project}.
        slots:
          project: path.projectId
      - text: Show every device that has connected to or sent data into project {project}.
        slots:
          project: path.projectId
      method: generated
      generated: '2026-10-01'
- target: $.paths['/api/{projectId}/device/{deviceId}'].get
  update:
    x-apievangelist-phrasing:
      intent: Get one device's details
      effect: read
      questions:
      - Can I look up a single device and see its sensors and status?
      - Is a particular device currently connected to remote management?
      instructions:
      - text: Get device {device} in project {project}.
        slots:
          project: path.projectId
          device: path.deviceId
      - text: Show details of device {device} for project {project}.
        slots:
          project: path.projectId
          device: path.deviceId
      method: generated
      generated: '2026-10-01'
- target: $.paths['/api/{projectId}/device/{deviceId}'].delete
  update:
    x-apievangelist-phrasing:
      intent: Delete a device
      effect: destructive
      questions:
      - Can I remove a device from my project?
      - Will a deleted device come back if it sends data again?
      instructions:
      - text: Delete device {device} from project {project}.
        slots:
          project: path.projectId
          device: path.deviceId
      - text: Remove device {device} out of project {project}.
        slots:
          project: path.projectId
          device: path.deviceId
      method: generated
      generated: '2026-10-01'
- target: $.paths['/api/{projectId}/device/{deviceId}/start-sampling'].post
  update:
    x-apievangelist-phrasing:
      intent: Start sampling data on a device
      effect: write
      questions:
      - How do I trigger a device to record a labeled sample remotely?
      - Can I choose which sensor and sampling interval a device records with?
      instructions:
      - text: Start sampling {length} ms of {label} data on device {device} in project {project} into {category} at interval {interval} ms.
        slots:
          project: path.projectId
          device: path.deviceId
          length: requestBody.lengthMs
          label: requestBody.label
          category: requestBody.category
          interval: requestBody.intervalMs
      - text: Record a {label} sample from sensor {sensor} on device {device} in project {project}, {length} ms long, interval {interval} ms, into {category}.
        slots:
          project: path.projectId
          device: path.deviceId
          label: requestBody.label
          sensor: requestBody.sensor
          length: requestBody.lengthMs
          interval: requestBody.intervalMs
          category: requestBody.category
      method: generated
      generated: '2026-10-01'
- target: $.paths['/api/{projectId}/device/{deviceId}/debug-stream/inference/start'].post
  update:
    x-apievangelist-phrasing:
      intent: Start an inference debug stream
      effect: write
      questions:
      - Can I watch live inference results from a device as they happen?
      - How often must I ping to keep an inference debug stream open?
      instructions:
      - text: Start an inference debug stream on device {device} in project {project}.
        slots:
          project: path.projectId
          device: path.deviceId
      - text: Stream live classification results from device {device} of project {project}.
        slots:
          project: path.projectId
          device: path.deviceId
      method: generated
      generated: '2026-10-01'
- target: $.paths['/api/{projectId}/device/{deviceId}/debug-stream/snapshot/start'].post
  update:
    x-apievangelist-phrasing:
      intent: Start a camera snapshot debug stream
      effect: write
      questions:
      - Can I see a live camera view from a device?
      - What resolution options apply to a device's snapshot stream?
      instructions:
      - text: Start a snapshot debug stream at {resolution} resolution on device {device} in project {project}.
        slots:
          project: path.projectId
          device: path.deviceId
          resolution: requestBody.resolution
      - text: Show the live camera feed of device {device} in project {project} at {resolution}.
        slots:
          project: path.projectId
          device: path.deviceId
          resolution: requestBody.resolution
      method: generated
      generated: '2026-10-01'
- target: $.paths['/api/{projectId}/device/{deviceId}/debug-stream/keep-alive'].post
  update:
    x-apievangelist-phrasing:
      intent: Keep a device debug stream alive
      effect: write
      questions:
      - What happens if I stop pinging an open device debug stream?
      - Which ID do I send to keep a debug stream from timing out?
      instructions:
      - text: Keep debug stream {stream} alive on device {device} in project {project}.
        slots:
          project: path.projectId
          device: path.deviceId
          stream: requestBody.streamId
      - text: Send a keep-alive ping for stream {stream} on device {device} of project {project}.
        slots:
          project: path.projectId
          device: path.deviceId
          stream: requestBody.streamId
      method: generated
      generated: '2026-10-01'
- target: $.paths['/api/{projectId}/device/{deviceId}/debug-stream/stop'].post
  update:
    x-apievangelist-phrasing:
      intent: Stop a device debug stream
      effect: destructive
      questions:
      - Can I close a debug stream I opened on a device?
      - Is there a way to end a device's live debug view on demand?
      instructions:
      - text: Stop debug stream {stream} on device {device} in project {project}.
        slots:
          project: path.projectId
          device: path.deviceId
          stream: requestBody.streamId
      - text: Close the open debug stream {stream} for device {device} of project {project}.
        slots:
          project: path.projectId
          device: path.deviceId
          stream: requestBody.streamId
      method: generated
      generated: '2026-10-01'
- target: $.paths['/api/{projectId}/device/{deviceId}/get-impulse-records'].post
  update:
    x-apievangelist-phrasing:
      intent: Retrieve impulse records from a device
      effect: read
      questions:
      - Can I pull the stored impulse records off a deployed device?
      - Is it possible to fetch just a range of records from a device?
      instructions:
      - text: Get impulse records from device {device} in project {project}.
        slots:
          project: path.projectId
          device: path.deviceId
      - text: Retrieve impulse records in range {range} from device {device} of project {project}.
        slots:
          project: path.projectId
          device: path.deviceId
          range: requestBody.range
      method: generated
      generated: '2026-10-01'
- target: $.paths['/api/{projectId}/devices/create'].post
  update:
    x-apievangelist-phrasing:
      intent: Register a new device
      effect: write
      questions:
      - How do I register a device in a project before it sends data?
      - What happens to the device type if I create a device that already exists?
      instructions:
      - text: 'Create device {device} of type {type} in project {project}, failing if it exists: {strict}.'
        slots:
          project: path.projectId
          device: requestBody.deviceId
          type: requestBody.deviceType
          strict: requestBody.ifNotExists
      - text: Register device with MAC {device} as a {type} in project {project}.
        slots:
          project: path.projectId
          device: requestBody.deviceId
          type: requestBody.deviceType
      method: generated
      generated: '2026-10-01'
- target: $.paths['/api/{projectId}/devices/{deviceId}/rename'].post
  update:
    x-apievangelist-phrasing:
      intent: Rename a device
      effect: write
      questions:
      - Can I give a device a friendlier name?
      - Where do I set the display name of a device?
      instructions:
      - text: Rename device {device} in project {project} to {name}.
        slots:
          project: path.projectId
          device: path.deviceId
          name: requestBody.name
      - text: Call device {device} of project {project} {name} from now on.
        slots:
          project: path.projectId
          device: path.deviceId
          name: requestBody.name
      method: generated
      generated: '2026-10-01'
- target: $.paths['/api/{projectId}/devices/{deviceId}/request-model-update'].post
  update:
    x-apievangelist-phrasing:
      intent: Push a model update to a device
      effect: write
      questions:
      - Can I tell a running device to fetch the latest model?
      - Which devices can receive a remote model update request?
      instructions:
      - text: Trigger a model update on device {device} in project {project}.
        slots:
          project: path.projectId
          device: path.deviceId
      - text: Ask device {device} of project {project} to pull the newest model.
        slots:
          project: path.projectId
          device: path.deviceId
      method: generated
      generated: '2026-10-01'

Work with this as data

Every overlay 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 openapi overlays

4 MCP tools reach this
  • find_overlaysBrowse and filter every overlay 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.
All 92 tools →

Call it yourself

curl for this page
This overlay
curl "https://apis.io/api/v1/overlays/edge-impulse-devices-api-phrasing-overlay"
All openapi overlays
curl "https://apis.io/api/v1/overlays?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.