glasswarp-com Input API

The Input API from glasswarp-com — 1 operation(s) for input.

Operations 1

POST /v1/sessions/{sessionId}/input Send input events #

Work with this as data

Every API 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 apis

7 MCP tools reach this
  • 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.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/glasswarp-com:glasswarp-com-input-api"
All apis
curl "https://apis.io/api/v1/apis?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.

OpenAPI Specification

glasswarp-com-input-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Glasswarp Platform Input API
  version: 1.0.0
  description: 'Real-time visual access and native input control on Windows machines.

    See any screen. Control any PC. One API.


    ## Authentication


    Most `/v1/*` endpoints require a bearer token:


    ```

    Authorization: Bearer gw_live_sk_...

    ```


    Exception: `GET /v1/agent/latest` is public (host auto-update).


    API keys are created in the Console.

    Keys are scoped to your account and can access any rig with API access enabled.


    ## Base URL


    `https://signal.glasswarp.com`'
  contact:
    name: Glasswarp
    url: https://glasswarp.com
  license:
    name: Proprietary
servers:
- url: https://signal.glasswarp.com
  description: Production
security:
- apiKey: []
tags:
- name: Input
paths:
  /v1/sessions/{sessionId}/input:
    post:
      operationId: sendInput
      summary: Send input events
      description: 'Send mouse and keyboard events to the remote desktop. Events are

        executed in order on the host. Optional per-event `delay_ms` pauses

        between events.


        **Batching:** prefer a short ordered list when the next screens are

        predictable. Cap is 100 events per call (MCP `send_actions` uses the

        same endpoint with a tighter cap of 10 and an optional verification

        observe in the same MCP turn).


        **Rate limits:** each event counts individually against the per-plan

        input quota — a 10-event batch consumes 10 tokens, not 1. Responses

        use HTTP 429 with `Retry-After` when exceeded.


        **Safety:** the owner kill switch and session end interrupt an

        in-flight batch mid-sequence on the host (agent ≥ 0.2.21 with

        `api_input_ack`). The HTTP call returns **410** with `executed` /

        `aborted` counts — not 200.'
      tags:
      - Input
      parameters:
      - name: sessionId
        in: path
        required: true
        schema:
          type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
              - events
              properties:
                events:
                  type: array
                  minItems: 1
                  maxItems: 100
                  items:
                    $ref: '#/components/schemas/InputEvent'
            example:
              events:
              - type: mouse_click
                x: 400
                y: 300
                button: left
              - type: type_text
                text: Hello from the API
                delay_ms: 50
              - type: key_press
                key: Enter
      responses:
        '200':
          description: Input batch completed
          content:
            application/json:
              schema:
                type: object
                properties:
                  ok:
                    type: boolean
                  executed:
                    type: integer
                  aborted:
                    type: integer
                  total:
                    type: integer
                  action_count:
                    type: integer
                    description: Session action counter after this call
        '400':
          description: Missing events or batch longer than 100
        '409':
          description: Input failed (consent blocked, unsupported platform, etc.)
        '410':
          description: 'Session killed mid-batch (`aborted_by_owner`). Remaining events were

            not injected. Body includes `executed`, `aborted`, `aborted_at`,

            `kill_to_abort_ms`.

            '
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    example: session_killed
                  code:
                    type: string
                    example: aborted_by_owner
                  executed:
                    type: integer
                  aborted:
                    type: integer
                  aborted_at:
                    type: integer
                    nullable: true
                  total:
                    type: integer
                  action_count:
                    type: integer
                  kill_to_abort_ms:
                    type: integer
                    description: ms from END_API_SESSION send to abort ACK
        '429':
          description: Input rate limit exceeded (counts each event in the batch)
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    example: rate_limited
                  message:
                    type: string
                  retry_after_ms:
                    type: integer
        '502':
          description: Failed to deliver input to the host
components:
  schemas:
    InputEvent:
      type: object
      required:
      - type
      properties:
        type:
          type: string
          enum:
          - mouse_move
          - mouse_click
          - mouse_scroll
          - key_press
          - key_down
          - key_up
          - type_text
        x:
          type: integer
          description: Absolute X coordinate (for mouse events)
        y:
          type: integer
          description: Absolute Y coordinate (for mouse events)
        button:
          type: string
          enum:
          - left
          - right
          - middle
          description: Mouse button (for mouse_click)
        dx:
          type: integer
          description: Horizontal scroll delta (for mouse_scroll)
        dy:
          type: integer
          description: Vertical wheel notches for mouse_scroll (negative = down); mapped to MOUSEEVENTF_WHEEL
        key:
          type: string
          description: Key name (for key_press, key_down, key_up)
        text:
          type: string
          description: Text to type (for type_text)
        delay_ms:
          type: integer
          minimum: 0
          maximum: 5000
          description: 'Optional pause after this event before the next (host-side). Useful

            when a UI needs settling time between clicks or keystrokes.

            '
  securitySchemes:
    apiKey:
      type: http
      scheme: bearer
      description: API key in the format `gw_(live|test)_sk_<hex>`
    userJwt:
      type: http
      scheme: bearer
      description: Supabase user JWT (for console/dashboard endpoints)