Skip to main content

Execute Template

Sprint 3

Execute a prompt template with provided parameters.

Endpoint

POST /api/v1/prompt-templates/{template_id}/execute

Headers

HeaderRequiredDescription
AuthorizationYesBearer <access_token>
Content-TypeYesapplication/json

Path Parameters

ParameterTypeRequiredDescription
template_idintegerYesTemplate ID

Request Body

{
"workspace_id": 1,
"selected_data_source_ids": [1, 2],
"selected_schema_names": ["public"],
"parameters": {
"metric": "sales",
"time_period": "last_30_days"
},
"save_prompt": true
}

Parameters

FieldTypeRequiredDescription
workspace_idintegerNoWorkspace ID
selected_data_source_idsarray[integer]YesArray of data source IDs (min length: 1)
selected_schema_namesarray[string]NoArray of schema names to include (default: [])
parametersobjectNoTemplate parameter values (default: )
save_promptbooleanNoSave prompt after execution (default: false)

Response

Success - Processing (200)

{
"success": true,
"data": {
"execution_id": 1,
"status": "processing",
"ai_processing_status": "in_progress"
},
"message": "Template execution started"
}

Success - Completed (200)

{
"success": true,
"data": {
"execution_id": 1,
"prompt_id": 5,
"status": "completed",
"generated_query_text": "SELECT region, SUM(sales) FROM sales_data WHERE date >= '2024-11-01' GROUP BY region",
"rows_returned": 5,
"result_preview": [...]
},
"message": "Template executed successfully"
}

Error Codes

StatusCodeDescription
400BAD_REQUESTInvalid request data
401UNAUTHORIZEDInvalid or missing authentication token
404NOT_FOUNDTemplate not found
500INTERNAL_SERVER_ERRORInternal server error

Features

  • Parameter substitution in template text
  • Multiple data source support
  • Schema filtering
  • Optional prompt saving
  • Execution tracking
  • Organization-scoped access control

Parameter Substitution

Template parameters are replaced in the template text:

  • Template: "Show me {{metric}} for {{time_period}}"
  • Parameters: {"metric": "sales", "time_period": "last_30_days"}
  • Result: "Show me sales for last_30_days"

Example

curl -X POST "https://api.rivergen.com/api/v1/prompt-templates/1/execute" \
-H "Authorization: Bearer <access_token>" \
-H "Content-Type: application/json" \
-d '{
"selected_data_source_ids": [1, 2],
"parameters": {
"metric": "sales",
"time_period": "last_30_days"
}
}'