Prompt Store
Manage app-scoped templates. Prompt content remains live independently of QuilrQL; prompts.require_system_from_store controls enforcement in app configuration.
PUT creates a missing prompt (201) or replaces an existing prompt (200). It preserves other prompts/settings. Create-only prompt preconditions are Not Generally Available; If-None-Match is not implemented as a create-only guard. DELETE returns 200 with prompt:null, prompt_id, the updated app version and request_id.
Reads return prompt content and the current app version. A change to any versioned app setting can invalidate a prompt-write precondition. Re-read before reconciling 412 conflicts.
{
"content": "You help customers with support questions. Use supplied account context and do not invent account details."
}
Prompt content is visible to keys with read. For runtime references and variables, see Prompt Store.
/apps/{app_name}/promptsList prompts
Tenant-scoped operation. Resource reads return redacted metadata; writes use the permissions and preconditions shown below.
readPath, query & header parameters 3
app_name (path)stringrequiredlimit (query)integeroptionalcursor (query)stringoptionalNo 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
Use the current app ETag for every mutation, including creation. PUT creates or replaces; If-None-Match is not a create-only guard.
readPath, query & header parameters 2
app_name (path)stringrequiredprompt_id (path)stringrequiredNo request body.
curl --request GET \
'https://management.example.com/llmgateway/management/v1/apps/Support%20Bot/prompts/support' \
--header 'Authorization: Bearer <management-key>'
/apps/{app_name}/prompts/{prompt_id}Create or replace a prompt
Use the current app ETag for every mutation, including creation. PUT creates or replaces; If-None-Match is not a create-only guard.
config:writePath, query & header parameters 3
app_name (path)stringrequiredprompt_id (path)stringrequiredIf-Match (header)stringrequiredQuoted ETag returned by the latest resource read. Prompt/attachment/rollback writes use the app ETag.
Full request body specification application/json
Nonempty prompt content. The complete JSON request is limited to 1 MiB. Creation, replacement and deletion use the current app ETag.
contentstringrequiredUnknown fields are rejected in this object.
curl --request PUT \
'https://management.example.com/llmgateway/management/v1/apps/Support%20Bot/prompts/support' \
--header 'Authorization: Bearer <management-key>' \
--header 'If-Match: "resource-version-from-read"' \
--header 'Content-Type: application/json' \
--data '{
"content": "You help customers with support questions."
}'
/apps/{app_name}/prompts/{prompt_id}Delete a prompt
Use the current app ETag for every mutation, including creation. PUT creates or replaces; If-None-Match is not a create-only guard.
config:writePath, query & header parameters 3
app_name (path)stringrequiredprompt_id (path)stringrequiredIf-Match (header)stringrequiredQuoted ETag returned by the latest resource read. Prompt/attachment/rollback writes use the app ETag.
Full request body specification application/json
Unknown fields are rejected in this object.
curl --request DELETE \
'https://management.example.com/llmgateway/management/v1/apps/Support%20Bot/prompts/support' \
--header 'Authorization: Bearer <management-key>' \
--header 'If-Match: "resource-version-from-read"' \
--header 'Content-Type: application/json' \
--data '{}'
/app/promptsList prompts (query locator)
Tenant-scoped operation. Resource reads return redacted metadata; writes use the permissions and preconditions shown below. Use app_name in the query for names containing slashes or literal percent signs; URL-encode the query value once.
readPath, query & header parameters 3
app_name (query)stringrequiredExact display name; encode with standard query URL encoding.
limit (query)integeroptionalcursor (query)stringoptionalNo request body.
curl --request GET \
'https://management.example.com/llmgateway/management/v1/app/prompts?app_name=Support%20Bot&limit=50' \
--header 'Authorization: Bearer <management-key>'
/app/prompts/{prompt_id}Read a prompt (query locator)
Use the current app ETag for every mutation, including creation. PUT creates or replaces; If-None-Match is not a create-only guard. Use app_name in the query for names containing slashes or literal percent signs; URL-encode the query value once.
readPath, query & header parameters 2
prompt_id (path)stringrequiredapp_name (query)stringrequiredExact display name; encode with standard query URL encoding.
No request body.
curl --request GET \
'https://management.example.com/llmgateway/management/v1/app/prompts/support?app_name=Support%20Bot' \
--header 'Authorization: Bearer <management-key>'
/app/prompts/{prompt_id}Create or replace a prompt (query locator)
Use the current app ETag for every mutation, including creation. PUT creates or replaces; If-None-Match is not a create-only guard. Use app_name in the query for names containing slashes or literal percent signs; URL-encode the query value once.
config:writePath, query & header parameters 3
prompt_id (path)stringrequiredapp_name (query)stringrequiredExact display name; encode with standard query URL encoding.
If-Match (header)stringrequiredQuoted ETag returned by the latest resource read. Prompt/attachment/rollback writes use the app ETag.
Full request body specification application/json
Nonempty prompt content. The complete JSON request is limited to 1 MiB. Creation, replacement and deletion use the current app ETag.
contentstringrequiredUnknown fields are rejected in this object.
curl --request PUT \
'https://management.example.com/llmgateway/management/v1/app/prompts/support?app_name=Support%20Bot' \
--header 'Authorization: Bearer <management-key>' \
--header 'If-Match: "resource-version-from-read"' \
--header 'Content-Type: application/json' \
--data '{
"content": "You help customers with support questions."
}'
/app/prompts/{prompt_id}Delete a prompt (query locator)
Use the current app ETag for every mutation, including creation. PUT creates or replaces; If-None-Match is not a create-only guard. Use app_name in the query for names containing slashes or literal percent signs; URL-encode the query value once.
config:writePath, query & header parameters 3
prompt_id (path)stringrequiredapp_name (query)stringrequiredExact display name; encode with standard query URL encoding.
If-Match (header)stringrequiredQuoted ETag returned by the latest resource read. Prompt/attachment/rollback writes use the app ETag.
Full request body specification application/json
Unknown fields are rejected in this object.
curl --request DELETE \
'https://management.example.com/llmgateway/management/v1/app/prompts/support?app_name=Support%20Bot' \
--header 'Authorization: Bearer <management-key>' \
--header 'If-Match: "resource-version-from-read"' \
--header 'Content-Type: application/json' \
--data '{}'