LangChain prompts API

The prompts API from LangChain — 2 operation(s) for prompts.

OpenAPI Specification

langchain-prompts-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: LangSmith access_policies prompts API
  description: 'The LangSmith API is used to programmatically create and manage LangSmith resources.


    ## Host

    https://api.smith.langchain.com


    ## Authentication

    To authenticate with the LangSmith API, set the `X-Api-Key` header

    to a valid [LangSmith API key](https://docs.langchain.com/langsmith/create-account-api-key#create-an-api-key).


    '
  version: 0.1.0
servers:
- url: /
tags:
- name: prompts
paths:
  /api/v1/prompts/invoke_prompt:
    post:
      tags:
      - prompts
      summary: Invoke Prompt
      operationId: invoke_prompt_api_v1_prompts_invoke_prompt_post
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/InvokePromptPayload'
        required: true
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema: {}
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
  /api/v1/prompts/canvas:
    post:
      tags:
      - prompts
      summary: Prompt Canvas
      operationId: prompt_canvas_api_v1_prompts_canvas_post
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PlaygroundPromptCanvasPayload'
        required: true
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema: {}
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
      security:
      - API Key: []
      - Tenant ID: []
      - Bearer Auth: []
components:
  schemas:
    ChatMessageChunk:
      properties:
        content:
          anyOf:
          - type: string
          - items:
              anyOf:
              - type: string
              - additionalProperties: true
                type: object
            type: array
          title: Content
        additional_kwargs:
          additionalProperties: true
          type: object
          title: Additional Kwargs
        response_metadata:
          additionalProperties: true
          type: object
          title: Response Metadata
        type:
          type: string
          const: ChatMessageChunk
          title: Type
          default: ChatMessageChunk
        name:
          anyOf:
          - type: string
          - type: 'null'
          title: Name
        id:
          anyOf:
          - type: string
          - type: 'null'
          title: Id
        role:
          type: string
          title: Role
      additionalProperties: true
      type: object
      required:
      - content
      - role
      title: ChatMessageChunk
      description: Chat Message chunk.
    ValidationError:
      properties:
        loc:
          items:
            anyOf:
            - type: string
            - type: integer
          type: array
          title: Location
        msg:
          type: string
          title: Message
        type:
          type: string
          title: Error Type
      type: object
      required:
      - loc
      - msg
      - type
      title: ValidationError
    AIMessageChunk:
      properties:
        content:
          anyOf:
          - type: string
          - items:
              anyOf:
              - type: string
              - additionalProperties: true
                type: object
            type: array
          title: Content
        additional_kwargs:
          additionalProperties: true
          type: object
          title: Additional Kwargs
        response_metadata:
          additionalProperties: true
          type: object
          title: Response Metadata
        type:
          type: string
          const: AIMessageChunk
          title: Type
          default: AIMessageChunk
        name:
          anyOf:
          - type: string
          - type: 'null'
          title: Name
        id:
          anyOf:
          - type: string
          - type: 'null'
          title: Id
        tool_calls:
          items:
            $ref: '#/components/schemas/ToolCall'
          type: array
          title: Tool Calls
        invalid_tool_calls:
          items:
            $ref: '#/components/schemas/InvalidToolCall'
          type: array
          title: Invalid Tool Calls
        usage_metadata:
          anyOf:
          - $ref: '#/components/schemas/UsageMetadata'
          - type: 'null'
        tool_call_chunks:
          items:
            $ref: '#/components/schemas/ToolCallChunk'
          type: array
          title: Tool Call Chunks
        chunk_position:
          anyOf:
          - type: string
            const: last
          - type: 'null'
          title: Chunk Position
      additionalProperties: true
      type: object
      required:
      - content
      title: AIMessageChunk
      description: Message chunk from an AI (yielded when streaming).
    FunctionMessage:
      properties:
        content:
          anyOf:
          - type: string
          - items:
              anyOf:
              - type: string
              - additionalProperties: true
                type: object
            type: array
          title: Content
        additional_kwargs:
          additionalProperties: true
          type: object
          title: Additional Kwargs
        response_metadata:
          additionalProperties: true
          type: object
          title: Response Metadata
        type:
          type: string
          const: function
          title: Type
          default: function
        name:
          type: string
          title: Name
        id:
          anyOf:
          - type: string
          - type: 'null'
          title: Id
      additionalProperties: true
      type: object
      required:
      - content
      - name
      title: FunctionMessage
      description: 'Message for passing the result of executing a tool back to a model.


        `FunctionMessage` are an older version of the `ToolMessage` schema, and

        do not contain the `tool_call_id` field.


        The `tool_call_id` field is used to associate the tool call request with the

        tool call response. Useful in situations where a chat model is able

        to request multiple tool calls in parallel.'
    ToolMessage:
      properties:
        content:
          anyOf:
          - type: string
          - items:
              anyOf:
              - type: string
              - additionalProperties: true
                type: object
            type: array
          title: Content
        additional_kwargs:
          additionalProperties: true
          type: object
          title: Additional Kwargs
        response_metadata:
          additionalProperties: true
          type: object
          title: Response Metadata
        type:
          type: string
          const: tool
          title: Type
          default: tool
        name:
          anyOf:
          - type: string
          - type: 'null'
          title: Name
        id:
          anyOf:
          - type: string
          - type: 'null'
          title: Id
        tool_call_id:
          type: string
          title: Tool Call Id
        artifact:
          title: Artifact
        status:
          type: string
          enum:
          - success
          - error
          title: Status
          default: success
      additionalProperties: true
      type: object
      required:
      - content
      - tool_call_id
      title: ToolMessage
      description: "Message for passing the result of executing a tool back to a model.\n\n`ToolMessage` objects contain the result of a tool invocation. Typically, the result\nis encoded inside the `content` field.\n\n`tool_call_id` is used to associate the tool call request with the tool call\nresponse. Useful in situations where a chat model is able to request multiple tool\ncalls in parallel.\n\nExample:\n    A `ToolMessage` representing a result of `42` from a tool call with id\n\n    ```python\n    from langchain_core.messages import ToolMessage\n\n    ToolMessage(content=\"42\", tool_call_id=\"call_Jja7J89XsjrOLA5r!MEOW!SL\")\n    ```\n\nExample:\n    A `ToolMessage` where only part of the tool output is sent to the model\n    and the full output is passed in to artifact.\n\n    ```python\n    from langchain_core.messages import ToolMessage\n\n    tool_output = {\n        \"stdout\": \"From the graph we can see that the correlation between \"\n        \"x and y is ...\",\n        \"stderr\": None,\n        \"artifacts\": {\"type\": \"image\", \"base64_data\": \"/9j/4gIcSU...\"},\n    }\n\n    ToolMessage(\n        content=tool_output[\"stdout\"],\n        artifact=tool_output,\n        tool_call_id=\"call_Jja7J89XsjrOLA5r!MEOW!SL\",\n    )\n    ```"
    OutputTokenDetails:
      properties:
        audio:
          type: integer
          title: Audio
        reasoning:
          type: integer
          title: Reasoning
      type: object
      title: OutputTokenDetails
      description: "Breakdown of output token counts.\n\nDoes *not* need to sum to full output token count. Does *not* need to have all keys.\n\nExample:\n    ```python\n    {\n        \"audio\": 10,\n        \"reasoning\": 200,\n    }\n    ```\n\nMay also hold extra provider-specific keys.\n\n!!! version-added \"Added in `langchain-core` 0.3.9\""
    ChatMessage:
      properties:
        content:
          anyOf:
          - type: string
          - items:
              anyOf:
              - type: string
              - additionalProperties: true
                type: object
            type: array
          title: Content
        additional_kwargs:
          additionalProperties: true
          type: object
          title: Additional Kwargs
        response_metadata:
          additionalProperties: true
          type: object
          title: Response Metadata
        type:
          type: string
          const: chat
          title: Type
          default: chat
        name:
          anyOf:
          - type: string
          - type: 'null'
          title: Name
        id:
          anyOf:
          - type: string
          - type: 'null'
          title: Id
        role:
          type: string
          title: Role
      additionalProperties: true
      type: object
      required:
      - content
      - role
      title: ChatMessage
      description: Message that can be assigned an arbitrary speaker (i.e. role).
    HumanMessage:
      properties:
        content:
          anyOf:
          - type: string
          - items:
              anyOf:
              - type: string
              - additionalProperties: true
                type: object
            type: array
          title: Content
        additional_kwargs:
          additionalProperties: true
          type: object
          title: Additional Kwargs
        response_metadata:
          additionalProperties: true
          type: object
          title: Response Metadata
        type:
          type: string
          const: human
          title: Type
          default: human
        name:
          anyOf:
          - type: string
          - type: 'null'
          title: Name
        id:
          anyOf:
          - type: string
          - type: 'null'
          title: Id
      additionalProperties: true
      type: object
      required:
      - content
      title: HumanMessage
      description: "Message from the user.\n\nA `HumanMessage` is a message that is passed in from a user to the model.\n\nExample:\n    ```python\n    from langchain_core.messages import HumanMessage, SystemMessage\n\n    messages = [\n        SystemMessage(content=\"You are a helpful assistant! Your name is Bob.\"),\n        HumanMessage(content=\"What is your name?\"),\n    ]\n\n    # Instantiate a chat model and invoke it with the messages\n    model = ...\n    print(model.invoke(messages))\n    ```"
    HTTPValidationError:
      properties:
        detail:
          items:
            $ref: '#/components/schemas/ValidationError'
          type: array
          title: Detail
      type: object
      title: HTTPValidationError
    ToolCallChunk:
      properties:
        name:
          anyOf:
          - type: string
          - type: 'null'
          title: Name
        args:
          anyOf:
          - type: string
          - type: 'null'
          title: Args
        id:
          anyOf:
          - type: string
          - type: 'null'
          title: Id
        index:
          anyOf:
          - type: integer
          - type: 'null'
          title: Index
        type:
          type: string
          const: tool_call_chunk
          title: Type
      type: object
      required:
      - name
      - args
      - id
      - index
      title: ToolCallChunk
      description: "A chunk of a tool call (yielded when streaming).\n\nWhen merging `ToolCallChunk` objects (e.g., via `AIMessageChunk.__add__`), all\nstring attributes are concatenated. Chunks are only merged if their values of\n`index` are equal and not `None`.\n\nExample:\n```python\nleft_chunks = [ToolCallChunk(name=\"foo\", args='{\"a\":', index=0)]\nright_chunks = [ToolCallChunk(name=None, args=\"1}\", index=0)]\n\n(\n    AIMessageChunk(content=\"\", tool_call_chunks=left_chunks)\n    + AIMessageChunk(content=\"\", tool_call_chunks=right_chunks)\n).tool_call_chunks == [ToolCallChunk(name=\"foo\", args='{\"a\":1}', index=0)]\n```"
    SystemMessage:
      properties:
        content:
          anyOf:
          - type: string
          - items:
              anyOf:
              - type: string
              - additionalProperties: true
                type: object
            type: array
          title: Content
        additional_kwargs:
          additionalProperties: true
          type: object
          title: Additional Kwargs
        response_metadata:
          additionalProperties: true
          type: object
          title: Response Metadata
        type:
          type: string
          const: system
          title: Type
          default: system
        name:
          anyOf:
          - type: string
          - type: 'null'
          title: Name
        id:
          anyOf:
          - type: string
          - type: 'null'
          title: Id
      additionalProperties: true
      type: object
      required:
      - content
      title: SystemMessage
      description: "Message for priming AI behavior.\n\nThe system message is usually passed in as the first of a sequence\nof input messages.\n\nExample:\n    ```python\n    from langchain_core.messages import HumanMessage, SystemMessage\n\n    messages = [\n        SystemMessage(content=\"You are a helpful assistant! Your name is Bob.\"),\n        HumanMessage(content=\"What is your name?\"),\n    ]\n\n    # Define a chat model and invoke it with the messages\n    print(model.invoke(messages))\n    ```"
    UsageMetadata:
      properties:
        input_tokens:
          type: integer
          title: Input Tokens
        output_tokens:
          type: integer
          title: Output Tokens
        total_tokens:
          type: integer
          title: Total Tokens
        input_token_details:
          $ref: '#/components/schemas/InputTokenDetails'
        output_token_details:
          $ref: '#/components/schemas/OutputTokenDetails'
      type: object
      required:
      - input_tokens
      - output_tokens
      - total_tokens
      title: UsageMetadata
      description: "Usage metadata for a message, such as token counts.\n\nThis is a standard representation of token usage that is consistent across models.\n\nExample:\n    ```python\n    {\n        \"input_tokens\": 350,\n        \"output_tokens\": 240,\n        \"total_tokens\": 590,\n        \"input_token_details\": {\n            \"audio\": 10,\n            \"cache_creation\": 200,\n            \"cache_read\": 100,\n        },\n        \"output_token_details\": {\n            \"audio\": 10,\n            \"reasoning\": 200,\n        },\n    }\n    ```\n\n!!! warning \"Behavior changed in `langchain-core` 0.3.9\"\n\n    Added `input_token_details` and `output_token_details`.\n\n!!! note \"LangSmith SDK\"\n\n    The LangSmith SDK also has a `UsageMetadata` class. While the two share fields,\n    LangSmith's `UsageMetadata` has additional fields to capture cost information\n    used by the LangSmith platform."
    Highlight:
      properties:
        prompt_chunk_start_index:
          type: integer
          title: Prompt Chunk Start Index
        prompt_chunk_end_index:
          type: integer
          title: Prompt Chunk End Index
        prompt_chunk:
          type: string
          title: Prompt Chunk
        highlight_text:
          type: string
          title: Highlight Text
      type: object
      required:
      - prompt_chunk_start_index
      - prompt_chunk_end_index
      - prompt_chunk
      - highlight_text
      title: Highlight
    SystemMessageChunk:
      properties:
        content:
          anyOf:
          - type: string
          - items:
              anyOf:
              - type: string
              - additionalProperties: true
                type: object
            type: array
          title: Content
        additional_kwargs:
          additionalProperties: true
          type: object
          title: Additional Kwargs
        response_metadata:
          additionalProperties: true
          type: object
          title: Response Metadata
        type:
          type: string
          const: SystemMessageChunk
          title: Type
          default: SystemMessageChunk
        name:
          anyOf:
          - type: string
          - type: 'null'
          title: Name
        id:
          anyOf:
          - type: string
          - type: 'null'
          title: Id
      additionalProperties: true
      type: object
      required:
      - content
      title: SystemMessageChunk
      description: System Message chunk.
    Artifact:
      properties:
        id:
          type: string
          title: Id
        contents:
          items:
            $ref: '#/components/schemas/ArtifactContent'
          type: array
          title: Contents
        current_content_index:
          type: integer
          title: Current Content Index
      type: object
      required:
      - id
      - contents
      - current_content_index
      title: Artifact
    HumanMessageChunk:
      properties:
        content:
          anyOf:
          - type: string
          - items:
              anyOf:
              - type: string
              - additionalProperties: true
                type: object
            type: array
          title: Content
        additional_kwargs:
          additionalProperties: true
          type: object
          title: Additional Kwargs
        response_metadata:
          additionalProperties: true
          type: object
          title: Response Metadata
        type:
          type: string
          const: HumanMessageChunk
          title: Type
          default: HumanMessageChunk
        name:
          anyOf:
          - type: string
          - type: 'null'
          title: Name
        id:
          anyOf:
          - type: string
          - type: 'null'
          title: Id
      additionalProperties: true
      type: object
      required:
      - content
      title: HumanMessageChunk
      description: Human Message chunk.
    InputTokenDetails:
      properties:
        audio:
          type: integer
          title: Audio
        cache_creation:
          type: integer
          title: Cache Creation
        cache_read:
          type: integer
          title: Cache Read
      type: object
      title: InputTokenDetails
      description: "Breakdown of input token counts.\n\nDoes *not* need to sum to full input token count. Does *not* need to have all keys.\n\nExample:\n    ```python\n    {\n        \"audio\": 10,\n        \"cache_creation\": 200,\n        \"cache_read\": 100,\n    }\n    ```\n\nMay also hold extra provider-specific keys.\n\n!!! version-added \"Added in `langchain-core` 0.3.9\""
    ToolMessageChunk:
      properties:
        content:
          anyOf:
          - type: string
          - items:
              anyOf:
              - type: string
              - additionalProperties: true
                type: object
            type: array
          title: Content
        additional_kwargs:
          additionalProperties: true
          type: object
          title: Additional Kwargs
        response_metadata:
          additionalProperties: true
          type: object
          title: Response Metadata
        type:
          type: string
          const: ToolMessageChunk
          title: Type
          default: ToolMessageChunk
        name:
          anyOf:
          - type: string
          - type: 'null'
          title: Name
        id:
          anyOf:
          - type: string
          - type: 'null'
          title: Id
        tool_call_id:
          type: string
          title: Tool Call Id
        artifact:
          title: Artifact
        status:
          type: string
          enum:
          - success
          - error
          title: Status
          default: success
      additionalProperties: true
      type: object
      required:
      - content
      - tool_call_id
      title: ToolMessageChunk
      description: Tool Message chunk.
    InvokePromptPayload:
      properties:
        messages:
          items:
            prefixItems:
            - type: string
            - type: string
            type: array
            maxItems: 2
            minItems: 2
          type: array
          title: Messages
        template_format:
          type: string
          title: Template Format
        inputs:
          additionalProperties: true
          type: object
          title: Inputs
      type: object
      required:
      - messages
      - template_format
      - inputs
      title: InvokePromptPayload
    PlaygroundPromptCanvasPayload:
      properties:
        messages:
          items:
            oneOf:
            - $ref: '#/components/schemas/AIMessage'
            - $ref: '#/components/schemas/HumanMessage'
            - $ref: '#/components/schemas/ChatMessage'
            - $ref: '#/components/schemas/SystemMessage'
            - $ref: '#/components/schemas/FunctionMessage'
            - $ref: '#/components/schemas/ToolMessage'
            - $ref: '#/components/schemas/AIMessageChunk'
            - $ref: '#/components/schemas/HumanMessageChunk'
            - $ref: '#/components/schemas/ChatMessageChunk'
            - $ref: '#/components/schemas/SystemMessageChunk'
            - $ref: '#/components/schemas/FunctionMessageChunk'
            - $ref: '#/components/schemas/ToolMessageChunk'
          type: array
          title: Messages
        highlighted:
          anyOf:
          - $ref: '#/components/schemas/Highlight'
          - type: 'null'
        artifact:
          anyOf:
          - $ref: '#/components/schemas/Artifact'
          - type: 'null'
        artifact_length:
          anyOf:
          - type: string
            enum:
            - shortest
            - short
            - long
            - longest
          - type: 'null'
          title: Artifact Length
        reading_level:
          anyOf:
          - type: string
            enum:
            - child
            - teenager
            - college
            - phd
          - type: 'null'
          title: Reading Level
        custom_action:
          anyOf:
          - type: string
          - type: 'null'
          title: Custom Action
        template_format:
          type: string
          enum:
          - f-string
          - mustache
          title: Template Format
        secrets:
          additionalProperties:
            type: string
          type: object
          title: Secrets
      type: object
      required:
      - messages
      - template_format
      - secrets
      title: PlaygroundPromptCanvasPayload
    AIMessage:
      properties:
        content:
          anyOf:
          - type: string
          - items:
              anyOf:
              - type: string
              - additionalProperties: true
                type: object
            type: array
          title: Content
        additional_kwargs:
          additionalProperties: true
          type: object
          title: Additional Kwargs
        response_metadata:
          additionalProperties: true
          type: object
          title: Response Metadata
        type:
          type: string
          const: ai
          title: Type
          default: ai
        name:
          anyOf:
          - type: string
          - type: 'null'
          title: Name
        id:
          anyOf:
          - type: string
          - type: 'null'
          title: Id
        tool_calls:
          items:
            $ref: '#/components/schemas/ToolCall'
          type: array
          title: Tool Calls
        invalid_tool_calls:
          items:
            $ref: '#/components/schemas/InvalidToolCall'
          type: array
          title: Invalid Tool Calls
        usage_metadata:
          anyOf:
          - $ref: '#/components/schemas/UsageMetadata'
          - type: 'null'
      additionalProperties: true
      type: object
      required:
      - content
      title: AIMessage
      description: 'Message from an AI.


        An `AIMessage` is returned from a chat model as a response to a prompt.


        This message represents the output of the model and consists of both

        the raw output as returned by the model and standardized fields

        (e.g., tool calls, usage metadata) added by the LangChain framework.'
    ArtifactContent:
      properties:
        index:
          type: integer
          title: Index
        content:
          type: string
          title: Content
      type: object
      required:
      - index
      - content
      title: ArtifactContent
    FunctionMessageChunk:
      properties:
        content:
          anyOf:
          - type: string
          - items:
              anyOf:
              - type: string
              - additionalProperties: true
                type: object
            type: array
          title: Content
        additional_kwargs:
          additionalProperties: true
          type: object
          title: Additional Kwargs
        response_metadata:
          additionalProperties: true
          type: object
          title: Response Metadata
        type:
          type: string
          const: FunctionMessageChunk
          title: Type
          default: FunctionMessageChunk
        name:
          type: string
          title: Name
        id:
          anyOf:
          - type: string
          - type: 'null'
          title: Id
      additionalProperties: true
      type: object
      required:
      - content
      - name
      title: FunctionMessageChunk
      description: Function Message chunk.
    InvalidToolCall:
      properties:
        type:
          type: string
          const: invalid_tool_call
          title: Type
        id:
          anyOf:
          - type: string
          - type: 'null'
          title: Id
        name:
          anyOf:
          - type: string
          - type: 'null'
          title: Name
        args:
          anyOf:
          - type: string
          - type: 'null'
          title: Args
        error:
          anyOf:
          - type: string
          - type: 'null'
          title: Error
        index:
          anyOf:
          - type: integer
          - type: string
          title: Index
        extras:
          additionalProperties: true
          type: object
          title: Extras
      type: object
      required:
      - type
      - id
      - name
      - args
      - error
      title: InvalidToolCall
      description: 'Allowance for errors made by LLM.


        Here we add an `error` key to surface errors made during generation

        (e.g., invalid JSON arguments.)'
    ToolCall:
      properties:
        name:
          type: string
          title: Name
        args:
          additionalProperties: true
          type: object
          title: Args
        id:
          anyOf:
          - type: string
          - type: 'null'
          title: Id
        type:
          type: string
          const: tool_call
          title: Type
      type: object
      required:
      - name
      - args
      - id
      title: ToolCall
      description: "Represents an AI's request to call a tool.\n\nExample:\n    ```python\n    {\"name\": \"foo\", \"args\": {\"a\": 1}, \"id\": \"123\"}\n    ```\n\n    This represents a request to call the tool named `'foo'` with arguments\n    `{\"a\": 1}` and an identifier of `'123'`.\n\n!!! note \"Factory function\"\n\n    `tool_call` may also be used as a factory to create a `ToolCall`. Benefits\n    include:\n\n    * Required arguments strictly validated at creation time"
  securitySchemes:
    API Key:
      type: apiKey
      in: header
      name: X-API-Key
    Tenant ID:
      type: apiKey
      in: header
      name: X-Tenant-Id
    Bearer Auth:
      type: http
      description: Bearer tokens are used to authenticate from the UI. Must also specify x-tenant-id or x-organization-id (for org scoped apis).
      scheme: bearer
    Organization ID:
      type: apiKey
      in: header
      name: X-Organization-Id