Anthropic Prompt Improvement API

APIs for enhancing existing prompts with feedback

Operations 1

POST /v1/experimental/improve_prompt Anthropic Improve A Prompt #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/anthropic-prompt-improvement-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

anthropic-prompt-improvement-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Anthropic Prompt Tools Prompt Improvement API
  description: 'Manage prompts with generation, improvement, and templatization capabilities.


    The prompt tools APIs are in a closed research preview. These APIs are a set

    of tools to generate and improve prompts, similar to what''s available in the

    Anthropic Workbench, and are intended for use by other prompt engineering

    platforms and playgrounds.

    '
  version: 1.0.0
  contact:
    name: Anthropic Support
    url: https://support.anthropic.com
  license:
    name: Anthropic Terms of Service
    url: https://www.anthropic.com/terms
servers:
- url: https://api.anthropic.com
  description: Production Server
security:
- ApiKeyAuth: []
tags:
- name: Prompt Improvement
  description: APIs for enhancing existing prompts with feedback
paths:
  /v1/experimental/improve_prompt:
    post:
      summary: Anthropic Improve A Prompt
      description: 'Create a new-and-improved prompt guided by feedback. This API takes an

        existing prompt and enhances it based on provided feedback or general

        prompt engineering best practices.


        **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: improvePrompt
      tags:
      - Prompt Improvement
      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/ImprovePromptRequest'
            examples:
              DefaultExample:
                $ref: '#/components/examples/ImprovePromptRequestDefaultExample'
              RecipeWithExampleExample:
                $ref: '#/components/examples/ImprovePromptRequestRecipeExample'
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ImprovePromptResponse'
              examples:
                ImprovedRecipeResponse:
                  $ref: '#/components/examples/ImprovePromptResponseExample'
        '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:
  examples:
    ErrorBadRequestExample:
      summary: Bad request error
      value:
        type: invalid_request_error
        message: Invalid request format
    ImprovePromptResponseExample:
      summary: Improved recipe prompt response
      value:
        messages:
        - role: user
          content:
          - type: text
            text: You are a professional meal prep chef. Create a detailed recipe for {{food}} including preparation time, cooking time, and step-by-step instructions with specific temperatures and timing for each step.
        - role: assistant
          content:
          - type: text
            text: Here's a detailed recipe for
        system: ''
        usage:
          input_tokens: 45
          output_tokens: 180
    ErrorRateLimitExample:
      summary: Rate limit error
      value:
        type: rate_limit_error
        message: Rate limit exceeded. Please retry after some time.
    ErrorUnauthorizedExample:
      summary: Unauthorized error
      value:
        type: authentication_error
        message: Invalid or missing API key
    ImprovePromptRequestRecipeExample:
      summary: Recipe prompt with example interaction
      value:
        messages:
        - role: user
          content:
          - type: text
            text: 'Concise for {{food}}.


              example


              mandu: Put the mandu in the air fryer at 380F for 7 minutes.'
        system: You are a professional meal prep chef
        feedback: Make it more detailed and include cooking times
        target_model: claude-3-7-sonnet-20250219
    ImprovePromptRequestDefaultExample:
      summary: Simple recipe prompt improvement
      value:
        messages:
        - role: user
          content:
          - type: text
            text: Concise recipe for {{food}}
        feedback: Make the recipes shorter
    ErrorForbiddenExample:
      summary: Forbidden error
      value:
        type: permission_error
        message: Access denied or not in closed research preview
    ErrorServerExample:
      summary: Server error
      value:
        type: api_error
        message: An internal server error occurred
  schemas:
    ImprovePromptResponse:
      type: object
      required:
      - messages
      - system
      - usage
      properties:
        messages:
          type: array
          description: 'The improved prompt, incorporating the provided feedback

            and prompt engineering best practices.

            '
          items:
            $ref: '#/components/schemas/PromptMessage'
        system:
          type: string
          description: 'Currently, the system field is always returned as an empty

            string (""). In future iterations, this field may contain

            generated system prompts.

            '
        usage:
          $ref: '#/components/schemas/UsageInfo'
    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
    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'
    ImprovePromptRequest:
      type: object
      required:
      - messages
      properties:
        messages:
          type: array
          description: 'The prompt to improve, 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'
        feedback:
          type: string
          nullable: true
          description: 'Feedback for improving the prompt.

            Use this parameter to share specific guidance on what

            aspects of the prompt should be enhanced or modified.

            When not set, the API will improve the prompt using general

            prompt engineering best practices.

            '
        system:
          type: string
          nullable: true
          description: 'The existing system prompt to incorporate, if any.

            Note that while system prompts typically appear as separate

            parameters in standard API calls, in the improve_prompt

            response, the system content will be incorporated directly

            into the returned user message.

            '
        target_model:
          type: string
          nullable: true
          default: null
          description: 'The model this prompt will be used for. This optional

            parameter helps us understand which models our prompt tools

            are being used with, but it doesn''t currently affect

            functionality.

            '
          minLength: 1
          maxLength: 256
  parameters:
    ApiKeyHeader:
      name: x-api-key
      in: header
      required: true
      description: A valid API token.
      schema:
        type: string
    BrowserAccessHeader:
      name: anthropic-dangerous-direct-browser-access
      in: header
      required: false
      description: Enable CORS.
      schema:
        type: string
        default: 'true'
    AnthropicVersionHeader:
      name: anthropic-version
      in: header
      required: true
      description: Which version of the Anthropic API to use.
      schema:
        type: string
        default: '2023-06-01'
    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
  securitySchemes:
    ApiKeyAuth:
      type: apiKey
      in: header
      name: x-api-key
      description: API key for authentication