Polymath Robotics Teleop Control API
Endpoints for managing control leases
Endpoints for managing control leases
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
find_apisBrowse and filter every API in the catalog.get_api_artifactsOne API's artifacts, grouped by type.get_openapiThe primary OpenAPI for this API.find_similar_apisAPIs that look like this one.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.curl "https://apis.io/api/v1/apis/polymath-teleop-control-api"
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
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.
openapi: 3.2.0
info:
title: Polymath API Service CANBus Teleop Control API
description: Polymath API service to interact with a real or simulated polymath-powered robot
termsOfService: https://www.polymathrobotics.com/legal/terms-of-service
contact:
name: Polymath Support
url: https://www.polymathrobotics.com
email: api@polymathrobotics.com
license:
name: All rights reserved
url: https://www.polymathrobotics.com/legal/privacy-policy
version: 2.0.0
servers:
- url: https://polyglot.polymathrobotics.dev/api
description: Base URL declared by the provider in apis.yml (roadmap#122).
tags:
- name: Teleop Control
description: Endpoints for managing control leases
paths:
/v2/teleop-control/acquire:
post:
tags:
- Teleop Control
summary: Acquire control lease granting exclusive access to teleop
description: Acquire control lease if none exists or has expired.
operationId: acquire_lease
responses:
'200':
description: Successful Response
content:
application/json:
schema:
$ref: '#/components/schemas/ControlResponse'
'403':
description: Lease is unavailable or not held by the requesting user
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
'401':
description: Authentication required
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
security:
- HTTPBearer: []
/v2/teleop-control/renew:
post:
tags:
- Teleop Control
summary: Renew existing control lease
description: Renew an existing lease. Only the current lease holder can renew.
operationId: renew_lease
responses:
'200':
description: Successful Response
content:
application/json:
schema:
$ref: '#/components/schemas/ControlResponse'
'403':
description: Lease is unavailable or not held by the requesting user
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
'401':
description: Authentication required
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
security:
- HTTPBearer: []
/v2/teleop-control/release:
post:
tags:
- Teleop Control
summary: Release the current control lease
description: Explicitly release the current lease.
operationId: release_lease
parameters:
- description: If true, release the lease regardless of who holds it. Requires valid bearer token; no additional admin validation exists.
required: false
schema:
title: Force
type: boolean
description: If true, release the lease regardless of who holds it. Requires valid bearer token; no additional admin validation exists.
default: false
name: force
in: query
responses:
'200':
description: Successful Response
content:
application/json:
schema:
$ref: '#/components/schemas/ControlResponse'
'403':
description: Lease is unavailable or not held by the requesting user
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
'401':
description: Authentication required
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
security:
- HTTPBearer: []
/v2/teleop-control/transfer:
post:
tags:
- Teleop Control
summary: Transfer control lease to another user
description: Transfer the lease to another user. Only the current lease holder can transfer.
operationId: transfer_lease
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/TransferLeaseRequest'
required: true
responses:
'200':
description: Successful Response
content:
application/json:
schema:
$ref: '#/components/schemas/ControlResponse'
'403':
description: Lease is unavailable or not held by the requesting user
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
'401':
description: Authentication required
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
security:
- HTTPBearer: []
/v2/teleop-control/status:
get:
tags:
- Teleop Control
summary: Get current control lease status
description: Get current lease status and lease holder identity.
operationId: get_lease_status
responses:
'200':
description: Successful Response
content:
application/json:
schema:
$ref: '#/components/schemas/ControlResponse'
components:
schemas:
ValidationError:
title: ValidationError
required:
- loc
- msg
- type
type: object
properties:
loc:
title: Location
type: array
items:
anyOf:
- type: string
- type: integer
msg:
title: Message
type: string
type:
title: Error Type
type: string
ControlLease:
title: ControlLease
type: object
properties:
holder_id:
title: Holder Id
type: string
expires_at:
title: Expires At
type: string
format: date-time
ErrorResponse:
title: ErrorResponse
required:
- status
- message
type: object
properties:
status:
title: Status
enum:
- error
type: string
message:
title: Message
type: string
error:
$ref: '#/components/schemas/ErrorDetails'
ControlResponse:
title: ControlResponse
required:
- message
- data
type: object
properties:
status:
title: Status
enum:
- success
type: string
description: JSend status
default: success
message:
title: Message
type: string
description: Human readable message
data:
title: Data
allOf:
- $ref: '#/components/schemas/ControlLease'
description: Current lease data
description: Model for successful responses in the control API
TransferLeaseRequest:
title: TransferLeaseRequest
required:
- to
type: object
properties:
to:
title: To
type: string
description: User ID to transfer lease to
ErrorDetails:
title: ErrorDetails
required:
- details
type: object
properties:
details:
title: Details
type: string
HTTPValidationError:
title: HTTPValidationError
type: object
properties:
detail:
title: Detail
type: array
items:
$ref: '#/components/schemas/ValidationError'
securitySchemes:
HTTPBearer:
type: http
scheme: bearer