Skip to main content

Prompt Store

Manage app-scoped templates. Prompt content remains live independently of QuilrQL; prompts.require_system_from_store controls enforcement in app configuration.

InputContract
App locatorEncoded app-name path, or /app/prompts?... with app_name in the query.
prompt_id1-200 characters: letters, digits, hyphens and underscores.
contentNonempty template string. The complete JSON body must fit within 1 MiB.
Every mutationCurrent app ETag in If-Match, including creation.

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.

GET/apps/{app_name}/prompts

List prompts

Tenant-scoped operation. Resource reads return redacted metadata; writes use the permissions and preconditions shown below.

REQUIRESread
Path, query & header parameters 3
app_name (path)stringrequired
limit (query)integeroptional
min: 1max: 200default: 50
cursor (query)stringoptional

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

Use the current app ETag for every mutation, including creation. PUT creates or replaces; If-None-Match is not a create-only guard.

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

No request body.

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

Authentication, errors & retry rules

PUT/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.

REQUIRESconfig:write
Path, query & header parameters 3
app_name (path)stringrequired
prompt_id (path)stringrequired
If-Match (header)stringrequired

Quoted 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.

contentstringrequired
min length: 1

Unknown 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."
}'

Authentication, errors & retry rules

DELETE/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.

REQUIRESconfig:write
Path, query & header parameters 3
app_name (path)stringrequired
prompt_id (path)stringrequired
If-Match (header)stringrequired

Quoted 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 '{}'

Authentication, errors & retry rules

GET/app/prompts

List 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.

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

Exact display name; encode with standard query URL encoding.

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

No 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>'

Authentication, errors & retry rules

GET/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.

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

Exact 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>'

Authentication, errors & retry rules

PUT/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.

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

Exact display name; encode with standard query URL encoding.

If-Match (header)stringrequired

Quoted 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.

contentstringrequired
min length: 1

Unknown 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."
}'

Authentication, errors & retry rules

DELETE/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.

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

Exact display name; encode with standard query URL encoding.

If-Match (header)stringrequired

Quoted 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 '{}'

Authentication, errors & retry rules