Moveworks responses API

The responses API from Moveworks — 3 operation(s) for responses.

OpenAPI Specification

moveworks-responses-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: (Beta) Conversations authentication responses API
  version: 1.0.0
servers:
- url: https://api.moveworks.ai/rest/v1beta1
  description: US production server
- url: https://api.jp.moveworks.com/rest/v1beta1
  description: Japan production server
- url: https://api.uk.moveworks.com/rest/v1beta1
  description: UK production server
- url: https://api.prod4.us.moveworks.com/rest/v1beta1
  description: US Prod 4 production server
- url: https://api.prod3.us.moveworks.com/rest/v1beta1
  description: US Prod 3 production server
tags:
- name: responses
paths:
  /conversations/{conversation_id}/responses:
    post:
      operationId: create-response
      summary: Create response
      description: Creates a response object for processing. Returns immediately with the response object. Use `GetResponse` by `response_id` to poll for the complete result.
      tags:
      - responses
      parameters:
      - name: conversation_id
        in: path
        description: A base-62 identifier prefixed by a short resource type
        required: true
        schema:
          type: string
      - name: Authorization
        in: header
        description: JWT bearer token authentication. Obtain an access token from the Moveworks auth endpoint and include it in the Authorization header as 'Bearer <token>'.
        required: true
        schema:
          type: string
      - name: Assistant-Name
        in: header
        description: The Moveworks assistant identifier that was configured for your organization.
        required: true
        schema:
          type: string
      responses:
        '202':
          description: Response accepted for processing (acknowledgement)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Response'
        '400':
          description: Bad request - Invalid input parameters
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InputRequiredErrorResponse'
        '401':
          description: Unauthorized - Invalid or missing authentication
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorResponse'
        '403':
          description: Forbidden - Invalid assistant
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorResponse'
        '404':
          description: Not found - Resource does not exist
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/NotFoundErrorResponse'
        '429':
          description: Rate limit exceeded
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RateLimitExceededErrorResponse'
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalErrorResponse'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateResponseRequest'
  /conversations/{conversation_id}/responses/stream:
    post:
      operationId: create-response-stream
      summary: Create response (streaming)
      description: Creates a response and streams updates in real-time via Server-Sent Events (SSE). This provides a real-time alternative to creating a response and polling the GetResponse endpoint.
      tags:
      - responses
      parameters:
      - name: conversation_id
        in: path
        description: A base-62 identifier prefixed by a short resource type
        required: true
        schema:
          type: string
      - name: Authorization
        in: header
        description: JWT bearer token authentication. Obtain an access token from the Moveworks auth endpoint and include it in the Authorization header as 'Bearer <token>'.
        required: true
        schema:
          type: string
      - name: Assistant-Name
        in: header
        description: The Moveworks assistant identifier that was configured for your organization.
        required: true
        schema:
          type: string
      - name: Accept
        in: header
        description: Must be set to `text/event-stream` to receive Server-Sent Events
        required: true
        schema:
          $ref: '#/components/schemas/ConversationsConversationIdResponsesStreamPostParametersAccept'
      responses:
        '200':
          description: Server-Sent Events stream of response updates
          content:
            text/event-stream:
              schema:
                $ref: '#/components/schemas/ResponseStreamEvent'
        '400':
          description: Bad request - Invalid input parameters
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InputRequiredErrorResponse'
        '401':
          description: Unauthorized - Invalid or missing authentication
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorResponse'
        '403':
          description: Forbidden - Invalid assistant
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorResponse'
        '404':
          description: Not found - Resource does not exist
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/NotFoundErrorResponse'
        '429':
          description: Rate limit exceeded
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RateLimitExceededErrorResponse'
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalErrorResponse'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateResponseStreamRequest'
  /conversations/{conversation_id}/responses/{response_id}:
    get:
      operationId: get-response
      summary: Get response
      description: Retrieves the current state and output of a response. Only returns assistant outputs. Use Get messages in a conversation or response to retrieve the full set of messages including user messages. Clients can poll this endpoint to watch for response completion by repeatedly calling until the status reaches a terminal state (`COMPLETED` or `FAILED`). Clients can wait up to **120 seconds** for a response to reach a terminal state.
      tags:
      - responses
      parameters:
      - name: conversation_id
        in: path
        description: A base-62 identifier prefixed by a short resource type
        required: true
        schema:
          type: string
      - name: response_id
        in: path
        description: A base-62 identifier prefixed by a short resource type
        required: true
        schema:
          type: string
      - name: Authorization
        in: header
        description: JWT bearer token authentication. Obtain an access token from the Moveworks auth endpoint and include it in the Authorization header as 'Bearer <token>'.
        required: true
        schema:
          type: string
      - name: Assistant-Name
        in: header
        description: The Moveworks assistant identifier that was configured for your organization.
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Response retrieved successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Response'
        '401':
          description: Unauthorized - Invalid or missing authentication
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorResponse'
        '403':
          description: Forbidden - Invalid assistant
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorResponse'
        '404':
          description: Not found - Resource does not exist
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/NotFoundErrorResponse'
        '429':
          description: Rate limit exceeded
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RateLimitExceededErrorResponse'
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalErrorResponse'
components:
  schemas:
    CreateResponseStreamRequest:
      type: object
      properties:
        input:
          $ref: '#/components/schemas/UserInput'
          description: User input message
      required:
      - input
      title: CreateResponseStreamRequest
    InputRequiredErrorResponse:
      type: object
      properties:
        error:
          $ref: '#/components/schemas/InputRequiredErrorResponseError'
      required:
      - error
      description: Error response for missing required input field
      title: InputRequiredErrorResponse
    Response:
      type: object
      properties:
        response_id:
          type: string
          description: A base-62 identifier prefixed by a short resource type
        conversation_id:
          type: string
          description: A base-62 identifier prefixed by a short resource type
        status:
          $ref: '#/components/schemas/ResponseStatus'
        created_at:
          type: string
          format: date-time
          description: Creation timestamp (ISO 8601)
        completed_at:
          type:
          - string
          - 'null'
          format: date-time
          description: Completion timestamp (ISO 8601), null if not completed
        outputs:
          type: array
          items:
            $ref: '#/components/schemas/OutputItem'
          description: Output items
      required:
      - response_id
      - conversation_id
      - status
      - created_at
      title: Response
    ReasoningMessage:
      type: object
      properties:
        reasoning_message_id:
          type: string
          description: A base-62 identifier prefixed by a short resource type
        conversation_id:
          type: string
          description: A base-62 identifier prefixed by a short resource type
        response_id:
          type: string
          description: A base-62 identifier prefixed by a short resource type
        content:
          $ref: '#/components/schemas/Content'
        created_at:
          type: string
          format: date-time
          description: Creation timestamp (ISO 8601)
      required:
      - reasoning_message_id
      - conversation_id
      - response_id
      - content
      - created_at
      title: ReasoningMessage
    MarkdownTextContent:
      type: object
      properties:
        text:
          type: string
          description: Raw markdown text content. Used when Minerva's chat response `is_commonmark` is not set.
      required:
      - text
      title: MarkdownTextContent
    ResponseFailedData:
      type: object
      properties:
        event_type:
          $ref: '#/components/schemas/StreamEventType'
        sequence_number:
          type: integer
          description: Sequential event number in stream. Monotonically increasing counter starting at 1.
        response:
          $ref: '#/components/schemas/Response'
          description: Response object with FAILED status and error details
      required:
      - event_type
      - sequence_number
      - response
      description: Data for RESPONSE_FAILED event - response processing failed
      title: ResponseFailedData
    ResponseCompletedData:
      type: object
      properties:
        event_type:
          $ref: '#/components/schemas/StreamEventType'
        sequence_number:
          type: integer
          description: Sequential event number in stream. Monotonically increasing counter starting at 1.
        response:
          $ref: '#/components/schemas/Response'
          description: Final response object with COMPLETED status and all outputs
      required:
      - event_type
      - sequence_number
      - response
      description: Data for RESPONSE_COMPLETED event - response successfully completed
      title: ResponseCompletedData
    ResponseStreamEvent:
      type: object
      properties:
        event:
          $ref: '#/components/schemas/StreamEventType'
        data:
          $ref: '#/components/schemas/ResponseStreamData'
      required:
      - event
      - data
      description: A server-sent event containing response update content
      title: ResponseStreamEvent
    NotFoundErrorResponse:
      type: object
      properties:
        error:
          $ref: '#/components/schemas/NotFoundErrorResponseError'
      required:
      - error
      description: Error response for resource not found
      title: NotFoundErrorResponse
    Error:
      type: object
      properties:
        code:
          type: string
          description: Machine-readable error code
        message:
          type: string
          description: Human-readable error message
      required:
      - code
      - message
      title: Error
    ResponseStreamData:
      oneOf:
      - $ref: '#/components/schemas/ResponseCreatedData'
      - $ref: '#/components/schemas/ResponseInProgressData'
      - $ref: '#/components/schemas/ResponseOutputDeltaData'
      - $ref: '#/components/schemas/ResponseCompletedData'
      - $ref: '#/components/schemas/ResponseFailedData'
      - $ref: '#/components/schemas/StreamingErrorData'
      description: Event data payload (structure depends on event type)
      title: ResponseStreamData
    ResponseInProgressData:
      type: object
      properties:
        event_type:
          $ref: '#/components/schemas/StreamEventType'
        sequence_number:
          type: integer
          description: Sequential event number in stream. Monotonically increasing counter starting at 1.
        response:
          $ref: '#/components/schemas/Response'
          description: Response object with IN_PROGRESS status
      required:
      - event_type
      - sequence_number
      - response
      description: Data for RESPONSE_IN_PROGRESS event - response processing update
      title: ResponseInProgressData
    CitationLocation:
      type: object
      properties:
        offset:
          type: integer
          description: Zero-based character position in the assistant message where the citation should be inserted
      description: '**Deprecated:** Use `Message.content_references` for positional data instead. This field will no longer be populated starting May 12, 2026 for both new and existing messages.'
      title: CitationLocation
    ResponseStatus:
      type: string
      enum:
      - CREATED
      - IN_PROGRESS
      - COMPLETED
      - FAILED
      description: Response processing status
      title: ResponseStatus
    ResponseCreatedData:
      type: object
      properties:
        event_type:
          $ref: '#/components/schemas/StreamEventType'
        sequence_number:
          type: integer
          description: Sequential event number in stream. Monotonically increasing counter starting at 1.
        response:
          $ref: '#/components/schemas/Response'
          description: Newly created response object with CREATED status
      required:
      - event_type
      - sequence_number
      - response
      description: Data for RESPONSE_CREATED event - response initially created
      title: ResponseCreatedData
    MessageFeedback:
      type: object
      properties:
        helpful:
          $ref: '#/components/schemas/FeedbackOption'
          description: Positive feedback option. Use this callback_id to rate the response as helpful.
        unhelpful:
          $ref: '#/components/schemas/FeedbackOption'
          description: Negative feedback option. Use this callback_id to rate the response as unhelpful.
      description: Feedback options available on an assistant message. When present, this message supports feedback and the callback IDs can be used to submit a rating.
      title: MessageFeedback
    OutputItem:
      oneOf:
      - type: object
        properties:
          type:
            $ref: '#/components/schemas/MessageOutputItemType'
            description: Output item type discriminator
          message:
            $ref: '#/components/schemas/Message'
        required:
        - type
        - message
        description: MESSAGE variant
      - type: object
        properties:
          type:
            $ref: '#/components/schemas/ReasoningMessageOutputItemType'
            description: Output item type discriminator
          reasoning_message:
            $ref: '#/components/schemas/ReasoningMessage'
        required:
        - type
        - reasoning_message
        description: REASONING_MESSAGE variant
      discriminator:
        propertyName: type
      description: Output item wrapper with type discriminator
      title: OutputItem
    Content:
      oneOf:
      - type: object
        properties:
          type:
            $ref: '#/components/schemas/PlainTextContentItemType'
            description: Content type discriminator
          plain_text:
            $ref: '#/components/schemas/PlainTextContent'
        required:
        - type
        - plain_text
        description: PLAIN_TEXT variant
      - type: object
        properties:
          type:
            $ref: '#/components/schemas/CommonmarkTextContentItemType'
            description: Content type discriminator
          commonmark_text:
            $ref: '#/components/schemas/CommonmarkTextContent'
        required:
        - type
        - commonmark_text
        description: COMMONMARK_TEXT variant
      - type: object
        properties:
          type:
            $ref: '#/components/schemas/MarkdownTextContentItemType'
            description: Content type discriminator
          markdown_text:
            $ref: '#/components/schemas/MarkdownTextContent'
        required:
        - type
        - markdown_text
        description: MARKDOWN_TEXT variant
      discriminator:
        propertyName: type
      description: Message content with type discriminator
      title: Content
    PlainTextContent:
      type: object
      properties:
        text:
          type: string
          description: Plain text content
      required:
      - text
      title: PlainTextContent
    UnauthorizedErrorResponseError:
      type: object
      properties:
        code:
          $ref: '#/components/schemas/UnauthorizedErrorResponseErrorCode'
        message:
          type: string
      required:
      - code
      - message
      title: UnauthorizedErrorResponseError
    UnauthorizedErrorResponseErrorCode:
      type: string
      enum:
      - UNAUTHORIZED
      title: UnauthorizedErrorResponseErrorCode
    ForbiddenErrorResponseError:
      type: object
      properties:
        code:
          $ref: '#/components/schemas/ForbiddenErrorResponseErrorCode'
        message:
          type: string
      required:
      - code
      - message
      title: ForbiddenErrorResponseError
    Attribute:
      type: object
      properties:
        key:
          type: string
          description: Attribute name
        value:
          type: string
          description: Attribute value
      required:
      - key
      - value
      description: Key-value pair for citation display metadata. This is an opaque structure that contains rendering hints specific to each citation. Clients should not make assumptions about the keys or values present, as they may vary based on citation type and context.
      title: Attribute
    InputRequiredErrorResponseErrorCode:
      type: string
      enum:
      - INVALID_INPUT
      title: InputRequiredErrorResponseErrorCode
    Message:
      type: object
      properties:
        message_id:
          type: string
          description: A base-62 identifier prefixed by a short resource type
        conversation_id:
          type: string
          description: A base-62 identifier prefixed by a short resource type
        response_id:
          type: string
          description: A base-62 identifier prefixed by a short resource type
        actor:
          $ref: '#/components/schemas/ActorType'
        content:
          $ref: '#/components/schemas/Content'
        citations:
          type:
          - array
          - 'null'
          items:
            $ref: '#/components/schemas/Citation'
          description: Unique citation references in the assistant message. Use `content_references` to determine where in the message text each citation is referenced.
        content_references:
          type:
          - array
          - 'null'
          items:
            $ref: '#/components/schemas/CitationContentReference'
          description: Ordered positions in the message text where citations appear (ascending by offset). Each entry references a `Citation` via `citation_id`. Only populated on assistant messages.
        created_at:
          type: string
          format: date-time
          description: Creation timestamp (ISO 8601)
        feedback:
          oneOf:
          - $ref: '#/components/schemas/MessageFeedback'
          - type: 'null'
          description: Feedback options for this message. Present only on final assistant messages that support feedback. Use the callback IDs to submit a rating via the feedback endpoint.
      required:
      - message_id
      - conversation_id
      - response_id
      - actor
      - content
      - created_at
      title: Message
    NotFoundErrorResponseError:
      type: object
      properties:
        code:
          $ref: '#/components/schemas/NotFoundErrorResponseErrorCode'
        message:
          type: string
      required:
      - code
      - message
      title: NotFoundErrorResponseError
    ReasoningMessageOutputItemType:
      type: string
      enum:
      - REASONING_MESSAGE
      description: Output item type discriminator
      title: ReasoningMessageOutputItemType
    Display:
      type: object
      properties:
        title:
          $ref: '#/components/schemas/Content'
          description: Primary heading/identifier with type discriminator
        body:
          $ref: '#/components/schemas/Content'
          description: Body/description content with type discriminator
        attributes:
          type: array
          items:
            $ref: '#/components/schemas/Attribute'
          description: Opaque key-value metadata for citation display. These attributes contain implementation-specific rendering hints and should be treated as a black-box by clients. The structure and values may vary between citations and should not be relied upon for business logic.
      title: Display
    Citation:
      type: object
      properties:
        citation_id:
          type: string
          description: 'Unique citation identifier (format: `cite_<base62>`). Use this to join with `content_references` on the Message object.'
        location:
          $ref: '#/components/schemas/CitationLocation'
          description: '**Deprecated:** Use `Message.content_references` for positional data instead. This field will no longer be populated starting May 12, 2026 for both new and existing messages.'
        url:
          type: string
          format: uri
          description: URL to the entity
        display:
          $ref: '#/components/schemas/Display'
      title: Citation
    InternalErrorResponseErrorCode:
      type: string
      enum:
      - INTERNAL_ERROR
      title: InternalErrorResponseErrorCode
    InputRequiredErrorResponseError:
      type: object
      properties:
        code:
          $ref: '#/components/schemas/InputRequiredErrorResponseErrorCode'
        message:
          type: string
      required:
      - code
      - message
      title: InputRequiredErrorResponseError
    ForbiddenErrorResponse:
      type: object
      properties:
        error:
          $ref: '#/components/schemas/ForbiddenErrorResponseError'
      required:
      - error
      description: Error response for forbidden access
      title: ForbiddenErrorResponse
    ForbiddenErrorResponseErrorCode:
      type: string
      enum:
      - FORBIDDEN
      title: ForbiddenErrorResponseErrorCode
    ActorType:
      type: string
      enum:
      - USER
      - ASSISTANT
      description: Message actor type
      title: ActorType
    CitationContentReference:
      type: object
      properties:
        citation_id:
          type: string
          description: References `Citation.citation_id` to link this position to a citation entity.
        offset:
          type: integer
          description: Zero-based character position in the assistant message where the citation appears.
      required:
      - citation_id
      - offset
      title: CitationContentReference
    FeedbackOption:
      type: object
      properties:
        callback_id:
          type: string
          description: Opaque callback identifier. Pass this value to the feedback endpoint to submit this rating.
      required:
      - callback_id
      title: FeedbackOption
    MarkdownTextContentItemType:
      type: string
      enum:
      - MARKDOWN_TEXT
      description: Content type discriminator
      title: MarkdownTextContentItemType
    RateLimitExceededErrorResponse:
      type: object
      properties:
        error:
          $ref: '#/components/schemas/RateLimitExceededErrorResponseError'
      required:
      - error
      description: Error response for rate limit exceeded
      title: RateLimitExceededErrorResponse
    CommonmarkTextContent:
      type: object
      properties:
        text:
          type: string
          description: Commonmark-formatted text content
      required:
      - text
      title: CommonmarkTextContent
    ResponseOutputDeltaData:
      type: object
      properties:
        event_type:
          $ref: '#/components/schemas/StreamEventType'
        sequence_number:
          type: integer
          description: Sequential event number in stream. Monotonically increasing counter starting at 1.
        output:
          $ref: '#/components/schemas/OutputItem'
          description: Output item delta (message or reasoning message)
      required:
      - event_type
      - sequence_number
      - output
      description: Data for RESPONSE_OUTPUT_DELTA event - new output item generated
      title: ResponseOutputDeltaData
    RateLimitExceededErrorResponseErrorCode:
      type: string
      enum:
      - RATE_LIMIT_EXCEEDED
      title: RateLimitExceededErrorResponseErrorCode
    CommonmarkTextContentItemType:
      type: string
      enum:
      - COMMONMARK_TEXT
      description: Content type discriminator
      title: CommonmarkTextContentItemType
    PlainTextContentItemType:
      type: string
      enum:
      - PLAIN_TEXT
      description: Content type discriminator
      title: PlainTextContentItemType
    NotFoundErrorResponseErrorCode:
      type: string
      enum:
      - NOT_FOUND
      title: NotFoundErrorResponseErrorCode
    UserInput:
      type: object
      properties:
        text:
          type: string
          description: User message text
      required:
      - text
      title: UserInput
    StreamingErrorData:
      type: object
      properties:
        error:
          $ref: '#/components/schemas/Error'
          description: Error details
      required:
      - error
      description: Data for ERROR event - error that occurs mid-stream
      title: StreamingErrorData
    ConversationsConversationIdResponsesStreamPostParametersAccept:
      type: string
      enum:
      - text/event-stream
      title: ConversationsConversationIdResponsesStreamPostParametersAccept
    InternalErrorResponseError:
      type: object
      properties:
        code:
          $ref: '#/components/schemas/InternalErrorResponseErrorCode'
        message:
          type: string
      required:
      - code
      - message
      title: InternalErrorResponseError
    CreateResponseRequest:
      type: object
      properties:
        input:
          $ref: '#/components/schemas/UserInput'
          description: User input message
      required:
      - input
      title: CreateResponseRequest
    InternalErrorResponse:
      type: object
      properties:
        error:
          $ref: '#/components/schemas/InternalErrorResponseError'
      required:
      - error
      description: Error response for internal server error
      title: InternalErrorResponse
    MessageOutputItemType:
      type: string
      enum:
      - MESSAGE
      description: Output item type discriminator
      title: MessageOutputItemType
    UnauthorizedErrorResponse:
      type: object
      properties:
        error:
          $ref: '#/components/schemas/UnauthorizedErrorResponseError'
      required:
      - error
      description: Error response for unauthorized access
      title: UnauthorizedErrorResponse
    StreamEventType:
      type: string
      enum:
      - RESPONSE_CREATED
      - RESPONSE_IN_PROGRESS
      - RESPONSE_OUTPUT_DELTA
      - RESPONSE_COMPLETED
      - RESPONSE_FAILED
      - ERROR
      description: Response streaming event type
      title: StreamEventType
    RateLimitExceededErrorResponseError:
      type: object
      properties:
        code:
          $ref: '#/components/schemas/RateLimitExceededErrorResponseErrorCode'
        message:
          type: string
      required:
      - code
      - message
      title: RateLimitExceededErrorResponseError
  securitySchemes:
    BearerAuth:
      type: http
      scheme: bearer
      description: JWT bearer token authentication. Obtain an access token from the Moveworks auth endpoint and include it in the Authorization header as 'Bearer <token>'.