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
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
/apps/{app_name}/promptsList prompts
List prompt IDs and timestamps. Read a prompt to retrieve its content.
readPath, query & header parameters 3
app_name (path)stringrequiredTrimmed display name. App lookup is case-insensitive within the authenticated tenant. Ambiguous legacy names return 409.
limit (query)integeroptionalItems per page.
cursor (query)stringoptionalOpaque 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>'
/apps/{app_name}/prompts/{prompt_id}Read a prompt
Read current template content. Prompt contents remain live while policy may govern their enforcement.
readPath, query & header parameters 2
app_name (path)stringrequiredTrimmed display name. App lookup is case-insensitive within the authenticated tenant. Ambiguous legacy names return 409.
prompt_id (path)stringrequiredNo request body.
curl --request GET \
'https://management.example.com/llmgateway/management/v1/apps/Support%20Bot/prompts/support_system' \
--header 'Authorization: Bearer <management-key>'
/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.
config:writePath, query & header parameters 4
app_name (path)stringrequiredTrimmed display name. App lookup is case-insensitive within the authenticated tenant. Ambiguous legacy names return 409.
prompt_id (path)stringrequiredIf-Match (header)stringoptionalRequired for replacement; mutually exclusive with If-None-Match.
If-None-Match (header)"*"optionalRequired for creation; mutually exclusive with If-Match.
Full request body specification application/json
contentstringrequiredNonempty prompt template; contents remain live even while QuilrQL controls enforcement.
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."
}'
/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.
config:writePath, query & header parameters 3
app_name (path)stringrequiredTrimmed display name. App lookup is case-insensitive within the authenticated tenant. Ambiguous legacy names return 409.
prompt_id (path)stringrequiredIf-Match (header)stringrequiredExact 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"'