Temi RESTful API (1.0.0)

Download OpenAPI specification:

RESTful API for controlling Temi robots in an organization.

Authenticate every request with an Organization Access Token (OAT) in the x-api-key header. Tokens are scoped; each endpoint requires the permission noted in its description.

Authentication

Token verification.

Verify access token

Validates the OAT and returns organization, scope, and robot access metadata.

Authorizations:
ApiKeyAuth

Responses

Response samples

Content type
application/json
{
  • "status": "ok",
  • "organizationId": "string",
  • "tokenId": "string",
  • "scopes": [
    ],
  • "robotScope": "all",
  • "robotIds": [
    ]
}

Robots

Robot inventory and map locations.

List robots

Returns robots accessible to this token (identity fields only).

Required scope: read:org:info

Authorizations:
ApiKeyAuth

Responses

Response samples

Content type
application/json
{
  • "robots": [
    ]
}

Get robot status

Returns identity and presence status for a single robot.

Required scope: read:robot:status

Authorizations:
ApiKeyAuth
path Parameters
robotId
required
string

Robot identifier from GET /robots.

Responses

Response samples

Content type
application/json
{
  • "robotId": "<robotClientId>",
  • "teminame": "Reception",
  • "serialNumber": "1234567",
  • "status": "online"
}

List robot locations

Returns named map locations for the robot. Use these names as extra.locationName in MOVEMENT actions.

Required scope: read:robot:locations

Authorizations:
ApiKeyAuth
path Parameters
robotId
required
string

Robot identifier from GET /robots.

Responses

Response samples

Content type
application/json
{
  • "robotId": "string",
  • "mapId": "string",
  • "mapName": "string",
  • "locations": [
    ]
}

Contacts

Callable contacts for video calls.

List organization contacts

Returns organization members and contacts that can receive a video call. Use temiId as contactId in START_CALL actions.

Required scope: read:org:contact

Authorizations:
ApiKeyAuth

Responses

Response samples

Content type
application/json
{
  • "contacts": [
    ]
}

List robot contacts

Returns guest contacts associated with the robot. Use temiId as contactId in START_CALL actions.

Required scope: read:robot:contact

Authorizations:
ApiKeyAuth
path Parameters
robotId
required
string

Robot identifier from GET /robots.

Responses

Response samples

Content type
application/json
{
  • "contacts": [
    ]
}

Sequences

Execute multi-step robot sequences.

Play a sequence

Runs a sequence on a robot. A sequence is an ordered list of actions (navigate, speak, place a video call). The request is accepted asynchronously; the robot executes the sequence after delivery.

Recommended flow

  1. GET /robots — select robotId
  2. GET /robots/{robotId}/locations — resolve location names for navigation
  3. GET /contacts or GET /robots/{robotId}/contacts — resolve temiId for calls
  4. POST /sequences/play — submit the sequence

Supported action types

Type Alias Purpose Required fields
MOVEMENT goto Navigate to a map location extra.locationName or location
SPEAK speak Speak text extra.tts or tts
START_CALL meeting Start a video call contactId (temiId from contacts)

Compact requests may use aliases with step instead of startStep/endStep. See the minimal example.

Constraints

  • Every action must include type and either step or startStep/endStep.
  • For a single-step action, set startStep and endStep to the same value (or use step).
  • MOVEMENT/goto and SPEAK/speak may share a step. START_CALL/meeting must be alone on its step.
  • Location names must match a value from GET /robots/{robotId}/locations.

Required scope: action:robot:sequence

Authorizations:
ApiKeyAuth
Request Body schema: application/json
required
robotId
required
string

Target robot from GET /robots.

required
Array of objects (SequenceAction) non-empty

Ordered actions for the robot to execute.

name
string

Optional sequence name.

description
string
volume
number

Playback volume.

fixedVolume
boolean

If true, volume is fixed for the sequence duration.

startFromStep
integer >= 1

Step at which playback begins. Defaults to the lowest step in actions.

repeatSequence
integer

Number of times to repeat the sequence after the first run.

object (SequenceStopBy)

Conditions that allow a user to interrupt the sequence.

tags
Array of strings
imageKey
string
expireAtHours
number

Hours to retain the sequence on the server. Default is 24.

Responses

Request samples

Content type
application/json
Example
{
  • "robotId": "<robotClientId>",
  • "actions": [
    ]
}

Response samples

Content type
application/json
{
  • "status": "accepted",
  • "sequenceId": "string",
  • "robotId": "string"
}