openapi: 3.1.0 info: title: Anthropic Admin Agents Prompt Templatization API description: Manage administrative functions for Anthropic organizations, workspaces, users, invites, and API keys. version: 1.0.0 contact: name: Anthropic url: https://www.anthropic.com email: support@anthropic.com license: name: Anthropic API License url: https://www.anthropic.com/terms servers: - url: https://api.anthropic.com/v1 description: Production Server security: - AdminApiKeyAuth: [] tags: - name: Prompt Templatization description: APIs for converting prompts into reusable templates with variables paths: /v1/experimental/templatize_prompt: post: summary: Anthropic Templatize A Prompt description: 'Templatize a prompt by identifying and extracting variables. This API analyzes a prompt and converts specific values into reusable template variables with placeholders. **Requirements:** - Must have joined the closed research preview for prompt tools APIs - Must use the API directly (not available in SDK) - Must include the beta header `prompt-tools-2025-04-02` - Messages must contain only text-only content blocks - No tool calls, images, or prompt caching blocks allowed - Only contiguous user messages with text content are permitted ' operationId: templatizePrompt tags: - Prompt Templatization x-microcks-operation: dispatcher: FALLBACK dispatcherRules: '' delay: 100 parameters: - $ref: '#/components/parameters/AnthropicBetaHeader' - $ref: '#/components/parameters/ApiKeyHeader' - $ref: '#/components/parameters/ContentTypeHeader' - $ref: '#/components/parameters/BrowserAccessHeader' - $ref: '#/components/parameters/AnthropicVersionHeader' requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/TemplatizePromptRequest' examples: DefaultExample: $ref: '#/components/examples/TemplatizePromptRequestDefaultExample' TranslationWithSystemExample: $ref: '#/components/examples/TemplatizePromptRequestTranslationExample' responses: '200': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/TemplatizePromptResponse' examples: TemplatizedTranslationResponse: $ref: '#/components/examples/TemplatizePromptResponseExample' '400': description: Bad Request - Invalid input parameters or unsupported content types content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' examples: BadRequestExample: $ref: '#/components/examples/ErrorBadRequestExample' '401': description: Unauthorized - Invalid or missing API key content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' examples: UnauthorizedExample: $ref: '#/components/examples/ErrorUnauthorizedExample' '403': description: Forbidden - Access denied or not in closed research preview content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' examples: ForbiddenExample: $ref: '#/components/examples/ErrorForbiddenExample' '429': description: Too Many Requests - Rate limit exceeded content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' examples: RateLimitExample: $ref: '#/components/examples/ErrorRateLimitExample' '500': description: Internal Server Error content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' examples: ServerErrorExample: $ref: '#/components/examples/ErrorServerExample' components: schemas: TextContentBlock: type: object required: - type - text properties: type: type: string enum: - text description: The type of content block text: type: string description: The text content TemplatizePromptResponse: type: object required: - messages - system - usage - variable_values properties: messages: type: array description: 'The templatized prompt with variable placeholders. The response includes the input messages with specific values replaced by variable placeholders. These messages maintain the original message structure but contain uppercase variable names in place of concrete values. ' items: $ref: '#/components/schemas/PromptMessage' system: type: string description: 'The input system prompt with variables identified and replaced. If no system prompt was provided in the original request, this field will be an empty string. ' usage: $ref: '#/components/schemas/UsageInfo' variable_values: type: object description: 'A mapping of template variable names to their original values, as extracted from the input prompt during templatization. Each key represents a variable name identified in the templatized prompt, and each value contains the corresponding content from the original prompt that was replaced by that variable. ' additionalProperties: type: string UsageInfo: type: object description: Usage information required: - input_tokens - output_tokens properties: input_tokens: type: integer description: Number of input tokens used minimum: 0 output_tokens: type: integer description: Number of output tokens generated minimum: 0 ErrorResponse: type: object required: - type - message properties: type: type: string description: The type of error message: type: string description: A human-readable error message PromptMessage: type: object required: - role - content properties: role: type: string enum: - user - assistant description: The role of the message sender content: type: array description: The content of the message items: $ref: '#/components/schemas/TextContentBlock' TemplatizePromptRequest: type: object required: - messages properties: messages: type: array description: 'The prompt to templatize, structured as a list of message objects. Each message must contain only text-only content blocks and not include tool calls, images, or prompt caching blocks. Only contiguous user messages with text content are allowed. Assistant prefill is permitted. ' items: $ref: '#/components/schemas/PromptMessage' system: type: string nullable: true description: 'The existing system prompt to templatize. Note that this differs from the Messages API; it is strictly a string. If provided, variables will be identified and replaced in the system prompt as well. ' examples: ErrorServerExample: summary: Server error value: type: api_error message: An internal server error occurred ErrorRateLimitExample: summary: Rate limit error value: type: rate_limit_error message: Rate limit exceeded. Please retry after some time. TemplatizePromptResponseExample: summary: Templatized translation prompt value: messages: - role: user content: - type: text text: Translate {{WORD_TO_TRANSLATE}} to {{TARGET_LANGUAGE}} system: You are a professional English to {{TARGET_LANGUAGE}} translator usage: input_tokens: 15 output_tokens: 25 variable_values: WORD_TO_TRANSLATE: hello TARGET_LANGUAGE: German ErrorBadRequestExample: summary: Bad request error value: type: invalid_request_error message: Invalid request format TemplatizePromptRequestTranslationExample: summary: Translation with system prompt value: messages: - role: user content: - type: text text: Translate hello to German system: You are a professional English to German translator ErrorUnauthorizedExample: summary: Unauthorized error value: type: authentication_error message: Invalid or missing API key ErrorForbiddenExample: summary: Forbidden error value: type: permission_error message: Access denied or not in closed research preview TemplatizePromptRequestDefaultExample: summary: Simple translation prompt value: messages: - role: user content: - type: text text: Translate hello to German parameters: AnthropicVersionHeader: name: anthropic-version in: header required: true description: Which version of the Anthropic API to use. schema: type: string default: '2023-06-01' BrowserAccessHeader: name: anthropic-dangerous-direct-browser-access in: header required: false description: Enable CORS. schema: type: string default: 'true' ContentTypeHeader: name: Content-Type in: header required: true description: The content type. schema: type: string default: application/json AnthropicBetaHeader: name: anthropic-beta in: header description: 'Optional header to specify the beta version(s) you want to use. To use multiple betas, use a comma separated list like `beta1,beta2` or specify the header multiple times for each beta. ' required: false schema: type: array items: type: string example: - prompt-tools-2025-04-02 style: simple explode: false ApiKeyHeader: name: x-api-key in: header required: true description: A valid API token. schema: type: string securitySchemes: AdminApiKeyAuth: type: apiKey in: header name: x-api-key description: Your Admin API key for authentication (starts with sk-ant-admin...).