---
title: "Send native Pi RPC command"
method: POST
path: "/linc/v1/sessions/{id}/rpc"
tags: ["Agents/Linc"]
---

# Send native Pi RPC command

`POST /linc/v1/sessions/{id}/rpc`

## Request

- Base URL: `https://api.case.dev`
- URL: `https://api.case.dev/linc/v1/sessions/{id}/rpc`
- Auth: HTTP bearer

Forwards a native Pi/Linc RPC command object to the sandbox-local Linc bridge unchanged. The route returns after Pi accepts or rejects the command; native events are read through the events endpoint.

## Path parameters

- `id` string, required

## Request body

- object
  - `type` string, required: Native Pi/Linc RPC command type. Prompt commands also require a string id for idempotency.
  - `id` string: Command idempotency key. Required when type is prompt.

## Response `202`

Native Pi RPC response, or pending acknowledgement for a deduped prompt

## Other responses

- `400`: Invalid payload
- `401`: Invalid API key
- `403`: No agent access or Linc runtime disabled
- `404`: Linc session not found
- `409`: Linc session is not active, or the runtime is terminally stopped (data.code: linc_runtime_stopped, data.retryable: false)
- `410`: Linc runtime has expired and its saved state is gone (data.code: linc_runtime_expired, data.retryable: false); events stay readable
- `502`: Linc runtime command or bridge RPC failed (data.retryable: true)
- `503`: Linc runtime is waking or temporarily unreachable (data.code: linc_runtime_unreachable, data.retryable: true) — retry with the same command id

## Changes

- **2026-10-22** `67fe26768ee0`: 1 info
  - added the non-success response with the status `410`
- **2026-10-16** `a21d188f4b21`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/casemark/apis/case-dev-api/changes/linc/v1/sessions/:id/rpc/post.md)

---

[API](https://skmtc.dev/casemark/apis/case-dev-api.md) - [All operations](https://skmtc.dev/casemark/apis/case-dev-api/llms.txt) - [OpenAPI document](https://skmtc.dev/casemark/apis/case-dev-api/revisions/9a3245c00044?raw)
