Endpoints

API endpoint reference

Discovery

http
GET /.well-known/plp

Returns server capabilities and PLP version. Every PLP server must implement this.

Prompt CRUD

http
GET    /prompts                         # List prompts (paginated)
GET    /prompts/{prompt_id}              # Get latest version
GET    /prompts/{prompt_id}/{version}    # Get specific version
PUT    /prompts/{prompt_id}              # Create or update (upsert)
DELETE /prompts/{prompt_id}              # Delete prompt + all versions
POST   /prompts/{prompt_id}/publish      # Publish a version

PUT Example

Create or update is idempotent. Returns 201 for new prompts, 200 for updates:

http
PUT /prompts/welcome-email
Content-Type: application/json

{
  "content": "Hello {{name}}, welcome!",
  "meta": {
    "description": "Welcome email template",
    "model_config": { "temperature": 0.7 }
  }
}

Deploy & Eval

http
POST /prompts/{prompt_id}/deploy                        # Deploy to environment
POST /prompts/{prompt_id}/eval                          # Run eval suite
PUT  /prompts/{prompt_id}/eval/datasets/{dataset_id}    # Save dataset
GET  /prompts/{prompt_id}/eval/datasets/{dataset_id}    # Get dataset

Context Store

http
GET    /context-store                   # List assets
POST   /context-store                   # Upload asset (multipart)
GET    /context-store/{asset_id}        # Get asset content
DELETE /context-store/{asset_id}        # Delete asset
GET    /context-store/usage             # Storage usage stats

Prompt Context Mappings

http
GET    /prompts/{prompt_id}/context                  # List mappings
POST   /prompts/{prompt_id}/context                  # Add/update mapping
DELETE /prompts/{prompt_id}/context/{context_name}   # Remove mapping
POST   /prompts/{prompt_id}/context/_resolve         # Resolve to content