ThingSpeak TalkBack API

Asynchronous command queue letting cloud-side logic or humans push instructions to remote devices. Devices poll `talkbacks/{id}/commands` and execute the next command; commands can be added, updated, executed, or deleted via the REST surface. Pairs naturally with React for closed-loop automation.

ThingSpeak TalkBack API is one of 12 APIs that ThingSpeak 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 IoT, Commands, Queue, and Device Management. The published artifact set on APIs.io includes API documentation, an OpenAPI specification, and 1 Naftiko capability spec.

OpenAPI Specification

thingspeak-talkback-api-openapi.yml Raw ↑
openapi: 3.0.3
info:
  title: ThingSpeak TalkBack API
  version: '1.0'
  description: Asynchronous command queue for cloud-to-device communication. Devices
    poll for the next command and execute it; commands are added/updated/deleted via
    REST.
  contact:
    name: MathWorks
    url: https://www.mathworks.com/help/thingspeak/talkbackapp.html
servers:
- url: https://api.thingspeak.com
security:
- TalkBackKeyQuery: []
paths:
  /talkbacks/{talkback_id}/commands.json:
    get:
      summary: List Commands
      operationId: listCommands
      parameters:
      - $ref: '#/components/parameters/TalkBackId'
      - $ref: '#/components/parameters/ApiKey'
      responses:
        '200':
          description: All commands in the queue (including executed ones).
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/Command'
    post:
      summary: Add Command
      operationId: addCommand
      parameters:
      - $ref: '#/components/parameters/TalkBackId'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CommandInput'
      responses:
        '200':
          description: Command added to the queue.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Command'
  /talkbacks/{talkback_id}/commands/execute.json:
    get:
      summary: Execute Next Command
      operationId: executeNextCommand
      description: Devices call this endpoint to atomically receive and dequeue the
        next pending command.
      parameters:
      - $ref: '#/components/parameters/TalkBackId'
      - $ref: '#/components/parameters/ApiKey'
      responses:
        '200':
          description: The next command (or empty if queue is empty).
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Command'
  /talkbacks/{talkback_id}/commands/{command_id}.json:
    get:
      summary: Read Command
      operationId: readCommand
      parameters:
      - $ref: '#/components/parameters/TalkBackId'
      - $ref: '#/components/parameters/CommandId'
      - $ref: '#/components/parameters/ApiKey'
      responses:
        '200':
          description: A specific command in the queue.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Command'
    put:
      summary: Update Command
      operationId: updateCommand
      parameters:
      - $ref: '#/components/parameters/TalkBackId'
      - $ref: '#/components/parameters/CommandId'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CommandInput'
      responses:
        '200':
          description: Command updated.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Command'
    delete:
      summary: Delete Command
      operationId: deleteCommand
      parameters:
      - $ref: '#/components/parameters/TalkBackId'
      - $ref: '#/components/parameters/CommandId'
      - $ref: '#/components/parameters/ApiKey'
      responses:
        '200':
          description: Command deleted.
components:
  securitySchemes:
    TalkBackKeyQuery:
      type: apiKey
      in: query
      name: api_key
  parameters:
    TalkBackId:
      in: path
      name: talkback_id
      required: true
      schema:
        type: integer
    CommandId:
      in: path
      name: command_id
      required: true
      schema:
        type: integer
    ApiKey:
      in: query
      name: api_key
      required: true
      schema:
        type: string
  schemas:
    CommandInput:
      type: object
      required:
      - command_string
      properties:
        api_key:
          type: string
        command_string:
          type: string
        position:
          type: integer
    Command:
      type: object
      properties:
        id:
          type: integer
        command_string:
          type: string
        position:
          type: integer
        executed_at:
          type: string
          format: date-time
          nullable: true
        created_at:
          type: string
          format: date-time