Skip to main content

Prompt Store

Manage app-scoped prompt templates without changing gateway credentials or provider connections. Prompt content remains a live app dependency; prompt_store.require_system_from_store controls enforcement and can be governed by QuilrQL.

Input contract

InputRule
app_nameTenant-scoped app display name, encoded as one path segment.
prompt_id1-200 characters; letters, numbers, hyphens and underscores only.
contentRequired nonempty template string, up to 400,000 characters. PUT replaces the full content.
Create preconditionIf-None-Match: *; fail if a prompt already exists.
Replace/delete preconditionCurrent prompt ETag in If-Match.

Do not send both precondition headers. Prompt deletion is supported even though app/provider deletion is not. Removing a prompt can affect runtime requests that reference it; the operation does not silently rewrite those requests or disable prompt enforcement.

Example content

{
"content": "You help customers with support questions. Use the supplied account context and do not invent account details."
}

A prompt is configuration content and is visible to keys with read. It should not be used as a credential store. For runtime template references and variables, see Prompt Store.

Endpoint reference

GET/apps/{app_name}/prompts

List prompts

List prompt IDs and timestamps. Read a prompt to retrieve its content.

REQUIRESread
Path, query & header parameters 3
app_name (path)stringrequired

Trimmed display name. App lookup is case-insensitive within the authenticated tenant. Ambiguous legacy names return 409.

min length: 1max length: 200
limit (query)integeroptional

Items per page.

min: 1max: 200default: 50
cursor (query)stringoptional

Opaque cursor returned by this same collection and filters.

No request body.

curl --request GET \
'https://management.example.com/llmgateway/management/v1/apps/Support%20Bot/prompts?limit=50' \
--header 'Authorization: Bearer <management-key>'

Authentication, errors & retry rules

GET/apps/{app_name}/prompts/{prompt_id}

Read a prompt

Read current template content. Prompt contents remain live while policy may govern their enforcement.

REQUIRESread
Path, query & header parameters 2
app_name (path)stringrequired

Trimmed display name. App lookup is case-insensitive within the authenticated tenant. Ambiguous legacy names return 409.

min length: 1max length: 200
prompt_id (path)stringrequired
min length: 1max length: 200pattern: ^[A-Za-z0-9_-]+$

No request body.

curl --request GET \
'https://management.example.com/llmgateway/management/v1/apps/Support%20Bot/prompts/support_system' \
--header 'Authorization: Bearer <management-key>'

Authentication, errors & retry rules

PUT/apps/{app_name}/prompts/{prompt_id}

Create or replace a prompt

PUT replaces the complete content. Use If-Match for replacement; use If-None-Match: * for creation. Exactly one precondition is required.

REQUIRESconfig:write
Path, query & header parameters 4
app_name (path)stringrequired

Trimmed display name. App lookup is case-insensitive within the authenticated tenant. Ambiguous legacy names return 409.

min length: 1max length: 200
prompt_id (path)stringrequired
min length: 1max length: 200pattern: ^[A-Za-z0-9_-]+$
If-Match (header)stringoptional

Required for replacement; mutually exclusive with If-None-Match.

If-None-Match (header)"*"optional

Required for creation; mutually exclusive with If-Match.

Full request body specification application/json

contentstringrequired

Nonempty prompt template; contents remain live even while QuilrQL controls enforcement.

min length: 1max length: 400000

Unknown fields are rejected in this object.

curl --request PUT \
'https://management.example.com/llmgateway/management/v1/apps/Support%20Bot/prompts/support_system' \
--header 'Authorization: Bearer <management-key>' \
--header 'If-Match: "prompt-v1"' \
--header 'Content-Type: application/json' \
--data '{
"content": "You help customers with their support questions."
}'

Authentication, errors & retry rules

DELETE/apps/{app_name}/prompts/{prompt_id}

Delete a prompt

Delete this prompt template only. Requests depending on the prompt will fail according to normal enforcement.

REQUIRESconfig:write
Path, query & header parameters 3
app_name (path)stringrequired

Trimmed display name. App lookup is case-insensitive within the authenticated tenant. Ambiguous legacy names return 409.

min length: 1max length: 200
prompt_id (path)stringrequired
min length: 1max length: 200pattern: ^[A-Za-z0-9_-]+$
If-Match (header)stringrequired

Exact quoted ETag from a current resource read.

No request body.

curl --request DELETE \
'https://management.example.com/llmgateway/management/v1/apps/Support%20Bot/prompts/support_system' \
--header 'Authorization: Bearer <management-key>' \
--header 'If-Match: "resource-version"'

Authentication, errors & retry rules