---
title: "KYE Protocol™ Sandbox API | API reference"
description: "KYE Protocol™ Sandbox API: 1 operations from sandbox.yaml, a published KYE Protocol™ OpenAPI contract."
url: https://kyeprotocol.com/developers/api/sandbox/
lang: en
source: "KYE Protocol"
---

> KYE Protocol™ Sandbox API: 1 operations from sandbox.yaml, a published KYE Protocol™ OpenAPI contract.

API reference

# KYE Protocol™ Sandbox API

1 operations · `sandbox.yaml`

**Servers**

`https://sandbox.kyeprotocol.com`

**Version**

1.0.0

**Source**

[sandbox.yaml](https://kyeprotocol.com/developers/api/sandbox.yaml)

Public sandbox surface for sandbox.kyeprotocol.com (Cloudflare Pages Functions). No authentication — this is the try-before-signup playground. Every endpoint is a THIN demo adapter over the ONE canonical engine behind the authenticated production surface (§0: zero sandbox-local decision logic), runs against a fixed demo tenant (kye:tenant:sandbox-demo), persists nothing, and marks every response `demo: true`. The production Authority API is POST https://app.kyeprotocol.com/api/v1/runtime/evaluate (app-post-runtime-evaluate — the app-surface projection of the Core wire-contract op evaluateRuntime).

Playground 1

## Playground

POST `/api/v1/pdp/decide` Demo three-outcome authority decision (public playground)

Evaluates one agent action through the SAME deterministic three-outcome decision engine as the authenticated Authority API (allow | require\_approval | deny; reason codes from public/vocabulary/reason-codes.md). Fixed demo tenant, nothing persisted, deterministic decision\_id per input, sealed Evidence Pack included so visitors can verify it offline.

### Request body (required)

| field | type | description |
| --- | --- | --- |
| `subject` **required** | string | KYE™ URN of the acting agent (alias \`agent\` accepted). |
| `action` **required** | string | Dotted lowercase capability id, e.g. payments.transfer. |
| `purpose` **required** | string |  |
| `context` | object |  |

### Responses

- `200` Demo decision + patent-safe evidence + sealed Evidence Pack
- `400` invalid\_json | missing\_subject | subject\_not\_kye\_urn | missing\_action | action\_malformed | missing\_purpose
